Bladeren bron

Merge branch 'dev-qd' into dev

dao qin 10 maanden geleden
bovenliggende
commit
204d4bca7c
1 gewijzigde bestanden met toevoegingen van 22 en 15 verwijderingen
  1. 22 15
      src/views/system/dictionary/components/AddDict.vue

+ 22 - 15
src/views/system/dictionary/components/AddDict.vue

@@ -51,7 +51,6 @@
               >
                 <el-input
                   v-model="item.itemValue"
-                  W
                   placeholder="请输入"
                   type="textarea"
                   show-word-limit
@@ -65,7 +64,7 @@
               >
                 <el-input
                   v-model="item.itemCode"
-                  placeholder="请输入字典项编码"
+                  placeholder="请输入"
                   type="textarea"
                   show-word-limit
                   maxlength="500"
@@ -346,20 +345,28 @@
   const handleSubmit = async () => {
     if (!formRef.value) return;
 
-    await formRef.value.validate((valid: boolean) => {
-      if (valid) {
-        const cloneFormData = cloneDeep(formData) as FormData;
-        const submitDictDataList = cloneFormData.sysDictDataList.map((item) => {
-          // eslint-disable-next-line @typescript-eslint/no-unused-vars
-          const { fileList, ...rest } = item;
-          item.dictCode = formData.dictCode;
-          return rest;
-        });
-        cloneFormData.sysDictDataList = submitDictDataList;
-
-        emit('submit', JSON.parse(JSON.stringify(cloneFormData))); // 暂时发送原始数据,上传需单独处理
+    try {
+      await formRef.value.validate();
+      const cloneFormData: FormData = cloneDeep(formData);
+      cloneFormData.sysDictDataList = cloneFormData.sysDictDataList.map((item) => {
+        return {
+          ...item,
+          dictCode: cloneFormData.dictCode,
+        };
+      });
+      const codeSet = new Set();
+      for (const item of cloneFormData.sysDictDataList) {
+        if (codeSet.has(item.itemCode)) {
+          ElMessage.warning(`字典项编码 "${item.itemCode}" 重复,请修改`);
+          return;
+        }
+        codeSet.add(item.itemCode);
       }
-    });
+      emit('submit', cloneFormData);
+    } catch (err) {
+      // 6. 校验失败
+      console.warn('表单校验未通过', err);
+    }
   };
 
   // 移动方法