From f93cb40b76468c6f1063081a3be16027d69b4832 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期四, 04 一月 2024 09:46:01 +0800
Subject: [PATCH] 指标完成

---
 src/views/repositoryai/intention/index.vue |  308 ++++++++++++++++++++++++++------------------------
 1 files changed, 161 insertions(+), 147 deletions(-)

diff --git a/src/views/repositoryai/intention/index.vue b/src/views/repositoryai/intention/index.vue
index 10dd668..b7ae1d0 100644
--- a/src/views/repositoryai/intention/index.vue
+++ b/src/views/repositoryai/intention/index.vue
@@ -13,56 +13,35 @@
           class="input-with-select"
           size="medium "
         >
-          <el-button
-            @click="sidecolumnss"
-            slot="append"
-            icon="el-icon-search"
-          ></el-button>
         </el-input>
       </div>
-      <div class="bottom-fl">
-        <el-menu
-          default-active="3"
-          class="el-menu-vertical-demo"
-          @open="handleOpen"
-          @close="handleClose"
-          @select="handleSelect"
-        >
-          <el-submenu index="1">
-            <template slot="title">
-              <i class="el-icon-location"></i>
-              <span>鍒嗙被涓�</span>
-            </template>
 
-            <el-menu-item index="1-1">閫夐」1</el-menu-item>
-            <el-menu-item index="1-2">閫夐」2</el-menu-item>
-            <el-menu-item index="1-3">閫夐」3</el-menu-item>
-            <el-menu-item index="1-4">閫夐」3</el-menu-item>
-          </el-submenu>
-          <el-submenu index="2">
-            <template slot="title">
-              <i class="el-icon-menu"></i>
-              <span>鍒嗙被浜�</span>
-            </template>
-            <el-menu-item index="2-1">閫夐」1</el-menu-item>
-            <el-menu-item index="2-2">閫夐」2</el-menu-item>
-            <el-menu-item index="2-3">閫夐」3</el-menu-item>
-          </el-submenu>
-          <el-submenu index="3">
-            <template slot="title">
-              <i class="el-icon-document"></i>
-              <span>鍒嗙被涓�</span>
-            </template>
-            <el-menu-item index="2-1">閫夐」1</el-menu-item>
-          </el-submenu>
-          <el-submenu index="4">
-            <template slot="title">
-              <i class="el-icon-setting"></i>
-              <span>鍒嗙被鍥�</span>
-            </template>
-            <el-menu-item index="2-1">閫夐」1</el-menu-item>
-          </el-submenu>
-        </el-menu>
+      <div class="head-container" style="margin-top: 20px">
+        <el-tree
+          :data="deptOptions"
+          :props="defaultProps"
+          :expand-on-click-node="false"
+          :filter-node-method="filterNode"
+          ref="tree"
+          node-key="id"
+          default-expand-all
+          highlight-current
+          @node-click="handleNodeClick"
+        >
+          <span class="custom-tree-node" slot-scope="{ node, data }">
+            <span>{{ node.label }}</span>
+            <span>
+              <el-button
+                type="text"
+                icon="el-icon-delete"
+                circle
+                size="mini"
+                @click="() => remove(node, data)"
+              >
+              </el-button>
+            </span>
+          </span>
+        </el-tree>
       </div>
     </div>
     <!-- 鍙充晶鏁版嵁 -->
@@ -194,8 +173,8 @@
               <el-table-column
                 label="搴忓彿"
                 align="center"
-                key="targetID"
-                prop="targetID"
+                key="targetid"
+                prop="targetid"
               />
               <el-table-column
                 label="鍊肩被鍨�"
@@ -642,28 +621,30 @@
       </span>
     </el-dialog>
     <!-- 娣诲姞绫诲埆寮规 -->
-    <el-dialog
-      :title="amendtag ? '淇敼绫诲埆' : '鏂板绫诲埆'"
-      width="30%"
-      :visible.sync="dialogFormVisible"
-    >
+    <el-dialog title="鏂板绫诲埆" width="30%" :visible.sync="dialogFormVisible">
+      <div style="text-align: center; margin-bottom: 20px">
+        <el-radio-group v-model="radio">
+          <el-radio-button label="涓诲垎绫�"></el-radio-button>
+          <el-radio-button label="瀛愬垎绫�"></el-radio-button>
+        </el-radio-group>
+      </div>
+      <el-divider></el-divider>
+
       <el-form :model="classifyform">
-        <el-form-item label="璇烽�夋嫨鎸囨爣澶х被">
-          <el-select v-model="classifyform.broadheading" placeholder="璇烽�夋嫨">
+        <el-form-item label="璇烽�夋嫨闂澶х被" v-if="radio == '瀛愬垎绫�'">
+          <el-select v-model="classifyform.pid" placeholder="璇烽�夋嫨">
             <el-option
-              v-for="item in editableTabs"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
+              v-for="item in deptOptions"
+              :key="item.id"
+              :label="item.indexAssortName"
+              :value="item.id"
             >
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item
-          :label="amendtag ? '璇疯緭鍏ユ柊鐨勭被鍒悕绉�' : '璇疯緭鍏ョ被鍒悕绉�'"
-        >
+        <el-form-item label="璇疯緭鍏ョ被鍒悕绉�">
           <el-input
-            v-model="classifyform.categoryname"
+            v-model="classifyform.indexAssortName"
             autocomplete="off"
           ></el-input>
         </el-form-item>
@@ -672,20 +653,6 @@
         <el-button @click="dialogFormVisible = false">鍙� 娑�</el-button>
         <el-button type="primary" @click="submitsidecolumn">纭� 瀹�</el-button>
       </div>
-    </el-dialog>
-    <!-- 鍒犻櫎绫诲埆纭妗� -->
-    <el-dialog title="璀﹀憡" :visible.sync="deleteVisible" width="40%">
-      <div style="font-size: 20px; color: rgb(247, 76, 76)">
-        鏄惁纭鍒犻櫎鍒嗙被锛歔<span>{{ deletefenl }}</span
-        >]?
-      </div>
-      <div style="font-size: 20px">
-        姝ゆ搷浣滀細灏嗚绫诲埆涓嬫墍鏈夋ā鍧楄浆绉昏嚦[鏈垎绫籡锛屾槸鍚︾户缁垹闄ゆ鍒嗙被锛�
-      </div>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="deleteVisible = false">鍙� 娑�</el-button>
-        <el-button type="primary" @click="deletefenlei">纭� 瀹�</el-button>
-      </span>
     </el-dialog>
   </div>
 </template>
@@ -709,6 +676,9 @@
   getillness,
   deltargetillness,
   addtargetillness,
+  selectIvrLibaTargetAssortList,
+  addtreeselectIvrLibaTargetAssort,
+  delselectIvrLibaTargetAssort,
 } from "@/api/AiCentre/index";
 import { getToken } from "@/utils/auth";
 import Treeselect from "@riophae/vue-treeselect";
@@ -743,6 +713,7 @@
       dialogFormVisible: false, //淇敼娣诲姞绫诲埆寮规
       deleteVisible: false, //鍒嗙被鍒犻櫎寮规
       deletefenl: "楂樿鍘�", //鍒犻櫎椤�
+      radio: "涓诲垎绫�",
       testvalue: "",
       testgovalue: "",
       classifyform: {
@@ -765,6 +736,11 @@
       indexform: {},
       numberlb: 22,
       numberlbs: 2,
+      deptOptions: [],
+      defaultProps: {
+        children: "ivrLibaTargetAssortList",
+        label: "indexAssortName",
+      },
       sidecolumnform: {}, //娣诲姞绫诲埆琛ㄥ崟
       dialogFormVisible: false, //娣诲姞绫诲埆寮规
       sidecolumnval: "", //绫诲埆鎼滅储
@@ -781,29 +757,7 @@
       mode: [],
       optionstag: [],
       targetoptionList: [],
-      //绫诲埆鍒楄〃
-      editableTabs: [
-        {
-          title: "鎸囨爣鍒嗙被涓�",
-          number: "1",
-        },
-        {
-          title: "鎸囨爣鍒嗙被浜�",
-          number: "2",
-        },
-        {
-          title: "鎸囨爣鍒嗙被涓�",
-          number: "2",
-        },
-        {
-          title: "鎸囨爣鍒嗙被鍥�",
-          number: "2",
-        },
-        {
-          title: "鎸囨爣鍒嗙被浜�",
-          number: "2",
-        },
-      ],
+
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
@@ -819,10 +773,16 @@
       rules: {},
     };
   },
-  watch: {},
+  watch: {
+    // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲
+    sidecolumnval(val) {
+      this.$refs.tree.filter(val);
+    },
+  },
   created() {
     this.getList();
     this.gettabList();
+    this.getDeptTree();
     this.mode = store.getters.mode;
     this.valuetype = store.getters.valuetype;
     this.languagelist = store.getters.languagelist;
@@ -840,36 +800,14 @@
         this.loading = false;
       });
     },
+
     processElement(element) {
       return { ...element, isoperation: 1 };
     },
     getIndexInArray(arr, obj) {
       return arr.indexOf(obj);
     },
-    // 娣诲姞銆佷慨鏀圭被鍒�
-    submitsidecolumn() {
-      if (this.amendtag) {
-        this.classifyform.tagcategoryid = this.idds;
-        // toamendtagcategory(this.addDateRange(this.classifyform)).then(
-        //   (response) => {
-        //     console.log(response);
-        //     this.gitclasify();
-        //   }
-        // );
-      } else {
-        // addtagcategory(this.addDateRange(this.classifyform)).then(
-        //   (response) => {
-        //     console.log(response);
-        //     this.gitclasify();
-        //   }
-        // );
-      }
-      this.classifyform = {
-        categoryname: "",
-      };
-      this.idds = "";
-      this.dialogFormVisible = false;
-    },
+
     //鍒犻櫎鍒嗙被
     deletefenlei(row) {
       if (this.deleteVisible) {
@@ -886,20 +824,10 @@
       }
     },
 
-    // 渚ц竟--------------
-    handleOpen(key, keyPath) {
-      console.log(key, keyPath);
-    },
-    handleClose(key, keyPath) {
-      console.log(key, keyPath);
-    },
-    handleSelect(key, keyPath) {
-      console.log(key, keyPath);
-    },
     // 鐤剧梾-----------------------
     illnessUpdate(row) {
       this.illnessVisible = true;
-      this.indexid = row.targetID;
+      this.indexid = row.targetid;
       this.illnesslistapi = [];
       const illnessqueryParams = {
         pageNum: 1,
@@ -909,7 +837,7 @@
         console.log(response);
         this.optionsillness = response.rows;
       });
-      getillness({ outid: row.targetID, type: 1 }).then((res) => {
+      getillness({ outid: row.targetid, type: 1 }).then((res) => {
         this.illnesslist = res.rows;
         console.log(res);
       });
@@ -963,7 +891,7 @@
         deltargetillness(this.illnesslistapi.join(",")).then((res) => {});
       }
       this.illnessVisible = false;
-      this.$modal.msgSuccess("缂栬緫鐤剧梾鎴愬姛");
+      this.$modal.msgSuccess("缂栬緫鎴愬姛");
     },
 
     // 鏍囩-----------------
@@ -1004,6 +932,7 @@
               isoperation: 1,
             };
           }
+          console.log(tagvalue);
           this.indexform.baseTagList.push(tagvalue);
           this.dynamicTags.push(tagvalue);
           console.log(this.indexform.baseTagList);
@@ -1070,10 +999,79 @@
       console.log(this.testuserList);
     },
     // ---------------------
-    //鎼滅储绫诲埆
-    sidecolumnss() {},
-    // 鍒囨崲鍏变韩/鏈湴
-    tophandleClick() {},
+
+    /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
+    getDeptTree() {
+      selectIvrLibaTargetAssortList({}).then((res) => {
+        this.deptOptions = res.rows;
+        console.log(res);
+      });
+    },
+    // 绛涢�夎妭鐐�
+    filterNode(value, data) {
+      if (!value) return true;
+      return data.indexAssortName.indexOf(value) !== -1;
+    },
+    // 娣诲姞绫诲埆鏍�
+    submitsidecolumn() {
+      let calssvalue = {};
+      if (
+        this.classifyform.pid &&
+        this.classifyform.indexAssortName &&
+        this.radio == "瀛愬垎绫�"
+      ) {
+        const index = this.deptOptions.findIndex(
+          (obj) => obj.id == this.classifyform.pid
+        );
+        calssvalue = this.deptOptions[index];
+        console.log(calssvalue);
+        calssvalue.ivrLibaTargetAssortList.push(this.classifyform);
+      } else if (this.radio == "涓诲垎绫�" && this.classifyform.indexAssortName) {
+        this.classifyform.pid = null;
+        this.classifyform.ivrLibaTargetAssortList = [];
+      } else {
+        return this.$modal.msgError("璇峰~鍐欏畬鏁翠俊鎭�");
+      }
+
+      addtreeselectIvrLibaTargetAssort(this.classifyform).then((res) => {
+        this.getDeptTree();
+        this.$modal.msgSuccess("鏂板鎴愬姛");
+      });
+    },
+    remove(a, b) {
+      if (b.pid) {
+        this.$modal
+          .confirm('鏄惁纭鍒犻櫎鍒嗙被椤逛负"' + b.indexAssortName + '"鐨勬暟鎹」锛�')
+          .then(function () {
+            return delselectIvrLibaTargetAssort(b.id);
+          })
+          .then(() => {
+            this.getDeptTree();
+            this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+          })
+          .catch(() => {});
+      } else {
+        this.$modal
+          .confirm(
+            '鏄惁纭鍒犻櫎涓�绾у垎绫�"' +
+              b.indexAssortName +
+              '"锛熷垹闄ゅ悗鍏朵笅鍒嗙被灏嗗綊绫烩�樻湭鍒嗙被鈥�'
+          )
+          .then(() => {
+            return delselectIvrLibaTargetAssort(b.id);
+          })
+          .then(() => {
+            this.getDeptTree();
+            this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+          })
+          .catch(() => {});
+      }
+    },
+    handleNodeClick(data) {
+      this.queryParams.assortid = data.id;
+      this.getList();
+    },
+
     // 鍙栨秷鎸夐挳
     cancel() {
       this.indexopen = false;
@@ -1084,7 +1082,7 @@
     reset() {
       this.indexform = {
         suitWay: undefined,
-        targetID: undefined,
+        targetid: undefined,
         targetdesc: undefined,
         baseTagList: [],
         targetoptionList: [],
@@ -1106,7 +1104,7 @@
     },
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
-      this.ids = selection.map((item) => item.targetID);
+      this.ids = selection.map((item) => item.targetid);
       this.single = selection.length != 1;
       this.multiple = !selection.length;
     },
@@ -1163,7 +1161,7 @@
           this.targetoptionList
         );
         if (valid) {
-          if (this.indexform.targetID != undefined) {
+          if (this.indexform.targetid != undefined) {
             this.indexform.isoperation = 2;
             gettargetInfoedit(this.indexform).then((response) => {
               this.$modal.msgSuccess("淇敼鎴愬姛");
@@ -1184,7 +1182,7 @@
     },
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete(row) {
-      const userIds = row.targetID || this.ids;
+      const userIds = row.targetid || this.ids;
       this.$modal
         .confirm('鏄惁纭鍒犻櫎鎸囨爣鍚嶇О涓�"' + row.targetname + '"鐨勬暟鎹」锛�')
         .then(function () {
@@ -1340,6 +1338,22 @@
     font-size: 20px;
   }
 }
+::v-deep .el-tree-node__content {
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-box-align: center;
+  -ms-flex-align: center;
+  align-items: center;
+  height: 46px;
+  font-size: 20px;
+  cursor: pointer;
+}
+::v-deep .el-button--mini.is-circle {
+  padding: 7px;
+  margin: 0;
+  color: red;
+}
 .button-text {
   color: rgb(70, 204, 238);
 }

--
Gitblit v1.9.3