bill před 1 rokem
rodič
revize
a383d7ca4a

+ 9 - 7
src/view/case/draw/board/editCAD/Controls/UIControl.js

@@ -444,9 +444,10 @@ export default class UIControl {
     canvas.height = canvas.height * coordinate.ratio
     this.layer.renderer.autoRedrawForImg()
     setTimeout(() => {
-      let blobImg = this.downloadCadImg(canvas, filename)
-      // 完成callback传出blob  
-      callback(blobImg)
+      // let blobImg = this.downloadCadImg(canvas, filename)
+      // // 完成callback传出blob  
+      // callback(blobImg)
+      canvas.toBlob(callback, 'image/jpeg', 1)
       
       canvas.width = canvas.width / coordinate.ratio
       canvas.height = canvas.height / coordinate.ratio
@@ -459,15 +460,16 @@ export default class UIControl {
   downloadCadImg(canvas, filename) {
     
     // 图片导出为 png 格式
-    var type = "image/jpeg";
-    var imgData = canvas.toDataURL(type, 3);
+    var type = "image/png";
+    var imgData = canvas.toDataURL(type, 1);
 
     //let blobImg = this.base64ToBlob(imgData);
     
 
     // 加工image data,替换mime type
-    let blobImg  = imgData.replace(this._fixType(type), 'image/octet-stream')
-    return blobImg;
+    // let blobImg  = imgData.replace(this._fixType(type), 'image/octet-stream')
+    // console.log(imgData)
+    return imgData;
     // download
     //this.saveFile(imgData, filename)
   }

+ 1 - 0
src/view/case/draw/board/index.d.ts

@@ -72,6 +72,7 @@ export type Board = {
     backDisabled: boolean;
     forwardDisabled: boolean;
   }>;
+  clear(): void;
   unSelectShape(): void;
   readyAddShape(type: MetaShapeType, data: any, onFinish?: () => void): () => void;
   back(): void;

+ 9 - 1
src/view/case/draw/board/index.js

@@ -161,9 +161,17 @@ export const create = async (store, canvas) => {
     setImage(url) {
       layer.uiControl.setAttributes(bgImage, "upload", { url, scale: 1 });
     },
+    clear() {
+      history.clear()
+    },
     export() {
       return new Promise((resolve) => {
-        layer.uiControl.exportImg(canvas, "cover.jpg", resolve);
+        layer.uiControl.exportImg(canvas, "cover.jpg", (blob) => {
+              // const file = new File([blob], `asdasd.jpg`)
+              // window.open(URL.createObjectURL(file))
+              // console.log(blob)
+              resolve(blob)
+        });
       });
       const $canvas = document.createElement("canvas");
       $canvas.width = canvas.width;

+ 7 - 3
src/view/case/draw/index.vue

@@ -3,7 +3,7 @@
     <Header
       class="df-header"
       :type="props.type"
-      @back-page="router.back"
+      @back-page="backPageHandler"
       @back="board.back()"
       @forward="board.forward()"
       @view-init="board.viewInit()"
@@ -74,6 +74,11 @@ const props = computed(() => {
   }
 });
 
+const backPageHandler = () => {
+  board.value.clear()
+  router.back()
+}
+
 const setBackImage = (blob: Blob) => {
   board.value!.setImage(URL.createObjectURL(blob));
 };
@@ -128,7 +133,6 @@ const saveHandler = async () => {
     filesTitle: titleShape?.text || `${args.caseId}_${BoardTypeDesc[args.type]}`,
     content: store,
   };
-
   args.inAdd || (body.filesId = props.value!.fileId);
 
   const data = await saveCaseFileImageInfo(body);
@@ -142,7 +146,7 @@ const saveHandler = async () => {
 
   await nextTick();
   setTimeout(() => {
-    location.reload();
+    // location.reload();
   }, 100);
 };