Эх сурвалжийг харах

feat(views): 优化图片地址的获取逻辑

ccnnde 2 сар өмнө
parent
commit
0b1027d64d

+ 8 - 0
src/services/utils.ts

@@ -293,4 +293,12 @@ export const transformData = (obj,operation) => {
     // }
   }
   return newObj;
+}
+
+export const getImgUrl = (url: string) => {
+  if (url.startsWith('http')) {
+    return url
+  }
+
+  return import.meta.env.VITE_IMG_API + '/' + url
 }

+ 2 - 1
src/views/components/FileProps.vue

@@ -221,6 +221,7 @@ import { lineCross,clearLineCross,handleLineCross } from '@meta2d/utils';
 import GlobalStates from './GlobalStates.vue';
 import { getToken  } from '@le5le/auth-token';
 import D2M from 'dxf';
+import { getImgUrl } from '@/services/utils';
 const { getEnterprise } = useEnterprise();
 const { meta2dData, setMeta2dData } = useMeta2dData();
 const { extendData, setExtendData } = useExtendData();
@@ -384,7 +385,7 @@ const beforeUpload = (file: any) => {
 
 const fileSuccessed = async (content: any) => {
   // meta2d.store.patchFlagsBackground = true;
-  meta2d.setBackgroundImage(content.response.data?.url);
+  meta2d.setBackgroundImage(getImgUrl(content.response.data?.url));
   setTimeout(() => {
     // meta2d.store.patchFlagsBackground = true;
     meta2d.render();

+ 4 - 6
src/views/components/Graphics.vue

@@ -411,7 +411,7 @@ import {
   imageDrive,
 } from '@/services/api';
 import { convertPen } from '@/services/upgrade';
-import { isGif } from '@/services/utils';
+import { getImgUrl, isGif } from '@/services/utils';
 import { autoSave, delAttrs, blank, useFolder, chargeDialogShow } from '@/services/common';
 import { debounce, throttle } from '@/services/debouce';
 import { searchObjectPinyin } from '@/services/pinyin';
@@ -1358,8 +1358,7 @@ const dragStart = async (event: DragEvent | MouseEvent|TouchEvent, item: any) =>
     // firefox naturalWidth svg 图片 可能是 0
     const width = target.naturalWidth || target.width;
     const height = target.naturalHeight || target.height;
-    const urlPrefix = item.image.startsWith('http') ? '' : import.meta.env.VITE_IMG_API + '/'
-    const [name, lockedOnCombine] = await isGif(urlPrefix + item.image)
+    const [name, lockedOnCombine] = await isGif(getImgUrl(item.image))
       ? ['gif', 0]
       : ['image', undefined];
 
@@ -1368,7 +1367,7 @@ const dragStart = async (event: DragEvent | MouseEvent|TouchEvent, item: any) =>
       width,
       height,
       isBottom:true,
-      image: urlPrefix + item.image,
+      image: getImgUrl(item.image),
       imageRatio: true,
       ratio: true,
       lockedOnCombine,
@@ -2230,8 +2229,7 @@ const onFold = () => {
 };
 
 const getImgSrc = (elem) => {
-  const urlPrefix = elem.image.startsWith('http') ? '' : import.meta.env.VITE_IMG_API + '/'
-  return urlPrefix + elem.image + (activeAssets.value === 'user' ? '' : ('?' + Math.random()))
+  return getImgUrl(elem.image + (activeAssets.value === 'user' ? '' : ('?' + Math.random())))
 }
 
 const loadImage = (elem: any) => {

+ 3 - 2
src/views/components/PenProps.vue

@@ -1295,6 +1295,7 @@ import { getLe5le3d, getLe5leV, getLe5le2d } from '@/services/api';
 import { s8 } from '@/services/random';
 import { EllipsisIcon, LinkIcon, LinkUnlinkIcon, ChevronDownIcon, FormatVerticalAlignLeftIcon, FormatHorizontalAlignCenterIcon, FormatVerticalAlignCenterIcon, FormatVerticalAlignRightIcon, FormatHorizontalAlignTopIcon, FormatHorizontalAlignBottomIcon  } from 'tdesign-icons-vue-next';
 import { getToken  } from '@le5le/auth-token';
+import { getImgUrl } from '@/services/utils';
 
 const { user } = useUser();
 const headers = {
@@ -1651,7 +1652,7 @@ const fileSuccessed = async (content: any) => {
   // meta2d.store.patchFlagsBackground = true;
   // meta2d.setBackgroundImage(content.response.url);
   // meta2d.store.patchFlagsBackground = true;
-  data.pen.image = content.response.data?.url || `/file${content.response.filename}`;
+  data.pen.image = getImgUrl(content.response.data?.url || `/file${content.response.filename}`);
   updatePen(data.pen, 'image');
   meta2d.canvas.canvasImage.init();
   meta2d.canvas.canvasImageBottom.init();
@@ -1668,7 +1669,7 @@ const fileRemoved = () => {
 };
 
 const fileChildSuccessed = async (content: any) => {
-  data.childPen.image = content.response.data?.url || `/file${content.response.filename}`;
+  data.childPen.image = getImgUrl(content.response.data?.url || `/file${content.response.filename}`);
   updatePen(data.childPen, 'image');
   meta2d.canvas.canvasImage.init();
   meta2d.canvas.canvasImageBottom.init();