From b557dde5b61a6c38f22b07d3e7af00b3ae71fd44 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期五, 01 十一月 2024 14:42:31 +0800
Subject: [PATCH] 测试完成

---
 src/views/knowledge/questionnaire/compilequer/index.vue | 2250 +++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 1,724 insertions(+), 526 deletions(-)

diff --git a/src/views/knowledge/questionnaire/compilequer/index.vue b/src/views/knowledge/questionnaire/compilequer/index.vue
index 7e7e61a..4e13018 100644
--- a/src/views/knowledge/questionnaire/compilequer/index.vue
+++ b/src/views/knowledge/questionnaire/compilequer/index.vue
@@ -14,7 +14,7 @@
           <el-step>
             <template slot="title">
               <span style="cursor: pointer" @click="Editprogress = 2"
-                >闂嵎棰樼洰</span
+                >闂嵎闂</span
               >
             </template>
           </el-step>
@@ -36,74 +36,133 @@
           :model="ruleForm"
           :rules="rules"
           ref="ruleForm"
-          label-width="100px"
+          label-width="180px"
           class="demo-ruleForm"
         >
-          <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.svyLibTitleCategoryList"
-                  :key="item.id"
-                  :label="item.name"
-                  :value="item.id"
-                >
-                </el-option>
-              </el-option-group>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="闂嵎鏍囬" prop="name">
-            <div style="width: 30%">
+          <el-form-item label="闂嵎鍚嶇О" prop="svyname">
+            <div style="width: 55vw">
               <el-input v-model="ruleForm.svyname"></el-input>
             </div>
           </el-form-item>
-          <el-form-item label="闂嵎鎻忚堪">
+          <el-form-item label="闂嵎鎻忚堪" prop="description">
             <el-input
-              style="width: 40vw"
+              style="width: 55vw"
               type="textarea"
-              autosize
+              :rows="2"
               placeholder="璇疯緭鍏ュ唴瀹�"
               v-model="ruleForm.description"
             >
             </el-input
           ></el-form-item>
+          <el-row :gutter="20">
+            <el-col :span="10">
+              <el-form-item label="闂嵎鍒嗙被" prop="categoryid">
+                <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="8">
+              <el-form-item label="璇勪环绫诲瀷" prop="scoreType">
+                <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-row :gutter="20">
+            <el-col :span="10">
+              <el-form-item label="鍙敤鐘舵��" prop="isenable">
+                <el-radio-group v-model="ruleForm.isenable">
+                  <el-radio
+                    v-for="(item, index) in usable"
+                    :label="item.value"
+                    >{{ item.label }}</el-radio
+                  >
+                </el-radio-group>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="鐗堟湰鍙�" prop="name">
+                <el-input
+                  v-model="ruleForm.version"
+                  placeholder="榛樿1.0"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <!-- <el-row :gutter="20">
+            <el-col :span="10">
+              <el-form-item label="闀挎湡浠诲姟" prop="longTemp">
+                <el-radio-group v-model="ruleForm.longTemp">
+                  <el-radio
+                    v-for="(item, index) in longtype"
+                    :label="item.value"
+                    >{{ item.label }}</el-radio
+                  >
+                </el-radio-group>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8" v-if="ruleForm.longTemp">
+              <el-form-item label="浠诲姟鍛ㄦ湡锛堝嚑澶╁悗锛�" prop="name">
+                <el-input
+                  v-model="ruleForm.sendDay"
+                  placeholder="榛樿5澶╁悗"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row> -->
 
-          <el-form-item label="鏂囦欢" prop="sickness">
-            <div style="width: 40%">
-              <el-upload
-                class="upload-demo"
-                action="https://jsonplaceholder.typicode.com/posts/"
-                :on-change="handleChange"
-                :file-list="fileList"
-              >
-                <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
-                <div slot="tip" class="el-upload__tip">
-                  鍙兘涓婁紶jpg/png/xsl鏂囦欢锛屼笖涓嶈秴杩�50mb
-                </div>
-              </el-upload>
-            </div>
-          </el-form-item>
           <el-row>
-            <el-form-item label="鏍囩" prop="desc">
+            <el-form-item prop="dynamicTags">
+              <template #label>
+                鏍囩
+                <el-tooltip
+                  class="item"
+                  effect="light"
+                  content="鍑嗙‘銆佹壖瑕併�佸閲嶇殑鏍囩锛屽彲浠ヨ鎮ㄥ湪绯荤粺浣跨敤涓柟渚跨殑鏌ユ壘鍒拌妯$増銆�"
+                  placement="top-start"
+                >
+                  <i class="el-icon-warning-outline"></i>
+                </el-tooltip>
+                <!-- 鍦ㄦ爣绛惧悗鎻掑叆绾㈣壊鏄熷彿 -->
+              </template>
               <div class="xinz-inf">
                 <el-tag
-                  :key="tag"
+                  :key="tag.tagname"
                   type="success"
                   v-for="tag in dynamicTags"
                   closable
                   :disable-transitions="false"
                   @close="handleClosetag(tag)"
                 >
-                  {{ tag }}
+                  {{ tag.tagname }}
                 </el-tag>
                 <el-select
                   v-model="inputValue"
@@ -111,6 +170,7 @@
                   @change="handleInputConfirm"
                   filterable
                   remote
+                  allow-create
                   reserve-keyword
                   default-first-option
                   :remote-method="remoteMethodtag"
@@ -135,76 +195,42 @@
               </div>
             </el-form-item>
           </el-row>
-          <el-row>
-            <el-form-item label="閫傜敤鐤剧梾" prop="region">
-              <div class="xinz-inf">
-                <el-tag
-                  :key="item.icd10name"
-                  type="warning"
-                  v-for="item in illnesslist"
-                  closable
-                  :disable-transitions="false"
-                  @close="handleCloseillness(item)"
+          <div class="xinz-infs">
+            <el-form-item>
+              <template #label>
+                閫傜敤鐤剧梾
+                <el-tooltip
+                  class="item"
+                  effect="light"
+                  content="閫夋嫨濂介�傜敤鐤剧梾鍚庯紝鍙互鏂逛究鎮ㄩ�氳繃鐤剧梾璇婃柇鏌ユ壘鍒板搴旂殑鐥呬汉!"
+                  placement="top-start"
                 >
-                  {{ item.icd10name }}
-                </el-tag>
-                <el-select
-                  v-model="inputValueillness"
-                  v-if="inputVisibleillness"
-                  @change="illnessConfirm"
-                  :remote-method="remoteMethod"
-                  filterable
-                  remote
-                  allow-create
-                  default-first-option
-                  placeholder="璇烽�夋嫨/鏌ヨ"
-                  :loading="loading"
-                >
-                  <el-option
-                    v-for="item in optionsillness"
-                    :key="item.icdid"
-                    :label="item.icdname"
-                    :value="item.icdid"
-                  >
-                  </el-option>
-                </el-select>
+                  <i class="el-icon-warning-outline"></i>
+                </el-tooltip>
+              </template>
+              <div style="margin-bottom: 10px">
                 <el-button
-                  v-else
-                  class="button-new-tag"
-                  size="small"
-                  @click="inputVisibleillness = true"
-                  >+ 鏂板鐤剧梾</el-button
+                  type="warning"
+                  @click="$refs.child.handleAddpatient()"
+                  >娣诲姞鐤剧梾璇婃柇</el-button
                 >
               </div>
+              <el-tag
+                v-for="tag in displayedTags"
+                :key="tag.icdid"
+                type="warning"
+                :disable-transitions="false"
+              >
+                {{ tag.icdname }}
+              </el-tag>
+              <el-tag v-if="hasMore" type="info">+{{ remaining }} more</el-tag>
             </el-form-item>
-          </el-row>
-          <el-row :gutter="20">
-            <el-col :span="6">
-              <el-form-item label="鐗堟湰鍙�" prop="name">
-                <el-input v-model="ruleForm.version"></el-input> </el-form-item
-            ></el-col>
-            <el-col :span="9">
-              <el-form-item label="鍙敤鐘舵��" prop="region">
-                <el-select
-                  v-model="ruleForm.isenable"
-                  size="medium"
-                  filterable
-                  placeholder="璇烽�夋嫨鍒嗙被"
-                >
-                  <el-option
-                    class="ruleFormaa"
-                    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>
-          <el-form-item label="闂嵎鏂瑰紡" prop="region">
+          </div>
+
+          <el-form-item label="闂嵎鏂瑰紡" prop="suitway">
             <el-select
               v-model="ruleForm.suitway"
+              style="width: 55vw"
               size="medium"
               multiple
               filterable
@@ -221,37 +247,64 @@
             </el-select>
           </el-form-item>
 
-          <el-form-item label="閫傜敤闄㈠尯" prop="region">
-            <el-select
-              v-model="ruleForm.campus"
-              size="medium"
-              filterable
-              placeholder="璇烽�夋嫨鍒嗙被"
+          <el-row>
+            <el-col :span="20"
+              ><el-form-item label="閫傜敤绉戝" prop="region">
+                <el-select
+                  v-model="tempDetpRelevanceslist"
+                  @remove-tag="removetag"
+                  style="width: 55vw"
+                  size="medium"
+                  multiple
+                  filterable
+                  placeholder="璇烽�夋嫨绉戝"
+                >
+                  <el-option
+                    class="ruleFormaa"
+                    v-for="item in belongDepts"
+                    :key="item.deptCode"
+                    :label="item.deptName"
+                    :value="item.deptCode"
+                  >
+                  </el-option>
+                </el-select> </el-form-item
+            ></el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="20"
+              ><el-form-item label="閫傜敤鐥呭尯" prop="region">
+                <el-select
+                  v-model="tempbelongWards"
+                  @remove-tag="removehpsp"
+                  style="width: 55vw"
+                  size="medium"
+                  multiple
+                  filterable
+                  placeholder="璇烽�夋嫨鐥呭尯"
+                >
+                  <el-option
+                    class="ruleFormaa"
+                    v-for="item in belongWards"
+                    :key="item.districtCode"
+                    :label="item.districtName"
+                    :value="item.districtCode"
+                  >
+                  </el-option>
+                </el-select> </el-form-item
+            ></el-col>
+          </el-row>
+          <el-form-item label="缁撴潫璇�" prop="conclusion">
+            <el-input
+              style="width: 55vw; line-height: 80px"
+              type="textarea"
+              :rows="5"
+              autosize
+              placeholder="璇疯緭鍏ュ唴瀹�"
+              v-model="ruleForm.conclusion"
             >
-              <el-option
-                class="ruleFormaa"
-                v-for="item in courtyardlist"
-                :key="item.label"
-                :label="item.label"
-                :value="item.label"
-              >
-              </el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="閫傜敤绉戝" prop="region">
-            <el-cascader
-              v-model="tempDetpRelevanceslist"
-              :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-input
+          ></el-form-item>
+
           <el-form-item>
             <el-button type="success" @click="nextstep('ruleForm')"
               >涓嬩竴姝�</el-button
@@ -265,43 +318,135 @@
       </div>
       <!-- 闂嵎璁剧疆 -->
       <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="getaddtopiclist"
-            >娣诲姞棰樼洰</el-button
+        <div class="leftvlue-jbxx">
+          闂嵎闂璁剧疆
+          <span style=""
+            ><el-button
+              type="warning"
+              icon="el-icon-finished"
+              round
+              @click="test"
+              >闂瑙勫垯鏁堥獙</el-button
+            ></span
           >
         </div>
+        <el-divider></el-divider>
+        <div style="display: flex; justify-content: space-between">
+          <div>
+            <el-button
+              type="primary"
+              icon="el-icon-plus"
+              round
+              @click="getaddtopiclist"
+              >娣诲姞闂</el-button
+            >
+            <el-button
+              type="success"
+              icon="el-icon-edit-outline"
+              round
+              @click="Operateit = !Operateit"
+              >{{ !Operateit ? "缂栬緫闂" : "瀹屾暣淇℃伅灞曠ず" }}</el-button
+            >
+          </div>
+          <div style="display: flex" v-if="ruleForm.scoreType == 1">
+            <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">
+          <div :class="Operateit ? 'presentation-left' : 'spresentation-left'">
             <el-card class="box-card" style="min-height: 688px">
-              <el-table v-loading="loading" :data="ruleForm.svyLibTopics">
+              <el-table
+                v-loading="loading"
+                :data="ruleForm.svyTemplateLibScripts"
+              >
                 <el-table-column
                   label="搴忓彿"
                   align="center"
-                  key="guid"
-                  prop="guid"
+                  key="sort"
+                  prop="sort"
+                  width="50"
                 />
                 <el-table-column
-                  label="棰樼洰"
+                  label="闂涓婚"
                   align="center"
-                  key="topic"
-                  prop="topic"
+                  key="scriptTopic"
+                  prop="scriptTopic"
                   :show-overflow-tooltip="true"
                 />
                 <el-table-column
-                  label="涓昏鍐呭"
+                  label="棰樺瀷"
                   align="center"
-                  key="topicContent"
-                  prop="topicContent"
+                  key="scriptType"
+                  prop="scriptType"
+                  :show-overflow-tooltip="true"
+                >
+                  <template slot-scope="scope">
+                    <dict-tag
+                      :options="askvaluetype"
+                      :value="scope.row.scriptType"
+                    />
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  v-if="!Operateit"
+                  label="闂鍐呭"
+                  align="center"
+                  key="scriptContent"
+                  prop="scriptContent"
                   :show-overflow-tooltip="true"
                 />
+                <el-table-column
+                  v-if="!Operateit"
+                  label="鎸囨爣鍚嶇О"
+                  align="center"
+                  key="targetname"
+                  prop="targetname"
+                  :show-overflow-tooltip="true"
+                />
+                <el-table-column
+                  v-if="!Operateit"
+                  label="鏄惁蹇呭~"
+                  align="center"
+                  key="ismandatory"
+                  prop="ismandatory"
+                  :show-overflow-tooltip="true"
+                >
+                  <template slot-scope="scope">
+                    <dict-tag
+                      :options="required"
+                      :value="scope.row.ismandatory"
+                    />
+                  </template>
+                </el-table-column>
+                <el-table-column
+                  label="涓嬮璺宠浆"
+                  align="center"
+                  key="nextScriptno"
+                  prop="nextScriptno"
+                >
+                  <template slot-scope="scope">
+                    <span>{{
+                      scope.row.nextScriptno == 0
+                        ? "宸叉槸鏈�鍚庝竴棰�"
+                        : scope.row.nextScriptno
+                    }}</span>
+                  </template>
+                </el-table-column>
 
                 <el-table-column
+                  v-if="Operateit"
                   label="鎿嶄綔"
                   align="center"
                   width="250"
@@ -337,128 +482,260 @@
               </el-table>
             </el-card>
           </div>
-          <div class="presentation-right">
+          <div class="presentation-right" v-if="Operateit">
             <el-card class="box-card">
               <el-form
                 :inline="true"
                 :model="topicobj"
                 class="demo-form-inline"
               >
-                <div class="headline">
-                  棰樼洰璁剧疆璇︽儏
-                  <span style="margin-left: 30px"
-                    ><el-button type="primary" @click="Submittopicobj"
-                      >淇濆瓨</el-button
-                    ></span
-                  >
-                </div>
-                <el-form-item label="棰樼洰鏍囬">
-                  <el-input
-                    v-model="topicobj.topic"
-                    placeholder="璇疯緭鍏ユ爣棰�"
-                  ></el-input>
-                </el-form-item>
+                <div class="headline">闂璁剧疆璇︽儏</div>
+                <el-row :gutter="10">
+                  <el-col :span="12">
+                    <el-form-item label="闂涓婚">
+                      <el-input
+                        v-model="topicobj.scriptTopic"
+                        placeholder="璇疯緭鍏ユ爣棰�"
+                      ></el-input> </el-form-item
+                  ></el-col>
+                  <el-col :span="12">
+                    <el-form-item label="涓嬮璺宠浆">
+                      <el-input
+                        v-model="topicobj.nextScriptno"
+                        placeholder="璇疯緭鍏ラ鍙�"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+
+                <el-row :gutter="10">
+                  <el-form-item label="闂鍐呭">
+                    <el-input
+                      style="width: 600px"
+                      type="textarea"
+                      :rows="2"
+                      autosize
+                      placeholder="璇疯緭鍏ラ棶棰樺唴瀹�"
+                      v-model="topicobj.scriptContent"
+                    >
+                    </el-input
+                  ></el-form-item>
+                </el-row>
+                <el-row :gutter="10">
+                  <el-col :span="12"
+                    ><el-form-item label="闂绫诲瀷">
+                      <el-select
+                        v-model="topicobj.scriptType"
+                        disabled
+                        size="medium"
+                        filterable
+                        placeholder="璇烽�夋嫨鍒嗙被"
+                      >
+                        <el-option
+                          class="topicobjaa"
+                          v-for="item in askvaluetype"
+                          :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="闂鍒嗗��"
+                      v-if="topicobj.scoretype == 1"
+                    >
+                      <el-input
+                        v-model="topicobj.score"
+                        placeholder="璇疯緭鍏ラ鍙�"
+                      ></el-input>
+                    </el-form-item>
+                  </el-col>
+                </el-row>
+
                 <el-row :gutter="10">
                   <el-col :span="12"
                     ><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-radio-group v-model="topicobj.ismandatory">
+                        <el-radio
+                          v-for="(item, index) in required"
+                          :label="item.value"
+                          >{{ item.label }}</el-radio
                         >
-                        </el-option>
-                      </el-select> </el-form-item
-                  ></el-col>
+                      </el-radio-group>
+                    </el-form-item></el-col
+                  >
                   <el-col :span="12"
                     ><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-radio-group v-model="topicobj.isenable">
+                        <el-radio
+                          v-for="(item, index) in usable"
+                          :label="item.value"
+                          >{{ item.label }}</el-radio
                         >
-                        </el-option>
-                      </el-select> </el-form-item
-                  ></el-col>
+                      </el-radio-group>
+                    </el-form-item></el-col
+                  >
                 </el-row>
-                <div class="headline">閫夐」璁剧疆</div>
-                <div
-                  class="topicxq"
-                  v-for="item in topicobj.svyLibTopicoptions"
+                <el-form-item
+                  label="鏄惁鐢遍�夐」閰嶇疆璺宠浆"
+                  v-if="topicobj.scriptType == 1"
                 >
-                  <el-row :gutter="10">
-                    <el-col :span="11"
-                      ><el-form-item label="棰樺彿">
-                        <el-input
-                          type="text"
-                          placeholder="璇疯緭鍏�"
-                          v-model="item.topicid"
-                          show-word-limit
+                  <el-radio-group v-model="topicobj.branchFlag">
+                    <el-radio :label="1">鏄�</el-radio>
+                    <el-radio :label="0">鍚�</el-radio>
+                  </el-radio-group>
+                </el-form-item>
+                <el-form-item label="閫変腑鎻愮ず" v-if="topicobj.scriptType != 1">
+                  <el-input
+                    style="width: 24vw"
+                    type="textarea"
+                    autosize
+                    placeholder="璇疯緭鍏ュ唴瀹�"
+                    v-model="topicobj.prompt"
+                  >
+                  </el-input
+                ></el-form-item>
+                <div
+                  v-if="topicobj.scriptType == 1 || topicobj.scriptType == 2"
+                >
+                  <div class="headline">閫夐」璁剧疆</div>
+                  <div
+                    class="topicxq"
+                    v-for="item in topicobj.svyLibTemplateTargetoptions"
+                  >
+                    <el-row :gutter="5">
+                      <el-col :span="16"
+                        ><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="8">
+                        <el-form-item
+                          v-if="topicobj.scoretype == 1"
+                          label="閫夐」鍒嗗��"
                         >
-                        </el-input> </el-form-item
-                    ></el-col>
-                    <el-col :span="11"
-                      ><el-form-item label="鍒嗗��">
-                        <el-input
-                          type="text"
-                          placeholder="璇疯緭鍏�"
-                          v-model="item.score"
-                          show-word-limit
+                          <el-input
+                            class="custom-width"
+                            type="text"
+                            placeholder="璇疯緭鍏ラ�夐」鍒嗗��"
+                            v-model="item.score"
+                            show-word-limit
+                          >
+                          </el-input>
+                        </el-form-item>
+                        <el-form-item
+                          v-else-if="topicobj.scoretype == 2"
+                          label="ABC绛夌骇"
                         >
-                        </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-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-input> </el-form-item
-                    ></el-col>
-                    <el-col :span="11"
-                      ><el-form-item 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-form-item label="寮傚父鎻愰啋">
+                        <el-radio-group v-model="item.isabnormal">
+                          <el-radio :label="1">鏄�</el-radio>
+                          <el-radio :label="0">鍚�</el-radio>
+                        </el-radio-group>
+                      </el-form-item>
+                    </el-row>
+                    <el-row :gutter="10" v-if="topicobj.branchFlag == 1">
+                      <el-col :span="20"
+                        ><el-form-item label="涓嬮璺宠浆(搴忓彿)">
+                          <el-input
+                            type="text"
+                            @blur="branchFlagfn"
+                            placeholder="璇疯緭鍏ラ鍙�"
+                            v-model="item.nextQuestion"
+                            show-word-limit
+                          >
+                          </el-input> </el-form-item
+                      ></el-col>
+                    </el-row>
+                    <el-row :gutter="10" v-if="topicobj.scriptType == 1">
+                      <el-form-item label="閫変腑鎻愮ず">
                         <el-input
-                          type="text"
-                          placeholder="璇疯緭鍏ラ鍙�"
-                          v-model="item.jump"
-                          show-word-limit
+                          style="width: 24vw"
+                          type="textarea"
+                          autosize
+                          placeholder="璇疯緭鍏ュ唴瀹�"
+                          v-model="item.prompt"
                         >
-                        </el-input> </el-form-item
-                    ></el-col>
-                    <el-col :span="2">
-                      <el-button
-                        type="danger"
-                        icon="el-icon-delete"
-                        circle
-                        @click="deletexuanx(item)"
-                      ></el-button>
-                    </el-col>
-                  </el-row>
-                  <el-row :gutter="10">
-                    <el-form-item label="閫変腑鎻愮ず">
+                        </el-input
+                      ></el-form-item>
+                    </el-row>
+                    <el-row :gutter="10">
+                      <el-form-item label="閫夐」鏂囦欢" prop="sickness">
+                        <div style="width: 40vw">
+                          <div style="margin: 20px">
+                            <el-image
+                              style="width: 100px; height: 100px"
+                              :src="item.picturePath"
+                              :preview-src-list="[...item.picturePath]"
+                            >
+                            </el-image>
+                          </div>
+                        </div>
+                      </el-form-item>
+                    </el-row>
+                  </div>
+                </div>
+                <div v-else>
+                  <div class="topicxq">
+                    <el-row :gutter="10">
+                      <el-form-item label="绛旀">
+                        <el-input
+                          style="width: 20vw"
+                          type="textarea"
+                          :rows="2"
+                          placeholder="姝ゅ鏀剧疆鎮h�呭洖绛�"
+                          v-model="topicobj.reply"
+                        >
+                        </el-input
+                      ></el-form-item>
+                    </el-row>
+                    <el-form-item label="鍒嗗��">
+                      <template #label>
+                        鍒嗗��
+                        <el-tooltip
+                          class="item"
+                          effect="light"
+                          content="濉┖棰樺垎鏁板�肩敱璐熻矗浜哄憳鍦ㄩ棶鍗锋墜鏈哄悗鎵嬪姩璇勪环銆�"
+                          placement="top-start"
+                        >
+                          <i class="el-icon-warning-outline"></i>
+                        </el-tooltip>
+                        <!-- 鍦ㄦ爣绛惧悗鎻掑叆绾㈣壊鏄熷彿 -->
+                      </template>
                       <el-input
-                        style="width: 20vw"
-                        type="textarea"
-                        autosize
-                        placeholder="璇疯緭鍏ュ唴瀹�"
-                        v-model="item.prompt"
+                        type="text"
+                        placeholder="璇疯緭鍏ラ�夐」鍒嗗��"
+                        v-model="topicobj.score"
+                        show-word-limit
                       >
-                      </el-input
-                    ></el-form-item>
-                  </el-row>
+                      </el-input>
+                    </el-form-item>
+                  </div>
                 </div>
               </el-form>
             </el-card>
@@ -470,54 +747,70 @@
         >
         <el-button type="primary" @click="laststep()">涓婁竴姝�</el-button>
         <el-button type="info" @click="closeFm('ruleForm')">鍏抽棴</el-button>
-        <el-button @click="Departmenttreatment('ruleForm')">淇濆瓨棰樼洰鏁版嵁</el-button>
+        <el-button @click="Departmenttreatment('ruleForm')"
+          >淇濆瓨闂鏁版嵁</el-button
+        >
       </div>
       <!-- 闂嵎棰勮 -->
       <div v-if="Editprogress == 3">
         <div class="leftvlue-jbxx">闂嵎棰勮</div>
         <el-divider></el-divider>
         <div class="preview-left">
-          <!-- 鍗曢�� -->
-          <div class="topic-dev" v-for="item in valssu" :key="item.aaa">
-            <div class="dev-text">
-              {{ item.idd }}銆乕鍗曢�塢<span>{{ item.wssd }}</span>
+          <div v-for="item in ruleForm.svyTemplateLibScripts">
+            <!-- 鍗曢�� -->
+            <div
+              class="scriptTopic-dev"
+              :key="item.sort"
+              v-if="item.scriptType == 1"
+            >
+              <div class="dev-text">
+                {{ item.sort }}銆乕鍗曢�塢<span>{{ item.scriptContent }}</span>
+              </div>
+              <div class="dev-xx">
+                <el-radio-group v-model="item.remark">
+                  <el-radio
+                    v-for="(items, index) in item.svyLibTemplateTargetoptions"
+                    :key="index"
+                    :label="index"
+                    >{{ items.optioncontent }}</el-radio
+                  >
+                </el-radio-group>
+              </div>
             </div>
-            <div class="dev-xx">
-              <el-radio-group v-model="radio">
-                <el-radio
-                  v-for="(items, index) in item.sdadd"
-                  :key="index"
-                  :label="index"
-                  >{{ items }}</el-radio
-                >
-              </el-radio-group>
+            <!-- 澶氶�� -->
+            <div
+              class="scriptTopic-dev"
+              :key="item.sort"
+              v-if="item.scriptType == 2"
+            >
+              <div class="dev-text">
+                {{ item.sort }}銆乕澶氶�塢<span>{{ item.scriptContent }}</span>
+              </div>
+              <div class="dev-xx">
+                <el-checkbox-group v-model="qremark">
+                  <el-checkbox
+                    v-for="(items, index) in item.svyLibTemplateTargetoptions"
+                    :key="index"
+                    :label="index"
+                  >
+                    {{ items.optioncontent }}
+                  </el-checkbox>
+                </el-checkbox-group>
+              </div>
             </div>
-          </div>
-          <!-- 澶氶�� -->
-          <div class="topic-dev" v-for="item in valssu" :key="item.aaa">
-            <div class="dev-text">
-              {{ item.idd }}銆乕澶氶�塢<span>{{ item.wssd }}</span>
-            </div>
-            <div class="dev-xx">
-              <el-checkbox-group v-model="radios">
-                <el-checkbox
-                  v-for="(items, index) in item.sdadd"
-                  :key="index"
-                  :label="index"
-                >
-                  {{ items }}
-                </el-checkbox>
-              </el-checkbox-group>
-            </div>
-          </div>
-          <!-- 濉┖ -->
-          <div class="topic-dev" v-for="item in valssu" :key="item.aaa">
-            <div class="dev-text">
-              {{ item.idd }}銆乕濉┖]<span>{{ item.wssd }}</span>
-            </div>
-            <div class="dev-xx">
-              <el-input placeholder="璇疯緭鍏ョ瓟妗�" v-model="radioas" clearable>
-              </el-input>
+            <!-- 濉┖ -->
+            <div
+              class="scriptTopic-dev"
+              :key="item.sort"
+              v-if="item.scriptType == 4"
+            >
+              <div class="dev-text">
+                {{ item.sort }}銆乕濉┖]<span>{{ item.scriptContent }}</span>
+              </div>
+              <div class="dev-xx">
+                <el-input placeholder="璇疯緭鍏ョ瓟妗�" v-model="radioas" clearable>
+                </el-input>
+              </div>
             </div>
           </div>
         </div>
@@ -526,77 +819,421 @@
         <el-button type="primary" @click="laststep()">涓婁竴姝�</el-button>
       </div>
     </div>
-    <!-- 棰勮妯$増寮圭獥 -->
+    <!-- 娣诲姞闂寮圭獥 -->
     <el-drawer
-      title="娣诲姞棰樼洰"
+      title="娣诲姞闂"
       :visible.sync="drawer"
       custom-class="demo-drawer"
-      width="50%"
+      size="50%"
     >
-      <div class="preview-left">
-        <el-form
-          :model="queryParams"
-          ref="queryForm"
-          size="small"
-          :inline="true"
-          label-width="98px"
-        >
-          <el-form-item label="鏍囬" prop="userName">
-            <el-input
-              v-model="queryParams.userName"
-              placeholder="璇疯緭鍏�"
-              clearable
-              style="width: 200px"
-              @keyup.enter.native="getaddtopiclist"
-            />
-          </el-form-item>
-
-          <el-form-item>
-            <el-button
-              type="primary"
-              icon="el-icon-search"
-              size="medium"
-              @click="getaddtopiclist"
-              >鎼滅储</el-button
-            >
-            <el-button icon="el-icon-refresh" size="medium" @click="resetQuery"
-              >閲嶇疆</el-button
-            >
-          </el-form-item>
-        </el-form>
-        <el-table v-loading="loading" :data="userList">
-          <el-table-column
-            label="鏍囬"
-            align="center"
-            key="topic"
-            prop="topic"
-            width="100"
-          />
-          <el-table-column
-            label="闂鍐呭"
-            align="center"
-            key="topicContent"
-            prop="topicContent"
-            width="200"
-            :show-overflow-tooltip="true"
-          />
-
-          <el-table-column
-            label="鎿嶄綔"
-            align="center"
-            class-name="small-padding fixed-width"
-          >
-            <template slot-scope="scope">
-              <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
+      <div style="margin: 0 25px">
+        <el-tabs v-model="activeName">
+          <el-tab-pane label="棰樺簱閫夊彇" name="first">
+            <div class="preview-left">
+              <el-form
+                :model="queryParams"
+                ref="queryForm"
+                size="small"
+                :inline="true"
+                label-width="98px"
               >
-            </template>
-          </el-table-column>
-        </el-table>
+                <el-form-item label="闂鏍囬" prop="scriptTopic">
+                  <el-input
+                    v-model="queryParams.scriptTopic"
+                    placeholder="璇疯緭鍏�"
+                    clearable
+                    style="width: 200px"
+                    @keyup.enter.native="getaddtopiclist"
+                  />
+                </el-form-item>
+                <el-form-item label="闂绫诲瀷" prop="scriptTopic">
+                  <el-select
+                    v-model="queryParams.scriptType"
+                    size="medium"
+                    filterable
+                    placeholder="璇烽�夋嫨鍒嗙被"
+                  >
+                    <el-option
+                      class="topicobjaa"
+                      v-for="item in askvaluetype"
+                      :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="getaddtopiclist"
+                    >鎼滅储</el-button
+                  >
+                  <el-button
+                    icon="el-icon-refresh"
+                    size="medium"
+                    @click="resetQuery"
+                    >閲嶇疆</el-button
+                  >
+                </el-form-item>
+              </el-form>
+              <el-table v-loading="loading" :data="userList">
+                <el-table-column
+                  label="鏍囬"
+                  align="center"
+                  key="scriptTopic"
+                  prop="scriptTopic"
+                  width="100"
+                />
+                <el-table-column
+                  label="闂鍐呭"
+                  align="center"
+                  key="scriptContent"
+                  prop="scriptContent"
+                  width="200"
+                  :show-overflow-tooltip="true"
+                />
+                <el-table-column
+                  label="閫夐」鍐呭"
+                  align="center"
+                  key="targetoptions"
+                  prop="targetoptions"
+                  width="200"
+                  :show-overflow-tooltip="true"
+                />
+
+                <el-table-column
+                  label="鎿嶄綔"
+                  align="center"
+                  class-name="small-padding fixed-width"
+                >
+                  <template slot-scope="scope">
+                    <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
+                    >
+                  </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-tab-pane>
+          <el-tab-pane label="鎵嬪姩閰嶇疆" name="second">
+            <div class="preview-left">
+              <el-form
+                :inline="true"
+                :model="indexform"
+                class="demo-form-inline"
+              >
+                <div class="headline">
+                  闂璁剧疆璇︽儏
+                  <span style="margin-left: 30px"
+                    ><el-button type="primary" @click="Submittopicobj"
+                      >淇濆瓨鏂板</el-button
+                    ></span
+                  >
+                </div>
+                <el-divider></el-divider>
+                <div>
+                  <el-row :gutter="10">
+                    <el-col :span="18"
+                      ><el-form-item label="闂鍐呭">
+                        <el-input
+                          style="width: 400px"
+                          type="textarea"
+                          v-model="indexform.scriptContent"
+                          placeholder="璇疯緭鍏ラ棶棰樺唴瀹�"
+                        ></el-input> </el-form-item
+                    ></el-col>
+                  </el-row>
+                  <el-row :gutter="10">
+                    <el-col :span="12">
+                      <el-form-item label="闂涓婚">
+                        <el-input
+                          v-model="indexform.scriptTopic"
+                          placeholder="璇疯緭鍏ラ棶棰樹富棰�"
+                        ></el-input>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                      <el-form-item label="闂寰楀垎">
+                        <el-input
+                          v-model="indexform.score"
+                          placeholder="璇疯緭鍏ュ垎鏁�"
+                        ></el-input>
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+                  <el-row :gutter="10">
+                    <el-col :span="12">
+                      <el-form-item label="璇勪环绫诲瀷">
+                        <el-select
+                          v-model="indexform.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-col :span="12">
+                      <el-form-item label="璇█">
+                        <el-select
+                          v-model="indexform.language"
+                          size="medium"
+                          filterable
+                          placeholder="璇烽�夋嫨鍒嗙被"
+                        >
+                          <el-option
+                            class="topicobjaa"
+                            v-for="item in languagelist"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value"
+                          >
+                          </el-option>
+                        </el-select>
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+                  <el-row :gutter="10">
+                    <el-col :span="12">
+                      <el-form-item label="鏄惁鍙敤">
+                        <el-radio-group v-model="indexform.isenable">
+                          <el-radio
+                            v-for="(item, index) in usable"
+                            :label="item.value"
+                            >{{ item.label }}</el-radio
+                          >
+                        </el-radio-group>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                      <el-form-item label="鏄惁蹇呭~">
+                        <el-radio-group v-model="indexform.ismandatory">
+                          <el-radio
+                            v-for="(item, index) in required"
+                            :label="item.value"
+                            >{{ item.label }}</el-radio
+                          >
+                        </el-radio-group>
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+                </div>
+                <div>
+                  <el-form-item label="鎸囨爣鍚嶇О" prop="deptId">
+                    <el-input
+                      style="width: 250px"
+                      type="textarea"
+                      :rows="2"
+                      v-model="indexform.targetname"
+                      placeholder="璇疯緭鍏ユ寚鏍囧悕绉�"
+                      maxlength="20"
+                    />
+                  </el-form-item>
+                  <el-form-item label="鎸囨爣鎻忚堪" prop="deptId">
+                    <el-input
+                      style="width: 250px"
+                      type="textarea"
+                      :rows="2"
+                      v-model="indexform.targetdesc"
+                      placeholder="璇疯緭鍏ユ寚鏍囨弿杩�"
+                      maxlength="60"
+                    />
+                  </el-form-item>
+
+                  <el-row>
+                    <el-col :span="20">
+                      <el-form-item label="缁撴灉绫诲瀷">
+                        <el-radio-group v-model="indexform.valueType">
+                          <el-radio :label="1">閫夐」</el-radio>
+                          <el-radio :label="2">鏂囨湰</el-radio>
+                          <el-radio :label="3">鏁板��</el-radio>
+                        </el-radio-group>
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+                  <el-row>
+                    <el-col :span="20">
+                      <el-form-item label="闂绫诲瀷">
+                        <el-radio-group v-model="indexform.scriptType">
+                          <el-radio :label="1">鍗曢��</el-radio>
+                          <el-radio :label="2">澶氶��</el-radio>
+                          <el-radio :label="4">闂瓟</el-radio>
+                        </el-radio-group>
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+                </div>
+                <div class="topicxq" v-if="indexform.scriptType == 4">
+                  <el-row>
+                    <el-col :span="20">
+                      <el-form-item label="鏀堕泦鍐呭">
+                        <el-input
+                          style="width: 400px"
+                          type="textarea"
+                          v-model="indexform.value"
+                          placeholder="闂鏀堕泦鍐呭"
+                        ></el-input>
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+                </div>
+
+                <div v-else>
+                  <div class="headline">
+                    <div class="basics">
+                      閫夐」璁剧疆
+                      <span style="margin-left: 30px"
+                        ><el-button type="primary" round @click="addoption"
+                          >+鏂板</el-button
+                        ></span
+                      >
+                    </div>
+                  </div>
+                  <el-divider></el-divider>
+                  <div
+                    class="topicxq"
+                    v-for="item in indexform.svyLibTemplateTargetoptions"
+                    v-if="item.isoperation != 3"
+                  >
+                    <el-row :gutter="10">
+                      <el-col :span="11"
+                        ><el-form-item label="閫夐」鍚嶇О">
+                          <el-input
+                            style="width: 400px"
+                            type="text"
+                            placeholder="璇疯緭鍏ラ�夐」鍒嗗��"
+                            v-model="item.optioncontent"
+                            show-word-limit
+                          >
+                          </el-input> </el-form-item
+                      ></el-col>
+                      <el-col :span="11">
+                        <el-form-item
+                          v-if="indexform.scoretype == 1"
+                          label="鍒嗗��"
+                        >
+                          <el-input
+                            type="text"
+                            placeholder="璇疯緭鍏ラ�夐」鍒嗗��"
+                            v-model="item.score"
+                            show-word-limit
+                          >
+                          </el-input>
+                        </el-form-item>
+                        <el-form-item
+                          v-else-if="indexform.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="indexform.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-col
+                        :span="2"
+                        :offsset="indexform.scoretype == 4 ? 11 : 0"
+                      >
+                        <el-button
+                          type="danger"
+                          icon="el-icon-delete"
+                          circle
+                          @click="deletexuanx(item)"
+                        ></el-button>
+                      </el-col>
+                    </el-row>
+                    <el-row :gutter="10">
+                      <el-form-item label="寮傚父鎻愰啋">
+                        <el-radio-group v-model="item.isabnormal">
+                          <el-radio :label="1">鏄�</el-radio>
+                          <el-radio :label="0">鍚�</el-radio>
+                        </el-radio-group>
+                      </el-form-item>
+                    </el-row>
+                    <el-row :gutter="10" v-if="item.scriptType == 1">
+                      <el-form-item label="閫変腑鎻愮ず">
+                        <el-input
+                          style="width: 400px"
+                          type="textarea"
+                          autosize
+                          placeholder="璇疯緭鍏ュ唴瀹�"
+                          v-model="item.prompt"
+                        >
+                        </el-input
+                      ></el-form-item>
+                    </el-row>
+                    <el-form-item label="閫夐」鏂囦欢" prop="sickness">
+                      <div style="width: 40vw">
+                        <el-upload
+                          class="upload-demo"
+                          :action="uploadImgUrl"
+                          :headers="headers"
+                          accept=".jpg,.png,image/*"
+                          :on-success="handleChange.bind(this, item)"
+                        >
+                          <el-button size="small" type="primary"
+                            >鐐瑰嚮涓婁紶</el-button
+                          >
+                        </el-upload>
+                        <div style="margin: 20px">
+                          <el-image
+                            style="width: 100px; height: 100px"
+                            :src="item.picturePath"
+                            :preview-src-list="[...item.picturePath]"
+                          >
+                          </el-image>
+                        </div>
+                      </div>
+                    </el-form-item>
+                  </div>
+                </div>
+              </el-form>
+            </div>
+          </el-tab-pane>
+        </el-tabs>
       </div>
     </el-drawer>
+    <!-- 娣诲姞閫傜敤鐤剧梾绐楀彛 -->
+    <Optional-Form
+      ref="child"
+      :dialogVisiblepatient="dialogVisiblepatient"
+      :overallCase="illnesslist"
+      @addoption="dialogVisiblepatient = false"
+      @kkoption="dialogVisiblepatient = true"
+    />
   </div>
 </template>
 
@@ -606,9 +1243,9 @@
 import store from "@/store";
 import {
   getQtemplateclassify,
-  delQtemplateclassify,
-  addQtemplateclassify,
-  getQtemplatelist,
+  depthospgetson,
+  depthospgetsonlist,
+  getQtemplateobj,
   compileQtemplate,
   Qtemplateinfo,
   compileissue,
@@ -616,16 +1253,27 @@
   Followupinfo,
   issueinfo,
   getissuelist,
+  depthospgetsondel,
   deltargetillness,
   addtargetillness,
   getillnesslist,
   illnesslistget,
   getillness,
 } from "@/api/AiCentre/index";
+import OptionalForm from "@/components/OptionalForm"; //姝e垯缁勪欢
+import { getToken } from "@/utils/auth";
 
 export default {
+  name: "Questionnaireinfo",
+
+  components: { OptionalForm },
+
   data() {
     return {
+      headers: {
+        Authorization: "Bearer " + getToken(),
+      },
+      uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort",
       sidecolumnrabs: "left", //鏂瑰悜
       Editprogress: 1, //缂栬緫杩涘害
       currentVersion: "1.2.3", //褰撳墠鐗堟湰
@@ -634,20 +1282,64 @@
       radio: "false", //鍗曢�夐閫変腑
       radios: [], //澶氶�夐閫変腑
       radioas: "", //濉┖棰樼瓟妗�
+      activeName: "first",
       dynamicTags: [],
       inputVisible: false,
+      dialogVisiblepatient: false, //閫傜敤鐤剧梾绐楀彛
       inputValue: "",
       topicobj: {},
       // 鎬绘潯鏁�
       total: 1,
-      ruleForm: {},
-      rules: {},
+      ruleForm: {
+        svyTemplateLibScripts: [],
+        tempDetpRelevances: [],
+        svyLibTemplateTagList: [],
+        scoreType: "4",
+        isenable: "0",
+        longTemp: "0",
+        sendDay: "5",
+      },
+      indexform: {
+        svyLibTemplateTargetoptions: [],
+      },
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        categoryid: [
+          { required: true, message: "闂嵎鍒嗙被涓嶈兘涓虹┖", trigger: "blur" },
+        ],
+        scoreType: [
+          { required: true, message: "璇勪环绫诲瀷涓嶈兘涓虹┖", trigger: "blur" },
+        ],
+        svyname: [
+          { required: true, message: "闂嵎鍚嶇О涓嶈兘涓虹┖", trigger: "blur" },
+        ],
+        isenable: [
+          { required: true, message: "鍙敤鐘舵�佷笉鑳戒负绌�", trigger: "blur" },
+        ],
+        scriptTopic: [
+          { required: true, message: "闂涓婚涓嶈兘涓虹┖", trigger: "blur" },
+        ],
+        ismandatory: [
+          { required: true, message: "鏄惁蹇呭~涓嶈兘涓虹┖", trigger: "blur" },
+        ],
+        scriptType: [
+          { required: true, message: "闂绫诲瀷涓嶈兘涓虹┖", trigger: "blur" },
+        ],
+        suitway: [
+          { required: true, message: "闂嵎鏂瑰紡涓嶈兘涓虹┖", trigger: "blur" },
+        ],
+        conclusion: [
+          { required: true, message: "闂嵎缁撴潫璇笉鑳戒负绌�", trigger: "blur" },
+        ],
+      },
       rulesa: {},
       optionsclass: [], //鍒嗙被鍒楄〃
       optionlist: [
-        { value: "topic", table: "topic" },
-        { value: "topic", table: "topic" },
+        { value: "scriptTopic", table: "scriptTopic" },
+        { value: "scriptTopic", table: "scriptTopic" },
       ],
+
+      appraiselist: [],
 
       fileList: [
         {
@@ -674,64 +1366,130 @@
           sdadd: ["sss", "ssccss", "ssaas", "ss"],
         },
       ],
-      addvalue: "娣诲姞棰樼洰",
-      // 棰樼洰琛ㄦ牸鏁版嵁
+      addvalue: "娣诲姞闂",
+      // 闂琛ㄦ牸鏁版嵁
       userList: [],
       deptList: [],
       props: { multiple: true, value: "deptId", label: "deptName" },
       themelist: [],
       languagelist: [],
       courtyardlist: [],
+      askvaluetype: [],
       precedencetype: [],
       inputValueillness: "",
       inputVisible: false,
       inputVisibleillness: false,
       illnessVisible: false, //鎸囨爣鐤剧梾寮规
+      Operateit: true,
       deptOptions: [],
       optionsillness: [],
       delScriptVOList: [],
       illnesslistapi: [],
       illnesslist: [],
-      tempDetpRelevanceslist: [],
+      tempDetpRelevanceslist: [], //绉戝鏁版嵁
+      tempDetpRelevanceslistform: [], //绉戝鏁版嵁
+      tempbelongWards: [], //鐥呭尯鏁版嵁
+      tempbelongWardsform: [], //鐥呭尯鏁版嵁
       optionstag: [],
       valuetype: [],
-      usable: [],
-      required: [],
+      qremark: [],
+      hosplist: [],
+      deptlist: [],
+      usable: [
+        { value: "0", label: "鍙敤" },
+        { value: "1", label: "鍋滅敤" },
+      ],
+      longtype: [
+        { value: "0", label: "鏅�氫换鍔�" },
+        { value: "1", label: "闀挎湡浠诲姟" },
+      ],
+      required: [
+        { value: "1", label: "蹇呭~" },
+        { value: "2", label: "涓嶅繀濉�" },
+      ],
       mode: [], //鏂瑰紡
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
         pageSize: 10,
       },
+      belongWards: [],
+      belongDepts: [],
+      queryParamsdept: {
+        tempid: "",
+        type: 1,
+      },
     };
   },
-
+  activated() {
+    if (this.id != this.$route.query.id) {
+      this.getissueinfo();
+      this.gettabList();
+    } else {
+      this.ruleForm.svyTemplateLibScripts =
+        this.ruleForm.svyTemplateLibScripts.filter(
+          (item) => item.isoperation != 3
+        );
+      this.ruleForm.svyLibTemplateTagList =
+        this.ruleForm.svyLibTemplateTagList.filter(
+          (item) => item.isoperation != 3
+        );
+      if (this.ruleForm.suitway)
+        this.ruleForm.suitway = this.ruleForm.suitway.split(",");
+      this.delScriptVOList = [];
+      this.tempDetpRelevanceslistform = [];
+      this.tempbelongWardsform = [];
+      this.$forceUpdate();
+    }
+  },
   created() {
-    this.gettabList();
     this.getissueinfo();
-    this.mode = store.getters.mode;
+    this.gettabList();
+    this.mode = store.getters.Askmode;
     this.languagelist = store.getters.languagelist;
     this.usable = store.getters.usable;
     this.required = store.getters.required;
     this.valuetype = store.getters.valuetype;
     this.courtyardlist = store.getters.courtyardlist;
-  },
+    this.askvaluetype = store.getters.askvaluetype;
+    this.appraiselist = store.getters.appraiselist;
+    this.belongWards = store.getters.belongWards;
+    this.belongDepts = store.getters.belongDepts;
 
+    // this.test();
+  },
+  computed: {
+    displayedTags() {
+      // 杩斿洖鍓�10涓猼ag
+      return this.illnesslist.slice(0, 10);
+    },
+    hasMore() {
+      // 鍒ゆ柇鏄惁鏈夋洿澶氱殑tag
+      return this.illnesslist.length > 10;
+    },
+    remaining() {
+      // 璁$畻鍓╀綑鐨則ag鏁伴噺
+      return this.illnesslist.length - 10;
+    },
+  },
   methods: {
     // 鍏叡鏂规硶---------------
     getIndexInArray(arr, obj) {
       return arr.indexOf(obj);
+    },
+    processElement(element) {
+      return { ...element, isoperation: 1 };
     },
     // 閫掑綊鎵佸钩鍖�
     flattenArray(arr) {
       let result = [];
       arr.forEach((item) => {
         result.push(item);
-        if (item.svyLibTitleCategoryList) {
+        if (item.svyLibTemplateCategoryList) {
           result = result.concat(
-            this.flattenArray(item.svyLibTitleCategoryList)
+            this.flattenArray(item.svyLibTemplateCategoryList)
           );
-          delete item.svyLibTitleCategoryList;
+          delete item.svyLibTemplateCategoryList;
         }
       });
       return result;
@@ -740,88 +1498,171 @@
     // 鑾峰彇鏁版嵁
     getissueinfo() {
       this.id = this.$route.query.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);
-      });
-      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");
-      });
+      this.queryParamsdept.tempid = this.id;
+      this.ruleForm = {
+        svyTemplateLibScripts: [],
+        tempDetpRelevances: [],
+        svyLibTemplateTagList: [],
+        scoreType: "4",
+        isenable: "0",
+        longTemp: "0",
+        sendDay: "5",
+      };
+      this.topicobj = {};
+
+      if (this.id) {
+        getQtemplateobj({ svyid: this.id }).then((res) => {
+          this.ruleForm = res.rows[0];
+          this.dynamicTags = this.ruleForm.svyLibTemplateTagList.map(
+            this.processElement
+          );
+          console.log(this.dynamicTags, "this.dynamicTags");
+          if (this.ruleForm.suitway)
+            this.ruleForm.suitway = this.ruleForm.suitway.split(",");
+        });
+        getillness({ outid: this.id, type: 5 }).then((res) => {
+          this.illnesslist = res.rows;
+          this.illnesslist.forEach((item) => {
+            item.icdname = item.icd10name;
+          });
+        });
+      } else {
+        this.ruleForm.isenable = "1";
+      }
+
       // 鍒嗙被
       getQtemplateclassify({}).then((res) => {
-        // this.optionsclass = this.flattenArray(res.rows);
         this.optionsclass = res.rows;
+      });
+      this.tempDetpRelevanceslist = [];
+      this.tempbelongWards = [];
+
+      depthospgetsonlist(this.queryParamsdept).then((res) => {
+        if (res.code == 200) {
+          let arr = res.rows;
+          arr.forEach((item) => {
+            if (item.deptType == 1) {
+              this.deptlist.push(item);
+              this.tempDetpRelevanceslist.push(item.deptCode);
+            } else if (item.deptType == 2) {
+              this.hosplist.push(item);
+              this.tempbelongWards.push(item.deptCode);
+            }
+          });
+        }
       });
     },
     submitForm(formName) {
-      this.ruleForm.labelInfo = this.dynamicTags.join(",");
-      this.ruleForm.suitway = this.ruleForm.suitway.join(",");
-
+      this.$modal.loading("姝e湪淇淇濆瓨鏁版嵁锛岃绋嶅��...");
+      if (Array.isArray(this.ruleForm.suitway)) {
+        this.ruleForm.suitway = this.ruleForm.suitway.join(",");
+      }
+      if (!this.ruleForm.categoryid) {
+        this.ruleForm.categoryid = -1;
+      }
+      // 棰樼洰淇濆瓨澶勭悊
+        //   鎻愪氦
+        this.ruleForm.svyTemplateLibScripts.forEach((res) => {
+        if (!res.isoperation) {
+          res.isoperation = 2;
+        }
+        res.ivrLibaScriptTargetoptionList =
+          res.svyLibTemplateTargetoptions.map((item) => {
+            if (!item.isoperation) {
+              item.isoperation = 2;
+              item.templateID = this.ruleForm.id;
+            }
+            return item;
+          });
+      });
+      this.delScriptVOList.forEach((item)=>{
+          this.ruleForm.svyTemplateLibScripts.push(item)
+        })
       if (this.id) {
         this.ruleForm.isoperation = 2;
-        compileQtemplate(this.ruleForm).then((response) => {
+        this.ruleForm.tempDetpRelevances = null;
+        compileQtemplate(this.ruleForm).then((res) => {
           this.$modal.msgSuccess("淇敼鎴愬姛");
-          this.$router.go(-1);
+          this.confirmillness();
+          this.putbelongDepts();
+          this.$modal.closeLoading();
+          // this.$router.go(-1);
+          window.location.reload();
         });
       } else {
         this.ruleForm.isoperation = 1;
-        compileQtemplate(this.ruleForm).then((response) => {
+        this.ruleForm.version = this.ruleForm.version
+          ? this.ruleForm.version
+          : "1.0";
+        this.ruleForm.tempDetpRelevances = null;
+        compileQtemplate(this.ruleForm).then((res) => {
           this.$modal.msgSuccess("鏂板鎴愬姛");
+          this.confirmillness(res.data);
+          this.putbelongDepts(res.data);
+          this.$modal.closeLoading();
           this.$router.go(-1);
         });
       }
     },
-    // 绉戝澶勭悊
+    // 绉戝/闄㈠尯澶勭悊
     Departmenttreatment() {
-      this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist);
-      console.log(this.tempDetpRelevanceslist);
-      this.ruleForm.svyLibTopics = this.ruleForm.svyLibTopics.concat(
-        this.delScriptVOList
-      );
-      console.log(this.ruleForm.svyLibTopics, "this.ruleForm.svyLibTopics");
-      const result = this.tempDetpRelevanceslist.map(
-        (subArr) => subArr[subArr.length - 1]
-      );
-      console.log(result, "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]);
+      this.tempDetpRelevanceslist.forEach((item) => {
+        console.log(item);
+        let result = this.deptlist.some((obj) => obj.deptCode == item);
+        console.log(this.result, "result");
+
+        if (!result) {
+          this.tempDetpRelevanceslistform.push({
+            deptType: 1,
+            longTemp: this.ruleForm.longTemp,
+            deptCode: item,
+            tempid: this.id,
+            type: 1,
           });
         }
       });
-      console.log(this.ruleForm.tempDetpRelevances);
-      // 鏁扮粍瀵硅薄鏌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;
+      this.tempbelongWards.forEach((item) => {
+        let result = this.hosplist.some((obj) => obj.deptCode == item);
+        if (!result) {
+          this.tempbelongWardsform.push({
+            deptType: 2,
+            longTemp: this.ruleForm.longTemp,
+            deptCode: item,
+            tempid: this.id,
+            type: 1,
+          });
         }
       });
-      console.log(this.ruleForm.tempDetpRelevances);
+
+      // return
       setTimeout(() => {
         this.submitForm();
-      }, 1000);
+      }, 500);
+    },
+    // 绉戝鍒犻櫎瑙﹀彂
+    removetag(row) {
+      let result = this.deptlist
+        .filter((item) => item.deptCode == row)
+        .map((item) => item.id);
+      console.log(result.length);
+      if (result.length) {
+        depthospgetsondel(result).then((res) => {
+          if (res.code) {
+          }
+        });
+      }
+    },
+    // 鍒犻櫎鍒犻櫎瑙﹀彂
+    removehpsp(row) {
+      let result = this.hosplist
+        .filter((item) => item.deptCode == row)
+        .map((item) => item.id);
+      if (result.length) {
+        depthospgetsondel(result).then((res) => {
+          if (res.code) {
+          }
+        });
+      }
     },
     // 涓嬩竴姝�
     nextstep() {
@@ -850,9 +1691,10 @@
           });
         });
     },
-    // 鑾峰彇棰樼洰鍒楄〃
+    // 鑾峰彇闂鍒楄〃
     getaddtopiclist() {
       this.drawer = true;
+      this.queryParams.scoretype = this.ruleForm.scoreType;
       getissuelist(this.queryParams).then((res) => {
         this.loading = false;
         this.userList = res.rows;
@@ -860,55 +1702,84 @@
         console.log(this.userList);
       });
     },
-    // 鏂板棰樼洰
+    // 鏂板闂
     addtopic(row) {
       row.isoperation = 1;
-      row.svyLibTopicoptions.forEach((item) => {
+      row.svyLibScriptOptions.forEach((item) => {
         item.isoperation = 1;
       });
-      this.ruleForm.svyLibTopics.push(row);
+      row.svyLibTemplateTargetoptions = row.svyLibScriptOptions;
+      this.ruleForm.svyTemplateLibScripts.push(row);
+      this.sortFn();
+      this.$modal.msgSuccess("鏂板鎴愬姛");
     },
     handleDelete(row) {
-      let index = this.ruleForm.svyLibTopics.indexOf(row);
-      this.ruleForm.svyLibTopics.splice(index, 1);
-      row.isoperation=3;
+      let index = this.ruleForm.svyTemplateLibScripts.indexOf(row);
+      this.ruleForm.svyTemplateLibScripts.splice(index, 1);
+      row.isoperation = 3;
       this.delScriptVOList.push(row);
       this.sortFn();
     },
     handleUpdate(row) {
-      console.log(row);
       this.topicobj = row;
+      this.radioas = "";
       // getissuelist({ svyid: row.svyid }).then((res) => {
       // });
     },
     syioption(row) {
-      const index = this.getIndexInArray(this.ruleForm.svyLibTopics, row);
-      const item = this.ruleForm.svyLibTopics.splice(index, 1)[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓�
-      this.ruleForm.svyLibTopics.splice(index - 1, 0, item); // 灏唅tem鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣�
+      const index = this.getIndexInArray(
+        this.ruleForm.svyTemplateLibScripts,
+        row
+      );
+      const item = this.ruleForm.svyTemplateLibScripts.splice(index, 1)[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓�
+      this.ruleForm.svyTemplateLibScripts.splice(index - 1, 0, item); // 灏唅tem鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣�
       this.sortFn();
     },
     xiayioption(row) {
-      const index = this.getIndexInArray(this.ruleForm.svyLibTopics, row);
-      const item = this.ruleForm.svyLibTopics.splice(index, 1)[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓�
-      this.ruleForm.svyLibTopics.splice(index + 1, 0, item); // 灏唅tem鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣�
+      const index = this.getIndexInArray(
+        this.ruleForm.svyTemplateLibScripts,
+        row
+      );
+      const item = this.ruleForm.svyTemplateLibScripts.splice(index, 1)[0]; // 绉婚櫎鎸囧畾绱㈠紩澶勭殑鍏冪礌锛屽苟淇濆瓨鍒癷tem鍙橀噺涓�
+      this.ruleForm.svyTemplateLibScripts.splice(index + 1, 0, item); // 灏唅tem鎻掑叆鍒扮储寮曚綅缃殑鍓嶄竴浣�
       this.sortFn();
     },
     sortFn() {
-      this.ruleForm.svyLibTopics = this.ruleForm.svyLibTopics.map(
-        (item, index) => {
-          return {
-            guid: index + 1,
-            svyid: item.svyid,
-            topic: item.topic,
-            topicContent: item.topicContent,
-          };
+      this.ruleForm.svyTemplateLibScripts.forEach((item, index) => {
+        item.sort = Number(index) + 1;
+        if (item.sort == this.ruleForm.svyTemplateLibScripts.length) {
+          item.nextScriptno = 0;
+        } else {
+          item.nextScriptno = item.sort + 1;
         }
-      );
-      console.log(this.ruleForm.svyLibTopics);
+        if (item.svyLibTemplateTargetoptions) {
+          item.svyLibTemplateTargetoptions.forEach((items) => {
+            items.nextQuestion = Number(item.sort) + 1;
+          });
+        }
+      });
+      console.log(this.ruleForm.svyTemplateLibScripts);
     },
 
-    // 淇敼棰樼洰淇℃伅
-    Submittopicobj() {},
+    // 淇敼闂淇℃伅
+    Submittopicobj() {
+      this.$modal
+        .confirm(
+          '鏄惁纭鏂板鍚嶇О涓�"' + this.indexform.scriptTopic + '"鐨勯棶棰樻暟鎹紵'
+        )
+        .then(() => {
+          this.indexform.isoperation = 1;
+          this.indexform.svyLibTemplateTargetoptions.forEach((item) => {
+            item.isoperation = 1;
+          });
+          this.ruleForm.svyTemplateLibScripts.push(this.indexform);
+          this.indexform = { svyTemplateLibScripts: [] };
+          this.drawer = false;
+
+          this.sortFn();
+          this.$modal.msgSuccess("闂鏂板鎴愬姛锛屼繚瀛樻ā鏉垮け鏁�");
+        });
+    },
     // 鏂板鍙橀噺
     addvariable() {
       this.variablelist.push({
@@ -925,10 +1796,7 @@
         console.log("鏈壘鍒拌瀵硅薄");
       }
     },
-    // 鎺у埗鏂囦欢
-    handleChange(file, fileList) {
-      this.fileList = fileList.slice(-3);
-    },
+
     // 鏍囩-----------------
     gettabList() {
       const tagqueryParams = {
@@ -944,7 +1812,11 @@
     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.svyLibTemplateTagList[lindex].delFlag = 1;
+
       // this.ruleForm.ivrLibaTemplateTargetList[lindex].isoperation = 3;
     },
     handleInputConfirm() {
@@ -966,9 +1838,9 @@
               isoperation: 1,
             };
           }
-          // this.ruleForm.ivrLibaTemplateTargetList.push(tagvalue);
+          this.ruleForm.svyLibTemplateTagList.push(tagvalue);
           // this.dynamicTags.push(tagvalue);
-          this.dynamicTags.push(tagvalue.tagname);
+          this.dynamicTags.push(tagvalue);
         });
       }
       this.inputVisible = false;
@@ -990,67 +1862,343 @@
     showInput() {
       this.inputVisible = true;
     },
-    // 鐤剧梾-----------------------
-
-    handleCloseillness(tag) {
-      this.illnesslist.splice(this.illnesslist.indexOf(tag), 1);
-      if (tag.id) {
-        this.illnesslistapi.push(tag.id);
-      }
-    },
-    remoteMethod(value) {
-      console.log(value);
-      const illnessqueryParams = {
-        pageNum: 1,
-        pageSize: 100,
-        icdname: value,
-      };
-      this.loading = true;
-      setTimeout(() => {
-        this.loading = false;
-        getillnesslist(illnessqueryParams).then((response) => {
-          this.optionsillness = response.rows;
-        });
-      }, 200);
-    },
-    illnessConfirm(item) {
-      let opeavalue = {};
-      let tagname = this.inputValueillness;
-      illnesslistget(item).then((res) => {
-        opeavalue = res.data;
-        opeavalue.outid = this.id;
-        opeavalue.type = 5;
-        opeavalue.icd10id = opeavalue.icdid;
-        opeavalue.icd10name = opeavalue.icdname;
-        opeavalue.icd10code = opeavalue.icdcode;
-        if (tagname) {
-          this.illnesslist.push(opeavalue);
-        }
-      });
-      console.log(this.illnesslist);
-      this.inputVisibleillness = false;
-      this.inputValueillness = "";
-    },
-    // 淇濆瓨
-    confirmillness() {
+    // 淇濆瓨鐤剧梾
+    confirmillness(guid) {
       this.illnesslist.forEach((item, index) => {
+        if (guid) {
+          item.outid = guid;
+        } else {
+          console.log(this.ruleForm);
+          item.outid = this.ruleForm.svyid;
+        }
+        item.icd10name = item.icdname;
+        item.icd10code = item.icdcode;
+        item.type = 5;
         if (!item.id) {
           addtargetillness(item).then((res) => {});
         }
       });
-      if (this.illnesslistapi.length) {
-        deltargetillness(this.illnesslistapi.join(",")).then((res) => {});
-      }
       this.illnessVisible = false;
       this.$modal.msgSuccess("缂栬緫鎴愬姛");
     },
-    // --------------------------
+    // 淇濆瓨绉戝/鐥呭尯
+    putbelongDepts(id) {
+      this.tempDetpRelevanceslistform.forEach(item=>{
+        if (!item.tempid) item.tempid=id;
+      })
+      this.tempbelongWardsform.forEach(item=>{
+        if (!item.tempid) item.tempid=id;
+      })
+      if (this.tempDetpRelevanceslistform.length > 0) {
+        depthospgetson(this.tempDetpRelevanceslistform).then((res) => {
+          if (res.code == 200) {
+            this.$modal.msgSuccess("绉戝鏂板鎴愬姛");
+          }
+        });
+      }
+      if (this.tempbelongWardsform.length > 0) {
+        depthospgetson(this.tempbelongWardsform).then((res) => {
+          if (res.code == 200) {
+            this.$modal.msgSuccess("闄㈠尯鏂板鎴愬姛");
+          }
+        });
+      }
+    },
+
     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() {
+      console.log(this.ruleForm.svyTemplateLibScripts);
+
+      const arraysa = [
+        {
+          id: 1,
+          Topicjump: "2",
+          branchFlag: "0",
+          arr: [
+            { name: "涓嶉敊", skip: 2 },
+            { name: "涓�鑸�", skip: 2 },
+            { name: "杩樹笉閿�", skip: 2 },
+            { name: "寰堟", skip: 3 },
+          ],
+        },
+
+        {
+          id: 2,
+          Topicjump: "4",
+          branchFlag: "1",
+          arr: [
+            { name: "浼樼", skip: 4 },
+            { name: "鑹ソ", skip: 3 },
+            { name: "涓�鑸�", skip: 3 },
+            { name: "杈冨樊", skip: 3 },
+          ],
+        },
+        {
+          id: 3,
+          Topicjump: "4",
+          branchFlag: "1",
+          arr: [
+            { name: "鏄殑", skip: 4 },
+            { name: "涓嶆竻妤�", skip: 5 },
+            { name: "杩樺彲", skip: 4 },
+            { name: "涓�鑸�", skip: 4 },
+          ],
+        },
+        {
+          id: 4,
+          Topicjump: "5",
+          branchFlag: "0",
+          bac: null,
+        },
+        {
+          id: 5,
+          Topicjump: "0",
+          branchFlag: "0",
+          arr: [
+            { name: "鐪熶笉閿�", skip: 0 },
+            { name: "杩樺彲浠�", skip: 0 },
+            { name: "涓�鑸埇", skip: 0 },
+            { name: "涓嶆竻妤�", skip: 0 },
+          ],
+        },
+      ];
+
+      const csnewMixArray = this.csgetExecutionOrders(arraysa);
+      console.log(csnewMixArray, "娴嬭瘯鍏ㄩ儴璺嚎");
+      const newMixArray = this.getExecutionOrders(
+        this.ruleForm.svyTemplateLibScripts
+      );
+      console.log(newMixArray, "鍏ㄩ儴璺嚎");
+      this.sumArray(newMixArray);
+    },
+    // 閬嶅巻鏂规硶
+    csgetExecutionOrders(arrays) {
+      const allPaths = [];
+      const findPath = (currentId, path) => {
+        const current = arrays.find((item) => item.id.toString() === currentId);
+        if (!current) return;
+        path.push(current);
+
+        if (current.branchFlag === "1") {
+          current.arr.forEach((option) => {
+            findPath(option.skip.toString(), path.slice());
+          });
+        } else {
+          const nextId = parseInt(current.Topicjump);
+          if (nextId !== 0) {
+            findPath(nextId.toString(), path.slice());
+          } else {
+            allPaths.push(path.slice());
+          }
+        }
+      };
+
+      findPath("1", []);
+      return allPaths;
+    },
+    // 閬嶅巻鏂规硶
+    getExecutionOrders(arrays) {
+      const allPaths = [];
+      const findPath = (currentId, path) => {
+        const current = arrays.find(
+          (item) => item.sort.toString() === currentId
+        );
+        if (!current) return;
+        path.push(current);
+
+        if (current.branchFlag == "1") {
+          current.svyLibTemplateTargetoptions.forEach((option) => {
+            findPath(option.nextQuestion.toString(), path.slice());
+          });
+        } else {
+          const nextId = parseInt(current.nextScriptno);
+          if (nextId !== 0) {
+            findPath(nextId.toString(), path.slice());
+          } else {
+            allPaths.push(path.slice());
+          }
+        }
+      };
+
+      findPath("1", []);
+      return allPaths;
+    },
+
+    // 鏁扮粍姹傚拰
+    sumArray(arr) {
+      // const arrsum = arr;
+      // arrsum.forEach((item) => {
+      //   // 鍒ゆ柇闂鍜屾ā鏉垮眰绾�
+      //   console.log(item, "涓�鏉¢摼璺�");
+
+      //   const totalScore = item.reduce((accumulator, current) => {
+      //     return accumulator + Number(current.score);
+      //   }, 0);
+      //   console.log(totalScore);
+      //   console.log(this.ruleForm.scriptScore);
+
+      //   if (totalScore == this.ruleForm.scriptScore) {
+      //     this.ClaimNofn(arr);
+      //     this.$modal.msgSuccess("鍒嗘暟鏍搁獙鎴愬姛");
+      //   }
+      // });
+
+      const allGreaterThanTen = arr.every((array) => {
+        const totalScore = array.reduce((accumulator, current) => {
+          return accumulator + Number(current.score);
+        }, 0);
+        console.log(totalScore);
+        console.log(this.ruleForm.scriptScore);
+
+        return totalScore == this.ruleForm.scriptScore;
+      });
+      if (allGreaterThanTen) {
+        this.$modal.msgSuccess("鍒嗗�兼牎楠屾垚鍔�");
+      } else {
+        this.$modal.msgError("闂鍒嗗�肩疮鍔犲拰妯℃澘鍒嗗�间笉绗�");
+      }
+    },
+
+    // 閬嶅巻鏄惁閲嶅鏄惁閮界敤涓�
+    ClaimNofn(arr) {
+      arr.forEach((item) => {
+        const Aarr = item;
+        const Barr = this.ruleForm.svyTemplateLibScripts;
+        const notInB = A.filter(
+          (itemA) => !B.some((itemB) => itemB.id === itemA.id)
+        );
+
+        if (notInB.length) {
+          this.$modal.msgError("闂鏈叏閮ㄤ娇鐢�");
+        } else {
+          this.$modal.msgSuccess("闂鍏ㄩ儴浣跨敤");
+        }
+      });
+      arr.forEach((item) => {
+        const idCount = arr.reduce((acc, item) => {
+          acc[item.id] = (acc[item.id] || 0) + 1;
+          return acc;
+        }, {});
+        const whether = item.values(idCount).some((count) => count > 1); // 濡傛灉鏈変换浣� id 鐨勮鏁板ぇ浜� 1 灏辫繑鍥� true
+        if (!whether) this.$modal.msgError("閰嶇疆椤规湁闂閲嶅");
+      });
+    },
+    // 闂鍜岄�夐」闂寸殑鍒嗗�煎垽鏂�
+    Scorejudgment() {
+      let scorearr = this.topicobj.svyLibScriptOptions;
+      let isValid = scorearr.every((score, index) => {
+        if (this.topicobj.scriptType == 1) {
+          if (score.score) {
+            if (
+              Number(score.score) < 0 ||
+              Number(score.score) > Number(this.topicobj.score)
+            ) {
+              console.log(score, "閿欒鍒嗗��");
+              this.$message({
+                message: "閫夐」鍒嗗�煎繀椤诲湪0鍒�" + this.topicobj.score + "鍒嗕箣闂�",
+                type: "warning",
+              });
+              return false;
+            }
+            return true;
+          } else {
+            this.$message({
+              message: "閫夐」鍒嗗�兼湭璁剧疆",
+              type: "warning",
+            });
+            return false;
+          }
+        } else if (this.topicobj.scriptType == 2) {
+          // 绱姞鍒嗗��
+          const totalScore = scorearr.reduce((acc, score) => {
+            if (score.score) {
+              return acc + Number(score.score);
+            }
+            return acc; // 濡傛灉 score.score 涓嶅瓨鍦紝涓嶇疮鍔�
+          }, 0);
+
+          // 妫�鏌ョ疮鍔犵殑鍒嗗�兼槸鍚︾瓑浜� this.topicobj.score
+          if (totalScore !== Number(this.topicobj.score)) {
+            this.$message({
+              message:
+                "澶氶�夐閫夐」鍒嗗�兼�诲拰蹇呴』绛変簬 " + this.topicobj.score + " 鍒�",
+              type: "warning",
+            });
+            return false;
+          }
+          return true; // 濡傛灉鎬诲垎姝g‘锛岃繑鍥� true
+        } else if (this.topicobj.scriptType == 4) {
+          return true;
+        }
+      });
+
+      if (isValid) {
+        this.compileissue();
+      }
+    },
+
+    // ---------------------------------------------------------
+    // 鏂伴棶棰樻柊澧�
+    addoption() {
+      if (!this.indexform.svyLibTemplateTargetoptions) {
+        this.indexform.svyLibTemplateTargetoptions = [];
+      }
+      this.indexform.svyLibTemplateTargetoptions.push({
+        score: "",
+        isoperation: 1,
+      });
+      console.log(this.indexform.svyLibTemplateTargetoptions);
+    },
+    // 閫夐」鏂囦欢涓婁紶
+    handleChange(item, response, file, fileList) {
+      console.log(response);
+      if (response.code == 200) {
+        console.log(item);
+        let index = this.indexform.svyLibTemplateTargetoptions.findIndex(
+          (obj) => obj.optioncontent == item.optioncontent
+        );
+        console.log(index);
+        this.indexform.svyLibTemplateTargetoptions[index].picturePath =
+          response.url;
+        console.log(this.indexform.svyLibTemplateTargetoptions[index]);
+        this.$forceUpdate();
+      } else {
+        this.$message.error("鍥剧墖鎻掑叆澶辫触");
+      }
+    },
+    branchFlagfn(row) {
+      console.log(row);
+      if (this.topicobj.branchFlag == 1 && this.topicobj.nextScriptno != 0) {
+        this.topicobj.nextScriptno =
+          this.topicobj.svyLibTemplateTargetoptions[0].nextQuestion;
+      }
     },
   },
 };
@@ -1061,8 +2209,7 @@
   // display: flex;
 }
 .sidecolumn {
-  margin: 20px;
-  margin-bottom: 0;
+  margin: 10px 20px 0 20px;
   padding: 20px;
   background: #edf1f7;
   border: 1px solid #dcdfe6;
@@ -1076,6 +2223,8 @@
   // margin-top: 20px;
   margin: 20px;
   padding: 30px;
+  padding-top: 5px;
+  margin-top: 10px;
   background: #ffff;
   border: 1px solid #dcdfe6;
   -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
@@ -1084,6 +2233,8 @@
     font-size: 20px;
   }
   .leftvlue-jbxx {
+    display: flex; /* 浣跨敤 Flexbox 甯冨眬 */
+    justify-content: space-between;
     font-size: 24px;
     border-left: 5px solid #41a1be;
     padding-left: 5px;
@@ -1107,13 +2258,21 @@
   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);
-  .topic-dev {
+  .scriptTopic-dev {
     margin-bottom: 25px;
     font-size: 20px !important;
     .dev-text {
       margin-bottom: 10px;
     }
   }
+}
+.headline {
+  display: flex;
+  justify-content: space-between;
+  font-size: 20px;
+  border-left: 3px solid #41a1be;
+  padding-left: 5px;
+  margin: 15px 0;
 }
 .xinz-inf {
   font-size: 18px;
@@ -1139,6 +2298,14 @@
     vertical-align: bottom;
   }
 }
+.xinz-infs {
+  font-size: 18px;
+  line-height: 48px;
+
+  .el-tag + .el-tag {
+    margin-left: 10px;
+  }
+}
 .addtopic {
   margin-top: 30px;
 }
@@ -1146,7 +2313,17 @@
   margin: 20px 0;
   display: flex;
   .presentation-left {
-    width: 50%;
+    width: 45%;
+    // height: 500px;
+    .button-textxg {
+      color: #024df0;
+    }
+    .button-textsc {
+      color: #f52727;
+    }
+  }
+  .spresentation-left {
+    width: 100%;
     // height: 500px;
     .button-textxg {
       color: #024df0;
@@ -1156,7 +2333,7 @@
     }
   }
   .presentation-right {
-    width: 50%;
+    width: 55%;
     max-height: 688px;
     padding: 0 20px;
     font-size: 18px;
@@ -1175,6 +2352,27 @@
       padding-top: 15px;
     }
   }
+}
+.topicxq {
+  background-color: #e2f5fc;
+  border-radius: 4px;
+  margin-top: 15px;
+  margin-left: 10%;
+  padding-left: 20px;
+  padding-top: 15px;
+  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);
+}
+.custom-width {
+  width: 100px; /* 璁剧疆瀹藉害鏍峰紡 */
+}
+.el-select {
+  width: 280px;
+}
+
+.el-cascader {
+  width: 40%;
 }
 ::v-deep .addtopic-input {
   input {
@@ -1202,7 +2400,7 @@
   width: 22px;
   height: 22px;
 }
-// ::v-deep.topic-dev.el-radio__label {
+// ::v-deep.scriptTopic-dev.el-radio__label {
 //   font-size: 24px;
 // }
 ::v-deep.el-radio-group {

--
Gitblit v1.9.3