Feat:趣游-轮播图按地区显示
This commit is contained in:
@@ -191,6 +191,10 @@ export function getHotelTypeList() {
|
||||
});
|
||||
}
|
||||
|
||||
export function getHotelBanner(params) {
|
||||
return request.get("/hotelBanner", params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 店铺详情海报
|
||||
* @param id 店铺ID int
|
||||
|
||||
+56
-8
@@ -84,7 +84,7 @@
|
||||
class="img"
|
||||
/>
|
||||
</view>
|
||||
<view v-if="currType.carousel" class="slider-wrap">
|
||||
<view v-if="hotelBanner.length" class="slider-wrap">
|
||||
<swiper
|
||||
indicatorDots="true"
|
||||
indicator-color="rgba(255, 255, 255, .3)"
|
||||
@@ -94,12 +94,12 @@
|
||||
style="height: 330rpx;"
|
||||
>
|
||||
<block
|
||||
v-for="(item, bannerIndex) in currType.carousel"
|
||||
v-for="(item, bannerIndex) in hotelBanner"
|
||||
:key="bannerIndex"
|
||||
>
|
||||
<swiper-item>
|
||||
<view class="swiper-item" @click="typeBannerItemClick(item)">
|
||||
<image :src="item.carouselImage" class="img" />
|
||||
<image :src="item.bannerImage" class="img" />
|
||||
</view>
|
||||
</swiper-item>
|
||||
</block>
|
||||
@@ -121,7 +121,7 @@
|
||||
</view>
|
||||
<view class="body" v-else>
|
||||
<view class="v12-justify-between v12-align-center">
|
||||
<text class="v12-font-bold" v-if="currType.carousel">推荐</text>
|
||||
<text class="v12-font-bold" v-if="hotelBanner.length">推荐</text>
|
||||
<view class="v12-dark1-text v12-font-28 v12-align-center" @click="handleRefresh">
|
||||
<u-icon name="reload"></u-icon>
|
||||
换一换
|
||||
@@ -170,7 +170,8 @@
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import { getHotelList, getHotelTypeList, getAncientTownIcon, getAncientTownList } from "@/api/inn.js"
|
||||
import { getHotelList, getHotelTypeList, getAncientTownIcon, getAncientTownList, getHotelBanner } from "@/api/inn.js"
|
||||
import { fetchCity } from "@/api/wenwan"
|
||||
import { getCurAddress, getLocation } from "@/utils/common"
|
||||
import FunHotelItem from './components/HotelItem'
|
||||
import { pageListenMixins } from '@/mixins/pageListenMixins'
|
||||
@@ -202,7 +203,10 @@ export default {
|
||||
isNext: false,
|
||||
townConfig: {},
|
||||
townList: [],
|
||||
randomSeed: null
|
||||
randomSeed: null,
|
||||
hotelBanner: [],
|
||||
goodCityId: '',
|
||||
cityOptions: []
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -223,8 +227,12 @@ export default {
|
||||
this.fetchList(random, this.randomSeed)
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
onLoad(options) {
|
||||
this.currType = {}
|
||||
if (options && options.city) {
|
||||
this.goodCityId = options.city
|
||||
}
|
||||
this.initGoodCity()
|
||||
getHotelTypeList().then(({data}) => {
|
||||
this.typeList = data
|
||||
this.currType = this.typeIndex === -1 ? {} : data[this.typeIndex]
|
||||
@@ -246,7 +254,9 @@ export default {
|
||||
watch: {
|
||||
cityName: {
|
||||
handler(value) {
|
||||
if(value) {
|
||||
if (value) {
|
||||
this.updateGoodCityId()
|
||||
this.fetchHotelBanner()
|
||||
this.search()
|
||||
}
|
||||
},
|
||||
@@ -445,6 +455,26 @@ export default {
|
||||
this.townConfig = res.data
|
||||
})
|
||||
},
|
||||
initGoodCity() {
|
||||
fetchCity(2).then(({ data }) => {
|
||||
const group = data && data.group ? data.group : []
|
||||
const list = []
|
||||
group.forEach(item => {
|
||||
if (item.city && item.city.length) {
|
||||
list.push(...item.city)
|
||||
}
|
||||
})
|
||||
this.cityOptions = list
|
||||
this.updateGoodCityId()
|
||||
})
|
||||
},
|
||||
updateGoodCityId() {
|
||||
if (!this.cityOptions.length || !this.cityName) return
|
||||
const found = this.cityOptions.find(item => item.cityName === this.cityName)
|
||||
if (found) {
|
||||
this.goodCityId = found.id || found.cityId || this.goodCityId
|
||||
}
|
||||
},
|
||||
goCity() {
|
||||
uni.navigateTo({
|
||||
url: `/pages/chose-city/chose-city?type=2&city=${this.cityName}`
|
||||
@@ -531,6 +561,24 @@ export default {
|
||||
uni.hideLoading()
|
||||
})
|
||||
},
|
||||
fetchHotelBanner() {
|
||||
if (!this.goodCityId) {
|
||||
return
|
||||
}
|
||||
const params = {
|
||||
goodCityId: this.goodCityId
|
||||
}
|
||||
getHotelBanner(params).then(res => {
|
||||
const { success, data } = res
|
||||
if (success && data) {
|
||||
if (Array.isArray(data.hotelBanner)) {
|
||||
this.hotelBanner = data.hotelBanner
|
||||
} else if (Array.isArray(data)) {
|
||||
this.hotelBanner = data
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
typeBannerItemClick(item) {
|
||||
if (!item.hotelId) return
|
||||
uni.navigateTo({ url: `/pagesInn/inn/innHome?id=${item.hotelId}` })
|
||||
|
||||
Reference in New Issue
Block a user