diff --git a/src/components/BasicForm/src/BasicForm.vue b/src/components/BasicForm/src/BasicForm.vue index afc1d884d..bcd2d6326 100644 --- a/src/components/BasicForm/src/BasicForm.vue +++ b/src/components/BasicForm/src/BasicForm.vue @@ -658,7 +658,7 @@ const inpuFocus = (headerItem, row, index) => { * @param cur 改变后值 */ const onChange = (field, cur) => { - emit('onChange', field, cur) + emit('onChange', field, cur, formRef) } /** diff --git a/src/views/qms/aql/aql.data.ts b/src/views/qms/aql/aql.data.ts index f3dc3fe56..8b04deda5 100644 --- a/src/views/qms/aql/aql.data.ts +++ b/src/views/qms/aql/aql.data.ts @@ -1,6 +1,7 @@ import type { CrudSchema } from '@/hooks/web/useCrudSchemas' import { dateFormatter } from '@/utils/formatTime' import {getSamplingScheme} from "@/api/qms/aql"; +import {validateNum} from "@/utils/validator"; // 表单校验 export const AqlRules = reactive({ @@ -8,7 +9,58 @@ export const AqlRules = reactive({ inspectionQualification: [required], sampleCharacterCode: [required], sampleSize: [required], - // available: [required], + a0separator010: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r0separator010: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a0separator015: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r0separator015: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a0separator025: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r0separator025: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a0separator040: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r0separator040: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a0separator065: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r0separator065: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a0separator10: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r0separator10: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a0separator15: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r0separator15: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a0separator25: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r0separator25: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a0separator40: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r0separator40: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a0separator65: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r0separator65: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a1separator0: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r1separator0: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a1separator5: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r1separator5: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a2separator5: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r2separator5: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a4separator0: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r4separator0: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a6separator5: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r6separator5: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a10: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r10: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a15: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r15: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a25: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r25: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a40: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r40: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a65: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r65: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a100: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r100: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a150: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r150: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a250: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r250: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a400: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r400: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a650: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r650: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + a1000: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], + r1000: [{ validator:validateNum, message: '请输入整数', trigger: 'blur'}], }) const samplingSchemeList = await getSamplingScheme() export const Aql = useCrudSchemas(reactive([ diff --git a/src/views/qms/aql/index.vue b/src/views/qms/aql/index.vue index b5d0446a4..76a3e5a65 100644 --- a/src/views/qms/aql/index.vue +++ b/src/views/qms/aql/index.vue @@ -48,6 +48,7 @@ :apiCreate="AqlApi.createAql" @searchTableSuccess="searchTableSuccess" :isBusiness="false" + @onChange="onChange" /> @@ -235,6 +236,47 @@ const searchFormClick = (searchData) => { getList() // 刷新当前列表 } +const onChange = async (field, value, formRef) => { + // 检查字段是否以 "a" 开头 + if (field.startsWith("a") || field.startsWith("r")) { + // 从 "a" 字段名中获取其余部分 + const suffix = field.slice(1); + // 构建对应的 "r" 字段名 + const correspondingField = field.startsWith("a") ? "r" + suffix : "a" + suffix ; +console.log(correspondingField) + // 如果有值,则更新对应的 "r" 字段 + if (value) { + // 查找并更新对应 "r" 字段的值和属性 + Aql.allSchemas.formSchema.forEach(item => { + if (item.field === correspondingField) { + const setV = {}; + if(correspondingField.startsWith("r")){ + setV[correspondingField] = parseInt(value) + 1; + }else { + setV[correspondingField] = parseInt(value) - 1; + } + item.componentProps.disabled = true; + + // 使用 Vue 的 nextTick 来等待 DOM 更新 + nextTick(() => { + formRef.value.setValues(setV); + }); + } + }); + }else{ + Aql.allSchemas.formSchema.forEach(item => { + if (item.field === correspondingField || item.field === field) { + item.componentProps.disabled = false; + const setV = {}; + setV[correspondingField] = '' + nextTick(() => { + formRef.value.setValues(setV); + }); + } + }); + } + } +}; /** 初始化 **/ onMounted(async () => { getList()