From ea2fb93a0dfcde8f5b66825b20f9d9b835a28acc Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期五, 22 五月 2026 10:54:09 +0800
Subject: [PATCH] 提交

---
 app/pages/order-detail/order-detail.vue |   67 +++++++++++++++++++++++++++++----
 1 files changed, 59 insertions(+), 8 deletions(-)

diff --git a/app/pages/order-detail/order-detail.vue b/app/pages/order-detail/order-detail.vue
index 1b35417..69ba6a6 100644
--- a/app/pages/order-detail/order-detail.vue
+++ b/app/pages/order-detail/order-detail.vue
@@ -57,7 +57,7 @@
 						</view>
 
 						<view class="order-detail-page__summary-right">
-							<text class="order-detail-page__price">楼{{ orderDetail.platformRewardAmount ? (orderDetail.driverFee + orderDetail.platformRewardAmount) / 100 : (orderDetail.driverFee / 100).toFixed(2) }}</text>
+							<text class="order-detail-page__price">楼{{ orderDetail.platformRewardAmount ? ((orderDetail.driverFee + orderDetail.platformRewardAmount) / 100).toFixed(2) : (orderDetail.driverFee / 100).toFixed(2) }}</text>
 							<text v-if="orderDetail.platformRewardAmount" class="order-detail-page__extra">鍚姞鎬ヂ{ (orderDetail.platformRewardAmount / 100).toFixed(2) }}</text>
 						</view>
 					</view>
@@ -73,9 +73,9 @@
 						</view>
 						<view class="order-detail-page__done-summary-right">
 							<view class="order-detail-page__done-price-row">
-								<text class="order-detail-page__price">楼{{ (orderDetail.driverFee / 100).toFixed(1) }}</text>
+								<text class="order-detail-page__price">楼{{ (orderDetail.driverFee / 100).toFixed(2) }}</text>
 							</view>
-							<text v-if="orderDetail.isUrgent === 1" class="order-detail-page__extra">鍚姞鎬ヂ{ orderDetail.urgentAmount / 100 }}</text>
+							<text v-if="orderDetail.isUrgent === 1" class="order-detail-page__extra">鍚姞鎬ヂ{ (orderDetail.urgentAmount / 100).toFixed(2) }}</text>
 						</view>
 					</view>
 
@@ -119,7 +119,7 @@
 							<image class="order-detail-page__qrcode-image" :src="'https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=' + orderDetail.driverVerifyCode" mode="aspectFit"></image>
 						</view>
 						<text class="order-detail-page__qrcode-value">{{ orderDetail.driverVerifyCode }}</text>
-						<text class="order-detail-page__qrcode-label">鍙栬揣鐮�</text>
+						<text class="order-detail-page__qrcode-label">{{ orderDetail.status === 3 ? '鍙栬揣鐮�' : '瀛樹欢鐮�' }}</text>
 					</view>
 				</view>
 
@@ -306,6 +306,7 @@
 				locationTimer: null,
 				distance: 0,
 				duration: 0,
+				isWithinOperationRadius: true,
 				statusTextMap: {
 					2: '寰呮帴鍗�',
 					3: '寰呭彇璐�',
@@ -452,16 +453,60 @@
 				this.getOrderDetail()
 			}
 		},
+
 		onUnload() {
 			if (this.locationTimer) {
 				clearInterval(this.locationTimer)
 				this.locationTimer = null
 			}
 		},
+
 		methods: {
 			handleBack() {
 				uni.navigateBack({ delta: 1 });
 			},
+			initOperationRadius() {
+				console.log('initOperationRadius')
+				return new Promise((resolve) => {
+					uni.getLocation({
+						type: 'gcj02',
+						success: (res) => {
+							this.$u.api.checkDriverOperationRadius({
+								lat: res.latitude,
+								lng: res.longitude,
+								orderId: this.orderId
+							}).then(res => {
+								if (res.code === 200) {
+									this.isWithinOperationRadius = res.data
+									console.log(res.data)
+									if (!this.isWithinOperationRadius) {
+										uni.showToast({
+											title: '鎮ㄥ綋鍓嶄綅缃笌鏀惰揣鍦板潃璺濈瓒呭嚭鑼冨洿锛岃鍦ㄥ湴鍧�闄勮繎閲嶆柊鎷嶇収',
+											icon: 'none'
+										})
+										resolve(false)
+									} else {
+										resolve(true)
+									}
+								} else {
+									resolve(false)
+								}
+							}).catch(() => {
+								resolve(false)
+							})
+						},
+						fail: () => {
+							this.isWithinOperationRadius = false
+							uni.showToast({
+								title: '鎮ㄥ綋鍓嶄綅缃潈闄愭病鏈夊紑鍚紝璇峰厛寮�鍚悗鍐嶆潵鎿嶄綔',
+								icon: 'none'
+							})
+							resolve(false)
+						}
+					})
+				})
+			},
+
 			getOrderDetail() {
 				this.$u.api.orderDetail({ orderId: this.orderId }).then(res => {
 					if (res.code === 200) {
@@ -508,6 +553,7 @@
 				}
 				const from = `${this.currentLocation.latitude},${this.currentLocation.longitude}`
 				const to = `${this.orderDetail.navigateLng},${this.orderDetail.navigateLat}`
+				console.log('driverType', this.userInfo.driverType)
 				this.$u.api.directionInfo({
 					from,
 					to,
@@ -599,10 +645,14 @@
 				}
 
 				if (action === 'pickup' || action === 'deliver') {
-					this.uploadedPhotos = []
-					this.photoRemark = ''
-					this.photoPopupMode = action
-					this.showPhotoPopup = true
+					this.initOperationRadius().then((isValid) => {
+						console.log(isValid)
+						if (!isValid) return
+						this.uploadedPhotos = []
+						this.photoRemark = ''
+						this.photoPopupMode = action
+						this.showPhotoPopup = true
+					})
 					return
 				}
 
@@ -640,6 +690,7 @@
 					if (res.code === 200) {
 						uni.showToast({ title: '鎺ュ崟鎴愬姛', icon: 'success' })
 						this.getOrderDetail()
+						uni.$emit('jiedanSuccess')
 						setTimeout(() => {
 							uni.navigateBack()
 						}, 1500)

--
Gitblit v1.9.3