From 1811ac2572dc2e7116f8ba4ea537abf7d57dd61e Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期五, 02 八月 2024 16:31:01 +0800
Subject: [PATCH] 测试完成

---
 src/views/repositoryai/intention/index.vue |  292 +++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 209 insertions(+), 83 deletions(-)

diff --git a/src/views/repositoryai/intention/index.vue b/src/views/repositoryai/intention/index.vue
index 649217f..5950bd3 100644
--- a/src/views/repositoryai/intention/index.vue
+++ b/src/views/repositoryai/intention/index.vue
@@ -71,26 +71,24 @@
             >
               <el-form-item label="鎸囨爣鍚嶇О" prop="userName">
                 <el-input
-                  v-model="queryParams.userName"
+                  v-model="queryParams.targetname"
                   placeholder="璇疯緭鍏�"
                   clearable
                   style="width: 200px"
                   @keyup.enter.native="handleQuery"
                 />
               </el-form-item>
-              <el-form-item label="鏍囩" prop="sickness">
-                <el-select v-model="queryParams.tag" placeholder="璇烽�夋嫨">
-                  <el-option
-                    v-for="item in dynamicTags"
-                    :key="item.tagid"
-                    :label="item.tagname"
-                    :value="item.tagid"
-                  >
-                  </el-option>
-                </el-select>
+              <el-form-item label="鏍囩鍚嶇О" prop="userName">
+                <el-input
+                  v-model="queryParams.tagName"
+                  placeholder="璇疯緭鍏�"
+                  clearable
+                  style="width: 200px"
+                  @keyup.enter.native="handleQuery"
+                />
               </el-form-item>
-              <el-form-item label="閫傜敤鏂瑰紡" prop="shape">
-                <el-select v-model="queryParams.value" placeholder="璇烽�夋嫨">
+              <el-form-item label="閫傜敤鍦烘櫙" prop="shape">
+                <el-select v-model="queryParams.suitWay" placeholder="璇烽�夋嫨">
                   <el-option
                     v-for="item in mode"
                     :key="item.value"
@@ -102,7 +100,7 @@
               </el-form-item>
               <el-form-item label="鎸囨爣绫诲瀷" prop="classify">
                 <el-select
-                  v-model="queryParams.classifyvalue"
+                  v-model="queryParams.scriptType"
                   placeholder="璇烽�夋嫨"
                 >
                   <el-option
@@ -114,13 +112,13 @@
                   </el-option>
                 </el-select>
               </el-form-item>
-              <el-form-item label="鍙敤鐘舵��" prop="classify">
+              <el-form-item label="鏄惁鍙敤" prop="classify">
                 <el-select
-                  v-model="queryParams.classifyvalue"
+                  v-model="queryParams.isAvailable"
                   placeholder="璇烽�夋嫨"
                 >
                   <el-option
-                    v-for="(item, index) in qyoptions"
+                    v-for="(item, index) in usable"
                     :key="item.value"
                     :label="item.label"
                     :value="item.value"
@@ -181,25 +179,25 @@
               @selection-change="handleSelectionChange"
             >
               <el-table-column type="selection" width="50" align="center" />
-              <el-table-column
+              <!-- <el-table-column
                 label="搴忓彿"
                 fixed
                 align="center"
                 key="id"
                 prop="id"
-              />
+              /> -->
               <el-table-column
-                label="鍊肩被鍨�"
+                label="鎸囨爣绫诲瀷"
                 fixed
                 align="center"
-                key="valueType"
-                prop="valueType"
+                key="scriptType"
+                prop="scriptType"
                 :show-overflow-tooltip="true"
               >
                 <template slot-scope="scope">
                   <dict-tag
                     :options="valuetypelb"
-                    :value="scope.row.valueType"
+                    :value="scope.row.scriptType"
                   />
                 </template>
               </el-table-column>
@@ -212,7 +210,7 @@
               >
               </el-table-column>
 
-              <el-table-column
+              <!-- <el-table-column
                 label="姝e父鍊艰寖鍥�"
                 align="center"
                 key="warndown"
@@ -222,7 +220,7 @@
                 <template slot-scope="scope">
                   <span>{{ scope.row.warnup }}~{{ scope.row.warndown }}</span>
                 </template>
-              </el-table-column>
+              </el-table-column> -->
               <el-table-column
                 label="鎸囨爣鎻忚堪"
                 align="center"
@@ -230,14 +228,14 @@
                 prop="targetdesc"
                 width="200"
               /><el-table-column
-                label="閫傜敤鏂瑰紡"
+                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
@@ -273,10 +271,7 @@
                 prop="isAvailable"
               >
                 <template slot-scope="scope">
-                  <dict-tag
-                    :options="qyoptions"
-                    :value="scope.row.isAvailable"
-                  />
+                  <dict-tag :options="usable" :value="scope.row.isAvailable" />
                 </template>
               </el-table-column>
 
@@ -297,7 +292,7 @@
                       ><i class="el-icon-edit"></i>淇敼</span
                     ></el-button
                   >
-                  <el-button
+                  <!-- <el-button
                     size="medium"
                     type="text"
                     @click="handlemeasurement(scope.row)"
@@ -305,7 +300,7 @@
                     ><span class="button-textcs"
                       ><i class="el-icon-help"></i>娴嬭瘯</span
                     ></el-button
-                  >
+                  > -->
                   <el-button
                     size="medium"
                     type="text"
@@ -333,6 +328,7 @@
         <el-dialog
           :title="title"
           :visible.sync="indexopen"
+          :close-on-click-modal="false"
           width="900px"
           append-to-body
         >
@@ -344,10 +340,10 @@
           >
             <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="璇疯緭鍏ユ寚鏍囩绫�"
+                    placeholder="璇疯緭鍏ユ寚鏍囧悕绉�"
                     maxlength="40"
                   />
                 </el-form-item>
@@ -365,7 +361,7 @@
             <!-- deptOptions -->
             <el-row v-if="!measurement">
               <el-col :span="8">
-                <el-form-item label="鎸囨爣鍒嗙被">
+                <el-form-item label="鎸囨爣鍒嗙被" prop="assortid">
                   <el-select
                     v-model="indexform.assortid"
                     size="medium"
@@ -389,7 +385,7 @@
                 </el-form-item>
               </el-col>
               <el-col :span="8">
-                <el-form-item label="璇█" prop="deptId">
+                <el-form-item label="璇█" prop="language">
                   <el-select
                     v-model="indexform.language"
                     placeholder="璇烽�夋嫨璇█"
@@ -425,10 +421,17 @@
                   <el-input
                     v-model="indexform.targetdesc"
                     placeholder="璇疯緭鍏ユ寚鏍囨弿杩�"
+                    id="targetdesc"
+                    @focus="currentInputId = 'targetdesc'"
                     maxlength="40"
                   />
                 </el-form-item> </el-col
             ></el-row>
+            <el-form-item label="鎻掑叆濉┖" prop="scriptContent">
+              <div style="display: flex; margin-bottom: 10px">
+                <div class="tsgname" @click="tsgnameto">鎻掑叆濉┖</div>
+              </div>
+            </el-form-item>
             <el-form-item label="鏍囩" prop="desc" v-if="!measurement">
               <div class="xinz-inf">
                 <el-tag
@@ -478,11 +481,32 @@
                 </el-form-item>
               </el-col></el-row
             >
+            <el-row v-if="!measurement">
+              <el-col :span="24">
+                <el-form-item label="棰樼洰绫诲瀷">
+                  <el-radio-group
+                    @input="Changtype"
+                    v-model="indexform.scriptType"
+                  >
+                    <el-radio :label="1">鍗曢��</el-radio>
+                    <el-radio :label="2">澶氶��</el-radio>
+                    <el-radio :label="3">濉┖</el-radio>
+                    <el-radio :label="4">闂瓟</el-radio>
+                  </el-radio-group>
+                </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
+                    class="el-select1"
+                    v-model="indexform.suitWayList"
+                    multiple
+                    @change="changeselect"
+                    placeholder="璇烽�夋嫨"
+                  >
                     <el-option
                       v-for="index in mode"
                       :key="index.value"
@@ -497,39 +521,32 @@
             <el-card
               class="box-card"
               style="margin-bottom: 20px"
-              v-if="indexform.valueType == 1"
+              v-if="indexform.scriptType == 1 || indexform.scriptType == 2"
             >
               <Regular
                 :TargetoptionList="testuserList"
                 :intent="false"
+                :hasValue="hasValue"
                 @addoption="addoption"
                 @deloption="deloption"
                 @syioption="syioption"
                 @xiayioption="xiayioption"
               />
             </el-card>
-            <div v-if="indexform.valueType == 2">
+            <div v-if="indexform.scriptType == 3">
               <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>
+                <el-card class="box-card">
+                  <div v-for="item in indexform.targetoptionList">
+                    <span>{{ "(" + item.orderno + ")" }}</span>
+                    <el-input
+                      type="text"
+                      placeholder="濉叆鏀堕泦淇℃伅"
+                      v-model="indexform.optiondesc"
+                    >
+                    </el-input>
+                  </div>
+                </el-card>
+              </el-form-item>
             </div>
             <el-row :gutter="20">
               <el-col :span="12">
@@ -693,6 +710,7 @@
       showSearch: true,
       measurement: false,
       languagelist: [],
+      usable: [],
       indexid: null,
       // 鎬绘潯鏁�
       total: 0,
@@ -704,6 +722,8 @@
       radio: "涓诲垎绫�",
       testvalue: "",
       testgovalue: "",
+      creatype:'',//鎸囨爣涓存椂绫诲瀷
+      hasValue: true,
       classifyform: {
         categoryname: "",
       }, //绫诲埆琛ㄥ崟
@@ -754,7 +774,20 @@
       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: {
@@ -770,9 +803,10 @@
     this.gettabList();
     this.getDeptTree();
     this.mode = store.getters.mode;
-    this.valuetypelb = store.getters.valuetypelb;
+    this.valuetypelb = store.getters.askvaluetype;
     this.languagelist = store.getters.languagelist;
-    this.qyoptions = store.getters.usable;
+    this.qyoptions = store.getters.askvaluetype;
+    this.usable = store.getters.usable;
   },
   methods: {
     /** 鏌ヨ鎸囨爣鍒楄〃 */
@@ -795,6 +829,10 @@
       // 杩斿洖鏁扮粍涓寚瀹氬厓绱犵殑绱㈠紩
       return arr.indexOf(obj);
     },
+    changeselect(row) {
+      console.log(row);
+      this.hasValue = row.includes("2");
+    },
     //鍒犻櫎鍒嗙被
     deletefenlei(row) {
       if (this.deleteVisible) {
@@ -810,7 +848,54 @@
         this.deletefenl = row.title;
       }
     },
+    // 渚挎嵎鏍囩
+    tsgnameto(row) {
+      let inputValueArr = "";
+      let value = indexform.targetoptionList.length + 1;
 
+      let el = document.querySelector("#" + this.currentInputId);
+      //el.selectionStart; 杩欏氨鏄綋鍓嶅厜鏍囨墍鍦ㄧ殑浣嶇疆锛堝瓧绗︿覆涓瓧绗︾殑index锛�
+      if (this.currentInputId == "targetdesc") {
+        inputValueArr = this.indexform.targetdesc.split("");
+      } else {
+        return;
+      }
+      //灏嗚緭鍏ユ鍐呭鍒囨垚鏁扮粍锛屾柟渚垮悗缁搷浣�
+      // inputValueArr = this.inputValue.split("");
+      // 鎷垮埌閫変腑鏂囧瓧鐨勯暱搴︼紙鍚庣画鍙互鐢ㄦ潵鏇挎崲閫変腑鐨勬枃瀛楋級
+      let selectLength = el.selectionEnd - el.selectionStart;
+      // 灏嗚鎻掑叆/鏇挎崲鐨勬枃瀛楁彃鍏�/鏇挎崲锛坴alue.name鏄鎻掑叆/鏇挎崲鐨勫瓧绗︿覆锛�
+      inputValueArr.splice(
+        el.selectionStart,
+        selectLength,
+        "__" + value + "__"
+      );
+      this.indexform.targetoptionList.push({
+        orderno: value,
+        optiondesc: "",
+      });
+      // 鎶婃暟缁勯噸鏂拌浆鎹负瀛楃涓插苟璧嬪��
+      inputValueArr = inputValueArr.join("");
+      console.log(inputValueArr);
+      if (this.currentInputId == "targetdesc") {
+        this.indexform.targetdesc = inputValueArr;
+      } else {
+        return;
+      }
+    },
+    Changtype(item) {
+      console.log(item, "閫夐」鍙樻洿鐨勫鐞�");
+      if (item==3) {
+        this.$modal
+          .confirm('鏇存敼绫诲瀷涓哄~绌哄悗閫夐」灏嗘竻绌烘槸鍚︾户缁紵')
+          .then(() => {
+
+          })
+          .catch(() => {
+
+          });
+      }
+    },
     // 鐤剧梾-----------------------
     illnessUpdate(row) {
       this.illnessVisible = true;
@@ -897,7 +982,7 @@
       console.log(this.dynamicTags.indexOf(tag));
       const lindex = this.dynamicTags.indexOf(tag);
       this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
-      this.indexform.baseTagList[lindex].isoperation = 3;
+      this.indexform.ivrLibaTargetTagList[lindex].delFlag = 3;
     },
     handleInputConfirm() {
       let tagvalue = {};
@@ -919,9 +1004,9 @@
             };
           }
           console.log(tagvalue);
-          this.indexform.baseTagList.push(tagvalue);
+          this.indexform.ivrLibaTargetTagList.push(tagvalue);
           this.dynamicTags.push(tagvalue);
-          console.log(this.indexform.baseTagList);
+          console.log(this.indexform.ivrLibaTargetTagList);
           console.log(this.dynamicTags);
         });
       }
@@ -937,9 +1022,12 @@
         guid: 1,
         id: this.indexform.id,
         targettype: this.indexform.targettype,
+        isoperation: 1,
+        isabnormal: 0,
         targetvalue: "",
         targetregex: "",
         targetregex2: "",
+        picturePath: "",
         dynamiccruxs: [],
         nodynamiccruxs: [],
         dynamiccruxsJson: "",
@@ -955,6 +1043,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 {
@@ -982,13 +1071,16 @@
           targetregex: item.targetregex,
           id: this.indexform.id,
           targettype: this.indexform.targettype,
-          isoperation: item.id ? 2 : 1,
+          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,
+          isabnormal: item.isabnormal,
+          picturePath: item.picturePath,
         };
       });
       console.log(this.testuserList);
@@ -1090,6 +1182,7 @@
 
     // 鍙栨秷鎸夐挳
     cancel() {
+      this.indexform = null;
       this.indexopen = false;
       this.reset();
     },
@@ -1097,13 +1190,13 @@
     // 琛ㄥ崟閲嶇疆
     reset() {
       this.indexform = {
-        suitWay: undefined,
+        suitWayList: undefined,
         id: undefined,
         targetdesc: undefined,
-        baseTagList: [],
+        ivrLibaTargetTagList: [],
         targetoptionList: [],
       };
-      this.resetForm("indexform");
+      // this.resetForm("indexform");
     },
     /** 鎼滅储鎸夐挳鎿嶄綔 */
     handleQuery() {
@@ -1132,7 +1225,7 @@
       this.reset();
       this.title = "鏂板鎸囨爣";
       this.indexform = {
-        baseTagList: [],
+        ivrLibaTargetTagList: [],
         targetoptionList: [],
       };
       this.dynamicTags = [];
@@ -1143,6 +1236,7 @@
           targetregex: "",
           targetregex2: "",
           isoperation: 1,
+          picturePath: "",
           dynamiccruxs: [],
           nodynamiccruxs: [],
           dynamiccruxsJson: "",
@@ -1155,9 +1249,10 @@
     /** 淇敼鎸夐挳鎿嶄綔 */
     handleUpdate(row) {
       this.reset();
-      console.log(row);
       this.title = "鎸囨爣璇︽儏";
+      this.indexform = {};
       this.indexform = row;
+      this.indexform.scriptType = Number(row.scriptType);
       if (!row.targetoptionList[0]) {
         row.targetoptionList = [
           {
@@ -1173,8 +1268,9 @@
           },
         ];
       }
-      this.dynamicTags = row.baseTagList.map(this.processElement);
+      this.dynamicTags = row.ivrLibaTargetTagList.map(this.processElement);
       this.testuserList = row.targetoptionList;
+      console.log(this.testuserList, "bbbb");
       this.testvalue = "";
       this.indexopen = true;
       this.measurement = false;
@@ -1194,18 +1290,30 @@
 
     /** 鏇存柊/淇敼鎻愪氦鎸夐挳 */
     submitForm: function () {
-      // this.indexform.targetoptionList=[]
-      this.indexform.targetoptionList = this.indexform.targetoptionList.map(
-        (res) => {
-          res.isoperation = 2;
-          return res;
-        }
-      );
+      // 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) {
+          this.indexform.optionDesc = this.testuserList
+            .filter((item) => item.isoperation != 3)
+            .map((item) => item.targetvalue)
+            .join(", ");
           if (!this.indexform.version) this.indexform.version = "1.0";
           if (this.indexform.id != undefined) {
             this.indexform.isoperation = 2;
@@ -1346,6 +1454,21 @@
     display: center !important;
   }
 }
+.tsgname {
+  width: 90px;
+  margin-right: 10px;
+  text-align: center;
+  cursor: pointer;
+  height: 40px;
+  line-height: 40px;
+  background: #66c18c;
+  color: #ffff;
+  font-size: 18px;
+  border-radius: 5px;
+}
+.tsgname:hover {
+  background: #20894d;
+}
 .qrcode-dialo {
   text-align: center;
   //   display: flex;
@@ -1366,6 +1489,9 @@
     height: 400px;
   }
 }
+.el-select {
+  width: 40%;
+}
 ::v-deep.el-tabs--left,
 .el-tabs--right {
   overflow: hidden;

--
Gitblit v1.9.3