From 364adbc9a93a396b74e154f910c2a0a72bfb1a0f Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期六, 29 十一月 2025 22:10:41 +0800
Subject: [PATCH] feat: 更新车辆里程统计

---
 app/pagesTask/components/DepartureSelector.vue |  122 ++++++++++++++++++++++++++++------------
 1 files changed, 86 insertions(+), 36 deletions(-)

diff --git a/app/components/DepartureSelector.vue b/app/pagesTask/components/DepartureSelector.vue
similarity index 77%
rename from app/components/DepartureSelector.vue
rename to app/pagesTask/components/DepartureSelector.vue
index b863f91..ac00b3c 100644
--- a/app/components/DepartureSelector.vue
+++ b/app/pagesTask/components/DepartureSelector.vue
@@ -26,7 +26,7 @@
         
         <view class="current-location-btn" @click="getCurrentLocation">
           <uni-icons type="location" size="20" color="#007AFF"></uni-icons>
-          <text>褰撳墠浣嶇疆</text>
+          
         </view>
       </view>
       
@@ -199,48 +199,68 @@
       this.showAddressSuggestions = false
       this.addressSuggestions = []
     },
-    
-    // 鑾峰彇褰撳墠浣嶇疆
-    getCurrentLocation() {
-      uni.showLoading({
-        title: '鑾峰彇浣嶇疆涓�...'
-      })
-      
-      // 浣跨敤uni-app鐨凣PS瀹氫綅鍔熻兘
-      uni.getLocation({
-        type: 'gcj02', // 杩斿洖鍥芥祴灞�鍧愭爣锛岄�傜敤浜庡浗鍐呭湴鍥�
-        success: (res) => {
-          console.log('鑾峰彇鍒癎PS鍧愭爣:', res)
-          const latitude = res.latitude
-          const longitude = res.longitude
-          
-          // 鏇存柊GPS鍧愭爣
-          this.$emit('update:longitude', longitude)
-          this.$emit('update:latitude', latitude)
-          
-          // 璋冪敤閫嗗湴鐞嗙紪鐮佹帴鍙o紝灏嗗潗鏍囪浆鎹负鍦板潃
+    geocoder(longitude, latitude){
+ // 璋冪敤閫嗗湴鐞嗙紪鐮佹帴鍙o紝灏嗗潗鏍囪浆鎹负鍦板潃
           reverseGeocoder(latitude, longitude)
             .then(response => {
               uni.hideLoading()
               
+              console.log('閫嗗湴鐞嗙紪鐮丄PI瀹屾暣鍝嶅簲:', JSON.stringify(response))
+              
               if (response.code === 200 && response.data) {
-                // 鑾峰彇璇︾粏鍦板潃
-                const address = response.data.address || response.data.formattedAddress || ''
+                // 瑙f瀽鍚庣杩斿洖鐨勬暟鎹�(鍙兘鏄瓧绗︿覆,闇�瑕乸arse)
+                let responseData = response.data
+                if (typeof responseData === 'string') {
+                  try {
+                    responseData = JSON.parse(responseData)
+                  } catch (e) {
+                    console.error('瑙f瀽鍝嶅簲鏁版嵁澶辫触:', e)
+                    responseData = {}
+                  }
+                }
                 
-                // 鏇存柊鍦板潃
-                this.$emit('update:address', address)
+                console.log('瑙f瀽鍚庣殑responseData:', responseData)
                 
-                // 瑙﹀彂浣嶇疆鑾峰彇鎴愬姛浜嬩欢
-                this.$emit('location-success', {
-                  address: address,
-                  longitude: longitude,
-                  latitude: latitude
-                })
+                // 鑵捐鍦板浘API杩斿洖鏍煎紡: {status: 0, result: {address: "..."}}
+                let address = ''
+                if (responseData.status === 0 && responseData.result) {
+                  address = responseData.result.address || responseData.result.formatted_addresses?.recommend || ''
+                } else if (responseData.address) {
+                  // 鍏煎鍏朵粬鍙兘鐨勮繑鍥炴牸寮�
+                  address = responseData.address
+                } else if (responseData.formattedAddress) {
+                  address = responseData.formattedAddress
+                }
                 
-                console.log('閫嗗湴鐞嗙紪鐮佹垚鍔�:', address)
-                this.$modal.showToast('宸茶幏鍙栧綋鍓嶄綅缃�')
+                console.log('瑙f瀽鍑虹殑鍦板潃:', address)
+                
+                if (address) {
+                  // 鏇存柊鍦板潃
+                  this.$emit('update:address', address)
+                  
+                  // 瑙﹀彂浣嶇疆鑾峰彇鎴愬姛浜嬩欢
+                  this.$emit('location-success', {
+                    address: address,
+                    longitude: longitude,
+                    latitude: latitude
+                  })
+                  
+                  console.log('閫嗗湴鐞嗙紪鐮佹垚鍔燂紝鍦板潃宸叉洿鏂�:', address)
+                  this.$modal.showToast('宸茶幏鍙栧綋鍓嶄綅缃�')
+                } else {
+                  console.error('鏈兘浠庡搷搴斾腑鎻愬彇鍦板潃,responseData:', responseData)
+                  
+                  // 鍗充娇鍦板潃瑙f瀽澶辫触锛屽潗鏍囧凡淇濆瓨锛岃Е鍙戜簨浠�
+                  this.$emit('location-success', {
+                    address: '',
+                    longitude: longitude,
+                    latitude: latitude
+                  })
+                  
+                  this.$modal.showToast('浣嶇疆瑙f瀽澶辫触锛岃鎵嬪姩杈撳叆鍦板潃')
+                }
               } else {
-                console.error('閫嗗湴鐞嗙紪鐮佸け璐�:', response.msg)
+                console.error('閫嗗湴鐞嗙紪鐮佸け璐ワ紝response.code:', response.code, 'msg:', response.msg)
                 
                 // 鍗充娇鍦板潃瑙f瀽澶辫触锛屽潗鏍囧凡淇濆瓨锛岃Е鍙戜簨浠�
                 this.$emit('location-success', {
@@ -265,11 +285,41 @@
               
               this.$modal.showToast('浣嶇疆瑙f瀽澶辫触锛屼絾GPS鍧愭爣宸蹭繚瀛�')
             })
+    },
+    // 鑾峰彇褰撳墠浣嶇疆
+    getCurrentLocation() {
+      uni.showLoading({
+        title: '鑾峰彇浣嶇疆涓�...'
+      })
+      
+      // 浣跨敤uni-app鐨凣PS瀹氫綅鍔熻兘
+      uni.getLocation({
+        type: 'gcj02', // 杩斿洖鍥芥祴灞�鍧愭爣锛岄�傜敤浜庡浗鍐呭湴鍥�
+        success: (res) => {
+          console.log('鑾峰彇鍒癎PS鍧愭爣:', res)
+          const latitude = res.latitude
+          const longitude = res.longitude
+          
+          // 鏇存柊GPS鍧愭爣
+          this.$emit('update:longitude', longitude)
+          this.$emit('update:latitude', latitude)
+          this.geocoder(longitude, latitude)
+         
         },
         fail: (err) => {
           uni.hideLoading()
           console.error('鑾峰彇浣嶇疆澶辫触:', err)
-          
+          //鎴戜滑浣跨敤榛樿鐨勫潗鏍囨潵澶勭悊
+          //23.20593,113.228998
+          const longitude = 113.228998
+          const latitude = 23.20593
+          this.$emit('location-success', {
+            address: '',
+            longitude: longitude,
+            latitude: latitude
+          })
+          this.geocoder(longitude, latitude)
+        
           // 鎻愮ず鐢ㄦ埛鍙兘鐨勫師鍥�
           let errorMsg = '鑾峰彇浣嶇疆澶辫触'
           if (err.errMsg && err.errMsg.includes('auth deny')) {
@@ -373,7 +423,7 @@
         background-color: #f0f7ff;
         border-radius: 10rpx;
         white-space: nowrap;
-        min-height: 70rpx;
+        min-height: 40rpx;
         
         &:active {
           background-color: #e0f0ff;

--
Gitblit v1.9.1