From b50917f4bdf0b05c028d76d8cdbde44a85ec8b91 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期二, 27 八月 2024 16:02:53 +0800
Subject: [PATCH] 测试完成

---
 src/views/knowledge/questionnaire/compilequer/index.vue | 1020 ++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 789 insertions(+), 231 deletions(-)

diff --git a/src/views/knowledge/questionnaire/compilequer/index.vue b/src/views/knowledge/questionnaire/compilequer/index.vue
index 8100549..85d3a9c 100644
--- a/src/views/knowledge/questionnaire/compilequer/index.vue
+++ b/src/views/knowledge/questionnaire/compilequer/index.vue
@@ -242,7 +242,18 @@
       </div>
       <!-- 闂嵎璁剧疆 -->
       <div v-if="Editprogress == 2">
-        <div class="leftvlue-jbxx">闂嵎棰樼洰璁剧疆</div>
+        <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>
@@ -349,7 +360,15 @@
                   key="nextScriptno"
                   prop="nextScriptno"
                   :show-overflow-tooltip="true"
-                />
+                >
+                  <template slot-scope="scope">
+                    <span>{{
+                      scope.row.nextScriptno == 0
+                        ? "宸叉槸鏈�鍚庝竴棰�"
+                        : scope.row.nextScriptno
+                    }}</span>
+                  </template>
+                </el-table-column>
 
                 <el-table-column
                   v-if="Operateit"
@@ -405,7 +424,7 @@
                       ></el-input> </el-form-item
                   ></el-col>
                   <el-col :span="12">
-                    <el-form-item label="涓嬮璺宠浆" v-if="!topicobj.branchFlag">
+                    <el-form-item label="涓嬮璺宠浆">
                       <el-input
                         v-model="topicobj.nextScriptno"
                         placeholder="璇疯緭鍏ラ鍙�"
@@ -413,40 +432,25 @@
                     </el-form-item>
                   </el-col>
                 </el-row>
-
                 <el-row :gutter="10">
                   <el-col :span="12"
-                    ><el-form-item label="鏄惁蹇呭~">
+                    ><el-form-item label="棰樼洰绫诲瀷">
                       <el-select
-                        v-model="topicobj.ismandatory"
-                        placeholder="璇烽�夋嫨"
+                        v-model="topicobj.scriptType"
+                        disabled
+                        size="medium"
+                        filterable
+                        placeholder="璇烽�夋嫨鍒嗙被"
                       >
                         <el-option
-                          v-for="item in required"
+                          class="topicobjaa"
+                          v-for="item in askvaluetype"
                           :key="item.value"
                           :label="item.label"
                           :value="item.value"
                         >
-                        </el-option>
-                      </el-select> </el-form-item
+                        </el-option> </el-select></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-option>
-                      </el-select> </el-form-item
-                  ></el-col>
-                </el-row>
-                <el-row>
                   <el-col :span="12">
                     <el-form-item
                       label="棰樼洰鍒嗗��"
@@ -459,13 +463,43 @@
                     </el-form-item>
                   </el-col>
                 </el-row>
-                <el-form-item label="鏄惁鐢遍�夐」閰嶇疆璺宠浆">
+
+                <el-row :gutter="10">
+                  <el-col :span="12"
+                    ><el-form-item label="鏄惁蹇呭~">
+                      <el-radio-group v-model="topicobj.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-col :span="12"
+                    ><el-form-item label="鏄惁鍙敤">
+                      <el-radio-group v-model="topicobj.isavailable">
+                        <el-radio
+                          v-for="(item, index) in usable"
+                          :label="item.value"
+                          >{{ item.label }}</el-radio
+                        >
+                      </el-radio-group>
+                    </el-form-item></el-col
+                  >
+                </el-row>
+                <el-form-item
+                  label="鏄惁鐢遍�夐」閰嶇疆璺宠浆"
+                  v-if="topicobj.scriptType == 1"
+                >
                   <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>
-                <div v-if="topicobj.scriptType != 3">
+                <div
+                  v-if="topicobj.scriptType == 1 || topicobj.scriptType == 2"
+                >
                   <div class="headline">閫夐」璁剧疆</div>
                   <div
                     class="topicxq"
@@ -485,7 +519,7 @@
                       <el-col :span="8">
                         <el-form-item
                           v-if="topicobj.scoretype == 1"
-                          label="鍒嗗��"
+                          label="閫夐」鍒嗗��"
                         >
                           <el-input
                             class="custom-width"
@@ -518,11 +552,12 @@
                         </el-form-item>
                       </el-col>
                     </el-row>
-                    <el-row :gutter="10">
+                    <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
@@ -565,7 +600,7 @@
                         <el-input
                           style="width: 20vw"
                           type="textarea"
-                          autosize
+                          :rows="2"
                           placeholder="姝ゅ鏀剧疆鎮h�呭洖绛�"
                           v-model="topicobj.reply"
                         >
@@ -573,6 +608,18 @@
                       ></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
                         type="text"
                         placeholder="璇疯緭鍏ラ�夐」鍒嗗��"
@@ -602,62 +649,61 @@
         <div class="leftvlue-jbxx">闂嵎棰勮</div>
         <el-divider></el-divider>
         <div class="preview-left">
-          <!-- 鍗曢�� -->
-          <div
-            class="scriptTopic-dev"
-            v-for="item in ruleForm.svyTemplateLibScripts"
-            :key="item.sort"
-            v-if="item.scriptType == 1"
-          >
-            <div class="dev-text">
-              {{ item.sort }}銆乕鍗曢�塢<span>{{ item.scriptContent }}</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="item.remark">
-                <el-radio
-                  v-for="(items, index) in item.svyLibTemplateTargetoptions"
-                  :key="index"
-                  :label="index"
-                  >{{ items.optioncontent }}</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="scriptTopic-dev"
-            v-for="item in ruleForm.svyTemplateLibScripts"
-            :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
-            class="scriptTopic-dev"
-            v-for="item in ruleForm.svyTemplateLibScripts"
-            :key="item.sort"
-            v-if="item.scriptType == 3"
-          >
-            <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
+              class="scriptTopic-dev"
+              :key="item.sort"
+              v-if="item.scriptType == 3"
+            >
+              <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>
@@ -673,83 +719,397 @@
       custom-class="demo-drawer"
       size="50%"
     >
-      <div class="preview-left">
-        <el-form
-          :model="queryParams"
-          ref="queryForm"
-          size="small"
-          :inline="true"
-          label-width="98px"
-        >
-          <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>
-            <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
+      <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>
-        <pagination
-          v-show="total > 0"
-          :total="total"
-          :page.sync="queryParams.pageNum"
-          :limit.sync="queryParams.pageSize"
-          @pagination="getaddtopiclist"
-        />
+                <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="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.isAvailable">
+                          <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>
+                  <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>
+                </div>
+                <div>
+                  <el-form-item label="鎸囨爣鍚嶇О" prop="deptId">
+                    <el-input
+                      v-model="indexform.targetname"
+                      placeholder="璇疯緭鍏ユ寚鏍囧悕绉�"
+                      maxlength="20"
+                    />
+                  </el-form-item>
+                  <el-form-item label="鎸囨爣鎻忚堪" prop="deptId">
+                    <el-input
+                      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
+                            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">
+                      <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>
     <!-- 娣诲姞閫傜敤鐤剧梾绐楀彛 -->
@@ -807,6 +1167,7 @@
       radio: "false", //鍗曢�夐閫変腑
       radios: [], //澶氶�夐閫変腑
       radioas: "", //濉┖棰樼瓟妗�
+      activeName: "first",
       dynamicTags: [],
       inputVisible: false,
       dialogVisiblepatient: false, //閫傜敤鐤剧梾绐楀彛
@@ -818,6 +1179,9 @@
         svyTemplateLibScripts: [],
         tempDetpRelevances: [],
         svyLibTemplateTagList: [],
+      },
+      indexform: {
+        svyLibTemplateTargetoptions: [],
       },
       rules: {},
       rulesa: {},
@@ -998,8 +1362,7 @@
     submitForm(formName) {
       this.$modal.loading("姝e湪涓婁紶鏁版嵁锛岃绋嶅��...");
       this.ruleForm.suitway = this.ruleForm.suitway.join(",");
-      if (condition) {
-      }
+
       if (this.id) {
         this.ruleForm.isoperation = 2;
         compileQtemplate(this.ruleForm).then((res) => {
@@ -1010,13 +1373,13 @@
         });
       } else {
         this.ruleForm.isoperation = 1;
-        this.ruleForm.version = this.ruleForm.version ? ruleForm : "1.0";
+        this.ruleForm.version = this.ruleForm.version
+          ? this.ruleForm.version
+          : "1.0";
         compileQtemplate(this.ruleForm).then((res) => {
           this.$modal.msgSuccess("鏂板鎴愬姛");
           this.confirmillness(res.data);
-
           this.$modal.closeLoading();
-
           this.$router.go(-1);
         });
       }
@@ -1046,7 +1409,6 @@
       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;
         }
@@ -1138,13 +1500,10 @@
       this.sortFn();
     },
     sortFn() {
-      console.log(this.ruleForm.svyTemplateLibScripts, "搴忓墠鍊�");
       this.ruleForm.svyTemplateLibScripts.forEach((item, index) => {
         item.sort = Number(index) + 1;
-        console.log(this.ruleForm.svyTemplateLibScripts.length, "length");
-
         if (item.sort == this.ruleForm.svyTemplateLibScripts.length) {
-          item.nextScriptno = "宸叉槸鏈�鍚庝竴棰�";
+          item.nextScriptno = 0;
         } else {
           item.nextScriptno = item.sort + 1;
         }
@@ -1158,7 +1517,24 @@
     },
 
     // 淇敼棰樼洰淇℃伅
-    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({
@@ -1260,14 +1636,12 @@
       this.illnessVisible = false;
       this.$modal.msgSuccess("缂栬緫鎴愬姛");
     },
-    // --------------------------
     resetQuery() {
       this.queryParams = { pageNum: 1, pageSize: 10 };
       this.getaddtopiclist();
     },
-    resetForm(formName) {
-      this.$refs[formName].resetFields();
-    },
+
+    // --------------------------
     // 闂嵎鍒嗘暟闄愬埗绠楁硶
     // 娣峰悎璺嚎
     generateCombinations(arrays, currentIndex = 0, currentCombination = []) {
@@ -1291,16 +1665,13 @@
     },
     // 鎵ц
     test() {
-      const arrays = [
-        ["2", "3", "4", "5"],
-        ["1", "2", "5", "6"],
-        ["3", "4", "5", "3"],
-        ["3", "2", "5", "7"],
-      ];
+      console.log(this.ruleForm.svyTemplateLibScripts);
+
       const arraysa = [
         {
           id: 1,
-          grade: "5",
+          Topicjump: "2",
+          branchFlag: "0",
           arr: [
             { name: "涓嶉敊", skip: 2 },
             { name: "涓�鑸�", skip: 2 },
@@ -1311,85 +1682,251 @@
 
         {
           id: 2,
-          grade: "5",
+          Topicjump: "4",
+          branchFlag: "1",
           arr: [
-            { name: "浼樼", skip: 3 },
+            { name: "浼樼", skip: 4 },
             { name: "鑹ソ", skip: 3 },
             { name: "涓�鑸�", skip: 3 },
-            { name: "杈冨樊", skip: 4 },
+            { name: "杈冨樊", skip: 3 },
           ],
         },
         {
           id: 3,
-          grade: "5",
+          Topicjump: "4",
+          branchFlag: "1",
           arr: [
             { name: "鏄殑", skip: 4 },
-            { name: "涓嶆竻妤�", skip: 4 },
+            { name: "涓嶆竻妤�", skip: 5 },
             { name: "杩樺彲", skip: 4 },
             { name: "涓�鑸�", skip: 4 },
           ],
         },
         {
           id: 4,
-          grade: "5",
+          Topicjump: "5",
+          branchFlag: "0",
+          bac: null,
+        },
+        {
+          id: 5,
+          Topicjump: "0",
+          branchFlag: "0",
           arr: [
-            { name: "鐪熶笉閿�", skip: null },
-            { name: "杩樺彲浠�", skip: null },
-            { name: "涓�鑸埇", skip: null },
-            { name: "涓嶆竻妤�", skip: null },
+            { name: "鐪熶笉閿�", skip: 0 },
+            { name: "杩樺彲浠�", skip: 0 },
+            { name: "涓�鑸埇", skip: 0 },
+            { name: "涓嶆竻妤�", skip: 0 },
           ],
         },
       ];
 
-      // const newMixArray = this.generateCombinations(arrays);
-      const newMixArray = this.getExecutionOrders(arraysa);
-
+      const csnewMixArray = this.csgetExecutionOrders(arraysa);
+      console.log(csnewMixArray, "娴嬭瘯鍏ㄩ儴璺嚎");
+      const newMixArray = this.getExecutionOrders(
+        this.ruleForm.svyTemplateLibScripts
+      );
       console.log(newMixArray, "鍏ㄩ儴璺嚎");
-      this.screen(newMixArray);
+      this.sumArray(newMixArray);
     },
-    getExecutionOrders(data) {
-      let orders = [];
+    // 閬嶅巻鏂规硶
+    csgetExecutionOrders(arrays) {
+      const allPaths = [];
+      const findPath = (currentId, path) => {
+        const current = arrays.find((item) => item.id.toString() === currentId);
+        if (!current) return;
+        path.push(current);
 
-      const explore = (currentOrder, id) => {
-        console.log(currentOrder, "currentOrder", id);
-        const currentQuestion = data[currentOrder[currentOrder.length - 1]];
-        if (
-          currentQuestion.arr.some(
-            (option) =>
-              option.skip !== null && !currentOrder.includes(option.skip)
-          )
-        ) {
-          currentQuestion.arr.forEach((option) => {
-            if (option.skip !== null && !currentOrder.includes(option.skip)) {
-              explore([...currentOrder, option.skip]);
-            }
+        if (current.branchFlag === "1") {
+          current.arr.forEach((option) => {
+            findPath(option.skip.toString(), path.slice());
           });
         } else {
-          orders.push(
-            currentOrder.map((id) => ({
-              id: data[id].id,
-              grade: data[id].grade,
-            }))
-          );
+          const nextId = parseInt(current.Topicjump);
+          if (nextId !== 0) {
+            findPath(nextId.toString(), path.slice());
+          } else {
+            allPaths.push(path.slice());
+          }
         }
       };
-      console.log(data, "data");
-      data.forEach((entry) => {
-        explore([entry.id], entry.id);
-      });
 
-      return orders;
+      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) {
-      return arr.reduce((acc, curr) => acc + parseInt(curr), 0);
-    },
-    // 绛涢�夐敊璇矾绾�
-    screen(data) {
-      const arraysGreaterThan10 = data.filter((arr) => this.sumArray(arr) > 21);
+      // const arrsum = arr;
+      // arrsum.forEach((item) => {
+      //   // 鍒ゆ柇棰樼洰鍜屾ā鐗堝眰绾�
+      //   console.log(item, "涓�鏉¢摼璺�");
 
-      console.log(arraysGreaterThan10, "绛涢�夐敊璇矾绾垮ぇ浜�13鍒�");
+      //   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 + current.score;
+        }, 0);
+        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;
+      }
     },
   },
 };
@@ -1424,6 +1961,8 @@
     font-size: 20px;
   }
   .leftvlue-jbxx {
+    display: flex; /* 浣跨敤 Flexbox 甯冨眬 */
+    justify-content: space-between;
     font-size: 24px;
     border-left: 5px solid #41a1be;
     padding-left: 5px;
@@ -1454,6 +1993,14 @@
       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;
@@ -1534,11 +2081,22 @@
     }
   }
 }
+.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: 40%;
+  width: 280px;
 }
 
 .el-cascader {

--
Gitblit v1.9.3