Explorar o código

生成户型图 加判断

tangning hai 5 meses
pai
achega
492a607e78
Modificáronse 2 ficheiros con 24 adicións e 6 borrados
  1. 11 0
      src/util/index.ts
  2. 13 6
      src/view/case/help.ts

+ 11 - 0
src/util/index.ts

@@ -1,5 +1,6 @@
 import { Base64 } from "js-base64";
 import { positionTransform } from "./mt4";
+import { alert } from "@/helper/message";
 
 export const dateFormat = (date: Date, fmt: string) => {
   var o: any = {
@@ -211,7 +212,17 @@ export const mix = (origin: any, clear = false, ...appends: any[]) => {
   }
   return origin;
 };
+export const urlToBlob = async (url: string) => {
 
+  try {
+    const response = await fetch(url, { mode: 'no-cors' }); // 获取文件内容
+    const blob = await response.blob(); // 转成 blob
+    return blob;
+  } catch (error) {
+    // 请求出错,说明图片不存在
+    alert("暂未获取到平面图,请前往三维场景制作");
+  }
+}
 export const base64ToBlob = (base64Data: string) => {
   let arr = base64Data.split(",");
   let matchs = arr[0].match(/:(.*?);/);

+ 13 - 6
src/view/case/help.ts

@@ -9,7 +9,7 @@ import { getCaseSceneList, getSyncSceneInfo } from "@/store/case";
 import { CaseTagging } from "@/store/caseTagging";
 import { ModelScene, QuoteScene, Scene, SceneType } from "@/store/scene";
 import { transformSWToken, user } from "@/store/user";
-import { base64ToBlob, drawImage } from "@/util";
+import { base64ToBlob, urlToBlob, drawImage } from "@/util";
 import { ref, watchEffect } from "vue";
 
 export type MenuItem = {
@@ -196,11 +196,18 @@ export const getFuseImage = async (
       break;
     case FuseImageType.KANKAN:
       console.error("截图尺寸", width, height);
-      const result = await typeMap.sdk.Camera.screenshot(
-        [{ width: width, height: height, name: "2k", bgOpacity: 0 }],
-        false
-      );
-      blob = base64ToBlob(result[0].data);
+      if(typeMap.sdk.store?.getValue('metadata')?.floorPlanUser) {
+        let num = typeMap.sdk.store?.getValue('metadata').num
+       // /oss/scene_view_data/YZL-jm-3EOpLfZxim9/user/cad-style-3.jpg
+       blob = urlToBlob(`/oss/scene_view_data/${num}/user/cad-style-3.jpg`)
+      } else {
+        const result = await typeMap.sdk.Camera.screenshot(
+          [{ width: width, height: height, name: "2k", bgOpacity: 0 }],
+          false
+        );
+        blob = base64ToBlob(result[0].data);
+      }
+     
       break;
     case FuseImageType.LASER:
       blob = await new Promise<Blob | null>((resolve) => {