From 3328aec7bc4cc2c090f015cba905a82d6d52870c Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期日, 19 十月 2025 10:34:29 +0800
Subject: [PATCH] fix:更新
---
app/pages/index.vue | 175 +++++++++++++++++++++++++++++-----------------------------
1 files changed, 87 insertions(+), 88 deletions(-)
diff --git a/app/pages/index.vue b/app/pages/index.vue
index 0caeb01..82ed65a 100644
--- a/app/pages/index.vue
+++ b/app/pages/index.vue
@@ -78,46 +78,59 @@
<!-- 鎿嶄綔鎸夐挳 -->
<view class="task-actions">
- <button
- class="action-btn"
- :class="{ disabled: isActionDisabled(task, 'depart') }"
- @click="handleTaskAction(task, 'depart')"
- v-if="task.status !== 'completed'"
- >
- 鍑哄彂
- </button>
- <button
- class="action-btn"
- :class="{ disabled: isActionDisabled(task, 'arrive') }"
- @click="handleTaskAction(task, 'arrive')"
- v-if="task.status !== 'completed'"
- >
- 宸插埌杈�
- </button>
- <button
- class="action-btn"
- :class="{ disabled: isActionDisabled(task, 'return') }"
- @click="handleTaskAction(task, 'return')"
- v-if="task.status !== 'completed'"
- >
- 杩旂▼
- </button>
- <button
- class="action-btn"
- :class="{ disabled: isActionDisabled(task, 'settle') }"
- @click="handleTaskAction(task, 'settle')"
- v-if="task.status !== 'completed'"
- >
- 缁撶畻
- </button>
- <button
- class="action-btn primary"
- :class="{ disabled: isActionDisabled(task, 'complete') }"
- @click="handleTaskAction(task, 'complete')"
- v-if="task.status !== 'completed'"
- >
- 宸插畬鎴�
- </button>
+ <!-- 寰呭鐞嗙姸鎬�: 鏄剧ず鍑哄彂銆佸彇娑� -->
+ <template v-if="task.taskStatus === 'PENDING'">
+ <button
+ class="action-btn primary"
+ @click="handleTaskAction(task, 'depart')"
+ >
+ 鍑哄彂
+ </button>
+ <button
+ class="action-btn cancel"
+ @click="handleTaskAction(task, 'cancel')"
+ >
+ 鍙栨秷
+ </button>
+ </template>
+
+ <!-- 鍑哄彂涓姸鎬�: 鏄剧ず宸插埌杈俱�佸己鍒剁粨鏉� -->
+ <template v-else-if="task.taskStatus === 'DEPARTING'">
+ <button
+ class="action-btn primary"
+ @click="handleTaskAction(task, 'arrive')"
+ >
+ 宸插埌杈�
+ </button>
+ <button
+ class="action-btn cancel"
+ @click="handleTaskAction(task, 'forceCancel')"
+ >
+ 寮哄埗缁撴潫
+ </button>
+ </template>
+
+ <!-- 宸插埌杈剧姸鎬�: 鏄剧ず宸茶繑绋� -->
+ <template v-else-if="task.taskStatus === 'ARRIVED'">
+ <button
+ class="action-btn primary"
+ @click="handleTaskAction(task, 'return')"
+ >
+ 宸茶繑绋�
+ </button>
+ </template>
+
+ <!-- 杩旂▼涓姸鎬�: 鏄剧ず宸插畬鎴� -->
+ <template v-else-if="task.taskStatus === 'RETURNING'">
+ <button
+ class="action-btn primary"
+ @click="handleTaskAction(task, 'complete')"
+ >
+ 宸插畬鎴�
+ </button>
+ </template>
+
+ <!-- 宸插畬鎴�/宸插彇娑�: 涓嶆樉绀烘寜閽� -->
</view>
</view>
@@ -383,69 +396,50 @@
this.$tab.navigateTo(`/pages/task/detail?id=${task.taskId || task.id}`);
},
- // 鍒ゆ柇鎿嶄綔鎸夐挳鏄惁绂佺敤
- isActionDisabled(task, action) {
- // 鏍规嵁浠诲姟鐨勫疄闄呯姸鎬佸垽鏂�
- const taskStatus = task.taskStatus
- switch (action) {
- case 'depart':
- return taskStatus !== 'PENDING'
- case 'arrive':
- return taskStatus !== 'DEPARTING'
- case 'return':
- return taskStatus !== 'ARRIVED'
- case 'settle':
- return !['ARRIVED', 'RETURNING'].includes(taskStatus)
- case 'complete':
- return taskStatus !== 'RETURNING'
- default:
- return false
- }
- },
-
// 澶勭悊浠诲姟鎿嶄綔
handleTaskAction(task, action) {
- if (this.isActionDisabled(task, action)) {
- return
- }
-
switch (action) {
case 'depart':
- // 鍑哄彂鎿嶄綔 -> 鐘舵�佸彉涓哄嚭鍙戜腑
- let departMessage = '纭畾瑕佸嚭鍙戝悧锛�'
- if (task.taskType !== 'MAINTENANCE' && task.taskType !== 'FUEL') {
- departMessage = '鍑哄彂鍘荤洰鐨勫湴锛岀‘璁わ紵'
- }
- this.$modal.confirm(departMessage).then(() => {
+ // 鍑哄彂 -> 鐘舵�佸彉涓哄嚭鍙戜腑
+ this.$modal.confirm('纭畾瑕佸嚭鍙戝悧锛�').then(() => {
this.updateTaskStatus(task.taskId, 'DEPARTING', '浠诲姟宸插嚭鍙�')
- }).catch(() => {})
- break
+ }).catch(() => {});
+ break;
+
+ case 'cancel':
+ // 鍙栨秷 -> 浜屾纭鍚庣姸鎬佸彉涓哄凡鍙栨秷
+ this.$modal.confirm('纭畾瑕佸彇娑堟浠诲姟鍚楋紵').then(() => {
+ this.updateTaskStatus(task.taskId, 'CANCELLED', '浠诲姟宸插彇娑�')
+ }).catch(() => {});
+ break;
case 'arrive':
- // 宸插埌杈炬搷浣� -> 鐘舵�佸彉涓哄凡鍒拌揪
- this.$modal.confirm('宸茬粡鍒拌揪鐩殑鍦帮紝纭锛�').then(() => {
+ // 宸插埌杈� -> 鐘舵�佸彉涓哄凡鍒拌揪
+ this.$modal.confirm('纭宸插埌杈剧洰鐨勫湴锛�').then(() => {
this.updateTaskStatus(task.taskId, 'ARRIVED', '宸插埌杈剧洰鐨勫湴')
- }).catch(() => {})
- break
+ }).catch(() => {});
+ break;
+
+ case 'forceCancel':
+ // 寮哄埗缁撴潫 -> 鐘舵�佸彉涓哄凡鍙栨秷
+ this.$modal.confirm('纭畾瑕佸己鍒剁粨鏉熸浠诲姟鍚楋紵').then(() => {
+ this.updateTaskStatus(task.taskId, 'CANCELLED', '浠诲姟宸插己鍒剁粨鏉�')
+ }).catch(() => {});
+ break;
case 'return':
- // 杩旂▼鎿嶄綔 -> 鐘舵�佸彉涓鸿繑绋嬩腑
+ // 宸茶繑绋� -> 鐘舵�佸彉涓鸿繑绋嬩腑
this.$modal.confirm('纭寮�濮嬭繑绋嬶紵').then(() => {
this.updateTaskStatus(task.taskId, 'RETURNING', '宸插紑濮嬭繑绋�')
- }).catch(() => {})
- break
-
- case 'settle':
- // 缁撶畻鎿嶄綔锛岃烦杞埌缁撶畻椤甸潰
- this.$tab.navigateTo(`/pages/task/settlement?id=${task.taskId}`)
- break
+ }).catch(() => {});
+ break;
case 'complete':
- // 宸插畬鎴愭搷浣� -> 鐘舵�佸彉涓哄凡瀹屾垚
- this.$modal.confirm('浠诲姟鏄惁宸茬粡鍏ㄩ儴瀹屾垚锛岀‘璁わ紵').then(() => {
+ // 宸插畬鎴� -> 鐘舵�佸彉涓哄凡瀹屾垚
+ this.$modal.confirm('纭浠诲姟宸插畬鎴愶紵').then(() => {
this.updateTaskStatus(task.taskId, 'COMPLETED', '浠诲姟宸插畬鎴�')
- }).catch(() => {})
- break
+ }).catch(() => {});
+ break;
}
},
@@ -759,6 +753,11 @@
color: white;
}
+ &.cancel {
+ background-color: #ff3b30;
+ color: white;
+ }
+
&.disabled {
opacity: 0.5;
}
--
Gitblit v1.9.1