From 8ec6407cf76c1f8d7e08e5456018aaafc93f0556 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期三, 31 七月 2024 18:30:20 +0800
Subject: [PATCH] 测试完成

---
 src/views/knowledge/questionbank/particulars/index.vue | 1340 +++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 1,097 insertions(+), 243 deletions(-)

diff --git a/src/views/knowledge/questionbank/particulars/index.vue b/src/views/knowledge/questionbank/particulars/index.vue
index 841e5cb..3ac4d00 100644
--- a/src/views/knowledge/questionbank/particulars/index.vue
+++ b/src/views/knowledge/questionbank/particulars/index.vue
@@ -5,277 +5,867 @@
         <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
-            >
+            <span style="float: right; margin-right: 30px"
+              ><el-button type="success" @click="Saveproblem">棰勮</el-button>
+            </span>
+            <span style="float: right; margin-right: 30px"
+              ><el-button type="primary" @click="Saveproblem">淇� 瀛�</el-button>
+            </span>
           </div>
-
-          <el-row :gutter="10">
-            <el-col :span="8"
-              ><el-form-item label="棰樼洰鏍囬">
-                <el-input
-                  v-model="topicobj.title"
-                  placeholder="璇疯緭鍏ユ爣棰�"
-                ></el-input> </el-form-item
-            ></el-col>
-            <el-col :span="6"
-              ><el-form-item label="鏄惁闅愯棌">
-                <el-radio-group v-model="topicobj.resourcea">
-                  <el-radio label="鏄�"></el-radio>
-                  <el-radio label="鍚�"></el-radio>
-                </el-radio-group> </el-form-item
-            ></el-col>
-            <el-col :span="6"
-              ><el-form-item label="璇█">
-                <el-select
-                  v-model="topicobj.languageh"
-                  size="medium"
-                  filterable
-                  placeholder="璇烽�夋嫨鍒嗙被"
-                >
-                  <el-option
-                    class="topicobjaa"
-                    v-for="item in xjxsoptions"
-                    :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="8"
-              ><el-form-item label="鏄惁蹇呯瓟">
-                <el-radio-group v-model="topicobj.resource">
-                  <el-radio label="鏄�"></el-radio>
-                  <el-radio label="鍚�"></el-radio>
-                </el-radio-group> </el-form-item
-            ></el-col>
-            <el-col :span="12"
-              ><el-form-item label="棰樼洰绫诲瀷">
-                <el-select
-                  v-model="topicobj.languageh"
-                  size="medium"
-                  filterable
-                  placeholder="璇烽�夋嫨鍒嗙被"
-                >
-                  <el-option
-                    class="topicobjaa"
-                    v-for="item in xjxsoptions"
-                    :key="item.value"
-                    :label="item.label"
-                    :value="item.value"
-                  >
-                  </el-option>
-                </el-select> </el-form-item
-            ></el-col>
-          </el-row>
-          <el-form-item label="棰樼洰鍐呭">
-            <el-input
-              style="width: 40vw"
-              type="textarea"
-              v-model="topicobj.title"
-              placeholder="璇疯緭鍏ユ爣棰�"
-            ></el-input>
-          </el-form-item>
-          <el-row :gutter="10">
-            <el-col :span="8"
-              ><el-form-item label="閫傜敤鏂瑰紡">
-                <el-select
-                  v-model="topicobj.languageh"
-                  size="medium"
-                  filterable
-                  placeholder="璇烽�夋嫨鍒嗙被"
-                >
-                  <el-option
-                    class="topicobjaa"
-                    v-for="item in xjxsoptions"
-                    :key="item.value"
-                    :label="item.label"
-                    :value="item.value"
-                  >
-                  </el-option> </el-select></el-form-item
-            ></el-col>
-            <el-col :span="12"
-              ><el-form-item label="閫傜敤鐤剧梾">
-                <el-select
-                  v-model="topicobj.languageh"
-                  size="medium"
-                  filterable
-                  placeholder="璇烽�夋嫨鍒嗙被"
-                >
-                  <el-option
-                    class="topicobjaa"
-                    v-for="item in xjxsoptions"
-                    :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="desc">
-            <div class="xinz-inf">
-              <el-tag
-                :key="tag"
-                type="success"
-                v-for="tag in dynamicTags"
-                closable
-                :disable-transitions="false"
-                @close="handleClose(tag)"
-              >
-                {{ tag }}
-              </el-tag>
-              <el-select
-                v-model="inputValue"
-                v-if="inputVisible"
-                @change="handleInputConfirm"
-                filterable
-                  allow-create
-                  default-first-option
-                placeholder="璇烽�夋嫨"
-              >
-                <el-option
-                  v-for="item in optionstag"
-                  :key="item.tagname"
-                    :label="item.tagname"
-                    :value="item.tagname"
-                >
-                </el-option>
-              </el-select>
-              <el-button
-                v-else
-                class="button-new-tag"
-                size="small"
-                @click="showInput"
-                >+ 鏂板鏍囩</el-button
-              >
-            </div>
-          </el-form-item>
-          <div class="headline">
-            閫夐」璁剧疆<span style="margin-left: 30px"
-              ><el-button type="primary" @click="addoption"
-                >+鏂板</el-button
-              ></span
-            >
-          </div>
-          <div class="topicxq" v-for="item in optionlist">
+          <div style="margin-left: 8%">
             <el-row :gutter="10">
-              <el-col :span="11"
-                ><el-form-item label="閫夐」">
-                  <el-input
-                    type="text"
-                    placeholder="璇疯緭鍏ラ�夐」"
-                    v-model="text"
-                    show-word-limit
+              <el-col :span="8">
+                <el-form-item label="闂鍒嗙被">
+                  <el-select
+                    v-model="topicobj.categoryid"
+                    size="medium"
+                    filterable
+                    placeholder="璇烽�夋嫨鍒嗙被"
                   >
-                  </el-input> </el-form-item
-              ></el-col>
-              <el-col :span="11"
-                ><el-form-item label="鍒嗗��">
-                  <el-input
-                    type="text"
-                    placeholder="璇疯緭鍏ュ垎鍊�"
-                    v-model="text"
-                    show-word-limit
+                    <el-option-group
+                      v-for="group in classifylist"
+                      :key="group.id"
+                      :label="group.name"
+                    >
+                      <el-option
+                        v-for="item in group.svyLibScriptCategoryList"
+                        :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="璇勪环绫诲瀷">
+                  <el-select
+                    v-model="topicobj.scoretype"
+                    placeholder="璇烽�夋嫨鍒嗙被"
                   >
-                  </el-input> </el-form-item
-              ></el-col>
-              <el-col :span="2">
-                <el-button
-                  type="danger"
-                  icon="el-icon-delete"
-                  circle
-                ></el-button>
+                    <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="8" v-if="topicobj.scoretype == 1">
+                <el-form-item label="棰樼洰寰楀垎">
+                  <el-input
+                    v-model="topicobj.score"
+                    placeholder="璇疯緭鍏ュ垎鏁�"
+                  ></el-input>
+                </el-form-item>
               </el-col>
             </el-row>
+
             <el-row :gutter="10">
-              <el-col :span="11"
-                ><el-form-item label="閫変腑鎻愮ず">
+              <el-col :span="8"
+                ><el-form-item label="棰樼洰鏍囬">
                   <el-input
-                    type="text"
-                    placeholder="璇疯緭鍏ュ唴瀹�"
-                    v-model="text"
-                    maxlength="10"
-                    show-word-limit
-                  >
-                  </el-input> </el-form-item
+                    v-model="topicobj.scriptTopic"
+                    placeholder="璇疯緭鍏ユ爣棰�"
+                  ></el-input> </el-form-item
               ></el-col>
-              <el-col :span="11"
-                ><el-form-item label="涓嬮璺宠浆">
-                  <el-input
-                    type="text"
-                    placeholder="璇疯緭鍏ラ鍙�"
-                    v-model="text"
-                    show-word-limit
+              <el-col :span="8"
+                ><el-form-item label="鏄惁鍙敤">
+                  <el-select
+                    v-model="topicobj.isavailable"
+                    size="medium"
+                    filterable
+                    placeholder="璇烽�夋嫨鍒嗙被"
                   >
-                  </el-input> </el-form-item
+                    <el-option
+                      class="topicobjaa"
+                      v-for="item in usable"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    >
+                    </el-option>
+                  </el-select> </el-form-item
+              ></el-col>
+              <el-col :span="8"
+                ><el-form-item label="璇█">
+                  <el-select
+                    v-model="topicobj.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="8"
+                ><el-form-item label="鏄惁蹇呭~">
+                  <el-select
+                    v-model="topicobj.ismandatory"
+                    size="medium"
+                    filterable
+                    placeholder="璇烽�夋嫨鍒嗙被"
+                  >
+                    <el-option
+                      class="topicobjaa"
+                      v-for="item in required"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    >
+                    </el-option>
+                  </el-select> </el-form-item
+              ></el-col>
+              <el-col :span="8"
+                ><el-form-item label="棰樼洰绫诲瀷">
+                  <el-select
+                    v-model="topicobj.scriptType"
+                    size="medium"
+                    filterable
+                    placeholder="璇烽�夋嫨鍒嗙被"
+                  >
+                    <el-option
+                      class="topicobjaa"
+                      v-for="item in valuetype"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    >
+                    </el-option>
+                  </el-select> </el-form-item
+              ></el-col>
+              <el-col :span="8"
+                ><el-form-item label="閫傜敤鏂瑰紡">
+                  <el-select
+                    v-model="topicobj.suitway"
+                    disabled
+                    placeholder="璇烽�夋嫨"
+                  >
+                    <el-option
+                      class="topicobjaa"
+                      v-for="item in mode"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    >
+                    </el-option> </el-select></el-form-item
+              ></el-col>
+            </el-row>
+            <el-form-item label="棰樼洰鍐呭">
+              <el-input
+                style="width: 40vw"
+                type="textarea"
+                id="scriptContent"
+                v-model="topicobj.scriptContent"
+                @focus="handleInput('scriptContent')"
+                placeholder="璇疯緭鍏ラ鐩唴瀹�"
+              ></el-input>
+            </el-form-item>
+            <el-form-item label="棰樼洰璇存槑">
+              <el-input
+                style="width: 40vw"
+                type="textarea"
+                v-model="topicobj.scriptDesc"
+                placeholder="璇疯緭鍏ヨ鏄�"
+              ></el-input>
+            </el-form-item>
+
+            <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="handleChangetg"
+                >
+                  <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
+                  <div slot="tip" class="el-upload__tip">
+                    鍙兘涓婁紶jpg/png绫诲瀷鏂囦欢
+                  </div>
+                </el-upload>
+
+                <div style="margin: 20px">
+                  <el-image
+                    style="width: 100px; height: 100px"
+                    :src="topicobj.picturePath"
+                    :preview-src-list="[...topicobj.picturePath]"
+                  >
+                  </el-image>
+                </div>
+              </div>
+            </el-form-item>
+
+            <el-row>
+              <el-form-item label="鏍囩" prop="desc">
+                <div class="xinz-inf">
+                  <el-tag
+                    :key="tag.tagname"
+                    type="success"
+                    v-for="tag in dynamicTags"
+                    closable
+                    :disable-transitions="false"
+                    @close="handleClosetag(tag)"
+                  >
+                    {{ tag.tagname }}
+                  </el-tag>
+                  <el-select
+                    v-model="inputValue"
+                    v-if="inputVisible"
+                    @change="handleInputConfirm"
+                    filterable
+                    remote
+                    allow-create
+                    reserve-keyword
+                    default-first-option
+                    :remote-method="remoteMethodtag"
+                    :loading="loading"
+                    placeholder="璇烽�夋嫨"
+                  >
+                    <el-option
+                      v-for="item in optionstag"
+                      :key="item.tagid"
+                      :label="item.tagname"
+                      :value="item.tagname"
+                    >
+                    </el-option>
+                  </el-select>
+                  <el-button
+                    v-else
+                    class="button-new-tag"
+                    size="small"
+                    @click="showInput"
+                    >+ 鏂板鏍囩</el-button
+                  >
+                </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)"
+                  >
+                    {{ 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>
+                  <el-button
+                    v-else
+                    class="button-new-tag"
+                    size="small"
+                    @click="inputVisibleillness = true"
+                    >+ 鏂板鐤剧梾</el-button
+                  >
+                </div>
+              </el-form-item>
+            </el-row>
+          </div>
+          <div>
+            <span style="margin-left: 30px"
+                >閫変腑鎸囨爣锛�<el-tag type="success" effect="dark">{{
+                  topicobj.targetname ? topicobj.targetname : "鏈�夋嫨"
+                }}</el-tag></span
+              >
+              <span style="margin-left: 30px"
+                ><el-button type="success" round @click="gettargetInfo"
+                  >+閫夋嫨鎸囨爣</el-button
+                ></span
+              >
+          </div>
+          <div v-if="topicobj.scriptType != 3 && topicobj.scriptType != 4">
+            <div class="headline">
+              閫夐」璁剧疆<span style="margin-left: 30px"
+                ><el-button type="primary" round @click="addoption"
+                  >+鏂板</el-button
+                ></span
+              >
+
+            </div>
+            <div
+              class="topicxq"
+              v-for="item in topicobj.svyLibScriptOptions"
+              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="topicobj.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="topicobj.scoretype == 2"
+                    label="ABC绛夌骇"
+                  >
+                    <el-radio-group v-model="item.score">
+                      <el-radio label="A">A</el-radio>
+                      <el-radio label="B">B</el-radio>
+                      <el-radio label="C">C</el-radio>
+                    </el-radio-group>
+                  </el-form-item>
+                  <el-form-item
+                    v-else-if="topicobj.scoretype == 3"
+                    label="浼樿壇绛夌骇"
+                  >
+                    <el-radio-group v-model="item.score">
+                      <el-radio label="浼�">浼�</el-radio>
+                      <el-radio label="鑹�">鑹�</el-radio>
+                      <el-radio label="宸�">宸�</el-radio>
+                    </el-radio-group>
+                  </el-form-item>
+                </el-col>
+                <el-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
+                    style="width: 40vw"
+                    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>
       </el-card>
     </div>
+    <el-drawer
+      title="閫夋嫨鎸囨爣"
+      :visible.sync="drawer"
+      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="userName">
+            <el-input
+              v-model="queryParams.targetname"
+              placeholder="璇疯緭鍏�"
+              clearable
+              style="width: 200px"
+              @keyup.enter.native="gettargetInfo"
+            />
+          </el-form-item>
+          <el-form-item label="鎸囨爣璇存槑" prop="userName">
+            <el-input
+              v-model="queryParams.targetdesc"
+              placeholder="璇疯緭鍏�"
+              clearable
+              style="width: 200px"
+              @keyup.enter.native="gettargetInfo"
+            />
+          </el-form-item>
+          <el-form-item label="鎸囨爣鏍囩" prop="userName">
+            <el-input
+              v-model="queryParams.tagName"
+              placeholder="璇疯緭鍏�"
+              clearable
+              style="width: 200px"
+              @keyup.enter.native="gettargetInfo"
+            />
+          </el-form-item>
+
+          <el-form-item>
+            <el-button
+              type="primary"
+              icon="el-icon-search"
+              size="medium"
+              @click="gettargetInfo"
+              >鎼滅储</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="targetList">
+          <el-table-column
+            label="鎸囨爣鍚嶇О"
+            align="center"
+            key="targetname"
+            prop="targetname"
+            width="100"
+          />
+          <el-table-column
+            label="鎸囨爣璇存槑"
+            align="center"
+            key="targetdesc"
+            prop="targetdesc"
+            width="200"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="璇█"
+            align="center"
+            key="language"
+            prop="language"
+            width="200"
+            :show-overflow-tooltip="true"
+          />
+          <el-table-column
+            label="鏄惁鍙敤"
+            align="center"
+            key="isAvailable"
+            prop="isAvailable"
+          >
+            <template slot-scope="scope">
+              <dict-tag :options="usable" :value="scope.row.isAvailable" />
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="闂绫诲瀷"
+            align="center"
+            key="scriptType"
+            prop="scriptType"
+          >
+            <template slot-scope="scope">
+              <dict-tag :options="valuetype" :value="scope.row.scriptType" />
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="閫夐」璇存槑"
+            align="center"
+            key="optionDesc"
+            prop="optionDesc"
+            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="selectlabel(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="gettargetInfo"
+        />
+      </div>
+    </el-drawer>
   </div>
 </template>
 
 <script>
 import { listtag } from "@/api/system/label";
+import store from "@/store";
+import {
+  gettargetInfo,
+  getissuelist,
+  issueinfo,
+  compileissue,
+  delissueinfo,
+  Followupinfo,
+  getissueclassify,
+  deltargetillness,
+  addtargetillness,
+  getillnesslist,
+  illnesslistget,
+  getillness,
+} from "@/api/AiCentre/index";
+import { getToken } from "@/utils/auth";
 
 export default {
   data() {
     return {
-      topicobj: {},
+      topicobj: {
+        svyLibScriptOptions: [],
+        svyLibScriptTagList: [],
+        suitway: "1",
+      },
+      headers: {
+        Authorization: "Bearer " + getToken(),
+      },
+      uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort",
       inputVisible: false,
       inputValue: "",
-      dynamicTags: ["鏍囩涓�", "鏍囩浜�", "鏍囩涓�"],
+      currentInputId: "",
+      total: 0,
+      drawer: false,
+      loading: false,
+      id: [],
+      suitwaylist: [],
+      targetList: [],
+      dynamicTags: [],
+      optionsclass: [],
+      variablelist: [
+        { variatename: "濮撳悕", variate: "${name}", default: 1 },
+        { variatename: "鐢佃瘽", variate: "${phone}", default: 1 },
+        { variatename: "鐥呮儏", variate: "${illness}", default: 1 },
+      ],
+      url: "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg",
+      srcList: [
+        "https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg",
+        "https://fuss10.elemecdn.com/1/8e/aeffeb4de74e2fde4bd74fc7b4486jpeg.jpeg",
+      ],
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        isavailable: "",
+      },
       optionlist: [
-        { value: "topic", table: "topic" },
-        { value: "topic", table: "topic" },
-        { value: "topic", table: "topic" },
+        { value: "scriptTopic", table: "scriptTopic" },
+        { value: "scriptTopic", table: "scriptTopic" },
+        { value: "scriptTopic", table: "scriptTopic" },
       ],
-      options: [
-        {
-          value: "閫夐」1",
-          label: "蹇冭绠�",
-        },
-        {
-          value: "閫夐」2",
-          label: "楠ㄧ",
-        },
-        {
-          value: "閫夐」3",
-          label: "濡囩",
-        },
+      inputValueillness: "",
+      required: [],
+      themelist: [],
+      languagelist: [],
+      courtyardlist: [],
+      precedencetype: [],
+      inputVisible: false,
+      inputVisibleillness: false,
+      illnessVisible: false, //鎸囨爣鐤剧梾寮规
+      deptOptions: [],
+      optionsillness: [],
+      illnesslistapi: [],
+      illnesslist: [],
+      classifylist: [],
+      appraiselist: [
+        { label: "鍒嗘暟", value: "1" },
+        { label: "ABC绛夌骇", value: "2" },
+        { label: "浼樿壇绛夌骇", value: "3" },
       ],
-      optionstag:[],
-      xjxsoptions: [
-        {
-          value: "1",
-          label: "鍗曢��",
-        },
-        {
-          value: "2",
-          label: "澶氶��",
-        },
-      ],
+      optionstag: [],
+      valuetype: [],
+      usable: [],
+      mode: [], //鏂瑰紡
     };
   },
 
   created() {
     this.gettabList();
+    this.getissueinfo();
+    // this.gettargetInfo();
+    this.mode = store.getters.mode;
+    this.languagelist = store.getters.languagelist;
+    this.usable = store.getters.usable;
+    this.valuetype = store.getters.askvaluetype;
+    this.required = store.getters.required;
   },
 
   methods: {
-    Submittopicobj() {},
+    // 鍏叡鏂规硶---------------
+    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.svyLibTopicCategoryList) {
+          console.log(2);
+          result = result.concat(
+            this.flattenArray(item.svyLibTopicCategoryList)
+          );
+          delete item.svyLibTopicCategoryList;
+        }
+      });
+      return result;
+    },
+    // -----------------------------
+    // 鑾峰彇鏁版嵁
+    getissueinfo() {
+      this.id = this.$route.query.id;
+      // 鍒嗙被
+      getissueclassify({}).then((res) => {
+        this.classifylist = res.rows;
+        console.log(this.classifylist, "鍒嗙被");
+      });
+      if (!this.id) {
+        return;
+      }
+      getissuelist({ id: this.id }).then((res) => {
+        this.topicobj = res.rows[0];
+        this.dynamicTags = this.topicobj.svyLibScriptTagList.map(
+          this.processElement
+        );
+        this.variablelist = JSON.parse(this.topicobj.otherdata)
+          ? JSON.parse(this.topicobj.otherdata)
+          : this.variablelist;
+      });
+      getillnesslist({
+        pageNum: 1,
+        pageSize: 100,
+      }).then((response) => {
+        this.optionsillness = response.rows;
+      });
+      getillness({ outid: this.id, type: 4 }).then((res) => {
+        this.illnesslist = res.rows;
+      });
+    },
+    gettargetInfo() {
+      if (!this.topicobj.scriptType) {
+        this.$message({
+          message: "璇峰厛閫夋嫨棰樼洰绫诲瀷",
+          type: "error",
+        });
+        return;
+      }
+      this.queryParams.scriptType = this.topicobj.scriptType;
+      gettargetInfo(this.queryParams).then((res) => {
+        this.targetList = res.rows;
+        this.total = res.total;
+        this.drawer = true;
+      });
+    },
+    // 鏂板鎴栦慨鏀硅鎯�
+    compileissue() {
+      this.topicobj.svyLibScriptOptions = this.topicobj.svyLibScriptOptions.map(
+        (item) => {
+          if (item.isoperation != 1 && item.isoperation != 3) {
+            item.isoperation = 2;
+          }
+          return item;
+        }
+      );
+      this.topicobj.targetoptions = this.topicobj.svyLibScriptOptions
+        .filter((item) => item.isoperation != 3)
+        .map((item) => item.optioncontent)
+        .join(", ");
+      this.topicobj.otherdata = JSON.stringify(this.variablelist);
+      if (this.id) {
+        this.topicobj.isoperation = 2;
+        compileissue(this.topicobj).then((res) => {
+          if (res.code == 200) {
+            this.$message({
+              message: "淇敼鎴愬姛",
+              type: "success",
+            });
+            this.$router.go(-1);
+          } else {
+            this.$message({
+              message: "淇敼澶辫触",
+              type: "error",
+            });
+          }
+        });
+      } else {
+        this.topicobj.isoperation = 1;
+        compileissue(this.topicobj).then((res) => {
+          if (res.code == 200) {
+            this.$message({
+              message: "鏂板鎴愬姛",
+              type: "success",
+            });
+            this.$router.go(-1);
+          } else {
+            this.$message({
+              message: "鏂板澶辫触",
+              type: "error",
+            });
+          }
+        });
+      }
+      this.illnesslist.forEach((item, index) => {
+        if (!item.id) {
+          addtargetillness(item).then((res) => {});
+        }
+      });
+      if (this.illnesslistapi.length) {
+        deltargetillness(this.illnesslistapi.join(",")).then((res) => {});
+      }
+    },
+    // 鍒ゆ柇鍒嗗��
+    Scorejudgment() {
+      let scorearr = this.topicobj.svyLibScriptOptions;
+      let isValid = scorearr.every((score) => {
+        if (score.score) {
+          console.log(Number(score.score), this.topicobj.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 if (this.topicobj.scriptType == 3) {
+          return true;
+        } else {
+          this.$message({
+            message: "閫夐」鍒嗗�兼湭璁剧疆",
+            type: "warning",
+          });
+          return false;
+        }
+      });
+
+      if (isValid) {
+        this.compileissue();
+        // console.log("鍒颁繚瀛樹簡");
+      }
+    },
+    Saveproblem() {
+      if (this.topicobj.scoretype == 1) {
+        this.Scorejudgment();
+      } else {
+        this.compileissue();
+      }
+    },
+
+    // 鍒犻櫎閫夐」
+    deletexuanx(row) {
+      const index = this.getIndexInArray(
+        this.topicobj.svyLibScriptOptions,
+        row
+      );
+      if (this.topicobj.svyLibScriptOptions[index].id) {
+        this.topicobj.svyLibScriptOptions[index].isoperation = 3;
+      } else {
+        this.topicobj.svyLibScriptOptions.splice(index, 1);
+      }
+    },
     // 鏂板閫夐」
-    addoption() {},
+    addoption() {
+      console.log(this.topicobj, "obj");
+      this.topicobj.svyLibScriptOptions.push({
+        score: "",
+        isoperation: 1,
+      });
+    },
+    // 閫夋嫨鎸囨爣
+    selectlabel(row) {
+      this.$modal
+        .confirm(
+          '鏄惁閫夋嫨鏍囬涓�"' + row.targetname + '"鐨勬寚鏍囧苟鏇挎崲濉厖闂鍙婇�夐」淇℃伅锛�'
+        )
+        .then(() => {
+          console.log(row);
+          this.topicobj.scriptTopic = row.targetname;
+          this.topicobj.valueType = row.valueType;
+          this.topicobj.scriptContent = row.targetdesc;
+          this.topicobj.targetid = row.id;
+          this.topicobj.targetname = row.targetname;
+          this.topicobj.isavailable = "0";
+          this.topicobj.language = "鏅�氳瘽";
+          this.topicobj.svyLibScriptOptions = [];
+          const labellist = row.targetoptionList;
+          labellist.forEach((item) => {
+            this.topicobj.svyLibScriptOptions.push({
+              optioncontent: item.targetvalue,
+              isoperation: 1,
+            });
+          });
+          this.drawer = false;
+        })
+        .catch(() => {});
+    },
+
     // 鏍囩-----------------
-    /** 鏌ヨ鏍囩鍒楄〃 */
     gettabList() {
       const tagqueryParams = {
         pageNum: 1,
@@ -283,27 +873,250 @@
         tagcategoryid: "0",
       };
       listtag(tagqueryParams).then((response) => {
-        console.log(response);
-        this.options = response.rows;
+        console.log(response, "寰呴�夋爣绛�");
+        this.optionstag = response.rows;
       });
     },
-    handleClose(tag) {
+    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.topicobj.svyLibScriptTagList[lindex].delFlag = 1;
     },
     handleInputConfirm() {
-      let inputValue = this.inputValue;
-      if (inputValue) {
-        this.dynamicTags.push(inputValue);
+      let tagvalue = {};
+      let tagname = this.inputValue;
+      if (tagname) {
+        listtag({
+          pageNum: 1,
+          pageSize: 1000,
+          tagcategoryid: "0",
+          tagname: tagname,
+        }).then((res) => {
+          if (res.rows[0]) {
+            tagvalue = res.rows[0];
+            tagvalue.isoperation = 1;
+          } else {
+            tagvalue = {
+              tagname: tagname,
+              isoperation: 1,
+            };
+          }
+          // this.dynamicTags.push(tagvalue);
+          this.topicobj.svyLibScriptTagList.push(tagvalue);
+          this.dynamicTags.push(tagvalue);
+        });
       }
       this.inputVisible = false;
       this.inputValue = "";
     },
+    remoteMethodtag(query) {
+      if (query !== "") {
+        this.loading = true;
+        setTimeout(() => {
+          this.loading = false;
+          listtag({ tagname: query, tagcategoryid: "0" }).then((res) => {
+            this.optionstag = res.rows;
+          });
+        }, 200);
+      } else {
+        this.optionstag = [];
+      }
+    },
     showInput() {
       this.inputVisible = true;
-      // 鑷姩鑾峰彇鐒︾偣
-      // this.$nextTick((_) => {
-      //   this.$refs.saveTagInput.$refs.input.focus();
-      // });
+    },
+    // 鐤剧梾-----------------------
+
+    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 = 4;
+        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() {
+    //   this.illnesslist.forEach((item, index) => {
+    //     if (!item.id) {
+    //       addtargetillness(item).then((res) => {});
+    //     }
+    //   });
+    //   if (this.illnesslistapi.length) {
+    //     deltargetillness(this.illnesslistapi.join(",")).then((res) => {});
+    //   }
+    //   this.illnessVisible = false;
+    //   this.$modal.msgSuccess("缂栬緫鎴愬姛");
+    // },
+    resetQuery() {
+      this.queryParams = {
+        pageNum: 1,
+        pageSize: 10,
+      };
+      this.gettargetInfo();
+    },
+    // 渚挎嵎鏍囩
+    tsgnameto(row) {
+      let inputValueArr = "";
+      let el = document.querySelector("#" + this.currentInputId);
+      //el.selectionStart; 杩欏氨鏄綋鍓嶅厜鏍囨墍鍦ㄧ殑浣嶇疆锛堝瓧绗︿覆涓瓧绗︾殑index锛�
+      if (this.currentInputId == "scriptContent") {
+        inputValueArr = this.topicobj.scriptContent.split("");
+      } else if (this.currentInputId == "nomatchtext") {
+        inputValueArr = this.topicobj.nomatchtext.split("");
+      } else if (this.currentInputId == "sliencetext") {
+        inputValueArr = this.topicobj.sliencetext.split("");
+      } else if (this.currentInputId == "noclearlytext") {
+        inputValueArr = this.topicobj.noclearlytext.split("");
+      } else if (this.currentInputId == "submoduletext") {
+        inputValueArr = this.topicobj.submoduletext.split("");
+      } else {
+        return;
+      }
+      //灏嗚緭鍏ユ鍐呭鍒囨垚鏁扮粍锛屾柟渚垮悗缁搷浣�
+      // inputValueArr = this.inputValue.split("");
+      // 鎷垮埌閫変腑鏂囧瓧鐨勯暱搴︼紙鍚庣画鍙互鐢ㄦ潵鏇挎崲閫変腑鐨勬枃瀛楋級
+      let selectLength = el.selectionEnd - el.selectionStart;
+      // 灏嗚鎻掑叆/鏇挎崲鐨勬枃瀛楁彃鍏�/鏇挎崲锛坴alue.name鏄鎻掑叆/鏇挎崲鐨勫瓧绗︿覆锛�
+      inputValueArr.splice(el.selectionStart, selectLength, `${row.variate}`);
+      // 鎶婃暟缁勯噸鏂拌浆鎹负瀛楃涓插苟璧嬪��
+      inputValueArr = inputValueArr.join("");
+      console.log(inputValueArr);
+      if (this.currentInputId == "scriptContent") {
+        this.topicobj.scriptContent = inputValueArr;
+      } else if (this.currentInputId == "nomatchtext") {
+        this.topicobj.nomatchtext = inputValueArr;
+      } else if (this.currentInputId == "sliencetext") {
+        this.topicobj.sliencetext = inputValueArr;
+      } else if (this.currentInputId == "noclearlytext") {
+        this.topicobj.noclearlytext = inputValueArr;
+      } else if (this.currentInputId == "submoduletext") {
+        this.topicobj.submoduletext = inputValueArr;
+      } else {
+        return;
+      }
+    },
+
+    // 鏂板鍙橀噺
+    addvariable() {
+      this.variablelist.push({
+        variatename: "",
+        variate: "",
+      });
+    },
+    // 鍒犻櫎鍙橀噺
+    delvariable(item) {
+      const index = this.variablelist.indexOf(item);
+      if (index !== -1) {
+        this.variablelist.splice(index, 1); // 浠庣储寮曚綅缃垹闄や竴涓厓绱�
+      } else {
+        console.log("鏈壘鍒拌瀵硅薄");
+      }
+    },
+    // 杈撳叆鑾峰彇id
+    handleInput(id) {
+      this.currentInputId = id;
+      console.log("杈撳叆妗嗙殑鍊煎凡鏇存柊:", this.currentInputId);
+      // 鍦ㄨ繖閲屾墽琛屾洿鏂版暟鎹殑閫昏緫
+    },
+    // 娣峰悎璺嚎
+    generateCombinations(arrays, currentIndex = 0, currentCombination = []) {
+      if (currentIndex === arrays.length) {
+        return [currentCombination];
+      }
+
+      const currentArray = arrays[currentIndex];
+      const newCombinations = [];
+
+      for (const item of currentArray) {
+        const newCombination = [...currentCombination, item];
+        const combinations = this.generateCombinations(
+          arrays,
+          currentIndex + 1,
+          newCombination
+        );
+        newCombinations.push(...combinations);
+      }
+      return newCombinations;
+    },
+    // 鎵ц
+    test() {
+      const arrays = [
+        ["2", "3", "4", "5"],
+        ["1", "2", "5", "6"],
+        ["3", "4", "5", "3"],
+        ["3", "2", "5", "7"],
+      ];
+
+      const newMixArray = this.generateCombinations(arrays);
+      console.log(newMixArray, "鍏ㄩ儴璺嚎");
+      this.screen(newMixArray);
+    },
+    // 鏁扮粍姹傚拰
+    sumArray(arr) {
+      return arr.reduce((acc, curr) => acc + parseInt(curr), 0);
+    },
+    // 绛涢�夐敊璇矾绾�
+    screen(data) {
+      const arraysGreaterThan10 = data.filter((arr) => this.sumArray(arr) > 21);
+      console.log(arraysGreaterThan10, "绛涢�夐敊璇矾绾垮ぇ浜�13鍒�");
+    },
+    // 閫夐」鏂囦欢涓婁紶
+    handleChange(item, response, file, fileList) {
+      console.log(response);
+      if (response.code == 200) {
+        console.log(item);
+        let index = this.topicobj.svyLibScriptOptions.findIndex(
+          (obj) => obj.optioncontent == item.optioncontent
+        );
+        console.log(index);
+        this.topicobj.svyLibScriptOptions[index].picturePath = response.url;
+        console.log(this.topicobj.svyLibScriptOptions[index]);
+        this.$forceUpdate();
+      } else {
+        this.$message.error("鍥剧墖鎻掑叆澶辫触");
+      }
+    },
+    // 棰樺共鏂囦欢涓婁紶
+    handleChangetg(response, file, fileList) {
+      if (response.code == 200) {
+        this.topicobj.picturePath = response.url;
+      } else {
+        this.$message.error("鍥剧墖鎻掑叆澶辫触");
+      }
     },
   },
 };
@@ -322,13 +1135,18 @@
     margin: 15px 0;
   }
   .topicxq {
-    width: 50%;
+    width: 68%;
     background-color: #e2f5fc;
     border-radius: 4px;
-    margin-top: 10px;
+    margin-top: 15px;
+    margin-left: 10%;
     padding-left: 10px;
     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);
   }
+
   .xinz-inf {
     font-size: 18px;
     white-space: nowrap;
@@ -353,4 +1171,40 @@
     }
   }
 }
+.tsgname {
+  width: 90px;
+  margin-right: 10px;
+  text-align: center;
+  cursor: pointer;
+  height: 40px;
+  line-height: 40px;
+  background: #7799fa;
+  color: #ffff;
+  font-size: 18px;
+  border-radius: 5px;
+}
+.tsgname:hover {
+  background: #3366f5;
+}
+.preview-left {
+  margin: 20px;
+  //   margin: 20px;
+  padding: 30px;
+  background: #ffff;
+  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);
+  .scriptTopic-dev {
+    margin-bottom: 25px;
+    font-size: 20px !important;
+    .dev-text {
+      margin-bottom: 10px;
+    }
+  }
+}
+::v-deep.ruleFormaa.el-select {
+  display: inline-block;
+  position: relative;
+  width: 700px;
+}
 </style>

--
Gitblit v1.9.3