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