Browse Source

发布最新版本,添加ctrl+左键移动事件,删除ondraw中rect

haojianlong 5 years ago
parent
commit
0374972e80

+ 27 - 12
package-lock.json

@@ -1,6 +1,6 @@
 {
     "name": "@saga-web/cad-engine",
-    "version": "2.0.270",
+    "version": "2.0.303",
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
@@ -25,24 +25,39 @@
             }
         },
         "@saga-web/base": {
-            "version": "2.1.8",
-            "resolved": "http://dev.dp.sagacloud.cn:8082/repository/npm-saga/@saga-web/base/-/base-2.1.8.tgz",
-            "integrity": "sha512-V9UT6B330kOQzKeYPIizpX9fEIHOMeJ0XFUZrq8tCTUg4Nmhzp1WBSEI9XcDSLS4WYAapVQqYrQ+tuIDeUxN5g=="
+            "version": "2.1.9",
+            "resolved": "http://dev.dp.sagacloud.cn:8082/repository/npm-saga/@saga-web/base/-/base-2.1.9.tgz",
+            "integrity": "sha512-V5Xgh02IFmRgM0/7Hkm34RFS/VHepK7786LefuJLyuRh0B48DNJSPrkBAgad5Rl5VM76c8hSQikiS/fyuy7nDQ=="
         },
         "@saga-web/draw": {
-            "version": "2.1.57",
-            "resolved": "http://dev.dp.sagacloud.cn:8082/repository/npm-saga/@saga-web/draw/-/draw-2.1.57.tgz",
-            "integrity": "sha512-V3UhPKKW0KvpVo3Pou3xVmOInui+IctEGd2khEUXVEOKHuLWIk48dRTc+ZSGnqI9JlcxcoDbjL48lvWZUwrI0A==",
+            "version": "2.1.58",
+            "resolved": "http://dev.dp.sagacloud.cn:8082/repository/npm-saga/@saga-web/draw/-/draw-2.1.58.tgz",
+            "integrity": "sha512-IZpzwRHOO7U48PLexAHLXM8VOTWYxPVIylZ6pFWrKR0U183MXoCmEabS2bX8ivYUULendwBZKTTzfy3TU79IQg==",
             "requires": {
-                "@saga-web/base": "^2.1.8"
+                "@saga-web/base": "^2.1.9"
             }
         },
         "@saga-web/graphy": {
-            "version": "2.1.28",
-            "resolved": "http://dev.dp.sagacloud.cn:8082/repository/npm-saga/@saga-web/graphy/-/graphy-2.1.28.tgz",
-            "integrity": "sha512-NDhg2rb0T/UPzkiYODDE/ONH/TNo8oj+rjem/wPbvab+cl4VxddZVNHU+eXyVeH3FrrEEIUbOcDFsV0pkADCvQ==",
+            "version": "2.1.30",
+            "resolved": "http://dev.dp.sagacloud.cn:8082/repository/npm-saga/@saga-web/graphy/-/graphy-2.1.30.tgz",
+            "integrity": "sha512-mPog2vlYciLZFFt+3XP1NiCrE8yh7KZaI5DO56WA+nbLf1SSKLgfqj+FO/YwAS/DttV+6PSq2PYkFwXvKZEcYw==",
             "requires": {
-                "@saga-web/draw": "^2.1.56"
+                "@saga-web/draw": "^2.1.58"
+            },
+            "dependencies": {
+                "@saga-web/base": {
+                    "version": "2.1.9",
+                    "resolved": "http://dev.dp.sagacloud.cn:8082/repository/npm-saga/@saga-web/base/-/base-2.1.9.tgz",
+                    "integrity": "sha512-V5Xgh02IFmRgM0/7Hkm34RFS/VHepK7786LefuJLyuRh0B48DNJSPrkBAgad5Rl5VM76c8hSQikiS/fyuy7nDQ=="
+                },
+                "@saga-web/draw": {
+                    "version": "2.1.58",
+                    "resolved": "http://dev.dp.sagacloud.cn:8082/repository/npm-saga/@saga-web/draw/-/draw-2.1.58.tgz",
+                    "integrity": "sha512-IZpzwRHOO7U48PLexAHLXM8VOTWYxPVIylZ6pFWrKR0U183MXoCmEabS2bX8ivYUULendwBZKTTzfy3TU79IQg==",
+                    "requires": {
+                        "@saga-web/base": "^2.1.9"
+                    }
+                }
             }
         },
         "@types/eslint-visitor-keys": {

+ 4 - 4
package.json

@@ -1,6 +1,6 @@
 {
     "name": "@saga-web/cad-engine",
-    "version": "2.0.284",
+    "version": "2.0.307",
     "description": "上格云 CAD图形引擎。",
     "main": "lib/index.js",
     "types": "lib/index.d.js",
@@ -31,9 +31,9 @@
         "typescript": "^3.5.3"
     },
     "dependencies": {
-        "@saga-web/base": "2.1.8",
-        "@saga-web/draw": "2.1.57",
-        "@saga-web/graphy": "2.1.28",
+        "@saga-web/base": "2.1.9",
+        "@saga-web/draw": "2.1.58",
+        "@saga-web/graphy": "2.1.30",
         "axios": "^0.18.0",
         "pako": "^1.0.10"
     }

+ 2 - 2
src/DivideFloorScene.ts

@@ -181,7 +181,7 @@ export class DivideFloorScene extends FloorScene {
      */
     addZone(zone: Zone): void {
         let item = new ZoneItem(null, zone);
-        item.zOrder = 10;
+        item.zOrder = 3;
         item.selectable = this.isZoneSelectable;
         this.zoneList.push(item);
         this.addItem(item);
@@ -199,7 +199,7 @@ export class DivideFloorScene extends FloorScene {
     } // Function clearSpaceSelection
 
     /**
-     *  清空选中的空间
+     *  清空选中的业务空间
      *
      */
     clearZoneSelection(): void {

+ 74 - 0
src/FloorView.ts

@@ -0,0 +1,74 @@
+/*
+ * ********************************************************************************************************************
+ *
+ *                      :*$@@%$*:                         ;:                ;;    ;;
+ *                    :@@%!  :!@@%:                       %!             ;%%@@%$ =@@@@@@@%;     @%@@@%%%%@@@@@
+ *                   :@%;       :$=                       %%$$$%$$         ;$$  ;$@=   !@$
+ *                   =@!                                  %!              @ $=;%   !@@@%:      !$$$$$$$$$$$$$$=
+ *                   =@*                                  %!              @ $= % %@=   =%@!      %=
+ *              *$%%! @@=        ;=$%%%$*:                %!              @ $= % =%%%%%%@$      *%:         =%
+ *            %@@!:    !@@@%=$@@@@%!  :*@@$:              %!              @ $= % $*     ;@      @*          :%*
+ *          ;@@!          ;!!!;:         ;@%:      =======@%========*     @ $$ % $%*****$@     :@$=*********=@$
+ *          $@*   ;@@@%=!:                *@*
+ *          =@$    ;;;!=%@@@@=!           =@!
+ *           %@$:      =@%: :*@@@*       %@=                    Copyright (c) 2016-2019.  北京上格云技术有限公司
+ *            ;%@@$=$@@%*       *@@@$=%@@%;
+ *               ::;::             ::;::                                              All rights reserved.
+ *
+ * ********************************************************************************************************************
+ */
+
+import { SGraphyView } from "@saga-web/graphy/lib";
+import { SMouseButton, SMouseEvent } from "@saga-web/base/lib";
+import { SPoint } from "@saga-web/draw/lib";
+
+/**
+ * 楼层场景
+ *
+ * @author  郝建龙
+ */
+export class FloorView extends SGraphyView {
+    /** 鼠标左键键按下时位置 */
+    private _leftKeyPos = new SPoint();
+
+    /**
+     * 鼠标按下事件
+     *
+     * @param   event       事件参数
+     */
+    protected onMouseDown(event: MouseEvent): void {
+        let se = new SMouseEvent(event);
+        if (se.ctrlKey) {
+            if (se.buttons & SMouseButton.LeftButton) {
+                this._leftKeyPos.x = se.x;
+                this._leftKeyPos.y = se.y;
+            }
+        } else {
+            super.onMouseDown(event);
+        }
+    } // Function onMouseDown()
+
+    /**
+     * 鼠标移动事件
+     *
+     * @param   event       事件参数
+     */
+    protected onMouseMove(event: MouseEvent): void {
+        // 如果可以移动
+        if (this.moveable) {
+            // 按左键移动
+            let se = new SMouseEvent(event);
+            if (se.ctrlKey) {
+                if (se.buttons & SMouseButton.LeftButton) {
+                    this.origin.x += se.x - this._leftKeyPos.x;
+                    this.origin.y += se.y - this._leftKeyPos.y;
+                    this._leftKeyPos.x = se.x;
+                    this._leftKeyPos.y = se.y;
+                    return;
+                }
+            } else {
+                super.onMouseMove(event);
+            }
+        }
+    } // Function onMouseMove()
+} // Class FloorScene

+ 7 - 10
src/items/ColumnItem.ts

@@ -98,16 +98,13 @@ export class ColumnItem extends SGraphyItem {
      * Item绘制操作
      *
      * @param   painter       painter对象
-     * @param   rect          绘制区域
      */
-    onDraw(painter: SPainter, rect?: SRect): void {
-        if (this.visible) {
-            painter.pen.color = Opt.columnColor;
-            painter.pen.lineWidth = 10;
-            painter.brush.color = Opt.columnColor;
-            this.pointArr.map(t => {
-                painter.drawPolygon(t);
-            });
-        }
+    onDraw(painter: SPainter): void {
+        painter.pen.color = Opt.columnColor;
+        painter.pen.lineWidth = 10;
+        painter.brush.color = Opt.columnColor;
+        this.pointArr.map(t => {
+            painter.drawPolygon(t);
+        });
     } // Function onDraw()
 } // Class ColumnItem

+ 15 - 18
src/items/DoorItem.ts

@@ -109,24 +109,21 @@ export class DoorItem extends SGraphyItem {
      * Item绘制操作
      *
      * @param   painter       painter对象
-     * @param   rect          绘制区域
      */
-    onDraw(painter: SPainter, rect?: SRect): void {
-        if (this.visible) {
-            painter.translate(this.p.x, this.p.y);
-            painter.rotate(this.ang);
-            painter.pen.lineWidth = 100;
-            painter.pen.color = Opt.doorColor;
-            painter.drawLine(0, 0, this.r, 0);
-            painter.pen.lineDash = [50, 100];
-            // painter.drawArc(
-            //     -this.r,
-            //     -this.r,
-            //     this.r * 2,
-            //     this.r * 2,
-            //     this.startAng,
-            //     this.startAng + Math.PI / 2
-            // );
-        }
+    onDraw(painter: SPainter): void {
+        painter.translate(this.p.x, this.p.y);
+        painter.rotate(this.ang);
+        painter.pen.lineWidth = 100;
+        painter.pen.color = Opt.doorColor;
+        painter.drawLine(0, 0, this.r, 0);
+        painter.pen.lineDash = [50, 100];
+        // painter.drawArc(
+        //     -this.r,
+        //     -this.r,
+        //     this.r * 2,
+        //     this.r * 2,
+        //     this.startAng,
+        //     this.startAng + Math.PI / 2
+        // );
     } // Function onDraw()
 } // Class DoorItem

+ 2 - 4
src/items/MarkItem.ts

@@ -93,9 +93,7 @@ export class MarkerItem extends SGraphyItem {
      * @param   painter       painter对象
      * @param   rect          绘制区域
      */
-    onDraw(painter: SPainter, rect?: SRect): void {
-        if (this.visible) {
-            painter.drawImage(this.Img, -14, -33, this.width, this.height);
-        }
+    onDraw(painter: SPainter): void {
+        painter.drawImage(this.Img, -14, -33, this.width, this.height);
     } // Function onDraw()
 } // Class MarkerItem

+ 1 - 1
src/items/SceneMarkItem.ts

@@ -150,7 +150,7 @@ export class SceneMarkItem extends SGraphyItem {
      * @param   painter       painter对象
      * @param   rect          绘制区域
      */
-    onDraw(painter: SPainter, rect?: SRect): void {
+    onDraw(painter: SPainter): void {
         painter.pen.lineCapStyle = SLineCapStyle.Square;
         if (this.closeFlag) {
             painter.pen.color = SColor.Transparent;

+ 15 - 16
src/items/SpaceItem.ts

@@ -146,22 +146,21 @@ export class SpaceItem extends SGraphyItem {
      * @param   painter       painter对象
      * @param   rect          绘制区域
      */
-    onDraw(painter: SPainter, rect?: SRect): void {
-        if (this.visible) {
-            painter.pen.color = SColor.Transparent;
-            painter.brush.color = this.selected
-                ? this.selectColor
-                : Opt.spaceColor;
-            painter.pen.lineWidth = 200;
-            painter.drawPath(this.path);
+    onDraw(painter: SPainter): void {
+        painter.pen.color = SColor.Transparent;
+        painter.brush.color = this.selected
+            ? this.selectColor
+            : Opt.spaceColor;
+        painter.pen.lineWidth = 200;
+        painter.drawPath(this.path);
 
-            painter.brush.color = SColor.Black;
-            painter.font.size = painter.toPx(10);
-            painter.drawText(
-                this.data.Name,
-                this.data.Location.Points[0].X,
-                -this.data.Location.Points[0].Y
-            );
-        }
+        painter.brush.color = SColor.Black;
+        // painter.font.size = painter.toPx(10);
+        painter.font.size = 500;
+        painter.drawText(
+            this.data.Name,
+            this.data.Location.Points[0].X,
+            -this.data.Location.Points[0].Y
+        );
     } // Function onDraw()
 } // Class SpaceItem

+ 7 - 9
src/items/VirtualWallItem.ts

@@ -100,14 +100,12 @@ export class VirtualWallItem extends SGraphyItem {
      * @param   painter       painter对象
      * @param   rect          绘制区域
      */
-    onDraw(painter: SPainter, rect?: SRect): void {
-        if (this.visible) {
-            painter.pen.lineWidth = 100;
-            painter.pen.color = Opt.virtualWallColor;
-            painter.pen.lineDash = [200, 200];
-            this.pointArr.map(t => {
-                painter.drawPolyline(t);
-            });
-        }
+    onDraw(painter: SPainter): void {
+        painter.pen.lineWidth = 100;
+        painter.pen.color = Opt.virtualWallColor;
+        painter.pen.lineDash = [200, 200];
+        this.pointArr.map(t => {
+            painter.drawPolyline(t);
+        });
     } // Function onDraw()
 } // Class VirtualWall

+ 6 - 8
src/items/WallItem.ts

@@ -101,13 +101,11 @@ export class WallItem extends SGraphyItem {
      * @param   rect          绘制区域
      */
     onDraw(painter: SPainter, rect?: SRect): void {
-        if (this.visible) {
-            painter.pen.color = Opt.wallColor;
-            painter.pen.lineWidth = 10;
-            painter.brush.color = Opt.wallColor;
-            this.pointArr.map(t => {
-                painter.drawPolygon(t);
-            });
-        }
+        painter.pen.color = Opt.wallColor;
+        painter.pen.lineWidth = 10;
+        painter.brush.color = Opt.wallColor;
+        this.pointArr.map(t => {
+            painter.drawPolygon(t);
+        });
     } // Function onDraw()
 } // Class WallItem

+ 4 - 6
src/items/WindowItem.ts

@@ -56,11 +56,9 @@ export class WindowItem extends SGraphyItem {
      * @param   painter       painter对象
      * @param   rect          绘制区域
      */
-    onDraw(painter: SPainter, rect?: SRect): void {
-        if (this.visible) {
-            painter.pen.color = Opt.windowColor;
-            painter.pen.lineWidth = 400;
-            painter.drawPolyline(this.pointArr);
-        }
+    onDraw(painter: SPainter): void {
+        painter.pen.color = Opt.windowColor;
+        painter.pen.lineWidth = 400;
+        painter.drawPolyline(this.pointArr);
     } // Function onDraw()
 } // Class WindowItem