工单细节处理
This commit is contained in:
@@ -83,7 +83,7 @@
|
||||
<template #default="{ row }">
|
||||
<el-button type="primary" link size="small" @click="viewDetail(row)">详情</el-button>
|
||||
<el-button v-if="row.status === 'pending'" type="warning" link size="small" @click="assignTicket(row)">指派</el-button>
|
||||
<el-button v-if="row.status === 'processing'" type="success" link size="small" @click="completeTicket(row)">完成</el-button>
|
||||
<el-button v-if="row.status === 'processing' || row.status === 'process'" type="success" link size="small" @click="completeTicket(row)">完成</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -151,11 +151,12 @@
|
||||
|
||||
<!-- 工单详情弹窗 -->
|
||||
<el-dialog v-model="showDetailDialog" title="工单详情" width="900px" destroy-on-close>
|
||||
<WorkcaseDetail
|
||||
<WorkcaseDetail
|
||||
v-if="showDetailDialog"
|
||||
:workcase="currentWorkcase"
|
||||
:workcase-id="currentWorkcase.workcaseId"
|
||||
mode="view"
|
||||
@cancel="showDetailDialog = false"
|
||||
@complete="handleCompleteFromDetail"
|
||||
/>
|
||||
</el-dialog>
|
||||
|
||||
@@ -293,7 +294,7 @@ const completeWorkcaseAPI = async (workcase: TbWorkcaseDTO) => {
|
||||
action: 'finish',
|
||||
message: '工单完成'
|
||||
}
|
||||
|
||||
|
||||
const res = await workcaseAPI.createWorkcaseProcess(process)
|
||||
if (res.success) {
|
||||
ElMessage.success('完成成功')
|
||||
@@ -303,15 +304,25 @@ const completeWorkcaseAPI = async (workcase: TbWorkcaseDTO) => {
|
||||
}
|
||||
}
|
||||
|
||||
// ========================= Mock 数据 =========================
|
||||
const mockTickets = [
|
||||
{ workcaseId: 'WC001', optsn: 'TK001', username: '张三', phone: '13800138000', type: 'electrical', device: 'TH-500GF', emergency: 'emergency' as const, status: 'pending' as const, processor: '', createTime: '2024-12-13 10:30' },
|
||||
{ workcaseId: 'WC002', optsn: 'TK002', username: '李四', phone: '13800138001', type: 'mechanical', device: 'TH-300D', emergency: 'normal' as const, status: 'processing' as const, processor: '王五', createTime: '2024-12-13 09:15' },
|
||||
{ workcaseId: 'WC003', optsn: 'TK003', username: '王五', phone: '13800138002', type: 'control', device: 'S-200X', emergency: 'normal' as const, status: 'done' as const, processor: '赵六', createTime: '2024-12-12 14:20' },
|
||||
{ workcaseId: 'WC004', optsn: 'TK004', username: '赵六', phone: '13800138003', type: 'parts', device: 'TH-800GF', emergency: 'normal' as const, status: 'pending' as const, processor: '', createTime: '2024-12-13 11:00' },
|
||||
{ workcaseId: 'WC005', optsn: 'TK005', username: '孙七', phone: '13800138004', type: 'install', device: 'G-100S', emergency: 'emergency' as const, status: 'processing' as const, processor: '李四', createTime: '2024-12-13 08:45' }
|
||||
]
|
||||
/**
|
||||
* 从详情页完成工单
|
||||
*/
|
||||
const handleCompleteFromDetail = async (workcaseId: string) => {
|
||||
const process: TbWorkcaseProcessDTO = {
|
||||
workcaseId: workcaseId,
|
||||
action: 'finish',
|
||||
message: '工单完成'
|
||||
}
|
||||
|
||||
const res = await workcaseAPI.createWorkcaseProcess(process)
|
||||
if (res.success) {
|
||||
ElMessage.success('完成成功')
|
||||
showDetailDialog.value = false
|
||||
loadWorkcases()
|
||||
} else {
|
||||
ElMessage.error(res.message || '操作失败')
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ========================= 字段映射 =========================
|
||||
@@ -331,6 +342,7 @@ const emergencyMap: Record<string, string> = {
|
||||
|
||||
const statusMap: Record<string, string> = {
|
||||
pending: '待处理',
|
||||
process: '处理中',
|
||||
processing: '处理中',
|
||||
done: '已完成'
|
||||
}
|
||||
@@ -363,6 +375,7 @@ const filteredTickets = computed(() => {
|
||||
const getStatusType = (status: string) => {
|
||||
const map: Record<string, string> = {
|
||||
pending: 'warning',
|
||||
process: 'info',
|
||||
processing: 'info',
|
||||
done: 'success'
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user