diff --git a/src/views/mes/deviceledger/DeviceLedgerForm.vue b/src/views/mes/deviceledger/DeviceLedgerForm.vue index b9389836..c18c6c4e 100644 --- a/src/views/mes/deviceledger/DeviceLedgerForm.vue +++ b/src/views/mes/deviceledger/DeviceLedgerForm.vue @@ -53,20 +53,24 @@ :placeholder="t('EquipmentManagement.EquipmentLedger.placeholderDeviceSpec')" /> - - + + - - + + - - + + @@ -514,6 +518,7 @@ const initFormData = () => ({ const formData = ref({ ...initFormData() }) +const isScheduledEnabled = computed(() => Number(formData.value.isScheduled) === 1) const validateDeviceCode = (_rule, value, callback) => { if (Boolean(formData.value.isCode)) { callback() @@ -525,15 +530,37 @@ const validateDeviceCode = (_rule, value, callback) => { } callback() } +const validateScheduledRequired = (label: string) => (_rule, value, callback) => { + if (!isScheduledEnabled.value) { + callback() + return + } + const normalized = normalizeNumberish(value) + if (normalized === undefined) { + callback(new Error(`请输入${label}`)) + return + } + callback() +} const formRules = reactive({ deviceCode: [{ validator: validateDeviceCode, trigger: ['blur', 'change'] }], deviceName: [{ required: true, message: t('EquipmentManagement.EquipmentLedger.placeholderDeviceName'), trigger: 'blur' }], deviceType: [{ required: true, message: t('EquipmentManagement.EquipmentLedger.placeholderDeviceType'), trigger: 'change' }], + ratedCapacity: [{ validator: validateScheduledRequired('额定产能'), trigger: ['blur', 'change'] }], + dailyAverageValue: [{ validator: validateScheduledRequired('每日报工平均值'), trigger: ['blur', 'change'] }], + dataCollectionCapacity: [{ validator: validateScheduledRequired('数据采集产能'), trigger: ['blur', 'change'] }], productionDate: [{ required: true, message: t('EquipmentManagement.EquipmentLedger.placeholderProductionDate'), trigger: 'change' }], factoryEntryDate: [{ required: true, message: t('EquipmentManagement.EquipmentLedger.placeholderFactoryEntryDate'), trigger: 'change' }] }) const formRef = ref() // 表单 Ref +watch( + () => formData.value.isScheduled, + () => { + formRef.value?.clearValidate?.(['ratedCapacity', 'dailyAverageValue', 'dataCollectionCapacity']) + } +) + const treeSelectProps = { label: 'name', children: 'children' } const deviceTypeTree = ref([]) const users = ref([])