From eb811d2d0bb0e5df82b188e5ebb4c204f5a658a9 Mon Sep 17 00:00:00 2001
From: zhongshujie <2862698242@qq.com>
Date: 星期三, 06 十一月 2024 14:39:20 +0800
Subject: [PATCH] 民航概论全本制作(除去模型)

---
 src/components/paint/index.vue |   66 ++++++++++++++++++--------------
 1 files changed, 37 insertions(+), 29 deletions(-)

diff --git a/src/components/paint/index.vue b/src/components/paint/index.vue
index 75e7a89..eadb1e3 100644
--- a/src/components/paint/index.vue
+++ b/src/components/paint/index.vue
@@ -13,9 +13,7 @@
         </button>
         <button @click="saveImgData">淇濆瓨</button>
       </li>
-      <li>
-
-      </li>
+      <li></li>
       <li>
         <label>鐢荤瑪锛�</label>
         <select name="" id="" @change="changeBrush" v-model="brush">
@@ -122,10 +120,10 @@
       type: Number,
       default: 1,
     },
-    canvasHeight:{
-      type:Number,
-      default:380
-    }
+    canvasHeight: {
+      type: Number,
+      default: 380,
+    },
   },
   mounted() {
     this.init();
@@ -133,14 +131,17 @@
   methods: {
     // 鍒濆鍖栫敾甯�
     init() {
-      this.canvas = new fabric.Canvas("canvas", {
-        isDrawingMode: true,
-      });
+      this.canvas = new fabric.Canvas(
+        (this.container ? this.container : document).querySelector("#canvas"),
+        {
+          isDrawingMode: true,
+        }
+      );
       // 璁剧疆鑳屾櫙
-      this.setBackgroundImage()
+      this.setBackgroundImage();
       //
       fabric.Object.prototype.transparentCorners = false;
-      this.setBrush()
+      this.setBrush();
     },
     // 鍒涘缓鍚勭绗斿埛
     setBrush() {
@@ -148,7 +149,10 @@
         // 鐢荤瑪鏍峰紡
         this.vLinePatternBrush = new fabric.PatternBrush(this.canvas);
         this.vLinePatternBrush.getPatternSrc = () => {
-          let patternCanvas = fabric.document.createElement("canvas");
+          let patternCanvas =
+            fabric[this.container ? this.container : document].createElement(
+              "canvas"
+            );
           patternCanvas.width = patternCanvas.height = 10;
           let ctx = patternCanvas.getContext("2d");
           ctx.strokeStyle = this.lineColor;
@@ -162,7 +166,10 @@
         };
         this.hLinePatternBrush = new fabric.PatternBrush(this.canvas);
         this.hLinePatternBrush.getPatternSrc = function () {
-          let patternCanvas = fabric.document.createElement("canvas");
+          let patternCanvas =
+            fabric[this.container ? this.container : document].createElement(
+              "canvas"
+            );
           patternCanvas.width = patternCanvas.height = 10;
           let ctx = patternCanvas.getContext("2d");
           ctx.strokeStyle = this.lineColor;
@@ -178,7 +185,10 @@
         this.squarePatternBrush.getPatternSrc = function () {
           const squareWidth = 10;
           const squareDistance = 2;
-          const patternCanvas = fabric.document.createElement("canvas");
+          const patternCanvas =
+            fabric[this.container ? this.container : document].createElement(
+              "canvas"
+            );
           patternCanvas.width = patternCanvas.height =
             squareWidth + squareDistance;
           const ctx = patternCanvas.getContext("2d");
@@ -190,7 +200,10 @@
         this.diamondPatternBrush.getPatternSrc = function () {
           const squareWidth = 10;
           const squareDistance = 5;
-          const patternCanvas = fabric.document.createElement("canvas");
+          const patternCanvas =
+            fabric[this.container ? this.container : document].createElement(
+              "canvas"
+            );
           const rect = new fabric.Rect({
             width: squareWidth,
             height: squareWidth,
@@ -205,9 +218,7 @@
           rect.render(ctx);
           return patternCanvas;
         };
-
         const img = new Image();
-        // img.src = "../assets/images/drop.jpg";
         this.texturePatternBrush = new fabric.PatternBrush(this.canvas);
         this.texturePatternBrush.source = img;
       }
@@ -260,7 +271,7 @@
     // 娓呯┖鐢诲竷
     clearCanvas() {
       this.canvas.clear();
-      this.setBackgroundImage()
+      this.setBackgroundImage();
     },
     // 淇敼鐢荤瑪棰滆壊
     changeLineColor(e) {
@@ -269,11 +280,9 @@
       if (brush.getPatternSrc) {
         brush.source = brush.getPatternSrc.call(brush);
       }
-      console.log(e.srcElement.value);
     },
     // 淇敼鐢荤瑪绮楃粏
     changeLineWidth(e) {
-      console.log(e);
       this.canvas.freeDrawingBrush.width =
         parseInt(e.srcElement.value, 10) || 1;
     },
@@ -326,7 +335,6 @@
     changeShowColor(e) {
       this.canvas.contextContainer.shadowColor = e.srcElement.value;
     },
-
     // 闃村奖瀹藉害
     changeShowWidth(e) {
       console.log(this.canvas);
@@ -340,7 +348,7 @@
       this.canvas.contextContainer.shadowOffsetY =
         parseInt(e.srcElement.value, 10) || 0;
     },
-    // 淇濆瓨鍥句功
+    // 淇濆瓨鍥剧墖
     saveImgData() {
       const imgData = this.canvas.toDataURL({
         format: "png", // 鎸囧畾杈撳嚭鏍煎紡锛岄�氬父鏄�'png'鎴�'jpeg'
@@ -373,15 +381,15 @@
 }
 .paint-btn {
   width: 96%;
-  margin-top:40px;
-  padding:20px;
-  border:1px solid #ededed;
+  margin-top: 40px;
+  padding: 20px;
+  border: 1px solid #ededed;
   li {
-    margin-bottom:6px;
+    margin-bottom: 6px;
   }
 }
 .paint-btn-box {
-  display:flex;
-  justify-content:space-evenly;
+  display: flex;
+  justify-content: space-evenly;
 }
 </style>

--
Gitblit v1.9.1