From 79925204a4e1588d1031ca0429ae318a608a8928 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期四, 01 二月 2024 11:32:23 +0800
Subject: [PATCH] 指标完成

---
 src/views/repositoryai/intention/index.vue |  395 ++++++++++++++++++++++++++++++++------------------------
 1 files changed, 225 insertions(+), 170 deletions(-)

diff --git a/src/views/repositoryai/intention/index.vue b/src/views/repositoryai/intention/index.vue
index 10dd668..1d48246 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>
     <!-- 鍙充晶鏁版嵁 -->
@@ -193,12 +172,14 @@
               <el-table-column type="selection" width="50" align="center" />
               <el-table-column
                 label="搴忓彿"
+                fixed
                 align="center"
-                key="targetID"
-                prop="targetID"
+                key="id"
+                prop="id"
               />
               <el-table-column
                 label="鍊肩被鍨�"
+                fixed
                 align="center"
                 key="isenable"
                 prop="isenable"
@@ -287,6 +268,7 @@
 
               <el-table-column
                 label="鎿嶄綔"
+                fixed="right"
                 align="center"
                 width="200"
                 class-name="small-padding fixed-width"
@@ -366,8 +348,33 @@
                 </el-form-item>
               </el-col>
             </el-row>
+            <!-- deptOptions -->
             <el-row v-if="!measurement">
-              <el-col :span="12">
+              <el-col :span="8">
+                <el-form-item label="鎸囨爣鍒嗙被">
+                  <el-select
+                    v-model="indexform.assortid"
+                    size="medium"
+                    filterable
+                    placeholder="璇烽�夋嫨鍒嗙被"
+                  >
+                    <el-option-group
+                      v-for="group in deptOptions"
+                      :key="group.id"
+                      :label="group.indexAssortName"
+                    >
+                      <el-option
+                        v-for="item in group.ivrLibaTargetAssortList"
+                        :key="item.id"
+                        :label="item.indexAssortName"
+                        :value="item.id"
+                      >
+                      </el-option>
+                    </el-option-group>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="8">
                 <el-form-item label="璇█" prop="deptId">
                   <el-select
                     v-model="indexform.language"
@@ -382,7 +389,7 @@
                   </el-select>
                 </el-form-item>
               </el-col>
-              <el-col :span="12">
+              <el-col :span="8">
                 <el-form-item label="鏄惁鍙敤" prop="isAvailable">
                   <el-select
                     v-model="indexform.isAvailable"
@@ -562,6 +569,9 @@
                 </el-table-column>
               </el-table>
             </el-card>
+            <el-card class="box-card" style="margin-bottom: 20px">
+              <Regular :TargetoptionList="testuserList" />
+            </el-card>
             <el-row :gutter="20">
               <el-col :span="12">
                 <el-form-item label="娴嬭瘯杈撳叆" prop="nickName">
@@ -642,28 +652,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>
@@ -673,31 +685,10 @@
         <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>
 
 <script>
-import {
-  listUser,
-  getUser,
-  delUser,
-  addUser,
-  updateUser,
-} from "@/api/system/user";
 import {
   gettargetInfo,
   particulartarget,
@@ -709,9 +700,13 @@
   getillness,
   deltargetillness,
   addtargetillness,
+  selectIvrLibaTargetAssortList,
+  addtreeselectIvrLibaTargetAssort,
+  delselectIvrLibaTargetAssort,
 } from "@/api/AiCentre/index";
 import { getToken } from "@/utils/auth";
 import Treeselect from "@riophae/vue-treeselect";
+import Regular from "@/components/Regular"; //姝e垯缁勪欢
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import { listtag } from "@/api/system/label";
 import store from "@/store";
@@ -719,7 +714,7 @@
 export default {
   name: "questionnaire",
   dicts: ["sys_normal_disable", "sys_user_sex"],
-  components: { Treeselect },
+  components: { Treeselect, Regular },
   data() {
     return {
       topactiveName: "Local", //椤堕儴閫夋嫨
@@ -743,6 +738,7 @@
       dialogFormVisible: false, //淇敼娣诲姞绫诲埆寮规
       deleteVisible: false, //鍒嗙被鍒犻櫎寮规
       deletefenl: "楂樿鍘�", //鍒犻櫎椤�
+      radio: "涓诲垎绫�",
       testvalue: "",
       testgovalue: "",
       classifyform: {
@@ -765,6 +761,11 @@
       indexform: {},
       numberlb: 22,
       numberlbs: 2,
+      deptOptions: [],
+      defaultProps: {
+        children: "ivrLibaTargetAssortList",
+        label: "indexAssortName",
+      },
       sidecolumnform: {}, //娣诲姞绫诲埆琛ㄥ崟
       dialogFormVisible: false, //娣诲姞绫诲埆寮规
       sidecolumnval: "", //绫诲埆鎼滅储
@@ -776,59 +777,39 @@
       dynamicTags: [],
       illnesslist: [],
       illnesslistapi: [],
-      optionsillness: [],
+     optionsillness: [],
       qyoptions: [],
       mode: [],
       optionstag: [],
       targetoptionList: [],
-      //绫诲埆鍒楄〃
-      editableTabs: [
-        {
-          title: "鎸囨爣鍒嗙被涓�",
-          number: "1",
-        },
-        {
-          title: "鎸囨爣鍒嗙被浜�",
-          number: "2",
-        },
-        {
-          title: "鎸囨爣鍒嗙被涓�",
-          number: "2",
-        },
-        {
-          title: "鎸囨爣鍒嗙被鍥�",
-          number: "2",
-        },
-        {
-          title: "鎸囨爣鍒嗙被浜�",
-          number: "2",
-        },
-      ],
+
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
         pageSize: 10,
-        userName: undefined,
-        phonenumber: undefined,
-        status: undefined,
-        deptId: undefined,
-        IDnumber: undefined,
       },
 
       // 琛ㄥ崟鏍¢獙
       rules: {},
     };
   },
-  watch: {},
+  watch: {
+    // 鏍规嵁鍚嶇О绛涢�夐儴闂ㄦ爲
+    sidecolumnval(val) {
+      console.log(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;
     this.qyoptions = store.getters.usable;
   },
-
   methods: {
     /** 鏌ヨ鎸囨爣鍒楄〃 */
     getList() {
@@ -840,35 +821,15 @@
         this.loading = false;
       });
     },
-    processElement(element) {
+
+   processElement(element) {
+      // 杩斿洖涓�涓柊鐨勫璞★紝灏唀lement瀵硅薄鐨勫睘鎬soperation璁剧疆涓�1
       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) {
@@ -886,20 +847,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.id;
       this.illnesslistapi = [];
       const illnessqueryParams = {
         pageNum: 1,
@@ -909,7 +860,7 @@
         console.log(response);
         this.optionsillness = response.rows;
       });
-      getillness({ outid: row.targetID, type: 1 }).then((res) => {
+      getillness({ outid: row.id, type: 1 }).then((res) => {
         this.illnesslist = res.rows;
         console.log(res);
       });
@@ -921,7 +872,6 @@
       }
     },
     remoteMethod(value) {
-      console.log(value);
       const illnessqueryParams = {
         pageNum: 1,
         pageSize: 100,
@@ -963,7 +913,7 @@
         deltargetillness(this.illnesslistapi.join(",")).then((res) => {});
       }
       this.illnessVisible = false;
-      this.$modal.msgSuccess("缂栬緫鐤剧梾鎴愬姛");
+      this.$modal.msgSuccess("缂栬緫鎴愬姛");
     },
 
     // 鏍囩-----------------
@@ -1004,6 +954,7 @@
               isoperation: 1,
             };
           }
+          console.log(tagvalue);
           this.indexform.baseTagList.push(tagvalue);
           this.dynamicTags.push(tagvalue);
           console.log(this.indexform.baseTagList);
@@ -1020,7 +971,7 @@
     addoption() {
       const objvakue = {
         guid: 1,
-        targetid: this.indexform.targetid,
+        id: this.indexform.id,
         targettype: this.indexform.targettype,
         targetvalue: "璐",
         targetregex: "(?!涓�.*|娌�.*|鏈�.*)^.*([璐钩鍑]|璐|璇勫|璇勫),10",
@@ -1060,7 +1011,7 @@
           targetvalue: item.targetvalue,
           targetregex: item.targetregex,
           targetoptionid: item.targetoptionid,
-          targetid: this.indexform.targetid,
+          id: this.indexform.id,
           targettype: this.indexform.targettype,
           isoperation: item.targetoptionid ? 2 : 1,
           categoryName: item.categoryName,
@@ -1070,10 +1021,80 @@
       console.log(this.testuserList);
     },
     // ---------------------
-    //鎼滅储绫诲埆
-    sidecolumnss() {},
-    // 鍒囨崲鍏变韩/鏈湴
-    tophandleClick() {},
+
+    /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
+    getDeptTree() {
+      selectIvrLibaTargetAssortList({}).then((res) => {
+        this.deptOptions = res.rows;
+      });
+    },
+    // 绛涢�夎妭鐐�
+    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("鏂板鎴愬姛");
+        this.classifyform = {};
+        this.dialogFormVisible = false;
+      });
+    },
+    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 +1105,7 @@
     reset() {
       this.indexform = {
         suitWay: undefined,
-        targetID: undefined,
+        id: undefined,
         targetdesc: undefined,
         baseTagList: [],
         targetoptionList: [],
@@ -1100,13 +1121,16 @@
     resetQuery() {
       this.dateRange = [];
       this.resetForm("queryForm");
-      this.queryParams.deptId = undefined;
+      this.queryParams={
+        pageNum: 1,
+        pageSize: 10,
+      };
       this.$refs.tree.setCurrentKey(null);
       this.handleQuery();
     },
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
-      this.ids = selection.map((item) => item.targetID);
+      this.ids = selection.map((item) => item.id);
       this.single = selection.length != 1;
       this.multiple = !selection.length;
     },
@@ -1163,7 +1187,7 @@
           this.targetoptionList
         );
         if (valid) {
-          if (this.indexform.targetID != undefined) {
+          if (this.indexform.id != undefined) {
             this.indexform.isoperation = 2;
             gettargetInfoedit(this.indexform).then((response) => {
               this.$modal.msgSuccess("淇敼鎴愬姛");
@@ -1184,7 +1208,7 @@
     },
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete(row) {
-      const userIds = row.targetID || this.ids;
+      const userIds = row.id || this.ids;
       this.$modal
         .confirm('鏄惁纭鍒犻櫎鎸囨爣鍚嶇О涓�"' + row.targetname + '"鐨勬暟鎹」锛�')
         .then(function () {
@@ -1259,7 +1283,7 @@
   margin-top: 20px;
   margin: 20px;
   padding: 30px;
-  background: #edf1f7;
+  background: #fff;
   border: 1px solid #dcdfe6;
   -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
     0 0 6px 0 rgba(0, 0, 0, 0.04);
@@ -1340,6 +1364,37 @@
     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-tree{
+  position: relative;
+    cursor: default;
+    border-radius: 5px;
+    background: #EFF8FE;
+    color: #606266;
+  border: 1px solid #bbe1fa;
+      // border: 1px solid #dcdfe6;
+    -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
+
+}
+::v-deep .el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {
+    background-color: #7799FB ;
+    color: #fff;
+}
+::v-deep .el-button--mini.is-circle {
+  padding: 7px;
+  margin: 0;
+  color: red;
+}
 .button-text {
   color: rgb(70, 204, 238);
 }

--
Gitblit v1.9.3