From 245a9200ddaa5c2a9ab9f6a68969527bb121ec2f Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期四, 04 七月 2024 13:34:37 +0800
Subject: [PATCH] 测试完成

---
 src/views/repositoryai/intention/index.vue |  401 ++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 256 insertions(+), 145 deletions(-)

diff --git a/src/views/repositoryai/intention/index.vue b/src/views/repositoryai/intention/index.vue
index 80ce5cb..47cfd46 100644
--- a/src/views/repositoryai/intention/index.vue
+++ b/src/views/repositoryai/intention/index.vue
@@ -30,7 +30,7 @@
         >
           <span class="custom-tree-node" slot-scope="{ node, data }">
             <span>{{ node.label }}</span>
-            <span>
+            <span v-if="data.id > 0">
               <el-button
                 type="text"
                 icon="el-icon-delete"
@@ -38,6 +38,17 @@
                 size="mini"
                 @click="() => remove(node, data)"
               >
+              </el-button>
+            </span>
+            <span v-if="data.id > 0">
+              <el-button
+                type="text"
+                circle
+                size="mini"
+                @click="() => altertag(node, data)"
+                ><span class="button-textxg"
+                  ><i class="el-icon-edit-outline"></i
+                ></span>
               </el-button>
             </span>
           </span>
@@ -172,19 +183,24 @@
               <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"
+                key="valueType"
+                prop="valueType"
                 :show-overflow-tooltip="true"
               >
                 <template slot-scope="scope">
-                  <dict-tag :options="valuetype" :value="scope.row.isenable" />
+                  <dict-tag
+                    :options="valuetypelb"
+                    :value="scope.row.valueType"
+                  />
                 </template>
               </el-table-column>
               <el-table-column
@@ -216,12 +232,12 @@
               /><el-table-column
                 label="閫傜敤鏂瑰紡"
                 align="center"
-                key="suitWay"
-                prop="suitWay"
+                key="suitWayList"
+                prop="suitWayList"
                 width="120"
               >
                 <template slot-scope="scope">
-                  <dict-tag :options="mode" :value="scope.row.suitWay" />
+                  <dict-tag :options="mode" :value="scope.row.suitWayList" />
                 </template>
               </el-table-column>
               <el-table-column
@@ -266,6 +282,7 @@
 
               <el-table-column
                 label="鎿嶄綔"
+                fixed="right"
                 align="center"
                 width="200"
                 class-name="small-padding fixed-width"
@@ -316,6 +333,7 @@
         <el-dialog
           :title="title"
           :visible.sync="indexopen"
+          :close-on-click-modal="false"
           width="900px"
           append-to-body
         >
@@ -327,7 +345,7 @@
           >
             <el-row v-if="!measurement">
               <el-col :span="12">
-                <el-form-item label="鎸囨爣鍚嶇О" prop="deptId">
+                <el-form-item label="鎸囨爣鍚嶇О" prop="targetname">
                   <el-input
                     v-model="indexform.targetname"
                     placeholder="璇疯緭鍏ユ寚鏍囩绫�"
@@ -339,15 +357,40 @@
                 <el-form-item label="鐗堟湰鍙�" prop="deptId">
                   <el-input
                     v-model="indexform.version"
-                    placeholder="璇疯緭鍏ユ寚鏍囩绫�"
+                    placeholder="榛樿1.0"
                     maxlength="40"
                   />
                 </el-form-item>
               </el-col>
             </el-row>
+            <!-- deptOptions -->
             <el-row v-if="!measurement">
-              <el-col :span="12">
-                <el-form-item label="璇█" prop="deptId">
+              <el-col :span="8">
+                <el-form-item label="鎸囨爣鍒嗙被" prop="assortid">
+                  <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="language">
                   <el-select
                     v-model="indexform.language"
                     placeholder="璇烽�夋嫨璇█"
@@ -361,7 +404,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"
@@ -428,7 +471,7 @@
             <el-row v-if="!measurement">
               <el-col :span="24">
                 <el-form-item label="鍊肩被鍨�">
-                  <el-radio-group v-model="indexform.isenable">
+                  <el-radio-group v-model="indexform.valueType">
                     <el-radio :label="1">閫夐」</el-radio>
                     <el-radio :label="2">鏂囨湰</el-radio>
                     <el-radio :label="3">鏁板��</el-radio>
@@ -436,27 +479,15 @@
                 </el-form-item>
               </el-col></el-row
             >
-            <!-- <el-row v-if="!measurement">
-              <el-col :span="24">
-                <el-form-item label="閫傜敤鐤剧梾" prop="userName">
-                  <el-select
-                    v-model="indexform.suitDisease"
-                    placeholder="璇烽�夋嫨"
-                  >
-                    <el-option
-                      v-for="index in qyoptions"
-                      :key="index.value"
-                      :label="index.label"
-                      :value="index.value"
-                    ></el-option>
-                  </el-select>
-                </el-form-item> </el-col
-            ></el-row> -->
 
             <el-row v-if="!measurement">
               <el-col :span="24">
-                <el-form-item label="閫傜敤鏂瑰紡" prop="email">
-                  <el-select v-model="indexform.suitWay" placeholder="璇烽�夋嫨">
+                <el-form-item label="閫傜敤鍦烘櫙" prop="suitWayList">
+                  <el-select
+                    v-model="indexform.suitWayList"
+                    multiple
+                    placeholder="璇烽�夋嫨"
+                  >
                     <el-option
                       v-for="index in mode"
                       :key="index.value"
@@ -467,92 +498,58 @@
                 </el-form-item>
               </el-col>
             </el-row>
-            <el-card class="box-card" style="margin-bottom: 20px">
-              <el-table v-loading="loading" :data="testuserList">
-                <el-table-column
-                  label="搴忓彿"
-                  align="center"
-                  key="guid"
-                  prop="guid"
-                  width="50"
-                />
-                <el-table-column
-                  label="鎸囨爣閫夐」"
-                  align="center"
-                  key="targetvalue"
-                  prop="targetvalue"
-                  :show-overflow-tooltip="true"
-                >
-                  <template slot-scope="scope">
-                    <el-input
-                      v-model="scope.row.targetvalue"
-                      placeholder="璇疯緭鍏ュ唴瀹�"
-                    ></el-input>
-                  </template>
-                </el-table-column>
-                <el-table-column
-                  label="瑙f瀽瑙勫垯"
-                  align="center"
-                  key="targetregex"
-                  prop="targetregex"
-                  width="460"
-                  :show-overflow-tooltip="true"
-                >
-                  <template slot-scope="scope">
-                    <el-input
-                      v-model="scope.row.targetregex"
-                      placeholder="璇疯緭鍏ュ唴瀹�"
-                    ></el-input>
-                  </template>
-                </el-table-column>
 
-                <el-table-column
-                  label="鎿嶄綔"
-                  align="center"
-                  width="200"
-                  class-name="small-padding fixed-width"
-                >
-                  <template slot-scope="scope">
-                    <el-button
-                      @click="addoption(scope.row)"
-                      type="success"
-                      icon="el-icon-circle-plus-outline"
-                      circle
-                    ></el-button>
-                    <el-button
-                      type="danger"
-                      icon="el-icon-delete"
-                      circle
-                      @click="deloption(scope.row)"
-                    ></el-button>
-                    <el-button
-                      @click="syioption(scope.row)"
-                      type="primary"
-                      icon="el-icon-top"
-                      circle
-                    ></el-button>
-                    <el-button
-                      @click="xiayioption(scope.row)"
-                      type="primary"
-                      icon="el-icon-bottom"
-                      circle
-                    ></el-button>
-                  </template>
-                </el-table-column>
-              </el-table>
+            <el-card
+              class="box-card"
+              style="margin-bottom: 20px"
+              v-if="indexform.valueType == 1"
+            >
+              <Regular
+                :TargetoptionList="testuserList"
+                :intent="false"
+                @addoption="addoption"
+                @deloption="deloption"
+                @syioption="syioption"
+                @xiayioption="xiayioption"
+              />
             </el-card>
+            <div v-if="indexform.valueType == 2">
+              <el-form-item label="鏀堕泦淇℃伅">
+                <el-input
+                  type="textarea"
+                  :rows="2"
+                  placeholder="濉叆鏀堕泦淇℃伅"
+                  v-model="indexform.reply"
+                  maxlength="50"
+                  show-word-limit
+                >
+                </el-input
+              ></el-form-item>
+            </div>
+            <div v-if="indexform.valueType == 3">
+              <el-form-item label="鏀堕泦淇℃伅">
+                <el-input
+                  type="text"
+                  placeholder="濉叆鏀堕泦淇℃伅"
+                  v-model="indexform.reply"
+                >
+                </el-input
+              ></el-form-item>
+            </div>
             <el-row :gutter="20">
               <el-col :span="12">
                 <el-form-item label="娴嬭瘯杈撳叆" prop="nickName">
                   <el-input
-                    v-model="testvalue"
+                    v-model="indexform.content"
                     placeholder="璇疯緭鍏ユ祴璇曞唴瀹�"
                     maxlength="40"
                   />
                 </el-form-item>
               </el-col>
               <el-col :span="4">
-                <el-button type="success">寮�濮嬫祴璇�</el-button>
+                <el-button type="success" @click="testtagerlist"
+                  >寮�濮嬫祴璇�</el-button
+                >
               </el-col>
             </el-row>
           </el-form>
@@ -650,7 +647,7 @@
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button @click="dialogFormVisible = false">鍙� 娑�</el-button>
+        <el-button @click="getDeptTree()">鍙� 娑�</el-button>
         <el-button type="primary" @click="submitsidecolumn">纭� 瀹�</el-button>
       </div>
     </el-dialog>
@@ -659,16 +656,10 @@
 
 <script>
 import {
-  listUser,
-  getUser,
-  delUser,
-  addUser,
-  updateUser,
-} from "@/api/system/user";
-import {
   gettargetInfo,
   particulartarget,
   gettargetInfoedit,
+  testtagerlist,
   addtarget,
   deletetarget,
   getillnesslist,
@@ -678,10 +669,12 @@
   addtargetillness,
   selectIvrLibaTargetAssortList,
   addtreeselectIvrLibaTargetAssort,
+  edittreeselectIvrLibaTargetAssort,
   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";
@@ -689,7 +682,7 @@
 export default {
   name: "questionnaire",
   dicts: ["sys_normal_disable", "sys_user_sex"],
-  components: { Treeselect },
+  components: { Treeselect, Regular },
   data() {
     return {
       topactiveName: "Local", //椤堕儴閫夋嫨
@@ -762,33 +755,43 @@
       queryParams: {
         pageNum: 1,
         pageSize: 10,
-        userName: undefined,
-        phonenumber: undefined,
-        status: undefined,
-        deptId: undefined,
-        IDnumber: undefined,
       },
+      valuetypelb: [],
 
       // 琛ㄥ崟鏍¢獙
-      rules: {},
+      rules: {
+        targetname: [
+          { required: true, message: "鎸囨爣鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
+        ],
+        assortid: [
+          { required: true, message: "鎸囨爣鍒嗙被涓嶈兘涓虹┖", trigger: "blur" },
+        ],
+        language: [
+          { required: true, message: "鎸囨爣璇█涓嶈兘涓虹┖", trigger: "blur" },
+        ],
+        isAvailable: [
+          { required: true, message: "鎸囨爣璇█涓嶈兘涓虹┖", trigger: "blur" },
+        ],
+      },
     };
   },
   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.valuetypelb = store.getters.valuetypelb;
     this.languagelist = store.getters.languagelist;
     this.qyoptions = store.getters.usable;
   },
-
   methods: {
     /** 鏌ヨ鎸囨爣鍒楄〃 */
     getList() {
@@ -802,12 +805,14 @@
     },
 
     processElement(element) {
+      // 杩斿洖涓�涓柊鐨勫璞★紝灏唀lement瀵硅薄鐨勫睘鎬soperation璁剧疆涓�1
       return { ...element, isoperation: 1 };
     },
+    // 杩斿洖鏁扮粍涓寚瀹氬厓绱犵殑绱㈠紩
     getIndexInArray(arr, obj) {
+      // 杩斿洖鏁扮粍涓寚瀹氬厓绱犵殑绱㈠紩
       return arr.indexOf(obj);
     },
-
     //鍒犻櫎鍒嗙被
     deletefenlei(row) {
       if (this.deleteVisible) {
@@ -827,7 +832,7 @@
     // 鐤剧梾-----------------------
     illnessUpdate(row) {
       this.illnessVisible = true;
-      this.indexid = row.targetID;
+      this.indexid = row.id;
       this.illnesslistapi = [];
       const illnessqueryParams = {
         pageNum: 1,
@@ -837,7 +842,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);
       });
@@ -849,7 +854,6 @@
       }
     },
     remoteMethod(value) {
-      console.log(value);
       const illnessqueryParams = {
         pageNum: 1,
         pageSize: 100,
@@ -949,10 +953,16 @@
     addoption() {
       const objvakue = {
         guid: 1,
-        targetid: this.indexform.targetid,
+        id: this.indexform.id,
         targettype: this.indexform.targettype,
-        targetvalue: "璐",
-        targetregex: "(?!涓�.*|娌�.*|鏈�.*)^.*([璐钩鍑]|璐|璇勫|璇勫),10",
+        isoperation: 1,
+        targetvalue: "",
+        targetregex: "",
+        targetregex2: "",
+        dynamiccruxs: [],
+        nodynamiccruxs: [],
+        dynamiccruxsJson: "",
+        nodynamiccruxsJson: "",
       };
       this.testuserList.push(objvakue);
       // this.indexform.targetoptionList.push(objvakue);
@@ -964,6 +974,7 @@
       if (index !== -1) {
         this.testuserList[index].isoperation = 3;
         this.targetoptionList.push(this.testuserList[index]);
+        console.log(this.targetoptionList, "aaaa.targetoptionList");
         this.testuserList.splice(index, 1); // 浠庣储寮曚綅缃垹闄や竴涓厓绱�
         this.sortFn();
       } else {
@@ -987,13 +998,18 @@
         return {
           guid: index + 1,
           targetvalue: item.targetvalue,
+          targetregex2: item.targetregex2,
           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,
           language: item.language,
+          dynamiccruxs: item.dynamiccruxs,
+          nodynamiccruxs: item.nodynamiccruxs,
+          dynamiccruxsJson: item.dynamiccruxsJson,
+          nodynamiccruxsJson: item.nodynamiccruxsJson,
+          targetoptionid: item.targetoptionid,
         };
       });
       console.log(this.testuserList);
@@ -1004,7 +1020,7 @@
     getDeptTree() {
       selectIvrLibaTargetAssortList({}).then((res) => {
         this.deptOptions = res.rows;
-        console.log(res);
+        this.dialogFormVisible = false;
       });
     },
     // 绛涢�夎妭鐐�
@@ -1014,6 +1030,15 @@
     },
     // 娣诲姞绫诲埆鏍�
     submitsidecolumn() {
+      if (this.classifyform.id) {
+        edittreeselectIvrLibaTargetAssort(this.classifyform).then((res) => {
+          this.getDeptTree();
+          this.$modal.msgSuccess("淇敼鎴愬姛");
+          this.classifyform = {};
+          this.dialogFormVisible = false;
+        });
+        return;
+      }
       let calssvalue = {};
       if (
         this.classifyform.pid &&
@@ -1036,6 +1061,8 @@
       addtreeselectIvrLibaTargetAssort(this.classifyform).then((res) => {
         this.getDeptTree();
         this.$modal.msgSuccess("鏂板鎴愬姛");
+        this.classifyform = {};
+        this.dialogFormVisible = false;
       });
     },
     remove(a, b) {
@@ -1067,6 +1094,16 @@
           .catch(() => {});
       }
     },
+    altertag(a, b) {
+      this.dialogFormVisible = true;
+      if (!b.pid) {
+        this.radio = "涓诲垎绫�";
+      } else {
+        this.radio = "瀛愬垎绫�";
+      }
+      this.classifyform = b;
+      this.dialogFormVisible = true;
+    },
     handleNodeClick(data) {
       this.queryParams.assortid = data.id;
       this.getList();
@@ -1074,6 +1111,7 @@
 
     // 鍙栨秷鎸夐挳
     cancel() {
+      this.indexform = null;
       this.indexopen = false;
       this.reset();
     },
@@ -1081,13 +1119,13 @@
     // 琛ㄥ崟閲嶇疆
     reset() {
       this.indexform = {
-        suitWay: undefined,
-        targetID: undefined,
+        suitWayList: undefined,
+        id: undefined,
         targetdesc: undefined,
         baseTagList: [],
         targetoptionList: [],
       };
-      this.resetForm("indexform");
+      // this.resetForm("indexform");
     },
     /** 鎼滅储鎸夐挳鎿嶄綔 */
     handleQuery() {
@@ -1098,13 +1136,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;
     },
@@ -1119,11 +1160,15 @@
       this.dynamicTags = [];
       this.testuserList = [
         {
-          guid: 1,
-          isoperation: 1,
           targettype: "1",
           targetvalue: "",
           targetregex: "",
+          targetregex2: "",
+          isoperation: 1,
+          dynamiccruxs: [],
+          nodynamiccruxs: [],
+          dynamiccruxsJson: "",
+          nodynamiccruxsJson: "",
         },
       ];
       this.indexopen = true;
@@ -1134,9 +1179,27 @@
       this.reset();
       console.log(row);
       this.title = "鎸囨爣璇︽儏";
+      this.indexform = {};
       this.indexform = row;
+      if (!row.targetoptionList[0]) {
+        row.targetoptionList = [
+          {
+            targettype: "1",
+            targetvalue: "",
+            targetregex: "",
+            targetregex2: "",
+            isoperation: 1,
+            dynamiccruxs: [],
+            nodynamiccruxs: [],
+            dynamiccruxsJson: "",
+            nodynamiccruxsJson: "",
+          },
+        ];
+      }
       this.dynamicTags = row.baseTagList.map(this.processElement);
       this.testuserList = row.targetoptionList;
+      console.log(this.testuserList, "bbbb");
+      this.testvalue = "";
       this.indexopen = true;
       this.measurement = false;
     },
@@ -1155,13 +1218,28 @@
 
     /** 鏇存柊/淇敼鎻愪氦鎸夐挳 */
     submitForm: function () {
-      // this.indexform.targetoptionList=[]
+      // this.indexform.targetoptionList = this.indexform.targetoptionList.map(
+      //   (res) => {
+      //     res.isoperation = 2;
+      //     return res;
+      //   }
+      // );
+
       this.$refs["indexform"].validate((valid) => {
         this.indexform.targetoptionList = this.testuserList.concat(
           this.targetoptionList
         );
+        console.log(this.indexform.targetoptionList, "11");
+        this.indexform.targetoptionList.forEach((item) => {
+          if (item.isoperation != 3 && item.targetoptionid) {
+            console.log(item, "item");
+            item.isoperation = 2;
+          } else {
+          }
+        });
         if (valid) {
-          if (this.indexform.targetID != undefined) {
+          if (!this.indexform.version) this.indexform.version = "1.0";
+          if (this.indexform.id != undefined) {
             this.indexform.isoperation = 2;
             gettargetInfoedit(this.indexform).then((response) => {
               this.$modal.msgSuccess("淇敼鎴愬姛");
@@ -1180,9 +1258,24 @@
         }
       });
     },
+    // 娴嬭瘯琛ㄥ崟
+    testtagerlist() {
+      if (this.indexform.content) {
+        let data = this.indexform;
+        data.targetoptionList = this.testuserList.concat(this.targetoptionList);
+        testtagerlist(data).then((res) => {
+          this.$modal.msgSuccess("娴嬭瘯鎴愬姛");
+          this.testgovalue = res.msg;
+          this.getList();
+        });
+      } else {
+        this.$modal.msgError("璇峰~鍐欐祴璇曞唴瀹�");
+        return;
+      }
+    },
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete(row) {
-      const userIds = row.targetID || this.ids;
+      const userIds = row.id || this.ids;
       this.$modal
         .confirm('鏄惁纭鍒犻櫎鎸囨爣鍚嶇О涓�"' + row.targetname + '"鐨勬暟鎹」锛�')
         .then(function () {
@@ -1257,7 +1350,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);
@@ -1349,6 +1442,24 @@
   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;

--
Gitblit v1.9.3