From f93cb40b76468c6f1063081a3be16027d69b4832 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期四, 04 一月 2024 09:46:01 +0800
Subject: [PATCH] 指标完成

---
 src/views/knowledge/questionnaire/compilequer/index.vue |  487 ++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 326 insertions(+), 161 deletions(-)

diff --git a/src/views/knowledge/questionnaire/compilequer/index.vue b/src/views/knowledge/questionnaire/compilequer/index.vue
index 556466a..26c78ac 100644
--- a/src/views/knowledge/questionnaire/compilequer/index.vue
+++ b/src/views/knowledge/questionnaire/compilequer/index.vue
@@ -17,9 +17,7 @@
     <div class="leftvlue">
       <!-- 鍩烘湰淇℃伅 -->
       <div v-if="Editprogress == 1">
-        <div class="leftvlue-jbxx">
-          鍩烘湰淇℃伅
-        </div>
+        <div class="leftvlue-jbxx">鍩烘湰淇℃伅</div>
         <el-divider></el-divider>
         <el-form
           :model="ruleForm"
@@ -30,7 +28,7 @@
         >
           <el-form-item label="闂嵎鍒嗙被" prop="region">
             <el-select
-              v-model="ruleForm.classify"
+              v-model="ruleForm.categoryid"
               size="medium"
               multiple
               filterable
@@ -38,7 +36,7 @@
             >
               <el-option
                 class="ruleFormaa"
-                v-for="item in options"
+                v-for="item in optionsclass"
                 :key="item.value"
                 :label="item.label"
                 :value="item.value"
@@ -48,16 +46,32 @@
           </el-form-item>
           <el-form-item label="闂嵎鏍囬" prop="name">
             <div style="width: 30%">
-              <el-input v-model="ruleForm.name"></el-input>
+              <el-input v-model="ruleForm.svyname"></el-input>
             </div>
           </el-form-item>
+          <el-form-item label="闂嵎鎻忚堪">
+            <el-input
+              style="width: 40vw"
+              type="textarea"
+              autosize
+              placeholder="璇疯緭鍏ュ唴瀹�"
+              v-model="ruleForm.description"
+            >
+            </el-input
+          ></el-form-item>
           <el-form-item label="閫氱煡鍙橀噺" prop="name">
             <el-row v-for="item in variablelist">
               <el-col :span="4">
-                <el-input v-model="item.variable"></el-input>
+                <el-input
+                  v-model="item.name"
+                  placeholder="璇疯緭鍏ュ彉閲忓悕"
+                ></el-input>
               </el-col>
               <el-col :span="8" :offset="1">
-                <el-input v-model="item.value"></el-input>
+                <el-input
+                  v-model="item.value"
+                  placeholder="璇疯緭鍏ュ彉閲忓唴瀹�"
+                ></el-input>
               </el-col>
               <el-col :span="4" :offset="1">
                 <el-button
@@ -67,6 +81,7 @@
                   @click="addvariable(item)"
                 ></el-button>
                 <el-button
+                  v-if="item"
                   type="danger"
                   icon="el-icon-delete"
                   circle
@@ -91,53 +106,101 @@
               </el-upload>
             </div>
           </el-form-item>
-          <el-form-item label="鏍囩" prop="desc">
-            <div class="xinz-inf">
-              <el-tag
-                :key="tag"
-                type="success"
-                v-for="tag in dynamicTags"
-                closable
-                :disable-transitions="false"
-                @close="handleClose(tag)"
-              >
-                {{ tag }}
-              </el-tag>
-              <el-select
-                v-model="inputValue"
-                v-if="inputVisible"
-                @change="handleInputConfirm"
-                filterable
-                  allow-create
+          <el-row>
+            <el-form-item label="鏍囩" prop="desc">
+              <div class="xinz-inf">
+                <el-tag
+                  :key="tag.tagname"
+                  type="success"
+                  v-for="tag in dynamicTags"
+                  closable
+                  :disable-transitions="false"
+                  @close="handleClosetag(tag)"
+                >
+                  {{ tag.tagname }}
+                </el-tag>
+                <el-select
+                  v-model="inputValue"
+                  v-if="inputVisible"
+                  @change="handleInputConfirm"
+                  filterable
+                  remote
+                  reserve-keyword
                   default-first-option
-                placeholder="璇烽�夋嫨"
-              >
-                <el-option
-                  v-for="item in optionstag"
-                  :key="item.tagname"
+                  :remote-method="remoteMethodtag"
+                  :loading="loading"
+                  placeholder="璇烽�夋嫨"
+                >
+                  <el-option
+                    v-for="item in optionstag"
+                    :key="item.tagid"
                     :label="item.tagname"
                     :value="item.tagname"
+                  >
+                  </el-option>
+                </el-select>
+                <el-button
+                  v-else
+                  class="button-new-tag"
+                  size="small"
+                  @click="showInput"
+                  >+ 鏂板鏍囩</el-button
                 >
-                </el-option>
-              </el-select>
-              <el-button
-                v-else
-                class="button-new-tag"
-                size="small"
-                @click="showInput"
-                >+ 鏂板鏍囩</el-button
-              >
-            </div>
-          </el-form-item>
+              </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-row :gutter="20">
             <el-col :span="6">
               <el-form-item label="鐗堟湰鍙�" prop="name">
-                <el-input v-model="currentVersion"></el-input> </el-form-item
+                <el-input v-model="ruleForm.version"></el-input> </el-form-item
             ></el-col>
             <el-col :span="9">
               <el-form-item label="鍙敤鐘舵��" prop="region">
                 <el-select
-                  v-model="ruleForm.classify"
+                  v-model="ruleForm.isenable"
                   size="medium"
                   multiple
                   filterable
@@ -145,7 +208,7 @@
                 >
                   <el-option
                     class="ruleFormaa"
-                    v-for="item in options"
+                    v-for="item in usable"
                     :key="item.value"
                     :label="item.label"
                     :value="item.value"
@@ -154,7 +217,7 @@
                 </el-select> </el-form-item
             ></el-col>
           </el-row>
-          <el-form-item label="闂嵎鏂瑰紡" prop="region">
+          <el-form-item label="闂嵎鏂瑰紡(缂�)" prop="region">
             <el-select
               v-model="ruleForm.way"
               size="medium"
@@ -172,24 +235,7 @@
               </el-option>
             </el-select>
           </el-form-item>
-          <el-form-item label="閫傜敤鐤剧梾" prop="region">
-            <el-select
-              v-model="ruleForm.illness"
-              size="medium"
-              multiple
-              filterable
-              placeholder="璇烽�夋嫨鍒嗙被"
-            >
-              <el-option
-                class="ruleFormaa"
-                v-for="item in options"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
-              >
-              </el-option>
-            </el-select>
-          </el-form-item>
+
           <el-form-item label="閫傜敤闄㈠尯" prop="region">
             <el-select
               v-model="ruleForm.courtyard"
@@ -199,7 +245,7 @@
             >
               <el-option
                 class="ruleFormaa"
-                v-for="item in options"
+                v-for="item in courtyardlist"
                 :key="item.value"
                 :label="item.label"
                 :value="item.value"
@@ -217,7 +263,7 @@
             >
               <el-option
                 class="ruleFormaa"
-                v-for="item in options"
+                v-for="item in courtyardlist"
                 :key="item.value"
                 :label="item.label"
                 :value="item.value"
@@ -345,51 +391,70 @@
                   ></el-col>
                 </el-row>
                 <div class="headline">閫夐」璁剧疆</div>
-                <div class="topicxq" v-for="item in 2">
+                <div class="topicxq" v-for="item in optionlist">
                   <el-row :gutter="10">
-                    <el-col :span="12"
-                      ><el-form-item label="閫夐」">
+                    <el-col :span="11"
+                      ><el-form-item label="棰樺彿">
                         <el-input
                           type="text"
-                          placeholder="璇疯緭鍏ラ�夐」"
-                          v-model="text"
+                          placeholder="璇疯緭鍏�"
+                          v-model="item.optionid"
                           show-word-limit
                         >
                         </el-input> </el-form-item
                     ></el-col>
-                    <el-col :span="12"
+                    <el-col :span="11"
                       ><el-form-item label="鍒嗗��">
                         <el-input
                           type="text"
-                          placeholder="璇疯緭鍏ュ垎鍊�"
-                          v-model="text"
+                          placeholder="璇疯緭鍏�"
+                          v-model="item.score"
                           show-word-limit
                         >
                         </el-input> </el-form-item
                     ></el-col>
                   </el-row>
                   <el-row :gutter="10">
-                    <el-col :span="12"
-                      ><el-form-item label="閫変腑鎻愮ず">
+                    <el-col :span="11"
+                      ><el-form-item label="閫夐」">
                         <el-input
                           type="text"
-                          placeholder="璇疯緭鍏ュ唴瀹�"
-                          v-model="text"
-                          maxlength="10"
+                          placeholder="璇疯緭鍏ラ�夐」"
+                          v-model="item.optioncontent"
                           show-word-limit
                         >
                         </el-input> </el-form-item
                     ></el-col>
-                    <el-col :span="12"
+                    <el-col :span="11"
                       ><el-form-item label="涓嬮璺宠浆">
                         <el-input
                           type="text"
                           placeholder="璇疯緭鍏ラ鍙�"
-                          v-model="text"
+                          v-model="item.jump"
                           show-word-limit
                         >
                         </el-input> </el-form-item
                     ></el-col>
+                    <el-col :span="2">
+                      <el-button
+                        type="danger"
+                        icon="el-icon-delete"
+                        circle
+                        @click="deletexuanx(item)"
+                      ></el-button>
+                    </el-col>
+                  </el-row>
+                  <el-row :gutter="10">
+                    <el-form-item label="閫変腑鎻愮ず">
+                      <el-input
+                        style="width: 20vw"
+                        type="textarea"
+                        autosize
+                        placeholder="璇疯緭鍏ュ唴瀹�"
+                        v-model="item.prompt"
+                      >
+                      </el-input
+                    ></el-form-item>
                   </el-row>
                 </div>
               </el-form>
@@ -483,22 +548,13 @@
             />
           </el-form-item>
           <el-form-item label="涓婚" prop="sickness">
-            <el-select
-              v-model="ruleForm.classify"
-              size="medium"
-              multiple
-              filterable
-              placeholder="璇烽�夋嫨鍒嗙被"
-            >
-              <el-option
-                class="ruleFormaa"
-                v-for="item in options"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
-              >
-              </el-option>
-            </el-select>
+            <el-input
+              v-model="queryParams.userName"
+              placeholder="璇疯緭鍏�"
+              clearable
+              style="width: 200px"
+              @keyup.enter.native="handleQuery"
+            />
           </el-form-item>
           <el-form-item>
             <el-button
@@ -554,6 +610,22 @@
 
 <script>
 import { listtag } from "@/api/system/label";
+import store from "@/store";
+import {
+  getQtemplateclassify,
+  delQtemplateclassify,
+  addQtemplateclassify,
+  getQtemplatelist,
+  Qtemplateinfo,
+  compileissue,
+  delQtemplateinfo,
+  Followupinfo,
+  deltargetillness,
+  addtargetillness,
+  getillnesslist,
+  illnesslistget,
+  getillness,
+} from "@/api/AiCentre/index";
 
 export default {
   data() {
@@ -566,27 +638,20 @@
       radio: "false", //鍗曢�夐閫変腑
       radios: [], //澶氶�夐閫変腑
       radioas: "", //濉┖棰樼瓟妗�
-      dynamicTags: ["鏍囩涓�", "鏍囩浜�", "鏍囩涓�"],
+      dynamicTags: [],
       inputVisible: false,
       inputValue: "",
       topicobj: {},
       // 鎬绘潯鏁�
       total: 1,
-      ruleForm: {
-        name: "",
-        region: "",
-        date1: "",
-        date2: "",
-        delivery: false,
-        type: [],
-        resource: "",
-        desc: "",
-        templatevalue: "",
-        data2: "",
-      },
+      ruleForm: {},
       rules: {},
       rulesa: {},
-      optionstag:[],
+      optionsclass: [], //鍒嗙被鍒楄〃
+      optionlist: [
+        { value: "topic", table: "topic" },
+        { value: "topic", table: "topic" },
+      ],
       xjxsoptions: [
         {
           value: "閫夐」1",
@@ -620,14 +685,6 @@
           value: "閫夐」2",
           label: "鍏ラ櫌闂嵎",
         },
-        {
-          value: "閫夐」3",
-          label: "鎵嬫湳闂嵎",
-        },
-        {
-          value: "閫夐」4",
-          label: "鎶ょ悊闂嵎",
-        },
       ],
       variablelist: [
         {
@@ -654,15 +711,24 @@
           userid: "2",
           userName: "浜屽彿闂嵎",
         },
-        {
-          userid: "3",
-          userName: "涓夊彿闂嵎",
-        },
-        {
-          userid: "4",
-          userName: "鍥涘彿闂嵎",
-        },
       ],
+      themelist: [],
+      languagelist: [],
+      courtyardlist: [],
+      precedencetype: [],
+      inputValueillness: "",
+      inputVisible: false,
+      inputVisibleillness: false,
+      illnessVisible: false, //鎸囨爣鐤剧梾寮规
+      deptOptions: [],
+      optionsillness: [],
+      illnesslistapi: [],
+      illnesslist: [],
+
+      optionstag: [],
+      xjxsoptions: [],
+      usable: [],
+      mode: [], //鏂瑰紡
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
@@ -678,22 +744,35 @@
 
   created() {
     this.gettabList();
-
+    this.getissueinfo();
+    this.mode = store.getters.mode;
+    this.languagelist = store.getters.languagelist;
+    this.usable = store.getters.usable;
+    this.xjxsoptions = store.getters.xjxsoptions;
+    this.courtyardlist = store.getters.courtyardlist;
   },
 
   methods: {
-    submitForm(formName) {
-      this.rules = this.rulesa;
-      //   鎻愪氦
-      this.$refs[formName].validate((valid) => {
-        if (valid) {
-          alert("submit!");
-        } else {
-          console.log("error submit!!");
-          return false;
-        }
+    getIndexInArray(arr, obj) {
+      return arr.indexOf(obj);
+    },
+    // 鑾峰彇鏁版嵁
+    getissueinfo() {
+      this.id = this.$route.query.id;
+      Qtemplateinfo(this.id).then((res) => {
+        this.ruleForm = res.data;
+      });
+      getillnesslist({
+        pageNum: 1,
+        pageSize: 100,
+      }).then((response) => {
+        this.optionsillness = response.rows;
+      });
+      getillness({ outid: this.id, type: 5 }).then((res) => {
+        this.illnesslist = res.rows;
       });
     },
+    submitForm(formName) {},
     // 涓嬩竴姝�
     nextstep() {
       if (this.Editprogress <= 2) {
@@ -706,17 +785,19 @@
     },
     // 鍏抽棴
     closeFm() {
-      this.$confirm('閫�鍑轰笉浼氫繚鐣欓〉闈㈠唴瀹规洿鏀�, 鏄惁缁х画?', '鎻愮ず', {
-          confirmButtonText: '纭畾',
-          cancelButtonText: '鍙栨秷',
-          type: 'warning'
-        }).then(() => {
-          this.$router.go(-1)
-        }).catch(() => {
+      this.$confirm("閫�鍑轰笉浼氫繚鐣欓〉闈㈠唴瀹规洿鏀�, 鏄惁缁х画?", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning",
+      })
+        .then(() => {
+          this.$router.go(-1);
+        })
+        .catch(() => {
           this.$message({
-            type: 'info',
-            message: '宸插彇娑�'
-          });          
+            type: "info",
+            message: "宸插彇娑�",
+          });
         });
     },
     // 淇濆瓨棰樼洰淇℃伅
@@ -758,8 +839,7 @@
       this.fileList = fileList.slice(-3);
     },
     // 鏍囩-----------------
-     /** 鏌ヨ鏍囩鍒楄〃 */
-     gettabList() {
+    gettabList() {
       const tagqueryParams = {
         pageNum: 1,
         pageSize: 1000,
@@ -770,23 +850,108 @@
         this.optionstag = response.rows;
       });
     },
-    handleClose(tag) {
+    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 inputValue = this.inputValue;
-      if (inputValue) {
-        this.dynamicTags.push(inputValue);
+      let tagvalue = {};
+      let tagname = this.inputValue;
+      if (tagname) {
+        listtag({
+          pageNum: 1,
+          pageSize: 1000,
+          tagcategoryid: "0",
+          tagname: tagname,
+        }).then((res) => {
+          if (res.rows[0]) {
+            tagvalue = res.rows[0];
+            tagvalue.isoperation = 1;
+          } else {
+            tagvalue = {
+              tagname: tagname,
+              isoperation: 1,
+            };
+          }
+          // this.ruleForm.ivrLibaTemplateTargetList.push(tagvalue);
+          this.dynamicTags.push(tagvalue);
+        });
       }
       this.inputVisible = false;
       this.inputValue = "";
     },
+    remoteMethodtag(query) {
+      if (query !== "") {
+        this.loading = true;
+        setTimeout(() => {
+          this.loading = false;
+          listtag({ tagname: query, tagcategoryid: "0" }).then((res) => {
+            this.optionstag = res.rows;
+          });
+        }, 200);
+      } else {
+        this.optionstag = [];
+      }
+    },
     showInput() {
       this.inputVisible = true;
-      // 鑷姩鑾峰彇鐒︾偣
-      // this.$nextTick((_) => {
-      //   this.$refs.saveTagInput.$refs.input.focus();
-      // });
+    },
+    // 鐤剧梾-----------------------
+
+    handleCloseillness(tag) {
+      this.illnesslist.splice(this.illnesslist.indexOf(tag), 1);
+      if (tag.id) {
+        this.illnesslistapi.push(tag.id);
+      }
+    },
+    remoteMethod(value) {
+      console.log(value);
+      const illnessqueryParams = {
+        pageNum: 1,
+        pageSize: 100,
+        icdname: value,
+      };
+      this.loading = true;
+      setTimeout(() => {
+        this.loading = false;
+        getillnesslist(illnessqueryParams).then((response) => {
+          this.optionsillness = response.rows;
+        });
+      }, 200);
+    },
+    illnessConfirm(item) {
+      let opeavalue = {};
+      let tagname = this.inputValueillness;
+      illnesslistget(item).then((res) => {
+        opeavalue = res.data;
+        opeavalue.outid = this.id;
+        opeavalue.type = 5;
+        opeavalue.icd10id = opeavalue.icdid;
+        opeavalue.icd10name = opeavalue.icdname;
+        opeavalue.icd10code = opeavalue.icdcode;
+        if (tagname) {
+          this.illnesslist.push(opeavalue);
+        }
+      });
+      console.log(this.illnesslist);
+      this.inputVisibleillness = false;
+      this.inputValueillness = "";
+    },
+    // 淇濆瓨
+    confirmillness() {
+      this.illnesslist.forEach((item, index) => {
+        if (!item.id) {
+          addtargetillness(item).then((res) => {});
+        }
+      });
+      if (this.illnesslistapi.length) {
+        deltargetillness(this.illnesslistapi.join(",")).then((res) => {});
+      }
+      this.illnessVisible = false;
+      this.$modal.msgSuccess("缂栬緫鎴愬姛");
     },
     // --------------------------
     // 鏌ヨ棰樺簱
@@ -833,9 +998,9 @@
   }
   .leftvlue-jbxx {
     font-size: 24px;
-      border-left: 5px solid #41a1be;
-      padding-left: 5px;
-      margin: 15px 0;
+    border-left: 5px solid #41a1be;
+    padding-left: 5px;
+    margin: 15px 0;
   }
   .demo-cascader {
     margin-right: 20px;

--
Gitblit v1.9.3