|
|
|
@ -368,23 +368,21 @@ const currentStepTitle = computed(() => {
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const approvalButtonShow = computed(() => {
|
|
|
|
|
return routeParams.value.type === 'approval' && currentTask.value;
|
|
|
|
|
// 显示审批按钮的条件:工单审批状态为待审批(1)
|
|
|
|
|
return workOrder.value?.approveStatus === '1';
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const confirmButtonShow = computed(() => {
|
|
|
|
|
// 显示确认按钮的条件:
|
|
|
|
|
// 1. 页面类型是confirm
|
|
|
|
|
// 2. 或者工单状态为维修完成(2)且确认状态为待确认(0)
|
|
|
|
|
// 3. 且审批状态为审批成功(2) - 只有审批通过的工单才能进行确认
|
|
|
|
|
return routeParams.value.type === 'confirm' ||
|
|
|
|
|
(workOrder.value?.billsStatus === '2' &&
|
|
|
|
|
workOrder.value?.repairConfirm === '0' &&
|
|
|
|
|
workOrder.value?.approveStatus === '2');
|
|
|
|
|
// 显示主管确认按钮的条件:
|
|
|
|
|
// 工单状态为维修完成(2) && 审批状态为审批成功(2) && 确认状态为待确认(0)
|
|
|
|
|
return workOrder.value?.billsStatus === '2' &&
|
|
|
|
|
workOrder.value?.approveStatus === '2' &&
|
|
|
|
|
workOrder.value?.repairConfirm === '0';
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 是否为审批阶段
|
|
|
|
|
const isApprovalStage = computed(() => {
|
|
|
|
|
return routeParams.value.type === 'approval' && workOrder.value?.approveStatus === '1';
|
|
|
|
|
return workOrder.value?.approveStatus === '1';
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 提交按钮显示控制逻辑
|
|
|
|
@ -410,7 +408,7 @@ onMounted(async () => {
|
|
|
|
|
await getOutsourceList();
|
|
|
|
|
|
|
|
|
|
// 获取当前任务信息
|
|
|
|
|
if (routeParams.value.type === 'approval') {
|
|
|
|
|
if (routeParams.value.type === 'approval' || routeParams.value.type === 'confirm') {
|
|
|
|
|
await loadCurrentTask();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -664,15 +662,42 @@ const submitCallback = async (approvalResult?: any) => {
|
|
|
|
|
// 主管确认处理
|
|
|
|
|
const handleConfirm = async () => {
|
|
|
|
|
try {
|
|
|
|
|
// 设置确认结果
|
|
|
|
|
// 显示确认对话框
|
|
|
|
|
await proxy?.$modal.confirm('是否确认维修结果通过?\n通过:维修通过,工单完成\n退回:维修不通过,返回维修环节重新维修');
|
|
|
|
|
|
|
|
|
|
buttonLoading.value = true;
|
|
|
|
|
|
|
|
|
|
// 用户点击确定,设置为确认通过
|
|
|
|
|
form.repairConfirm = '1'; // 1表示确认通过
|
|
|
|
|
|
|
|
|
|
// 调用审批处理方法(实际上是工作流处理)
|
|
|
|
|
await approvalVerifyOpen();
|
|
|
|
|
|
|
|
|
|
// 调用主管确认接口
|
|
|
|
|
await confirmRepairResult(form.repairInstanceId, form.repairConfirm);
|
|
|
|
|
proxy?.$modal.msgSuccess('确认通过完成');
|
|
|
|
|
goBack();
|
|
|
|
|
|
|
|
|
|
} catch (error: any) {
|
|
|
|
|
if (error !== 'cancel' && error !== 'close') {
|
|
|
|
|
if (error === 'cancel' || error === 'close') {
|
|
|
|
|
// 用户点击取消,设置为确认不通过
|
|
|
|
|
try {
|
|
|
|
|
buttonLoading.value = true;
|
|
|
|
|
form.repairConfirm = '2'; // 2表示确认不通过
|
|
|
|
|
await confirmRepairResult(form.repairInstanceId, form.repairConfirm);
|
|
|
|
|
proxy?.$modal.msgSuccess('确认不通过完成');
|
|
|
|
|
goBack();
|
|
|
|
|
} catch (confirmError: any) {
|
|
|
|
|
console.error('确认不通过失败:', confirmError);
|
|
|
|
|
proxy?.$modal.msgError('确认不通过失败:' + (confirmError.message || '未知错误'));
|
|
|
|
|
} finally {
|
|
|
|
|
buttonLoading.value = false;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
console.error('确认失败:', error);
|
|
|
|
|
proxy?.$modal.msgError('确认失败:' + (error.message || '未知错误'));
|
|
|
|
|
buttonLoading.value = false;
|
|
|
|
|
}
|
|
|
|
|
} finally {
|
|
|
|
|
if (form.repairConfirm === '1') {
|
|
|
|
|
buttonLoading.value = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
@ -715,18 +740,18 @@ const setDynamicValidationRules = () => {
|
|
|
|
|
rules[key] = [{ required: false, message: rules[key][0].message, trigger: rules[key][0].trigger }];
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 根据页面类型和步骤设置验证规则
|
|
|
|
|
if (routeParams.value.type === 'approval') {
|
|
|
|
|
// 审批阶段只需要审批状态和处理意见
|
|
|
|
|
// 根据工单状态设置验证规则
|
|
|
|
|
if (workOrder.value?.approveStatus === '1') {
|
|
|
|
|
// 审批阶段:需要审批状态和处理意见
|
|
|
|
|
rules.approveStatus = [{ required: true, message: '审批状态不能为空', trigger: 'change' }];
|
|
|
|
|
if (needProcessResolution.value) {
|
|
|
|
|
rules.processHandleResolution = [{ required: true, message: '处理意见不能为空', trigger: 'blur' }];
|
|
|
|
|
}
|
|
|
|
|
} else if (routeParams.value.type === 'confirm') {
|
|
|
|
|
// 确认阶段只需要确认结果和处理意见
|
|
|
|
|
rules.processHandleResolution = [{ required: true, message: '处理意见不能为空', trigger: 'blur' }];
|
|
|
|
|
} else if (workOrder.value?.billsStatus === '2' &&
|
|
|
|
|
workOrder.value?.approveStatus === '2' &&
|
|
|
|
|
workOrder.value?.repairConfirm === '0') {
|
|
|
|
|
// 主管确认阶段:需要确认结果和处理意见
|
|
|
|
|
rules.repairConfirm = [{ required: true, message: '维修结果不能为空', trigger: 'change' }];
|
|
|
|
|
rules.processHandleResolution = [{ required: true, message: '处理意见不能为空', trigger: 'blur' }];
|
|
|
|
|
} else {
|
|
|
|
|
} else if (routeParams.value.type === 'add' || routeParams.value.type === 'update') {
|
|
|
|
|
// 新增或编辑模式,根据当前步骤设置验证规则
|
|
|
|
|
if (currentStepOrder.value === 1) {
|
|
|
|
|
// 第一步:故障报修
|
|
|
|
|