| | |
| | | </button> |
| | | </template> |
| | | |
| | | <!-- 出发中状态:显示已到达、强制结束、强制完成 --> |
| | | <!-- 出发中状态:显示已到达、强制取消、强制完成 --> |
| | | <template v-else-if="taskDetail.taskStatus === TaskStatus.DEPARTING"> |
| | | <template v-if="canOperateTask()"> |
| | | <button |
| | |
| | | class="action-btn cancel" |
| | | @click="handleTaskAction('forceCancel')" |
| | | > |
| | | 强制结束 |
| | | 强制取消 |
| | | </button> |
| | | <button |
| | | v-if="showForceCompleteFeature()" |
| | |
| | | </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' |
| | |
| | | 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 |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | // 处理任务操作 |
| | |
| | | break; |
| | | |
| | | case 'forceCancel': |
| | | // 强制结束 -> 显示取消原因选择对话框 |
| | | // 强制取消 -> 显示取消原因选择对话框 |
| | | this.showCancelReasonDialog(); |
| | | break; |
| | | |