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'])
+}