فهرست منبع

fix: 数据集分类名称查重优化

数据集分类名称查重优化
hong.yang 1 سال پیش
والد
کامیت
f34d5b9297

+ 4 - 1
data-room-ui/packages/BigScreenDesign/RightSetting/DataSetting.vue

@@ -57,7 +57,10 @@
                 v-model="config.dataHandler"
                 type="textarea"
                 :rows="5"
-                placeholder="请输入数据处理脚本"
+                placeholder="示例:
+data.forEach(item => {
+// 数据处理
+})"
               />
             </el-form-item>
           </div>

+ 26 - 1
data-room-ui/packages/DataSetManagement/src/CategroyEditForm.vue

@@ -51,6 +51,7 @@
 
 <script>
 import { categoryAdd, categoryUpdate } from 'data-room-ui/js/utils/datasetConfigService'
+import { categoryNameRepeat } from "../../js/utils/datasetConfigService";
 export default {
   name: 'CategroyEditForm',
   props: {
@@ -60,6 +61,29 @@ export default {
     }
   },
   data () {
+    const nameRepeatCheck = (rule, value, callback) => {
+      let parentId = ''
+      if (this.nodeFlag) {
+        // 新增节点
+        if (this.radio === 0) {
+          // 新增同级
+          parentId = this.nodeData.parentId
+        } else {
+          // 新增子级
+          parentId = this.nodeData.id
+        }
+      }
+      categoryNameRepeat({
+        ...this.dataForm,
+        parentId
+      }).then(res => {
+        if (res) {
+          callback(new Error('分组名称已存在'))
+        } else {
+          callback()
+        }
+      })
+    }
     return {
       type: 'dataset',
       dataForm: {
@@ -73,7 +97,8 @@ export default {
       nodeFlag: false,
       rules: {
         name: [
-          { required: true, message: '分组名称不能为空', trigger: 'blur' }
+          { required: true, message: '分组名称不能为空', trigger: 'blur' },
+          { validator: nameRepeatCheck, trigger: 'blur' }
         ]
       },
       nodeData: {}

+ 10 - 1
data-room-ui/packages/js/utils/datasetConfigService.js

@@ -117,6 +117,14 @@ const categoryUpdate = (params = {}, flag = false) => Vue.prototype.$dataRoomAxi
  */
 const categoryRemove = (id = '-1', flag = false) => Vue.prototype.$dataRoomAxios.post(`/category/delete/${id}`, {}, flag)
 
+
+/**
+ * 分类名称校验
+ * @param params
+ * @param flag
+ */
+const categoryNameRepeat = (params = {}, flag = false) => Vue.prototype.$dataRoomAxios.post('/category/checkRepeat', params, flag)
+
 export {
   datasetPage,
   datasetList,
@@ -132,5 +140,6 @@ export {
   categoryAdd,
   categoryUpdate,
   categoryRemove,
-  datasetCheck
+  datasetCheck,
+  categoryNameRepeat
 }