From 7b60f24e07f54634503e5b37e6ca5f85d4ad743f Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 07 八月 2026 15:41:39 +0800
Subject: [PATCH] 天津_建诚恒商贸 1.备件管理-新增独立备件出库功能入口,支持直接完成备件领用出库操作。 2.设备保养-支持按日期分组折叠展示,分组条目可展开查看明细;单条明细行末尾增加【保养完成】操作按钮,可单独办结单条保养任务;折叠汇总状态下,新增【一键保养完成】批量操作按钮,快速办结当前分组全部保养项。 3.设备巡检-按日期分组折叠展示,分组支持展开查看明细;每条巡检明细后增设【巡检完成】按钮,支持单独办结单条巡检记录;分组折叠未展开状态下,提供【一键巡检完成】批量操作,统一办结该分组下所有巡检任务。 4.增值税对比-优化数据展示逻辑,列表展示各订单增值税明细;页面右侧新增柱状可视化图表,直观对比进销项增值税数据。 5.管理驾驶舱-指标修改:将顶部「销售产品数」调整为「销售订单数」;时间筛选:页面左上角新增日期范围下拉筛选控件,所有统计指标标注当前筛选时段;

---
 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