diff --git a/src/views/dms/dmsFaultInstanceActivity/approvalRecord.vue b/src/views/dms/dmsFaultInstanceActivity/approvalRecord.vue new file mode 100644 index 0000000..e69de29 diff --git a/src/views/dms/dmsFaultInstanceActivity/backup.vue b/src/views/dms/dmsFaultInstanceActivity/backup.vue new file mode 100644 index 0000000..db10a06 --- /dev/null +++ b/src/views/dms/dmsFaultInstanceActivity/backup.vue @@ -0,0 +1,775 @@ + + + + + diff --git a/src/views/dms/dmsFaultInstanceActivity/index.vue b/src/views/dms/dmsFaultInstanceActivity/index.vue index 60c4499..2f3b903 100644 --- a/src/views/dms/dmsFaultInstanceActivity/index.vue +++ b/src/views/dms/dmsFaultInstanceActivity/index.vue @@ -4,37 +4,37 @@
- 暂存 - 提交 - {{ currentStepName }} - 主管确认 - 流程进度 @@ -89,66 +89,66 @@

{{ currentStepTitle }}

- - + @@ -157,42 +157,42 @@ - + - + - - - + + + - - - @@ -206,21 +206,21 @@ - - - + + - - + + - - + + @@ -233,8 +233,8 @@ - - + + @@ -264,11 +264,11 @@
- - + @@ -284,7 +284,7 @@ import { addDmsFaultInstanceActivity } from '@/api/dms/dmsFaultInstanceActivity' import { pageByTaskWait } from '@/api/workflow/task'; import { getCurrentDateTime } from '@/utils/dateUtils'; import { getDmsBaseOutsourcingInfoList } from '@/api/dms/dmsBaseOutsourcingInfo'; -import SubmitVerify from '@/components/Process/submitVerify.vue'; +import SubmitVerify from '@/views/dms/dmsFaultInstanceActivity/submitVerify.vue'; import ApprovalRecord from '@/components/Process/approvalRecord.vue'; const { proxy } = getCurrentInstance() as ComponentInternalInstance; @@ -352,7 +352,7 @@ const needProcessResolution = computed(() => currentStepOrder.value > 1); const currentStepName = computed(() => { const stepNames = { 1: '故障报修', - 2: '维修处理', + 2: '维修处理', 3: '维修确认' }; return stepNames[currentStepOrder.value] || '处理工单'; @@ -377,9 +377,9 @@ const confirmButtonShow = computed(() => { // 2. 或者工单状态为维修完成(2)且确认状态为待确认(0) // 3. 且审批状态为审批成功(2) - 只有审批通过的工单才能进行确认 return routeParams.value.type === 'confirm' || - (workOrder.value.billsStatus === '2' && - workOrder.value.repairConfirm === '0' && - workOrder.value.approveStatus === '2'); + (workOrder.value.billsStatus === '2' && + workOrder.value.repairConfirm === '0' && + workOrder.value.approveStatus === '2'); }); // 是否为审批阶段 @@ -414,16 +414,16 @@ onMounted(async () => { await loadCurrentTask(); } - // 初始化表单数据 - initializeFormData(); + // 初始化表单数据 + initializeFormData(); - // 设置审批阶段的表单验证规则 - if (routeParams.value.type === 'approval' && workOrder.value.approveStatus === '1') { - rules.approveStatus = [{ required: true, message: '审批状态不能为空', trigger: 'change' }]; - } + // 设置审批阶段的表单验证规则 + if (routeParams.value.type === 'approval' && workOrder.value.approveStatus === '1') { + rules.approveStatus = [{ required: true, message: '审批状态不能为空', trigger: 'change' }]; + } - // 设置外协单位验证规则 - updateOutsourcingValidation(); + // 设置外协单位验证规则 + updateOutsourcingValidation(); } catch (error) { console.error('初始化失败:', error); @@ -446,15 +446,15 @@ watch(() => form.repairType, (newValue) => { const loadWorkOrderInfo = async () => { // 从query参数获取businessId const businessId = routeParams.value.id; - + if (!businessId) { proxy?.$modal.msgError('缺少工单ID参数'); return; } - + const res = await getDmsBillsFaultInstance(businessId); workOrder.value = res.data; - + // 设置状态显示文本 workOrderStatusText.value = getStatusText(workOrder.value.billsStatus); }; @@ -464,21 +464,21 @@ const loadCurrentTask = async () => { // 从query参数获取businessId和taskId const businessId = routeParams.value.id; const taskId = routeParams.value.taskId; - + // 通过taskId或businessId获取当前任务 const taskRes = await pageByTaskWait({ pageNum: 1, pageSize: 10, flowCode: 'Fault01' // 故障维修流程代码 }); - - const tasks = taskRes.rows.filter(task => + + const tasks = taskRes.rows.filter(task => task.businessId === businessId || task.id === taskId ); - + if (tasks.length > 0) { currentTask.value = tasks[0]; - + // 根据节点名称确定当前步骤 const nodeName = currentTask.value.nodeName; if (nodeName === '故障报修') { @@ -488,7 +488,7 @@ const loadCurrentTask = async () => { } else if (nodeName === '维修确认') { currentStepOrder.value = 3; } - + // 动态设置处理意见校验规则 if (needProcessResolution.value) { rules.processHandleResolution = [ @@ -503,7 +503,7 @@ const initializeFormData = () => { // 基础信息从工单获取 form.repairInstanceId = workOrder.value.repairInstanceId; form.processStepOrder = currentStepOrder.value; - + if (currentStepOrder.value === 1) { // 第一步:故障报修,表单为空等待用户填写 form.faultType = workOrder.value.faultType; @@ -530,12 +530,12 @@ const initializeFormData = () => { // 提交表单方法 const submitForm = async (status: string) => { if (!processFormRef.value) return; - + try { const valid = await processFormRef.value.validate(); if (valid) { buttonLoading.value = true; - + if (status === 'draft') { // 暂存逻辑 await addDmsFaultInstanceActivity({ @@ -555,7 +555,7 @@ const submitForm = async (status: string) => { processStepOrder: form.processStepOrder, handleTime: getCurrentDateTime() }); - + proxy?.$modal.msgSuccess('暂存成功'); goBack(); } else { @@ -579,7 +579,7 @@ const submitForm = async (status: string) => { processStepOrder: form.processStepOrder } }; - + // 启动工作流或继续处理 if (routeParams.value.taskId) { submitVerifyRef.value?.openDialog(routeParams.value.taskId); @@ -601,7 +601,7 @@ const submitForm = async (status: string) => { // 审批处理 const approvalVerifyOpen = async () => { if (!processFormRef.value) return; - + try { const valid = await processFormRef.value.validate(); if (valid) { @@ -610,9 +610,11 @@ const approvalVerifyOpen = async () => { proxy?.$modal.msgError('请选择审批状态'); return; } - - // 准备工作流变量 - 确保变量结构符合SubmitVerify和Warm-Flow要求 + + // 准备工作流变量 - 符合Warm-Flow和submitVerify组件的期望格式 taskVariables.value = { + // 工作流变量 - 用于互斥网关条件判断 + variables: {}, // 业务实体数据 entity: { repairInstanceId: form.repairInstanceId, @@ -631,24 +633,27 @@ const approvalVerifyOpen = async () => { processStepOrder: form.processStepOrder } }; - + // 如果是审批阶段,设置跳转条件变量 if (routeParams.value.type === 'approval' && form.approveStatus) { - // 直接在taskVariables根级别设置approveStatus - 这是SubmitVerify期望的格式 + // 将approveStatus转换为数字放在variables中,供Warm-Flow互斥网关使用 + taskVariables.value.variables.approveStatus = parseInt(form.approveStatus); + // 同时在根级别设置字符串格式,兼容submitVerify组件 taskVariables.value.approveStatus = form.approveStatus; - console.log('设置审批状态变量:', form.approveStatus); + console.log('设置审批状态变量:', parseInt(form.approveStatus)); } - + // 如果是确认阶段,设置确认结果变量 if (routeParams.value.type === 'confirm' && form.repairConfirm) { // 确认通过传0,确认不通过传1 - const repairConfirmValue = form.repairConfirm === '1' ? '0' : '1'; - taskVariables.value.repairConfirm = repairConfirmValue; + const repairConfirmValue = form.repairConfirm === '1' ? 0 : 1; + taskVariables.value.variables.repairConfirm = repairConfirmValue; + taskVariables.value.repairConfirm = repairConfirmValue.toString(); console.log('设置确认结果变量:', repairConfirmValue); } - + console.log('完整的工作流变量:', taskVariables.value); - + // 直接使用传入的taskId进行审批 submitVerifyRef.value?.openDialog(routeParams.value.taskId); } @@ -665,7 +670,7 @@ const submitCallback = async (approvalResult?: any) => { // 使用用户选择的审批状态 const approveStatus = form.approveStatus; // 直接使用表单中选择的审批状态 const message = approvalResult?.message || form.processHandleResolution || ''; - + await approveWorkOrder(form.repairInstanceId, approveStatus, message); const statusText = approveStatus === '2' ? '通过' : '拒绝'; proxy?.$modal.msgSuccess(`审批${statusText}成功`); @@ -675,34 +680,34 @@ const submitCallback = async (approvalResult?: any) => { await confirmRepairResult(form.repairInstanceId, confirmResult); proxy?.$modal.msgSuccess('确认完成'); } else { - // 保存工单实例活动记录 - await addDmsFaultInstanceActivity({ - repairInstanceId: form.repairInstanceId, - faultType: form.faultType, - faultDescription: form.faultDescription, - designOperations: form.designOperations, - repairType: form.repairType, - outsourcingId: form.outsourcingId, - checkedFault: form.checkedFault || '', - repairContent: form.repairContent || '', - protectedMethod: form.protectedMethod || '', - repairer: form.repairer || '', - repairConfirm: form.repairConfirm, - componentsPartsId: form.componentsPartsId, - processHandleResolution: form.processHandleResolution || '', - processStepOrder: form.processStepOrder, - handleTime: getCurrentDateTime() - }); - - proxy?.$modal.msgSuccess(`${currentStepName.value}完成`); + // 保存工单实例活动记录 + await addDmsFaultInstanceActivity({ + repairInstanceId: form.repairInstanceId, + faultType: form.faultType, + faultDescription: form.faultDescription, + designOperations: form.designOperations, + repairType: form.repairType, + outsourcingId: form.outsourcingId, + checkedFault: form.checkedFault || '', + repairContent: form.repairContent || '', + protectedMethod: form.protectedMethod || '', + repairer: form.repairer || '', + repairConfirm: form.repairConfirm, + componentsPartsId: form.componentsPartsId, + processHandleResolution: form.processHandleResolution || '', + processStepOrder: form.processStepOrder, + handleTime: getCurrentDateTime() + }); + + proxy?.$modal.msgSuccess(`${currentStepName.value}完成`); } - + // 关闭页面返回 goBack(); - } catch (error: any) { - console.error('操作失败:', error); - proxy?.$modal.msgError('操作失败:' + (error.message || '未知错误')); - } + } catch (error: any) { + console.error('操作失败:', error); + proxy?.$modal.msgError('操作失败:' + (error.message || '未知错误')); + } }; // 主管确认处理 @@ -710,7 +715,7 @@ const handleConfirm = async () => { try { // 设置确认结果 form.repairConfirm = '1'; // 1表示确认通过 - + // 调用审批处理方法(实际上是工作流处理) await approvalVerifyOpen(); } catch (error: any) { @@ -772,4 +777,4 @@ const getStatusText = (status: string) => { color: #303133; font-weight: 600; } - \ No newline at end of file + diff --git a/src/views/dms/dmsFaultInstanceActivity/submitVerify.vue b/src/views/dms/dmsFaultInstanceActivity/submitVerify.vue new file mode 100644 index 0000000..ef85cf2 --- /dev/null +++ b/src/views/dms/dmsFaultInstanceActivity/submitVerify.vue @@ -0,0 +1,557 @@ + + + + \ No newline at end of file