Browse Source

feat: 新增、编辑大屏和组件时添加对名称的重复校验

wu.jian2 1 năm trước cách đây
mục cha
commit
1b7b134b66

+ 22 - 1
data-room-ui/packages/BigScreenList/EditForm.vue

@@ -173,7 +173,28 @@ export default {
       },
       dataFormRules: {
         name: [
-          { required: true, message: '名称不能为空', trigger: 'blur' }
+          { required: true, message: '名称不能为空', trigger: 'blur' },
+          // 名称重复自定义校验
+          {
+            validator: (rule, value, callback) => {
+              if (value) {
+                this.$dataRoomAxios.post('/bigScreen/design/name/repeat', {
+                  name: value,
+                  type: this.type,
+                  id: this.dataForm.id
+                }).then((resp) => {
+                  if (resp) {
+                    callback(new Error('名称已存在'))
+                  } else {
+                    callback()
+                  }
+                })
+              } else {
+                callback()
+              }
+            },
+            trigger: 'change'
+          }
         ]
       },
       sureLoading: false,

+ 23 - 1
data-room-ui/packages/ComponentList/EditForm.vue

@@ -208,7 +208,29 @@ export default {
       },
       dataFormRules: {
         name: [
-          { required: true, message: '名称不能为空', trigger: 'blur' }
+          { required: true, message: '名称不能为空', trigger: 'blur' },
+          // 组件名称判重
+          // 名称重复自定义校验
+          {
+            validator: (rule, value, callback) => {
+              if (value) {
+                this.$dataRoomAxios.post('/bigScreen/design/name/repeat', {
+                  name: value,
+                  type: this.type,
+                  id: this.dataForm.id
+                }).then((resp) => {
+                  if (resp) {
+                    callback(new Error('名称已存在'))
+                  } else {
+                    callback()
+                  }
+                })
+              } else {
+                callback()
+              }
+            },
+            trigger: 'change'
+          }
         ]
       },
       sureLoading: false,