From d1367a2eafbc26cadf07abb3caa94a0d64d09cab Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期二, 13 八月 2024 14:14:12 +0800
Subject: [PATCH] 测试完成

---
 src/views/knowledge/questionbank/particulars/index.vue |  359 ++++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 256 insertions(+), 103 deletions(-)

diff --git a/src/views/knowledge/questionbank/particulars/index.vue b/src/views/knowledge/questionbank/particulars/index.vue
index f3bae06..b6da7c2 100644
--- a/src/views/knowledge/questionbank/particulars/index.vue
+++ b/src/views/knowledge/questionbank/particulars/index.vue
@@ -6,6 +6,9 @@
           <div class="headline">
             棰樼洰璁剧疆璇︽儏
             <span style="float: right; margin-right: 30px"
+              ><el-button type="success" @click="Saveproblem">棰勮</el-button>
+            </span>
+            <span style="float: right; margin-right: 30px"
               ><el-button type="primary" @click="Saveproblem">淇� 瀛�</el-button>
             </span>
           </div>
@@ -88,7 +91,7 @@
                   </el-select> </el-form-item
               ></el-col>
               <el-col :span="8"
-                ><el-form-item label="璇█(缂�)">
+                ><el-form-item label="璇█">
                   <el-select
                     v-model="topicobj.language"
                     size="medium"
@@ -129,6 +132,7 @@
                 ><el-form-item label="棰樼洰绫诲瀷">
                   <el-select
                     v-model="topicobj.scriptType"
+                    @change="changefn"
                     size="medium"
                     filterable
                     placeholder="璇烽�夋嫨鍒嗙被"
@@ -146,11 +150,9 @@
               <el-col :span="8"
                 ><el-form-item label="閫傜敤鏂瑰紡">
                   <el-select
-                    v-model="suitwaylist"
-                    size="medium"
-                    filterable
-                    multiple
-                    placeholder="璇烽�夋嫨鍒嗙被"
+                    v-model="topicobj.suitway"
+                    disabled
+                    placeholder="璇烽�夋嫨"
                   >
                     <el-option
                       class="topicobjaa"
@@ -172,6 +174,50 @@
                 placeholder="璇疯緭鍏ラ鐩唴瀹�"
               ></el-input>
             </el-form-item>
+            <el-form-item
+              label=""
+              prop="scriptContent"
+              v-if="topicobj.scriptType == 3"
+            >
+              <div style="display: flex; margin-bottom: 10px">
+                <div class="tsgnames" @click="tsgnametos">鎻掑叆濉┖鏍囪</div>
+              </div>
+            </el-form-item>
+            <el-row>
+              <el-col :span="20">
+                <el-form-item
+                  label="濉┖淇℃伅"
+                  v-if="
+                    topicobj.scriptType == 3 && topicobj.svyLibScriptOptions.length
+                  "
+                >
+                  <el-card class="box-card" style="width: 200%">
+                    <div
+                      v-for="item in topicobj.svyLibScriptOptions"
+                      v-if="item.isoperation != 3"
+                      style="margin-bottom: 10px"
+                    >
+                      <el-input
+                        type="text"
+                        placeholder="濉叆鍐呭淇℃伅"
+                        v-model="item.aaa"
+                      >
+                        <el-button
+                          slot="append"
+                          @click="deletexuanx(item)"
+                          type="danger"
+                          icon="el-icon-delete"
+                          circle
+                        ></el-button>
+                        <span slot="prepend">{{
+                          "(" + item.orderno + ")"
+                        }}</span>
+                      </el-input>
+                    </div>
+                  </el-card>
+                </el-form-item>
+              </el-col>
+            </el-row>
             <el-form-item label="棰樼洰璇存槑">
               <el-input
                 style="width: 40vw"
@@ -187,11 +233,15 @@
                   class="upload-demo"
                   :action="uploadImgUrl"
                   :headers="headers"
-                  :accept="'image/*,video/*'"
+                  accept=".jpg,.png,image/*"
                   :on-success="handleChangetg"
                 >
                   <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
+                  <div slot="tip" class="el-upload__tip">
+                    鍙兘涓婁紶jpg/png绫诲瀷鏂囦欢
+                  </div>
                 </el-upload>
+
                 <div style="margin: 20px">
                   <el-image
                     style="width: 100px; height: 100px"
@@ -207,14 +257,14 @@
               <el-form-item label="鏍囩" prop="desc">
                 <div class="xinz-inf">
                   <el-tag
-                    :key="tag"
+                    :key="tag.tagname"
                     type="success"
                     v-for="tag in dynamicTags"
                     closable
                     :disable-transitions="false"
                     @close="handleClosetag(tag)"
                   >
-                    {{ tag }}
+                    {{ tag.tagname }}
                   </el-tag>
                   <el-select
                     v-model="inputValue"
@@ -222,6 +272,7 @@
                     @change="handleInputConfirm"
                     filterable
                     remote
+                    allow-create
                     reserve-keyword
                     default-first-option
                     :remote-method="remoteMethodtag"
@@ -246,61 +297,26 @@
                 </div>
               </el-form-item>
             </el-row>
-            <el-row>
-              <el-form-item label="閫傜敤鐤剧梾" prop="region">
-                <div class="xinz-inf">
-                  <el-tag
-                    :key="item.icd10name"
-                    type="warning"
-                    v-for="item in illnesslist"
-                    closable
-                    :disable-transitions="false"
-                    @close="handleCloseillness(item)"
-                  >
-                    {{ item.icd10name }}
-                  </el-tag>
-                  <el-select
-                    v-model="inputValueillness"
-                    v-if="inputVisibleillness"
-                    @change="illnessConfirm"
-                    :remote-method="remoteMethod"
-                    filterable
-                    remote
-                    allow-create
-                    default-first-option
-                    placeholder="璇烽�夋嫨/鏌ヨ"
-                    :loading="loading"
-                  >
-                    <el-option
-                      v-for="item in optionsillness"
-                      :key="item.icdid"
-                      :label="item.icdname"
-                      :value="item.icdid"
-                    >
-                    </el-option>
-                  </el-select>
-                  <el-button
-                    v-else
-                    class="button-new-tag"
-                    size="small"
-                    @click="inputVisibleillness = true"
-                    >+ 鏂板鐤剧梾</el-button
-                  >
-                </div>
-              </el-form-item>
-            </el-row>
+            
+            <el-form-item label="閫変腑鎸囨爣锛�">
+              <span style="margin-left: 30px"
+                ><el-tag type="success" effect="dark">{{
+                  topicobj.targetname ? topicobj.targetname : "鏈�夋嫨"
+                }}</el-tag></span
+              >
+              <span style="margin-left: 30px"
+                ><el-button type="success" round @click="gettargetInfo"
+                  >+閫夋嫨鎸囨爣</el-button
+                ></span
+              >
+            </el-form-item>
           </div>
-          <div v-if="topicobj.scriptType != 3">
+
+          <div v-if="topicobj.scriptType != 3 && topicobj.scriptType != 4">
             <div class="headline">
               閫夐」璁剧疆<span style="margin-left: 30px"
                 ><el-button type="primary" round @click="addoption"
                   >+鏂板</el-button
-                ></span
-              >
-              <span style="margin-left: 30px">閫変腑鎸囨爣锛歿{topicobj.scriptTopic}}</span>
-              <span style="margin-left: 30px"
-                ><el-button type="success" round @click="gettargetInfo"
-                  >+閫夋嫨鎸囨爣</el-button
                 ></span
               >
             </div>
@@ -351,7 +367,8 @@
                     </el-radio-group>
                   </el-form-item>
                 </el-col>
-                <el-col :span="2">
+
+                <el-col :span="2" :offsset="topicobj.scoretype == 4 ? 11 : 0">
                   <el-button
                     type="danger"
                     icon="el-icon-delete"
@@ -360,7 +377,14 @@
                   ></el-button>
                 </el-col>
               </el-row>
-
+              <el-row :gutter="10">
+                <el-form-item label="棰勮鎻愰啋">
+                  <el-radio-group v-model="item.isabnormal">
+                    <el-radio :label="1">鏄�</el-radio>
+                    <el-radio :label="0">鍚�</el-radio>
+                  </el-radio-group>
+                </el-form-item>
+              </el-row>
               <el-row :gutter="10">
                 <el-form-item label="閫変腑鎻愮ず">
                   <el-input
@@ -379,7 +403,7 @@
                     class="upload-demo"
                     :action="uploadImgUrl"
                     :headers="headers"
-                    :accept="'image/*,video/*'"
+                    accept=".jpg,.png,image/*"
                     :on-success="handleChange.bind(this, item)"
                   >
                     <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
@@ -413,7 +437,7 @@
           :inline="true"
           label-width="98px"
         >
-          <el-form-item label="鏍囬" prop="userName">
+          <el-form-item label="鎸囨爣鍚嶇О" prop="userName">
             <el-input
               v-model="queryParams.targetname"
               placeholder="璇疯緭鍏�"
@@ -421,6 +445,26 @@
               style="width: 200px"
               @keyup.enter.native="gettargetInfo"
             />
+          </el-form-item>
+          <el-form-item label="鎸囨爣璇存槑" prop="userName">
+            <el-input
+              v-model="queryParams.targetdesc"
+              placeholder="璇疯緭鍏�"
+              clearable
+              style="width: 200px"
+              @keyup.enter.native="gettargetInfo"
+            />
+          </el-form-item>
+          <el-form-item label="鎸囨爣绫诲瀷" prop="scriptType">
+            <el-select v-model="queryParams.scriptType" placeholder="璇烽�夋嫨">
+              <el-option
+                v-for="(item, index) in qyoptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
           </el-form-item>
 
           <el-form-item>
@@ -438,17 +482,53 @@
         </el-form>
         <el-table v-loading="loading" :data="targetList">
           <el-table-column
-            label="鏍囬"
+            label="鎸囨爣鍚嶇О"
             align="center"
             key="targetname"
             prop="targetname"
             width="100"
           />
           <el-table-column
-            label="闂鍐呭"
+            label="鎸囨爣璇存槑"
             align="center"
             key="targetdesc"
             prop="targetdesc"
+            width="200"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="璇█"
+            align="center"
+            key="language"
+            prop="language"
+            width="200"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="鏄惁鍙敤"
+            align="center"
+            key="isAvailable"
+            prop="isAvailable"
+          >
+            <template slot-scope="scope">
+              <dict-tag :options="usable" :value="scope.row.isAvailable" />
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="闂绫诲瀷"
+            align="center"
+            key="scriptType"
+            prop="scriptType"
+          >
+            <template slot-scope="scope">
+              <dict-tag :options="valuetype" :value="scope.row.scriptType" />
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="閫夐」璇存槑"
+            align="center"
+            key="optionDesc"
+            prop="optionDesc"
             width="200"
             :show-overflow-tooltip="true"
           />
@@ -506,6 +586,8 @@
     return {
       topicobj: {
         svyLibScriptOptions: [],
+        svyLibScriptTagList: [],
+        suitway: "1",
       },
       headers: {
         Authorization: "Bearer " + getToken(),
@@ -514,6 +596,7 @@
       inputVisible: false,
       inputValue: "",
       currentInputId: "",
+      scriptTypels: "",
       total: 0,
       drawer: false,
       loading: false,
@@ -537,6 +620,7 @@
         pageNum: 1,
         pageSize: 10,
         isavailable: "",
+        scriptType: "",
       },
       optionlist: [
         { value: "scriptTopic", table: "scriptTopic" },
@@ -553,6 +637,7 @@
       inputVisibleillness: false,
       illnessVisible: false, //鎸囨爣鐤剧梾寮规
       deptOptions: [],
+      qyoptions: [],
       optionsillness: [],
       illnesslistapi: [],
       illnesslist: [],
@@ -561,6 +646,7 @@
         { label: "鍒嗘暟", value: "1" },
         { label: "ABC绛夌骇", value: "2" },
         { label: "浼樿壇绛夌骇", value: "3" },
+        { label: "鏃�", value: "4" },
       ],
       optionstag: [],
       valuetype: [],
@@ -578,12 +664,16 @@
     this.usable = store.getters.usable;
     this.valuetype = store.getters.askvaluetype;
     this.required = store.getters.required;
+    this.qyoptions = store.getters.askvaluetype;
   },
 
   methods: {
     // 鍏叡鏂规硶---------------
     getIndexInArray(arr, obj) {
       return arr.indexOf(obj);
+    },
+    processElement(element) {
+      return { ...element, isoperation: 1 };
     },
     // 閫掑綊鎵佸钩鍖�
     flattenArray(arr) {
@@ -614,8 +704,10 @@
       }
       getissuelist({ id: this.id }).then((res) => {
         this.topicobj = res.rows[0];
-        this.dynamicTags = this.topicobj.tag.split(",");
-        this.suitwaylist = this.topicobj.suitway.split(",");
+        this.dynamicTags = this.topicobj.svyLibScriptTagList.map(
+          this.processElement
+        );
+        this.scriptTypels = this.topicobj.scriptType;
         this.variablelist = JSON.parse(this.topicobj.otherdata)
           ? JSON.parse(this.topicobj.otherdata)
           : this.variablelist;
@@ -631,7 +723,17 @@
       });
     },
     gettargetInfo() {
-      this.queryParams.scriptType = this.topicobj.scriptType;
+      if (!this.topicobj.scriptType) {
+        this.$message({
+          message: "璇峰厛閫夋嫨棰樼洰绫诲瀷",
+          type: "error",
+        });
+        return;
+      }
+      if (this.topicobj.scriptType) {
+        this.queryParams.scriptType = this.topicobj.scriptType;
+      }
+      this.queryParams.suitWay = 1;
       gettargetInfo(this.queryParams).then((res) => {
         this.targetList = res.rows;
         this.total = res.total;
@@ -648,9 +750,11 @@
           return item;
         }
       );
+      this.topicobj.targetoptions = this.topicobj.svyLibScriptOptions
+        .filter((item) => item.isoperation != 3)
+        .map((item) => item.optioncontent)
+        .join(", ");
       this.topicobj.otherdata = JSON.stringify(this.variablelist);
-      this.topicobj.tag = this.dynamicTags.join(",");
-      this.topicobj.suitway = this.suitwaylist.join(",");
       if (this.id) {
         this.topicobj.isoperation = 2;
         compileissue(this.topicobj).then((res) => {
@@ -700,12 +804,12 @@
         if (score.score) {
           console.log(Number(score.score), this.topicobj.score, "鍒嗗��");
           if (
-            Number(score.score) <= 0 ||
+            Number(score.score) < 0 ||
             Number(score.score) > Number(this.topicobj.score)
           ) {
             console.log(score, "閿欒鍒嗗��");
             this.$message({
-              message: "閫夐」鍒嗗�煎繀椤诲ぇ浜�0灏忎簬绛変簬" + this.topicobj.score + "鍒�",
+              message: "閫夐」鍒嗗�煎繀椤诲湪0鍒�" + this.topicobj.score + "鍒嗕箣闂�",
               type: "warning",
             });
             return false;
@@ -729,23 +833,42 @@
     },
     Saveproblem() {
       if (this.topicobj.scoretype == 1) {
-        console.log(321);
         this.Scorejudgment();
       } else {
         this.compileissue();
       }
     },
-    // 鍒犻櫎鏍囩
-    handleClose(tag) {
-      this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
+    // 鍒ゆ柇鎸囨爣
+    changefn(item) {
+      console.log(item);
+
+      if (
+        this.topicobj.targetname ||
+        this.topicobj.svyLibScriptOptions[0].optioncontent
+      ) {
+        this.$modal
+          .confirm("鏇存敼绫诲瀷鍚庨�夐」灏嗘竻绌烘槸鍚︾户缁紵")
+          .then(() => {
+            this.scriptTypels = this.topicobj.scriptType;
+            this.topicobj.svyLibScriptOptions = [];
+          })
+          .catch(() => {
+            this.topicobj.scriptType = this.scriptTypels;
+          });
+      }
     },
+
     // 鍒犻櫎閫夐」
     deletexuanx(row) {
       const index = this.getIndexInArray(
         this.topicobj.svyLibScriptOptions,
         row
       );
+      console.log(this.topicobj.svyLibScriptOptions);
+
       if (this.topicobj.svyLibScriptOptions[index].id) {
+        console.log(2);
+
         this.topicobj.svyLibScriptOptions[index].isoperation = 3;
       } else {
         this.topicobj.svyLibScriptOptions.splice(index, 1);
@@ -763,14 +886,17 @@
     selectlabel(row) {
       this.$modal
         .confirm(
-          '鏄惁閫夋嫨鏍囬涓�"' + row.targetname + '"鐨勬寚鏍囧苟鏇挎崲濉厖闂淇℃伅锛�'
+          '鏄惁閫夋嫨鏍囬涓�"' +
+            row.targetname +
+            '"鐨勬寚鏍囧苟鏇挎崲濉厖闂鍙婇�夐」淇℃伅锛�'
         )
         .then(() => {
           console.log(row);
-          console.log(this.topicobj);
           this.topicobj.scriptTopic = row.targetname;
           this.topicobj.valueType = row.valueType;
           this.topicobj.scriptContent = row.targetdesc;
+          this.topicobj.targetid = row.id;
+          this.topicobj.targetname = row.targetname;
           this.topicobj.isavailable = "0";
           this.topicobj.language = "鏅�氳瘽";
           this.topicobj.svyLibScriptOptions = [];
@@ -794,14 +920,16 @@
         tagcategoryid: "0",
       };
       listtag(tagqueryParams).then((response) => {
-        console.log(response);
+        console.log(response, "寰呴�夋爣绛�");
         this.optionstag = response.rows;
       });
     },
     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.topicobj.svyLibScriptTagList[lindex].delFlag = 1;
     },
     handleInputConfirm() {
       let tagvalue = {};
@@ -823,7 +951,8 @@
             };
           }
           // this.dynamicTags.push(tagvalue);
-          this.dynamicTags.push(tagvalue.tagname);
+          this.topicobj.svyLibScriptTagList.push(tagvalue);
+          this.dynamicTags.push(tagvalue);
         });
       }
       this.inputVisible = false;
@@ -899,22 +1028,25 @@
     //   this.illnessVisible = false;
     //   this.$modal.msgSuccess("缂栬緫鎴愬姛");
     // },
-    resetQuery() {},
-    // 渚挎嵎鏍囩
-    tsgnameto(row) {
+    resetQuery() {
+      this.queryParams = {
+        pageNum: 1,
+        pageSize: 10,
+      };
+      this.gettargetInfo();
+    },
+
+    // 渚挎嵎鏍囩鎻掑叆濉┖
+    tsgnametos(row) {
       let inputValueArr = "";
+      let value = this.topicobj.svyLibScriptOptions.length + 1;
+
       let el = document.querySelector("#" + this.currentInputId);
       //el.selectionStart; 杩欏氨鏄綋鍓嶅厜鏍囨墍鍦ㄧ殑浣嶇疆锛堝瓧绗︿覆涓瓧绗︾殑index锛�
       if (this.currentInputId == "scriptContent") {
+        console.log(1);
         inputValueArr = this.topicobj.scriptContent.split("");
-      } else if (this.currentInputId == "nomatchtext") {
-        inputValueArr = this.topicobj.nomatchtext.split("");
-      } else if (this.currentInputId == "sliencetext") {
-        inputValueArr = this.topicobj.sliencetext.split("");
-      } else if (this.currentInputId == "noclearlytext") {
-        inputValueArr = this.topicobj.noclearlytext.split("");
-      } else if (this.currentInputId == "submoduletext") {
-        inputValueArr = this.topicobj.submoduletext.split("");
+        console.log(2);
       } else {
         return;
       }
@@ -923,20 +1055,22 @@
       // 鎷垮埌閫変腑鏂囧瓧鐨勯暱搴︼紙鍚庣画鍙互鐢ㄦ潵鏇挎崲閫変腑鐨勬枃瀛楋級
       let selectLength = el.selectionEnd - el.selectionStart;
       // 灏嗚鎻掑叆/鏇挎崲鐨勬枃瀛楁彃鍏�/鏇挎崲锛坴alue.name鏄鎻掑叆/鏇挎崲鐨勫瓧绗︿覆锛�
-      inputValueArr.splice(el.selectionStart, selectLength, `${row.variate}`);
+      inputValueArr.splice(
+        el.selectionStart,
+        selectLength,
+        "__" + value + "__"
+      );
+      this.topicobj.svyLibScriptOptions.push({
+        orderno: value,
+        optiondesc: "",
+        isoperation: 1,
+      });
       // 鎶婃暟缁勯噸鏂拌浆鎹负瀛楃涓插苟璧嬪��
       inputValueArr = inputValueArr.join("");
+
       console.log(inputValueArr);
       if (this.currentInputId == "scriptContent") {
         this.topicobj.scriptContent = inputValueArr;
-      } else if (this.currentInputId == "nomatchtext") {
-        this.topicobj.nomatchtext = inputValueArr;
-      } else if (this.currentInputId == "sliencetext") {
-        this.topicobj.sliencetext = inputValueArr;
-      } else if (this.currentInputId == "noclearlytext") {
-        this.topicobj.noclearlytext = inputValueArr;
-      } else if (this.currentInputId == "submoduletext") {
-        this.topicobj.submoduletext = inputValueArr;
       } else {
         return;
       }
@@ -1010,10 +1144,14 @@
     handleChange(item, response, file, fileList) {
       console.log(response);
       if (response.code == 200) {
+        console.log(item);
         let index = this.topicobj.svyLibScriptOptions.findIndex(
-          (obj) => obj.id == item.id && obj.name == item.name
+          (obj) => obj.optioncontent == item.optioncontent
         );
+        console.log(index);
         this.topicobj.svyLibScriptOptions[index].picturePath = response.url;
+        console.log(this.topicobj.svyLibScriptOptions[index]);
+        this.$forceUpdate();
       } else {
         this.$message.error("鍥剧墖鎻掑叆澶辫触");
       }
@@ -1043,12 +1181,12 @@
     margin: 15px 0;
   }
   .topicxq {
-    width: 68%;
+    width: 72%;
     background-color: #e2f5fc;
     border-radius: 4px;
     margin-top: 15px;
     margin-left: 10%;
-    padding-left: 10px;
+    padding-left: 20px;
     padding-top: 15px;
     border: 1px solid #dcdfe6;
     -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
@@ -1094,6 +1232,21 @@
 .tsgname:hover {
   background: #3366f5;
 }
+.tsgnames {
+  width: 120px;
+  margin-right: 10px;
+  text-align: center;
+  cursor: pointer;
+  height: 40px;
+  line-height: 40px;
+  background: #66c18c;
+  color: #ffff;
+  font-size: 18px;
+  border-radius: 5px;
+}
+.tsgnames:hover {
+  background: #20894d;
+}
 .preview-left {
   margin: 20px;
   //   margin: 20px;

--
Gitblit v1.9.3