ソースを参照

版本及item更新

haojianlong 4 年 前
コミット
60cd7d2e31

+ 1 - 1
saga-web-draw/package.json

@@ -1,6 +1,6 @@
 {
     "name": "@saga-web/draw",
-    "version": "2.1.109",
+    "version": "2.1.110",
     "description": "上格云绘制引擎。",
     "main": "lib/index.js",
     "types": "lib/index.d.js",

+ 2 - 2
saga-web-graph/package.json

@@ -1,6 +1,6 @@
 {
     "name": "@saga-web/graph",
-    "version": "2.1.128",
+    "version": "2.1.129",
     "description": "上格云二维图形引擎。",
     "main": "lib/index.js",
     "types": "lib/index.d.js",
@@ -40,7 +40,7 @@
         "typescript": "^3.9.7"
     },
     "dependencies": {
-        "@saga-web/draw": "2.1.109",
+        "@saga-web/draw": "2.1.110",
         "@types/uuid": "^8.0.0"
     }
 }

+ 4 - 4
saga-web-graph/src/enums/STextOrigin.ts

@@ -4,8 +4,8 @@
  * @author  张宇
  */
 export enum STextOrigin {
-  /** 左上点    */
-  LeftTop,
-  /** 中心点    */
-  Centrum,
+    /** 左上点    */
+    LeftTop,
+    /** 中心点    */
+    Center
 } // Enum STextOrigin

+ 46 - 62
saga-web-graph/src/items/SImageItem.ts

@@ -1,15 +1,15 @@
 import { SObjectItem } from "./SObjectItem";
-import { SPainter, SRect, SSize, SColor, SPoint } from "@saga-web/draw/lib";
+import { SColor, SPainter, SPoint, SRect, SSize } from "@saga-web/draw";
 import { SImageShowType, STextOrigin } from "..";
 import { SGraphItem } from "../SGraphItem";
 
 /**
- * 图片item
+ * 图片 item
  *
- * @author  张宇(taohuzy@163.com)
+ * @author  张宇 <taohuzy@163.com>
  */
 export class SImageItem extends SObjectItem {
-    /** 图片dom */
+    /** 图片 dom */
     img: CanvasImageSource | undefined;
 
     /** 展示模式 */
@@ -43,7 +43,7 @@ export class SImageItem extends SObjectItem {
         this.update();
     }
 
-    /** 原点位置    */
+    /** 原点位置 */
     private _originPosition: STextOrigin = STextOrigin.LeftTop;
     get originPosition(): STextOrigin {
         return this._originPosition;
@@ -71,23 +71,13 @@ export class SImageItem extends SObjectItem {
         this._url = v;
         this.img = new Image();
         this.img.onload = (e): void => {
-            const isiOS = !!navigator.userAgent.match(
-                /\(i[^;]+;( U;)? CPU.+Mac OS X/
-            ); //ios终端
-            if (isiOS) {
+            // @ts-ignore
+            const imgSrc = e.path[0].src;
+            if (this.isUrlIdentical(imgSrc)) {
                 this.isLoadOver = true;
                 this.computeImgSize();
                 this.$emit("imgLoadOver");
                 this.update();
-            } else {
-                // @ts-ignore
-                const imgSrc = e.path[0].src;
-                if (this.isUrlIdentical(imgSrc)) {
-                    this.isLoadOver = true;
-                    this.computeImgSize();
-                    this.$emit("imgLoadOver");
-                    this.update();
-                }
             }
         };
         this.img.onerror = (e): void => {
@@ -106,13 +96,13 @@ export class SImageItem extends SObjectItem {
     /**
      * 构造函数
      *
-     * @param   parent      指向父Item
-     * @param   url         图片地址
+     * @param parent      指向父 Item
+     * @param url         图片地址
      */
     constructor(parent: SGraphItem | null, url?: string) {
         super(parent);
         if (url) this.url = url;
-    } // Constructor
+    }
 
     /**
      * 根据显示模式计算图片的宽高
@@ -123,7 +113,7 @@ export class SImageItem extends SObjectItem {
             let width = 0;
             // 要绘制图片的宽度
             let height = 0;
-            // 图片item的宽高比
+            // 图片 item 的宽高比
             let itemAspectRatio: number = this.width / this.height;
             // 原始图片的宽高比
             let imgAspectRatio: number =
@@ -158,79 +148,73 @@ export class SImageItem extends SObjectItem {
             this.imgWidth = width;
             this.imgHeight = height;
             // 设置原点位置(默认左上角)
-            if (this.originPosition == STextOrigin.Centrum) {
+            if (this.originPosition == STextOrigin.Center) {
                 this.origin = new SPoint(this.width / 2, this.height / 2);
             }
         }
-    } // Function computeImgSize()
+    }
 
     /**
      * 判断当前地址和回调地址是否相同
-     * @param   imgUrl      图片回调地址
      *
+     * @param imgUrl        图片回调地址
+     * @return 当前地址和回调地址是否相同
      */
     private isUrlIdentical(imgUrl: string): boolean {
         if (this.url.indexOf("://") == -1) {
+            // eslint-disable-next-line max-len
             const reg = /^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*?)\s*$/i;
-            if (reg.test(this.url)) {// url是base64地址
-                if(this.url == imgUrl) {
-                    return true;
-                } else {
-                    return false;
-                }
-            } else {// url是相对地址
-                if (this.url == this.GetUrlRelativePath(imgUrl)) {
-                    return true;
-                } else {
-                    return false;
-                }
-            }
-        } else {// url是绝对地址
-            if(this.url == imgUrl) {
-                return true;
+            if (reg.test(this.url)) {
+                return this.url == imgUrl;
             } else {
-                return false;
+                return this.url == this.GetUrlRelativePath(imgUrl);
             }
+        } else {
+            return this.url == imgUrl;
         }
-
-    } // Function isUrlIdentical()
+    }
 
     /**
      * 截取绝对路径中的相对路径
-     * @param   url      绝对路径
      *
+     * @param url      绝对路径
+     * @return 截取出的绝对路径中的相对路径
      */
     private GetUrlRelativePath(url: string): string {
-        var arrUrl = url.split("//");
-        var start = arrUrl[1].indexOf("/");
-      var relUrl = arrUrl[1].substring(start);
-        return relUrl;
-    } // Function GetUrlRelativePath()
+        const arrUrl = url.split("//");
+        const start = arrUrl[1].indexOf("/");
+        return arrUrl[1].substring(start);
+    }
 
     /**
-     * Item对象边界区域
+     * Item 对象边界区域
      *
-     * @return	SRect
+     * @return 边界区域
      */
     boundingRect(): SRect {
-        return new SRect(-this.origin.x, -this.origin.y, this.width, this.height);
-    } // Function boundingRect()
+        return new SRect(
+            -this.origin.x,
+            -this.origin.y,
+            this.width,
+            this.height
+        );
+    }
 
     /**
      * 宽高发发生变化
      *
-     * @param   oldSize 改之前的大小
-     * @param   newSize 改之后大小
-     * */
+     * @param oldSize   改之前的大小
+     * @param newSize   改之后大小
+     */
     protected onResize(oldSize: SSize, newSize: SSize): void {
         this.computeImgSize();
         this.update();
-    } // Function onResize()
+    }
 
     /**
-     * Item绘制操作
+     * Item 绘制操作
      *
-     * @param   painter      绘画类
+     * @param painter   绘制对象
      */
     onDraw(painter: SPainter): void {
         painter.translate(-this.origin.x, -this.origin.y);
@@ -250,5 +234,5 @@ export class SImageItem extends SObjectItem {
         painter.pen.color = this.strokeColor;
         painter.brush.color = SColor.Transparent;
         painter.drawRect(0, 0, this.width, this.height);
-    } // Function onDraw()
-} // Class SImageItem
+    }
+}

+ 41 - 37
saga-web-graph/src/items/STextItem.ts

@@ -1,16 +1,16 @@
 import { SObjectItem } from "./SObjectItem";
-import { SPainter, SRect, SColor, SFont, SPoint } from "@saga-web/draw/lib";
+import { SPainter, SRect, SColor, SFont, SPoint } from "@saga-web/draw";
 import { SGraphItem } from "../SGraphItem";
-import { SLineStyle } from "../enums/SLineStyle";
-import { STextOrigin } from "../enums/STextOrigin";
+import { SLineStyle } from "..";
+import { STextOrigin } from "..";
 
 /**
- * 文本item
+ * 文本 item
  *
- * @author  张宇(taohuzy@163.com)
+ * @author  张宇 <taohuzy@163.com>
  */
 export class STextItem extends SObjectItem {
-    /** 记录painter */
+    /** 记录 painter */
     private _painter: SPainter | null = null;
 
     /** 文本内容 */
@@ -79,7 +79,7 @@ export class STextItem extends SObjectItem {
         this.update();
     }
 
-    /** 边框样式    */
+    /** 边框样式 */
     private _borderStyle: SLineStyle = SLineStyle.None;
     get borderStyle(): SLineStyle {
         return this._borderStyle;
@@ -89,7 +89,7 @@ export class STextItem extends SObjectItem {
         this.update();
     }
 
-    /** 原点位置    */
+    /** 原点位置 */
     private _originPosition: STextOrigin = STextOrigin.LeftTop;
     get originPosition(): STextOrigin {
         return this._originPosition;
@@ -105,43 +105,48 @@ export class STextItem extends SObjectItem {
     /**
      * 构造函数
      *
-     * @param   parent      指向父Item
-     * @param   str         文本内容
+     * @param parent      指向父 Item
+     * @param str         文本内容
      */
     constructor(parent: SGraphItem | null, str: string = "") {
         super(parent);
-        this._text = str;
+        this.text = str;
         this._font = new SFont("sans-serif", 12);
         this.height = 12;
-    } // Constructor
+    }
 
     /**
      * 对象边界区域
      *
-     * @return  边界区域
+     * @return 边界区域
      */
     boundingRect(): SRect {
-        return new SRect(-this.origin.x, -this.origin.y, this.width, this.height);
-    } // Function boundingRect()
+        return new SRect(
+            -this.origin.x,
+            -this.origin.y,
+            this.width,
+            this.height
+        );
+    }
 
     /**
      * 移动后处理所有坐标,并肩原点置为场景原点
      *
-     * @param   x   x坐标
-     * @param   y   y坐标
-     * */
+     * @param x   x 坐标
+     * @param y   y 坐标
+     */
     moveToOrigin(x: number, y: number): void {
         this.moveTo(this.x + x, this.y + y);
-    } // Function moveToOrigin()
+    }
 
     /**
-     * 绘制显示状态文本Item
+     * 绘制显示状态文本 Item
      *
-     * @param painter    绘制
+     * @param painter    绘制对象
      */
     protected drawShowText(painter: SPainter): void {
         painter.translate(-this.origin.x, -this.origin.y);
-        //绘制矩形轮廓
+        //绘制矩形轮廓,是否选中
         if (this.selected) {
             painter.shadow.shadowBlur = 10;
             painter.shadow.shadowColor = new SColor(`#00000033`);
@@ -159,19 +164,18 @@ export class STextItem extends SObjectItem {
         painter.brush.color = new SColor(this.color);
         painter.shadow.shadowColor = SColor.Transparent;
         painter.font = this.font;
-        this._textArr.forEach((text: string, index: number) => {
+        this._textArr.forEach((text: string, index: number): void => {
             painter.drawText(
                 text,
-                (this.font.size / 4),
-                index * (this.font.size * 1.25) + (this.font.size / 4),
+                this.font.size / 4,
+                index * (this.font.size * 1.25) + this.font.size / 4,
                 this.maxWidth
             );
         });
-    } // Function drawShowText()
+    }
 
     /**
      * 根据换行切割文本,绘制多行并计算外轮廓宽高
-     *
      */
     protected drawFormatText(): void {
         if (this._painter instanceof SPainter) {
@@ -179,29 +183,29 @@ export class STextItem extends SObjectItem {
             this._painter.font = this.font;
             let textMaxWidth = 0;
             let fontSize: number = this.font.size;
-            this._textArr.forEach((text: string, index: number) => {
+            this._textArr.forEach((text: string, index: number): void => {
                 let textWidth: number = this._painter
-                    ? this._painter.textWidth(text) + (fontSize / 2)
-                    : (fontSize / 2);
+                    ? this._painter.textWidth(text) + fontSize / 2
+                    : fontSize / 2;
                 if (textWidth > textMaxWidth) {
                     textMaxWidth = textWidth;
                 }
             });
             // 在绘制文本后计算文本的宽高
             this.width = textMaxWidth;
-            this.height = (fontSize * 1.25) * this._textArr.length + (fontSize / 8);
+            this.height = fontSize * 1.25 * this._textArr.length + fontSize / 8;
             // 设置原点位置(默认左上角)
-            if (this.originPosition == STextOrigin.Centrum) {
+            if (this.originPosition == STextOrigin.Center) {
                 this.origin = new SPoint(this.width / 2, this.height / 2);
             }
             this._painter.restore();
         }
-    } // Function drawFormatText()
+    }
 
     /**
-     * Item绘制操作
+     * Item 绘制操作
      *
-     * @param   painter      绘画类
+     * @param painter   绘画对象
      */
     onDraw(painter: SPainter): void {
         if (!(this._painter instanceof SPainter)) {
@@ -209,5 +213,5 @@ export class STextItem extends SObjectItem {
             this.drawFormatText();
         }
         this.drawShowText(painter);
-    } // Function onDraw()
-} // Class STextItem
+    }
+}