From 09a1bd58e04706d7e1d6e1543b990c08a4b8f97c Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期四, 16 一月 2025 13:57:03 +0800
Subject: [PATCH] 测试完成

---
 src/views/knowledge/education/compilequer/index.vue |  982 ++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 681 insertions(+), 301 deletions(-)

diff --git a/src/views/knowledge/education/compilequer/index.vue b/src/views/knowledge/education/compilequer/index.vue
index c78fba9..be12c5b 100644
--- a/src/views/knowledge/education/compilequer/index.vue
+++ b/src/views/knowledge/education/compilequer/index.vue
@@ -2,20 +2,28 @@
   <div class="Questionnairemanagement">
     <!-- 宸︿晶鏍� -->
     <div class="sidecolumn">
-      <div style="height: 200px">
-        <el-steps direction="vertical" :active="Editprogress">
-          <el-step title="鍩虹淇℃伅璁剧疆"></el-step>
-          <el-step title="瀹f暀鍐呭"></el-step>
-        </el-steps>
-      </div>
+      <el-steps finish-status="success" :active="Editprogress" simple>
+        <el-step>
+          <template slot="title">
+            <span style="cursor: pointer" @click="Editprogress = 1"
+              >鍩虹淇℃伅璁剧疆</span
+            >
+          </template>
+        </el-step>
+        <el-step>
+          <template slot="title">
+            <span style="cursor: pointer" @click="Editprogress = 2"
+              >瀹f暀鍐呭</span
+            >
+          </template>
+        </el-step>
+      </el-steps>
     </div>
     <!-- 鍙充晶鏁版嵁 -->
     <div class="leftvlue">
       <!-- 鍩烘湰淇℃伅 -->
       <div v-if="Editprogress == 1">
-        <div class="leftvlue-jbxx">
-          鍩烘湰淇℃伅<span>褰撳墠鐗堟湰:{{ currentVersion }}</span>
-        </div>
+        <div class="leftvlue-jbxx">鍩烘湰淇℃伅</div>
         <el-form
           :model="ruleForm"
           :rules="rules"
@@ -25,50 +33,80 @@
         >
           <el-form-item label="瀹f暀鍒嗙被" prop="region">
             <el-select
-              v-model="ruleForm.classify"
+              v-model="ruleForm.assortid"
               size="medium"
-              multiple
               filterable
               placeholder="璇烽�夋嫨鍒嗙被"
             >
-              <el-option
-                class="ruleFormaa"
-                v-for="item in options"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
+              <el-option-group
+                v-for="group in sortlist"
+                :key="group.id"
+                :label="group.assortname"
               >
-              </el-option>
+                <el-option
+                  v-for="item in group.heLibraryAssortList"
+                  :key="item.id"
+                  :label="item.assortname"
+                  :value="item.id"
+                >
+                </el-option>
+              </el-option-group>
             </el-select>
           </el-form-item>
-          <el-form-item label="瀹f暀鏍囬" prop="name">
+          <el-row>
+            <el-col :span="12"> </el-col>
+            <el-col :span="12"> </el-col>
+          </el-row>
+          <el-form-item label="瀹f暀鏍囬" prop="preachname">
             <div style="width: 30%">
-              <el-input v-model="ruleForm.name"></el-input>
+              <el-input
+                v-model="ruleForm.preachname"
+                placeholder="璇疯緭鍏ユ爣棰�"
+              ></el-input>
+            </div>
+          </el-form-item>
+          <el-form-item label="瀹f暀鎻忚堪" prop="preachcontent">
+            <div style="width: 60%">
+              <el-input
+                type="textarea"
+                :rows="2"
+                v-model="ruleForm.preachcontent"
+                placeholder="璇疯緭鍏ユ弿杩�"
+              ></el-input>
             </div>
           </el-form-item>
           <el-form-item label="閫氱煡鍙橀噺" prop="name">
-            <el-row v-for="item in variablelist">
-              <el-col :span="4">
-                <el-input v-model="item.variable"></el-input>
-              </el-col>
-              <el-col :span="8" :offset="1">
-                <el-input v-model="item.value"></el-input>
-              </el-col>
-              <el-col :span="4" :offset="1">
-                <el-button
-                  type="success"
-                  icon="el-icon-plus"
-                  circle
-                  @click="addvariable(item)"
-                ></el-button>
-                <el-button
-                  type="danger"
-                  icon="el-icon-delete"
-                  circle
-                  @click="delvariable(item)"
-                ></el-button>
-              </el-col>
-            </el-row>
+            <div style="margin-bottom: 5px" v-for="item in variablelist">
+              <el-row>
+                <el-col :span="5">
+                  <el-input
+                    v-model="item.variatename"
+                    placeholder="璇疯緭鍏ュ彉閲忓悕"
+                  ></el-input>
+                </el-col>
+                <el-col :span="8" :offset="1">
+                  <el-input
+                    v-model="item.variate"
+                    placeholder="璇疯緭鍏ュ彉閲忓唴瀹�"
+                  ></el-input>
+                </el-col>
+                <el-col :span="8" :offset="1">
+                  <el-button
+                    type="success"
+                    icon="el-icon-plus"
+                    circle
+                    @click="addvariable(item)"
+                  ></el-button>
+                  <el-button
+                    v-if="!item.default"
+                    type="danger"
+                    icon="el-icon-delete"
+                    circle
+                    @click="delvariable(item)"
+                  ></el-button>
+                </el-col>
+              </el-row>
+            </div>
           </el-form-item>
 
           <el-form-item label="鏂囦欢" prop="sickness">
@@ -89,27 +127,33 @@
           <el-form-item label="鏍囩" prop="desc">
             <div class="xinz-inf">
               <el-tag
-                :key="tag"
+                :key="tag.tagname"
                 type="success"
                 v-for="tag in dynamicTags"
                 closable
                 :disable-transitions="false"
-                @close="handleClose(tag)"
+                @close="handleClosetag(tag)"
               >
-                {{ 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 options"
-                  :key="item.label"
-                  :label="item.label"
-                  :value="item.label"
+                  v-for="item in optionstag"
+                  :key="item.tagid"
+                  :label="item.tagname"
+                  :value="item.tagname"
                 >
                 </el-option>
               </el-select>
@@ -125,31 +169,26 @@
           <el-row :gutter="20">
             <el-col :span="6">
               <el-form-item label="鐗堟湰鍙�" prop="name">
-                <el-input v-model="currentVersion"></el-input> </el-form-item
+                <el-input
+                  v-model="ruleForm.version"
+                  placeholder="榛樿1.0.1"
+                ></el-input> </el-form-item
             ></el-col>
             <el-col :span="9">
               <el-form-item label="鍙敤鐘舵��" prop="region">
-                <el-select
-                  v-model="ruleForm.classify"
-                  size="medium"
-                  multiple
-                  filterable
-                  placeholder="璇烽�夋嫨鍒嗙被"
-                >
-                  <el-option
-                    class="ruleFormaa"
-                    v-for="item in options"
-                    :key="item.value"
-                    :label="item.label"
-                    :value="item.value"
+                <el-radio-group v-model="ruleForm.isAvailable">
+                  <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>
           <el-form-item label="瀹f暀鏂瑰紡" prop="region">
             <el-select
-              v-model="ruleForm.way"
+              v-model="ruleForm.suitway"
               size="medium"
               multiple
               filterable
@@ -157,17 +196,22 @@
             >
               <el-option
                 class="ruleFormaa"
-                v-for="item in xjxsoptions"
-                :key="item.value"
+                v-for="item in mode"
+                :key="item.label"
                 :label="item.label"
-                :value="item.value"
+                :value="item.label"
               >
               </el-option>
             </el-select>
           </el-form-item>
           <el-form-item label="閫傜敤鐤剧梾" prop="region">
+            <el-button type="warning" @click="$refs.child.handleAddpatient()"
+              >娣诲姞鐤剧梾</el-button
+            >
+          </el-form-item>
+          <el-form-item label="閫傜敤闄㈠尯" prop="region">
             <el-select
-              v-model="ruleForm.illness"
+              v-model="ruleForm.campus"
               size="medium"
               multiple
               filterable
@@ -175,24 +219,7 @@
             >
               <el-option
                 class="ruleFormaa"
-                v-for="item in options"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
-              >
-              </el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="浣跨敤闄㈠尯" prop="region">
-            <el-select
-              v-model="ruleForm.courtyard"
-              size="medium"
-              filterable
-              placeholder="璇烽�夋嫨鍒嗙被"
-            >
-              <el-option
-                class="ruleFormaa"
-                v-for="item in options"
+                v-for="item in courtyardlist"
                 :key="item.value"
                 :label="item.label"
                 :value="item.value"
@@ -201,52 +228,36 @@
             </el-select>
           </el-form-item>
           <el-form-item label="閫傜敤绉戝" prop="region">
-            <el-select
-              v-model="ruleForm.administrative"
-              size="medium"
-              multiple
-              filterable
-              placeholder="璇烽�夋嫨鍒嗙被"
+            <el-cascader
+              v-model="tempDetpRelevanceslist"
+              :options="deptList"
+              :props="props"
+              :show-all-levels="false"
+              clearable
             >
-              <el-option
-                class="ruleFormaa"
-                v-for="item in options"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
-              >
-              </el-option>
-            </el-select>
+              <template slot-scope="{ node, data }">
+                <span>{{ data.deptName }}</span>
+                <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
+              </template>
+            </el-cascader>
           </el-form-item>
           <el-form-item>
             <el-button type="success" @click="nextstep('ruleForm')"
               >涓嬩竴姝�</el-button
             >
-            <el-button @click="resetForm('ruleForm')">閲嶇疆</el-button>
-            <el-button type="info" @click="closeFm('ruleForm')"
-                >鍏抽棴</el-button
-              >
+            <el-button type="success" @click="Departmenttreatment('ruleForm')"
+              >淇濆瓨</el-button
+            >
+            <el-button type="info" @click="closeFm('ruleForm')">鍏抽棴</el-button>
           </el-form-item>
         </el-form>
       </div>
       <!-- 瀹f暀鍐呭 -->
       <div v-if="Editprogress == 2">
         <el-row :gutter="20">
-          <el-col :span="4"><div class="leftvlue-jbxx">瀹f暀鍐呭</div></el-col>
-          <el-col :span="12">
-            <div>
-              <el-button @click="laststep('ruleForm')">涓婁竴姝�</el-button>
-              <el-button type="success" @click="submitForm('ruleForm')"
-                >淇濆瓨</el-button
-              >
-              <el-button type="warning" @click="submitForm('ruleForm')"
-                >鍙﹀瓨鏂扮増鏈�</el-button
-              >
-              <el-button type="info" @click="closeFm('ruleForm')"
-                >鍏抽棴</el-button
-              >
-            </div></el-col
-          >
+          <el-col :span="4">
+            <div class="leftvlue-jbxx">瀹f暀鍐呭</div>
+          </el-col>
         </el-row>
 
         <div>
@@ -257,20 +268,55 @@
             label-width="100px"
             class="demo-ruleForm"
           >
-            <el-form-item label="璧勬枡褰㈠紡" prop="region">
-              <el-select v-model="ruleForm.shape" placeholder="璇烽�夋嫨鍐呭褰㈠紡">
-                <el-option
-                  v-for="item in xjxsoptions"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
-                </el-option>
-              </el-select>
-            </el-form-item>
+            <el-row :gutter="20">
+              <el-col :span="12">
+                <el-form-item label="璧勬枡褰㈠紡" prop="region">
+                  <el-select
+                    v-model="ruleForm.shape"
+                    placeholder="璇烽�夋嫨鍐呭褰㈠紡"
+                  >
+                    <el-option
+                      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">
+                <div>
+                  <el-button @click="laststep('ruleForm')">涓婁竴姝�</el-button>
+                  <el-button
+                    type="success"
+                    @click="Departmenttreatment('ruleForm')"
+                    >淇濆瓨</el-button
+                  >
+                  <el-button
+                    type="warning"
+                    @click="Departmenttreatment('ruleForm')"
+                    >鍙﹀瓨鏂扮増鏈�</el-button
+                  >
+                  <el-button type="info" @click="closeFm('ruleForm')"
+                    >鍏抽棴</el-button
+                  >
+                </div>
+              </el-col>
+            </el-row>
           </el-form>
         </div>
         <div>
+          <el-upload
+            class="upload-demo"
+            :action="uploadImgUrlword"
+            :on-success="uploadEditorSuccessword"
+            :on-error="uploadEditorErrorword"
+            :before-upload="beforeEditorUploadword"
+            :headers="headers"
+          >
+            <el-button size="small" type="primary">word鏂囦欢涓婁紶</el-button>
+          </el-upload>
           <div id="quillEditorQiniu">
             <!-- 鍩轰簬elementUi鐨勪笂浼犵粍浠� el-upload begin-->
             <el-upload
@@ -290,19 +336,52 @@
               v-model="content"
               ref="customQuillEditor"
               :options="editorOption"
+              @blur="onEditorBlur"
+              @focus="onEditorFocus"
+              @change="onEditorChange"
             >
             </quill-editor>
           </div>
         </div>
       </div>
     </div>
+    <!-- 娣诲姞閫傜敤鐤剧梾绐楀彛 -->
+    <Optional-Form
+      ref="child"
+      :dialogVisiblepatient="dialogVisiblepatient"
+      :overallCase="illnesslist"
+      @addoption="dialogVisiblepatient = false"
+      @kkoption="dialogVisiblepatient = true"
+    />
   </div>
 </template>
 
 <script>
 import { quillEditor } from "vue-quill-editor";
+import axios from "axios";
+
+import {
+  getheLibraryAssort,
+  delheLibraryAssort,
+  addheLibraryAssort,
+  addtargetillness,
+  getlibrarylist,
+  dellibraryinfo,
+  deltargetillness,
+  compilelibrary,
+  addrichText,
+  getlibraryinfo,
+  getillnesslist,
+  illnesslistget,
+  getillness,
+} from "@/api/AiCentre/index";
+import OptionalForm from "@/components/OptionalForm"; //姝e垯缁勪欢
+
+import { listDept } from "@/api/system/dept";
 // import * as Quill from "quill";
 import Quill from "quill";
+import { listtag } from "@/api/system/label";
+import store from "@/store";
 
 // 杩欓噷寮曞叆淇敼杩囩殑video妯″潡骞舵敞鍐�
 import Video from "./video";
@@ -331,12 +410,15 @@
 ];
 
 export default {
+  name: "aEducationinfo",
+  components: { OptionalForm },
   data() {
     return {
       headers: {
         Authorization: "Bearer " + getToken(),
       },
-      uploadImgUrl: "/v1/admin/common/upload",
+      uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort",
+      uploadImgUrlword: process.env.VUE_APP_BASE_API + "/common/uploadShow",
       uploadUrlPath: "娌℃湁鏂囦欢涓婁紶",
       quillUpdateImg: false,
       fileList: [
@@ -349,9 +431,12 @@
           url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100",
         },
       ],
-      content: "", //鏈�缁堜繚瀛樼殑鍐呭
-      dynamicTags: ["鏍囩涓�", "鏍囩浜�", "鏍囩涓�"],
+      content: `<p>娴嬭瘯</p><video class="ql-video" controls="controls" controlslist="nofullscreen" type="video/mp4" style="object-fit:fill;width: 100%;" preload="auto" playsinline="true" x-webkit-airplay="allow" x5-video-orientation="portraint" x5-playsinline="true" x5-video-player-fullscreen="true" src="http://218.108.11.22:8093/profile-api/upload/vadio/钀ュ吇娉垫搷浣滆鑼�.mp4"></video><video class="ql-video" controls="controls" controlslist="nofullscreen" type="video/mp4" style="object-fit:fill;width: 100%;" preload="auto" playsinline="true" x-webkit-airplay="allow" x5-video-orientation="portraint" x5-playsinline="true" x5-video-player-fullscreen="true" src="http://218.108.11.22:8093/profile-api/upload/vadio/娉ㄥ皠鍣ㄦ帹娉�.mp4"></video><p>321</p>"`, //鏈�缁堜繚瀛樼殑鍐呭
+      fileName: "", //鏂囦欢鍚�
+      dynamicTags: [],
       inputVisible: false,
+      illnessVisible: false,
+      dialogVisiblepatient: false, //閫傜敤鐤剧梾绐楀彛
       inputValue: "",
       // 瀵屾枃鏈�
       editorOption: {
@@ -401,87 +486,48 @@
       radioas: "", //濉┖棰樼瓟妗�
       // 鎬绘潯鏁�
       total: 1,
+      hetype: "",
+      id: null,
       ruleForm: {
-        name: "",
-        shape: "",
-        classify: "",
-        region: "",
-        date1: "",
-        date2: "",
-        delivery: false,
-        type: [],
-        resource: "",
-        desc: "",
-        templatevalue: "",
-        data2: "",
+        campus: [],
+        heLibraryTagList: [],
+        tempDetpRelevances: [],
+        version: "1.0.1",
       },
       rules: {},
-      rulesa: {
-        name: [
-          { required: true, message: "璇疯緭鍏ユ椿鍔ㄥ悕绉�", trigger: "blur" },
-          { min: 3, max: 5, message: "闀垮害鍦� 3 鍒� 5 涓瓧绗�", trigger: "blur" },
-        ],
-        region: [
-          { required: true, message: "璇烽�夋嫨娲诲姩鍖哄煙", trigger: "change" },
-        ],
-        date1: [
-          {
-            type: "date",
-            required: true,
-            message: "璇烽�夋嫨鏃ユ湡",
-            trigger: "change",
-          },
-        ],
-        date2: [
-          {
-            type: "date",
-            required: true,
-            message: "璇烽�夋嫨鏃堕棿",
-            trigger: "change",
-          },
-        ],
-        type: [
-          {
-            type: "array",
-            required: true,
-            message: "璇疯嚦灏戦�夋嫨涓�涓椿鍔ㄦ�ц川",
-            trigger: "change",
-          },
-        ],
-        resource: [
-          { required: true, message: "璇烽�夋嫨娲诲姩璧勬簮", trigger: "change" },
-        ],
-        desc: [{ required: true, message: "璇峰~鍐欐椿鍔ㄥ舰寮�", trigger: "blur" }],
-      },
-      options: [
-        {
-          value: "閫夐」1",
-          label: "鐤剧梾瀹f暀",
-        },
-        {
-          value: "閫夐」2",
-          label: "鍏ラ櫌瀹f暀",
-        },
-        {
-          value: "閫夐」3",
-          label: "鎵嬫湳瀹f暀",
-        },
-        {
-          value: "閫夐」4",
-          label: "鎶ょ悊瀹f暀",
-        },
-      ],
+      rulesa: {},
+      mode: [],
+      editableTabs: [],
+      sortlist: [],
+      usable: [],
+      courtyardlist: [],
+      precedencetype: [],
+      optionsillness: [],
+      illnesslistapi: [],
+      illnesslist: [],
+      options: [],
+      optionstag: [],
+      deptList: [],
+      tempDetpRelevanceslist: [],
+      props: { multiple: true, value: "deptId", label: "deptName" },
+      // 鍐呯綉鐨勯儴鍒嗭紙鏂囦欢锛�
+      oldPattern: "http://192.168.191.181:8095/profile/upload",
+      // 鍐呯綉鐨勯儴鍒嗭紙鏂囦欢锛�
+      oldPatternhtml: "/http:\/\/192\.168\.191\.181:8095\/profile\/upload\//g",
+      // 澶栫綉閮ㄥ垎锛堟枃浠讹級
+      newPattern: "http://218.108.11.22:8093/profile-api/upload",
+
       xjxsoptions: [
         {
-          value: "閫夐」1",
+          value: "1",
           label: "鍥炬枃",
         },
         {
-          value: "閫夐」2",
+          value: "2",
           label: "瑙嗛",
         },
         {
-          value: "閫夐」3",
+          value: "3",
           label: "闊抽",
         },
       ],
@@ -493,66 +539,214 @@
         },
       ],
       addvalue: "娣诲姞棰樼洰",
-      // 棰樼洰琛ㄦ牸鏁版嵁
-      userList: [
-        {
-          userid: "1",
-          userName: "涓�鍙峰鏁�",
-        },
-        {
-          userid: "2",
-          userName: "浜屽彿瀹f暀",
-        },
-        {
-          userid: "3",
-          userName: "涓夊彿瀹f暀",
-        },
-        {
-          userid: "4",
-          userName: "鍥涘彿瀹f暀",
-        },
-      ],
+
       variablelist: [
-        {
-          variable: "paitent",
-          value: "琛ㄧず鎮h�呯殑鏍囪瘑",
-        },
+        { variatename: "濮撳悕", variate: "${name}", default: 1 },
+        { variatename: "鐢佃瘽", variate: "${phone}", default: 1 },
+        { variatename: "鐥呮儏", variate: "${illness}", default: 1 },
       ],
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
         pageSize: 10,
-        userName: undefined,
-        phonenumber: undefined,
-        status: undefined,
-        deptId: undefined,
-        IDnumber: undefined,
       },
     };
   },
+  activated() {
+    if (this.id != this.$route.query.id) {
+      this.gettabList();
+      this.getList();
+      this.illnessUpdate();
+    }
+  },
 
-  created() {},
+  created() {
+    this.gettabList();
+    this.getList();
+    this.illnessUpdate();
+    this.mode = store.getters.mode;
+    this.editableTabs = store.getters.editableTabs;
+    this.usable = store.getters.usable;
+    this.precedencetype = store.getters.precedencetype;
+    this.courtyardlist = store.getters.courtyardlist;
+  },
   watch: {
     content(newVal, oldVal) {
       //this.$emit('input', newVal);
-      console.log(newVal);
-      console.log(oldVal);
+      console.log(newVal, "A");
+      console.log(oldVal, "B");
     },
   },
 
   methods: {
-    // 瀹屾垚
-    submitForm(formName) {
-      this.rules = this.rulesa;
-      //   鎻愪氦
-      this.$refs[formName].validate((valid) => {
-        if (valid) {
-          alert("submit!");
-        } else {
-          console.log("error submit!!");
-          return false;
+    processElement(element) {
+      return { ...element, isoperation: null };
+    },
+    // 鑾峰彇椤甸潰鏁版嵁
+    getList() {
+      this.loading = true;
+      this.id = this.$route.query.id;
+      this.hetype = this.$route.query.hetype;
+      if (this.id) {
+        getlibraryinfo({ id: this.id }).then((res) => {
+          this.ruleForm = res.data[0];
+          if (this.ruleForm.campus)
+            this.ruleForm.campus = this.ruleForm.campus.split(",");
+          this.dynamicTags = res.data[0].heLibraryTagList.map(
+            this.processElement
+          );
+          if (this.ruleForm.htmlRichText) {
+            this.Getmissioncontent(this.ruleForm.htmlRichText);
+          }
+          if (this.ruleForm.deptNames) {
+            this.tempDetpRelevanceslist = JSON.parse(this.ruleForm.deptNames);
+          }
+          if (this.ruleForm.suitway) {
+            this.ruleForm.suitway = this.ruleForm.suitway.split(",");
+          }
+          this.variablelist = this.ruleForm.otherdata
+            ? JSON.parse(this.ruleForm.otherdata)
+            : this.variablelist;
+        });
+      }
+      // 瀹f暀鍒嗙被
+      getheLibraryAssort({}).then((res) => {
+        this.sortlist = res.rows;
+        console.log(this.sortlist);
+      });
+      // 閮ㄩ棬
+      listDept(this.queryParams).then((response) => {
+        this.deptList = this.handleTree(response.data, "deptId");
+      });
+
+      // ------------------
+
+      // let html =
+      //   '<p>娴嬭瘯</p><video class="ql-video" controls="controls" controlslist="nofullscreen" type="video/mp4" style="object-fit:fill;width: 100%;" preload="auto" playsinline="true" x-webkit-airplay="allow" x5-video-orientation="portraint" x5-playsinline="true" x5-video-player-fullscreen="true" src="http://192.168.191.181:8095/profile/upload/vadio/钀ュ吇娉典粙缁�.mp4"></video><p>娴嬭瘯111</p><video class="ql-video" controls="controls" controlslist="nofullscreen" type="video/mp4" style="object-fit:fill;width: 100%;" preload="auto" playsinline="true" x-webkit-airplay="allow" x5-video-orientation="portraint" x5-playsinline="true" x5-video-player-fullscreen="true" src="http://192.168.191.181:8095/profile/upload/vadio/娉ㄥ皠鍣ㄦ帹娉�.mp4"></video><p><br></p>';
+      // // html = html.parserdom(this.oldPattern, this.newPattern);
+      // html = this.parserdom(html);
+      // console.log(html, "html");
+
+      // this.loading = false;
+    },
+    // parser
+    parserdom(html) {
+      // 鍒涘缓涓�涓柊鐨凞OM瑙f瀽鍣�
+      var parser = new DOMParser();
+      // 灏嗗瓧绗︿覆瑙f瀽涓烘枃妗e璞�
+      var doc = parser.parseFromString(html, "text/html");
+
+      // 瀹氫箟瑕佹浛鎹㈢殑鏂版棫URL
+      var oldUrlBase = "http://192.168.191.181:8095/profile/upload";
+      var newUrlBase = "http://218.108.11.22:8093/profile-api/upload";
+
+      // 鑾峰彇鎵�鏈夌殑video鍏冪礌
+      var videos = doc.querySelectorAll("video");
+
+      // 閬嶅巻鎵�鏈夌殑video鍏冪礌骞舵浛鎹rc灞炴��
+      videos.forEach(function (video) {
+        var src = video.getAttribute("src");
+        if (src.startsWith(oldUrlBase)) {
+          video.setAttribute("src", src.replace(oldUrlBase, newUrlBase));
         }
       });
+
+      // 灏嗕慨鏀瑰悗鐨勬枃妗h浆鎹㈠洖瀛楃涓�
+      var newContent = doc.body.innerHTML;
+      return newContent;
+    },
+    submitForm(formName) {
+      let tgs = [];
+      this.dynamicTags.forEach((item) => {
+        tgs.push(item.tagname);
+      });
+      if (this.ruleForm.campus) {
+        this.ruleForm.campus = this.ruleForm.campus.join(",");
+      }
+      this.ruleForm.labelInfo = tgs.length != 0 ? tgs.join(", ") : "";
+      this.ruleForm.otherdata = JSON.stringify(this.variablelist);
+      this.ruleForm.hetype = 1;
+      console.log(22);
+      this.ruleForm.suitway =
+        this.ruleForm.suitway.length != 0
+          ? this.ruleForm.suitway.join(",")
+          : "";
+
+      addrichText({
+        content: this.parserdom(this.content),
+        fileName: this.generateRandomHtmlFilename(),
+      }).then((res) => {
+        this.ruleForm.richText = res.msg;
+        console.log(this.ruleForm.richText, "this.ruleForm.richText");
+        // 澶勭悊鍐呯綉html
+        addrichText({
+          content: this.content,
+          fileName: this.generateRandomHtmlFilename(),
+        }).then((resf) => {
+          this.ruleForm.htmlRichText = resf.msg.replace(
+            this.newPattern,
+            this.oldPattern
+          );
+          console.log(this.ruleForm.htmlRichText, "this.ruleForm.htmlRichText");
+
+          if (this.id) {
+            this.ruleForm.isoperation = 2;
+            compilelibrary(this.ruleForm).then((res) => {
+              if (res.code == 200) {
+                this.$modal.msgSuccess("缂栬緫鎴愬姛");
+                this.confirmillness();
+                this.$router.go(-1);
+              }
+            });
+          } else {
+            this.ruleForm.isoperation = 1;
+            compilelibrary(this.ruleForm).then((res) => {
+              if (res.code == 200) {
+                this.$modal.msgSuccess("鏂板鎴愬姛");
+                this.confirmillness(res.data);
+                this.$router.go(-1);
+              }
+            });
+          }
+        });
+      });
+    },
+
+    generateRandomHtmlFilename() {
+      // 鐢熸垚涓�涓�0鍒�1涔嬮棿鐨勯殢鏈烘暟锛屽苟灏嗗叾杞崲涓哄瓧绗︿覆
+      let randomNumber = Math.random().toString();
+      // 绉婚櫎鍓嶉潰鐨�0鍜屽皬鏁扮偣
+      randomNumber = randomNumber.substring(6);
+      // 纭繚鐢熸垚鐨勯殢鏈烘暟鏄竴瀹氶暱搴︾殑锛屼緥濡�8浣�
+      while (randomNumber.length < 8) {
+        randomNumber = "0" + randomNumber;
+      }
+      // 鎷兼帴涓�.html鍚庣紑
+      return randomNumber + ".html";
+    },
+
+    // 淇濆瓨鐤剧梾
+    confirmillness(guid) {
+      this.illnesslist.forEach((item, index) => {
+        if (guid) {
+          item.outid = guid;
+        } else {
+          console.log(this.ruleForm);
+          item.outid = this.ruleForm.id;
+        }
+        item.icd10name = item.icdname;
+        item.icd10code = item.icdcode;
+        item.type = 6;
+        if (!item.id) {
+          addtargetillness(item).then((res) => {});
+        }
+      });
+      this.illnessVisible = false;
+      this.$modal.msgSuccess("缂栬緫鎴愬姛");
+    },
+    getFileNameFromPath(path) {
+      const parts = path.split("/");
+      return parts[parts.length - 1];
     },
     // 涓嬩竴姝�
     nextstep() {
@@ -565,41 +759,63 @@
       this.Editprogress = this.Editprogress - 1;
     },
     // 鍏抽棴
-    closeFm(){
-      this.$confirm('閫�鍑轰笉浼氫繚鐣欓〉闈㈠唴瀹规洿鏀�, 鏄惁缁х画?', '鎻愮ず', {
-          confirmButtonText: '纭畾',
-          cancelButtonText: '鍙栨秷',
-          type: 'warning'
-        }).then(() => {
-          this.$router.go(-1)
-        }).catch(() => {
+    closeFm() {
+      this.$confirm("閫�鍑轰笉浼氫繚鐣欓〉闈㈠唴瀹规洿鏀�, 鏄惁缁х画?", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning",
+      })
+        .then(() => {
+          this.$router.go(-1);
+        })
+        .catch(() => {
           this.$message({
-            type: 'info',
-            message: '宸插彇娑�'
-          });          
+            type: "info",
+            message: "宸插彇娑�",
+          });
         });
     },
-    // 淇濆瓨棰樼洰淇℃伅
-    Saveproblem(){},
-    /** 鏌ヨ棰樼洰鍒楄〃 */
-    getList() {
-      //   this.loading = true;
-      listUser().then((response) => {
-        console.log(response);
-        // this.userList = response.data;
-        // this.total = response.total;
-        // this.loading = false;
-        console.log(this.userList);
+    // 绉戝澶勭悊
+    Departmenttreatment() {
+      this.ruleForm.deptNames = JSON.stringify(this.tempDetpRelevanceslist);
+      const result = this.tempDetpRelevanceslist.map(
+        (subArr) => subArr[subArr.length - 1]
+      );
+      // id鏁扮粍鏌ユ暟缁勫璞�
+      result.forEach((item) => {
+        const condition = this.ruleForm.tempDetpRelevances.some(
+          (obj) => obj.deptId === item
+        );
+        if (!condition) {
+          listDept({ deptId: item }).then((res) => {
+            console.log("dept");
+            res.data[0].type = 2;
+            this.ruleForm.tempDetpRelevances.push(res.data[0]);
+          });
+        }
       });
-      //   const { rows } = await listUser();
-      //   console.log(rows);
-      //   this.list = rows;
+      // 鏁扮粍瀵硅薄鏌d鏁扮粍
+      this.ruleForm.tempDetpRelevances.forEach((item) => {
+        const condition = result.some((obj) => obj === item.deptId);
+        if (!condition) {
+          const index = this.ruleForm.tempDetpRelevances.indexOf(item);
+          this.ruleForm.tempDetpRelevances[index].delFlag = 1;
+        }
+      });
+      setTimeout(() => {
+        this.submitForm();
+      }, 1000);
+      // this.submitForm();
     },
+    // 淇濆瓨棰樼洰淇℃伅
+    Saveproblem() {},
+    /** 鏌ヨ棰樼洰鍒楄〃 */
+
     // 鏂板鍙橀噺
     addvariable() {
       this.variablelist.push({
-        variable: "",
-        value: "",
+        variatename: "",
+        variate: "",
       });
     },
     // 鍒犻櫎鍙橀噺
@@ -616,27 +832,82 @@
       this.fileList = fileList.slice(-3);
     },
     // 鏍囩-----------------
-    handleClose(tag) {
+    gettabList() {
+      const tagqueryParams = {
+        pageNum: 1,
+        pageSize: 1000,
+        tagcategoryid: "0",
+      };
+      listtag(tagqueryParams).then((response) => {
+        this.optionstag = response.rows;
+      });
+    },
+    handleClosetag(tag) {
+      console.log(tag);
+      const lindex = this.ruleForm.heLibraryTagList.findIndex(
+        (item) => item.tagname == tag.tagname
+      );
+      console.log(lindex);
       this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
+      this.ruleForm.heLibraryTagList[lindex].isoperation = 3;
     },
     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.ruleForm.heLibraryTagList.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();
-      // });
     },
+    // 鐤剧梾-----------------------
+    illnessUpdate() {
+      if (this.id) {
+        getillness({ outid: this.$route.query.id, type: 6 }).then((res) => {
+          this.illnesslist = res.rows;
+          this.illnesslist.forEach((item) => {
+            item.icdname = item.icd10name;
+          });
+        });
+      }
+    },
+
     // --------------------------
 
-    // 棰勮妯$増
+    // 棰勮妯℃澘
     PreviewTemplate() {
       this.drawer = true;
     },
@@ -657,18 +928,22 @@
     // 涓婁紶鍥剧墖鎴愬姛
     uploadEditorSuccess(res, file) {
       console.log("涓婁紶鎴愬姛");
-      // this.$emit('upload',res, file)
-      console.log(res, file);
       //鎷兼帴鍑轰笂浼犵殑鍥剧墖鍦ㄦ湇鍔″櫒鐨勫畬鏁村湴鍧�
-      let imgUrl = res.data.url;
+      let imgUrl = res.url;
+      console.log(res.url);
+
+      imgUrl = imgUrl.replace(this.newPattern, this.oldPattern);
+      console.log(imgUrl, "imgUrl");
+
       let type = imgUrl.substring(imgUrl.lastIndexOf(".") + 1);
-      console.log(type);
+      this.fileName = this.getFileNameFromPath(res.url);
+
       // 鑾峰彇瀵屾枃鏈粍浠跺疄渚�
       let quill = this.$refs.customQuillEditor.quill;
       // 鑾峰彇鍏夋爣鎵�鍦ㄤ綅缃�
       let length = quill.getSelection().index;
       // 鎻掑叆鍥剧墖||瑙嗛  res.info涓烘湇鍔″櫒杩斿洖鐨勫浘鐗囧湴鍧�
-      if (type == "mp4" || type == "MP4") {
+      if (type == "mp4" || type == "MP4"|| type == "avi"|| type == "AVI") {
         window.jsValue = imgUrl;
         quill.insertEmbed(length, "video", imgUrl);
       } else {
@@ -679,10 +954,22 @@
       //鍙栨秷涓婁紶鍔ㄧ敾
       this.quillUpdateImg = false;
     },
+    // 澶卞幓鐒︾偣浜嬩欢
+    onEditorBlur(e) {
+      console.log("onEditorBlur: ", e);
+    },
+    // 鑾峰緱鐒︾偣浜嬩欢
+    onEditorFocus(e) {
+      console.log("onEditorFocus: ", e);
+    },
+    // 鍐呭鏀瑰彉浜嬩欢
+    onEditorChange(e) {
+      console.log("onEditorChange: ", e);
+    },
     // 涓婁紶(鏂囦欢)鍥剧墖澶辫触
     uploadEditorError(res, file) {
-      console.log(res);
-      console.log(file);
+      console.log(res, "word");
+      console.log(file, "word");
       //椤甸潰鎻愮ず
       this.$message.error("涓婁紶鍥剧墖澶辫触");
       //鍙栨秷涓婁紶鍔ㄧ敾
@@ -692,53 +979,110 @@
     uploadResult: function (res) {
       this.uploadUrlPath = res;
     },
+    // 涓婁紶(鏂囦欢)鍥剧墖澶辫触
+    uploadEditorErrorword(res, file) {
+      console.log(res);
+      console.log(file);
+      //椤甸潰鎻愮ず
+      this.$message.error("涓婁紶鍥剧墖澶辫触");
+      //鍙栨秷涓婁紶鍔ㄧ敾
+      this.quillUpdateImg = false;
+    },
+    //涓婁紶鍥剧墖涔嬪墠async
+    beforeEditorUploadword(res, file) {
+      //鏄剧ず涓婁紶鍔ㄧ敾
+      this.quillUpdateImg = true;
+      //  const res1 = await uploadImage()
+      // console.log(res1,'=====');
+      // this.$emit('before',res, file)
+      console.log(res);
+      console.log(file);
+    },
+    // 涓婁紶word鎴愬姛
+    uploadEditorSuccessword(res, file) {
+      console.log("涓婁紶word鏂囦欢鎴愬姛");
+      console.log(res, file, "word");
+      let fileurl = res.url.replace(this.newPattern, this.oldPattern);
+      axios
+        .get(fileurl)
+        .then((response) => {
+          console.log(response.data, "鏁版嵁"); // 杈撳嚭鑾峰彇鍒扮殑鏂囦欢鍐呭
+          this.$nextTick(() => {
+            this.content = response.data;
+          });
+          this.fileName = this.getFileNameFromPath(response.url);
+          console.log(this.fileName, "this.fileName");
+        })
+        .catch((error) => {
+          console.error("Failed to fetch file:", error);
+        });
+    },
+    Getmissioncontent(url) {
+      axios
+        .get(url)
+        .then((response) => {
+          console.log(response.data, "鏁版嵁"); // 杈撳嚭鑾峰彇鍒扮殑鏂囦欢鍐呭
+          this.content = response.data;
+          this.fileName = this.getFileNameFromPath(response.url);
+          console.log(this.fileName, "this.fileName");
+        })
+        .catch((error) => {
+          console.error("Failed to fetch file:", error);
+        });
+    },
+    // 澶勭悊url
   },
 };
 </script>
 
 <style lang="scss" scoped>
 .Questionnairemanagement {
-  display: flex;
+  // display: flex;
 }
+
 .sidecolumn {
-  width: 300px;
-  min-height: 100vh;
-  text-align: center;
+  // width: 300px;
+  // min-height: 100vh;
+  // text-align: center;
   //   display: flex;
   //   margin-top: 20px;
   margin: 20px;
   margin-bottom: 0;
-  padding: 30px;
+  padding: 20px;
   background: #edf1f7;
   border: 1px solid #dcdfe6;
   -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12),
     0 0 6px 0 rgba(0, 0, 0, 0.04);
 }
+
 .leftvlue {
   //   display: flex;
   //   flex: 1;
-  width: 80%;
-  margin-top: 20px;
-  //   margin: 20px;
+  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);
+
   .mulsz {
     font-size: 20px;
   }
+
   .leftvlue-jbxx {
     margin-bottom: 50px;
     font-size: 20px;
+
     span {
       position: absolute;
       right: 80px;
     }
   }
+
   .demo-cascader {
     margin-right: 20px;
   }
+
   .PreviewTemplate {
     color: #02a7f0;
     cursor: pointer;
@@ -746,6 +1090,7 @@
     margin: 0 20px;
   }
 }
+
 .xinz-inf {
   font-size: 18px;
   white-space: nowrap;
@@ -757,6 +1102,7 @@
   .el-tag + .el-tag {
     margin-left: 10px;
   }
+
   .button-new-tag {
     margin-left: 10px;
     height: 32px;
@@ -764,12 +1110,14 @@
     padding-top: 0;
     padding-bottom: 0;
   }
+
   .input-new-tag {
     width: 90px;
     margin-left: 10px;
     vertical-align: bottom;
   }
 }
+
 .preview-left {
   margin: 20px;
   //   margin: 20px;
@@ -778,41 +1126,51 @@
   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 {
     margin-bottom: 25px;
     font-size: 20px !important;
+
     .dev-text {
       margin-bottom: 10px;
     }
   }
 }
+
 .addtopic {
   margin-top: 30px;
 }
+
 .presentation {
   margin: 20px 0;
   display: flex;
+
   .presentation-left {
     width: 50%;
     height: 500px;
+
     .button-textxg {
       color: #024df0;
     }
+
     .button-textsc {
       color: #f52727;
     }
   }
+
   .presentation-right {
     width: 50%;
     height: 500px;
     padding: 20px;
     font-size: 18px;
     border: 1px solid #909091;
+
     span {
       padding: 0 35px;
       margin-right: 10px;
       border-bottom: 1px solid #909091;
     }
+
     .headline {
       font-size: 20px;
       border-left: 3px solid #41a1be;
@@ -821,6 +1179,7 @@
     }
   }
 }
+
 ::v-deep .addtopic-input {
   input {
     background: #02a7f0;
@@ -828,25 +1187,31 @@
     width: 150px;
   }
 }
+
 ::v-deep.el-step.is-vertical .el-step__title {
   font-size: 25px;
 }
+
 ::v-deep.el-input--medium {
   font-size: 18px !important;
 }
+
 ::v-deep.ruleFormaa.el-select {
   display: inline-block;
   position: relative;
   width: 700px;
 }
+
 .el-select__tags {
   font-size: 20px;
   max-width: 888px !important;
 }
+
 ::v-deep.el-radio__inner {
   width: 22px;
   height: 22px;
 }
+
 // ::v-deep.topic-dev.el-radio__label {
 //   font-size: 24px;
 // }
@@ -855,19 +1220,23 @@
     font-size: 24px;
   }
 }
+
 ::v-deep.el-checkbox-group {
   span {
     font-size: 24px;
   }
 }
+
 .editor {
   line-height: normal !important;
-  height: 400px;
-  margin-bottom: 50px;
+  height: 600px;
+  margin-bottom: 80px;
 }
+
 .ql-snow .ql-tooltip[data-mode="link"]::before {
   content: "璇疯緭鍏ラ摼鎺ュ湴鍧�:";
 }
+
 .ql-snow .ql-tooltip.ql-editing a.ql-action::after {
   border-right: 0px;
   content: "淇濆瓨";
@@ -882,14 +1251,17 @@
 .ql-snow .ql-picker.ql-size .ql-picker-item::before {
   content: "14px";
 }
+
 .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="small"]::before,
 .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="small"]::before {
   content: "10px";
 }
+
 .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="large"]::before,
 .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="large"]::before {
   content: "18px";
 }
+
 .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="huge"]::before,
 .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="huge"]::before {
   content: "32px";
@@ -899,26 +1271,32 @@
 .ql-snow .ql-picker.ql-header .ql-picker-item::before {
   content: "鏂囨湰";
 }
+
 .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
 .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
   content: "鏍囬1";
 }
+
 .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
 .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
   content: "鏍囬2";
 }
+
 .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
 .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
   content: "鏍囬3";
 }
+
 .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
 .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
   content: "鏍囬4";
 }
+
 .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
 .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
   content: "鏍囬5";
 }
+
 .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
 .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
   content: "鏍囬6";
@@ -928,10 +1306,12 @@
 .ql-snow .ql-picker.ql-font .ql-picker-item::before {
   content: "鏍囧噯瀛椾綋";
 }
+
 .ql-snow .ql-picker.ql-font .ql-picker-label[data-value="serif"]::before,
 .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="serif"]::before {
   content: "琛嚎瀛椾綋";
 }
+
 .ql-snow .ql-picker.ql-font .ql-picker-label[data-value="monospace"]::before,
 .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="monospace"]::before {
   content: "绛夊瀛椾綋";

--
Gitblit v1.9.3