From 2f09efc660bf2cc94cbc5291ad25ca06fc9bdadf Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期六, 24 一月 2026 22:03:09 +0800
Subject: [PATCH] feat: 增加OCR测试,车辆

---
 app/pagesTask/detail.vue |  115 +++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 83 insertions(+), 32 deletions(-)

diff --git a/app/pagesTask/detail.vue b/app/pagesTask/detail.vue
index 9077526..38a10c8 100644
--- a/app/pagesTask/detail.vue
+++ b/app/pagesTask/detail.vue
@@ -7,6 +7,7 @@
       <view class="title">浠诲姟璇︽儏</view>
       <view class="edit-btn" @click="handleEdit" v-if="taskDetail && !isTaskFinished">
         <uni-icons type="compose" size="20" color="#007AFF"></uni-icons>
+        <text class="edit-text">淇敼</text>
       </view>
     </view>
     
@@ -455,33 +456,32 @@
     <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
     <view class="action-buttons" v-if="taskDetail">
       <!-- 寰呭鐞嗙姸鎬�: 鏄剧ず鍑哄彂銆佸彇娑堛�佸己鍒跺畬鎴� -->
-      <template v-if="taskDetail.taskStatus === 'PENDING'">
-        <template v-if="isCurrentUserAssignee()">
-          <button 
-            class="action-btn primary" 
-            @click="handleDepartAction()"
-          >
-            鍑哄彂
-          </button>
-          <button 
-            class="action-btn cancel" 
-            @click="handleTaskAction('cancel')"
-          >
-            鍙栨秷
-          </button>
-          <button 
-            v-if="showForceCompleteFeature() && taskDetail.taskStatus === 'PENDING'"
-            class="action-btn force-complete" 
-            @click="showForceCompleteTimeDialog()"
-          >
-            寮哄埗瀹屾垚
-          </button>
-        </template>
+      <template v-if="taskDetail.taskStatus === 'PENDING' ">
+        <button 
+          v-if="canOperateTask()"
+          class="action-btn primary" 
+          @click="handleDepartAction()"
+        >
+          鍑哄彂
+        </button>
+        <button 
+          class="action-btn cancel" 
+          @click="handleTaskAction('cancel')"
+        >
+          鍙栨秷
+        </button>
+        <button 
+          v-if="canOperateTask() && showForceCompleteFeature()"
+          class="action-btn force-complete" 
+          @click="showForceCompleteTimeDialog()"
+        >
+          寮哄埗瀹屾垚
+        </button>
       </template>
       
-      <!-- 鍑哄彂涓姸鎬�: 鏄剧ず宸插埌杈俱�佸己鍒剁粨鏉� -->
+      <!-- 鍑哄彂涓姸鎬�: 鏄剧ず宸插埌杈俱�佸己鍒剁粨鏉熴�佸己鍒跺畬鎴� -->
       <template v-else-if="taskDetail.taskStatus === 'DEPARTING'">
-        <template v-if="isCurrentUserAssignee()">
+        <template v-if="canOperateTask()">
           <button 
             class="action-btn primary" 
             @click="handleTaskAction('arrive')"
@@ -494,12 +494,19 @@
           >
             寮哄埗缁撴潫
           </button>
+          <button 
+            v-if="showForceCompleteFeature()"
+            class="action-btn force-complete" 
+            @click="showForceCompleteTimeDialog()"
+          >
+            寮哄埗瀹屾垚
+          </button>
         </template>
       </template>
       
       <!-- 宸插埌杈剧姸鎬�: 鏄剧ず宸茶繑绋� -->
       <template v-else-if="taskDetail.taskStatus === 'ARRIVED'">
-        <template v-if="isCurrentUserAssignee()">
+        <template v-if="canOperateTask()">
           <button 
             class="action-btn primary" 
             @click="handleTaskAction('return')"
@@ -511,13 +518,32 @@
       
       <!-- 杩旂▼涓姸鎬�: 鏄剧ず宸插畬鎴� -->
       <template v-else-if="taskDetail.taskStatus === 'RETURNING'">
-        <template v-if="isCurrentUserAssignee()">
+        <template v-if="canOperateTask()">
           <button 
             class="action-btn primary" 
             @click="handleTaskAction('complete')"
           >
             宸插畬鎴�
           </button>
+        </template>
+      </template>
+      
+      <!-- 澶勭悊涓姸鎬�: 鏄剧ず寮哄埗瀹屾垚銆佸彇娑� -->
+      <template v-else-if="taskDetail.taskStatus === 'IN_PROGRESS'">
+        <template v-if="canOperateTask()">
+           <button 
+            class="action-btn primary" 
+            @click="handleTaskAction('arrive')"
+          >
+            宸插埌杈�
+          </button>
+          <button 
+            v-if="showForceCompleteFeature()"
+            class="action-btn force-complete" 
+            @click="showForceCompleteTimeDialog()"
+          >
+            寮哄埗瀹屾垚
+          </button>         
         </template>
       </template>
       
@@ -914,10 +940,8 @@
             break;
             
           case 'forceCancel':
-            // 寮哄埗缁撴潫 -> 鐘舵�佸彉涓哄凡鍙栨秷
-            this.$modal.confirm('纭畾瑕佸己鍒剁粨鏉熸浠诲姟鍚楋紵').then(() => {
-              this.updateTaskStatus('CANCELLED', '浠诲姟宸插己鍒剁粨鏉�')
-            }).catch(() => {});
+            // 寮哄埗缁撴潫 -> 鏄剧ず鍙栨秷鍘熷洜閫夋嫨瀵硅瘽妗�
+            this.showCancelReasonDialog();
             break;
             
           case 'return':
@@ -1504,6 +1528,19 @@
         const list = (this.taskDetail && Array.isArray(this.taskDetail.assignees)) ? this.taskDetail.assignees : []
         return list.some(a => a && (a.userId === userId || a.oaUserId === userId))
       },
+      
+      // 鏄惁褰撳墠鐢ㄦ埛鍙互鎿嶄綔浠诲姟锛堟墽琛屼汉鎴栫鐞嗗憳锛�
+      canOperateTask() {
+        // 妫�鏌ユ槸鍚︽槸绠$悊鍛橈紙canViewAllConsult === '1'锛�
+        
+        const canViewAllConsult = this.$store && this.$store.state && this.$store.state.user && this.$store.state.user.canViewAllConsult
+        console.log("褰撳墠鐢ㄦ埛鏄惁鏄鐞嗗憳:", canViewAllConsult)
+        if (canViewAllConsult === '1') {
+          return true
+        }
+        // 妫�鏌ユ槸鍚︽槸浠诲姟鎵ц浜�
+        return this.isCurrentUserAssignee()
+      },
 
       // 鏄惁澶氫汉鎵ц
       isMultipleAssignees() {
@@ -1877,12 +1914,18 @@
       }
       
       .edit-btn {
-        width: 60rpx;
+        width: 120rpx;
         height: 60rpx;
         display: flex;
         align-items: center;
         justify-content: center;
         cursor: pointer;
+        
+        .edit-text {
+          margin-left: 8rpx;
+          font-size: 28rpx;
+          color: #007AFF;
+        }
       }
     }
     
@@ -2198,10 +2241,13 @@
         flex: 1;
         height: 80rpx;
         border-radius: 10rpx;
-        font-size: 30rpx;
+        font-size: 28rpx;
         margin: 0 10rpx;
         background-color: #f0f0f0;
         color: #333;
+        white-space: nowrap;
+        padding: 0 10rpx;
+        min-width: 0;
         
         &.edit {
           background-color: #ff9500;
@@ -2218,6 +2264,11 @@
           color: white;
         }
         
+        &.force-end {
+          background-color: #ff6b22;
+          color: white;
+        }
+        
         &.settlement {
           background-color: #34C759;
           color: white;

--
Gitblit v1.9.1