From 1929609fcd1e1a7a9f722c869953138917f3d8b2 Mon Sep 17 00:00:00 2001 From: ljlong_2630 Date: Wed, 10 Apr 2024 16:11:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=8A=A8=E6=80=81=E8=A7=84?= =?UTF-8?q?=E5=88=99=E9=98=B6=E6=AE=B5=E9=87=8D=E5=A4=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/qms/inspectionStage/index.ts | 6 +++ .../qms/basicDataManage/dynamicRule/index.vue | 37 +++++++++++++++++-- .../inspectionStage/inspectionStage.data.ts | 6 ++- .../qms/basicDataManage/selectedSet/index.vue | 4 +- 4 files changed, 46 insertions(+), 7 deletions(-) diff --git a/src/api/qms/inspectionStage/index.ts b/src/api/qms/inspectionStage/index.ts index ffce240a6..2ad0ed13b 100644 --- a/src/api/qms/inspectionStage/index.ts +++ b/src/api/qms/inspectionStage/index.ts @@ -60,4 +60,10 @@ export const exportInspectionStage = async (params) => { // 下载用户导入模板 export const importTemplate = () => { return request.download({ url: '/qms/inspection-stage/get-import-template' }) +} + + +// 查询检验阶段列表 +export const getInspectionStageNoPage = async (params) => { + return await request.get({ url: `/qms/inspection-stage/noPage`, params }) } \ No newline at end of file diff --git a/src/views/qms/basicDataManage/dynamicRule/index.vue b/src/views/qms/basicDataManage/dynamicRule/index.vue index 40fe1130a..b9aebe87d 100644 --- a/src/views/qms/basicDataManage/dynamicRule/index.vue +++ b/src/views/qms/basicDataManage/dynamicRule/index.vue @@ -105,6 +105,8 @@ const routeName = ref() const tableData = ref([]) routeName.value = route.name const tableColumns = ref(DynamicRule.allSchemas.tableColumns) +const detailMasterId = ref() +const detailList = ref([]) // 查询页面返回 const searchTableSuccess = (formField, searchField, val, formRef) => { @@ -210,6 +212,10 @@ const formsSuccess = async (formType,data) => { /** 详情操作 */ const detailRef = ref() const openDetail = (row: any, titleName: any, titleValue: any) => { + detailMasterId.value = row.id + InspectionStageApi.getInspectionStageNoPage({masterId:row.id}).then(res=>{ + detailList.value = res + }) detailRef.value.openDetail(row, titleName, titleValue, 'basicDynamicRule') } @@ -283,6 +289,11 @@ const handleDeleteTable = (item, index) => { // 主子数据 提交 const submitForm = async (formType, data) => { + if(!validateNotRepetition(tableData.value)){ + message.alertWarning('动态规则阶段不能重复') + basicFormRef.value.formLoading = false + return + } data.inspectionStageDOList = tableData.value// 拼接子表数据参数 console.log(data.subList) try { @@ -303,15 +314,35 @@ const submitForm = async (formType, data) => { const detailValidate = (data) => { let tag = true; + if(!validateIfRepeat(data)){ + tag = false + message.alertWarning('动态规则阶段不能重复') + } return tag } const detailOpenForm = (type, row, masterParmas) => { - if(type='create'){ - - } + } +const validateIfRepeat = (data) => { + const mergedArray = [data, ...detailList.value]; + const stageSet = new Set(mergedArray.map(item => item.stage)); + return stageSet.size === mergedArray.length; +} + +const validateNotRepetition = (data) => { + // 提取所有的 dictionaryTypeAndCode 值 + const codes = data.map(item => item.stage); + // 创建一个 Set 来存储唯一的 dictionaryTypeAndCode 值 + const uniqueCodes = new Set(codes); + // 如果原始数组的长度大于 Set 集合的大小,则说明有重复 + if (codes.length > uniqueCodes.size) { + return false; // 发现重复,返回 false + } + return true; // 未发现重复,返回 true +}; + /** 初始化 **/ onMounted(async () => { getList() diff --git a/src/views/qms/basicDataManage/inspectionStage/inspectionStage.data.ts b/src/views/qms/basicDataManage/inspectionStage/inspectionStage.data.ts index 2ef795c87..1fbab3826 100644 --- a/src/views/qms/basicDataManage/inspectionStage/inspectionStage.data.ts +++ b/src/views/qms/basicDataManage/inspectionStage/inspectionStage.data.ts @@ -11,8 +11,10 @@ const trueFalse = [{ // 表单校验 export const InspectionStageRules = reactive({ - description: [required], - dynamicModifyCode: [required], + description: [ + required, + { max: 1024, message: '不得超过1024个字符', trigger: 'blur' }, + ], okTimes: [required], okTimeStage: [required], noOkTimes: [required], diff --git a/src/views/qms/basicDataManage/selectedSet/index.vue b/src/views/qms/basicDataManage/selectedSet/index.vue index 4d55e0906..b85a54bfe 100644 --- a/src/views/qms/basicDataManage/selectedSet/index.vue +++ b/src/views/qms/basicDataManage/selectedSet/index.vue @@ -407,8 +407,8 @@ const detailBasiFormOnChange = (field,val,detailFormRef) => { setV['dictionaryCode'] = dictionaryCode setV['dictionaryValue'] = dictionaryValue nextTick(() => { - detailFormRef.setValues(setV) - }) + detailFormRef.setValues(setV) + }) } }