|
@@ -896,82 +896,112 @@ const onUserSelected = (users) => {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// 提交操作
|
|
// 提交操作
|
|
|
|
|
+// const handleSubmit = async () => {
|
|
|
|
|
+// if (!finalizeFormRef.value) return
|
|
|
|
|
+//
|
|
|
|
|
+// await finalizeFormRef.value.validate(async (valid) => {
|
|
|
|
|
+// if (valid) {
|
|
|
|
|
+// const { realStartTime, acceptTime } = formData.value;
|
|
|
|
|
+// debugger
|
|
|
|
|
+// try {
|
|
|
|
|
+// debugger
|
|
|
|
|
+// // 根据维修方式清除不需要的字段
|
|
|
|
|
+// if (formData.value.repairMethod === '1') {
|
|
|
|
|
+// // 正常维修时清除复位方式
|
|
|
|
|
+// formData.value.resetMethod = undefined;
|
|
|
|
|
+// formData.value.workArea = Array.isArray(formData.value.workArea) ? formData.value.workArea.join(',')
|
|
|
|
|
+// : formData.value.workArea || ''
|
|
|
|
|
+// } else if (formData.value.repairMethod === '2') {
|
|
|
|
|
+// // 复位启机时清除MIS相关字段
|
|
|
|
|
+// formData.value.misOrderNo = undefined;
|
|
|
|
|
+// formData.value.realStartTime = undefined;
|
|
|
|
|
+// formData.value.realEndTime = undefined;
|
|
|
|
|
+// formData.value.workGroupMemberName = undefined;
|
|
|
|
|
+// formData.value.infoEntry = undefined;
|
|
|
|
|
+// formData.value.wwryNum = undefined;
|
|
|
|
|
+// formData.value.wlryNum = undefined;
|
|
|
|
|
+// formData.value.workArea = undefined;
|
|
|
|
|
+// formData.value.repairOrderPersonList = [];
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// // 调用父组件传入的提交函数
|
|
|
|
|
+// if (props.onSubmit && typeof props.onSubmit === 'function') {
|
|
|
|
|
+//
|
|
|
|
|
+// flowList.value = []
|
|
|
|
|
+// if (formData.value.resumeTime && formData.value.resumeTime != resumeInfo.value.actionTime) { //存入新的挂起结束时间
|
|
|
|
|
+// resumeInfo.value.actionTime = formData.value.resumeTime
|
|
|
|
|
+// flowList.value.push(resumeInfo.value)
|
|
|
|
|
+// }
|
|
|
|
|
+// formData.value.repairOrderFlowList = flowList.value
|
|
|
|
|
+// formData.value.finalizeMethod = '2'
|
|
|
|
|
+// await props.onSubmit(formData.value)
|
|
|
|
|
+// } else {
|
|
|
|
|
+// throw new Error("未提供提交方法")
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// proxy.$modal.msgSuccess("结单成功")
|
|
|
|
|
+// visible.value = false
|
|
|
|
|
+// emit('success')
|
|
|
|
|
+// } catch (error) {
|
|
|
|
|
+// // proxy.$modal.msgError("操作失败: " + (error.message || "未知错误"))
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// })
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+// 核心修改:提交函数 - 临时转换workArea格式,异常时恢复
|
|
|
const handleSubmit = async () => {
|
|
const handleSubmit = async () => {
|
|
|
if (!finalizeFormRef.value) return
|
|
if (!finalizeFormRef.value) return
|
|
|
|
|
|
|
|
|
|
+ // 1. 提交前深拷贝当前表单数据(保留原始数组格式的workArea)
|
|
|
|
|
+ const submitBackup = JSON.parse(JSON.stringify(formData.value))
|
|
|
|
|
+
|
|
|
await finalizeFormRef.value.validate(async (valid) => {
|
|
await finalizeFormRef.value.validate(async (valid) => {
|
|
|
if (valid) {
|
|
if (valid) {
|
|
|
- const { realStartTime, acceptTime } = formData.value;
|
|
|
|
|
- debugger
|
|
|
|
|
- // if (realStartTime && acceptTime && (new Date(realStartTime) < new Date(acceptTime))) {
|
|
|
|
|
- // formData.value.orderEntryType = '2'
|
|
|
|
|
- // try {
|
|
|
|
|
- // debugger
|
|
|
|
|
- // await ElMessageBox.confirm(
|
|
|
|
|
- // '检测到开始时间早于接单时间,系统将按“补录工单”处理,准备工时为0。是否继续?',
|
|
|
|
|
- // '提示',
|
|
|
|
|
- // {
|
|
|
|
|
- // confirmButtonText: '是',
|
|
|
|
|
- // cancelButtonText: '否',
|
|
|
|
|
- // type: 'warning',
|
|
|
|
|
- // distinguishCancelAndClose: true
|
|
|
|
|
- // }
|
|
|
|
|
- // );
|
|
|
|
|
- // formData.value.orderEntryType = '2'
|
|
|
|
|
- // // 用户点击“是”,继续提交
|
|
|
|
|
- // } catch (error) {
|
|
|
|
|
- // // 用户点击“否”或关闭弹窗
|
|
|
|
|
- // finalizeFormRef.value?.validateField('realStartTime');
|
|
|
|
|
- // return;
|
|
|
|
|
- // }
|
|
|
|
|
- // }
|
|
|
|
|
-
|
|
|
|
|
try {
|
|
try {
|
|
|
- debugger
|
|
|
|
|
- // 根据维修方式清除不需要的字段
|
|
|
|
|
- if (formData.value.repairMethod === '1') {
|
|
|
|
|
- // 正常维修时清除复位方式
|
|
|
|
|
- formData.value.resetMethod = undefined;
|
|
|
|
|
- formData.value.workArea = Array.isArray(formData.value.workArea) ? formData.value.workArea.join(',')
|
|
|
|
|
- : formData.value.workArea || ''
|
|
|
|
|
- } else if (formData.value.repairMethod === '2') {
|
|
|
|
|
- // 复位启机时清除MIS相关字段
|
|
|
|
|
- formData.value.misOrderNo = undefined;
|
|
|
|
|
- formData.value.realStartTime = undefined;
|
|
|
|
|
- formData.value.realEndTime = undefined;
|
|
|
|
|
- formData.value.workGroupMemberName = undefined;
|
|
|
|
|
- formData.value.infoEntry = undefined;
|
|
|
|
|
- formData.value.wwryNum = undefined;
|
|
|
|
|
- formData.value.wlryNum = undefined;
|
|
|
|
|
- formData.value.workArea = undefined;
|
|
|
|
|
- formData.value.repairOrderPersonList = [];
|
|
|
|
|
|
|
+ formData.value.repairMethod = '1';
|
|
|
|
|
+ // 2. 构建提交用的临时数据(不修改原formData)
|
|
|
|
|
+ const submitData = { ...formData.value }
|
|
|
|
|
+
|
|
|
|
|
+ // 3. 仅对提交数据转换workArea格式(数组转逗号分隔字符串)
|
|
|
|
|
+ submitData.resetMethod = undefined;
|
|
|
|
|
+ // 数组转字符串:适配后端String类型
|
|
|
|
|
+ submitData.workArea = Array.isArray(submitData.workArea)
|
|
|
|
|
+ ? submitData.workArea.join(',')
|
|
|
|
|
+ : submitData.workArea || '';
|
|
|
|
|
+
|
|
|
|
|
+ // 4. 处理挂起结束时间逻辑
|
|
|
|
|
+ flowList.value = []
|
|
|
|
|
+ if (submitData.resumeTime && submitData.resumeTime != resumeInfo.value?.actionTime) {
|
|
|
|
|
+ resumeInfo.value.actionTime = submitData.resumeTime
|
|
|
|
|
+ flowList.value.push(resumeInfo.value)
|
|
|
}
|
|
}
|
|
|
|
|
+ submitData.repairOrderFlowList = flowList.value
|
|
|
|
|
+ submitData.finalizeMethod = '2'
|
|
|
|
|
|
|
|
- // 调用父组件传入的提交函数
|
|
|
|
|
|
|
+ // 5. 调用父组件提交函数(传入转换后的临时数据)
|
|
|
if (props.onSubmit && typeof props.onSubmit === 'function') {
|
|
if (props.onSubmit && typeof props.onSubmit === 'function') {
|
|
|
-
|
|
|
|
|
- flowList.value = []
|
|
|
|
|
- if (formData.value.resumeTime && formData.value.resumeTime != resumeInfo.value.actionTime) { //存入新的挂起结束时间
|
|
|
|
|
- resumeInfo.value.actionTime = formData.value.resumeTime
|
|
|
|
|
- flowList.value.push(resumeInfo.value)
|
|
|
|
|
- }
|
|
|
|
|
- formData.value.repairOrderFlowList = flowList.value
|
|
|
|
|
- formData.value.finalizeMethod = '2'
|
|
|
|
|
- await props.onSubmit(formData.value)
|
|
|
|
|
|
|
+ await props.onSubmit(submitData) // 提交转换后的数据
|
|
|
} else {
|
|
} else {
|
|
|
throw new Error("未提供提交方法")
|
|
throw new Error("未提供提交方法")
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // 提交成功逻辑
|
|
|
proxy.$modal.msgSuccess("结单成功")
|
|
proxy.$modal.msgSuccess("结单成功")
|
|
|
visible.value = false
|
|
visible.value = false
|
|
|
emit('success')
|
|
emit('success')
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
- // proxy.$modal.msgError("操作失败: " + (error.message || "未知错误"))
|
|
|
|
|
|
|
+ // 6. 后端抛出异常时,恢复原始表单数据(保留workArea数组)
|
|
|
|
|
+ // console.error('结单提交失败:', error)
|
|
|
|
|
+ formData.value = submitBackup // 恢复原始数组格式的workArea
|
|
|
|
|
+ // 重置表单验证状态
|
|
|
|
|
+ proxy.$nextTick(() => {
|
|
|
|
|
+ finalizeFormRef.value.clearValidate()
|
|
|
|
|
+ })
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
// 工作负责人快速检索方法
|
|
// 工作负责人快速检索方法
|
|
|
/** 过滤快速检索用户列表 */
|
|
/** 过滤快速检索用户列表 */
|
|
|
const filterQuickUserList = (keyword) => {
|
|
const filterQuickUserList = (keyword) => {
|