From ad70f145e8bea957b41043b4a1e37ce37cc5ed1e Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期二, 16 一月 2024 18:39:24 +0800
Subject: [PATCH] 指标完成

---
 src/views/knowledge/education/compilequer/index.vue |  264 +++++++++++++++++++++++++++++++++-------------------
 1 files changed, 167 insertions(+), 97 deletions(-)

diff --git a/src/views/knowledge/education/compilequer/index.vue b/src/views/knowledge/education/compilequer/index.vue
index 8ec30df..40afd79 100644
--- a/src/views/knowledge/education/compilequer/index.vue
+++ b/src/views/knowledge/education/compilequer/index.vue
@@ -23,54 +23,68 @@
         >
           <el-form-item label="瀹f暀鍒嗙被" prop="region">
             <el-select
-              v-model="ruleForm.groupID"
+              v-model="ruleForm.assortid"
               size="medium"
               filterable
               placeholder="璇烽�夋嫨鍒嗙被"
             >
-              <el-option
-                class="ruleFormaa"
-                v-for="item in sortlist"
-                :key="item.id"
-                :label="item.assortname"
-                :value="item.id"
+              <el-option-group
+                v-for="group in sortlist"
+                :key="group.id"
+                :label="group.assortname"
               >
-              </el-option>
+                <el-option
+                  v-for="item in group.heLibraryAssortList"
+                  :key="item.id"
+                  :label="item.assortname"
+                  :value="item.id"
+                >
+                </el-option>
+              </el-option-group>
             </el-select>
           </el-form-item>
-          <el-form-item label="瀹f暀鏍囬" prop="extName">
+          <el-form-item label="瀹f暀鏍囬" prop="preachname">
             <div style="width: 30%">
-              <el-input v-model="ruleForm.extName"></el-input>
+              <el-input v-model="ruleForm.preachname"></el-input>
             </div>
           </el-form-item>
-          <el-form-item label="瀹f暀鎻忚堪" prop="extName">
+          <el-form-item label="瀹f暀鎻忚堪" prop="preachcontent">
             <div style="width: 30%">
-              <el-input v-model="ruleForm.note"></el-input>
+              <el-input v-model="ruleForm.preachcontent"></el-input>
             </div>
           </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-col>
-              <el-col :span="8" :offset="1">
-                <el-input v-model="item.value"></el-input>
-              </el-col>
-              <el-col :span="4" :offset="1">
-                <el-button
-                  type="success"
-                  icon="el-icon-plus"
-                  circle
-                  @click="addvariable(item)"
-                ></el-button>
-                <el-button
-                  type="danger"
-                  icon="el-icon-delete"
-                  circle
-                  @click="delvariable(item)"
-                ></el-button>
-              </el-col>
-            </el-row>
+            <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-form-item label="鏂囦欢" prop="sickness">
@@ -137,9 +151,8 @@
             <el-col :span="9">
               <el-form-item label="鍙敤鐘舵��" prop="region">
                 <el-select
-                  v-model="ruleForm.isEnable"
+                  v-model="ruleForm.isavailable"
                   size="medium"
-                  multiple
                   filterable
                   placeholder="璇烽�夋嫨鍒嗙被"
                 >
@@ -156,7 +169,7 @@
           </el-row>
           <el-form-item label="瀹f暀鏂瑰紡" prop="region">
             <el-select
-              v-model="ruleForm.way"
+              v-model="ruleForm.suitway"
               size="medium"
               multiple
               filterable
@@ -164,10 +177,10 @@
             >
               <el-option
                 class="ruleFormaa"
-                v-for="item in xjxsoptions"
-                :key="item.value"
+                v-for="item in mode"
+                :key="item.label"
                 :label="item.label"
-                :value="item.value"
+                :value="item.label"
               >
               </el-option>
             </el-select>
@@ -215,7 +228,7 @@
           </el-form-item>
           <el-form-item label="閫傜敤闄㈠尯" prop="region">
             <el-select
-              v-model="ruleForm.courtyard"
+              v-model="ruleForm.campus"
               size="medium"
               filterable
               placeholder="璇烽�夋嫨鍒嗙被"
@@ -231,28 +244,26 @@
             </el-select>
           </el-form-item>
           <el-form-item label="閫傜敤绉戝" prop="region">
-            <el-select
-              v-model="ruleForm.administrative"
-              size="medium"
-              multiple
-              filterable
-              placeholder="璇烽�夋嫨鍒嗙被"
+            <el-cascader
+              v-model="tempDetpRelevanceslist"
+              :options="deptList"
+              :props="props"
+              :show-all-levels="false"
+              clearable
             >
-              <el-option
-                class="ruleFormaa"
-                v-for="item in options"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
-              >
-              </el-option>
-            </el-select>
+              <template slot-scope="{ node, data }">
+                <span>{{ data.deptName }}</span>
+                <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
+              </template>
+            </el-cascader>
           </el-form-item>
           <el-form-item>
             <el-button type="success" @click="nextstep('ruleForm')"
               >涓嬩竴姝�</el-button
             >
-            <el-button @click="resetForm('ruleForm')">閲嶇疆</el-button>
+            <el-button type="success" @click="Departmenttreatment('ruleForm')"
+              >淇濆瓨</el-button
+            >
             <el-button type="info" @click="closeFm('ruleForm')">鍏抽棴</el-button>
           </el-form-item>
         </el-form>
@@ -264,10 +275,10 @@
           <el-col :span="12">
             <div>
               <el-button @click="laststep('ruleForm')">涓婁竴姝�</el-button>
-              <el-button type="success" @click="submitForm('ruleForm')"
+              <el-button type="success" @click="Departmenttreatment('ruleForm')"
                 >淇濆瓨</el-button
               >
-              <el-button type="warning" @click="submitForm('ruleForm')"
+              <el-button type="warning" @click="Departmenttreatment('ruleForm')"
                 >鍙﹀瓨鏂扮増鏈�</el-button
               >
               <el-button type="info" @click="closeFm('ruleForm')"
@@ -276,6 +287,19 @@
             </div></el-col
           >
         </el-row>
+        <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>
           <el-form
@@ -342,6 +366,7 @@
   illnesslistget,
   getillness,
 } from "@/api/AiCentre/index";
+import { listDept } from "@/api/system/dept";
 // import * as Quill from "quill";
 import Quill from "quill";
 import { listtag } from "@/api/system/label";
@@ -459,6 +484,9 @@
       illnesslist: [],
       options: [],
       optionstag: [],
+      deptList: [],
+      tempDetpRelevanceslist: [],
+      props: { multiple: true, value: "deptId", label: "deptName" },
       xjxsoptions: [
         {
           value: "1",
@@ -483,10 +511,9 @@
       addvalue: "娣诲姞棰樼洰",
 
       variablelist: [
-        {
-          variable: "paitent",
-          value: "琛ㄧず鎮h�呯殑鏍囪瘑",
-        },
+        { variatename: "濮撳悕", variate: "${name}", default: 1 },
+        { variatename: "鐢佃瘽", variate: "${phone}", default: 1 },
+        { variatename: "鐥呮儏", variate: "${illness}", default: 1 },
       ],
       // 鏌ヨ鍙傛暟
       queryParams: {
@@ -517,38 +544,56 @@
   methods: {
     getList() {
       this.loading = true;
-      getlibraryinfo({ id: this.$route.query.id }).then((res) => {
-        this.ruleForm = res.data;
+      this.id = this.$route.query.id;
+      getlibraryinfo({ id: this.id }).then((res) => {
+        this.ruleForm = res.data[0];
+
+        if (this.ruleForm.deptNames) {
+          this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames);
+        }
+        if (this.ruleForm.suitway) {
+          this.ruleForm.suitway = this.ruleForm.suitway.split(",");
+        }
+        this.variablelist = this.ruleForm.otherdata
+          ? JSON.parse(this.ruleForm.otherdata)
+          : this.variablelist;
       });
       getheLibraryAssort({}).then((res) => {
         this.sortlist = res.rows;
-        console.log(res);
       });
-    },
-    /** 鏌ヨ鏍囩鍒楄〃 */
-    gettabList() {
-      const tagqueryParams = {
-        pageNum: 1,
-        pageSize: 1000,
-        tagcategoryid: "0",
-      };
-      listtag(tagqueryParams).then((response) => {
-        console.log(response);
-        this.optionstag = response.rows;
+      listDept(this.queryParams).then((response) => {
+        this.deptList = this.handleTree(response.data, "deptId");
       });
+      this.loading = false;
     },
-    // 瀹屾垚
+
     submitForm(formName) {
-      this.rules = this.rulesa;
-      //   鎻愪氦
-      this.$refs[formName].validate((valid) => {
-        if (valid) {
-          alert("submit!");
-        } else {
-          console.log("error submit!!");
-          return false;
-        }
+      let tgs = [];
+      this.dynamicTags.forEach((item) => {
+        tgs.push(item.tagname);
       });
+      console.log(tgs.length, "tgs");
+
+      this.ruleForm.labelInfo = tgs.length != 0 ? tgs.join(", ") : "";
+      this.ruleForm.otherdata = JSON.stringify(this.variablelist);
+      console.log(22);
+      this.ruleForm.suitway =
+        this.ruleForm.suitway.length != 0
+          ? this.ruleForm.suitway.join(",")
+          : "";
+      if (this.id) {
+        this.ruleForm.isoperation = 2;
+        compilelibrary(this.ruleForm).then((response) => {
+          this.$modal.msgSuccess("淇敼鎴愬姛");
+          this.$router.go(-1);
+        });
+      } else {
+        this.ruleForm.isoperation = 1;
+        compilelibrary(this.ruleForm).then((response) => {
+          this.$modal.msgSuccess("鏂板鎴愬姛");
+          this.$router.go(-1);
+        });
+      }
     },
     // 涓嬩竴姝�
     nextstep() {
@@ -577,6 +622,37 @@
           });
         });
     },
+    // 绉戝澶勭悊
+    Departmenttreatment() {
+      this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist);
+      const result = this.tempDetpRelevanceslist.map(
+        (subArr) => subArr[subArr.length - 1]
+      );
+      // id鏁扮粍鏌ユ暟缁勫璞�
+      result.forEach((item) => {
+        const condition = this.ruleForm.tempDetpRelevances.some(
+          (obj) => obj.deptId === item
+        );
+        if (!condition) {
+          listDept({ deptId: item }).then((res) => {
+            res.data[0].type = 2;
+            this.ruleForm.tempDetpRelevances.push(res.data[0]);
+          });
+        }
+      });
+      // 鏁扮粍瀵硅薄鏌d鏁扮粍
+      this.ruleForm.tempDetpRelevances.forEach((item) => {
+        const condition = result.some((obj) => obj === item.deptId);
+        if (!condition) {
+          const index = this.ruleForm.tempDetpRelevances.indexOf(item);
+          this.ruleForm.tempDetpRelevances[index].delFlag = 1;
+        }
+      });
+      setTimeout(() => {
+        this.submitForm();
+      }, 1000);
+      // this.submitForm();
+    },
     // 淇濆瓨棰樼洰淇℃伅
     Saveproblem() {},
     /** 鏌ヨ棰樼洰鍒楄〃 */
@@ -584,8 +660,8 @@
     // 鏂板鍙橀噺
     addvariable() {
       this.variablelist.push({
-        variable: "",
-        value: "",
+        variatename: "",
+        variate: "",
       });
     },
     // 鍒犻櫎鍙橀噺
@@ -609,16 +685,13 @@
         tagcategoryid: "0",
       };
       listtag(tagqueryParams).then((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.ruleForm.ivrLibaTemplateTargetList[lindex].isoperation = 3;
+      this.ruleForm.heLibraryTagList[lindex].isoperation = 3;
     },
     handleInputConfirm() {
       let tagvalue = {};
@@ -639,7 +712,7 @@
               isoperation: 1,
             };
           }
-          this.ruleForm.ivrLibaTemplateTargetList.push(tagvalue);
+          this.ruleForm.heLibraryTagList.push(tagvalue);
           this.dynamicTags.push(tagvalue);
         });
       }
@@ -670,12 +743,10 @@
         pageSize: 100,
       };
       getillnesslist(illnessqueryParams).then((response) => {
-        console.log(response);
         this.optionsillness = response.rows;
       });
       getillness({ outid: this.$route.query.id, type: 6 }).then((res) => {
         this.illnesslist = res.rows;
-        console.log(res);
       });
     },
     handleCloseillness(tag) {
@@ -685,7 +756,6 @@
       }
     },
     remoteMethod(value) {
-      console.log(value);
       const illnessqueryParams = {
         pageNum: 1,
         pageSize: 100,

--
Gitblit v1.9.3