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

---
 src/api/AiCentre/index.js                                |    2 
 src/views/repositoryai/templateku/configurat/index.vue   |  320 ++++--
 src/api/AiCentre/Qtemplate.js                            |    2 
 src/views/shortmessage/healthinformation/index.vue       |   56 
 src/views/knowledge/questionnaire/compilequer/index.vue  |  350 ++++---
 src/views/repositoryai/verbaltrick/particulars/index.vue |  174 ++-
 src/views/knowledge/questionbank/particulars/index.vue   |  354 +++++--
 src/api/AiCentre/Hetask.js                               |   49 +
 src/store/getters.js                                     |   97 +
 src/store/modules/regular.js                             |   72 +
 src/views/knowledge/education/compilequer/index.vue      |  213 +++-
 src/views/repositoryai/verbaltrick/index.vue             |   16 
 src/api/AiCentre/questionnaire.js                        |    2 
 src/store/index.js                                       |    2 
 src/views/system/dept/index.vue                          |  190 +++-
 src/views/knowledge/questionbank/index.vue               |   78 +
 src/views/knowledge/education/index.vue                  |  113 +
 src/utils/request.js                                     |    2 
 src/views/repositoryai/general/index.vue                 |   17 
 src/components/Regular/index.vue                         |  294 ++++++
 src/views/repositoryai/general/particulars/index.vue     |    4 
 src/views/knowledge/questionnaire/index.vue              |   85 
 src/views/repositoryai/intention/index.vue               |   31 
 src/views/patient/propaganda/particty.vue                |   11 
 src/views/repositoryai/templateku/index.vue              |   61 
 25 files changed, 1,806 insertions(+), 789 deletions(-)

diff --git a/src/api/AiCentre/Hetask.js b/src/api/AiCentre/Hetask.js
new file mode 100644
index 0000000..b495da4
--- /dev/null
+++ b/src/api/AiCentre/Hetask.js
@@ -0,0 +1,49 @@
+import request from "@/utils/request";
+
+// 鏌ヨ瀹f暀浠诲姟鍒楄〃
+export function gethetasklist(data) {
+  return request({
+    url: "/smartor/hetask/list",
+    method: "post",
+    data: data,
+  });
+}
+
+// 鍒犻櫎瀹f暀浠诲姟
+export function delhetaskinfo(Id) {
+    return request({
+      url: "/smartor/hetask/remove/" + Id,
+      method: "get",
+    });
+  }
+    // 鏌ヨ瀹f暀浠诲姟璇︽儏鍒楄〃
+    export function gethetaskinfo(Id) {
+    return request({
+      url: "/smartor/hetask/" + Id,
+      method: "get",
+    });
+  }
+// 鏂板妯$増
+export function addhetask(data) {
+    return request({
+      url: "/smartor/hetask/add",
+      method: "post",
+      data: data,
+    });
+  }
+//   淇敼瀹f暀浠诲姟
+  export function edithetask(data) {
+    return request({
+      url: "/smartor/hetask/edit",
+      method: "post",
+      data: data,
+    });
+  }
+  //   鑾峰彇鎮h�呬俊鎭�
+  export function getTaskpatient(data) {
+    return request({
+      url: "/smartor/hetask/getPatientInfo",
+      method: "post",
+      data: data,
+    });
+  }
\ No newline at end of file
diff --git a/src/api/AiCentre/Qtemplate.js b/src/api/AiCentre/Qtemplate.js
index 3ffe179..b34befe 100644
--- a/src/api/AiCentre/Qtemplate.js
+++ b/src/api/AiCentre/Qtemplate.js
@@ -50,7 +50,7 @@
   // 鏌ヨ闂嵎妯$増鍒嗙被鏍�
   export function getQtemplateclassify(data) {
     return request({
-      url: "/smartor/svyLibTitleCategory/selectIvrLibasvytitleList",
+      url: "/smartor/svyLibTitleCategory/list",
       method: "post",
       data: data,
     });
diff --git a/src/api/AiCentre/index.js b/src/api/AiCentre/index.js
index bb246c2..c470a54 100644
--- a/src/api/AiCentre/index.js
+++ b/src/api/AiCentre/index.js
@@ -5,4 +5,6 @@
 export * from './publicity'
 export * from './Qtemplate'
 export * from './questionnaire'
+export * from './Hetask'
+
 
diff --git a/src/api/AiCentre/questionnaire.js b/src/api/AiCentre/questionnaire.js
index ad2942d..15bb16b 100644
--- a/src/api/AiCentre/questionnaire.js
+++ b/src/api/AiCentre/questionnaire.js
@@ -50,7 +50,7 @@
   // 鏌ヨ闂嵎闂鍒嗙被鏍�
   export function getissueclassify(data) {
     return request({
-      url: "/smartor/svyLibTopicCategory/selectIvrLibasvytitleList",
+      url: "/smartor/svyLibTopicCategory/list",
       method: "post",
       data: data,
     });
diff --git a/src/components/Regular/index.vue b/src/components/Regular/index.vue
new file mode 100644
index 0000000..f9f20de
--- /dev/null
+++ b/src/components/Regular/index.vue
@@ -0,0 +1,294 @@
+<template>
+  <div>
+    <div class="topicxq" v-for="item in TargetoptionList">
+      <el-row :gutter="10">
+        <el-col :span="12"
+          ><el-form-item label="閫夐」鍚�">
+            <el-input
+              type="text"
+              placeholder="璇疯緭鍏�"
+              v-model="item.targetvalue"
+              show-word-limit
+            >
+            </el-input> </el-form-item
+        ></el-col>
+        <el-col :span="12"
+          ><el-form-item label="鑺傜偣ID">
+            <el-input
+              type="text"
+              placeholder="璇疯緭鍏ヨ妭鐐�"
+              v-model="item.targetid"
+              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-input
+              type="text"
+              placeholder="(榛樿)鏃犲0"
+              v-model="item.text"
+              maxlength="10"
+              show-word-limit
+            >
+            </el-input> </el-form-item
+        ></el-col>
+        <el-col :span="12"
+          ><el-form-item label="閫変腑璺宠浆(缂�)">
+            <el-input
+              type="text"
+              placeholder="璇疯緭鍏ラ鐩妭鐐�"
+              v-model="item.jump"
+              show-word-limit
+            >
+            </el-input> </el-form-item
+        ></el-col>
+      </el-row>
+      <el-form-item label="鍏抽敭瀛�(鍚�)" prop="desc">
+        <div class="xinz-inf">
+          <el-tag
+            :key="crux"
+            type="success"
+            v-for="crux in dynamiccruxs"
+            closable
+            :disable-transitions="false"
+            @close="handleClosecrux(crux)"
+          >
+            {{ crux }}
+          </el-tag>
+          <el-select
+            v-model="inputValue"
+            v-if="inputVisible"
+            @change="handleInputConfirm"
+            filterable
+            remote
+            reserve-keyword
+            default-first-option
+            :loading="loading"
+            placeholder="璇烽�夋嫨"
+          >
+            <el-option
+              v-for="item in regular"
+              :key="item.label"
+              :label="item.label"
+              :value="item.label"
+            >
+            </el-option>
+          </el-select>
+          <el-button
+            v-else
+            class="button-new-tag"
+            size="small"
+            @click="showInput"
+            >+ 鏂板</el-button
+          >
+        </div>
+      </el-form-item>
+      <el-form-item label="鍏抽敭瀛�(闈�)" prop="desc">
+        <div class="xinz-inf">
+          <el-tag
+            :key="crux"
+            type="warning"
+            v-for="crux in nodynamiccruxs"
+            closable
+            :disable-transitions="false"
+            @close="handleClosecrux(crux)"
+          >
+            {{ crux }}
+          </el-tag>
+          <el-select
+            v-model="inputValue"
+            v-if="noinputVisible"
+            @change="handleInputConfirm"
+            filterable
+            remote
+            reserve-keyword
+            default-first-option
+            :loading="loading"
+            placeholder="璇烽�夋嫨"
+          >
+            <el-option
+              v-for="item in noregular"
+              :key="item.value"
+              :label="item.label"
+              :value="item.label"
+            >
+            </el-option>
+          </el-select>
+          <el-button
+            v-else
+            class="button-new-tag"
+            size="small"
+            @click="showInputno"
+            >+ 鏂板</el-button
+          >
+        </div>
+      </el-form-item>
+
+      <el-row :gutter="10">
+        <el-col :span="16">
+          <el-form-item label="璇煶鏂囦欢">
+            <el-upload
+              class="upload-demo"
+              style="display: flex"
+              action="https://jsonplaceholder.typicode.com/posts/"
+              :on-change="handleChange"
+              :file-list="fileList"
+              :limit="1"
+              :on-exceed="handleExceed"
+            >
+              <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
+            </el-upload>
+          </el-form-item></el-col
+        >
+        <el-col :span="8">
+          <div style="text-align: right; padding-right: 10px">
+            <el-button type="danger" @click="deloption(item)" round
+              >鍒犻櫎</el-button
+            >
+          </div>
+        </el-col>
+      </el-row>
+    </div>
+  </div>
+</template>
+
+<script>
+import store from "@/store";
+
+export default {
+  data() {
+    return {
+      zz1: "^(?!.涓�)(.(鎴憒浣爘浠東鍙互|鏄瘄濂絴鐭ラ亾|娌¢敊)+.*)$",
+      zz2: "^(?!.涓�)(?=.?(鎴憒浣爘浠東鍙互|鏄瘄濂絴鐭ラ亾|娌¢敊)).*$",
+      fileList: [
+        {
+          name: "food.jpeg",
+          url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100",
+        },
+      ],
+      whether: 1, //1涓哄叧閿瘝锛�2涓哄惁瀹氬叧閿瘝
+      inputValue: "",
+      inputVisible: false,
+      noinputVisible: false,
+      loading: false,
+      regular: [],
+      noregular: [],
+      nodynamiccruxs: ["鍒�"],
+      dynamiccruxs: ["濂�"],
+    };
+  },
+  props: {
+    TargetoptionList: {
+      type: Array,
+      required: true,
+      default: () => [],
+    },
+  },
+
+  created() {
+    this.regular = store.getters.regular;
+    this.noregular = store.getters.noregular;
+  },
+
+  methods: {
+    // 鐢熸垚姝e垯
+    generateRegex() {
+      let regex = "";
+      let regexno = "";
+      let hostregex = "";
+
+      for (let i = 0; i < this.dynamiccruxs.length; i++) {
+        regex += `${this.dynamiccruxs[i]}|`;
+      }
+      for (let i = 0; i < this.nodynamiccruxs.length; i++) {
+        regexno += `${this.nodynamiccruxs[i]}|`;
+      }
+      regex = regex.slice(0, -1);
+      regexno = regexno.slice(0, -1);
+
+      hostregex = "^(?!." + `${regexno}` + ")(.(" + `${regex}` + ")+.*)$";
+      console.log(hostregex);
+    },
+    // 鎺у埗鏂囦欢
+    handleChange(file, fileList) {
+      this.fileList = fileList.slice(-3);
+    },
+    // 鏂囦欢瓒呭嚭涓暟闄愬埗鏃剁殑閽╁瓙
+    handleExceed(files, fileList) {
+      this.$message.warning(
+        `褰撳墠闄愬埗閫夋嫨 1 涓枃浠讹紝鏈閫夋嫨浜� ${files.length} 涓枃浠讹紝鍏遍�夋嫨浜� ${
+          files.length + fileList.length
+        } 涓枃浠禶
+      );
+    },
+
+    handleClosecrux(crux) {
+      if (this.whether == 1) {
+        this.dynamiccruxs.splice(this.dynamiccruxs.indexOf(crux), 1);
+      } else {
+        this.nodynamiccruxs.splice(this.nodynamiccruxs.indexOf(crux), 1);
+      }
+      this.generateRegex();
+    },
+    handleInputConfirm() {
+      if (this.whether == 1 && this.inputValue) {
+        if (this.dynamiccruxs.indexOf(this.inputValue) == -1) {
+          this.dynamiccruxs.push(this.inputValue);
+        } else {
+          this.$message.error("鍏抽敭瀛楀凡瀛樺湪");
+        }
+        this.inputVisible = false;
+      } else if (this.whether == 2 && this.inputValue) {
+        console.log(this.inputValue);
+        console.log(this.nodynamiccruxs.indexOf(this.inputValue));
+        if (this.nodynamiccruxs.indexOf(this.inputValue) == -1) {
+          this.nodynamiccruxs.push(this.inputValue);
+        } else {
+          this.$message.error("鍏抽敭瀛楀凡瀛樺湪");
+        }
+        this.noinputVisible = false;
+      }
+      this.generateRegex();
+
+      this.inputValue = "";
+    },
+    showInput() {
+      this.inputVisible = true;
+      this.whether = 1;
+    },
+    showInputno() {
+      this.noinputVisible = true;
+      this.whether = 2;
+      console.log(2);
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.topicxq {
+  background-color: #e2f5fc;
+  border-radius: 4px;
+  margin-top: 10px;
+  padding: 10px;
+}
+
+.el-tag + .el-tag {
+  margin-left: 10px;
+}
+.button-new-tag {
+  margin-left: 10px;
+  height: 32px;
+  line-height: 30px;
+  padding-top: 0;
+  padding-bottom: 0;
+}
+.input-new-tag {
+  width: 90px;
+  margin-left: 10px;
+  vertical-align: bottom;
+}
+</style>
diff --git a/src/store/getters.js b/src/store/getters.js
index 7eaf251..848d72a 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -15,6 +15,9 @@
   topbarRouters: (state) => state.permission.topbarRouters,
   defaultRoutes: (state) => state.permission.defaultRoutes,
   sidebarRouters: (state) => state.permission.sidebarRouters,
+  // 姝e垯
+  regular: (state) => state.regular.regular,
+  noregular: (state) => state.regular.noregular,
   // 閫傜敤鏂瑰紡
   mode: (state) => [
     {
@@ -88,11 +91,11 @@
       },
     },
   ],
-  // 浼樺厛鎵ц
-  precedencetype: (state) => [
+   // 鏄惁蹇呭~
+   required: (state) => [
     {
       value: "0",
-      label: "璇煶浼樺厛",
+      label: "蹇呭~",
       raw: {
         cssClass: "",
         listClass: "",
@@ -100,6 +103,25 @@
     },
     {
       value: "1",
+      label: "闈炲繀濉�",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+  ],
+  // 浼樺厛鎵ц
+  precedencetype: (state) => [
+    {
+      value: 0,
+      label: "璇煶浼樺厛",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+    {
+      value: 1,
       label: "鏂囧瓧浼樺厛",
       raw: {
         cssClass: "",
@@ -164,53 +186,97 @@
   // 瀹f暀鏂瑰紡
   editableTabs: (state) => [
     {
-      value: "鐭俊",
-      label: "1",
+      label: "鐭俊",
+      value: "1",
       raw: {
         cssClass: "",
         listClass: "",
       },
     },
     {
-      value: "閽夐拤",
-      label: "2",
+      label: "閽夐拤",
+      value: "2",
       raw: {
         cssClass: "",
         listClass: "",
       },
     },
     {
-      value: "寰俊",
-      label: "3",
+      label: "寰俊",
+      value: "3",
       raw: {
         cssClass: "",
         listClass: "",
       },
     },
     {
-      value: "鐢佃瘽",
-      label: "4",
+      label: "鐢佃瘽",
+      value: "4",
       raw: {
         cssClass: "",
         listClass: "",
       },
     },
     {
-      value: "绾夸笅",
-      label: "5",
+      label: "绾夸笅",
+      value: "5",
       raw: {
         cssClass: "",
         listClass: "",
       },
     },
     {
-      value: "鏅鸿兘璇煶",
-      label: "6",
+      label: "鏅鸿兘璇煶",
+      value: "6",
       raw: {
         cssClass: "",
         listClass: "",
       },
     },
+  ],
+  // 瀹f暀褰㈠紡
+  editabshape  : (state) => [
+    {
+      label: "鏂囨湰",
+      value: "1",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+    {
+      label: "鍥剧墖",
+      value: "2",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+    {
+      label: "璇煶",
+      value: "3",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+    {
+      label: "瑙嗛",
+      value: "4",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+    {
+      label: "娣峰悎",
+      value: "5",
+      raw: {
+        cssClass: "",
+        listClass: "",
+      },
+    },
+
   ],
   // 棰樼洰绫诲埆
   xjxsoptions:(state) => [
@@ -232,6 +298,7 @@
     },
 
   ],
+  // 姝e垯
 };
 
 export default getters;
diff --git a/src/store/index.js b/src/store/index.js
index 97aaef8..3f85e32 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -3,6 +3,7 @@
 import app from './modules/app'
 import dict from './modules/dict'
 import user from './modules/user'
+import regular from './modules/regular'
 import tagsView from './modules/tagsView'
 import permission from './modules/permission'
 import settings from './modules/settings'
@@ -15,6 +16,7 @@
     app,
     dict,
     user,
+    regular,
     tagsView,
     permission,
     settings
diff --git a/src/store/modules/regular.js b/src/store/modules/regular.js
new file mode 100644
index 0000000..f14ddac
--- /dev/null
+++ b/src/store/modules/regular.js
@@ -0,0 +1,72 @@
+const user = {
+  state: {
+    regular: [
+      { value: "1", label: "浼�" },
+      { value: "2", label: "缇�" },
+      { value: "3", label: "鍠�" },
+      { value: "4", label: "缇庡ソ" },
+      { value: "5", label: "骞哥" },
+      { value: "6", label: "鐢滅編" },
+      { value: "7", label: "鍙埍" },
+      { value: "8", label: "缇庢弧" },
+      { value: "9", label: "缇庝附" },
+      { value: "10", label: "蹇箰" },
+      { value: "11", label: "骞哥缇庢弧" },
+      { value: "12", label: "缇庡ソ骞哥" },
+      { value: "13", label: "缇庢弧骞哥" },
+      { value: "14", label: "缇庝附骞哥" },
+      { value: "15", label: "缇庡ソ蹇箰" },
+      { value: "16", label: "骞哥蹇箰" },
+      { value: "17", label: "缇庢弧蹇箰" },
+      { value: "18", label: "缇庝附蹇箰" },
+      { value: "19", label: "缇庡ソ鐢滅編" },
+      { value: "20", label: "骞哥鐢滅編" },
+      { value: "21", label: "缇庢弧鐢滅編" },
+      { value: "22", label: "缇庝附鐢滅編" },
+      { value: "23", label: "鍠勮壇缇庡ソ" },
+      { value: "24", label: "浼樼編骞哥" },
+      { value: "25", label: "鍠勮壇骞哥" },
+      { value: "26", label: "浼樼編蹇箰" },
+      { value: "27", label: "鍠勮壇蹇箰" },
+      { value: "28", label: "浼樼編鐢滅編" },
+      { value: "29", label: "鍠勮壇鐢滅編" },
+      { value: "30", label: "缇庡ソ鍙埍" },
+    ],
+    noregular: [
+      { value: "1", label: "鍚�" },
+      { value: "2", label: "鏈�" },
+      { value: "3", label: "闈�" },
+      { value: "4", label: "鏃�" },
+      { value: "5", label: "涓嶆槸" },
+      { value: "6", label: "涓嶅彲" },
+      { value: "7", label: "涓嶈" },
+      { value: "8", label: "涓嶅悎" },
+      { value: "9", label: "涓嶈壇" },
+      { value: "10", label: "涓嶅杽" },
+      { value: "11", label: "涓嶅ソ" },
+      { value: "12", label: "涓嶇編" },
+      { value: "13", label: "涓嶅垢" },
+      { value: "14", label: "涓嶇敎" },
+      { value: "15", label: "涓嶅彲鐖�" },
+      { value: "16", label: "涓嶆弧" },
+      { value: "17", label: "涓嶅揩" },
+      { value: "18", label: "涓嶇敎缇�" },
+      { value: "19", label: "涓嶅杽鑹�" },
+      { value: "20", label: "涓嶄紭缇�" },
+      { value: "21", label: "涓嶇編婊�" },
+      { value: "22", label: "涓嶅垢绂�" },
+      { value: "23", label: "涓嶅彲鐖�" },
+      { value: "24", label: "涓嶇編濂�" },
+      { value: "25", label: "涓嶅彲鍙�" },
+      { value: "26", label: "涓嶅彲淇�" },
+      { value: "27", label: "涓嶅彲琛�" },
+      { value: "28", label: "涓嶅彲闈�" },
+      { value: "29", label: "涓嶅彲鐞�" },
+      { value: "30", label: "涓嶅彲鐢�" },
+    ],
+  },
+  mutations: {},
+  actions: {},
+  getters: {},
+};
+export default user;
diff --git a/src/utils/request.js b/src/utils/request.js
index 878317b..954641e 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -49,7 +49,7 @@
       const s_url = sessionObj.url;                  // 璇锋眰鍦板潃
       const s_data = sessionObj.data;                // 璇锋眰鏁版嵁
       const s_time = sessionObj.time;                // 璇锋眰鏃堕棿
-      const interval = 50;                         // 闂撮殧鏃堕棿(ms)锛屽皬浜庢鏃堕棿瑙嗕负閲嶅鎻愪氦
+      const interval = 10;                         // 闂撮殧鏃堕棿(ms)锛屽皬浜庢鏃堕棿瑙嗕负閲嶅鎻愪氦
       if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) {
         const message = '鏁版嵁姝e湪澶勭悊锛岃鍕块噸澶嶆彁浜�';
         console.warn(`[${s_url}]: ` + message)
diff --git a/src/views/knowledge/education/compilequer/index.vue b/src/views/knowledge/education/compilequer/index.vue
index 8ec30df..fb07522 100644
--- a/src/views/knowledge/education/compilequer/index.vue
+++ b/src/views/knowledge/education/compilequer/index.vue
@@ -23,7 +23,7 @@
         >
           <el-form-item label="瀹f暀鍒嗙被" prop="region">
             <el-select
-              v-model="ruleForm.groupID"
+              v-model="ruleForm.assortid"
               size="medium"
               filterable
               placeholder="璇烽�夋嫨鍒嗙被"
@@ -38,39 +38,48 @@
               </el-option>
             </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="preachdescription">
             <div style="width: 30%">
-              <el-input v-model="ruleForm.note"></el-input>
+              <el-input v-model="ruleForm.preachdescription"></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 +146,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 +164,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 +172,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 +223,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,22 +239,18 @@
             </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')"
@@ -264,10 +268,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 +280,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 +359,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 +477,9 @@
       illnesslist: [],
       options: [],
       optionstag: [],
+      deptList: [],
+      tempDetpRelevanceslist: [],
+      props: { multiple: true, value: "deptId", label: "deptName" },
       xjxsoptions: [
         {
           value: "1",
@@ -483,10 +504,9 @@
       addvalue: "娣诲姞棰樼洰",
 
       variablelist: [
-        {
-          variable: "paitent",
-          value: "琛ㄧず鎮h�呯殑鏍囪瘑",
-        },
+        { variatename: "濮撳悕", variate: "${name}", default: 1 },
+        { variatename: "鐢佃瘽", variate: "${phone}", default: 1 },
+        { variatename: "鐥呮儏", variate: "${illness}", default: 1 },
       ],
       // 鏌ヨ鍙傛暟
       queryParams: {
@@ -519,11 +539,20 @@
       this.loading = true;
       getlibraryinfo({ id: this.$route.query.id }).then((res) => {
         this.ruleForm = res.data;
+        this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames);
+        this.ruleForm.suitway = this.ruleForm.suitway.split(",");
+        this.variablelist = JSON.parse(this.ruleForm.otherdata)
+          ? JSON.parse(this.ruleForm.otherdata)
+          : this.variablelist;
       });
       getheLibraryAssort({}).then((res) => {
         this.sortlist = res.rows;
         console.log(res);
       });
+      listDept(this.queryParams).then((response) => {
+        this.deptList = this.handleTree(response.data, "deptId");
+      });
+      this.loading = false;
     },
     /** 鏌ヨ鏍囩鍒楄〃 */
     gettabList() {
@@ -537,18 +566,28 @@
         this.optionstag = response.rows;
       });
     },
-    // 瀹屾垚
+
     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);
       });
+      this.ruleForm.labelInfo = tgs.join(",");
+      this.ruleForm.otherdata = JSON.stringify(this.variablelist);
+      this.ruleForm.suitway = 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 +616,42 @@
           });
         });
     },
+    // 绉戝澶勭悊
+    Departmenttreatment() {
+      this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist);
+      console.log(this.tempDetpRelevanceslist);
+      const result = this.tempDetpRelevanceslist.map(
+        (subArr) => subArr[subArr.length - 1]
+      );
+      console.log(result);
+      // id鏁扮粍鏌ユ暟缁勫璞�
+      result.forEach((item) => {
+        const condition = this.ruleForm.tempDetpRelevances.some(
+          (obj) => obj.deptId === item
+        );
+        if (!condition) {
+          listDept({ deptId: item }).then((res) => {
+            console.log(res.data[0]);
+            res.data[0].type = 2;
+            this.ruleForm.tempDetpRelevances.push(res.data[0]);
+          });
+        }
+      });
+      console.log(this.ruleForm.tempDetpRelevances);
+      // 鏁扮粍瀵硅薄鏌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;
+        }
+      });
+      console.log(this.ruleForm.tempDetpRelevances);
+      setTimeout(() => {
+        this.submitForm();
+      }, 1000);
+      // this.submitForm();
+    },
     // 淇濆瓨棰樼洰淇℃伅
     Saveproblem() {},
     /** 鏌ヨ棰樼洰鍒楄〃 */
@@ -584,8 +659,8 @@
     // 鏂板鍙橀噺
     addvariable() {
       this.variablelist.push({
-        variable: "",
-        value: "",
+        variatename: "",
+        variate: "",
       });
     },
     // 鍒犻櫎鍙橀噺
@@ -618,7 +693,7 @@
       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 +714,7 @@
               isoperation: 1,
             };
           }
-          this.ruleForm.ivrLibaTemplateTargetList.push(tagvalue);
+          this.ruleForm.heLibraryTagList.push(tagvalue);
           this.dynamicTags.push(tagvalue);
         });
       }
diff --git a/src/views/knowledge/education/index.vue b/src/views/knowledge/education/index.vue
index 013025c..036f7e9 100644
--- a/src/views/knowledge/education/index.vue
+++ b/src/views/knowledge/education/index.vue
@@ -29,7 +29,7 @@
         >
           <span class="custom-tree-node" slot-scope="{ node, data }">
             <span>{{ node.label }}</span>
-            <span>
+            <span v-if="data.id > 0">
               <el-button
                 type="text"
                 icon="el-icon-delete"
@@ -66,13 +66,21 @@
                   @keyup.enter.native="handleQuery"
                 />
               </el-form-item>
-              <el-form-item label="閫傜敤绉戝" prop="sickness">
+              <el-form-item label="閫傜敤绉戝" prop="region">
                 <el-cascader
-                  v-model="queryParams.sickness"
-                  :options="optionss"
-                  :props="propss"
+                  v-model="queryParams.administrative"
+                  :options="deptList"
+                  :props="props"
+                  :show-all-levels="false"
                   clearable
-                ></el-cascader>
+                >
+                  <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 label="閫氱煡鍐呭" prop="userName">
                 <el-input
@@ -97,10 +105,10 @@
                   placeholder="璇烽�夋嫨"
                 >
                   <el-option
-                    v-for="(item, index) in editableTabs"
-                    :key="index++"
-                    :label="item.title"
-                    :value="index++"
+                    v-for="(item, index) in editabshape"
+                    :key="item.label"
+                    :label="item.label"
+                    :value="item.value"
                   >
                   </el-option>
                 </el-select>
@@ -111,7 +119,7 @@
                   placeholder="璇烽�夋嫨"
                 >
                   <el-option
-                    v-for="item in qyoptions"
+                    v-for="item in usable"
                     :key="item.value"
                     :label="item.value"
                     :value="item.label"
@@ -177,8 +185,8 @@
               <el-table-column
                 label="鏍囬"
                 align="center"
-                key="extName"
-                prop="extName"
+                key="preachname"
+                prop="preachname"
                 :show-overflow-tooltip="true"
               />
               <el-table-column
@@ -189,15 +197,15 @@
                 :show-overflow-tooltip="true"
               />
               <el-table-column
-                label="涓昏鍐呭(缂�)"
+                label="涓昏鍐呭"
                 align="center"
-                key="userNamevalue"
-                prop="userNamevalue"
+                key="preachcontent"
+                prop="preachcontent"
                 :show-overflow-tooltip="true"
               />
 
               <el-table-column
-                label="閫傜敤鐤剧梾(缂�)"
+                label="閫傜敤鐤剧梾"
                 align="center"
                 key="aphonenumber"
                 prop="aphonenumber"
@@ -215,39 +223,48 @@
                   >
                 </template>
               </el-table-column>
+
               <el-table-column
-                label="閫傜敤绉戝(缂�)"
+                label="鏍囩"
                 align="center"
-                key="bphonenumber"
-                prop="bphonenumber"
-                width="120"
-              />
-              <el-table-column
-                label="鏍囩(缂�)"
-                align="center"
-                key="tagList"
-                prop="tagList"
+                key="labelInfo"
+                prop="labelInfo"
                 width="160"
                 :show-overflow-tooltip="true"
               >
                 <template slot-scope="scope">
-                  <span v-for="item in scope.row.tagList">{{ item }} </span>
+                  <span v-for="item in scope.row.labelInfo.split(',')"
+                    >{{ item }}銆�
+                  </span>
                 </template>
               </el-table-column>
               <el-table-column
-                label="瀹f暀鏂瑰紡(缂�)"
+                label="閫傜敤鏂瑰紡"
                 align="center"
-                key="cphonenumber"
-                prop="cphonenumber"
+                key="suitway"
+                prop="suitway"
                 width="120"
-              />
+              >
+              <template slot-scope="scope">
+                  <span v-for="item in scope.row.suitway.split(',')"
+                    >{{ item }}銆�
+                  </span>
+                </template>
+            </el-table-column>
               <el-table-column
-                label="璧勬枡褰㈠紡(缂�)"
+                label="鍐呭褰㈠紡"
                 align="center"
-                key="cphonenumbers"
-                prop="cphonenumbers"
+                key="preachform"
+                prop="preachform"
                 width="120"
-              />
+              >
+                <template slot-scope="scope">
+                  <dict-tag
+                    :options="editabshape"
+                    :value="scope.row.preachform"
+                  />
+                </template>
+              </el-table-column>
               <el-table-column
                 label="鏈�杩戜慨鏀�"
                 align="center"
@@ -258,10 +275,14 @@
               <el-table-column
                 label="鏄惁鍙敤"
                 align="center"
-                key="isEnable"
-                prop="isEnable"
+                key="isavailable"
+                prop="isavailable"
                 width="120"
-              />
+              >
+                <template slot-scope="scope">
+                  <dict-tag :options="usable" :value="scope.row.isavailable" />
+                </template>
+              </el-table-column>
 
               <el-table-column
                 label="鎿嶄綔"
@@ -429,6 +450,7 @@
   illnesslistget,
   getillness,
 } from "@/api/AiCentre/index";
+import { listDept } from "@/api/system/dept";
 import { getToken } from "@/utils/auth";
 import store from "@/store";
 
@@ -508,9 +530,12 @@
       optionss: [],
       mode: [],
       languagelist: [],
-      qyoptions: [],
+      editabshape: [],
+      usable: [],
       precedencetype: [],
       xjxsoptions: [],
+      deptList: [],
+      props: { multiple: true, value: "deptId", label: "deptName" },
 
       //绫诲埆鍒楄〃
       editableTabs: [],
@@ -518,6 +543,7 @@
       queryParams: {
         pageNum: 1,
         pageSize: 10,
+        isavailable: "",
       },
     };
   },
@@ -527,8 +553,9 @@
     this.getDeptTree();
     this.mode = store.getters.mode;
     this.languagelist = store.getters.languagelist;
-    this.qyoptions = store.getters.usable;
+    this.usable = store.getters.usable;
     this.precedencetype = store.getters.precedencetype;
+    this.editabshape = store.getters.editabshape;
   },
 
   methods: {
@@ -538,6 +565,9 @@
       getlibrarylist(this.queryParams).then((response) => {
         console.log(response);
         this.userList = response.rows;
+      });
+      listDept(this.queryParams).then((response) => {
+        this.deptList = this.handleTree(response.data, "deptId");
       });
     },
 
@@ -649,6 +679,7 @@
         this.getDeptTree();
         this.$modal.msgSuccess("鏂板鎴愬姛");
         this.classifyform = {};
+        this.dialogFormVisible = false;
       });
     },
     remove(a, b) {
diff --git a/src/views/knowledge/questionbank/index.vue b/src/views/knowledge/questionbank/index.vue
index a2f1567..53644ce 100644
--- a/src/views/knowledge/questionbank/index.vue
+++ b/src/views/knowledge/questionbank/index.vue
@@ -88,8 +88,11 @@
                   </el-option>
                 </el-select>
               </el-form-item>
-              <el-form-item label="鏄惁鍙敤" prop="status">
-                <el-select v-model="queryParams.status" placeholder="璇烽�夋嫨">
+              <el-form-item label="鏄惁鍙敤" prop="isavailable">
+                <el-select
+                  v-model="queryParams.isavailable"
+                  placeholder="璇烽�夋嫨"
+                >
                   <el-option
                     v-for="item in qyoptions"
                     :key="item.value"
@@ -165,23 +168,27 @@
                 :show-overflow-tooltip="true"
               />
               <el-table-column
-                label="棰樼洰鍐呭(缂�)"
+                label="棰樼洰鍐呭"
                 align="center"
-                key="nickName"
-                prop="nickName"
+                key="topicContent"
+                prop="topicContent"
                 width="200"
                 :show-overflow-tooltip="true"
               />
 
               /><el-table-column
-                label="閫傜敤鏂瑰紡(缂�)"
+                label="閫傜敤鏂瑰紡"
                 align="center"
-                key="application"
-                prop="application"
+                key="suitway"
+                prop="suitway"
                 width="120"
-              />
+              >
+                <template slot-scope="scope">
+                  <dict-tag :options="mode" :value="scope.row.suitway" />
+                </template>
+              </el-table-column>
               /><el-table-column
-                label="閫傜敤鐤剧梾(缂�)"
+                label="閫傜敤鐤剧梾"
                 align="center"
                 key="Applicable"
                 prop="Applicable"
@@ -200,7 +207,7 @@
                 </template>
               </el-table-column>
               <el-table-column
-                label="鏍囩(缂�)"
+                label="鏍囩"
                 align="center"
                 key="tagList"
                 prop="tagList"
@@ -208,17 +215,26 @@
                 :show-overflow-tooltip="true"
               >
                 <template slot-scope="scope">
-                  <span v-for="item in scope.row.tagList">{{ item }} </span>
+                  <span v-for="item in scope.row.tag.split(',')"
+                    >{{ item }}銆�
+                  </span>
                 </template>
               </el-table-column>
 
               <el-table-column
-                label="鍙敤(缂�)"
+                label="鍙敤"
                 align="center"
-                key="usable"
-                prop="usable"
+                key="isavailable"
+                prop="isavailable"
                 width="120"
-              />
+              >
+                <template slot-scope="scope">
+                  <dict-tag
+                    :options="qyoptions"
+                    :value="scope.row.isavailable"
+                  />
+                </template>
+              </el-table-column>
               <el-table-column
                 label="鏈�杩戜慨鏀�"
                 align="center"
@@ -291,17 +307,14 @@
             <el-option
               v-for="item in deptOptions"
               :key="item.id"
-              :label="item.indexAssortName"
+              :label="item.name"
               :value="item.id"
             >
             </el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="璇疯緭鍏ョ被鍒悕绉�">
-          <el-input
-            v-model="classifyform.indexAssortName"
-            autocomplete="off"
-          ></el-input>
+          <el-input v-model="classifyform.name" autocomplete="off"></el-input>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -411,6 +424,7 @@
       // 琛ㄦ牸鏁版嵁
       userList: [],
       // 寮瑰嚭灞傛爣棰�
+      tag: "",
       title: "",
       // 鏄惁鏄剧ず寮瑰嚭灞�
       open: false,
@@ -440,7 +454,7 @@
       illnesslist: [],
       defaultProps: {
         children: "svyLibTopicCategoryList",
-        label: "indexAssortName",
+        label: "name",
       },
       mode: [],
       languagelist: [],
@@ -449,6 +463,7 @@
       queryParams: {
         pageNum: 1,
         pageSize: 10,
+        isavailable: "",
       },
       // 琛ㄥ崟鏍¢獙
       rules: {},
@@ -457,6 +472,7 @@
   watch: {},
   created() {
     this.getList();
+    this.getDeptTree();
     this.mode = store.getters.mode;
     this.languagelist = store.getters.languagelist;
     this.qyoptions = store.getters.usable;
@@ -573,29 +589,31 @@
       let calssvalue = {};
       if (
         this.classifyform.pid &&
-        this.classifyform.indexAssortName &&
+        this.classifyform.name &&
         this.radio == "瀛愬垎绫�"
       ) {
         const index = this.deptOptions.findIndex(
           (obj) => obj.id == this.classifyform.pid
         );
         calssvalue = this.deptOptions[index];
-        calssvalue.ivrLibaTemplateAssortList.push(this.classifyform);
-      } else if (this.radio == "涓诲垎绫�" && this.classifyform.indexAssortName) {
+        calssvalue.svyLibTopicCategoryList.push(this.classifyform);
+      } else if (this.radio == "涓诲垎绫�" && this.classifyform.name) {
         this.classifyform.pid = null;
-        this.classifyform.ivrLibaTemplateAssortList = [];
+        this.classifyform.svyLibTopicCategoryList = [];
       } else {
         return this.$modal.msgError("璇峰~鍐欏畬鏁翠俊鎭�");
       }
       addissueclassify(this.classifyform).then((res) => {
         this.getDeptTree();
         this.$modal.msgSuccess("鏂板鎴愬姛");
+        this.classifyform = {};
+        this.dialogFormVisible = false;
       });
     },
     remove(a, b) {
       if (b.pid) {
         this.$modal
-          .confirm('鏄惁纭鍒犻櫎鍒嗙被椤逛负"' + b.indexAssortName + '"鐨勬暟鎹」锛�')
+          .confirm('鏄惁纭鍒犻櫎鍒嗙被椤逛负"' + b.name + '"鐨勬暟鎹」锛�')
           .then(function () {
             return delissueclassify(b.id);
           })
@@ -607,9 +625,7 @@
       } else {
         this.$modal
           .confirm(
-            '鏄惁纭鍒犻櫎涓�绾у垎绫�"' +
-              b.indexAssortName +
-              '"锛熷垹闄ゅ悗鍏朵笅鍒嗙被灏嗗綊绫烩�樻湭鍒嗙被鈥�'
+            '鏄惁纭鍒犻櫎涓�绾у垎绫�"' + b.name + '"锛熷垹闄ゅ悗鍏朵笅鍒嗙被灏嗗綊绫烩�樻湭鍒嗙被鈥�'
           )
           .then(() => {
             return delissueclassify(b.id);
@@ -625,7 +641,7 @@
     // 绛涢�夎妭鐐�
     filterNode(value, data) {
       if (!value) return true;
-      return data.indexAssortName.indexOf(value) !== -1;
+      return data.name.indexOf(value) !== -1;
     },
     handleNodeClick(data) {
       this.queryParams.assortid = data.id;
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;
diff --git a/src/views/knowledge/questionnaire/compilequer/index.vue b/src/views/knowledge/questionnaire/compilequer/index.vue
index 26c78ac..d01a149 100644
--- a/src/views/knowledge/questionnaire/compilequer/index.vue
+++ b/src/views/knowledge/questionnaire/compilequer/index.vue
@@ -30,16 +30,15 @@
             <el-select
               v-model="ruleForm.categoryid"
               size="medium"
-              multiple
               filterable
               placeholder="璇烽�夋嫨鍒嗙被"
             >
               <el-option
                 class="ruleFormaa"
                 v-for="item in optionsclass"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id"
               >
               </el-option>
             </el-select>
@@ -59,37 +58,6 @@
             >
             </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.name"
-                  placeholder="璇疯緭鍏ュ彉閲忓悕"
-                ></el-input>
-              </el-col>
-              <el-col :span="8" :offset="1">
-                <el-input
-                  v-model="item.value"
-                  placeholder="璇疯緭鍏ュ彉閲忓唴瀹�"
-                ></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
-                  v-if="item"
-                  type="danger"
-                  icon="el-icon-delete"
-                  circle
-                  @click="delvariable(item)"
-                ></el-button>
-              </el-col>
-            </el-row>
-          </el-form-item>
 
           <el-form-item label="鏂囦欢" prop="sickness">
             <div style="width: 40%">
@@ -110,14 +78,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"
@@ -202,7 +170,6 @@
                 <el-select
                   v-model="ruleForm.isenable"
                   size="medium"
-                  multiple
                   filterable
                   placeholder="璇烽�夋嫨鍒嗙被"
                 >
@@ -217,9 +184,9 @@
                 </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"
+              v-model="ruleForm.suitway"
               size="medium"
               multiple
               filterable
@@ -227,7 +194,7 @@
             >
               <el-option
                 class="ruleFormaa"
-                v-for="item in xjxsoptions"
+                v-for="item in mode"
                 :key="item.value"
                 :label="item.label"
                 :value="item.value"
@@ -238,7 +205,7 @@
 
           <el-form-item label="閫傜敤闄㈠尯" prop="region">
             <el-select
-              v-model="ruleForm.courtyard"
+              v-model="ruleForm.campus"
               size="medium"
               filterable
               placeholder="璇烽�夋嫨鍒嗙被"
@@ -246,37 +213,33 @@
               <el-option
                 class="ruleFormaa"
                 v-for="item in courtyardlist"
-                :key="item.value"
+                :key="item.label"
                 :label="item.label"
-                :value="item.value"
+                :value="item.label"
               >
               </el-option>
             </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 courtyardlist"
-                :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 type="info" @click="closeFm('ruleForm')">鍏抽棴</el-button>
-            <el-button @click="submitForm('ruleForm')"
+            <el-button @click="Departmenttreatment('ruleForm')"
               >淇濆瓨闂嵎鍩虹淇℃伅</el-button
             >
           </el-form-item>
@@ -291,32 +254,32 @@
             type="primary"
             icon="el-icon-plus"
             round
-            @click="drawer = true"
+            @click="getaddtopiclist"
             >娣诲姞棰樼洰</el-button
           >
         </div>
         <div class="presentation">
           <div class="presentation-left">
             <el-card class="box-card" style="min-height: 688px">
-              <el-table v-loading="loading" :data="userList">
+              <el-table v-loading="loading" :data="ruleForm.svyLibTopics">
                 <el-table-column
                   label="搴忓彿"
                   align="center"
-                  key="userid"
-                  prop="userid"
+                  key="topicid"
+                  prop="topicid"
                 />
                 <el-table-column
                   label="棰樼洰"
                   align="center"
-                  key="userName"
-                  prop="userName"
+                  key="topic"
+                  prop="topic"
                   :show-overflow-tooltip="true"
                 />
                 <el-table-column
                   label="涓昏鍐呭"
                   align="center"
-                  key="maincontent"
-                  prop="maincontent"
+                  key="topicContent"
+                  prop="topicContent"
                   :show-overflow-tooltip="true"
                 />
 
@@ -344,14 +307,6 @@
                 </el-table-column>
               </el-table>
             </el-card>
-
-            <pagination
-              v-show="total > 0"
-              :total="total"
-              :page.sync="queryParams.pageNum"
-              :limit.sync="queryParams.pageSize"
-              @pagination="getList"
-            />
           </div>
           <div class="presentation-right">
             <el-card class="box-card">
@@ -370,35 +325,54 @@
                 </div>
                 <el-form-item label="棰樼洰鏍囬">
                   <el-input
-                    v-model="topicobj.title"
+                    v-model="topicobj.topic"
                     placeholder="璇疯緭鍏ユ爣棰�"
                   ></el-input>
                 </el-form-item>
                 <el-row :gutter="10">
                   <el-col :span="12"
-                    ><el-form-item label="鏄惁蹇呯瓟">
-                      <el-radio-group v-model="topicobj.resource">
-                        <el-radio label="鏄�"></el-radio>
-                        <el-radio label="鍚�"></el-radio>
-                      </el-radio-group> </el-form-item
+                    ><el-form-item label="鏄惁蹇呭~">
+                      <el-select
+                        v-model="topicobj.ismandatory"
+                        placeholder="璇烽�夋嫨"
+                      >
+                        <el-option
+                          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="12"
-                    ><el-form-item label="鏄惁闅愯棌">
-                      <el-radio-group v-model="topicobj.resourcea">
-                        <el-radio label="鏄�"></el-radio>
-                        <el-radio label="鍚�"></el-radio>
-                      </el-radio-group> </el-form-item
+                    ><el-form-item label="鏄惁鍙敤">
+                      <el-select
+                        v-model="topicobj.isavailable"
+                        placeholder="璇烽�夋嫨"
+                      >
+                        <el-option
+                          v-for="item in usable"
+                          :key="item.value"
+                          :label="item.label"
+                          :value="item.value"
+                        >
+                        </el-option>
+                      </el-select> </el-form-item
                   ></el-col>
                 </el-row>
                 <div class="headline">閫夐」璁剧疆</div>
-                <div class="topicxq" v-for="item in optionlist">
+                <div
+                  class="topicxq"
+                  v-for="item in topicobj.svyLibTopicoptions"
+                >
                   <el-row :gutter="10">
                     <el-col :span="11"
                       ><el-form-item label="棰樺彿">
                         <el-input
                           type="text"
                           placeholder="璇疯緭鍏�"
-                          v-model="item.optionid"
+                          v-model="item.topicid"
                           show-word-limit
                         >
                         </el-input> </el-form-item
@@ -467,7 +441,7 @@
         >
         <el-button type="primary" @click="laststep()">涓婁竴姝�</el-button>
         <el-button type="info" @click="closeFm('ruleForm')">鍏抽棴</el-button>
-        <el-button @click="Saveproblem('ruleForm')">淇濆瓨棰樼洰鏁版嵁</el-button>
+        <el-button @click="submitForm('ruleForm')">淇濆瓨棰樼洰鏁版嵁</el-button>
       </div>
       <!-- 闂嵎棰勮 -->
       <div v-if="Editprogress == 3">
@@ -544,24 +518,16 @@
               placeholder="璇疯緭鍏�"
               clearable
               style="width: 200px"
-              @keyup.enter.native="handleQuery"
+              @keyup.enter.native="getaddtopiclist"
             />
           </el-form-item>
-          <el-form-item label="涓婚" prop="sickness">
-            <el-input
-              v-model="queryParams.userName"
-              placeholder="璇疯緭鍏�"
-              clearable
-              style="width: 200px"
-              @keyup.enter.native="handleQuery"
-            />
-          </el-form-item>
+
           <el-form-item>
             <el-button
               type="primary"
               icon="el-icon-search"
               size="medium"
-              @click="handleQuery"
+              @click="getaddtopiclist"
               >鎼滅储</el-button
             >
             <el-button icon="el-icon-refresh" size="medium" @click="resetQuery"
@@ -573,15 +539,15 @@
           <el-table-column
             label="鏍囬"
             align="center"
-            key="userid"
-            prop="userid"
+            key="topic"
+            prop="topic"
             width="100"
           />
           <el-table-column
             label="闂鍐呭"
             align="center"
-            key="userName"
-            prop="userName"
+            key="topicContent"
+            prop="topicContent"
             width="200"
             :show-overflow-tooltip="true"
           />
@@ -592,10 +558,7 @@
             class-name="small-padding fixed-width"
           >
             <template slot-scope="scope">
-              <el-button
-                size="medium"
-                type="text"
-                @click="handleUpdate(scope.row)"
+              <el-button size="medium" type="text" @click="addtopic(scope.row)"
                 ><span class="button-textxg"
                   ><i class="el-icon-circle-plus-outline"></i>娣诲姞</span
                 ></el-button
@@ -610,16 +573,19 @@
 
 <script>
 import { listtag } from "@/api/system/label";
+import { listDept } from "@/api/system/dept";
 import store from "@/store";
 import {
   getQtemplateclassify,
   delQtemplateclassify,
   addQtemplateclassify,
   getQtemplatelist,
+  compileQtemplate,
   Qtemplateinfo,
   compileissue,
   delQtemplateinfo,
   Followupinfo,
+  getissuelist,
   deltargetillness,
   addtargetillness,
   getillnesslist,
@@ -652,20 +618,7 @@
         { value: "topic", table: "topic" },
         { value: "topic", table: "topic" },
       ],
-      xjxsoptions: [
-        {
-          value: "閫夐」1",
-          label: "鍥炬枃",
-        },
-        {
-          value: "閫夐」2",
-          label: "瑙嗛",
-        },
-        {
-          value: "閫夐」3",
-          label: "闊抽",
-        },
-      ],
+
       fileList: [
         {
           name: "food.jpeg",
@@ -676,16 +629,7 @@
           url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100",
         },
       ],
-      options: [
-        {
-          value: "閫夐」1",
-          label: "鐤剧梾闂嵎",
-        },
-        {
-          value: "閫夐」2",
-          label: "鍏ラ櫌闂嵎",
-        },
-      ],
+
       variablelist: [
         {
           variable: "paitent",
@@ -702,16 +646,9 @@
       ],
       addvalue: "娣诲姞棰樼洰",
       // 棰樼洰琛ㄦ牸鏁版嵁
-      userList: [
-        {
-          userid: "1",
-          userName: "涓�鍙烽棶鍗�",
-        },
-        {
-          userid: "2",
-          userName: "浜屽彿闂嵎",
-        },
-      ],
+      userList: [],
+      deptList: [],
+      props: { multiple: true, value: "deptId", label: "deptName" },
       themelist: [],
       languagelist: [],
       courtyardlist: [],
@@ -724,20 +661,16 @@
       optionsillness: [],
       illnesslistapi: [],
       illnesslist: [],
-
+      tempDetpRelevanceslist: [],
       optionstag: [],
       xjxsoptions: [],
       usable: [],
+      required: [],
       mode: [], //鏂瑰紡
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
         pageSize: 10,
-        userName: undefined,
-        phonenumber: undefined,
-        status: undefined,
-        deptId: undefined,
-        IDnumber: undefined,
       },
     };
   },
@@ -748,6 +681,7 @@
     this.mode = store.getters.mode;
     this.languagelist = store.getters.languagelist;
     this.usable = store.getters.usable;
+    this.required = store.getters.required;
     this.xjxsoptions = store.getters.xjxsoptions;
     this.courtyardlist = store.getters.courtyardlist;
   },
@@ -759,8 +693,12 @@
     // 鑾峰彇鏁版嵁
     getissueinfo() {
       this.id = this.$route.query.id;
-      Qtemplateinfo(this.id).then((res) => {
-        this.ruleForm = res.data;
+      getQtemplatelist({ svyid: this.id }).then((res) => {
+        this.ruleForm = res.rows[0];
+        this.dynamicTags = this.ruleForm.labelInfo.split(",");
+        this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames);
+        this.ruleForm.suitway = this.ruleForm.suitway.split(",");
+        console.log(this.tempDetpRelevanceslist);
       });
       getillnesslist({
         pageNum: 1,
@@ -771,8 +709,67 @@
       getillness({ outid: this.id, type: 5 }).then((res) => {
         this.illnesslist = res.rows;
       });
+      listDept(this.queryParams).then((response) => {
+        this.deptList = this.handleTree(response.data, "deptId");
+      });
+      getQtemplateclassify({}).then((res) => {
+        this.optionsclass = res.rows;
+      });
     },
-    submitForm(formName) {},
+    submitForm(formName) {
+      this.ruleForm.labelInfo = this.dynamicTags.join(",");
+      this.ruleForm.suitway = this.ruleForm.suitway.join(",");
+
+      if (this.id) {
+        this.ruleForm.isoperation = 2;
+        compileQtemplate(this.ruleForm).then((response) => {
+          this.$modal.msgSuccess("淇敼鎴愬姛");
+          this.$router.go(-1);
+        });
+      } else {
+        this.ruleForm.isoperation = 1;
+        compileQtemplate(this.ruleForm).then((response) => {
+          this.$modal.msgSuccess("鏂板鎴愬姛");
+          this.$router.go(-1);
+        });
+      }
+    },
+    // 绉戝澶勭悊
+    Departmenttreatment() {
+      this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist);
+      console.log(this.tempDetpRelevanceslist);
+      const result = this.tempDetpRelevanceslist.map(
+        (subArr) => subArr[subArr.length - 1]
+      );
+      console.log(result);
+      // id鏁扮粍鏌ユ暟缁勫璞�
+      result.forEach((item) => {
+        const condition = this.ruleForm.tempDetpRelevances.some(
+          (obj) => obj.deptId === item
+        );
+        if (!condition) {
+          listDept({ deptId: item }).then((res) => {
+            console.log(res.data[0]);
+            res.data[0].type = 2;
+            this.ruleForm.tempDetpRelevances.push(res.data[0]);
+          });
+        }
+      });
+      console.log(this.ruleForm.tempDetpRelevances);
+      // 鏁扮粍瀵硅薄鏌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;
+        }
+      });
+      console.log(this.ruleForm.tempDetpRelevances);
+      setTimeout(() => {
+        this.submitForm();
+      }, 1000);
+      // this.submitForm();
+    },
     // 涓嬩竴姝�
     nextstep() {
       if (this.Editprogress <= 2) {
@@ -800,22 +797,32 @@
           });
         });
     },
-    // 淇濆瓨棰樼洰淇℃伅
-    Saveproblem() {},
-    /** 鏌ヨ棰樼洰鍒楄〃 */
-    getList() {
-      //   this.loading = true;
-      listUser().then((response) => {
-        console.log(response);
-        // this.userList = response.data;
-        // this.total = response.total;
-        // this.loading = false;
+    // 鑾峰彇棰樼洰鍒楄〃
+    getaddtopiclist() {
+      this.drawer = true;
+      getissuelist(this.queryParams).then((res) => {
+        this.loading = false;
+        this.userList = res.rows;
+        this.total = res.total;
         console.log(this.userList);
       });
-      //   const { rows } = await listUser();
-      //   console.log(rows);
-      //   this.list = rows;
     },
+    // 鏂板棰樼洰
+    addtopic(row) {
+      row.isoperation = 1;
+      this.ruleForm.svyLibTopics.push(row);
+    },
+    handleDelete(row) {
+      this.ruleForm.svyLibTopics.splice(
+        this.ruleForm.svyLibTopics.indexOf(row),
+        1
+      );
+    },
+    handleUpdate(row) {
+      console.log(row);
+      this.topicobj = row;
+    },
+
     // 淇敼棰樼洰淇℃伅
     Submittopicobj() {},
     // 鏂板鍙橀噺
@@ -853,9 +860,8 @@
     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.ivrLibaTemplateTargetList[lindex].isoperation = 3;
     },
     handleInputConfirm() {
       let tagvalue = {};
@@ -877,7 +883,8 @@
             };
           }
           // this.ruleForm.ivrLibaTemplateTargetList.push(tagvalue);
-          this.dynamicTags.push(tagvalue);
+          // this.dynamicTags.push(tagvalue);
+          this.dynamicTags.push(tagvalue.tagname);
         });
       }
       this.inputVisible = false;
@@ -954,9 +961,10 @@
       this.$modal.msgSuccess("缂栬緫鎴愬姛");
     },
     // --------------------------
-    // 鏌ヨ棰樺簱
-    handleQuery() {},
-    resetQuery() {},
+    resetQuery() {
+      this.queryParams = { pageNum: 1, pageSize: 10 };
+      this.getaddtopiclist();
+    },
     resetForm(formName) {
       this.$refs[formName].resetFields();
     },
diff --git a/src/views/knowledge/questionnaire/index.vue b/src/views/knowledge/questionnaire/index.vue
index e4c3562..d6c4277 100644
--- a/src/views/knowledge/questionnaire/index.vue
+++ b/src/views/knowledge/questionnaire/index.vue
@@ -29,7 +29,7 @@
         >
           <span class="custom-tree-node" slot-scope="{ node, data }">
             <span>{{ node.label }}</span>
-            <span>
+            <span v-if="node.id > 0">
               <el-button
                 type="text"
                 icon="el-icon-delete"
@@ -66,13 +66,21 @@
                   @keyup.enter.native="handleQuery"
                 />
               </el-form-item>
-              <el-form-item label="閫傜敤绉戝" prop="sickness">
+              <el-form-item label="閫傜敤绉戝" prop="region">
                 <el-cascader
-                  v-model="queryParams.sickness"
-                  :options="editableTabs"
-                  :props="propss"
+                  v-model="queryParams.administrative"
+                  :options="deptList"
+                  :props="props"
+                  :show-all-levels="false"
                   clearable
-                ></el-cascader>
+                >
+                  <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 label="閫氱煡鍐呭" prop="userName">
                 <el-input
@@ -199,7 +207,7 @@
                 prop="description"
                 width="260"
               /><el-table-column
-                label="閫傜敤鐤剧梾(缂�)"
+                label="閫傜敤鐤剧梾"
                 align="center"
                 key="Applicable"
                 prop="Applicable"
@@ -216,33 +224,22 @@
                   >
                 </template>
               </el-table-column>
+
               <el-table-column
-                label="閫傜敤绉戝(缂�)"
+                label="鏍囩"
                 align="center"
-                key="administrative"
-                prop="administrative"
-                width="120"
-              />
-              <el-table-column
-                label="鏍囩(缂�)"
-                align="center"
-                key="tagList"
-                prop="tagList"
+                key="labelInfo"
+                prop="labelInfo"
                 width="160"
                 :show-overflow-tooltip="true"
               >
                 <template slot-scope="scope">
-                  <span v-for="item in scope.row.tagList">{{ item }} </span>
+                  <span v-for="item in scope.row.labelInfo.split(',')"
+                    >{{ item }}銆�
+                  </span>
                 </template>
               </el-table-column>
 
-              <el-table-column
-                label="璧勬枡褰㈠紡(缂�)"
-                align="center"
-                key="cphonenumaber"
-                prop="cphonenumaber"
-                width="120"
-              />
               <el-table-column
                 label="鍙敤"
                 align="center"
@@ -336,17 +333,14 @@
             <el-option
               v-for="item in deptOptions"
               :key="item.id"
-              :label="item.indexAssortName"
+              :label="item.name"
               :value="item.id"
             >
             </el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="璇疯緭鍏ョ被鍒悕绉�">
-          <el-input
-            v-model="classifyform.indexAssortName"
-            autocomplete="off"
-          ></el-input>
+          <el-input v-model="classifyform.name" autocomplete="off"></el-input>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -432,6 +426,8 @@
   illnesslistget,
   getillness,
 } from "@/api/AiCentre/index";
+import { listDept } from "@/api/system/dept";
+
 import { getToken } from "@/utils/auth";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
@@ -485,9 +481,11 @@
       illnesslistapi: [],
       illnesslist: [],
       defaultProps: {
-        children: "svyLibTopicCategoryList",
-        label: "indexAssortName",
+        children: "svyLibTitleCategoryList",
+        label: "name",
       },
+      deptList: [],
+      props: { multiple: true, value: "deptId", label: "deptName" },
       mode: [],
       languagelist: [],
       qyoptions: [],
@@ -505,7 +503,7 @@
   watch: {},
   created() {
     this.getList();
-    // this.getDeptTree();
+    this.getDeptTree();
     this.mode = store.getters.mode;
     this.languagelist = store.getters.languagelist;
     this.qyoptions = store.getters.usable;
@@ -520,6 +518,9 @@
         this.userList = response.rows;
         this.total = response.total;
         this.loading = false;
+      });
+      listDept(this.queryParams).then((response) => {
+        this.deptList = this.handleTree(response.data, "deptId");
       });
     },
 
@@ -675,29 +676,31 @@
       let calssvalue = {};
       if (
         this.classifyform.pid &&
-        this.classifyform.indexAssortName &&
+        this.classifyform.name &&
         this.radio == "瀛愬垎绫�"
       ) {
         const index = this.deptOptions.findIndex(
           (obj) => obj.id == this.classifyform.pid
         );
         calssvalue = this.deptOptions[index];
-        calssvalue.ivrLibaTemplateAssortList.push(this.classifyform);
-      } else if (this.radio == "涓诲垎绫�" && this.classifyform.indexAssortName) {
+        calssvalue.svyLibTitleCategoryList.push(this.classifyform);
+      } else if (this.radio == "涓诲垎绫�" && this.classifyform.name) {
         this.classifyform.pid = null;
-        this.classifyform.ivrLibaTemplateAssortList = [];
+        this.classifyform.svyLibTitleCategoryList = [];
       } else {
         return this.$modal.msgError("璇峰~鍐欏畬鏁翠俊鎭�");
       }
       addQtemplateclassify(this.classifyform).then((res) => {
         this.getDeptTree();
         this.$modal.msgSuccess("鏂板鎴愬姛");
+        this.classifyform = {};
+        this.dialogFormVisible = false;
       });
     },
     remove(a, b) {
       if (b.pid) {
         this.$modal
-          .confirm('鏄惁纭鍒犻櫎鍒嗙被椤逛负"' + b.indexAssortName + '"鐨勬暟鎹」锛�')
+          .confirm('鏄惁纭鍒犻櫎鍒嗙被椤逛负"' + b.name + '"鐨勬暟鎹」锛�')
           .then(function () {
             return delQtemplateclassify(b.id);
           })
@@ -709,9 +712,7 @@
       } else {
         this.$modal
           .confirm(
-            '鏄惁纭鍒犻櫎涓�绾у垎绫�"' +
-              b.indexAssortName +
-              '"锛熷垹闄ゅ悗鍏朵笅鍒嗙被灏嗗綊绫烩�樻湭鍒嗙被鈥�'
+            '鏄惁纭鍒犻櫎涓�绾у垎绫�"' + b.name + '"锛熷垹闄ゅ悗鍏朵笅鍒嗙被灏嗗綊绫烩�樻湭鍒嗙被鈥�'
           )
           .then(() => {
             return delQtemplateclassify(b.id);
@@ -727,7 +728,7 @@
     // 绛涢�夎妭鐐�
     filterNode(value, data) {
       if (!value) return true;
-      return data.indexAssortName.indexOf(value) !== -1;
+      return data.name.indexOf(value) !== -1;
     },
     handleNodeClick(data) {
       this.queryParams.assortid = data.id;
diff --git a/src/views/patient/propaganda/particty.vue b/src/views/patient/propaganda/particty.vue
index 70de25c..95f9611 100644
--- a/src/views/patient/propaganda/particty.vue
+++ b/src/views/patient/propaganda/particty.vue
@@ -536,8 +536,14 @@
 </template>
 
 <script>
-
 import { messagelistpatient } from "@/api/patient/homepage";
+import {
+  getTaskpatient,
+  edithetask,
+  addhetask,
+  gethetaskinfo,
+  delhetaskinfo,
+} from "@/api/AiCentre/index";
 import SFtable from "@/components/SFtable"; //琛ㄦ牸缁勪欢
 
 export default {
@@ -679,6 +685,9 @@
   methods: {
     // 鑾峰彇褰撳墠绫诲瀷
     Acquisitiontype() {
+      getTaskpatient({ allhosp: 1 }).then((res) => {
+        console.log(res);
+      });
       this.currenttype = this.$route.query.type;
       console.log(this.currenttype);
       if (this.currenttype == 1) {
diff --git a/src/views/repositoryai/general/index.vue b/src/views/repositoryai/general/index.vue
index 4388313..22b86bf 100644
--- a/src/views/repositoryai/general/index.vue
+++ b/src/views/repositoryai/general/index.vue
@@ -153,12 +153,7 @@
               @selection-change="handleSelectionChange"
             >
               <el-table-column type="selection" width="50" align="center" />
-              <el-table-column
-                label="搴忓彿"
-                align="center"
-                key="targetid"
-                prop="targetid"
-              />
+              <el-table-column label="搴忓彿" align="center" key="id" prop="id" />
               <el-table-column
                 label="閫氱敤搴撳悕绉�"
                 align="center"
@@ -463,6 +458,8 @@
       addgeneralclassify(this.classifyform).then((res) => {
         this.getDeptTree();
         this.$modal.msgSuccess("鏂板鎴愬姛");
+        this.classifyform = {};
+        this.dialogFormVisible = false;
       });
     },
     remove(a, b) {
@@ -509,7 +506,7 @@
     reset() {
       this.indexform = {
         suitWay: undefined,
-        targetid: undefined,
+        id: undefined,
         targetdesc: undefined,
         baseTagList: [],
         targetoptionList: [],
@@ -533,7 +530,7 @@
     },
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
-      this.ids = selection.map((item) => item.targetid);
+      this.ids = selection.map((item) => item.id);
       this.single = selection.length != 1;
       this.multiple = !selection.length;
     },
@@ -585,7 +582,7 @@
           this.targetoptionList
         );
         if (valid) {
-          if (this.indexform.targetid != undefined) {
+          if (this.indexform.id != undefined) {
             this.indexform.isoperation = 2;
             editgeneral(this.indexform).then((response) => {
               this.$modal.msgSuccess("淇敼鎴愬姛");
@@ -606,7 +603,7 @@
     },
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete(row) {
-      const userIds = row.targetid || this.ids;
+      const userIds = row.id || this.ids;
       this.$modal
         .confirm('鏄惁纭鍒犻櫎閫氱敤搴撳悕绉颁负"' + row.targetname + '"鐨勬暟鎹」锛�')
         .then(function () {
diff --git a/src/views/repositoryai/general/particulars/index.vue b/src/views/repositoryai/general/particulars/index.vue
index be402e9..a62d362 100644
--- a/src/views/repositoryai/general/particulars/index.vue
+++ b/src/views/repositoryai/general/particulars/index.vue
@@ -9,8 +9,8 @@
           <el-table-column
             label="搴忓彿"
             align="center"
-            key="targetid"
-            prop="targetid"
+            key="id"
+            prop="id"
           />
           <el-table-column
             label="闂涓婚锛堢己锛�"
diff --git a/src/views/repositoryai/intention/index.vue b/src/views/repositoryai/intention/index.vue
index b7ae1d0..9d7591e 100644
--- a/src/views/repositoryai/intention/index.vue
+++ b/src/views/repositoryai/intention/index.vue
@@ -170,12 +170,7 @@
               @selection-change="handleSelectionChange"
             >
               <el-table-column type="selection" width="50" align="center" />
-              <el-table-column
-                label="搴忓彿"
-                align="center"
-                key="targetid"
-                prop="targetid"
-              />
+              <el-table-column label="搴忓彿" align="center" key="id" prop="id" />
               <el-table-column
                 label="鍊肩被鍨�"
                 align="center"
@@ -541,6 +536,9 @@
                 </el-table-column>
               </el-table>
             </el-card>
+            <el-card class="box-card" style="margin-bottom: 20px">
+              <Regular :TargetoptionList="testuserList" />
+            </el-card>
             <el-row :gutter="20">
               <el-col :span="12">
                 <el-form-item label="娴嬭瘯杈撳叆" prop="nickName">
@@ -682,6 +680,7 @@
 } from "@/api/AiCentre/index";
 import { getToken } from "@/utils/auth";
 import Treeselect from "@riophae/vue-treeselect";
+import Regular from "@/components/Regular"; //姝e垯缁勪欢
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import { listtag } from "@/api/system/label";
 import store from "@/store";
@@ -689,7 +688,7 @@
 export default {
   name: "questionnaire",
   dicts: ["sys_normal_disable", "sys_user_sex"],
-  components: { Treeselect },
+  components: { Treeselect, Regular },
   data() {
     return {
       topactiveName: "Local", //椤堕儴閫夋嫨
@@ -827,7 +826,7 @@
     // 鐤剧梾-----------------------
     illnessUpdate(row) {
       this.illnessVisible = true;
-      this.indexid = row.targetid;
+      this.indexid = row.id;
       this.illnesslistapi = [];
       const illnessqueryParams = {
         pageNum: 1,
@@ -837,7 +836,7 @@
         console.log(response);
         this.optionsillness = response.rows;
       });
-      getillness({ outid: row.targetid, type: 1 }).then((res) => {
+      getillness({ outid: row.id, type: 1 }).then((res) => {
         this.illnesslist = res.rows;
         console.log(res);
       });
@@ -949,7 +948,7 @@
     addoption() {
       const objvakue = {
         guid: 1,
-        targetid: this.indexform.targetid,
+        id: this.indexform.id,
         targettype: this.indexform.targettype,
         targetvalue: "璐",
         targetregex: "(?!涓�.*|娌�.*|鏈�.*)^.*([璐钩鍑]|璐|璇勫|璇勫),10",
@@ -989,7 +988,7 @@
           targetvalue: item.targetvalue,
           targetregex: item.targetregex,
           targetoptionid: item.targetoptionid,
-          targetid: this.indexform.targetid,
+          id: this.indexform.id,
           targettype: this.indexform.targettype,
           isoperation: item.targetoptionid ? 2 : 1,
           categoryName: item.categoryName,
@@ -1036,6 +1035,8 @@
       addtreeselectIvrLibaTargetAssort(this.classifyform).then((res) => {
         this.getDeptTree();
         this.$modal.msgSuccess("鏂板鎴愬姛");
+        this.classifyform = {};
+        this.dialogFormVisible = false;
       });
     },
     remove(a, b) {
@@ -1082,7 +1083,7 @@
     reset() {
       this.indexform = {
         suitWay: undefined,
-        targetid: undefined,
+        id: undefined,
         targetdesc: undefined,
         baseTagList: [],
         targetoptionList: [],
@@ -1104,7 +1105,7 @@
     },
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
-      this.ids = selection.map((item) => item.targetid);
+      this.ids = selection.map((item) => item.id);
       this.single = selection.length != 1;
       this.multiple = !selection.length;
     },
@@ -1161,7 +1162,7 @@
           this.targetoptionList
         );
         if (valid) {
-          if (this.indexform.targetid != undefined) {
+          if (this.indexform.id != undefined) {
             this.indexform.isoperation = 2;
             gettargetInfoedit(this.indexform).then((response) => {
               this.$modal.msgSuccess("淇敼鎴愬姛");
@@ -1182,7 +1183,7 @@
     },
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete(row) {
-      const userIds = row.targetid || this.ids;
+      const userIds = row.id || this.ids;
       this.$modal
         .confirm('鏄惁纭鍒犻櫎鎸囨爣鍚嶇О涓�"' + row.targetname + '"鐨勬暟鎹」锛�')
         .then(function () {
diff --git a/src/views/repositoryai/templateku/configurat/index.vue b/src/views/repositoryai/templateku/configurat/index.vue
index b818ccc..1178af9 100644
--- a/src/views/repositoryai/templateku/configurat/index.vue
+++ b/src/views/repositoryai/templateku/configurat/index.vue
@@ -115,20 +115,27 @@
             ></el-col>
             <el-col :span="12">
               <el-form-item label="鎾姤浼樺厛" prop="playType">
-                <el-radio-group v-model="ruleForm.playType">
-                  <el-radio
+                <el-select
+                  v-model="ruleForm.playType"
+                  size="medium"
+                  filterable
+                  placeholder="璇烽�夋嫨璇█"
+                >
+                  <el-option
+                    class="ruleFormaa"
                     v-for="item in precedencetype"
-                    :label="item.value"
-                    >{{ item.label }}</el-radio
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
                   >
-                </el-radio-group>
-              </el-form-item></el-col
-            >
+                  </el-option>
+                </el-select> </el-form-item
+            ></el-col>
           </el-row>
           <el-form-item label="闅忚鏂瑰紡" prop="region">
             <el-select
               style="width: 500px"
-              v-model="ruleForm.way"
+              v-model="ruleForm.suitway"
               size="medium"
               multiple
               filterable
@@ -229,7 +236,7 @@
           </el-form-item>
           <el-form-item label="閫傜敤闄㈠尯" prop="region">
             <el-select
-              v-model="campusvalue"
+              v-model="ruleForm.campus"
               size="medium"
               multiple
               filterable
@@ -246,28 +253,23 @@
             </el-select>
           </el-form-item>
           <el-form-item label="閫傜敤绉戝" prop="region">
-            <el-select
-              style="width: 500px"
-              v-model="deptNamesvalue"
-              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 administrativelist"
-                :key="item.label"
-                :label="item.label"
-                :value="item.label"
-              >
-              </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 label="閫氱敤搴�" prop="region">
             <el-select
               style="width: 500px"
-              v-model="ruleForm.waya"
+              v-model="ruleForm.submoduleID"
               size="medium"
               multiple
               filterable
@@ -341,7 +343,7 @@
               >涓嬩竴姝�</el-button
             >
             <el-button type="info" @click="closeFm('ruleForm')">鍏抽棴</el-button>
-            <el-button @click="submitForm('ruleForm')"
+            <el-button @click="Departmenttreatment('ruleForm')"
               >淇濆瓨闅忚妯$増鍩虹淇℃伅</el-button
             >
           </el-form-item>
@@ -356,32 +358,35 @@
             type="primary"
             icon="el-icon-plus"
             round
-            @click="drawer = true"
+            @click="getaddtopiclist"
             >娣诲姞棰樼洰</el-button
           >
         </div>
         <div class="presentation">
           <div class="presentation-left">
             <el-card class="box-card" style="min-height: 688px">
-              <el-table v-loading="loading" :data="userList">
+              <el-table
+                v-loading="loading"
+                :data="ruleForm.ivrLibaTemplateScriptVOList"
+              >
                 <el-table-column
                   label="缂栧彿"
                   align="center"
-                  key="userid"
-                  prop="userid"
+                  key="id"
+                  prop="id"
                 />
                 <el-table-column
                   label="鏍囬"
                   align="center"
-                  key="userName"
-                  prop="userName"
+                  key="questiontitle"
+                  prop="questiontitle"
                   :show-overflow-tooltip="true"
                 />
                 <el-table-column
                   label="闂璇濇湳"
                   align="center"
-                  key="verbaltrick"
-                  prop="verbaltrick"
+                  key="questionText"
+                  prop="questionText"
                   :show-overflow-tooltip="true"
                 />
 
@@ -402,7 +407,7 @@
                       type="danger"
                       icon="el-icon-delete"
                       circle
-                      @click="deloption(scope.row)"
+                      @click="handleDelete(scope.row)"
                     ></el-button>
                     <el-button
                       @click="syioption(scope.row)"
@@ -420,14 +425,6 @@
                 </el-table-column>
               </el-table>
             </el-card>
-
-            <pagination
-              v-show="total > 0"
-              :total="total"
-              :page.sync="queryParams.pageNum"
-              :limit.sync="queryParams.pageSize"
-              @pagination="getList"
-            />
           </div>
           <div class="presentation-right">
             <el-card class="box-card">
@@ -446,24 +443,40 @@
                 </div>
                 <el-form-item label="棰樼洰鏍囬">
                   <el-input
-                    v-model="topicobj.title"
+                    v-model="topicobj.questiontitle"
                     placeholder="璇疯緭鍏ユ爣棰�"
                   ></el-input>
                 </el-form-item>
                 <el-row :gutter="10">
                   <el-col :span="12"
-                    ><el-form-item label="鏄惁蹇呯瓟">
-                      <el-radio-group v-model="topicobj.resource">
-                        <el-radio label="鏄�"></el-radio>
-                        <el-radio label="鍚�"></el-radio>
-                      </el-radio-group> </el-form-item
+                    ><el-form-item label="鏄惁蹇呭~">
+                      <el-select
+                        v-model="topicobj.ismandatory"
+                        placeholder="璇烽�夋嫨"
+                      >
+                        <el-option
+                          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="12"
-                    ><el-form-item label="鏄惁闅愯棌">
-                      <el-radio-group v-model="topicobj.resourcea">
-                        <el-radio label="鏄�"></el-radio>
-                        <el-radio label="鍚�"></el-radio>
-                      </el-radio-group> </el-form-item
+                    ><el-form-item label="鏄惁鍙敤">
+                      <el-select
+                        v-model="topicobj.isavailable"
+                        placeholder="璇烽�夋嫨"
+                      >
+                        <el-option
+                          v-for="item in usable"
+                          :key="item.value"
+                          :label="item.label"
+                          :value="item.value"
+                        >
+                        </el-option>
+                      </el-select> </el-form-item
                   ></el-col>
                 </el-row>
                 <div class="headline">
@@ -477,14 +490,17 @@
                     >
                   </div>
                 </div>
-                <div class="topicxq" v-for="item in 2">
+                <div
+                  class="topicxq"
+                  v-for="item in topicobj.ivrLibaScriptTargetoptionList"
+                >
                   <el-row :gutter="10">
                     <el-col :span="12"
                       ><el-form-item label="閫夐」鍚�">
                         <el-input
                           type="text"
                           placeholder="璇疯緭鍏�"
-                          v-model="queryParams.text"
+                          v-model="item.targetvalue"
                           show-word-limit
                         >
                         </el-input> </el-form-item
@@ -494,7 +510,7 @@
                         <el-input
                           type="text"
                           placeholder="璇疯緭鍏ヨ妭鐐�"
-                          v-model="queryParams.text"
+                          v-model="item.targetid"
                           show-word-limit
                         >
                         </el-input> </el-form-item
@@ -506,18 +522,18 @@
                         <el-input
                           type="text"
                           placeholder="(榛樿)鏃犲0"
-                          v-model="queryParams.text"
+                          v-model="item.text"
                           maxlength="10"
                           show-word-limit
                         >
                         </el-input> </el-form-item
                     ></el-col>
                     <el-col :span="12"
-                      ><el-form-item label="閫変腑璺宠浆">
+                      ><el-form-item label="閫変腑璺宠浆(缂�)">
                         <el-input
                           type="text"
                           placeholder="璇疯緭鍏ラ鐩妭鐐�"
-                          v-model="queryParams.text"
+                          v-model="item.jump"
                           show-word-limit
                         >
                         </el-input> </el-form-item
@@ -528,7 +544,7 @@
                       style="width: 24vw"
                       type="textarea"
                       placeholder="璇疯緭鍏ラ鍙�"
-                      v-model="queryParams.text"
+                      v-model="item.targetregex"
                       show-word-limit
                     >
                     </el-input>
@@ -569,7 +585,9 @@
         >
         <el-button type="primary" @click="laststep()">涓婁竴姝�</el-button>
         <el-button type="info" @click="closeFm('ruleForm')">鍏抽棴</el-button>
-        <el-button @click="Saveproblem('ruleForm')">淇濆瓨棰樼洰鏁版嵁</el-button>
+        <el-button @click="Departmenttreatment('ruleForm')"
+          >淇濆瓨棰樼洰鏁版嵁</el-button
+        >
       </div>
       <!-- 闅忚妯$増棰勮 -->
       <div v-if="Editprogress == 3">
@@ -642,35 +660,20 @@
         >
           <el-form-item label="鏍囬" prop="userName">
             <el-input
-              v-model="queryParams.userName"
+              v-model="queryParams.questiontitle"
               placeholder="璇疯緭鍏�"
               clearable
               style="width: 200px"
-              @keyup.enter.native="handleQuery"
+              @keyup.enter.native="getaddtopiclist"
             />
           </el-form-item>
-          <el-form-item label="涓婚" prop="sickness">
-            <el-select
-              v-model="ruleForm.classify"
-              size="medium"
-              placeholder="璇烽�夋嫨鍒嗙被"
-            >
-              <el-option
-                class="ruleFormaa"
-                v-for="item in themelist"
-                :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="getaddtopiclist"
               >鎼滅储</el-button
             >
             <el-button icon="el-icon-refresh" size="medium" @click="resetQuery"
@@ -682,15 +685,15 @@
           <el-table-column
             label="鏍囬"
             align="center"
-            key="userName"
-            prop="userName"
+            key="questiontitle"
+            prop="questiontitle"
             width="100"
           />
           <el-table-column
             label="闂璇濇湳"
             align="center"
-            key="verbaltrick"
-            prop="verbaltrick"
+            key="questionText"
+            prop="questionText"
             width="200"
             :show-overflow-tooltip="true"
           />
@@ -701,10 +704,7 @@
             class-name="small-padding fixed-width"
           >
             <template slot-scope="scope">
-              <el-button
-                size="medium"
-                type="text"
-                @click="handleUpdate(scope.row)"
+              <el-button size="medium" type="text" @click="addtopic(scope.row)"
                 ><span class="button-textxg"
                   ><i class="el-icon-circle-plus-outline"></i>娣诲姞</span
                 ></el-button
@@ -720,7 +720,7 @@
 <script>
 import { listtag } from "@/api/system/label";
 import store from "@/store";
-
+import { listDept } from "@/api/system/dept";
 import {
   getFollowupclassify,
   delFollowupclassify,
@@ -728,6 +728,8 @@
   addtargetillness,
   getvFollowup,
   compileFollowup,
+  getverbaltricklist,
+  getverbaltrick,
   delFollowupinfo,
   Followupinfo,
   getFollowuplist,
@@ -744,7 +746,6 @@
       drawer: false, //鎺у埗灞曞紑
       radios: [], //澶氶�夐閫変腑
       radioas: "", //濉┖棰樼瓟妗�
-      campusvalue: [], //闄㈠尯涓存椂瀛樺偍
       labelInfovalue: [], //鏍囩涓存椂瀛樺偍
       deptNamesvalue: [], //绉戝涓存椂瀛樺偍
       dynamicTags: [],
@@ -759,7 +760,10 @@
       optionstag: [],
       prefollowuplist: [],
       postfollowuplist: [],
-      generallist: [{ value: "1", label: "闅忚閫氱敤搴撲竴" }],
+      generallist: [
+        { value: "1", label: "闅忚閫氱敤搴撲竴" },
+        { value: "2", label: "闅忚浜屽簱" },
+      ],
 
       fileList: [
         {
@@ -776,6 +780,7 @@
       courtyardlist: [],
       precedencetype: [],
       usable: [],
+      required: [],
       mode: [],
       inputVisible: false,
       inputVisibleillness: false,
@@ -788,6 +793,14 @@
         children: "ivrLibaTemplateAssortList",
         label: "indexAssortName",
       },
+      tempDetpRelevanceslist: [],
+      variablelist: [
+        { variatename: "濮撳悕", variate: "${name}", default: 1 },
+        { variatename: "鐢佃瘽", variate: "${phone}", default: 1 },
+        { variatename: "鐥呮儏", variate: "${illness}", default: 1 },
+      ],
+      deptList: [],
+      props: { multiple: true, value: "deptId", label: "deptName" },
 
       variablelist: [
         {
@@ -846,6 +859,7 @@
     this.auxiliary();
     this.mode = store.getters.mode;
     this.usable = store.getters.usable;
+    this.required = store.getters.required;
     this.languagelist = store.getters.languagelist;
     this.courtyardlist = store.getters.courtyardlist;
     this.precedencetype = store.getters.precedencetype;
@@ -855,12 +869,24 @@
     getIndexInArray(arr, obj) {
       return arr.indexOf(obj);
     },
+    processElement(element) {
+      return { ...element, isoperation: 0 };
+    },
     // 鑾峰彇琛ㄥ崟鏁版嵁
     getvFollowup() {
       this.id = this.$route.query.id;
 
       getvFollowup({ id: this.id }).then((res) => {
         this.ruleForm = res.data;
+        this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames);
+        this.ruleForm.suitway = this.ruleForm.suitway.split(",");
+        this.ruleForm.campus = this.ruleForm.campus.split(",");
+        this.ruleForm.submoduleID = this.ruleForm.submoduleID.split(",");
+        this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList;
+        this.dynamicTags = this.ruleForm.ivrLibaTemplateTagList.map(
+          this.processElement
+        );
+        console.log(this.ruleForm.suitway);
       });
       getillnesslist({
         pageNum: 1,
@@ -870,6 +896,9 @@
       });
       getillness({ outid: this.id, type: 3 }).then((res) => {
         this.illnesslist = res.rows;
+      });
+      listDept(this.queryParams).then((response) => {
+        this.deptList = this.handleTree(response.data, "deptId");
       });
     },
     // 闄勫睘鏁版嵁琛�
@@ -884,22 +913,60 @@
       if (this.ruleForm.id) {
         this.ruleForm.isoperation = 2;
       } else {
-        this.ruleForm.isoperation = 2;
+        this.ruleForm.isoperation = 1;
       }
-      this.ruleForm.campus = JSON.stringify(this.illnesslist);
-      this.ruleForm.deptNames = this.deptNamesvalue.join(",");
       this.ruleForm.labelInfo = JSON.stringify(this.dynamicTags);
+      this.ruleForm.suitway = this.ruleForm.suitway.join(",");
+      this.ruleForm.campus = this.ruleForm.campus.join(",");
+      this.ruleForm.submoduleID = this.ruleForm.submoduleID.join(",");
+
       //   鎻愪氦
-      this.$refs[formName].validate((valid) => {
-        if (valid) {
-          compileFollowup(this.ruleForm).then((res) => {
-            this.$modal.msgSuccess("淇敼鎴愬姛");
-          });
-        } else {
-          console.log("error submit!!");
-          return false;
+
+      compileFollowup(this.ruleForm).then((res) => {
+        this.$modal.msgSuccess("缂栬緫鎴愬姛");
+      });
+      this.illnesslist.forEach((item, index) => {
+        if (!item.id) {
+          addtargetillness(item).then((res) => {});
         }
       });
+      if (this.illnesslistapi.length) {
+        deltargetillness(this.illnesslistapi.join(",")).then((res) => {});
+      }
+    },
+    // 绉戝澶勭悊
+    Departmenttreatment() {
+      this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist);
+      console.log(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]);
+          });
+        }
+      });
+      console.log(this.ruleForm.tempDetpRelevances);
+      // 鏁扮粍瀵硅薄鏌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;
+        }
+      });
+      console.log(this.ruleForm.tempDetpRelevances);
+      setTimeout(() => {
+        this.submitForm();
+      }, 1000);
+      // this.submitForm();
     },
     // 涓嬩竴姝�
     nextstep() {
@@ -928,8 +995,7 @@
           });
         });
     },
-    // 淇濆瓨棰樼洰淇℃伅
-    Saveproblem() {},
+
     /** 鏌ヨ棰樼洰鍒楄〃 */
     getList() {
       //   this.loading = true;
@@ -976,7 +1042,7 @@
       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.ivrLibaTemplateTagList[lindex].isoperation = 3;
     },
     handleInputConfirm() {
       let tagvalue = {};
@@ -997,7 +1063,7 @@
               isoperation: 1,
             };
           }
-          this.ruleForm.ivrLibaTemplateTargetList.push(tagvalue);
+          this.ruleForm.ivrLibaTemplateTagList.push(tagvalue);
           this.dynamicTags.push(tagvalue);
         });
       }
@@ -1020,10 +1086,39 @@
     showInput() {
       this.inputVisible = true;
     },
-    //娴嬭瘯琛ㄥ崟 ---------------------------------
+    //璇濇湳棰樼洰----------------
     addzbiao() {},
-    handleUpdate() {},
-    deloption(item) {
+    resetQuery() {
+      this.queryParams = { pageNum: 1, pageSize: 10 };
+      this.getaddtopiclist();
+    },
+    getaddtopiclist() {
+      this.drawer = true;
+      getverbaltricklist(this.queryParams).then((res) => {
+        this.loading = false;
+        this.userList = res.rows;
+        this.total = res.total;
+        console.log(this.userList);
+      });
+    },
+    addtopic(row) {
+      row.isoperation = 1;
+      this.ruleForm.ivrLibaTemplateScriptVOList.push(row);
+    },
+    handleDelete(row) {
+      this.ruleForm.ivrLibaTemplateScriptVOList.splice(
+        this.ruleForm.ivrLibaTemplateScriptVOList.indexOf(row),
+        1
+      );
+    },
+    handleUpdate(row) {
+      console.log(row.id);
+      getverbaltrick({ id: row.id }).then((res) => {
+        this.topicobj = res.data;
+        console.log(res.data);
+      });
+    },
+    handleDelete(item) {
       const index = this.userList.indexOf(item);
       if (index !== -1) {
         this.userList.splice(index, 1); // 浠庣储寮曚綅缃垹闄や竴涓厓绱�
@@ -1055,9 +1150,6 @@
       console.log(this.userList);
     },
     // ---------------------
-    // 鏌ヨ棰樺簱
-    handleQuery() {},
-    resetQuery() {},
     resetForm(formName) {
       this.$refs[formName].resetFields();
     },
diff --git a/src/views/repositoryai/templateku/index.vue b/src/views/repositoryai/templateku/index.vue
index d09ab6b..cac920a 100644
--- a/src/views/repositoryai/templateku/index.vue
+++ b/src/views/repositoryai/templateku/index.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="Questionnairemanagement">
     <!-- 宸︿晶鏍� -->
-    <div class="sidecolumn" v-show="topactiveName == 'Local'">
+    <div class="sidecolumn">
       <div class="sidecolumn-top">
         <div class="top-wj">妯$増绫诲瀷</div>
         <div class="top-tj" @click="dialogFormVisible = true">+娣诲姞</div>
@@ -44,7 +44,7 @@
       </div>
     </div>
     <!-- 鍙充晶鏁版嵁 -->
-    <div :class="topactiveName == 'Local' ? 'leftvlue' : 'leftvlues'">
+    <div class="leftvlue">
       <div class="leftvlue-bg">
         <el-row :gutter="20">
           <!--鐢ㄦ埛鏁版嵁-->
@@ -66,16 +66,21 @@
                   @keyup.enter.native="handleQuery"
                 />
               </el-form-item>
-              <el-form-item label="閫傜敤绉戝" prop="status">
-                <el-select v-model="queryParams.status" placeholder="璇烽�夋嫨">
-                  <el-option
-                    v-for="item in languagelist"
-                    :key="item.value"
-                    :label="item.label"
-                    :value="item.value"
-                  >
-                  </el-option>
-                </el-select>
+              <el-form-item label="閫傜敤绉戝" prop="region">
+                <el-cascader
+                  v-model="queryParams.administrative"
+                  :options="deptList"
+                  :props="props"
+                  :show-all-levels="false"
+                  clearable
+                >
+                  <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 label="鍙敤鐘舵��" prop="status">
                 <el-select v-model="queryParams.status" placeholder="璇烽�夋嫨">
@@ -157,7 +162,6 @@
             </el-row>
             <!-- 鏍囧噯妯$増 -->
             <el-table
-              v-if="topactiveName == 'Local'"
               v-loading="loading"
               :data="userList"
               :border="true"
@@ -202,22 +206,6 @@
               </el-table-column>
 
               <el-table-column
-                label="閫傜敤绉戝"
-                align="center"
-                key="deptNames"
-                prop="deptNames"
-                width="120"
-              >
-                <template slot-scope="scope">
-                  <div v-if="scope.row.deptNames">
-                    <span v-for="item in scope.row.deptNames.split(',')"
-                      >{{ item }}
-                    </span>
-                  </div>
-                  <div v-else>''</div>
-                </template>
-              </el-table-column>
-              <el-table-column
                 label="鏍囩"
                 align="center"
                 key="labelInfo"
@@ -246,8 +234,8 @@
               >
                 <template slot-scope="scope">
                   <div v-if="scope.row.campus">
-                    <span v-for="item in JSON.parse(scope.row.campus)"
-                      >{{ item.label }}
+                    <span v-for="item in scope.row.campus.split(',')"
+                      >{{ item }}銆�
                     </span>
                   </div>
                   <div v-else>
@@ -435,12 +423,14 @@
   getvFollowup,
   compileFollowup,
   delFollowupinfo,
+  getverbaltricklist,
   Followupinfo,
   getFollowuplist,
   getillnesslist,
   illnesslistget,
   getillness,
 } from "@/api/AiCentre/index";
+import { listDept } from "@/api/system/dept";
 export default {
   name: "templateku",
   data() {
@@ -512,6 +502,8 @@
         children: "ivrLibaTemplateAssortList",
         label: "indexAssortName",
       },
+      deptList: [],
+      props: { multiple: true, value: "deptId", label: "deptName" },
       mode: [],
       languagelist: [],
       qyoptions: [],
@@ -540,6 +532,11 @@
         console.log(this.userList);
         this.userList = res.rows;
         this.total = res.total;
+
+        console.log(this.userList[0].campus.split(","));
+      });
+      listDept(this.queryParams).then((response) => {
+        this.deptList = this.handleTree(response.data, "deptId");
       });
     },
 
@@ -657,6 +654,8 @@
       addFollowupclassify(this.classifyform).then((res) => {
         this.getDeptTree();
         this.$modal.msgSuccess("鏂板鎴愬姛");
+        this.classifyform = {};
+        this.dialogFormVisible = false;
       });
     },
     remove(a, b) {
diff --git a/src/views/repositoryai/verbaltrick/index.vue b/src/views/repositoryai/verbaltrick/index.vue
index e0fedf6..e154f6d 100644
--- a/src/views/repositoryai/verbaltrick/index.vue
+++ b/src/views/repositoryai/verbaltrick/index.vue
@@ -68,7 +68,7 @@
                   </el-option>
                 </el-select>
               </el-form-item>
-              <el-form-item label="闂涓婚" prop="userName">
+              <el-form-item label="闂鏍囬" prop="userName">
                 <el-input
                   v-model="queryParams.userName"
                   placeholder="璇疯緭鍏�"
@@ -87,9 +87,9 @@
                 />
               </el-form-item>
               <el-form-item label="閫傜敤鏂瑰紡" prop="status">
-                <el-select v-model="queryParams.applyway" placeholder="璇烽�夋嫨">
+                <el-select v-model="queryParams.suitway" placeholder="璇烽�夋嫨">
                   <el-option
-                    v-for="item in languagelist"
+                    v-for="item in mode"
                     :key="item.value"
                     :label="item.label"
                     :value="item.value"
@@ -204,12 +204,12 @@
               /><el-table-column
                 label="閫傜敤鏂瑰紡"
                 align="center"
-                key="application"
-                prop="application"
+                key="suitway"
+                prop="suitway"
                 width="120"
               >
                 <template slot-scope="scope">
-                  <dict-tag :options="mode" :value="scope.row.suitWay" />
+                  <dict-tag :options="mode" :value="scope.row.suitway" />
                 </template>
               </el-table-column>
               <el-table-column
@@ -523,7 +523,7 @@
       getverbaltricklist(this.queryParams).then((res) => {
         this.userList = res.rows;
         this.loading = false;
-        this.total=res.total
+        this.total = res.total;
       });
     },
 
@@ -615,6 +615,8 @@
       addbaltrickclassify(this.classifyform).then((res) => {
         this.getDeptTree();
         this.$modal.msgSuccess("鏂板鎴愬姛");
+        this.classifyform = {};
+        this.dialogFormVisible = false;
       });
     },
     remove(a, b) {
diff --git a/src/views/repositoryai/verbaltrick/particulars/index.vue b/src/views/repositoryai/verbaltrick/particulars/index.vue
index 0d3bd1b..b0a4102 100644
--- a/src/views/repositoryai/verbaltrick/particulars/index.vue
+++ b/src/views/repositoryai/verbaltrick/particulars/index.vue
@@ -44,7 +44,7 @@
                   placeholder="璇烽�夋嫨鐘舵��"
                 >
                   <el-option
-                    v-for="item in qyoptions"
+                    v-for="item in usable"
                     :key="item.value"
                     :label="item.label"
                     :value="item.value"
@@ -136,49 +136,51 @@
             </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.name"
-                  placeholder="璇疯緭鍏ュ彉閲忓悕"
-                ></el-input>
-              </el-col>
-              <el-col :span="8" :offset="1">
-                <el-input
-                  v-model="item.value"
-                  placeholder="璇疯緭鍏ュ彉閲忓唴瀹�"
-                ></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
-                  v-if="item"
-                  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-row>
-            <el-col :span="12">
+            <el-col :span="6">
               <el-form-item label="浠呴檺闄㈠尯" prop="region">
                 <el-select
-                  v-model="indexform.courtyard"
+                  v-model="indexform.campus"
                   size="medium"
                   filterable
                   placeholder="璇烽�夋嫨"
                 >
                   <el-option
                     class="indexformaa"
-                    v-for="item in options"
+                    v-for="item in courtyardlist"
                     :key="item.value"
                     :label="item.label"
                     :value="item.value"
@@ -187,7 +189,24 @@
                 </el-select>
               </el-form-item>
             </el-col>
-            <el-col :span="12">
+            <el-col :span="6">
+              <el-form-item label="閫傜敤鏂瑰紡" prop="status">
+                <el-select
+                  v-model="indexform.suitway"
+                  multiple
+                  placeholder="璇烽�夋嫨"
+                >
+                  <el-option
+                    v-for="item in mode"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
               <el-form-item label="鍏宠仈鎸囨爣" prop="region">
                 <el-select
                   v-model="indexform.targetid"
@@ -196,13 +215,14 @@
                   reserve-keyword
                   placeholder="璇疯緭鍏ュ叧閿瘝"
                   :remote-method="remoteMethod"
+                  @change="targetchange"
                   :loading="loading"
                 >
                   <el-option
                     v-for="item in targetlist"
-                    :key="item.targetid"
+                    :key="item.id"
                     :label="item.targetname"
-                    :value="item.targetid"
+                    :value="item.id"
                   >
                   </el-option>
                 </el-select>
@@ -219,7 +239,7 @@
                   class="tsgname"
                   @click="tsgnameto(item)"
                 >
-                  {{ item.name }}
+                  {{ item.variatename }}
                 </div>
               </div>
             </el-col></el-row
@@ -377,8 +397,9 @@
           >
         </el-form>
         <div slot="footer" class="dialog-footer">
-          <el-button type="primary" @click="nextstep">纭� 瀹�</el-button>
+          <el-button type="primary" @click="nextstep">涓嬩竴姝�</el-button>
           <el-button @click="closeFm">鍏� 闂�</el-button>
+          <el-button @click="Saveproblem()">淇濆瓨鏁版嵁</el-button>
         </div>
       </div>
       <!-- 鎸囨爣璁剧疆 -->
@@ -518,7 +539,7 @@
         </div>
         <el-button type="primary" @click="laststep()">涓婁竴姝�</el-button>
         <el-button type="info" @click="closeFm()">鍏抽棴</el-button>
-        <el-button @click="Saveproblem()">淇濆瓨鎸囨爣鏁版嵁</el-button>
+        <el-button @click="Saveproblem()">淇濆瓨鏁版嵁</el-button>
       </div>
     </div>
   </div>
@@ -556,7 +577,7 @@
       mode: [],
       questionclass: [],
       currentInputId: "",
-
+      courtyardlist: [],
       // 鎬绘潯鏁�
       total: 1,
 
@@ -576,9 +597,13 @@
           url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100",
         },
       ],
-      qyoptions: [],
+      usable: [],
       options: [],
-      variablelist: [],
+      variablelist: [
+        { variatename: "濮撳悕", variate: "${name}", default: 1 },
+        { variatename: "鐢佃瘽", variate: "${phone}", default: 1 },
+        { variatename: "鐥呮儏", variate: "${illness}", default: 1 },
+      ],
 
       addvalue: "娣诲姞棰樼洰",
       languagelist: [], //璇█鍒楄〃
@@ -601,7 +626,8 @@
     this.mode = store.getters.mode;
     this.valuetype = store.getters.valuetype;
     this.languagelist = store.getters.languagelist;
-    this.qyoptions = store.getters.usable;
+    this.usable = store.getters.usable;
+    this.courtyardlist = store.getters.courtyardlist;
   },
 
   methods: {
@@ -610,20 +636,20 @@
       let id = this.$route.query.id;
       getverbaltrick({ id: id }).then((res) => {
         this.indexform = res.data;
+        this.indexform.suitway = this.indexform.suitway.split(",");
         this.indexform.assortid = parseInt(this.indexform.assortid);
-        this.variablelist = JSON.parse(this.indexform.parameter)
-          ? JSON.parse(this.indexform.parameter)
-          : [{ name: "", value: "" }];
+        this.variablelist = JSON.parse(this.indexform.otherdata).length
+          ? JSON.parse(this.indexform.otherdata)
+          : this.variablelist;
         this.dynamicTags = this.indexform.ivrLibaScriptTagList.map(
           this.processElement
         );
         this.targetlist = [
           {
-            targetid: this.indexform.targetid,
+            id: this.indexform.targetid,
             targetname: this.indexform.targetname,
           },
         ];
-        console.log(this.targetlist);
       });
       // 鏍�
       getbaltrickclassify({}).then((res) => {
@@ -634,12 +660,20 @@
 
     // 淇濆瓨璇︾粏淇℃伅
     Saveproblem() {
+      console.log(this.variablelist);
+      this.indexform.otherdata = JSON.stringify(this.variablelist);
+      this.indexform.suitway = this.indexform.suitway.join(",");
       if (this.indexform.id) {
         this.indexform.isoperation = 2;
-        this.indexform.parameter = JSON.stringify(this.variablelist);
         compileverbaltrick(this.indexform).then((res) => {
           if (res.code == 200) {
             this.$modal.msgSuccess("淇敼鎴愬姛");
+            this.$router.go(-1);
+          } else {
+            this.$message({
+              message: "淇敼澶辫触",
+              type: "error",
+            });
           }
         });
       } else {
@@ -647,6 +681,12 @@
         compileverbaltrick(this.indexform).then((res) => {
           if (res.code == 200) {
             this.$modal.msgSuccess("鏂板鎴愬姛");
+            this.$router.go(-1);
+          } else {
+            this.$message({
+              message: "鏂板澶辫触",
+              type: "error",
+            });
           }
         });
       }
@@ -664,6 +704,24 @@
         this.targetlist = [];
       }
     },
+    targetchange(res) {
+      console.log(res);
+      gettargetInfo({ id: res }).then((res) => {
+        this.indexform.targetname = res.rows[0].targetname;
+        this.$modal
+          .confirm('鏄惁娣诲姞"' + this.indexform.targetname + '"鎸囨爣鐨勯�夐」锛�')
+          .then(() => {
+            this.indexform.isenable = res.rows[0].isenable;
+            res.rows[0].targetoptionList.forEach((item) => {
+              item.isoperation = 1;
+              this.indexform.ivrLibaScriptTargetoptionList.push(item);
+            });
+          })
+          .catch(() => {
+            this.$modal.msgSuccess("宸插彇娑�");
+          });
+      });
+    },
 
     // 涓嬩竴姝�
     nextstep() {
@@ -671,14 +729,7 @@
         if (this.indexform.ivrLibaScriptTargetoptionList.length) {
           return this.Editprogress++;
         }
-        gettargetInfo({ targetid: this.indexform.targetid }).then((res) => {
-          this.indexform.isenable = res.rows[0].isenable;
-          this.indexform.targetname = res.rows[0].targetname;
-          res.rows[0].targetoptionList.forEach((item) => {
-            item.isoperation = 1;
-            this.indexform.ivrLibaScriptTargetoptionList.push(item);
-          });
-        });
+
         return this.Editprogress++;
       } else {
         this.$message.warning("璇峰厛閫夋嫨鍏宠仈鎸囨爣");
@@ -779,7 +830,6 @@
     showInput() {
       this.inputVisible = true;
     },
-    // --------------------------
     //娴嬭瘯琛ㄥ崟 --------------------------
     gettagerlist() {
       gettagerlist({ targetname: this.targetname }).then((response) => {
@@ -796,7 +846,7 @@
       });
       this.sortFn();
     },
-    deloption() {
+    deloption(item) {
       const index = this.indexform.ivrLibaScriptTargetoptionList.indexOf(item);
       if (index !== -1) {
         this.indexform.ivrLibaScriptTargetoptionList.splice(index, 1); // 浠庣储寮曚綅缃垹闄や竴涓厓绱�
@@ -870,7 +920,7 @@
       // 鎷垮埌閫変腑鏂囧瓧鐨勯暱搴︼紙鍚庣画鍙互鐢ㄦ潵鏇挎崲閫変腑鐨勬枃瀛楋級
       let selectLength = el.selectionEnd - el.selectionStart;
       // 灏嗚鎻掑叆/鏇挎崲鐨勬枃瀛楁彃鍏�/鏇挎崲锛坴alue.name鏄鎻掑叆/鏇挎崲鐨勫瓧绗︿覆锛�
-      inputValueArr.splice(el.selectionStart, selectLength, `${row.value}`);
+      inputValueArr.splice(el.selectionStart, selectLength, `${row.variate}`);
       // 鎶婃暟缁勯噸鏂拌浆鎹负瀛楃涓插苟璧嬪��
       inputValueArr = inputValueArr.join("");
       console.log(inputValueArr);
@@ -892,8 +942,8 @@
     // 鏂板鍙橀噺
     addvariable() {
       this.variablelist.push({
-        variable: "",
-        value: "",
+        variatename: "",
+        variate: "",
       });
     },
     // 鍒犻櫎鍙橀噺
diff --git a/src/views/shortmessage/healthinformation/index.vue b/src/views/shortmessage/healthinformation/index.vue
index 1b19a82..138c50c 100644
--- a/src/views/shortmessage/healthinformation/index.vue
+++ b/src/views/shortmessage/healthinformation/index.vue
@@ -65,19 +65,21 @@
               v-show="showSearch"
               label-width="98px"
             >
-              <el-form-item label="閫傜敤绉戝" prop="userName">
-                <el-select
+              <el-form-item label="閫傜敤绉戝" prop="region">
+                <el-cascader
                   v-model="queryParams.administrative"
-                  placeholder="璇烽�夋嫨"
+                  :options="deptList"
+                  :props="props"
+                  :show-all-levels="false"
+                  clearable
                 >
-                  <el-option
-                    v-for="item in optionks"
-                    :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 label="閫氱煡鏍囬" prop="userName">
                 <el-input
@@ -420,19 +422,21 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="閫傜敤绉戝" prop="userName">
-              <el-select
-                v-model="indexform.useofstateks"
-                multiple
-                placeholder="璇烽�夋嫨(澶氶��)"
+            <el-form-item label="閫傜敤绉戝" prop="region">
+              <el-cascader
+                v-model="indexform.administrative"
+                :options="deptList"
+                :props="props"
+                :show-all-levels="false"
+                clearable
               >
-                <el-option
-                  v-for="index in optionks"
-                  :key="index.value"
-                  :label="index.label"
-                  :value="index.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-col>
         </el-row>
@@ -512,6 +516,7 @@
   addUser,
   updateUser,
 } from "@/api/system/user";
+import { listDept } from "@/api/system/dept";
 import { getToken } from "@/utils/auth";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
@@ -741,6 +746,8 @@
           },
         ],
       },
+      deptList: [],
+      props: { multiple: true, value: "deptId", label: "deptName" },
     };
   },
   watch: {},
@@ -767,6 +774,9 @@
       //   const { rows } = await listUser();
       //   console.log(rows);
       //   this.list = rows;
+      listDept(this.queryParams).then((response) => {
+        this.deptList = this.handleTree(response.data, "deptId");
+      });
     },
     // 娣诲姞銆佷慨鏀圭被鍒�
     submitsidecolumn() {
diff --git a/src/views/system/dept/index.vue b/src/views/system/dept/index.vue
index e502b4e..841e3c4 100644
--- a/src/views/system/dept/index.vue
+++ b/src/views/system/dept/index.vue
@@ -1,6 +1,12 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      size="small"
+      :inline="true"
+      v-show="showSearch"
+    >
       <el-form-item label="閮ㄩ棬鍚嶇О" prop="deptName">
         <el-input
           v-model="queryParams.deptName"
@@ -10,7 +16,11 @@
         />
       </el-form-item>
       <el-form-item label="鐘舵��" prop="status">
-        <el-select v-model="queryParams.status" placeholder="閮ㄩ棬鐘舵��" clearable>
+        <el-select
+          v-model="queryParams.status"
+          placeholder="閮ㄩ棬鐘舵��"
+          clearable
+        >
           <el-option
             v-for="dict in dict.type.sys_normal_disable"
             :key="dict.value"
@@ -20,8 +30,16 @@
         </el-select>
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >鎼滅储</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >閲嶇疆</el-button
+        >
       </el-form-item>
     </el-form>
 
@@ -34,7 +52,8 @@
           size="mini"
           @click="handleAdd"
           v-hasPermi="['system:dept:add']"
-        >鏂板</el-button>
+          >鏂板</el-button
+        >
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -43,9 +62,13 @@
           icon="el-icon-sort"
           size="mini"
           @click="toggleExpandAll"
-        >灞曞紑/鎶樺彔</el-button>
+          >灞曞紑/鎶樺彔</el-button
+        >
       </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+      <right-toolbar
+        :showSearch.sync="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
     </el-row>
 
     <el-table
@@ -54,21 +77,41 @@
       :data="deptList"
       row-key="deptId"
       :default-expand-all="isExpandAll"
-      :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
+      :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
     >
-      <el-table-column prop="deptName" label="閮ㄩ棬鍚嶇О" width="260"></el-table-column>
-      <el-table-column prop="orderNum" label="鎺掑簭" width="200"></el-table-column>
+      <el-table-column
+        prop="deptName"
+        label="閮ㄩ棬鍚嶇О"
+        width="260"
+      ></el-table-column>
+      <el-table-column
+        prop="orderNum"
+        label="鎺掑簭"
+        width="200"
+      ></el-table-column>
       <el-table-column prop="status" label="鐘舵��" width="100">
         <template slot-scope="scope">
-          <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
+          <dict-tag
+            :options="dict.type.sys_normal_disable"
+            :value="scope.row.status"
+          />
         </template>
       </el-table-column>
-      <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" width="200">
+      <el-table-column
+        label="鍒涘缓鏃堕棿"
+        align="center"
+        prop="createTime"
+        width="200"
+      >
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.createTime) }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+      <el-table-column
+        label="鎿嶄綔"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -76,14 +119,16 @@
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
             v-hasPermi="['system:dept:edit']"
-          >淇敼</el-button>
+            >淇敼</el-button
+          >
           <el-button
             size="mini"
             type="text"
             icon="el-icon-plus"
             @click="handleAdd(scope.row)"
             v-hasPermi="['system:dept:add']"
-          >鏂板</el-button>
+            >鏂板</el-button
+          >
           <el-button
             v-if="scope.row.parentId != 0"
             size="mini"
@@ -91,7 +136,8 @@
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
             v-hasPermi="['system:dept:remove']"
-          >鍒犻櫎</el-button>
+            >鍒犻櫎</el-button
+          >
         </template>
       </el-table-column>
     </el-table>
@@ -102,7 +148,12 @@
         <el-row>
           <el-col :span="24" v-if="form.parentId !== 0">
             <el-form-item label="涓婄骇閮ㄩ棬" prop="parentId">
-              <treeselect v-model="form.parentId" :options="deptOptions" :normalizer="normalizer" placeholder="閫夋嫨涓婄骇閮ㄩ棬" />
+              <treeselect
+                v-model="form.parentId"
+                :options="deptOptions"
+                :normalizer="normalizer"
+                placeholder="閫夋嫨涓婄骇閮ㄩ棬"
+              />
             </el-form-item>
           </el-col>
         </el-row>
@@ -114,26 +165,42 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="鏄剧ず鎺掑簭" prop="orderNum">
-              <el-input-number v-model="form.orderNum" controls-position="right" :min="0" />
+              <el-input-number
+                v-model="form.orderNum"
+                controls-position="right"
+                :min="0"
+              />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
             <el-form-item label="璐熻矗浜�" prop="leader">
-              <el-input v-model="form.leader" placeholder="璇疯緭鍏ヨ礋璐d汉" maxlength="20" />
+              <el-input
+                v-model="form.leader"
+                placeholder="璇疯緭鍏ヨ礋璐d汉"
+                maxlength="20"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="鑱旂郴鐢佃瘽" prop="phone">
-              <el-input v-model="form.phone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" maxlength="11" />
+              <el-input
+                v-model="form.phone"
+                placeholder="璇疯緭鍏ヨ仈绯荤數璇�"
+                maxlength="11"
+              />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="12">
             <el-form-item label="閭" prop="email">
-              <el-input v-model="form.email" placeholder="璇疯緭鍏ラ偖绠�" maxlength="50" />
+              <el-input
+                v-model="form.email"
+                placeholder="璇疯緭鍏ラ偖绠�"
+                maxlength="50"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -143,7 +210,8 @@
                   v-for="dict in dict.type.sys_normal_disable"
                   :key="dict.value"
                   :label="dict.value"
-                >{{dict.label}}</el-radio>
+                  >{{ dict.label }}</el-radio
+                >
               </el-radio-group>
             </el-form-item>
           </el-col>
@@ -158,13 +226,20 @@
 </template>
 
 <script>
-import { listDept, getDept, delDept, addDept, updateDept, listDeptExcludeChild } from "@/api/system/dept";
+import {
+  listDept,
+  getDept,
+  delDept,
+  addDept,
+  updateDept,
+  listDeptExcludeChild,
+} from "@/api/system/dept";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 
 export default {
   name: "Dept",
-  dicts: ['sys_normal_disable'],
+  dicts: ["sys_normal_disable"],
   components: { Treeselect },
   data() {
     return {
@@ -187,36 +262,36 @@
       // 鏌ヨ鍙傛暟
       queryParams: {
         deptName: undefined,
-        status: undefined
+        status: undefined,
       },
       // 琛ㄥ崟鍙傛暟
       form: {},
       // 琛ㄥ崟鏍¢獙
       rules: {
         parentId: [
-          { required: true, message: "涓婄骇閮ㄩ棬涓嶈兘涓虹┖", trigger: "blur" }
+          { required: true, message: "涓婄骇閮ㄩ棬涓嶈兘涓虹┖", trigger: "blur" },
         ],
         deptName: [
-          { required: true, message: "閮ㄩ棬鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }
+          { required: true, message: "閮ㄩ棬鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
         ],
         orderNum: [
-          { required: true, message: "鏄剧ず鎺掑簭涓嶈兘涓虹┖", trigger: "blur" }
+          { required: true, message: "鏄剧ず鎺掑簭涓嶈兘涓虹┖", trigger: "blur" },
         ],
         email: [
           {
             type: "email",
             message: "璇疯緭鍏ユ纭殑閭鍦板潃",
-            trigger: ["blur", "change"]
-          }
+            trigger: ["blur", "change"],
+          },
         ],
         phone: [
           {
             pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
             message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜",
-            trigger: "blur"
-          }
-        ]
-      }
+            trigger: "blur",
+          },
+        ],
+      },
     };
   },
   created() {
@@ -226,8 +301,9 @@
     /** 鏌ヨ閮ㄩ棬鍒楄〃 */
     getList() {
       this.loading = true;
-      listDept(this.queryParams).then(response => {
+      listDept(this.queryParams).then((response) => {
         this.deptList = this.handleTree(response.data, "deptId");
+        console.log(this.deptList);
         this.loading = false;
       });
     },
@@ -239,7 +315,7 @@
       return {
         id: node.deptId,
         label: node.deptName,
-        children: node.children
+        children: node.children,
       };
     },
     // 鍙栨秷鎸夐挳
@@ -257,7 +333,7 @@
         leader: undefined,
         phone: undefined,
         email: undefined,
-        status: "0"
+        status: "0",
       };
       this.resetForm("form");
     },
@@ -278,7 +354,7 @@
       }
       this.open = true;
       this.title = "娣诲姞閮ㄩ棬";
-      listDept().then(response => {
+      listDept().then((response) => {
         this.deptOptions = this.handleTree(response.data, "deptId");
       });
     },
@@ -293,31 +369,35 @@
     /** 淇敼鎸夐挳鎿嶄綔 */
     handleUpdate(row) {
       this.reset();
-      getDept(row.deptId).then(response => {
+      getDept(row.deptId).then((response) => {
         this.form = response.data;
         this.open = true;
         this.title = "淇敼閮ㄩ棬";
-        listDeptExcludeChild(row.deptId).then(response => {
+        listDeptExcludeChild(row.deptId).then((response) => {
           this.deptOptions = this.handleTree(response.data, "deptId");
           if (this.deptOptions.length == 0) {
-            const noResultsOptions = { deptId: this.form.parentId, deptName: this.form.parentName, children: [] };
+            const noResultsOptions = {
+              deptId: this.form.parentId,
+              deptName: this.form.parentName,
+              children: [],
+            };
             this.deptOptions.push(noResultsOptions);
           }
         });
       });
     },
     /** 鎻愪氦鎸夐挳 */
-    submitForm: function() {
-      this.$refs["form"].validate(valid => {
+    submitForm: function () {
+      this.$refs["form"].validate((valid) => {
         if (valid) {
           if (this.form.deptId != undefined) {
-            updateDept(this.form).then(response => {
+            updateDept(this.form).then((response) => {
               this.$modal.msgSuccess("淇敼鎴愬姛");
               this.open = false;
               this.getList();
             });
           } else {
-            addDept(this.form).then(response => {
+            addDept(this.form).then((response) => {
               this.$modal.msgSuccess("鏂板鎴愬姛");
               this.open = false;
               this.getList();
@@ -328,13 +408,17 @@
     },
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete(row) {
-      this.$modal.confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.deptName + '"鐨勬暟鎹」锛�').then(function() {
-        return delDept(row.deptId);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-      }).catch(() => {});
-    }
-  }
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎鍚嶇О涓�"' + row.deptName + '"鐨勬暟鎹」锛�')
+        .then(function () {
+          return delDept(row.deptId);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        })
+        .catch(() => {});
+    },
+  },
 };
 </script>

--
Gitblit v1.9.3