From 78c84cf61b2a7f558582673a3eecdf8b91eb24c3 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期五, 17 四月 2026 16:48:26 +0800
Subject: [PATCH] 测试完成

---
 src/views/knowledge/education/compilequer/index.vue |  217 +++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 149 insertions(+), 68 deletions(-)

diff --git a/src/views/knowledge/education/compilequer/index.vue b/src/views/knowledge/education/compilequer/index.vue
index 7d0db6e..ef4061c 100644
--- a/src/views/knowledge/education/compilequer/index.vue
+++ b/src/views/knowledge/education/compilequer/index.vue
@@ -206,9 +206,20 @@
             </el-select>
           </el-form-item>
           <el-form-item label="閫傜敤鐤剧梾" prop="region">
-            <el-button type="warning" @click="$refs.child.handleAddpatient()"
-              >娣诲姞鐤剧梾</el-button
+            <div style="margin-bottom: 10px">
+              <el-button type="warning" @click="$refs.child.handleAddpatient()"
+                >娣诲姞鐤剧梾璇婃柇</el-button
+              >
+            </div>
+            <el-tag
+              v-for="tag in displayedTags"
+              :key="tag.icdid"
+              type="warning"
+              :disable-transitions="false"
             >
+              {{ tag.icdname }}
+            </el-tag>
+            <el-tag v-if="hasMore" type="info">+{{ remaining }} more</el-tag>
           </el-form-item>
           <el-form-item label="閫傜敤闄㈠尯" prop="region">
             <el-select
@@ -253,7 +264,7 @@
           </el-form-item>
         </el-form>
       </div>
-    <!-- 瀹f暀鍐呭 -->
+      <!-- 瀹f暀鍐呭 -->
       <div v-if="Editprogress == 2">
         <el-row :gutter="20">
           <el-col :span="4">
@@ -292,8 +303,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="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>
@@ -311,7 +326,7 @@
 
 <script>
 import { Editor, Toolbar } from "@wangeditor/editor-for-vue";
-import '@wangeditor/editor/dist/css/style.css';
+import "@wangeditor/editor/dist/css/style.css";
 import axios from "axios";
 import { getToken } from "@/utils/auth";
 
@@ -322,6 +337,7 @@
   addrichText,
   getlibraryinfo,
   getillnesslist,
+  getillness,
 } from "@/api/AiCentre/index";
 import OptionalForm from "@/components/OptionalForm";
 import { listDept } from "@/api/system/dept";
@@ -333,7 +349,7 @@
   components: { OptionalForm, Editor, Toolbar },
   data() {
     return {
- // 缂栬緫鍣ㄥ疄渚�
+      // 缂栬緫鍣ㄥ疄渚�
       editorRef: null,
 
       // 缂栬緫鍣ㄥ唴瀹�
@@ -341,66 +357,84 @@
 
       // 缂栬緫鍣ㄦā寮�
       mode: "default",
-
+      fileList: [],
       // 宸ュ叿鏍忛厤缃�
       toolbarConfig: {
-        excludeKeys: [
-          "group-video",
-          "insertVideo",
-          "uploadVideo",
-          "emotion",
-          "codeBlock",
-        ]
+        excludeKeys: ["emotion", "codeBlock"],
       },
 
-      // 缂栬緫鍣ㄩ厤缃�
       editorConfig: {
-        placeholder: "璇疯緭鍏ュ鏁欏唴瀹�...",
+        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()
+              Authorization: "Bearer " + getToken(),
             },
-            customUpload: async (file, insertFn) => {
-              try {
-                const formData = new FormData();
-                formData.append("file", file);
-
-                const response = await axios.post(
-                  process.env.VUE_APP_BASE_API + "/common/uploadSort",
-                  formData,
-                  {
-                    headers: {
-                      "Content-Type": "multipart/form-data",
-                      Authorization: "Bearer " + getToken()
-                    }
-                  }
+            // 鑷畾涔夋彃鍏ュ浘鐗�
+            customInsert: (res, insertFn) => {
+              const url = res.url || res.data || res.filePath;
+              if (url) {
+                // 澶勭悊鍐呯綉鍦板潃杞崲
+                const processedUrl = url.replace(
+                  "http://192.168.191.181:8095/profile/upload",
+                  "http://m.zjtongde.com:13871/prod-api/profile/upload"
                 );
-
-                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("鍥剧墖涓婁紶澶辫触");
+                insertFn(processedUrl);
               }
-            }
-          }
-        }
+            },
+            // 涓婁紶鎴愬姛鍥炶皟
+            onSuccess: (file, res) => {
+              console.log("鍥剧墖涓婁紶鎴愬姛", res);
+              return res.url || res.data || res.filePath;
+            },
+            onFailed: (file, res) => {
+              this.$message.error("鍥剧墖涓婁紶澶辫触");
+              console.error("鍥剧墖涓婁紶澶辫触", res);
+            },
+          },
+
+          // 瑙嗛涓婁紶閰嶇疆
+          uploadVideo: {
+            server: process.env.VUE_APP_BASE_API + "/common/uploadSort",
+            fieldName: "file",
+            maxFileSize: 50 * 1024 * 1024, // 50MB
+            allowedFileTypes: ["video/*"],
+            headers: {
+              Authorization: "Bearer " + getToken(),
+            },
+            // 鑷畾涔夋彃鍏ヨ棰�
+            customInsert: (res, insertFn) => {
+              const url = res.url || res.data || res.filePath;
+              if (url) {
+                // 澶勭悊鍐呯綉鍦板潃杞崲
+                const processedUrl = url.replace(
+                  "http://192.168.191.181:8095/profile/upload",
+                  "http://m.zjtongde.com:13871/prod-api/profile/upload"
+                );
+                insertFn(processedUrl, "瑙嗛");
+              }
+            },
+            onSuccess: (file, res) => {
+              console.log("瑙嗛涓婁紶鎴愬姛", res);
+              return res.url || res.data || res.filePath;
+            },
+            onFailed: (file, res) => {
+              this.$message.error("瑙嗛涓婁紶澶辫触");
+              console.error("瑙嗛涓婁紶澶辫触", res);
+            },
+            onError: (file, err, res) => {
+              this.$message.error("瑙嗛涓婁紶鍑洪敊");
+              console.error("瑙嗛涓婁紶鍑洪敊", err);
+            },
+          },
+        },
       },
       // 涓婁紶閰嶇疆
       headers: {
-        Authorization: "Bearer " + getToken()
+        Authorization: "Bearer " + getToken(),
       },
       uploadImgUrlword: process.env.VUE_APP_BASE_API + "/common/uploadShow",
 
@@ -417,7 +451,7 @@
         preachname: "",
         preachcontent: "",
         isAvailable: "",
-        suitway: []
+        suitway: [],
       },
 
       // 鍏朵粬鏁版嵁
@@ -430,13 +464,13 @@
       variablelist: [
         { variatename: "濮撳悕", variate: "${name}", default: 1 },
         { variatename: "鐢佃瘽", variate: "${phone}", default: 1 },
-        { variatename: "鐥呮儏", variate: "${illness}", default: 1 }
+        { variatename: "鐥呮儏", variate: "${illness}", default: 1 },
       ],
 
       props: {
         multiple: true,
         value: "deptId",
-        label: "deptName"
+        label: "deptName",
       },
       fileName: "", //鏂囦欢鍚�
       inputVisible: false,
@@ -464,11 +498,13 @@
       options: [],
       optionstag: [],
       // 鍐呯綉鐨勯儴鍒嗭紙鏂囦欢锛�
-      oldPattern: "http://192.168.191.181:8095/profile/upload",
+      // oldPattern: "http://192.168.191.181:8095/profile/upload",
+      oldPattern: "http://192.88.117.236:8090/prod-api/profile/upload",
       // 鍐呯綉鐨勯儴鍒嗭紙鏂囦欢锛�
-      oldPatternhtml: "/http:\/\/192\.168\.191\.181:8095\/profile\/upload\//g",
+      oldPatternhtml: "/http:\/\/192\.88\.117\.236:8095\/profile\/upload\//g",
       // 澶栫綉閮ㄥ垎锛堟枃浠讹級
-      newPattern: "http://218.108.11.22:8093/profile-api/upload",
+      // newPattern: "http://218.108.11.22:8093/profile-api/upload",銆併�佹柊鍗�
+      newPattern: "http://m.zjtongde.com:13871/prod-api/profile/upload",
 
       xjxsoptions: [
         {
@@ -492,7 +528,6 @@
         },
       ],
       addvalue: "娣诲姞棰樼洰",
-
 
       // 鏌ヨ鍙傛暟
       queryParams: {
@@ -527,25 +562,39 @@
     // },
     content(newVal) {
       // 鍐呭鍙樺寲鏃惰Е鍙戯紝鍙互鍦ㄨ繖閲屽鐞嗚嚜鍔ㄤ繚瀛樼瓑閫昏緫
-      this.$emit('content-change', newVal)
-    }
+      this.$emit("content-change", newVal);
+    },
   },
   beforeDestroy() {
     const editor = this.editor;
     if (editor == null) return;
     editor.destroy(); // 缁勪欢閿�姣佹椂锛屽強鏃堕攢姣佺紪杈戝櫒
   },
+  computed: {
+    displayedTags() {
+      // 杩斿洖鍓�10涓猼ag
+      return this.illnesslist.slice(0, 10);
+    },
+    hasMore() {
+      // 鍒ゆ柇鏄惁鏈夋洿澶氱殑tag
+      return this.illnesslist.length > 10;
+    },
+    remaining() {
+      // 璁$畻鍓╀綑鐨則ag鏁伴噺
+      return this.illnesslist.length - 10;
+    },
+  },
   methods: {
     onCreated(editor) {
       this.editor = Object.seal(editor); // 涓�瀹氳鐢� Object.seal()锛屽惁鍒欎細鎶ラ敊
     },
     // 缂栬緫鍣ㄥ垱寤哄洖璋�
-   handleEditorCreated(editor) {
+    handleEditorCreated(editor) {
       this.editorRef = editor;
       console.log("缂栬緫鍣ㄥ凡鍒涘缓", editor);
     },
 
-   // 閿�姣佺紪杈戝櫒
+    // 閿�姣佺紪杈戝櫒
     destroyEditor() {
       if (this.editorRef) {
         this.editorRef.destroy();
@@ -601,7 +650,7 @@
       // ------------------
 
       // 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>';
+      //   '<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.88.117.236:8090/prod-api/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.88.117.236:8090/prod-api/profile/upload/vadio/娉ㄥ皠鍣ㄦ帹娉�.mp4"></video><p><br></p>';
       // // html = html.parserdom(this.oldPattern, this.newPattern);
       // html = this.parserdom(html);
       // console.log(html, "html");
@@ -616,17 +665,42 @@
       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";
+      var oldUrlBase = this.oldPattern;
+      // var newUrlBase = "http://218.108.11.22:8093/profile-api/upload";
+      var newUrlBase = this.newPattern;
 
       // 鑾峰彇鎵�鏈夌殑video鍏冪礌
       var videos = doc.querySelectorAll("video");
+      var images = doc.querySelectorAll("img");
+      console.log(videos, "videos");
+      console.log(images, "images");
 
       // 閬嶅巻鎵�鏈夌殑video鍏冪礌骞舵浛鎹rc灞炴��
       videos.forEach(function (video) {
+        // 鍏堟鏌ideo鍏冪礌鑷韩鐨剆rc灞炴��
         var src = video.getAttribute("src");
-        if (src.startsWith(oldUrlBase)) {
+        if (src && src.startsWith(oldUrlBase)) {
           video.setAttribute("src", src.replace(oldUrlBase, newUrlBase));
+        }
+
+        // 鐒跺悗妫�鏌ideo鍏冪礌鍐呴儴鐨剆ource瀛愬厓绱�
+        var sources = video.querySelectorAll("source");
+        sources.forEach(function (source) {
+          var sourceSrc = source.getAttribute("src");
+          if (sourceSrc && sourceSrc.startsWith(oldUrlBase)) {
+            source.setAttribute(
+              "src",
+              sourceSrc.replace(oldUrlBase, newUrlBase)
+            );
+          }
+        });
+      });
+      console.log(images, "images");
+
+      images.forEach(function (img) {
+        var src = img.getAttribute("src");
+        if (src.startsWith(oldUrlBase)) {
+          img.setAttribute("src", src.replace(oldUrlBase, newUrlBase));
         }
       });
 
@@ -655,7 +729,13 @@
         content: this.parserdom(this.content),
         fileName: this.generateRandomHtmlFilename(),
       }).then((res) => {
+        console.log(55);
+
         this.ruleForm.richText = res.msg;
+        this.ruleForm.richText = res.msg.replace(
+          this.oldPattern,
+          this.newPattern
+        );
         console.log(this.ruleForm.richText, "this.ruleForm.richText");
         // 澶勭悊鍐呯綉html
         addrichText({
@@ -1011,7 +1091,8 @@
     // },
     // 鑾峰彇杩滅▼鍐呭
     Getmissioncontent(url) {
-      axios.get(url)
+      axios
+        .get(url)
         .then((response) => {
           this.content = response.data;
         })
@@ -1023,7 +1104,7 @@
   },
   // 鐢熷懡鍛ㄦ湡閽╁瓙
   beforeUnmount() {
-    this.destroyEditor()
+    this.destroyEditor();
   },
 };
 </script>

--
Gitblit v1.9.3