From f2b6fdd955f8ac6e5b351e0b5e3a9f583ed6da2e Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 30 四月 2026 15:26:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 small-program/pages/index/index.vue |   71 +++++++++++++++++++++++++++--------
 1 files changed, 54 insertions(+), 17 deletions(-)

diff --git a/small-program/pages/index/index.vue b/small-program/pages/index/index.vue
index 47d0bcb..3dd218b 100644
--- a/small-program/pages/index/index.vue
+++ b/small-program/pages/index/index.vue
@@ -84,6 +84,7 @@
 			</view>
 			<view class="toast-btn" @click="handleLocation">寮�鍚畾浣�</view>
 		</view>
+		<auth-login :show="showLogin" @close="showLogin = false"></auth-login>
 		<custom-tabbar></custom-tabbar>
 	</view>
 </template>
@@ -98,7 +99,7 @@
 			CustomTabbar
 		},
 		computed: {
-			...mapState(['navHeight', 'statusbarHeight', 'address', 'latitude', 'cityId', 'longitude']),
+			...mapState(['navHeight', 'statusbarHeight', 'address', 'latitude', 'cityId', 'longitude', 'token']),
 			currentAddress() {
 				return this.address && this.address !== '瀹氫綅涓�' ? this.address : '鑾峰彇瀹氫綅'
 			}
@@ -107,7 +108,10 @@
 			return {
 				bannerList: [],
 				pointList: [],
-				ingOrder: null
+				ingOrder: null,
+				showLogin: false,
+				pendingNavigate: null,
+				lastLocationAuth: null
 			}
 		},
 		async onLoad() {
@@ -120,8 +124,40 @@
 		onShow() {
 			this.ingOrder =null
 			this.getIngorder()
+			this.checkLocationAuth()
+		},
+		watch: {
+			token(newToken) {
+				if (newToken && this.pendingNavigate) {
+					const fn = this.pendingNavigate
+					this.pendingNavigate = null
+					this.showLogin = false
+					fn()
+				}
+			}
 		},
 		methods: {
+			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
@@ -141,20 +177,23 @@
 					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) {
+					this.pendingNavigate = () => this.jumpOrderList(status)
+					this.showLogin = true
+					return
+				}
 				uni.setStorageSync("orderStatus",status)
 				uni.switchTab({
 					url: '/pages/itinerary/itinerary'
 				})
 			},
 			jumpxiadan() {
+				if (!this.token) {
+					this.pendingNavigate = () => this.jumpxiadan()
+					this.showLogin = true
+					return
+				}
 				if (!this.cityId) return uni.showToast({
 					title: '褰撳墠鍩庡競鏆傛湭寮�閫�',
 					icon: 'none'
@@ -218,12 +257,10 @@
 									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)
@@ -233,7 +270,6 @@
 										that.$store.commit('setPosition', locParam)
 										that.$store.commit('clearCityId')
 										that.pointList = []
-										that.getNearbyShopList()
 									}
 								},
 								fail: function(err) {
@@ -259,23 +295,24 @@
 					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) => {

--
Gitblit v1.9.3