From 76c30727c77065c808b1c0fb3146080e423e5fe6 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期四, 27 六月 2024 09:45:30 +0800
Subject: [PATCH] 测试完成

---
 src/views/knowledge/questionnaire/compilequer/index.vue |  798 +++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 551 insertions(+), 247 deletions(-)

diff --git a/src/views/knowledge/questionnaire/compilequer/index.vue b/src/views/knowledge/questionnaire/compilequer/index.vue
index 26c78ac..bcfe6f8 100644
--- a/src/views/knowledge/questionnaire/compilequer/index.vue
+++ b/src/views/knowledge/questionnaire/compilequer/index.vue
@@ -2,14 +2,27 @@
   <div class="Questionnairemanagement">
     <!-- 宸︿晶鏍� -->
     <div class="sidecolumn">
-      <div style="height: 400px">
-        <el-steps direction="vertical" :active="Editprogress">
-          <el-step title="鍩虹淇℃伅"></el-step>
-          <el-step title="闂嵎棰樼洰"></el-step>
-          <el-step
-            title="闂嵎棰勮"
-            description="鏌ョ湅闂嵎棰勮锛屽彲瀵煎嚭PDF"
-          ></el-step>
+      <div>
+        <el-steps finish-status="success" :active="Editprogress" simple>
+          <el-step>
+            <template slot="title">
+              <span style="cursor: pointer" @click="Editprogress = 1"
+                >鍩虹淇℃伅</span
+              >
+            </template>
+          </el-step>
+          <el-step>
+            <template slot="title">
+              <span style="cursor: pointer" @click="Editprogress = 2"
+                >闂嵎棰樼洰</span
+              >
+            </template>
+          </el-step>
+          <el-step description="鏌ョ湅闂嵎棰勮锛屽彲瀵煎嚭PDF">
+            <span slot="title" style="cursor: pointer" @click="Editprogress = 3"
+              >闂嵎棰勮</span
+            >
+          </el-step>
         </el-steps>
       </div>
     </div>
@@ -26,24 +39,48 @@
           label-width="100px"
           class="demo-ruleForm"
         >
-          <el-form-item label="闂嵎鍒嗙被" prop="region">
-            <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"
-              >
-              </el-option>
-            </el-select>
-          </el-form-item>
+          <el-row :gutter="10">
+            <el-col :span="10">
+              <el-form-item label="闂嵎鍒嗙被" prop="region">
+                <el-select
+                  v-model="ruleForm.categoryid"
+                  size="medium"
+                  filterable
+                  placeholder="璇烽�夋嫨鍒嗙被"
+                >
+                  <el-option-group
+                    v-for="group in optionsclass"
+                    :key="group.id"
+                    :label="group.name"
+                  >
+                    <el-option
+                      v-for="item in group.svyLibTemplateCategoryList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.id"
+                    >
+                    </el-option>
+                  </el-option-group>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="10">
+              <el-form-item label="璇勪环绫诲瀷">
+                <el-select
+                  v-model="ruleForm.scoreType"
+                  placeholder="璇烽�夋嫨鍒嗙被"
+                >
+                  <el-option
+                    v-for="group in appraiselist"
+                    :key="group.value"
+                    :label="group.label"
+                    :value="group.value"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
           <el-form-item label="闂嵎鏍囬" prop="name">
             <div style="width: 30%">
               <el-input v-model="ruleForm.svyname"></el-input>
@@ -59,37 +96,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 +116,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 +208,6 @@
                 <el-select
                   v-model="ruleForm.isenable"
                   size="medium"
-                  multiple
                   filterable
                   placeholder="璇烽�夋嫨鍒嗙被"
                 >
@@ -217,9 +222,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 +232,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 +243,7 @@
 
           <el-form-item label="閫傜敤闄㈠尯" prop="region">
             <el-select
-              v-model="ruleForm.courtyard"
+              v-model="ruleForm.campus"
               size="medium"
               filterable
               placeholder="璇烽�夋嫨鍒嗙被"
@@ -246,37 +251,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>
@@ -286,72 +287,92 @@
       <div v-if="Editprogress == 2">
         <div class="leftvlue-jbxx">闂嵎棰樼洰璁剧疆</div>
         <el-divider></el-divider>
-        <div class="addtopic">
-          <el-button
-            type="primary"
-            icon="el-icon-plus"
-            round
-            @click="drawer = true"
-            >娣诲姞棰樼洰</el-button
-          >
+        <div style="display: flex; justify-content: space-between">
+          <div>
+            <el-button
+              type="primary"
+              icon="el-icon-plus"
+              round
+              @click="getaddtopiclist"
+              >娣诲姞棰樼洰</el-button
+            >
+          </div>
+          <div style="display: flex">
+            <span
+              style="
+                width: 180px;
+                font-size: 20px;
+                font-weight: normal;
+                color: red;
+              "
+              >闂嵎鎬诲垎锛�</span
+            >
+            <el-input
+              v-model="ruleForm.scriptScore"
+              placeholder="璇疯緭鍏ュ垎鏁�"
+            ></el-input>
+          </div>
         </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.svyLibScripts">
                 <el-table-column
                   label="搴忓彿"
                   align="center"
-                  key="userid"
-                  prop="userid"
+                  key="sort"
+                  prop="sort"
                 />
                 <el-table-column
-                  label="棰樼洰"
+                  label="棰樼洰鏍囬"
                   align="center"
-                  key="userName"
-                  prop="userName"
+                  key="topic"
+                  prop="topic"
                   :show-overflow-tooltip="true"
                 />
                 <el-table-column
-                  label="涓昏鍐呭"
+                  label="棰樼洰鍐呭"
                   align="center"
-                  key="maincontent"
-                  prop="maincontent"
+                  key="script"
+                  prop="script"
                   :show-overflow-tooltip="true"
                 />
 
                 <el-table-column
                   label="鎿嶄綔"
                   align="center"
-                  width="200"
+                  width="250"
                   class-name="small-padding fixed-width"
                 >
                   <template slot-scope="scope">
                     <el-button
                       icon="el-icon-edit"
                       type="primary"
-                      round
+                      circle
                       @click="handleUpdate(scope.row)"
-                      >淇敼</el-button
-                    >
+                    ></el-button>
                     <el-button
                       type="danger"
                       icon="el-icon-delete"
                       circle
                       @click="handleDelete(scope.row)"
                     ></el-button>
+                    <el-button
+                      @click="syioption(scope.row)"
+                      type="success"
+                      icon="el-icon-top"
+                      circle
+                    ></el-button>
+                    <el-button
+                      @click="xiayioption(scope.row)"
+                      type="success"
+                      icon="el-icon-bottom"
+                      circle
+                    ></el-button>
                   </template>
                 </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,49 +391,79 @@
                 </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.svyLibTemplateTargetoptions"
+                >
                   <el-row :gutter="10">
-                    <el-col :span="11"
-                      ><el-form-item label="棰樺彿">
+                    <el-col :span="11">
+                      <el-form-item v-if="topicobj.scoretype == 1" label="鍒嗗��">
                         <el-input
                           type="text"
-                          placeholder="璇疯緭鍏�"
-                          v-model="item.optionid"
-                          show-word-limit
-                        >
-                        </el-input> </el-form-item
-                    ></el-col>
-                    <el-col :span="11"
-                      ><el-form-item label="鍒嗗��">
-                        <el-input
-                          type="text"
-                          placeholder="璇疯緭鍏�"
+                          placeholder="璇疯緭鍏ラ�夐」鍒嗗��"
                           v-model="item.score"
                           show-word-limit
                         >
-                        </el-input> </el-form-item
-                    ></el-col>
+                        </el-input>
+                      </el-form-item>
+                      <el-form-item
+                        v-else-if="topicobj.scoretype == 2"
+                        label="ABC绛夌骇"
+                      >
+                        <el-radio-group v-model="item.score">
+                          <el-radio label="A">A</el-radio>
+                          <el-radio label="B">B</el-radio>
+                          <el-radio label="C">C</el-radio>
+                        </el-radio-group>
+                      </el-form-item>
+                      <el-form-item
+                        v-else-if="topicobj.scoretype == 3"
+                        label="浼樿壇绛夌骇"
+                      >
+                        <el-radio-group v-model="item.score">
+                          <el-radio label="浼�">浼�</el-radio>
+                          <el-radio label="鑹�">鑹�</el-radio>
+                          <el-radio label="宸�">宸�</el-radio>
+                        </el-radio-group>
+                      </el-form-item>
+                    </el-col>
                   </el-row>
                   <el-row :gutter="10">
                     <el-col :span="11"
@@ -430,19 +481,19 @@
                         <el-input
                           type="text"
                           placeholder="璇疯緭鍏ラ鍙�"
-                          v-model="item.jump"
+                          v-model="item.nextQuestion"
                           show-word-limit
                         >
                         </el-input> </el-form-item
                     ></el-col>
-                    <el-col :span="2">
+                    <!-- <el-col :span="2">
                       <el-button
                         type="danger"
                         icon="el-icon-delete"
                         circle
                         @click="deletexuanx(item)"
                       ></el-button>
-                    </el-col>
+                    </el-col> -->
                   </el-row>
                   <el-row :gutter="10">
                     <el-form-item label="閫変腑鎻愮ず">
@@ -467,7 +518,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">
@@ -528,7 +581,7 @@
       title="娣诲姞棰樼洰"
       :visible.sync="drawer"
       custom-class="demo-drawer"
-      width="50%"
+      size="50%"
     >
       <div class="preview-left">
         <el-form
@@ -538,30 +591,22 @@
           :inline="true"
           label-width="98px"
         >
-          <el-form-item label="鏍囬" prop="userName">
+          <el-form-item label="闂鏍囬" prop="topic">
             <el-input
-              v-model="queryParams.userName"
+              v-model="queryParams.topic"
               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 +618,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="script"
+            prop="script"
             width="200"
             :show-overflow-tooltip="true"
           />
@@ -592,10 +637,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
@@ -603,6 +645,13 @@
             </template>
           </el-table-column>
         </el-table>
+        <pagination
+          v-show="total > 0"
+          :total="total"
+          :page.sync="queryParams.pageNum"
+          :limit.sync="queryParams.pageSize"
+          @pagination="getaddtopiclist"
+        />
       </div>
     </el-drawer>
   </div>
@@ -610,16 +659,20 @@
 
 <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,
+  issueinfo,
+  getissuelist,
   deltargetillness,
   addtargetillness,
   getillnesslist,
@@ -631,7 +684,7 @@
   data() {
     return {
       sidecolumnrabs: "left", //鏂瑰悜
-      Editprogress: 2, //缂栬緫杩涘害
+      Editprogress: 1, //缂栬緫杩涘害
       currentVersion: "1.2.3", //褰撳墠鐗堟湰
       loading: false, // 閬僵灞�
       drawer: false, //鎺у埗灞曞紑
@@ -644,7 +697,7 @@
       topicobj: {},
       // 鎬绘潯鏁�
       total: 1,
-      ruleForm: {},
+      ruleForm: { svyLibScripts: [], tempDetpRelevances: [] },
       rules: {},
       rulesa: {},
       optionsclass: [], //鍒嗙被鍒楄〃
@@ -652,20 +705,12 @@
         { value: "topic", table: "topic" },
         { value: "topic", table: "topic" },
       ],
-      xjxsoptions: [
-        {
-          value: "閫夐」1",
-          label: "鍥炬枃",
-        },
-        {
-          value: "閫夐」2",
-          label: "瑙嗛",
-        },
-        {
-          value: "閫夐」3",
-          label: "闊抽",
-        },
+      appraiselist: [
+        { label: "鍒嗘暟", value: "1" },
+        { label: "ABC绛夌骇", value: "2" },
+        { label: "浼樿壇绛夌骇", value: "3" },
       ],
+
       fileList: [
         {
           name: "food.jpeg",
@@ -676,16 +721,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 +738,9 @@
       ],
       addvalue: "娣诲姞棰樼洰",
       // 棰樼洰琛ㄦ牸鏁版嵁
-      userList: [
-        {
-          userid: "1",
-          userName: "涓�鍙烽棶鍗�",
-        },
-        {
-          userid: "2",
-          userName: "浜屽彿闂嵎",
-        },
-      ],
+      userList: [],
+      deptList: [],
+      props: { multiple: true, value: "deptId", label: "deptName" },
       themelist: [],
       languagelist: [],
       courtyardlist: [],
@@ -722,57 +751,173 @@
       illnessVisible: false, //鎸囨爣鐤剧梾寮规
       deptOptions: [],
       optionsillness: [],
+      delScriptVOList: [],
       illnesslistapi: [],
       illnesslist: [],
-
+      tempDetpRelevanceslist: [],
       optionstag: [],
-      xjxsoptions: [],
-      usable: [],
+      valuetype: [],
+      usable: [
+        { value: "0", label: "鍙敤" },
+        { value: "1", label: "鍋滅敤" },
+      ],
+      required: [
+        { value: "1", label: "蹇呭~" },
+        { value: "2", label: "涓嶅繀濉�" },
+      ],
       mode: [], //鏂瑰紡
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
         pageSize: 10,
-        userName: undefined,
-        phonenumber: undefined,
-        status: undefined,
-        deptId: undefined,
-        IDnumber: undefined,
       },
+      arr: [
+        [
+          { id: 1, grade: "5" },
+          { id: 2, grade: "5" },
+          { id: 3, grade: "5" },
+          { id: 4, grade: "5" },
+        ],
+        [
+          { id: 1, grade: "5" },
+          { id: 3, grade: "5" },
+          { id: 4, grade: "5" },
+        ],
+        [
+          { id: 1, grade: "5" },
+          { id: 2, grade: "5" },
+          { id: 4, grade: "5" },
+        ],
+      ],
     };
   },
 
   created() {
     this.gettabList();
     this.getissueinfo();
-    this.mode = store.getters.mode;
+    this.mode = store.getters.Askmode;
     this.languagelist = store.getters.languagelist;
     this.usable = store.getters.usable;
-    this.xjxsoptions = store.getters.xjxsoptions;
+    this.required = store.getters.required;
+    this.valuetype = store.getters.valuetype;
     this.courtyardlist = store.getters.courtyardlist;
+    this.test();
   },
 
   methods: {
+    // 鍏叡鏂规硶---------------
     getIndexInArray(arr, obj) {
       return arr.indexOf(obj);
     },
+    // 閫掑綊鎵佸钩鍖�
+    flattenArray(arr) {
+      let result = [];
+      arr.forEach((item) => {
+        result.push(item);
+        if (item.svyLibTemplateCategoryList) {
+          result = result.concat(
+            this.flattenArray(item.svyLibTemplateCategoryList)
+          );
+          delete item.svyLibTemplateCategoryList;
+        }
+      });
+      return result;
+    },
+    // -----------------------------
     // 鑾峰彇鏁版嵁
     getissueinfo() {
       this.id = this.$route.query.id;
-      Qtemplateinfo(this.id).then((res) => {
-        this.ruleForm = res.data;
-      });
+      if (this.id) {
+        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);
+        });
+        getillness({ outid: this.id, type: 5 }).then((res) => {
+          this.illnesslist = res.rows;
+        });
+      }
       getillnesslist({
         pageNum: 1,
         pageSize: 100,
       }).then((response) => {
         this.optionsillness = response.rows;
       });
-      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 = this.flattenArray(res.rows);
+        this.optionsclass = res.rows;
       });
     },
-    submitForm(formName) {},
+    submitForm(formName) {
+      this.$modal.loading("姝e湪涓婁紶鏁版嵁锛岃绋嶅��...");
+
+      this.ruleForm.labelInfo = this.dynamicTags.join(",");
+      this.ruleForm.suitway = this.ruleForm.suitway.join(",");
+
+      if (this.id) {
+        this.ruleForm.isoperation = 2;
+        compileQtemplate(this.ruleForm).then((res) => {
+          this.$modal.msgSuccess("淇敼鎴愬姛");
+          this.confirmillness();
+          this.$modal.closeLoading();
+
+          this.$router.go(-1);
+        });
+      } else {
+        this.ruleForm.isoperation = 1;
+        compileQtemplate(this.ruleForm).then((res) => {
+          this.$modal.msgSuccess("鏂板鎴愬姛");
+          this.confirmillness(res.data);
+
+          this.$modal.closeLoading();
+
+          this.$router.go(-1);
+        });
+      }
+    },
+    // 绉戝澶勭悊
+    Departmenttreatment() {
+      this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist);
+      console.log(this.tempDetpRelevanceslist);
+      this.ruleForm.svyLibScripts = this.ruleForm.svyLibScripts.concat(
+        this.delScriptVOList
+      );
+      console.log(this.tempDetpRelevanceslist, "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) => {
+            console.log(res.data[0]);
+            res.data[0].type = 2;
+            this.ruleForm.tempDetpRelevances.push(res.data[0]);
+          });
+        }
+      });
+      // 鏁扮粍瀵硅薄鏌d鏁扮粍
+      this.ruleForm.tempDetpRelevances.forEach((item) => {
+        const condition = result.some((obj) => obj === item.deptId);
+        if (!condition) {
+          console.log(condition);
+          const index = this.ruleForm.tempDetpRelevances.indexOf(item);
+          this.ruleForm.tempDetpRelevances[index].delFlag = 1;
+        }
+      });
+      setTimeout(() => {
+        this.submitForm();
+      }, 1000);
+    },
     // 涓嬩竴姝�
     nextstep() {
       if (this.Editprogress <= 2) {
@@ -800,22 +945,59 @@
           });
         });
     },
-    // 淇濆瓨棰樼洰淇℃伅
-    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;
+      this.queryParams.scoretype = this.ruleForm.scoreType;
+      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;
+      row.svyLibScriptOptions.forEach((item) => {
+        item.isoperation = 1;
+      });
+      row.svyLibTemplateTargetoptions = row.svyLibScriptOptions;
+      this.ruleForm.svyLibScripts.push(row);
+      this.$modal.msgSuccess("鏂板鎴愬姛");
+    },
+    handleDelete(row) {
+      let index = this.ruleForm.svyLibScripts.indexOf(row);
+      this.ruleForm.svyLibScripts.splice(index, 1);
+      row.isoperation = 3;
+      this.delScriptVOList.push(row);
+      this.sortFn();
+    },
+    handleUpdate(row) {
+      console.log(row);
+      this.topicobj = row;
+      // getissuelist({ svyid: row.svyid }).then((res) => {
+      // });
+    },
+    syioption(row) {
+      const index = this.getIndexInArray(this.ruleForm.svyLibScripts, row);
+      const item = this.ruleForm.svyLibScripts.splice(index, 1)[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓�
+      this.ruleForm.svyLibScripts.splice(index - 1, 0, item); // 灏唅tem鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣�
+      this.sortFn();
+    },
+    xiayioption(row) {
+      const index = this.getIndexInArray(this.ruleForm.svyLibScripts, row);
+      const item = this.ruleForm.svyLibScripts.splice(index, 1)[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓�
+      this.ruleForm.svyLibScripts.splice(index + 1, 0, item); // 灏唅tem鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣�
+      this.sortFn();
+    },
+    sortFn() {
+      this.ruleForm.svyLibScripts.forEach((item, index) => {
+        item.sort = index + 1;
+      });
+      console.log(this.ruleForm.svyLibScripts);
+    },
+
     // 淇敼棰樼洰淇℃伅
     Submittopicobj() {},
     // 鏂板鍙橀噺
@@ -853,9 +1035,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 +1058,8 @@
             };
           }
           // this.ruleForm.ivrLibaTemplateTargetList.push(tagvalue);
-          this.dynamicTags.push(tagvalue);
+          // this.dynamicTags.push(tagvalue);
+          this.dynamicTags.push(tagvalue.tagname);
         });
       }
       this.inputVisible = false;
@@ -941,8 +1123,11 @@
       this.inputValueillness = "";
     },
     // 淇濆瓨
-    confirmillness() {
+    confirmillness(guid) {
       this.illnesslist.forEach((item, index) => {
+        if (guid) {
+          item.outid = guid;
+        }
         if (!item.id) {
           addtargetillness(item).then((res) => {});
         }
@@ -954,11 +1139,135 @@
       this.$modal.msgSuccess("缂栬緫鎴愬姛");
     },
     // --------------------------
-    // 鏌ヨ棰樺簱
-    handleQuery() {},
-    resetQuery() {},
+    resetQuery() {
+      this.queryParams = { pageNum: 1, pageSize: 10 };
+      this.getaddtopiclist();
+    },
     resetForm(formName) {
       this.$refs[formName].resetFields();
+    },
+    // 闂嵎鍒嗘暟闄愬埗绠楁硶
+    // 娣峰悎璺嚎
+    generateCombinations(arrays, currentIndex = 0, currentCombination = []) {
+      if (currentIndex === arrays.length) {
+        return [currentCombination];
+      }
+
+      const currentArray = arrays[currentIndex];
+      const newCombinations = [];
+
+      for (const item of currentArray) {
+        const newCombination = [...currentCombination, item];
+        const combinations = this.generateCombinations(
+          arrays,
+          currentIndex + 1,
+          newCombination
+        );
+        newCombinations.push(...combinations);
+      }
+      return newCombinations;
+    },
+    // 鎵ц
+    test() {
+      const arrays = [
+        ["2", "3", "4", "5"],
+        ["1", "2", "5", "6"],
+        ["3", "4", "5", "3"],
+        ["3", "2", "5", "7"],
+      ];
+      const arraysa = [
+        {
+          id: 1,
+          grade: "5",
+          arr: [
+            { name: "涓嶉敊", skip: 2 },
+            { name: "涓�鑸�", skip: 2 },
+            { name: "杩樹笉閿�", skip: 2 },
+            { name: "寰堟", skip: 3 },
+          ],
+        },
+
+        {
+          id: 2,
+          grade: "5",
+          arr: [
+            { name: "浼樼", skip: 3 },
+            { name: "鑹ソ", skip: 3 },
+            { name: "涓�鑸�", skip: 3 },
+            { name: "杈冨樊", skip: 4 },
+          ],
+        },
+        {
+          id: 3,
+          grade: "5",
+          arr: [
+            { name: "鏄殑", skip: 4 },
+            { name: "涓嶆竻妤�", skip: 4 },
+            { name: "杩樺彲", skip: 4 },
+            { name: "涓�鑸�", skip: 4 },
+          ],
+        },
+        {
+          id: 4,
+          grade: "5",
+          arr: [
+            { name: "鐪熶笉閿�", skip: null },
+            { name: "杩樺彲浠�", skip: null },
+            { name: "涓�鑸埇", skip: null },
+            { name: "涓嶆竻妤�", skip: null },
+          ],
+        },
+      ];
+
+      // const newMixArray = this.generateCombinations(arrays);
+      const newMixArray = this.getExecutionOrders(arraysa);
+
+      console.log(newMixArray, "鍏ㄩ儴璺嚎");
+      this.screen(newMixArray);
+    },
+    getExecutionOrders(data) {
+      let orders = [];
+
+      const explore = (currentOrder, id) => {
+        console.log(currentOrder, "currentOrder", id);
+        const currentQuestion = data[currentOrder[currentOrder.length - 1]];
+        if (
+          currentQuestion.arr.some(
+            (option) =>
+              option.skip !== null && !currentOrder.includes(option.skip)
+          )
+        ) {
+          currentQuestion.arr.forEach((option) => {
+            if (option.skip !== null && !currentOrder.includes(option.skip)) {
+              explore([...currentOrder, option.skip]);
+            }
+          });
+        } else {
+          orders.push(
+            currentOrder.map((id) => ({
+              id: data[id].id,
+              grade: data[id].grade,
+            }))
+          );
+        }
+      };
+      console.log(data, "data");
+      data.forEach((entry) => {
+        explore([entry.id], entry.id);
+      });
+
+      return orders;
+    },
+
+    // 鏁扮粍姹傚拰
+    sumArray(arr) {
+      return arr.reduce((acc, curr) => acc + parseInt(curr), 0);
+    },
+    // 绛涢�夐敊璇矾绾�
+    screen(data) {
+      const arraysGreaterThan10 = data.filter((arr) => this.sumArray(arr) > 21);
+
+      console.log(arraysGreaterThan10, "绛涢�夐敊璇矾绾垮ぇ浜�13鍒�");
     },
   },
 };
@@ -966,28 +1275,23 @@
 
 <style lang="scss" scoped>
 .Questionnairemanagement {
-  display: flex;
+  // display: flex;
 }
 .sidecolumn {
-  width: 300px;
-  min-height: 100vh;
-  text-align: center;
-  //   display: flex;
-  //   margin-top: 20px;
   margin: 20px;
   margin-bottom: 0;
-  padding: 30px;
+  padding: 20px;
   background: #edf1f7;
   border: 1px solid #dcdfe6;
   -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
     0 0 6px 0 rgba(0, 0, 0, 0.04);
 }
 .leftvlue {
-  //   display: flex;
-  //   flex: 1;
-  width: 80%;
-  margin-top: 20px;
-  //   margin: 20px;
+  // //   display: flex;
+  // //   flex: 1;
+  // width: 80%;
+  // margin-top: 20px;
+  margin: 20px;
   padding: 30px;
   background: #ffff;
   border: 1px solid #dcdfe6;

--
Gitblit v1.9.3