| | |
| | | |
| | | <!-- 基本信息 --> |
| | | <el-descriptions title="基本信息" :column="2" border> |
| | | <el-descriptions-item label="任务编号">{{ taskDetail.taskCode }}</el-descriptions-item> |
| | | <el-descriptions-item label="任务编号">{{ taskDetail.showTaskCode }}</el-descriptions-item> |
| | | <el-descriptions-item label="任务类型"> |
| | | <dict-tag :options="dict.type.sys_task_type" :value="taskDetail.taskType"/> |
| | | </el-descriptions-item> |
| | |
| | | <i class="el-icon-error"></i> 同步失败 |
| | | </el-tag> |
| | | <span v-else style="color: #C0C4CC;">--</span> |
| | | <!-- 未同步或同步失败时显示同步按钮 --> |
| | | <el-button |
| | | v-if="taskDetail.emergencyInfo.syncStatus === 0 || taskDetail.emergencyInfo.syncStatus === 3" |
| | | type="primary" |
| | | size="mini" |
| | | icon="el-icon-refresh" |
| | | :loading="syncingServiceOrder" |
| | | @click="syncServiceOrder" |
| | | style="margin-left: 10px;" |
| | | >同步服务单</el-button> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="服务单号"> |
| | | <span v-if="taskDetail.emergencyInfo.legacyServiceOrdId"> |
| | | <el-tag type="primary" size="small">{{ taskDetail.emergencyInfo.legacyServiceOrdId }}</el-tag> |
| | | </span> |
| | | <span v-else style="color: #C0C4CC;">--</span> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="服务单编码"> |
| | | <span v-if="taskDetail.emergencyInfo.serviceCode"> |
| | | <el-tag type="success" size="small">{{ taskDetail.emergencyInfo.serviceCode }}</el-tag> |
| | | </span> |
| | | <span v-else style="color: #C0C4CC;">--</span> |
| | | </el-descriptions-item> |
| | |
| | | <i class="el-icon-error"></i> 同步失败 |
| | | </el-tag> |
| | | <span v-else style="color: #C0C4CC;">--</span> |
| | | <!-- 未同步或同步失败时显示同步按钮 --> |
| | | <el-button |
| | | v-if="taskDetail.emergencyInfo.dispatchSyncStatus === 0 || taskDetail.emergencyInfo.dispatchSyncStatus === 3" |
| | | type="primary" |
| | | size="mini" |
| | | icon="el-icon-refresh" |
| | | :loading="syncingDispatchOrder" |
| | | @click="syncDispatchOrder" |
| | | style="margin-left: 10px;" |
| | | >同步调度单</el-button> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="调度单号"> |
| | | <span v-if="taskDetail.emergencyInfo.legacyDispatchOrdId"> |
| | | <el-tag type="primary" size="small">{{ taskDetail.emergencyInfo.legacyDispatchOrdId }}</el-tag> |
| | | </span> |
| | | <span v-else style="color: #C0C4CC;">--</span> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="调度单编码"> |
| | | <span v-if="taskDetail.emergencyInfo.dispatchCode"> |
| | | <el-tag type="success" size="small">{{ taskDetail.emergencyInfo.dispatchCode }}</el-tag> |
| | | </span> |
| | | <span v-else style="color: #C0C4CC;">--</span> |
| | | </el-descriptions-item> |
| | |
| | | </el-descriptions> |
| | | |
| | | <!-- 操作按钮 --> |
| | | <div style="margin-top: 20px; text-align: center;"> |
| | | <!-- <div style="margin-top: 20px; text-align: center;"> |
| | | <el-button type="primary" @click="handleEdit" v-hasPermi="['task:general:edit']">编辑任务</el-button> |
| | | <el-button type="success" @click="handleAssign" v-hasPermi="['task:general:assign']">分配任务</el-button> |
| | | <el-button type="warning" @click="handleStatusChange" v-hasPermi="['task:general:status']">状态变更</el-button> |
| | | <el-button type="info" @click="handleVehicleAssign" v-hasPermi="['task:general:assign']">分配车辆</el-button> |
| | | </div> |
| | | </div> --> |
| | | </el-card> |
| | | |
| | | <!-- 执行人员列表 --> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { getTask, updateTask, assignTask, changeTaskStatus, uploadAttachment, deleteAttachment, getTaskVehicles, getAvailableVehicles, assignVehiclesToTask, unassignVehicleFromTask, getPaymentInfo } from "@/api/task"; |
| | | import { getTask, updateTask, assignTask, changeTaskStatus, uploadAttachment, deleteAttachment, getTaskVehicles, getAvailableVehicles, assignVehiclesToTask, unassignVehicleFromTask, getPaymentInfo, syncServiceOrder, syncDispatchOrder } from "@/api/task"; |
| | | import { listUser } from "@/api/system/user"; |
| | | import { getToken } from "@/utils/auth"; |
| | | |
| | |
| | | category: [ |
| | | { required: true, message: "业务分类不能为空", trigger: "change" } |
| | | ] |
| | | } |
| | | }, |
| | | // 同步加载状态 |
| | | syncingServiceOrder: false, |
| | | syncingDispatchOrder: false |
| | | }; |
| | | }, |
| | | created() { |
| | |
| | | if (!fileType) return false; |
| | | const imageTypes = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp']; |
| | | return imageTypes.includes(fileType.toLowerCase()); |
| | | }, |
| | | /** 手动同步服务单 */ |
| | | syncServiceOrder() { |
| | | this.$modal.confirm('是否确认同步服务单到旧系统?').then(() => { |
| | | this.syncingServiceOrder = true; |
| | | return syncServiceOrder(this.taskDetail.taskId); |
| | | }).then(() => { |
| | | this.$modal.msgSuccess("服务单同步成功"); |
| | | // 重新加载任务详情 |
| | | this.getDetail(); |
| | | }).catch(() => { |
| | | // 处理取消和错误 |
| | | }).finally(() => { |
| | | this.syncingServiceOrder = false; |
| | | }); |
| | | }, |
| | | /** 手动同步调度单 */ |
| | | syncDispatchOrder() { |
| | | this.$modal.confirm('是否确认同步调度单到旧系统?').then(() => { |
| | | this.syncingDispatchOrder = true; |
| | | return syncDispatchOrder(this.taskDetail.taskId); |
| | | }).then(() => { |
| | | this.$modal.msgSuccess("调度单同步成功"); |
| | | // 重新加载任务详情 |
| | | this.getDetail(); |
| | | }).catch(() => { |
| | | // 处理取消和错误 |
| | | }).finally(() => { |
| | | this.syncingDispatchOrder = false; |
| | | }); |
| | | } |
| | | } |
| | | }; |