From 07f9f8657d057a38792c3822acc9b08d83478967 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 07 五月 2026 14:23:10 +0800
Subject: [PATCH] 合并代码

---
 src/components/Editor/index.vue |   54 +++++++++++++++++++++++++++++++++---------------------
 1 files changed, 33 insertions(+), 21 deletions(-)

diff --git a/src/components/Editor/index.vue b/src/components/Editor/index.vue
index c283e42..8f0eebd 100644
--- a/src/components/Editor/index.vue
+++ b/src/components/Editor/index.vue
@@ -5,11 +5,11 @@
       :before-upload="handleBeforeUpload"
       :on-success="handleUploadSuccess"
       :on-error="handleUploadError"
-      name="file"
+      name="files"
       :show-file-list="false"
       :headers="headers"
       class="editor-img-uploader"
-      v-if="type == 'url'"
+      v-if="type === 'url'"
     >
       <i ref="uploadRef" class="editor-img-uploader"></i>
     </el-upload>
@@ -27,15 +27,15 @@
 </template>
 
 <script setup>
-import axios from "axios";
 import { QuillEditor } from "@vueup/vue-quill";
 import "@vueup/vue-quill/dist/vue-quill.snow.css";
 import { getToken } from "@/utils/auth";
+import {uploadPublicFile} from "@/api/basicData/common.js";
 
 const { proxy } = getCurrentInstance();
 
 const quillEditorRef = ref();
-const uploadUrl = ref(import.meta.env.VITE_APP_BASE_API + "/common/upload"); // 涓婁紶鐨勫浘鐗囨湇鍔″櫒鍦板潃
+const uploadUrl = ref(import.meta.env.VITE_APP_BASE_API + "/common/public/upload"); // 涓婁紶鐨勫浘鐗囨湇鍔″櫒鍦板潃
 const headers = ref({
   Authorization: "Bearer " + getToken(),
 });
@@ -157,21 +157,40 @@
 function handleUploadSuccess(res, file) {
   // 濡傛灉涓婁紶鎴愬姛
   if (res.code == 200) {
+    const imageUrl = resolveImageUrl(res);
+    if (!imageUrl) {
+      proxy.$modal.msgError("鏈幏鍙栧埌鍥剧墖鍦板潃");
+      return;
+    }
     // 鑾峰彇瀵屾枃鏈疄渚�
     let quill = toRaw(quillEditorRef.value).getQuill();
     // 鑾峰彇鍏夋爣浣嶇疆
-    let length = quill.selection.savedRange.index;
+    const selection = quill.getSelection(true);
+    const length = selection ? selection.index : quill.getLength();
     // 鎻掑叆鍥剧墖锛宺es.url涓烘湇鍔″櫒杩斿洖鐨勫浘鐗囬摼鎺ュ湴鍧�
-    quill.insertEmbed(
-      length,
-      "image",
-      import.meta.env.VITE_APP_BASE_API + res.fileName
-    );
+    quill.insertEmbed(length, "image", imageUrl);
     // 璋冩暣鍏夋爣鍒版渶鍚�
     quill.setSelection(length + 1);
   } else {
     proxy.$modal.msgError("鍥剧墖鎻掑叆澶辫触");
   }
+}
+
+function resolveImageUrl(res) {
+  if (!res) return "";
+  // 鍏煎鏂版帴鍙�: data[0].previewURL
+  const previewURL = res?.data?.[0]?.previewURL;
+  if (previewURL) {
+    return previewURL;
+  }
+  // 鍏煎鏃ф帴鍙�
+  if (res.url) {
+    return res.url;
+  }
+  if (res.fileName) {
+    return `${import.meta.env.VITE_APP_BASE_API}${res.fileName}`;
+  }
+  return "";
 }
 
 // 涓婁紶澶辫触澶勭悊
@@ -196,17 +215,10 @@
 
 function insertImage(file) {
   const formData = new FormData();
-  formData.append("file", file);
-  axios
-    .post(uploadUrl.value, formData, {
-      headers: {
-        "Content-Type": "multipart/form-data",
-        Authorization: headers.value.Authorization,
-      },
-    })
-    .then((res) => {
-      handleUploadSuccess(res.data);
-    });
+  formData.append("files", file);
+  uploadPublicFile(formData).then((res) => {
+    handleUploadSuccess(res)
+  })
 }
 </script>
 

--
Gitblit v1.9.3