diff --git a/src/views/mes/plan/PlanForm.vue b/src/views/mes/plan/PlanForm.vue index 1e44dbb4..4152741a 100644 --- a/src/views/mes/plan/PlanForm.vue +++ b/src/views/mes/plan/PlanForm.vue @@ -120,6 +120,7 @@ value-format="x" :placeholder="t('ProductionPlan.Plan.dialogPlanStartPlaceholder')" class="!w-full" + @change="handlePlanStartTimeChange" /> @@ -129,6 +130,7 @@ value-format="x" :placeholder="t('ProductionPlan.Plan.dialogPlanEndPlaceholder')" class="!w-full" + @change="handlePlanEndTimeChange" /> @@ -268,13 +270,53 @@ const validateLatestStartTime = (_rule: any, value: any, callback: (error?: Erro } callback() } +const validatePlanStartTime = (_rule: any, value: any, callback: (error?: Error) => void) => { + if (!value || !formData.value.planEndTime) { + callback() + return + } + const startTime = Number(value) + const endTime = Number(formData.value.planEndTime) + if (Number.isNaN(startTime) || Number.isNaN(endTime)) { + callback() + return + } + if (startTime > endTime) { + callback(new Error('计划开始时间不能晚于计划结束时间')) + return + } + callback() +} +const validatePlanEndTime = (_rule: any, value: any, callback: (error?: Error) => void) => { + if (!value || !formData.value.planStartTime) { + callback() + return + } + const endTime = Number(value) + const startTime = Number(formData.value.planStartTime) + if (Number.isNaN(endTime) || Number.isNaN(startTime)) { + callback() + return + } + if (endTime < startTime) { + callback(new Error('计划结束时间不能早于计划开始时间')) + return + } + callback() +} const formRules = reactive({ taskDetailId: [{ required: true, message: t('ProductionPlan.Plan.validatorTaskDetailRequired'), trigger: 'blur' }], taskId: [{ required: true, message: t('ProductionPlan.Plan.validatorTaskRequired'), trigger: 'blur' }], planNumber: [{ required: true, message: t('ProductionPlan.Plan.validatorPlanNumberRequired'), trigger: 'blur' }], // reyaNumber: [{ required: true, message: t('ProductionPlan.Plan.validatorReyaNumberRequired'), trigger: 'blur' }], - planStartTime: [{ required: true, message: t('ProductionPlan.Plan.validatorPlanStartRequired'), trigger: 'blur' }], - planEndTime: [{ required: true, message: t('ProductionPlan.Plan.validatorPlanEndRequired'), trigger: 'blur' }], + planStartTime: [ + { required: true, message: t('ProductionPlan.Plan.validatorPlanStartRequired'), trigger: 'blur' }, + { validator: validatePlanStartTime, trigger: 'change' } + ], + planEndTime: [ + { required: true, message: t('ProductionPlan.Plan.validatorPlanEndRequired'), trigger: 'blur' }, + { validator: validatePlanEndTime, trigger: 'change' } + ], feedingPipeline: [{ required: true, message: '请选择设备', trigger: 'change' }], isPreProduction: [{ required: true, message: t('ProductionPlan.Plan.validatorPreProductionRequired'), trigger: 'blur' }], latestStartTime: [ @@ -431,6 +473,12 @@ const handleTaskChange = async() => { const handleTaskDetailChange = async() => { syncFinishDateByTaskDetail() } +const handlePlanStartTimeChange = () => { + formRef.value?.validateField(['planStartTime', 'planEndTime']) +} +const handlePlanEndTimeChange = () => { + formRef.value?.validateField(['planStartTime', 'planEndTime']) +}