web工单处理

This commit is contained in:
2025-12-28 13:18:28 +08:00
parent 1148e3368d
commit 7de30b1b36
12 changed files with 1209 additions and 95 deletions

View File

@@ -158,6 +158,15 @@
@cancel="showDetailDialog = false"
/>
</el-dialog>
<!-- 指派工单弹窗 -->
<WorkcaseAssign
v-model="showAssignDialog"
:workcase-id="assignWorkcaseId"
:current-processor="assignCurrentProcessor"
action="assign"
@success="handleAssignSuccess"
/>
</AdminLayout>
</template>
@@ -168,6 +177,7 @@ import { Plus, Search } from 'lucide-vue-next'
import { ElMessage, ElMessageBox } from 'element-plus'
import { workcaseAPI } from '@/api/workcase'
import WorkcaseDetail from '@/views/public/workcase/WorkcaseDetail/WorkcaseDetail.vue'
import { WorkcaseAssign } from '@/components'
import type { TbWorkcaseDTO, TbWorkcaseProcessDTO } from '@/types/workcase'
import type { PageRequest, PageParam } from 'shared/types'
@@ -183,6 +193,11 @@ const showDetailDialog = ref(false)
const currentWorkcase = ref<TbWorkcaseDTO>({})
const loading = ref(false)
// 指派弹窗相关
const showAssignDialog = ref(false)
const assignWorkcaseId = ref('')
const assignCurrentProcessor = ref('')
const formData = ref<TbWorkcaseDTO>({
username: '',
phone: '',
@@ -254,30 +269,19 @@ const createWorkcaseAPI = async () => {
}
/**
* 指派工单 - API调用
* 指派工单 - 打开指派弹窗
*/
const assignWorkcaseAPI = async (workcase: TbWorkcaseDTO) => {
const { value: processor } = await ElMessageBox.prompt('请输入处理人ID', '指派工单', {
confirmButtonText: '确定',
cancelButtonText: '取消'
}).catch(() => ({ value: '' }))
if (!processor) return
const process: TbWorkcaseProcessDTO = {
workcaseId: workcase.workcaseId,
action: 'assign',
processor: processor,
message: '工单指派'
}
const res = await workcaseAPI.createWorkcaseProcess(process)
if (res.success) {
ElMessage.success('指派成功')
loadWorkcases()
} else {
ElMessage.error(res.message || '指派失败')
}
assignWorkcaseId.value = workcase.workcaseId || ''
assignCurrentProcessor.value = workcase.processor || ''
showAssignDialog.value = true
}
/**
* 指派成功回调
*/
const handleAssignSuccess = () => {
loadWorkcases()
}
/**