From 31b647535e49f0a7b85d87a8c1e34c5ab92ca9d0 Mon Sep 17 00:00:00 2001
From: shikeying <pxzsky@163.com>
Date: 星期五, 10 三月 2023 14:54:25 +0800
Subject: [PATCH] 修改数据字典 支持树结构

---
 src/views/system/dict/data.vue |   44 +++++++++++++++++++++++++++++++-------------
 1 files changed, 31 insertions(+), 13 deletions(-)

diff --git a/src/views/system/dict/data.vue b/src/views/system/dict/data.vue
index 1dfe2f9..fabc1dc 100644
--- a/src/views/system/dict/data.vue
+++ b/src/views/system/dict/data.vue
@@ -92,20 +92,21 @@
 
     <el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="瀛楀吀缂栫爜" align="center" prop="dict_code" />
-      <el-table-column label="瀛楀吀鏍囩" align="center" prop="dict_label">
+      <el-table-column label="瀛楀吀ID" align="center" prop="dict_code" />
+      <el-table-column label="瀛楀吀鍚嶇О" align="center" prop="dict_label">
         <template slot-scope="scope">
           <span v-if="scope.row.list_class == '' || scope.row.list_class == 'default'">{{scope.row.dict_label}}</span>
           <el-tag v-else :type="scope.row.list_class == 'primary' ? '' : scope.row.list_class">{{scope.row.dict_label}}</el-tag>
         </template>
       </el-table-column>
-      <el-table-column label="瀛楀吀閿��" align="center" prop="dict_value" />
-      <el-table-column label="瀛楀吀鎺掑簭" align="center" prop="dict_sort" />
+      <el-table-column label="瀛楀吀鍊�" align="center" prop="dict_value" />
+      <el-table-column label="鎺掑簭" align="center" prop="dict_sort" />
       <el-table-column label="鐘舵��" align="center" prop="status">
         <template slot-scope="scope">
           <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
         </template>
       </el-table-column>
+      <el-table-column label="鐖秈d" align="center" prop="parent_id" />
       <el-table-column label="澶囨敞" align="center" prop="remark" :show-overflow-tooltip="true" />
       <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="create_time" width="180">
 <!--        <template slot-scope="scope">-->
@@ -143,14 +144,17 @@
     <!-- 娣诲姞鎴栦慨鏀瑰弬鏁伴厤缃璇濇 -->
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="瀛楀吀ID">
+          <el-input v-model="form.dict_code" :disabled="false" placeholder="涓�涓敮涓�鏁板瓧"/>
+        </el-form-item>
         <el-form-item label="瀛楀吀绫诲瀷">
           <el-input v-model="form.dict_type" :disabled="true" />
         </el-form-item>
-        <el-form-item label="鏁版嵁鏍囩" prop="dict_label">
+        <el-form-item label="瀛楀吀鍚嶇О" prop="dict_label">
           <el-input v-model="form.dict_label" placeholder="璇疯緭鍏ユ暟鎹爣绛�" />
         </el-form-item>
-        <el-form-item label="鏁版嵁閿��" prop="dict_value">
-          <el-input v-model="form.dict_value" placeholder="璇疯緭鍏ユ暟鎹敭鍊�" />
+        <el-form-item label="瀛楀吀鍊�" prop="dict_value">
+          <el-input v-model="form.dict_value" placeholder="涓嶅~鍜屽瓧鍏窱D涓�鑷�" />
         </el-form-item>
         <el-form-item label="鏍峰紡灞炴��" prop="css_class">
           <el-input v-model="form.css_class" placeholder="璇疯緭鍏ユ牱寮忓睘鎬�" />
@@ -176,6 +180,9 @@
               :label="dict.value * 1"
             >{{dict.label}}</el-radio>
           </el-radio-group>
+        </el-form-item>
+        <el-form-item label="鐖跺瓧鍏窱D" prop="dict_label">
+          <el-input v-model="form.parent_id" placeholder="鐖跺瓧鍏竔d锛屽繀濉�" />
         </el-form-item>
         <el-form-item label="澶囨敞" prop="remark">
           <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�"></el-input>
@@ -250,7 +257,7 @@
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 15,
         dictName: undefined,
         dictType: undefined,
         status: undefined
@@ -259,16 +266,23 @@
       form: {},
       // 琛ㄥ崟鏍¢獙
       rules: {
+        dict_code: [
+          { required: true, message: "瀛楀吀id蹇呴』杈撳叆", trigger: "blur" }
+        ],
         dict_label: [
           { required: true, message: "鏁版嵁鏍囩涓嶈兘涓虹┖", trigger: "blur" }
         ],
-        dict_value: [
-          { required: true, message: "鏁版嵁閿�间笉鑳戒负绌�", trigger: "blur" }
+        parent_id: [
+          { required: true, message: "鐖秈d涓嶈兘涓虹┖", trigger: "blur" }
         ],
+        // dict_value: [
+        //   { required: true, message: "鏁版嵁閿�间笉鑳戒负绌�", trigger: "blur" }
+        // ],
         dict_sort: [
           { required: true, message: "鏁版嵁椤哄簭涓嶈兘涓虹┖", trigger: "blur" }
         ]
-      }
+      },
+      editMode: false
     };
   },
   created() {
@@ -316,6 +330,7 @@
         list_class: 'default',
         dict_sort: 0,
         status: "0",
+        parent_id: undefined,
         remark: undefined
       };
       this.resetForm("form");
@@ -339,6 +354,7 @@
     /** 鏂板鎸夐挳鎿嶄綔 */
     handleAdd() {
       this.reset();
+      this.editMode = false;
       this.open = true;
       this.title = "娣诲姞瀛楀吀鏁版嵁";
       // this.form.dictType = this.queryParams.dictType;
@@ -353,6 +369,7 @@
     /** 淇敼鎸夐挳鎿嶄綔 */
     handleUpdate(row) {
       this.reset();
+      this.editMode = true;
       const dictCode = row.dict_code || this.ids
       getData(dictCode).then(response => {
         this.form = response.data;
@@ -364,7 +381,8 @@
     submitForm: function() {
       this.$refs["form"].validate(valid => {
         if (valid) {
-          if (this.form.dict_code != undefined) {
+          // if (this.form.dict_code != undefined) {
+          if (this.editMode == true) {
             updateData(this.form).then(response => {
               this.$store.dispatch('dict/removeDict', this.queryParams.dictType);
               this.$modal.msgSuccess("淇敼鎴愬姛");
@@ -372,7 +390,7 @@
               this.getList();
             });
           } else {
-            // console.log(this.form);
+            console.log(this.form);
             addData(this.form).then(response => {
               this.$store.dispatch('dict/removeDict', this.queryParams.dictType);
               this.$modal.msgSuccess("鏂板鎴愬姛");

--
Gitblit v1.9.1