From b9e9cde65890851f4ca2d7b4809b802b88937ddf Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期三, 01 四月 2026 23:05:48 +0800
Subject: [PATCH] feat:同步状态优化
---
app/pagesTask/detail.vue | 91 +++++++++++++++++++++++++--------------------
1 files changed, 50 insertions(+), 41 deletions(-)
diff --git a/app/pagesTask/detail.vue b/app/pagesTask/detail.vue
index 4bd3c08..56ec248 100644
--- a/app/pagesTask/detail.vue
+++ b/app/pagesTask/detail.vue
@@ -71,7 +71,7 @@
</view>
<!-- 褰撳墠鐧诲綍浜烘槸璇ユ墽琛屼汉涓旀湭灏辩华鏃舵樉绀哄氨缁寜閽� -->
<view
- v-if="showAssigneeReadyFeature() && isAssigneeSelf(assignee) && !isAssigneeReady(assignee) && taskDetail.taskStatus === 'PENDING'"
+ v-if="showAssigneeReadyFeature() && isAssigneeSelf(assignee) && !isAssigneeReady(assignee) && taskDetail.taskStatus === TaskStatus.PENDING"
class="assignee-ready-btn"
:data-user-id="assignee.userId || assignee.oaUserId"
:data-user-name="assignee.userName"
@@ -275,7 +275,7 @@
</view>
<!-- 鍙栨秷淇℃伅锛堜粎鍦ㄤ换鍔″凡鍙栨秷涓旀湁鍙栨秷鍘熷洜鏃舵樉绀猴級 -->
- <view class="detail-section" v-if="taskDetail.taskStatus === 'CANCELLED' && taskDetail.emergencyInfo && taskDetail.emergencyInfo.cancelReason">
+ <view class="detail-section" v-if="taskDetail.taskStatus === TaskStatus.CANCELLED && taskDetail.emergencyInfo && taskDetail.emergencyInfo.cancelReason">
<view class="section-title">鍙栨秷淇℃伅</view>
<view class="info-item">
<view class="label">鍙栨秷鍘熷洜</view>
@@ -465,8 +465,11 @@
<!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
<view class="action-buttons" v-if="taskDetail">
- <!-- 寰呭鐞嗙姸鎬�: 鏄剧ず鍑哄彂銆佸彇娑堛�佸己鍒跺畬鎴� -->
- <template v-if="taskDetail.taskStatus === 'PENDING' ">
+ <!-- 寰呭鐞嗙姸鎬侊細鏄剧ず鍑哄彂銆佸彇娑堛�佸己鍒跺畬鎴� -->
+ <template v-if="taskDetail.taskStatus === TaskStatus.PENDING
+ || taskDetail.taskStatus === TaskStatus.NOT_DEPARTED
+ || taskDetail.taskStatus === TaskStatus.NOT_CONFIRMED
+ || taskDetail.taskStatus === TaskStatus.PARTIALLY_CONFIRMED">
<button
v-if="canOperateTask()"
class="action-btn primary"
@@ -488,9 +491,9 @@
寮哄埗瀹屾垚
</button>
</template>
-
- <!-- 鍑哄彂涓姸鎬�: 鏄剧ず宸插埌杈俱�佸己鍒剁粨鏉熴�佸己鍒跺畬鎴� -->
- <template v-else-if="taskDetail.taskStatus === 'DEPARTING'">
+
+ <!-- 鍑哄彂涓姸鎬侊細鏄剧ず宸插埌杈俱�佸己鍒跺彇娑堛�佸己鍒跺畬鎴� -->
+ <template v-else-if="taskDetail.taskStatus === TaskStatus.DEPARTING">
<template v-if="canOperateTask()">
<button
class="action-btn primary"
@@ -502,7 +505,7 @@
class="action-btn cancel"
@click="handleTaskAction('forceCancel')"
>
- 寮哄埗缁撴潫
+ 寮哄埗鍙栨秷
</button>
<button
v-if="showForceCompleteFeature()"
@@ -514,8 +517,8 @@
</template>
</template>
- <!-- 宸插埌杈剧姸鎬�: 鏄剧ず宸茶繑绋� -->
- <template v-else-if="taskDetail.taskStatus === 'ARRIVED'">
+ <!-- 宸插埌杈剧姸鎬侊細鏄剧ず宸茶繑绋� -->
+ <template v-else-if="taskDetail.taskStatus === TaskStatus.ARRIVED">
<template v-if="canOperateTask()">
<button
class="action-btn primary"
@@ -526,8 +529,8 @@
</template>
</template>
- <!-- 杩旂▼涓姸鎬�: 鏄剧ず宸插畬鎴� -->
- <template v-else-if="taskDetail.taskStatus === 'RETURNING'">
+ <!-- 杩旂▼涓姸鎬侊細鏄剧ず宸插畬鎴� -->
+ <template v-else-if="taskDetail.taskStatus === TaskStatus.RETURNING">
<template v-if="canOperateTask()">
<button
class="action-btn primary"
@@ -538,8 +541,8 @@
</template>
</template>
- <!-- 澶勭悊涓姸鎬�: 鏄剧ず寮哄埗瀹屾垚銆佸彇娑� -->
- <template v-else-if="taskDetail.taskStatus === 'IN_PROGRESS'">
+ <!-- 澶勭悊涓姸鎬侊細鏄剧ず寮哄埗瀹屾垚銆佸彇娑� -->
+ <template v-else-if="taskDetail.taskStatus === TaskStatus.IN_PROGRESS">
<template v-if="canOperateTask()">
<button
class="action-btn primary"
@@ -572,13 +575,14 @@
</template>
<script>
- import { getTask, changeTaskStatus, setAssigneeReady, checkTaskConsentAttachment } from '@/api/task'
+ import { getTask, changeTaskStatus, setAssigneeReady, checkTaskConsentAttachment, syncTaskStatus } from '@/api/task'
import { checkVehicleActiveTasks } from '@/api/task'
import { getPaymentInfo } from '@/api/payment'
import { getDicts } from '@/api/dict'
import { checkTaskInvoice } from '@/api/invoice'
import { formatDateTime } from '@/utils/common'
import { validateTaskForDepart, validateTaskForSettlement, getTaskVehicleId, checkTaskCanDepart } from '@/utils/taskValidator'
+ import { getStatusText as getTaskStatusText, getTaskTypeText as getTaskTypeTextUtil, TaskStatus } from '@/utils/TaskUtil'
import AttachmentUpload from './components/AttachmentUpload.vue'
import config from '@/config'
@@ -588,6 +592,7 @@
},
data() {
return {
+ TaskStatus, // 鏆撮湶 TaskStatus 缁欐ā鏉夸娇鐢�
taskDetail: null,
taskId: null,
paymentInfo: null, // 鏀粯淇℃伅
@@ -663,10 +668,10 @@
return ''
}
const status = this.taskDetail.taskStatus
- if (status === 'PENDING') return 'pending'
- if (['DEPARTING', 'ARRIVED', 'RETURNING', 'IN_PROGRESS'].includes(status)) return 'in_progress'
- if (status === 'COMPLETED') return 'completed'
- if (status === 'CANCELLED') return 'cancelled'
+ if (status === TaskStatus.PENDING || status === TaskStatus.NOT_CONFIRMED || status === TaskStatus.NOT_DEPARTED || status === TaskStatus.PARTIALLY_CONFIRMED) return 'pending'
+ if ([TaskStatus.DEPARTING, TaskStatus.ARRIVED, TaskStatus.RETURNING, TaskStatus.IN_PROGRESS].includes(status)) return 'in_progress'
+ if (status === TaskStatus.COMPLETED) return 'completed'
+ if (status === TaskStatus.CANCELLED) return 'cancelled'
return ''
},
// 鏄剧ず璁″垝寮�濮嬫椂闂�
@@ -895,28 +900,12 @@
// 鑾峰彇鐘舵�佹枃鏈�
getStatusText(status) {
- const statusMap = {
- 'PENDING': '寰呭鐞�',
- 'DEPARTING': '鍑哄彂涓�',
- 'ARRIVED': '宸插埌杈�',
- 'RETURNING': '杩旂▼涓�',
- 'COMPLETED': '宸插畬鎴�',
- 'CANCELLED': '宸插彇娑�',
- 'IN_PROGRESS': '澶勭悊涓�' // 鍏煎鏃ф暟鎹�
- }
- return statusMap[status] || '鏈煡'
+ return getTaskStatusText(status)
},
// 鑾峰彇浠诲姟绫诲瀷鏂囨湰
getTaskTypeText(type) {
- const typeMap = {
- 'MAINTENANCE': '缁翠慨淇濆吇',
- 'FUEL': '鍔犳补',
- 'OTHER': '鍏朵粬',
- 'EMERGENCY_TRANSFER': '杞繍浠诲姟',
- 'WELFARE': '绂忕杞�'
- }
- return typeMap[type] || '鏈煡绫诲瀷'
+ return getTaskTypeTextUtil(type)
},
// 鑾峰彇鐢ㄦ埛绫诲瀷鏍囩
@@ -940,9 +929,29 @@
return
}
- uni.navigateTo({
- url: '/pagesTask/settlement?taskId=' + this.taskId
- })
+ // 妫�鏌ヤ换鍔$紪鍙锋槸鍚︿互T2寮�澶达紙鏈悓姝ュ埌鏃х郴缁燂級
+ const serviceCode = this.taskDetail.showTaskCode;
+ if (serviceCode && serviceCode.startsWith('T2')) {
+ // 鍏堝悓姝ュ啀杩涘叆缁撶畻椤�
+ uni.showLoading({ title: '鍚屾涓�...' })
+ syncTaskStatus(this.taskId).then(() => {
+ uni.hideLoading()
+ uni.navigateTo({
+ url: '/pagesTask/settlement?taskId=' + this.taskId
+ })
+ }).catch((err) => {
+ uni.hideLoading()
+ // 鍚屾澶辫触涓嶉樆鏂粨绠楋紝鍙褰曟棩蹇�
+ console.warn('浠诲姟鍚屾鏃х郴缁熷け璐ワ紝涓嶅奖鍝嶇粨绠楁祦绋�:', err)
+ uni.navigateTo({
+ url: '/pagesTask/settlement?taskId=' + this.taskId
+ })
+ })
+ } else {
+ uni.navigateTo({
+ url: '/pagesTask/settlement?taskId=' + this.taskId
+ })
+ }
},
// 澶勭悊浠诲姟鎿嶄綔
@@ -965,7 +974,7 @@
break;
case 'forceCancel':
- // 寮哄埗缁撴潫 -> 鏄剧ず鍙栨秷鍘熷洜閫夋嫨瀵硅瘽妗�
+ // 寮哄埗鍙栨秷 -> 鏄剧ず鍙栨秷鍘熷洜閫夋嫨瀵硅瘽妗�
this.showCancelReasonDialog();
break;
--
Gitblit v1.9.1