Bläddra i källkod

feat: 分组管理,添加分组,对分组名称是否重复校验

wu.jian2 1 år sedan
förälder
incheckning
25b2191dd5

+ 14 - 1
data-room-ui/packages/BigScreenList/CatalogEditForm.vue

@@ -153,6 +153,18 @@ export default {
     }
   },
   data () {
+    const validateName = (rule, value, callback) => {
+      this.$dataRoomAxios.post('/bigScreen/type/nameRepeat', {
+        name: value,
+        type: this.catalogType
+      }, true).then((r) => {
+        if (r.data) {
+          callback(new Error('分组名称已存在'))
+        } else {
+          callback()
+        }
+      })
+    }
     return {
       searchKey: '', // 分组查询
       catalogVisible: false,
@@ -160,7 +172,8 @@ export default {
       formVisible: false,
       formRules: {
         name: [
-          { required: true, message: '分组名称不能为空', trigger: 'blur' }
+          { required: true, message: '分组名称不能为空', trigger: 'blur' },
+          { validator: validateName, trigger: 'blur' }
         ]
       }
     }

+ 14 - 1
data-room-ui/packages/BigScreenMag/SideMenu.vue

@@ -124,6 +124,18 @@ export default {
     }
   },
   data () {
+    const validateName = (rule, value, callback) => {
+      this.$dataRoomAxios.post('/bigScreen/type/nameRepeat', {
+        name: value,
+        type: this.type || 'bigScreenCatalog'
+      }, true).then((r) => {
+        if (r.data) {
+          callback(new Error('分组名称已存在'))
+        } else {
+          callback()
+        }
+      })
+    }
     return {
       showDropdown: false,
       hoverItem: null,
@@ -143,7 +155,8 @@ export default {
       },
       formRules: {
         name: [
-          { required: true, message: '分组名称不能为空', trigger: 'blur' }
+          { required: true, message: '分组名称不能为空', trigger: 'blur' },
+          { validator: validateName, trigger: 'blur' }
         ]
       }
     }

+ 15 - 1
data-room-ui/packages/ComponentList/CatalogEditForm.vue

@@ -153,6 +153,19 @@ export default {
     }
   },
   data () {
+    // 检验分组名称是否重复
+    const validateName = (rule, value, callback) => {
+      this.$dataRoomAxios.post('/bigScreen/type/nameRepeat', {
+        name: value,
+        type: this.catalogType
+      }, true).then((r) => {
+        if (r.data) {
+          callback(new Error('分组名称已存在'))
+        } else {
+          callback()
+        }
+      })
+    }
     return {
       dataList: [], // 模糊查询时用来给数据备份
       tableList: [],
@@ -163,7 +176,8 @@ export default {
       formVisible: false,
       formRules: {
         name: [
-          { required: true, message: '分组名称不能为空', trigger: 'blur' }
+          { required: true, message: '分组名称不能为空', trigger: 'blur' },
+          { validator: validateName, trigger: 'blur' }
         ]
       }
     }

+ 1 - 1
data-room-ui/packages/RemoteComponents/index.vue

@@ -201,7 +201,7 @@ export default {
         this.chart.update(config.option)
       }
       this.changeChartConfig(config)
-      this.$refs['remoteComponent' + config.code]?.customStyle(config)
+      // this.$refs['remoteComponent' + config.code]?.customStyle(config)
       return config
     },
     // 同步配置

+ 16 - 1
data-room-ui/packages/SourceMag/SideMenu.vue

@@ -125,6 +125,18 @@ import { cloneDeep } from 'lodash'
 export default {
   components: {},
   data () {
+    const validateName = (rule, value, callback) => {
+      this.$dataRoomAxios.post('/bigScreen/type/nameRepeat', {
+        name: value,
+        type: 'resourceCatalog'
+      }, true).then((r) => {
+        if (r.data) {
+          callback(new Error('分组名称已存在'))
+        } else {
+          callback()
+        }
+      })
+    }
     return {
       showDropdown: false,
       hoverItem: null,
@@ -166,7 +178,10 @@ export default {
         orderNum: 0
       },
       formRules: {
-        name: [{ required: true, message: '分组名称不能为空', trigger: 'blur' }]
+        name: [
+          { required: true, message: '分组名称不能为空', trigger: 'blur' },
+          { validator: validateName, trigger: 'blur' }
+        ]
       }
     }
   },