From 3b774a197bd7087ee42999937ccc1e7e048eb1aa Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期四, 11 一月 2024 18:03:17 +0800
Subject: [PATCH] 指标完成

---
 src/views/knowledge/questionbank/particulars/index.vue |  354 ++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 255 insertions(+), 99 deletions(-)

diff --git a/src/views/knowledge/questionbank/particulars/index.vue b/src/views/knowledge/questionbank/particulars/index.vue
index e05bd41..ef1020e 100644
--- a/src/views/knowledge/questionbank/particulars/index.vue
+++ b/src/views/knowledge/questionbank/particulars/index.vue
@@ -6,7 +6,7 @@
           <div class="headline">
             棰樼洰璁剧疆璇︽儏
             <span style="margin-left: 30px"
-              ><el-button type="primary" @click="Submittopicobj"
+              ><el-button type="primary" @click="compileissue"
                 >淇濆瓨</el-button
               ></span
             >
@@ -23,7 +23,7 @@
               <el-col :span="6"
                 ><el-form-item label="鏄惁鍙敤">
                   <el-select
-                    v-model="topicobj.ishide"
+                    v-model="topicobj.isavailable"
                     size="medium"
                     filterable
                     placeholder="璇烽�夋嫨鍒嗙被"
@@ -41,7 +41,7 @@
               <el-col :span="8"
                 ><el-form-item label="璇█(缂�)">
                   <el-select
-                    v-model="topicobj.languageh"
+                    v-model="topicobj.language"
                     size="medium"
                     filterable
                     placeholder="璇烽�夋嫨鍒嗙被"
@@ -59,13 +59,23 @@
             </el-row>
             <el-row :gutter="10">
               <el-col :span="6"
-                ><el-form-item label="鏄惁蹇呯瓟">
-                  <el-radio-group v-model="topicobj.ismandatory">
-                    <el-radio label="1">鏄�</el-radio>
-                    <el-radio label="2">鍚�</el-radio>
-                  </el-radio-group>
-                </el-form-item></el-col
-              >
+                ><el-form-item label="鏄惁蹇呭~">
+                  <el-select
+                    v-model="topicobj.ismandatory"
+                    size="medium"
+                    filterable
+                    placeholder="璇烽�夋嫨鍒嗙被"
+                  >
+                    <el-option
+                      class="topicobjaa"
+                      v-for="item in required"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    >
+                    </el-option>
+                  </el-select> </el-form-item
+              ></el-col>
               <el-col :span="6"
                 ><el-form-item label="棰樼洰绫诲瀷">
                   <el-select
@@ -85,9 +95,9 @@
                   </el-select> </el-form-item
               ></el-col>
               <el-col :span="8"
-                ><el-form-item label="閫傜敤鏂瑰紡(缂�)">
+                ><el-form-item label="閫傜敤鏂瑰紡">
                   <el-select
-                    v-model="topicobj.languageh"
+                    v-model="topicobj.suitway"
                     size="medium"
                     filterable
                     placeholder="璇烽�夋嫨鍒嗙被"
@@ -102,11 +112,13 @@
                     </el-option> </el-select></el-form-item
               ></el-col>
             </el-row>
-            <el-form-item label="棰樼洰鍐呭(缂�)">
+            <el-form-item label="棰樼洰鍐呭">
               <el-input
                 style="width: 40vw"
                 type="textarea"
-                v-model="topicobj.topic"
+                id="questiontext"
+                v-model="topicobj.topicContent"
+                @focus="handleInput('questiontext')"
                 placeholder="璇疯緭鍏ユ爣棰�"
               ></el-input>
             </el-form-item>
@@ -115,14 +127,14 @@
               <el-form-item label="鏍囩" prop="desc">
                 <div class="xinz-inf">
                   <el-tag
-                    :key="tag.tagname"
+                    :key="tag"
                     type="success"
                     v-for="tag in dynamicTags"
                     closable
                     :disable-transitions="false"
                     @close="handleClosetag(tag)"
                   >
-                    {{ tag.tagname }}
+                    {{ tag }}
                   </el-tag>
                   <el-select
                     v-model="inputValue"
@@ -197,6 +209,54 @@
                 </div>
               </el-form-item>
             </el-row>
+            <el-form-item label="閫氱煡鍙橀噺" prop="name">
+              <div style="margin-bottom: 5px" v-for="item in variablelist">
+                <el-row>
+                  <el-col :span="5">
+                    <el-input
+                      v-model="item.variatename"
+                      placeholder="璇疯緭鍏ュ彉閲忓悕"
+                    ></el-input>
+                  </el-col>
+                  <el-col :span="8" :offset="1">
+                    <el-input
+                      v-model="item.variate"
+                      placeholder="璇疯緭鍏ュ彉閲忓唴瀹�"
+                    ></el-input>
+                  </el-col>
+                  <el-col :span="8" :offset="1">
+                    <el-button
+                      type="success"
+                      icon="el-icon-plus"
+                      circle
+                      @click="addvariable(item)"
+                    ></el-button>
+                    <el-button
+                      v-if="!item.default"
+                      type="danger"
+                      icon="el-icon-delete"
+                      circle
+                      @click="delvariable(item)"
+                    ></el-button>
+                  </el-col>
+                </el-row>
+              </div>
+            </el-form-item>
+            <el-row>
+              <el-col :span="24">
+                <div
+                  style="display: flex; margin-left: 66px; margin-bottom: 10px"
+                >
+                  <div
+                    v-for="item in variablelist"
+                    class="tsgname"
+                    @click="tsgnameto(item)"
+                  >
+                    {{ item.variatename }}
+                  </div>
+                </div>
+              </el-col></el-row
+            >
           </div>
 
           <div class="headline">
@@ -210,14 +270,18 @@
               ></span
             >
           </div>
-          <div class="topicxq" v-for="item in optionlist">
+          <div
+            class="topicxq"
+            v-for="item in topicobj.svyLibTopicoptions"
+            v-if="item.isoperation != 3"
+          >
             <el-row :gutter="10">
               <el-col :span="11"
-                ><el-form-item label="棰樺彿">
+                ><el-form-item label="閫夐」">
                   <el-input
                     type="text"
-                    placeholder="璇疯緭鍏�"
-                    v-model="item.optionid"
+                    placeholder="璇疯緭鍏ラ�夐」"
+                    v-model="item.optioncontent"
                     show-word-limit
                   >
                   </el-input> </el-form-item
@@ -232,28 +296,6 @@
                   >
                   </el-input> </el-form-item
               ></el-col>
-            </el-row>
-            <el-row :gutter="10">
-              <el-col :span="11"
-                ><el-form-item label="閫夐」">
-                  <el-input
-                    type="text"
-                    placeholder="璇疯緭鍏ラ�夐」"
-                    v-model="item.optioncontent"
-                    show-word-limit
-                  >
-                  </el-input> </el-form-item
-              ></el-col>
-              <el-col :span="11"
-                ><el-form-item label="涓嬮璺宠浆">
-                  <el-input
-                    type="text"
-                    placeholder="璇疯緭鍏ラ鍙�"
-                    v-model="item.jump"
-                    show-word-limit
-                  >
-                  </el-input> </el-form-item
-              ></el-col>
               <el-col :span="2">
                 <el-button
                   type="danger"
@@ -263,6 +305,7 @@
                 ></el-button>
               </el-col>
             </el-row>
+
             <el-row :gutter="10">
               <el-form-item label="閫変腑鎻愮ず">
                 <el-input
@@ -295,37 +338,20 @@
         >
           <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"
+              @keyup.enter.native="gettargetInfo"
             />
           </el-form-item>
-          <el-form-item label="涓婚" prop="sickness">
-            <el-select
-              v-model="queryParams.classify"
-              size="medium"
-              multiple
-              filterable
-              placeholder="璇烽�夋嫨鍒嗙被"
-            >
-              <el-option
-                class="ruleFormaa"
-                v-for="item in optionsclass"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
-              >
-              </el-option>
-            </el-select>
-          </el-form-item>
+
           <el-form-item>
             <el-button
               type="primary"
               icon="el-icon-search"
               size="medium"
-              @click="handleQuery"
+              @click="gettargetInfo"
               >鎼滅储</el-button
             >
             <el-button icon="el-icon-refresh" size="medium" @click="resetQuery"
@@ -333,19 +359,19 @@
             >
           </el-form-item>
         </el-form>
-        <el-table v-loading="loading" :data="userList">
+        <el-table v-loading="loading" :data="targetList">
           <el-table-column
             label="鏍囬"
             align="center"
-            key="userid"
-            prop="userid"
+            key="targetname"
+            prop="targetname"
             width="100"
           />
           <el-table-column
             label="闂鍐呭"
             align="center"
-            key="userName"
-            prop="userName"
+            key="targetdesc"
+            prop="targetdesc"
             width="200"
             :show-overflow-tooltip="true"
           />
@@ -367,6 +393,13 @@
             </template>
           </el-table-column>
         </el-table>
+        <pagination
+          v-show="total > 0"
+          :total="total"
+          :page.sync="queryParams.pageNum"
+          :limit.sync="queryParams.pageSize"
+          @pagination="gettargetInfo"
+        />
       </div>
     </el-drawer>
   </div>
@@ -376,9 +409,7 @@
 import { listtag } from "@/api/system/label";
 import store from "@/store";
 import {
-  getissueclassify,
-  delissueclassify,
-  addissueclassify,
+  gettargetInfo,
   getissuelist,
   issueinfo,
   compileissue,
@@ -394,27 +425,29 @@
 export default {
   data() {
     return {
-      topicobj: {},
+      topicobj: {
+        svyLibTopicoptions: [],
+      },
       inputVisible: false,
       inputValue: "",
+      currentInputId: "",
+      total: 0,
       drawer: false,
       loading: false,
       id: [],
-      userList: [
-        {
-          userid: "1",
-          userName: "鎸囨爣",
-        },
-        {
-          userid: "2",
-          userName: "浜屽彿闂嵎",
-        },
-      ],
+      targetList: [],
       dynamicTags: [],
+      optionsclass: [],
+      variablelist: [
+        { variatename: "濮撳悕", variate: "${name}", default: 1 },
+        { variatename: "鐢佃瘽", variate: "${phone}", default: 1 },
+        { variatename: "鐥呮儏", variate: "${illness}", default: 1 },
+      ],
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
         pageSize: 10,
+        isavailable: "",
       },
       optionlist: [
         { value: "topic", table: "topic" },
@@ -422,6 +455,7 @@
         { value: "topic", table: "topic" },
       ],
       inputValueillness: "",
+      required: [],
       themelist: [],
       languagelist: [],
       courtyardlist: [],
@@ -444,14 +478,15 @@
   created() {
     this.gettabList();
     this.getissueinfo();
+    this.gettargetInfo();
     this.mode = store.getters.mode;
     this.languagelist = store.getters.languagelist;
     this.usable = store.getters.usable;
     this.xjxsoptions = store.getters.xjxsoptions;
+    this.required = store.getters.required;
   },
 
   methods: {
-    Submittopicobj() {},
     getIndexInArray(arr, obj) {
       return arr.indexOf(obj);
     },
@@ -459,8 +494,15 @@
     // 鑾峰彇鏁版嵁
     getissueinfo() {
       this.id = this.$route.query.id;
-      issueinfo(this.id).then((res) => {
-        this.topicobj = res.data;
+      if (!this.id) {
+        return;
+      }
+      getissuelist({ topicid: this.id }).then((res) => {
+        this.topicobj = res.rows[0];
+        this.dynamicTags = this.topicobj.tag.split(",");
+        this.variablelist = JSON.parse(this.topicobj.otherdata)
+          ? JSON.parse(this.topicobj.otherdata)
+          : this.variablelist;
       });
       getillnesslist({
         pageNum: 1,
@@ -472,12 +514,28 @@
         this.illnesslist = res.rows;
       });
     },
+    gettargetInfo() {
+      gettargetInfo(this.queryParams).then((res) => {
+        this.targetList = res.rows;
+        this.total = res.total;
+      });
+    },
     // 鏂板鎴栦慨鏀硅鎯�
     compileissue() {
+      this.topicobj.svyLibTopicoptions = this.topicobj.svyLibTopicoptions.map(
+        (item) => {
+          if (item.isoperation != 1 && item.isoperation != 3) {
+            item.isoperation = 2;
+          }
+          return item;
+        }
+      );
+      this.topicobj.otherdata = JSON.stringify(this.variablelist);
+      this.topicobj.tag = this.dynamicTags.join(",");
       if (this.id) {
-        this.topicobj.isoperation = 1;
+        this.topicobj.isoperation = 2;
         compileissue(this.topicobj).then((res) => {
-          if (res.code == 1) {
+          if (res.code == 200) {
             this.$message({
               message: "淇敼鎴愬姛",
               type: "success",
@@ -491,9 +549,9 @@
           }
         });
       } else {
-        this.topicobj.isoperation = 2;
+        this.topicobj.isoperation = 1;
         compileissue(this.topicobj).then((res) => {
-          if (res.code == 1) {
+          if (res.code == 200) {
             this.$message({
               message: "鏂板鎴愬姛",
               type: "success",
@@ -507,18 +565,41 @@
           }
         });
       }
+      this.illnesslist.forEach((item, index) => {
+        if (!item.id) {
+          addtargetillness(item).then((res) => {});
+        }
+      });
+      if (this.illnesslistapi.length) {
+        deltargetillness(this.illnesslistapi.join(",")).then((res) => {});
+      }
     },
     // 鍒犻櫎閫夐」
     deletexuanx(row) {
-      const index = this.getIndexInArray(this.optionlist, row);
-      this.optionlist.splice(index, 1);
+      const index = this.getIndexInArray(this.topicobj.svyLibTopicoptions, row);
+      if (this.topicobj.svyLibTopicoptions[index].topicid) {
+        this.topicobj.svyLibTopicoptions[index].isoperation = 3;
+      } else {
+        this.topicobj.svyLibTopicoptions.splice(index, 1);
+      }
     },
     // 鏂板閫夐」
     addoption() {
-      this.optionlist.push({ value: "topic", table: "topic" });
+      this.topicobj.svyLibTopicoptions.push({
+        score: "",
+        isoperation: 1,
+      });
     },
     // 閫夋嫨鎸囨爣
-    selectlabel(row) {},
+    selectlabel(row) {
+      const labellist = row.targetoptionList;
+      labellist.forEach((item) => {
+        this.topicobj.svyLibTopicoptions.push({
+          optioncontent: item.targetvalue,
+          isoperation: 1,
+        });
+      });
+    },
 
     // 鏍囩-----------------
     gettabList() {
@@ -535,9 +616,7 @@
     handleClosetag(tag) {
       console.log(tag);
       console.log(this.dynamicTags.indexOf(tag));
-      const lindex = this.dynamicTags.indexOf(tag);
       this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
-      this.ruleForm.ivrLibaTemplateTargetList[lindex].isoperation = 3;
     },
     handleInputConfirm() {
       let tagvalue = {};
@@ -558,8 +637,8 @@
               isoperation: 1,
             };
           }
-          // this.ruleForm.ivrLibaTemplateTargetList.push(tagvalue);
-          this.dynamicTags.push(tagvalue);
+          // this.dynamicTags.push(tagvalue);
+          this.dynamicTags.push(tagvalue.tagname);
         });
       }
       this.inputVisible = false;
@@ -635,9 +714,71 @@
       this.illnessVisible = false;
       this.$modal.msgSuccess("缂栬緫鎴愬姛");
     },
-    // 鏌ヨ棰樺簱
-    handleQuery() {},
     resetQuery() {},
+    // 渚挎嵎鏍囩
+    tsgnameto(row) {
+      let inputValueArr = "";
+      let el = document.querySelector("#" + this.currentInputId);
+      //el.selectionStart; 杩欏氨鏄綋鍓嶅厜鏍囨墍鍦ㄧ殑浣嶇疆锛堝瓧绗︿覆涓瓧绗︾殑index锛�
+      if (this.currentInputId == "questiontext") {
+        inputValueArr = this.indexform.questiontext.split("");
+      } else if (this.currentInputId == "nomatchtext") {
+        inputValueArr = this.indexform.nomatchtext.split("");
+      } else if (this.currentInputId == "sliencetext") {
+        inputValueArr = this.indexform.sliencetext.split("");
+      } else if (this.currentInputId == "noclearlytext") {
+        inputValueArr = this.indexform.noclearlytext.split("");
+      } else if (this.currentInputId == "submoduletext") {
+        inputValueArr = this.indexform.submoduletext.split("");
+      } else {
+        return;
+      }
+      //灏嗚緭鍏ユ鍐呭鍒囨垚鏁扮粍锛屾柟渚垮悗缁搷浣�
+      // inputValueArr = this.inputValue.split("");
+      // 鎷垮埌閫変腑鏂囧瓧鐨勯暱搴︼紙鍚庣画鍙互鐢ㄦ潵鏇挎崲閫変腑鐨勬枃瀛楋級
+      let selectLength = el.selectionEnd - el.selectionStart;
+      // 灏嗚鎻掑叆/鏇挎崲鐨勬枃瀛楁彃鍏�/鏇挎崲锛坴alue.name鏄鎻掑叆/鏇挎崲鐨勫瓧绗︿覆锛�
+      inputValueArr.splice(el.selectionStart, selectLength, `${row.variate}`);
+      // 鎶婃暟缁勯噸鏂拌浆鎹负瀛楃涓插苟璧嬪��
+      inputValueArr = inputValueArr.join("");
+      console.log(inputValueArr);
+      if (this.currentInputId == "questiontext") {
+        this.indexform.questiontext = inputValueArr;
+      } else if (this.currentInputId == "nomatchtext") {
+        this.indexform.nomatchtext = inputValueArr;
+      } else if (this.currentInputId == "sliencetext") {
+        this.indexform.sliencetext = inputValueArr;
+      } else if (this.currentInputId == "noclearlytext") {
+        this.indexform.noclearlytext = inputValueArr;
+      } else if (this.currentInputId == "submoduletext") {
+        this.indexform.submoduletext = inputValueArr;
+      } else {
+        return;
+      }
+    },
+
+    // 鏂板鍙橀噺
+    addvariable() {
+      this.variablelist.push({
+        variatename: "",
+        variate: "",
+      });
+    },
+    // 鍒犻櫎鍙橀噺
+    delvariable(item) {
+      const index = this.variablelist.indexOf(item);
+      if (index !== -1) {
+        this.variablelist.splice(index, 1); // 浠庣储寮曚綅缃垹闄や竴涓厓绱�
+      } else {
+        console.log("鏈壘鍒拌瀵硅薄");
+      }
+    },
+    // 杈撳叆鑾峰彇id
+    handleInput(id) {
+      this.currentInputId = id;
+      console.log("杈撳叆妗嗙殑鍊煎凡鏇存柊:", this.currentInputId);
+      // 鍦ㄨ繖閲屾墽琛屾洿鏂版暟鎹殑閫昏緫
+    },
   },
 };
 </script>
@@ -691,6 +832,21 @@
     }
   }
 }
+.tsgname {
+  width: 90px;
+  margin-right: 10px;
+  text-align: center;
+  cursor: pointer;
+  height: 40px;
+  line-height: 40px;
+  background: #7799fa;
+  color: #ffff;
+  font-size: 18px;
+  border-radius: 5px;
+}
+.tsgname:hover {
+  background: #3366f5;
+}
 .preview-left {
   margin: 20px;
   //   margin: 20px;

--
Gitblit v1.9.3