| | |
| | | :class="{ active: currentDropdown === item.key }" |
| | | @click="toggleDropdown(item.key)" |
| | | > |
| | | <text>{{ filterLabels[item.key] }}</text> |
| | | <text :class="{ 'filter-text-bold': isFilterBold(item.key) }">{{ filterLabels[item.key] }}</text> |
| | | <image :src="currentDropdown === item.key ? '/static/icon/ar_open_sel@2x.png' : '/static/icon/ar_open1@2x.png'" mode="widthFix"></image> |
| | | </view> |
| | | </view> |
| | |
| | | :class="{ active: selectedFilters[currentDropdown] === option.value }" |
| | | @click="selectDropdownOption(option)" |
| | | > |
| | | <text>{{ option.label }}</text> |
| | | <text>{{ option.label||'' }}</text> |
| | | <u-icon v-if="selectedFilters[currentDropdown] === option.value" name="checkmark" size="24" color="#2F86F6"></u-icon> |
| | | </view> |
| | | </view> |
| | |
| | | |
| | | <view class="content-wrap"> |
| | | <view v-if="!isMapMode" class="card-list"> |
| | | <view v-for="(item, index) in pointList" :key="index" class="point-card"> |
| | | <view v-for="(item, index) in pointList" :key="index" class="point-card" @click="goShopDetails(item)"> |
| | | <view class="thumb" :class="item.thumbClass"> |
| | | <image :src="item.cover" mode="widthFix"></image> |
| | | </view> |
| | |
| | | </view> |
| | | <view class="point-address"> |
| | | <image src="/static/icon/home_ic_location3@2x.png" mode="widthFix"></image> |
| | | <text>{{ item.address }}</text> |
| | | <text>{{ item.address ||''}}</text> |
| | | </view> |
| | | <text class="point-time">{{ item.time }}</text> |
| | | <text class="point-time">{{ item.time|| '' }}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <auth-login :show="showLogin" @close="showLogin = false"></auth-login> |
| | | </view> |
| | | </template> |
| | | |
| | |
| | | ] |
| | | }, |
| | | pointList: [], |
| | | isRequest: true |
| | | isRequest: true, |
| | | showLogin: false |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState(['latitude', 'longitude', 'cityId']), |
| | | ...mapState(['latitude', 'longitude', 'cityId', 'token']), |
| | | filterLabels() { |
| | | return { |
| | | sortType: this.getFilterLabel('sortType'), |
| | |
| | | this.getNearbyShopList() |
| | | }, |
| | | methods: { |
| | | isFilterBold(key) { |
| | | if (key === 'sortType') { |
| | | return true |
| | | } |
| | | const label = this.filterLabels[key] |
| | | if (key === 'distance') { |
| | | return label !== '位置范围' |
| | | } else if (key === 'businessType') { |
| | | return label !== '营业时间' |
| | | } |
| | | return false |
| | | }, |
| | | handleSearch() { |
| | | this.page = 1 |
| | | this.pointList = [] |
| | |
| | | let arr = [] |
| | | res.data.records.forEach(item => { |
| | | let obj = { |
| | | id: item.id, |
| | | shopId: item.id, |
| | | name: item.name, |
| | | address: item.address, |
| | |
| | | }) |
| | | }, |
| | | storeLuggage() { |
| | | if (!this.token) { |
| | | this.showLogin = true |
| | | return |
| | | } |
| | | uni.navigateTo({ |
| | | url: '/pages/luggage-storage/luggage-storage' |
| | | }) |
| | | }, |
| | | goShopDetails(item){ |
| | | console.log(item) |
| | | uni.navigateTo({ |
| | | url: '/pages/storage-point-detail/storage-point-detail?id='+item.id |
| | | }) |
| | | } |
| | | } |
| | |
| | | .filter-item.active { |
| | | color: #222222; |
| | | } |
| | | |
| | | |
| | | .filter-text-bold { |
| | | font-weight: 700; |
| | | color: #000000; |
| | | } |
| | | |
| | | .card-list { |
| | | padding: 30rpx; |
| | | box-sizing: border-box; |