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