From 6e413d95d035e6d798f62fde7964287e1d2fa416 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期四, 18 九月 2025 15:55:45 +0800
Subject: [PATCH] 测试完成

---
 src/utils/sipService-cs.js                               |    6 
 src/views/knowledge/education/compilequer/index copy.vue | 1321 ++++++++++++++++++++++++++++++++++++++++
 src/components/SortCheckbox/index.vue                    |  165 +++++
 src/views/knowledge/education/compilequer/index.vue      |  415 ++++-------
 src/views/patient/propaganda/QuestionnaireTask.vue       |   20 
 5 files changed, 1,665 insertions(+), 262 deletions(-)

diff --git a/src/components/SortCheckbox/index.vue b/src/components/SortCheckbox/index.vue
new file mode 100644
index 0000000..1a93e31
--- /dev/null
+++ b/src/components/SortCheckbox/index.vue
@@ -0,0 +1,165 @@
+<template>
+  <div class="ordered-checkbox-container">
+    <!-- 妯悜鎺掑垪鐨勫閫夋缁� -->
+    <el-checkbox-group
+      v-model="checkedValues"
+      class="horizontal-checkbox-group"
+    >
+      <el-checkbox
+        v-for="option in options"
+        :key="getValue(option)"
+        :label="getValue(option)"
+      >
+        {{ getLabel(option) }}
+      </el-checkbox>
+    </el-checkbox-group>
+
+    <!-- 閫変腑椤哄簭灞曠ず鍖哄煙 -->
+    <div v-if="selectedOrder.length > 0" class="selection-order-display">
+      <span class="order-label">鏈嶅姟鎵ц椤哄簭锛�</span>
+      <span
+        v-for="(value, index) in selectedOrder"
+        :key="value"
+        class="order-item"
+      >
+        {{ getSelectedIndex(index) }}.{{ getLabelByValue(value) }}
+        <span v-if="index < selectedOrder.length - 1">銆�</span>
+      </span>
+    </div>
+    <div v-else class="selection-order-display">
+      <span class="order-label">鏆傛棤閫変腑椤�</span>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "OrderedCheckboxGroup",
+  props: {
+    options: {
+      type: Array,
+      default: () => [],
+    },
+    value: {
+      type: Array,
+      default: () => [],
+    },
+    valueKey: {
+      type: String,
+      default: "value",
+    },
+    labelKey: {
+      type: String,
+      default: "label",
+    },
+  },
+  data() {
+    return {
+      checkedValues: [],
+      selectedOrder: [],
+    };
+  },
+  watch: {
+    value: {
+      immediate: true,
+      handler(newVal) {
+        if (JSON.stringify(newVal) !== JSON.stringify(this.checkedValues)) {
+          this.checkedValues = [...newVal];
+          this.selectedOrder = [...newVal];
+        }
+      },
+    },
+    checkedValues(newVal, oldVal) {
+      const added = newVal.filter((item) => !oldVal.includes(item));
+      const removed = oldVal.filter((item) => !newVal.includes(item));
+
+      added.forEach((value) => {
+        if (!this.selectedOrder.includes(value)) {
+          this.selectedOrder.push(value);
+        }
+      });
+
+      removed.forEach((value) => {
+        const index = this.selectedOrder.indexOf(value);
+        if (index > -1) {
+          this.selectedOrder.splice(index, 1);
+        }
+      });
+
+      this.$emit("input", [...newVal]);
+      this.$emit("change", [...newVal], [...this.selectedOrder]);
+    },
+  },
+  methods: {
+    getValue(option) {
+      return typeof option === "object" ? option[this.valueKey] : option;
+    },
+    getLabel(option) {
+      return typeof option === "object" ? option[this.labelKey] : option;
+    },
+    getLabelByValue(value) {
+      const option = this.options.find(
+        (opt) => this.getValue(opt) === value
+      );
+      return option ? this.getLabel(option) : value;
+    },
+    getSelectedIndex(index) {
+      if (index < 20) {
+        return String.fromCharCode(0x2460 + index);
+      } else {
+        return `(${index + 1})`;
+      }
+    },
+    getSelectionOrder() {
+      return [...this.selectedOrder];
+    },
+    setSelectionOrder(orderedValues) {
+      this.selectedOrder = [...orderedValues];
+      this.checkedValues = [...orderedValues];
+    },
+  },
+};
+</script>
+
+<style scoped>
+.ordered-checkbox-container {
+  display: flex;
+  flex-direction: column;
+  gap: 16px;
+}
+
+.horizontal-checkbox-group {
+  display: flex;
+  flex-wrap: wrap;
+  gap: 20px;
+}
+
+.selection-order-display {
+  padding: 12px;
+  background-color: #f5f7fa;
+  border-radius: 4px;
+  border: 1px solid #ebeef5;
+}
+
+.order-label {
+  font-weight: bold;
+  color: #606266;
+  margin-right: 8px;
+}
+
+.order-item {
+  color: #409eff;
+  font-weight: 500;
+}
+
+/* 鍝嶅簲寮忚璁★細灏忓睆骞曟椂鎹㈣ */
+@media (max-width: 768px) {
+  .horizontal-checkbox-group {
+    gap: 12px;
+  }
+
+  .selection-order-display {
+    padding: 8px;
+  }
+}
+</style>
diff --git a/src/utils/sipService-cs.js b/src/utils/sipService-cs.js
index 7c63647..80914b9 100644
--- a/src/utils/sipService-cs.js
+++ b/src/utils/sipService-cs.js
@@ -93,7 +93,7 @@
       sessionTimersExpires: 300,
       extraHeaders: [
         "Min-SE: 120",
-        "Route: <sip:@192.168.100.6>",
+        "Route: <sip:@192.168.10.124>",
         "Accept: application/sdp",
         "Supported: replaces, timer",
         "Allow: INVITE, ACK, BYE, CANCEL, OPTIONS",
@@ -140,7 +140,7 @@
     };
 
     this.currentSession = this.ua.call(
-      `sip:${targetNumber}@192.168.100.6`,
+      `sip:${targetNumber}@192.168.10.124`,
       options
     );
     // 鍦ㄤ細璇濆垱寤哄悗淇敼 SDP
@@ -151,7 +151,7 @@
           .call(pc, offerOptions)
           .then((offer) => {
             const modifiedSdp = offer.sdp
-              .replace(/c=IN IP4 192\.168\.100\.10/g, "c=IN IP4 192.168.100.6")
+              .replace(/c=IN IP4 192\.168\.100\.10/g, "c=IN IP4 192.168.10.124")
               .replace(/m=audio \d+ RTP\/AVP.*/, "m=audio 7078 RTP/AVP 0 8");
             return new RTCSessionDescription({
               type: "offer",
diff --git a/src/views/knowledge/education/compilequer/index copy.vue b/src/views/knowledge/education/compilequer/index copy.vue
new file mode 100644
index 0000000..59ebeef
--- /dev/null
+++ b/src/views/knowledge/education/compilequer/index copy.vue
@@ -0,0 +1,1321 @@
+<template>
+  <div class="Questionnairemanagement">
+    <!-- 宸︿晶鏍� -->
+    <div class="sidecolumn">
+      <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">鍩烘湰淇℃伅</div>
+        <el-divider></el-divider>
+        <el-form
+          :model="ruleForm"
+          :rules="rules"
+          ref="ruleForm"
+          label-width="100px"
+          class="demo-ruleForm"
+        >
+          <el-form-item label="瀹f暀鍒嗙被" prop="region">
+            <el-select
+              v-model="ruleForm.assortid"
+              size="medium"
+              filterable
+              placeholder="璇烽�夋嫨鍒嗙被"
+            >
+              <el-option-group
+                v-for="group in sortlist"
+                :key="group.id"
+                :label="group.assortname"
+              >
+                <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-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.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">
+            <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">
+            <div style="width: 40%">
+              <el-upload
+                class="upload-demo"
+                action="https://jsonplaceholder.typicode.com/posts/"
+                :on-change="handleChange"
+                :file-list="fileList"
+              >
+                <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button>
+                <div slot="tip" class="el-upload__tip">
+                  鍙兘涓婁紶jpg/png/xsl鏂囦欢锛屼笖涓嶈秴杩�50mb
+                </div>
+              </el-upload>
+            </div>
+          </el-form-item>
+          <el-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 :gutter="20">
+            <el-col :span="6">
+              <el-form-item label="鐗堟湰鍙�" prop="name">
+                <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-radio-group v-model="ruleForm.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="瀹f暀鏂瑰紡" prop="region">
+            <el-select
+              v-model="ruleForm.suitway"
+              size="medium"
+              multiple
+              filterable
+              placeholder="璇烽�夋嫨鍒嗙被"
+            >
+              <el-option
+                class="ruleFormaa"
+                v-for="item in mode"
+                :key="item.label"
+                :label="item.label"
+                :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.campus"
+              size="medium"
+              multiple
+              filterable
+              placeholder="璇烽�夋嫨鍒嗙被"
+            >
+              <el-option
+                class="ruleFormaa"
+                v-for="item in courtyardlist"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="閫傜敤绉戝" prop="region">
+            <el-cascader
+              v-model="tempDetpRelevanceslist"
+              :options="deptList"
+              :props="props"
+              :show-all-levels="false"
+              clearable
+            >
+              <template slot-scope="{ node, data }">
+                <span>{{ data.deptName }}</span>
+                <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
+              </template>
+            </el-cascader>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="success" @click="nextstep('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 :offset="16" :span="4">
+            <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>
+          </el-col>
+        </el-row>
+
+        <div>
+          <el-form
+            :model="ruleForm"
+            :rules="rules"
+            ref="ruleForm"
+            label-width="100px"
+            class="demo-ruleForm"
+          >
+            <!-- <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"> -->
+
+            <!-- </el-col>
+            </el-row> -->
+          </el-form>
+        </div>
+        <!-- <div>
+          <div id="quillEditorQiniu">
+            <el-upload
+              class="avatar-uploader"
+              :action="uploadImgUrl"
+              :accept="'image/*,video/*'"
+              :show-file-list="false"
+              :on-success="uploadEditorSuccess"
+              :on-error="uploadEditorError"
+              :before-upload="beforeEditorUpload"
+              :headers="headers"
+            >
+            </el-upload>
+            <quill-editor
+              class="editor"
+              v-model="content"
+              ref="customQuillEditor"
+              :options="editorOption"
+              @blur="onEditorBlur"
+              @focus="onEditorFocus"
+              @change="onEditorChange"
+            >
+            </quill-editor>
+          </div>
+        </div> -->
+        <!-- 鏂扮粍浠� -->
+        <div style="border: 1px solid #ccc; margin: 10px">
+          <Toolbar
+            style="border-bottom: 1px solid #ccc"
+            :editor="editor"
+            :defaultConfig="toolbarConfig"
+            :mode="modes"
+          />
+          <Editor
+            style="height: 500px; overflow-y: hidden"
+            v-model="content"
+            :defaultConfig="editorConfig"
+            :mode="modes"
+            @onCreated="onCreated"
+          />
+        </div>
+        <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>
+      </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 { Editor, Toolbar } from "@wangeditor/editor-for-vue";
+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";
+Quill.register(Video, true);
+//鑾峰彇鐧诲綍token锛屽紩鍏ユ枃浠讹紝濡傛灉鍙槸绠�鍗曟祴璇曪紝娌℃湁涓婁紶鏂囦欢鏄惁鐧诲綍鐨勯檺鍒剁殑璇濓紝
+//杩欎釜token鍙互涓嶇敤鑾峰彇锛屾枃浠跺彲浠ヤ笉寮曞叆锛屾妸涓婇潰瀵瑰簲鐨勪笂浼犳枃浠舵惡甯﹁姹傚ご  :headers="headers" 杩欎釜浠g爜鍒犳帀鍗冲彲
+import { getToken } from "@/utils/auth";
+const toolbarOptions = [
+  ["bold", "italic", "underline", "strike"], // toggled buttons
+  ["blockquote", "code-block"],
+
+  [{ header: 1 }, { header: 2 }], // custom button values
+  [{ list: "ordered" }, { list: "bullet" }],
+  [{ script: "sub" }, { script: "super" }], // superscript/subscript
+  [{ indent: "-1" }, { indent: "+1" }], // outdent/indent
+  [{ direction: "rtl" }], // text direction
+
+  [{ size: ["small", false, "large", "huge"] }], // custom dropdown
+  [{ header: [1, 2, 3, 4, 5, 6, false] }],
+
+  [{ color: [] }, { background: [] }], // dropdown with defaults from theme
+  [{ font: [] }],
+  [{ align: [] }],
+  ["link", "image", "video"],
+  ["clean"], // remove formatting button
+];
+
+export default {
+  name: "aEducationinfo",
+  components: { OptionalForm, Editor, Toolbar },
+  data() {
+    return {
+      editor: null,
+      content: "<p>hello</p>",
+      toolbarConfig: {},
+      editorConfig: {
+        placeholder: "璇疯緭鍏ュ唴瀹�...",
+        menus: [
+          "head",
+          "bold",
+          "italic",
+          "underline",
+          "image",
+          "link",
+          "list",
+          "undo",
+          "redo",
+          "file", // 娣诲姞鑷畾涔夋枃浠朵笂浼犺彍鍗�
+        ],
+        uploadImgServer: process.env.VUE_APP_BASE_API + "/common/uploadSort", // 鍥剧墖涓婁紶鎺ュ彛
+        uploadImgHeaders: {
+          Authorization: "Bearer " + getToken(),
+        }, // 鑷畾涔変笂浼犵殑 headers
+        uploadImgParams: { key: "value" }, // 鑷畾涔変笂浼犵殑鍙傛暟
+        uploadImgMaxSize: 2 * 1024 * 1024, // 鍥剧墖鏈�澶уぇ灏忥紝鍗曚綅 Byte
+        uploadImgMaxLength: 1, // 涓�娆℃渶澶氫笂浼犲浘鐗囨暟閲�
+        uploadImgTimeout: 3 * 60 * 1000, // 瓒呮椂鏃堕棿锛屽崟浣� ms
+        uploadImgHooks: {
+          customInsert: (insertImgFn, result) => {
+            const url = result.url; // 鑾峰彇鍥剧墖鍦板潃
+            insertImgFn(url); // 鎻掑叆鍥剧墖
+          },
+        },
+        customMenus: {
+          file: {
+            tip: "涓婁紶鏂囦欢",
+            click: (editor) => {
+              const input = document.createElement("input");
+              input.type = "file";
+              input.accept =
+                "application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document"; // 鏀寔鐨勬枃浠剁被鍨�
+              input.onchange = (e) => {
+                const file = e.target.files[0];
+                if (!file) return;
+                const formData = new FormData();
+                formData.append("file", file);
+
+                // 纭繚 process.env.VUE_APP_BASE_API 鏄纭殑
+                const uploadUrl =
+                  process.env.VUE_APP_BASE_API + "/common/uploadSort";
+                axios
+                  .post(uploadUrl, formData, {
+                    headers: {
+                      Authorization: "Bearer " + getToken(),
+                    },
+                  })
+                  .then((res) => {
+                    const url = res.data.url; // 鑾峰彇鏂囦欢鍦板潃
+                    // 鎻掑叆鏂囦欢閾炬帴浣滀负鏅�氭枃鏈�
+                    editor.txt.append(url + " ");
+                    // 鎴栬�呮彃鍏ユ枃浠堕摼鎺ヤ綔涓鸿秴閾炬帴
+                    // editor.cmd.do('insertLink', { name: '鏂囦欢閾炬帴', url: url });
+                  })
+                  .catch((err) => {
+                    console.error("鏂囦欢涓婁紶澶辫触", err);
+                  });
+              };
+              input.click();
+            },
+          },
+        },
+      },
+      modes: "default", // or 'simple'
+      headers: {
+        Authorization: "Bearer " + getToken(),
+      },
+      uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort",
+      uploadImgUrlword: process.env.VUE_APP_BASE_API + "/common/uploadShow",
+      uploadUrlPath: "娌℃湁鏂囦欢涓婁紶",
+      quillUpdateImg: false,
+      fileList: [
+        {
+          name: "food.jpeg",
+          url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100",
+        },
+        {
+          name: "food2.jpeg",
+          url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100",
+        },
+      ],
+      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: {
+        placeholder: "浣犳兂璇翠粈涔堬紵",
+        modules: {
+          imageResize: {
+            displayStyles: {
+              backgroundColor: "black",
+              border: "none",
+              color: "white",
+            },
+            modules: ["Resize", "DisplaySize", "Toolbar"],
+          },
+          toolbar: {
+            container: toolbarOptions, // 宸ュ叿鏍�
+            handlers: {
+              image: function (value) {
+                if (value) {
+                  document
+                    .querySelector("#quillEditorQiniu .avatar-uploader input")
+                    .click();
+                } else {
+                  this.quill.format("image", false);
+                }
+              },
+              video: function (value) {
+                if (value) {
+                  document
+                    .querySelector("#quillEditorQiniu .avatar-uploader input")
+                    .click();
+                } else {
+                  this.quill.format("video", false);
+                }
+              },
+            },
+          },
+        },
+      },
+
+      sidecolumnrabs: "left", //鏂瑰悜
+      Editprogress: 1, //缂栬緫杩涘害
+      currentVersion: "1.2.3", //褰撳墠鐗堟湰
+      loading: false, // 閬僵灞�
+      drawer: false, //鎺у埗灞曞紑
+      radio: "false", //鍗曢�夐閫変腑
+      radios: [], //澶氶�夐閫変腑
+      radioas: "", //濉┖棰樼瓟妗�
+      // 鎬绘潯鏁�
+      total: 1,
+      hetype: "",
+      id: null,
+      ruleForm: {
+        campus: [],
+        heLibraryTagList: [],
+        tempDetpRelevances: [],
+        version: "1.0.1",
+      },
+      rules: {},
+      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",
+          label: "鍥炬枃",
+        },
+        {
+          value: "2",
+          label: "瑙嗛",
+        },
+        {
+          value: "3",
+          label: "闊抽",
+        },
+      ],
+      valssu: [
+        {
+          idd: 1,
+          wssd: "浣犳渶杩戞�庝箞鏍�",
+          sdadd: ["sss", "ssccss", "ssaas", "ss"],
+        },
+      ],
+      addvalue: "娣诲姞棰樼洰",
+
+      variablelist: [
+        { variatename: "濮撳悕", variate: "${name}", default: 1 },
+        { variatename: "鐢佃瘽", variate: "${phone}", default: 1 },
+        { variatename: "鐥呮儏", variate: "${illness}", default: 1 },
+      ],
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+    };
+  },
+  activated() {
+    if (this.id != this.$route.query.id) {
+      this.gettabList();
+      this.getList();
+      this.illnessUpdate();
+    }
+  },
+
+  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, "A");
+      console.log(oldVal, "B");
+    },
+  },
+  beforeDestroy() {
+    const editor = this.editor;
+    if (editor == null) return;
+    editor.destroy(); // 缁勪欢閿�姣佹椂锛屽強鏃堕攢姣佺紪杈戝櫒
+  },
+  methods: {
+    onCreated(editor) {
+      this.editor = Object.seal(editor); // 涓�瀹氳鐢� Object.seal()锛屽惁鍒欎細鎶ラ敊
+    },
+
+    // ---------------------------------
+    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({ hetype: 1 }).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() {
+      if (this.Editprogress <= 1) {
+        return this.Editprogress++;
+      }
+    },
+    // 涓婁竴姝�
+    laststep() {
+      this.Editprogress = this.Editprogress - 1;
+    },
+    // 鍏抽棴
+    closeFm() {
+      this.$confirm("閫�鍑轰笉浼氫繚鐣欓〉闈㈠唴瀹规洿鏀�, 鏄惁缁х画?", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning",
+      })
+        .then(() => {
+          this.$router.go(-1);
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "宸插彇娑�",
+          });
+        });
+    },
+    // 绉戝澶勭悊
+    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]);
+          });
+        }
+      });
+      // 鏁扮粍瀵硅薄鏌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({
+        variatename: "",
+        variate: "",
+      });
+    },
+    // 鍒犻櫎鍙橀噺
+    delvariable(item) {
+      const index = this.variablelist.indexOf(item);
+      if (index !== -1) {
+        this.variablelist.splice(index, 1); // 浠庣储寮曚綅缃垹闄や竴涓厓绱�
+      } else {
+        console.log("鏈壘鍒拌瀵硅薄");
+      }
+    },
+    // 鎺у埗鏂囦欢
+    handleChange(file, fileList) {
+      this.fileList = fileList.slice(-3);
+    },
+    // 鏍囩-----------------
+    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 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;
+    },
+    // 鐤剧梾-----------------------
+    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;
+    },
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+    },
+
+    //涓婁紶鍥剧墖涔嬪墠async
+    beforeEditorUpload(res, file) {
+      //鏄剧ず涓婁紶鍔ㄧ敾
+      this.quillUpdateImg = true;
+      //  const res1 = await uploadImage()
+      // console.log(res1,'=====');
+      // this.$emit('before',res, file)
+      console.log(res);
+      console.log(file);
+    },
+    // 涓婁紶鍥剧墖鎴愬姛
+    uploadEditorSuccess(res, file) {
+      console.log("涓婁紶鎴愬姛");
+      //鎷兼帴鍑轰笂浼犵殑鍥剧墖鍦ㄦ湇鍔″櫒鐨勫畬鏁村湴鍧�
+      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);
+      this.fileName = this.getFileNameFromPath(res.url);
+
+      // 鑾峰彇瀵屾枃鏈粍浠跺疄渚�
+      let quill = this.$refs.customQuillEditor.quill;
+      // 鑾峰彇鍏夋爣鎵�鍦ㄤ綅缃�
+      let length = quill.getSelection().index;
+      // 鎻掑叆鍥剧墖||瑙嗛  res.info涓烘湇鍔″櫒杩斿洖鐨勫浘鐗囧湴鍧�
+      if (type == "mp4" || type == "MP4" || type == "avi" || type == "AVI") {
+        window.jsValue = imgUrl;
+        quill.insertEmbed(length, "video", imgUrl);
+      } else {
+        quill.insertEmbed(length, "image", imgUrl);
+      }
+      // 璋冩暣鍏夋爣鍒版渶鍚�
+      quill.setSelection(length + 1);
+      //鍙栨秷涓婁紶鍔ㄧ敾
+      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, "word");
+      console.log(file, "word");
+      //椤甸潰鎻愮ず
+      this.$message.error("涓婁紶鍥剧墖澶辫触");
+      //鍙栨秷涓婁紶鍔ㄧ敾
+      this.quillUpdateImg = false;
+    },
+    //涓婁紶缁勪欢杩斿洖鐨勭粨鏋�
+    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 src="@wangeditor/editor/dist/css/style.css"></style>
+<style src="@/assets/styles/global.css"></style>
+<style lang="scss" scoped>
+.sidecolumn {
+  // width: 300px;
+  // min-height: 100vh;
+  // text-align: center;
+  //   display: flex;
+  //   margin-top: 20px;
+  margin: 20px;
+  margin-bottom: 0;
+  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;
+  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 {
+    font-size: 24px;
+    height: 30px;
+    border-left: 3px solid #41a1be;
+    padding-left: 3px;
+
+    span {
+      position: absolute;
+      right: 80px;
+    }
+  }
+
+  .demo-cascader {
+    margin-right: 20px;
+  }
+
+  .PreviewTemplate {
+    color: #02a7f0;
+    cursor: pointer;
+    font-size: 20px;
+    margin: 0 20px;
+  }
+}
+
+.xinz-inf {
+  font-size: 18px;
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+
+  line-height: 48px;
+
+  .el-tag + .el-tag {
+    margin-left: 10px;
+  }
+
+  .button-new-tag {
+    margin-left: 10px;
+    height: 32px;
+    line-height: 30px;
+    padding-top: 0;
+    padding-bottom: 0;
+  }
+
+  .input-new-tag {
+    width: 90px;
+    margin-left: 10px;
+    vertical-align: bottom;
+  }
+}
+
+.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);
+
+  .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;
+      padding-left: 5px;
+      margin: 15px 0;
+    }
+  }
+}
+
+::v-deep .addtopic-input {
+  input {
+    background: #02a7f0;
+    color: #edf1f7;
+    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;
+// }
+::v-deep.el-radio-group {
+  span {
+    font-size: 24px;
+  }
+}
+
+::v-deep.el-checkbox-group {
+  span {
+    font-size: 24px;
+  }
+}
+</style>
diff --git a/src/views/knowledge/education/compilequer/index.vue b/src/views/knowledge/education/compilequer/index.vue
index 59ebeef..7d0db6e 100644
--- a/src/views/knowledge/education/compilequer/index.vue
+++ b/src/views/knowledge/education/compilequer/index.vue
@@ -253,7 +253,7 @@
           </el-form-item>
         </el-form>
       </div>
-      <!-- 瀹f暀鍐呭 -->
+    <!-- 瀹f暀鍐呭 -->
       <div v-if="Editprogress == 2">
         <el-row :gutter="20">
           <el-col :span="4">
@@ -273,86 +273,27 @@
           </el-col>
         </el-row>
 
-        <div>
-          <el-form
-            :model="ruleForm"
-            :rules="rules"
-            ref="ruleForm"
-            label-width="100px"
-            class="demo-ruleForm"
-          >
-            <!-- <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"> -->
-
-            <!-- </el-col>
-            </el-row> -->
-          </el-form>
-        </div>
-        <!-- <div>
-          <div id="quillEditorQiniu">
-            <el-upload
-              class="avatar-uploader"
-              :action="uploadImgUrl"
-              :accept="'image/*,video/*'"
-              :show-file-list="false"
-              :on-success="uploadEditorSuccess"
-              :on-error="uploadEditorError"
-              :before-upload="beforeEditorUpload"
-              :headers="headers"
-            >
-            </el-upload>
-            <quill-editor
-              class="editor"
-              v-model="content"
-              ref="customQuillEditor"
-              :options="editorOption"
-              @blur="onEditorBlur"
-              @focus="onEditorFocus"
-              @change="onEditorChange"
-            >
-            </quill-editor>
-          </div>
-        </div> -->
-        <!-- 鏂扮粍浠� -->
+        <!-- WangEditor 瀵屾枃鏈紪杈戝櫒 -->
         <div style="border: 1px solid #ccc; margin: 10px">
           <Toolbar
             style="border-bottom: 1px solid #ccc"
-            :editor="editor"
+            :editor="editorRef"
             :defaultConfig="toolbarConfig"
-            :mode="modes"
+            :mode="mode"
           />
           <Editor
-            style="height: 500px; overflow-y: hidden"
-            v-model="content"
+            style="height: 800px; overflow-y: hidden"
+            v-model:html="content"
             :defaultConfig="editorConfig"
-            :mode="modes"
-            @onCreated="onCreated"
+            :mode="mode"
+            @onCreated="handleEditorCreated"
           />
         </div>
+
         <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="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>
       </div>
@@ -369,201 +310,141 @@
 </template>
 
 <script>
-import { quillEditor } from "vue-quill-editor";
 import { Editor, Toolbar } from "@wangeditor/editor-for-vue";
+import '@wangeditor/editor/dist/css/style.css';
 import axios from "axios";
+import { getToken } from "@/utils/auth";
 
 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 OptionalForm from "@/components/OptionalForm";
 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";
-Quill.register(Video, true);
-//鑾峰彇鐧诲綍token锛屽紩鍏ユ枃浠讹紝濡傛灉鍙槸绠�鍗曟祴璇曪紝娌℃湁涓婁紶鏂囦欢鏄惁鐧诲綍鐨勯檺鍒剁殑璇濓紝
-//杩欎釜token鍙互涓嶇敤鑾峰彇锛屾枃浠跺彲浠ヤ笉寮曞叆锛屾妸涓婇潰瀵瑰簲鐨勪笂浼犳枃浠舵惡甯﹁姹傚ご  :headers="headers" 杩欎釜浠g爜鍒犳帀鍗冲彲
-import { getToken } from "@/utils/auth";
-const toolbarOptions = [
-  ["bold", "italic", "underline", "strike"], // toggled buttons
-  ["blockquote", "code-block"],
-
-  [{ header: 1 }, { header: 2 }], // custom button values
-  [{ list: "ordered" }, { list: "bullet" }],
-  [{ script: "sub" }, { script: "super" }], // superscript/subscript
-  [{ indent: "-1" }, { indent: "+1" }], // outdent/indent
-  [{ direction: "rtl" }], // text direction
-
-  [{ size: ["small", false, "large", "huge"] }], // custom dropdown
-  [{ header: [1, 2, 3, 4, 5, 6, false] }],
-
-  [{ color: [] }, { background: [] }], // dropdown with defaults from theme
-  [{ font: [] }],
-  [{ align: [] }],
-  ["link", "image", "video"],
-  ["clean"], // remove formatting button
-];
 
 export default {
   name: "aEducationinfo",
   components: { OptionalForm, Editor, Toolbar },
   data() {
     return {
-      editor: null,
-      content: "<p>hello</p>",
-      toolbarConfig: {},
+ // 缂栬緫鍣ㄥ疄渚�
+      editorRef: null,
+
+      // 缂栬緫鍣ㄥ唴瀹�
+      content: "<p>娴嬭瘯</p>",
+
+      // 缂栬緫鍣ㄦā寮�
+      mode: "default",
+
+      // 宸ュ叿鏍忛厤缃�
+      toolbarConfig: {
+        excludeKeys: [
+          "group-video",
+          "insertVideo",
+          "uploadVideo",
+          "emotion",
+          "codeBlock",
+        ]
+      },
+
+      // 缂栬緫鍣ㄩ厤缃�
       editorConfig: {
-        placeholder: "璇疯緭鍏ュ唴瀹�...",
-        menus: [
-          "head",
-          "bold",
-          "italic",
-          "underline",
-          "image",
-          "link",
-          "list",
-          "undo",
-          "redo",
-          "file", // 娣诲姞鑷畾涔夋枃浠朵笂浼犺彍鍗�
-        ],
-        uploadImgServer: process.env.VUE_APP_BASE_API + "/common/uploadSort", // 鍥剧墖涓婁紶鎺ュ彛
-        uploadImgHeaders: {
-          Authorization: "Bearer " + getToken(),
-        }, // 鑷畾涔変笂浼犵殑 headers
-        uploadImgParams: { key: "value" }, // 鑷畾涔変笂浼犵殑鍙傛暟
-        uploadImgMaxSize: 2 * 1024 * 1024, // 鍥剧墖鏈�澶уぇ灏忥紝鍗曚綅 Byte
-        uploadImgMaxLength: 1, // 涓�娆℃渶澶氫笂浼犲浘鐗囨暟閲�
-        uploadImgTimeout: 3 * 60 * 1000, // 瓒呮椂鏃堕棿锛屽崟浣� ms
-        uploadImgHooks: {
-          customInsert: (insertImgFn, result) => {
-            const url = result.url; // 鑾峰彇鍥剧墖鍦板潃
-            insertImgFn(url); // 鎻掑叆鍥剧墖
-          },
-        },
-        customMenus: {
-          file: {
-            tip: "涓婁紶鏂囦欢",
-            click: (editor) => {
-              const input = document.createElement("input");
-              input.type = "file";
-              input.accept =
-                "application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document"; // 鏀寔鐨勬枃浠剁被鍨�
-              input.onchange = (e) => {
-                const file = e.target.files[0];
-                if (!file) return;
+        placeholder: "璇疯緭鍏ュ鏁欏唴瀹�...",
+        MENU_CONF: {
+          uploadImage: {
+            server: process.env.VUE_APP_BASE_API + "/common/uploadSort",
+            fieldName: "file",
+            maxFileSize: 2 * 1024 * 1024,
+            maxNumberOfFiles: 1,
+            allowedFileTypes: ["image/*"],
+            headers: {
+              Authorization: "Bearer " + getToken()
+            },
+            customUpload: async (file, insertFn) => {
+              try {
                 const formData = new FormData();
                 formData.append("file", file);
 
-                // 纭繚 process.env.VUE_APP_BASE_API 鏄纭殑
-                const uploadUrl =
-                  process.env.VUE_APP_BASE_API + "/common/uploadSort";
-                axios
-                  .post(uploadUrl, formData, {
+                const response = await axios.post(
+                  process.env.VUE_APP_BASE_API + "/common/uploadSort",
+                  formData,
+                  {
                     headers: {
-                      Authorization: "Bearer " + getToken(),
-                    },
-                  })
-                  .then((res) => {
-                    const url = res.data.url; // 鑾峰彇鏂囦欢鍦板潃
-                    // 鎻掑叆鏂囦欢閾炬帴浣滀负鏅�氭枃鏈�
-                    editor.txt.append(url + " ");
-                    // 鎴栬�呮彃鍏ユ枃浠堕摼鎺ヤ綔涓鸿秴閾炬帴
-                    // editor.cmd.do('insertLink', { name: '鏂囦欢閾炬帴', url: url });
-                  })
-                  .catch((err) => {
-                    console.error("鏂囦欢涓婁紶澶辫触", err);
-                  });
-              };
-              input.click();
-            },
-          },
-        },
+                      "Content-Type": "multipart/form-data",
+                      Authorization: "Bearer " + getToken()
+                    }
+                  }
+                );
+
+                if (response.data && response.data.url) {
+                  let imgUrl = response.data.url;
+                  imgUrl = imgUrl.replace(
+                    "http://218.108.11.22:8093/profile-api/upload",
+                    "http://192.168.191.181:8095/profile/upload"
+                  );
+                  insertFn(imgUrl);
+                }
+              } catch (error) {
+                console.error("鍥剧墖涓婁紶澶辫触", error);
+                this.$message.error("鍥剧墖涓婁紶澶辫触");
+              }
+            }
+          }
+        }
       },
-      modes: "default", // or 'simple'
+      // 涓婁紶閰嶇疆
       headers: {
-        Authorization: "Bearer " + getToken(),
+        Authorization: "Bearer " + getToken()
       },
-      uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/uploadSort",
       uploadImgUrlword: process.env.VUE_APP_BASE_API + "/common/uploadShow",
-      uploadUrlPath: "娌℃湁鏂囦欢涓婁紶",
-      quillUpdateImg: false,
-      fileList: [
-        {
-          name: "food.jpeg",
-          url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100",
-        },
-        {
-          name: "food2.jpeg",
-          url: "https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x360/format/webp/quality/100",
-        },
-      ],
-      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: "", //鏂囦欢鍚�
+
+      // 椤甸潰鐘舵��
+      Editprogress: 1,
+      loading: false,
+
+      // 琛ㄥ崟鏁版嵁
+      ruleForm: {
+        campus: [],
+        heLibraryTagList: [],
+        tempDetpRelevances: [],
+        version: "1.0.1",
+        preachname: "",
+        preachcontent: "",
+        isAvailable: "",
+        suitway: []
+      },
+
+      // 鍏朵粬鏁版嵁
       dynamicTags: [],
+      sortlist: [],
+      courtyardlist: [],
+      illnesslist: [],
+      deptList: [],
+      tempDetpRelevanceslist: [],
+      variablelist: [
+        { variatename: "濮撳悕", variate: "${name}", default: 1 },
+        { variatename: "鐢佃瘽", variate: "${phone}", default: 1 },
+        { variatename: "鐥呮儏", variate: "${illness}", default: 1 }
+      ],
+
+      props: {
+        multiple: true,
+        value: "deptId",
+        label: "deptName"
+      },
+      fileName: "", //鏂囦欢鍚�
       inputVisible: false,
       illnessVisible: false,
       dialogVisiblepatient: false, //閫傜敤鐤剧梾绐楀彛
       inputValue: "",
-      // 瀵屾枃鏈�
-      editorOption: {
-        placeholder: "浣犳兂璇翠粈涔堬紵",
-        modules: {
-          imageResize: {
-            displayStyles: {
-              backgroundColor: "black",
-              border: "none",
-              color: "white",
-            },
-            modules: ["Resize", "DisplaySize", "Toolbar"],
-          },
-          toolbar: {
-            container: toolbarOptions, // 宸ュ叿鏍�
-            handlers: {
-              image: function (value) {
-                if (value) {
-                  document
-                    .querySelector("#quillEditorQiniu .avatar-uploader input")
-                    .click();
-                } else {
-                  this.quill.format("image", false);
-                }
-              },
-              video: function (value) {
-                if (value) {
-                  document
-                    .querySelector("#quillEditorQiniu .avatar-uploader input")
-                    .click();
-                } else {
-                  this.quill.format("video", false);
-                }
-              },
-            },
-          },
-        },
-      },
-
       sidecolumnrabs: "left", //鏂瑰悜
-      Editprogress: 1, //缂栬緫杩涘害
       currentVersion: "1.2.3", //褰撳墠鐗堟湰
-      loading: false, // 閬僵灞�
       drawer: false, //鎺у埗灞曞紑
       radio: "false", //鍗曢�夐閫変腑
       radios: [], //澶氶�夐閫変腑
@@ -572,28 +453,16 @@
       total: 1,
       hetype: "",
       id: null,
-      ruleForm: {
-        campus: [],
-        heLibraryTagList: [],
-        tempDetpRelevances: [],
-        version: "1.0.1",
-      },
       rules: {},
       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",
       // 鍐呯綉鐨勯儴鍒嗭紙鏂囦欢锛�
@@ -624,11 +493,7 @@
       ],
       addvalue: "娣诲姞棰樼洰",
 
-      variablelist: [
-        { variatename: "濮撳悕", variate: "${name}", default: 1 },
-        { variatename: "鐢佃瘽", variate: "${phone}", default: 1 },
-        { variatename: "鐥呮儏", variate: "${illness}", default: 1 },
-      ],
+
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
@@ -655,11 +520,15 @@
     this.courtyardlist = store.getters.courtyardlist;
   },
   watch: {
-    content(newVal, oldVal) {
-      //this.$emit('input', newVal);
-      console.log(newVal, "A");
-      console.log(oldVal, "B");
-    },
+    // content(newVal, oldVal) {
+    //   //this.$emit('input', newVal);
+    //   console.log(newVal, "A");
+    //   console.log(oldVal, "B");
+    // },
+    content(newVal) {
+      // 鍐呭鍙樺寲鏃惰Е鍙戯紝鍙互鍦ㄨ繖閲屽鐞嗚嚜鍔ㄤ繚瀛樼瓑閫昏緫
+      this.$emit('content-change', newVal)
+    }
   },
   beforeDestroy() {
     const editor = this.editor;
@@ -670,7 +539,24 @@
     onCreated(editor) {
       this.editor = Object.seal(editor); // 涓�瀹氳鐢� Object.seal()锛屽惁鍒欎細鎶ラ敊
     },
+    // 缂栬緫鍣ㄥ垱寤哄洖璋�
+   handleEditorCreated(editor) {
+      this.editorRef = editor;
+      console.log("缂栬緫鍣ㄥ凡鍒涘缓", editor);
+    },
 
+   // 閿�姣佺紪杈戝櫒
+    destroyEditor() {
+      if (this.editorRef) {
+        this.editorRef.destroy();
+        this.editorRef = null;
+      }
+    },
+
+    // 鑾峰彇鍐呭HTML
+    getEditorContent() {
+      return this.content;
+    },
     // ---------------------------------
     processElement(element) {
       return { ...element, isoperation: null };
@@ -1110,25 +996,40 @@
           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);
+    //     });
+    // },
+    // 鑾峰彇杩滅▼鍐呭
     Getmissioncontent(url) {
-      axios
-        .get(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);
+          console.error("鑾峰彇鍐呭澶辫触:", error);
         });
     },
     // 澶勭悊url
+  },
+  // 鐢熷懡鍛ㄦ湡閽╁瓙
+  beforeUnmount() {
+    this.destroyEditor()
   },
 };
 </script>
 <style src="@wangeditor/editor/dist/css/style.css"></style>
 <style src="@/assets/styles/global.css"></style>
+<style src="@wangeditor/editor/dist/css/style.css"></style>
 <style lang="scss" scoped>
 .sidecolumn {
   // width: 300px;
diff --git a/src/views/patient/propaganda/QuestionnaireTask.vue b/src/views/patient/propaganda/QuestionnaireTask.vue
index 9f5f112..84afbd6 100644
--- a/src/views/patient/propaganda/QuestionnaireTask.vue
+++ b/src/views/patient/propaganda/QuestionnaireTask.vue
@@ -80,6 +80,15 @@
                     >
                   </el-radio-group>
                 </el-form-item>
+                <!-- <el-form-item label="鏈嶅姟褰㈠紡">
+                  <SortCheckbox
+                    v-model="checkList"
+                    :options="checkboxlist"
+                    value-key="value"
+                    label-key="label"
+                    @change="checkSelectionChange"
+                  />
+                </el-form-item> -->
                 <el-form-item label="鎵ц鍛ㄦ湡" prop="longTask">
                   <el-radio-group v-model="form.longTask">
                     <el-radio :label="0">鑷畾涔夊懆鏈�</el-radio>
@@ -916,6 +925,7 @@
 } from "@/api/AiCentre/index";
 import OptionalForm from "@/components/OptionalForm"; //鐤剧梾娣诲姞缁勪欢
 import SFtable from "@/components/SFtable"; //琛ㄦ牸缁勪欢
+import SortCheckbox from "@/components/SortCheckbox"; //琛ㄦ牸缁勪欢
 import { MessageBox } from "element-ui";
 
 export default {
@@ -1028,7 +1038,8 @@
         pageNum: 1, //
         pageSize: 10,
       },
-      checkList: "",
+      checkList: '',
+      selectedOrder: [],
       deliverytopqueryParams: {
         pageNum: 1, //
         pageSize: 10,
@@ -1195,7 +1206,7 @@
       serviceType: null,
     };
   },
-  components: { SFtable, OptionalForm },
+  components: { SFtable, OptionalForm, SortCheckbox },
 
   created() {
     this.appraiselist = store.getters.appraiselist;
@@ -1568,6 +1579,11 @@
         }
       });
     },
+    checkSelectionChange(selectedValues, selectedOrder) {
+      this.selectedOrder = selectedOrder;
+      console.log("褰撳墠閫変腑:", selectedValues);
+      console.log("閫変腑椤哄簭:", selectedOrder);
+    },
     getillness(id) {
       if (id) {
         getillness({ outid: id, type: 5 }).then((res) => {

--
Gitblit v1.9.3