From 310633feef20e9b77d44fd25e0b41778e033b33b Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期二, 11 十一月 2025 21:48:46 +0800
Subject: [PATCH] feat: 车辆GPS统计,并修改了一些变更任务状态的逻辑
---
app/pages/task/detail.vue | 83 +++++++++++++++++++++++++++++++++++++++--
1 files changed, 79 insertions(+), 4 deletions(-)
diff --git a/app/pages/task/detail.vue b/app/pages/task/detail.vue
index fa10be3..e28d9e9 100644
--- a/app/pages/task/detail.vue
+++ b/app/pages/task/detail.vue
@@ -328,6 +328,7 @@
<script>
import { getTask, changeTaskStatus } from '@/api/task'
+ import { checkVehicleActiveTasks } from '@/api/task'
import { formatDateTime } from '@/utils/common'
import AttachmentUpload from '@/components/AttachmentUpload.vue'
@@ -504,10 +505,8 @@
handleTaskAction(action) {
switch (action) {
case 'depart':
- // 鍑哄彂 -> 鐘舵�佸彉涓哄嚭鍙戜腑
- this.$modal.confirm('纭畾瑕佸嚭鍙戝悧锛�').then(() => {
- this.updateTaskStatus('DEPARTING', '浠诲姟宸插嚭鍙�')
- }).catch(() => {});
+ // 鍑哄彂 -> 妫�鏌ヨ溅杈嗘槸鍚︽湁鍏朵粬姝e湪杩涜涓殑浠诲姟
+ this.checkVehicleAndDepart();
break;
case 'cancel':
@@ -547,6 +546,82 @@
}
},
+ // 妫�鏌ヨ溅杈嗙姸鎬佸苟鍑哄彂
+ checkVehicleAndDepart() {
+ // 鑾峰彇浠诲姟杞﹁締ID
+ const vehicleId = this.getVehicleId();
+ if (!vehicleId) {
+ this.$modal.showToast('鏈壘鍒颁换鍔¤溅杈嗕俊鎭�');
+ return;
+ }
+
+ // 鏄剧ず鍔犺浇鎻愮ず
+ uni.showLoading({
+ title: '妫�鏌ヨ溅杈嗙姸鎬�...'
+ });
+
+ checkVehicleActiveTasks(vehicleId).then(response => {
+ uni.hideLoading();
+
+ const activeTasks = response.data || [];
+
+ // 杩囨护鎺夊綋鍓嶄换鍔℃湰韬�
+ const otherActiveTasks = activeTasks.filter(task => task.taskId !== this.taskId);
+
+ if (otherActiveTasks.length > 0) {
+ // 杞﹁締鏈夊叾浠栨鍦ㄨ繘琛屼腑鐨勪换鍔�
+ const task = otherActiveTasks[0];
+ const taskStatus = this.getStatusText(task.taskStatus);
+ const message = `璇ヨ溅杈嗗凡鏈夋鍦ㄨ浆杩愪腑鐨勪换鍔★紒
+
+浠诲姟鍗曞彿锛�${task.taskCode}
+浠诲姟鐘舵�侊細${taskStatus}
+
+璇峰厛瀹屾垚褰撳墠浠诲姟鍚庡啀鍑哄彂鏂颁换鍔°�俙;
+
+ uni.showModal({
+ title: '鎻愮ず',
+ content: message,
+ showCancel: false,
+ confirmText: '鎴戠煡閬撲簡'
+ });
+ return;
+ }
+
+ // 杞﹁締娌℃湁鍏朵粬姝e湪杩涜涓殑浠诲姟锛屽彲浠ュ嚭鍙�
+ this.$modal.confirm('纭畾瑕佸嚭鍙戝悧锛�').then(() => {
+ this.updateTaskStatus('DEPARTING', '浠诲姟宸插嚭鍙�')
+ }).catch(() => {});
+
+ }).catch(error => {
+ uni.hideLoading();
+ console.error('妫�鏌ヨ溅杈嗙姸鎬佸け璐�:', error);
+ // 妫�鏌ュけ璐ユ椂锛屼粛鐒跺厑璁稿嚭鍙�
+ this.$modal.confirm('妫�鏌ヨ溅杈嗙姸鎬佸け璐ワ紝鏄惁缁х画鍑哄彂锛�').then(() => {
+ this.updateTaskStatus('DEPARTING', '浠诲姟宸插嚭鍙�')
+ }).catch(() => {});
+ });
+ },
+
+ // 鑾峰彇浠诲姟杞﹁締ID
+ getVehicleId() {
+ if (!this.taskDetail) {
+ return null;
+ }
+
+ // 浠庤溅杈嗗垪琛ㄤ腑鑾峰彇绗竴涓溅杈嗙殑ID
+ if (this.taskDetail.vehicleList && this.taskDetail.vehicleList.length > 0) {
+ return this.taskDetail.vehicleList[0].vehicleId;
+ }
+
+ // 鎴栬�呬粠鍗曚釜杞﹁締瀵硅薄鑾峰彇
+ if (this.taskDetail.vehicleId) {
+ return this.taskDetail.vehicleId;
+ }
+
+ return null;
+ },
+
// 鏇存柊浠诲姟鐘舵��
updateTaskStatus(status, remark) {
// 鑾峰彇GPS浣嶇疆淇℃伅
--
Gitblit v1.9.1