| | |
| | | <text class="section-title">推荐寄存点</text> |
| | | <text class="section-more" @click="jumpJC">查看更多</text> |
| | | </view> |
| | | |
| | | <scroll-view class="label-list" scroll-x="true"> |
| | | <view class="list-item" v-for="(item, index) in tagShopList" :key="index"> |
| | | <text class="tag-name">{{ item.tagName }}</text> |
| | | <text>{{ item.shopCount }}</text> |
| | | <image src="/static/icon/ic_box@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | </scroll-view> |
| | | |
| | | <view class="recommend-list"> |
| | | <template v-if="pointList.length > 0"> |
| | |
| | | <view class="point-head"> |
| | | <text class="point-name">{{ item.name ||'' }}</text> |
| | | <text class="point-distance">{{ item.distanceText ||''}}</text> |
| | | </view> |
| | | <view class="point-tips" v-if="item.locationTagNames && item.locationTagNames.length > 0"> |
| | | <view class="point-tips-item" v-for="(tag, idx) in item.locationTagNames" :key="idx">{{ tag }}</view> |
| | | </view> |
| | | <view class="point-address"> |
| | | <image src="/static/icon/home_ic_location3@2x.png" mode="aspectFit"></image> |
| | |
| | | return { |
| | | bannerList: [], |
| | | pointList: [], |
| | | tagShopList: [], |
| | | ingOrder: null, |
| | | showLogin: false, |
| | | pendingNavigate: null |
| | | pendingNavigate: null, |
| | | lastLocationAuth: null |
| | | } |
| | | }, |
| | | async onLoad() { |
| | |
| | | if (this.cityId && this.latitude && this.longitude) { |
| | | await this.getNearbyShopList() |
| | | } |
| | | await this.getTagShopCount() |
| | | }, |
| | | onShow() { |
| | | this.ingOrder =null |
| | | this.getIngorder() |
| | | this.checkLocationAuth() |
| | | }, |
| | | watch: { |
| | | token(newToken) { |
| | |
| | | this.showLogin = false |
| | | fn() |
| | | } |
| | | }, |
| | | cityId() { |
| | | this.getTagShopCount() |
| | | } |
| | | }, |
| | | methods: { |
| | | async getTagShopCount() { |
| | | if (!this.cityId) return |
| | | const res = await this.$u.api.locationTagShopCount({ cityId: this.cityId }) |
| | | if (res.code === 200) { |
| | | this.tagShopList = res.data || [] |
| | | } |
| | | }, |
| | | async checkLocationAuth() { |
| | | const _this = this |
| | | uni.getSetting({ |
| | | success(res) { |
| | | const authLocation = res.authSetting['scope.userLocation'] |
| | | if (_this.lastLocationAuth !== null && _this.lastLocationAuth !== authLocation) { |
| | | if (authLocation) { |
| | | _this.positioning() |
| | | } |
| | | } |
| | | _this.lastLocationAuth = authLocation |
| | | } |
| | | }) |
| | | }, |
| | | async getIngorder() { |
| | | var that =this |
| | | let res = await that.$u.api.getActiveOrderTip() |
| | | if (res && res.code === 200) { |
| | | this.ingOrder = res.data |
| | | } |
| | | }, |
| | | jumpBannerDetail(item) { |
| | | if(!item.content || item.content =='' || item.type==0){ |
| | | return |
| | |
| | | uni.navigateTo({ |
| | | url:'/pages/delivery-order-detail/delivery-order-detail?userType=0&id='+id |
| | | }) |
| | | }, |
| | | async getIngorder(){ |
| | | var that =this |
| | | let res = await that.$u.api.getActiveOrderTip() |
| | | if (res && res.code === 200) { |
| | | this.ingOrder = res.data |
| | | } |
| | | }, |
| | | jumpOrderList(status){ |
| | | if (!this.token) { |
| | |
| | | } |
| | | }) |
| | | if (res.code === 200) { |
| | | this.pointList = res.data.records || [] |
| | | const list = res.data.records || [] |
| | | list.forEach(item => { |
| | | if (item.locationTagNames) { |
| | | item.locationTagNames = item.locationTagNames.split(',') |
| | | } |
| | | }) |
| | | this.pointList = list |
| | | } |
| | | }, |
| | | jumpJC() { |
| | |
| | | console.log(data, '==================选择地址逆解析'); |
| | | let info = data[0]; |
| | | locParam.province = info.province; |
| | | locParam.city = (info.regeocodeData.addressComponent.city && typeof info.regeocodeData.addressComponent.city === 'string') |
| | | ? info.regeocodeData.addressComponent.city |
| | | : info.regeocodeData.addressComponent.province; |
| | | locParam.adcode = info.regeocodeData.addressComponent.adcode |
| | | var ta = addr.name || '地址获取失败'; |
| | | locParam.address = ta |
| | | const resCity = await that.$u.api.getCityByName({ cityName: locParam.city }) |
| | | const resCity = await that.$u.api.getCityByName({ code: locParam.adcode }) |
| | | if (resCity.code === 200 && resCity.data) { |
| | | locParam.cityId = resCity.data.id |
| | | that.$store.commit('setPosition', locParam) |
| | |
| | | isHighAccuracy: true, |
| | | success: function (addr) { |
| | | const locParam = { latitude: addr.latitude, longitude: addr.longitude }; |
| | | var myAmapFun = new amapFile.AMapWX({ key: 'f2e6c0bfcac14c27b4f0d6d0d5b9d7d' }); |
| | | var myAmapFun = new amapFile.AMapWX({ key: that.$gaodeMapKey }); |
| | | myAmapFun.getRegeo({ |
| | | location: addr.longitude + ',' + addr.latitude, |
| | | success: async function(data) { |
| | | console.log(data, '==================获取地址'); |
| | | let info = data[0]; |
| | | locParam.province = info.province; |
| | | locParam.city = info.city; |
| | | locParam.adcode = info.regeocodeData.addressComponent.adcode; |
| | | locParam.area = info.district; |
| | | locParam.street = info.street; |
| | | var ta = info.name || '地址获取失败'; |
| | | locParam.address = ta |
| | | const resCity = await that.$u.api.getCityByName({ cityName: locParam.city }) |
| | | const resCity = await that.$u.api.getCityByName({ code: locParam.adcode }) |
| | | if (resCity.code === 200) { |
| | | locParam.cityId = resCity.data.id |
| | | } |
| | | that.$store.commit('setPosition', locParam) |
| | | that.getNearbyShopList() |
| | | that.$isResolve() |
| | | }, |
| | | fail: (err) => { |
| | |
| | | justify-content: space-between; |
| | | margin-top: 40rpx; |
| | | } |
| | | |
| | | .label-list { |
| | | width: 100%; |
| | | margin-top: 30rpx; |
| | | white-space: nowrap; |
| | | .list-item { |
| | | width: 210rpx; |
| | | height: 120rpx; |
| | | padding: 16rpx 20rpx; |
| | | box-sizing: border-box; |
| | | background: #E6F7FF; |
| | | border-radius: 16rpx; |
| | | position: relative; |
| | | display: inline-flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | margin-right: 20rpx; |
| | | vertical-align: middle; |
| | | text { |
| | | &:nth-child(1) { |
| | | font-weight: 400; |
| | | font-size: 26rpx; |
| | | color: #10B2FA; |
| | | } |
| | | &:nth-child(2) { |
| | | font-weight: 600; |
| | | font-size: 34rpx; |
| | | color: #222222; |
| | | } |
| | | } |
| | | image { |
| | | width: 76rpx; |
| | | height: 62rpx; |
| | | position: absolute; |
| | | bottom: 0; |
| | | right: 0; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .label-list::-webkit-scrollbar { |
| | | display: none; |
| | | } |
| | | |
| | | .tag-name { |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | max-width: 170rpx; |
| | | } |
| | | |
| | | .section-title { |
| | | font-size: 36rpx; |
| | |
| | | gap: 10rpx; |
| | | } |
| | | |
| | | .point-tips { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | margin-top: 12rpx; |
| | | .point-tips-item { |
| | | width: 130rpx; |
| | | height: 36rpx; |
| | | line-height: 36rpx; |
| | | text-align: center; |
| | | border-radius: 8rpx; |
| | | font-weight: 400; |
| | | font-size: 20rpx; |
| | | color: #10B2FA; |
| | | margin-right: 12rpx; |
| | | border: 1rpx solid #10B2FA; |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | } |
| | | } |
| | | |
| | | .point-name { |
| | | flex: 1; |
| | | font-size: 32rpx; |