Parcourir la source

添加服务依赖支持文档

zhangweixin il y a 4 ans
Parent
commit
ee16b325a2
100 fichiers modifiés avec 226 ajouts et 3012 suppressions
  1. 0 3
      docs/.vuepress/components/example/web/graph/.idea/.gitignore
  2. 0 6
      docs/.vuepress/components/example/web/graph/.idea/misc.xml
  3. 0 8
      docs/.vuepress/components/example/web/graph/.idea/modules.xml
  4. 0 6
      docs/.vuepress/components/example/web/graph/.idea/vcs.xml
  5. 0 73
      docs/.vuepress/components/example/web/graph/Circle1.vue
  6. 0 61
      docs/.vuepress/components/example/web/graph/DrawLine1.vue
  7. 0 48
      docs/.vuepress/components/example/web/graph/DrawLine2.vue
  8. 0 24
      docs/.vuepress/components/example/web/graph/DrawPolyline1.vue
  9. 0 53
      docs/.vuepress/components/example/web/graph/DrawRect1.vue
  10. 0 53
      docs/.vuepress/components/example/web/graph/MapDemo.vue
  11. 0 184
      docs/.vuepress/components/example/web/graph/scene/Align.vue
  12. 0 193
      docs/.vuepress/components/example/web/graph/scene/ClockItem.vue
  13. 0 64
      docs/.vuepress/components/example/web/graph/scene/ImageItem.vue
  14. 0 56
      docs/.vuepress/components/example/web/graph/scene/PolylineItem.vue
  15. 0 47
      docs/.vuepress/components/example/web/graph/scene/SEditLine.vue
  16. 0 568
      docs/.vuepress/components/example/web/graph/scene/SEditPolygon.vue
  17. 0 234
      docs/.vuepress/components/example/web/graph/scene/SImgTextItem.vue
  18. 0 117
      docs/.vuepress/components/example/web/graph/scene/TextItem.vue
  19. 0 155
      docs/.vuepress/components/example/web/graph/scene/Undo1.vue
  20. 0 82
      docs/.vuepress/components/example/web/graph/style/shadow.vue
  21. 31 27
      docs/.vuepress/config.js
  22. BIN
      docs/.vuepress/public/assets/img/logos.png
  23. 7 0
      docs/dev/lib/README.md
  24. 3 0
      docs/dev/lib/coding/README.md
  25. 20 0
      docs/dev/lib/index.js
  26. 3 0
      docs/dev/lib/web/README.md
  27. 1 0
      docs/dev/lib/web/count.md
  28. 1 0
      docs/dev/lib/web/create.md
  29. 1 0
      docs/dev/lib/web/delete.md
  30. 3 0
      docs/dev/lib/web/filters.md
  31. 155 0
      docs/dev/lib/web/query.md
  32. 1 0
      docs/dev/lib/web/update.md
  33. 0 2
      docs/dev/saga-big/README.md
  34. 0 1
      docs/dev/saga-graphy/README.md
  35. 0 3
      docs/dev/saga-graphy/feng-map/typeIdMap.md
  36. 0 1
      docs/dev/saga-graphy/floor-map/README.md
  37. 0 0
      docs/dev/saga-graphy/floor-map/divide.md
  38. 0 6
      docs/dev/saga-graphy/floor-map/downloadFile.md
  39. BIN
      docs/dev/saga-graphy/floor-map/img/equipLocation.png
  40. BIN
      docs/dev/saga-graphy/floor-map/img/liucheng.png
  41. BIN
      docs/dev/saga-graphy/floor-map/img/space.png
  42. 0 147
      docs/dev/saga-graphy/floor-map/jsonFile.md
  43. 0 10
      docs/dev/saga-graphy/floor-map/mapDemo.md
  44. 0 98
      docs/dev/saga-graphy/floor-map/workLine.md
  45. 0 37
      docs/dev/saga-graphy/graphy-engine/README.md
  46. 0 184
      docs/dev/saga-graphy/graphy-engine/arrow.md
  47. 0 4
      docs/dev/saga-graphy/graphy-engine/clip.md
  48. 0 127
      docs/dev/saga-graphy/graphy-engine/composite.md
  49. 0 4
      docs/dev/saga-graphy/graphy-engine/custom-engine.md
  50. 0 49
      docs/dev/saga-graphy/graphy-engine/draw.md
  51. 0 89
      docs/dev/saga-graphy/graphy-engine/gradient.md
  52. 0 2
      docs/dev/saga-graphy/graphy-engine/image.md
  53. BIN
      docs/dev/saga-graphy/graphy-engine/img/basic-arrow.png
  54. BIN
      docs/dev/saga-graphy/graphy-engine/img/basic-jisuan.png
  55. BIN
      docs/dev/saga-graphy/graphy-engine/img/circle-arrow.png
  56. BIN
      docs/dev/saga-graphy/graphy-engine/img/circle-jisuan.png
  57. BIN
      docs/dev/saga-graphy/graphy-engine/img/copy.png
  58. BIN
      docs/dev/saga-graphy/graphy-engine/img/destination-atop.png
  59. BIN
      docs/dev/saga-graphy/graphy-engine/img/destination-in.png
  60. BIN
      docs/dev/saga-graphy/graphy-engine/img/destination-out.png
  61. BIN
      docs/dev/saga-graphy/graphy-engine/img/destination-over.png
  62. BIN
      docs/dev/saga-graphy/graphy-engine/img/diamond-arrow.png
  63. BIN
      docs/dev/saga-graphy/graphy-engine/img/diamond-jisuan.jpg
  64. BIN
      docs/dev/saga-graphy/graphy-engine/img/draw-engine.png
  65. BIN
      docs/dev/saga-graphy/graphy-engine/img/drawconstruction.png
  66. BIN
      docs/dev/saga-graphy/graphy-engine/img/gradient-attr1.png
  67. BIN
      docs/dev/saga-graphy/graphy-engine/img/gradient-attr2.png
  68. BIN
      docs/dev/saga-graphy/graphy-engine/img/gradient-construction.png
  69. BIN
      docs/dev/saga-graphy/graphy-engine/img/huabishixian.png
  70. BIN
      docs/dev/saga-graphy/graphy-engine/img/huashuajiegou.png
  71. BIN
      docs/dev/saga-graphy/graphy-engine/img/huizhijiegou.png
  72. BIN
      docs/dev/saga-graphy/graphy-engine/img/jianbianjiegou.png
  73. BIN
      docs/dev/saga-graphy/graphy-engine/img/lighter.png
  74. BIN
      docs/dev/saga-graphy/graphy-engine/img/line-gradient.png
  75. BIN
      docs/dev/saga-graphy/graphy-engine/img/line-gradient2.png
  76. BIN
      docs/dev/saga-graphy/graphy-engine/img/mutli-engine.png
  77. BIN
      docs/dev/saga-graphy/graphy-engine/img/radial-gradient.png
  78. BIN
      docs/dev/saga-graphy/graphy-engine/img/radial-gradient2.png
  79. BIN
      docs/dev/saga-graphy/graphy-engine/img/radial-gradient3.png
  80. BIN
      docs/dev/saga-graphy/graphy-engine/img/radial-gradient4.png
  81. BIN
      docs/dev/saga-graphy/graphy-engine/img/radial-gradient5.png
  82. BIN
      docs/dev/saga-graphy/graphy-engine/img/radial-gradient6.png
  83. BIN
      docs/dev/saga-graphy/graphy-engine/img/radial-gradient7.png
  84. BIN
      docs/dev/saga-graphy/graphy-engine/img/source-atop.png
  85. BIN
      docs/dev/saga-graphy/graphy-engine/img/source-in.png
  86. BIN
      docs/dev/saga-graphy/graphy-engine/img/source-out.png
  87. BIN
      docs/dev/saga-graphy/graphy-engine/img/source-over.png
  88. BIN
      docs/dev/saga-graphy/graphy-engine/img/square-arrow.png
  89. BIN
      docs/dev/saga-graphy/graphy-engine/img/square-jisuan.png
  90. BIN
      docs/dev/saga-graphy/graphy-engine/img/triangle-arrow.png
  91. BIN
      docs/dev/saga-graphy/graphy-engine/img/wenbenshixian.png
  92. BIN
      docs/dev/saga-graphy/graphy-engine/img/xor.png
  93. 0 93
      docs/dev/saga-graphy/graphy-engine/style.md
  94. 0 3
      docs/dev/saga-graphy/graphy-engine/text.md
  95. 0 4
      docs/dev/saga-graphy/graphy-engine/transform.md
  96. 0 58
      docs/dev/saga-graphy/index.js
  97. 0 11
      docs/dev/saga-graphy/scene-manage/README.md
  98. 0 16
      docs/dev/saga-graphy/scene-manage/align.md
  99. 0 1
      docs/dev/saga-graphy/scene-manage/items/README.md
  100. 0 0
      docs/dev/saga-graphy/scene-manage/items/clock.md

+ 0 - 3
docs/.vuepress/components/example/web/graph/.idea/.gitignore

@@ -1,3 +0,0 @@
-
-# Default ignored files
-/workspace.xml

+ 0 - 6
docs/.vuepress/components/example/web/graph/.idea/misc.xml

@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="JavaScriptSettings">
-    <option name="languageLevel" value="ES6" />
-  </component>
-</project>

+ 0 - 8
docs/.vuepress/components/example/web/graph/.idea/modules.xml

@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ProjectModuleManager">
-    <modules>
-      <module fileurl="file://$PROJECT_DIR$/.idea/graph.iml" filepath="$PROJECT_DIR$/.idea/graph.iml" />
-    </modules>
-  </component>
-</project>

+ 0 - 6
docs/.vuepress/components/example/web/graph/.idea/vcs.xml

@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="VcsDirectoryMappings">
-    <mapping directory="$PROJECT_DIR$/../../../../../.." vcs="Git" />
-  </component>
-</project>

+ 0 - 73
docs/.vuepress/components/example/web/graph/Circle1.vue

@@ -1,73 +0,0 @@
-<template>
-    <canvas id="circle" width="740" height="250" />
-</template>
-
-<script lang="ts">
-    import {SCanvasView, SColor, SPainter, SRect, SLineCapStyle} from "@saga-web/draw/lib";
-
-    class TestView extends SCanvasView {
-
-        constructor() {
-            super("circle")
-        }
-
-        onDraw(canvas: SPainter): void {
-            canvas.clearRect(new SRect(0,0,800,400));
-
-            canvas.pen.color = SColor.Blue;
-            canvas.brush.color = SColor.Red;
-            canvas.drawCircle(100,100,50);
-
-            canvas.pen.lineWidth = 10;
-            canvas.pen.lineDash = [10,11];
-            canvas.pen.lineCapStyle = SLineCapStyle.Butt;
-            canvas.pen.color = new SColor("#585858");
-            canvas.brush.color = new SColor("#585858");
-
-            canvas.pen.dashOffset = new Date().getTime()/50%60;
-            canvas.drawCircle(230,100,40);
-
-            canvas.pen.dashOffset = -new Date().getTime()/50%60;
-            canvas.drawCircle(315,100,40);
-
-            canvas.pen.color = SColor.Transparent;
-            canvas.brush.color = SColor.White;
-            canvas.drawCircle(230,100,15);
-            canvas.drawCircle(315,100,15);
-
-            canvas.pen.color = SColor.Red;
-            for (let i = 0; i < 360; i += 10) {
-                let q1 = i * Math.PI / 180;
-                let q2 = (i + 120) * Math.PI / 180;
-                canvas.drawLine(
-                    450 + 50 * Math.cos(q1),
-                    100 + 50 * Math.sin(q1),
-                    450 + 50 * Math.cos(q2),
-                    100 + 50 * Math.sin(q2));
-            }
-
-            canvas.pen.color = SColor.Blue;
-            for (let i = 0; i < 360; i += 10) {
-                let q = i * Math.PI / 180;
-                canvas.drawLine(
-                    650,
-                    100,
-                    650 + 50 * Math.cos(q),
-                    100 + 50 * Math.sin(q));
-            }
-
-            this.update();
-        }
-    }
-
-    export default {
-        name: "Circle1",
-        mounted(): void {
-            new TestView();
-        }
-    }
-</script>
-
-<style scoped>
-
-</style>

+ 0 - 61
docs/.vuepress/components/example/web/graph/DrawLine1.vue

@@ -1,61 +0,0 @@
-<template>
-    <canvas id="drawLine1" width="800" height="100" />
-</template>
-
-<script lang="ts">
-    import { SCanvasView, SColor, SPainter } from "@saga-web/draw/lib";
-
-    class TestView extends SCanvasView {
-
-        constructor() {
-            super("drawLine1")
-        }
-
-        onDraw(canvas: SPainter): void {
-            // 清除画布
-            canvas.clearRect(0,0,800,100);
-
-            // 在此编写绘制操作相关命令
-            canvas.drawLine(0,0, 100, 100);
-
-            canvas.pen.lineWidth = 1;
-
-            canvas.pen.color = SColor.Blue;
-            for (let i = 0; i < 360; i += 10) {
-                let q = i * Math.PI / 180;
-                canvas.drawLine(
-                    200,
-                    50,
-                    200 + 50 * Math.cos(q),
-                    50 + 50 * Math.sin(q));
-            }
-
-            canvas.pen.color = SColor.Red;
-            for (let i = 0; i < 360; i += 10) {
-                let q1 = i * Math.PI / 180;
-                let q2 = (i + 120) * Math.PI / 180;
-                canvas.drawLine(
-                    350 + 50 * Math.cos(q1),
-                    50 + 50 * Math.sin(q1),
-                    350 + 50 * Math.cos(q2),
-                    50 + 50 * Math.sin(q2));
-            }
-
-            canvas.pen.color = new SColor('#03a9f4');
-            canvas.pen.lineWidth = 5;
-            canvas.drawLine(450, 50, 700, 50);
-            canvas.pen.lineWidth = 3;
-            canvas.pen.dashOffset = new Date().getTime()/50%80;
-            canvas.pen.lineDash = [30,50];
-            canvas.pen.color = SColor.White;
-            canvas.drawLine(450, 50, 700, 50);
-            this.update();
-        }
-    }
-
-    export default {
-        mounted() {
-            new TestView();
-        }
-    }
-</script>

+ 0 - 48
docs/.vuepress/components/example/web/graph/DrawLine2.vue

@@ -1,48 +0,0 @@
-<template>
-    <canvas id="drawLine2" width="800" height="100" />
-</template>
-
-<script lang="ts">
-    import { SCanvasView, SColor, SPainter } from "@saga-web/draw/lib";
-
-    class TestView extends SCanvasView {
-
-        constructor() {
-            super("drawLine2")
-        }
-
-        onDraw(canvas: SPainter): void {
-            // 在此编写绘制操作相关命令
-            canvas.drawLine(0,0, 100, 100);
-
-            canvas.pen.lineWidth = 1;
-
-            canvas.pen.color = SColor.Blue;
-            for (let i = 0; i < 360; i += 10) {
-                let q = i * Math.PI / 180;
-                canvas.drawLine(
-                    200,
-                    50,
-                    200 + 50 * Math.cos(q),
-                    50 + 50 * Math.sin(q));
-            }
-
-            canvas.pen.color = SColor.Red;
-            for (let i = 0; i < 360; i += 10) {
-                let q1 = i * Math.PI / 180;
-                let q2 = (i + 120) * Math.PI / 180;
-                canvas.drawLine(
-                    350 + 50 * Math.cos(q1),
-                    50 + 50 * Math.sin(q1),
-                    350 + 50 * Math.cos(q2),
-                    50 + 50 * Math.sin(q2));
-            }
-        }
-    }
-
-    export default {
-        mounted() {
-            new TestView();
-        }
-    }
-</script>

+ 0 - 24
docs/.vuepress/components/example/web/graph/DrawPolyline1.vue

@@ -1,24 +0,0 @@
-<template>
-    <canvas id="drawPolyline1" width="800" height="100" />
-</template>
-
-<script lang="ts">
-    import {SCanvasView, SColor, SPainter, SPoint} from "@saga-web/draw/lib";
-
-    class TestView extends SCanvasView {
-        arr:SPoint[]=[new SPoint(10,10),new SPoint(10,40),new SPoint(30,30)]
-        constructor() {
-            super("drawPolyline1")
-        }
-
-        onDraw(canvas: SPainter): void {
-            canvas.drawPolyline(this.arr);
-        }
-    }
-
-    export default {
-        mounted() {
-            new TestView();
-        }
-    }
-</script>

+ 0 - 53
docs/.vuepress/components/example/web/graph/DrawRect1.vue

@@ -1,53 +0,0 @@
-<template>
-    <canvas id="drawRect1" width="800" height="180" />
-</template>
-
-<script lang="ts">
-    import { SCanvasView, SColor, SPainter, SPoint, SRect, SSize } from "@saga-web/draw/lib";
-
-    class TestView extends SCanvasView {
-
-        constructor() {
-            super("drawRect1")
-        }
-
-        onDraw(canvas: SPainter): void {
-            canvas.clearRect(0,0,800,200);
-
-            canvas.pen.color = SColor.Blue;
-            canvas.brush.color = SColor.Red;
-            canvas.drawRect(10, 10, 80, 80);
-
-            canvas.pen.color = SColor.Transparent;
-            canvas.brush.color = SColor.Red;
-            canvas.drawRect(new SPoint(110, 10), new SSize(80, 80));
-
-            canvas.pen.color = SColor.Blue;
-            canvas.brush.color = SColor.Transparent;
-            canvas.drawRect(new SRect(210, 10, 80, 80));
-
-            canvas.pen.lineWidth = 1;
-            canvas.pen.color = SColor.Blue;
-            canvas.brush.color = SColor.Transparent;
-            for (let i = 1; i < 100; i += 10) {
-                canvas.drawRect(310 + i, i, 80, 80);
-            }
-
-            canvas.pen.lineWidth = 2;
-            canvas.pen.color = SColor.Blue;
-            canvas.brush.color = SColor.Red;
-            let k = new Date().getTime()/100%10;
-            for (let i = 1; i < k*10; i += 10) {
-                canvas.drawRect(510 + i, i, 80, 80);
-            }
-
-            this.update();
-        }
-    }
-
-    export default {
-        mounted() {
-            new TestView();
-        }
-    }
-</script>

+ 0 - 53
docs/.vuepress/components/example/web/graph/MapDemo.vue

@@ -1,53 +0,0 @@
-<template>
-    <div>
-        <el-button @click="showMap(1)">查看地图1</el-button>
-        <el-button @click="showMap(2)">查看地图2</el-button>
-        <canvas id="mapDemo" width="740" height="400" tabindex="0"></canvas>
-    </div>
-</template>
-
-<script>
-    import { SGraphScene, SGraphView } from "@saga-web/graph/lib";
-    import { SFloorParser } from "@saga-web/big/lib";
-    export default {
-        name: "mapDemo",
-        data(){
-            return{
-                view:null,
-                scene:null,
-                map1: require('../../../../public/assets/map/1.json'),
-                map2: require('../../../../public/assets/map/2.json'),
-            }
-        },
-        mounted(){
-            this.view = new SGraphView("mapDemo");
-            this.init()
-        },
-        methods:{
-            init(){
-                this.showMap(1);
-            },
-            showMap(id){
-                this.scene = new SGraphScene();
-                this.view.scene = this.scene;
-                let parser = new SFloorParser();
-                parser.parseData(this[`map${id}`].EntityList[0].Elements);
-                parser.spaceList.forEach(t => this.scene.addItem(t));
-                parser.wallList.forEach(t => this.scene.addItem(t));
-                parser.virtualWallList.forEach(t => this.scene.addItem(t));
-                parser.doorList.forEach(t => this.scene.addItem(t));
-                parser.columnList.forEach(t => this.scene.addItem(t));
-                parser.casementList.forEach(t => this.scene.addItem(t));
-                this.view.fitSceneToView();
-            }
-        }
-    }
-</script>
-
-
-<style scoped>
-    canvas{
-        border: 1px solid #eeeeee;
-        outline: none;
-    }
-</style>

+ 0 - 184
docs/.vuepress/components/example/web/graph/scene/Align.vue

@@ -1,184 +0,0 @@
-<template>
-    <div>
-        <el-button @click="addCircle">Circle</el-button>
-        <el-button @click="addRect">Rect</el-button>
-        <el-select placeholder="请选择" @change="changeAlign" v-model="value">
-            <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
-        </el-select>
-        <canvas id="align" width="740" height="400" tabindex="0"></canvas>
-    </div>
-</template>
-
-<script>
-    import {SGraphItem, SGraphScene, SGraphView, SGraphLayoutType} from "@saga-web/graph/lib";
-    import { SColor, SPainter, SRect } from "@saga-web/draw/lib";
-
-    class RectItem extends SGraphItem {
-        width = 200;
-        height = 100;
-        text = '';
-        constructor(parent) {
-            super(parent);
-            this.moveable = true;
-            this.selectable = true;
-            this.text = new Date().getMilliseconds().toString()
-        }
-
-        boundingRect() {
-            return new SRect(0, 0, this.width, this.height);
-        }
-
-        onDraw(canvas) {
-            canvas.pen.color = SColor.Transparent;
-            canvas.pen.lineWidth = canvas.toPx(1);
-            canvas.brush.color = this.selected ? SColor.Red : new SColor("#00fcee");
-            canvas.drawRect(0, 0, this.width, this.height);
-
-            canvas.pen.lineDash = [10,10];
-            canvas.pen.color = SColor.Yellow;
-            canvas.brush.color = SColor.Transparent;
-            canvas.drawRect(this.boundingRect());
-
-            canvas.brush.color = SColor.Black;
-            canvas.drawText(`${this.x},${this.y}`,0,0);
-
-        }
-    }
-
-    class CircleItem extends SGraphItem {
-        r = 75;
-        text = '';
-
-        constructor(parent) {
-            super(parent);
-            this.moveable = true;
-            this.selectable = true;
-            this.text = new Date().getMilliseconds().toString()
-        }
-
-        boundingRect() {
-            return new SRect(0, 0, this.r * 2, this.r * 2);
-        }
-
-        onDraw(canvas) {
-            canvas.pen.color = SColor.Transparent;
-            canvas.pen.lineWidth = canvas.toPx(1);
-            canvas.brush.color = this.selected ? SColor.Red : new SColor("#00fcee");
-            canvas.drawCircle(this.r, this.r, this.r);
-
-            canvas.pen.color = SColor.Yellow;
-            canvas.brush.color = SColor.Transparent;
-            canvas.pen.lineDash = [10,10];
-            canvas.drawRect(this.boundingRect());
-
-            canvas.brush.color = SColor.Black;
-            canvas.drawText(`${this.x},${this.y}`,0,0);
-        }
-    }
-
-    class SScene extends SGraphScene {
-        /** 定义命令 */
-        cmd = 0;
-
-        constructor() {
-            super();
-        }
-
-
-        onMouseUp(event) {
-            switch(this.cmd) {
-                case 1:
-                    this.addCircle(event.x, event.y);
-                    break;
-                case 2:
-                    this.addRect(event.x, event.y);
-                    break;
-                default:
-                    super.onMouseUp(event);
-            }
-            this.cmd = 0;
-            return false
-        }
-
-        addCircle(x, y) {
-            let item = new CircleItem(null);
-            item.moveTo(x - 50, y - 50);
-            this.addItem(item);
-        }
-
-        addRect(x, y) {
-            let item = new RectItem(null);
-            item.moveTo(x - 50, y - 50);
-            this.addItem(item);
-        }
-    }
-
-    class TestView extends SGraphView {
-        constructor() {
-            super("align");
-        }
-    }
-
-    export default {
-        data() {
-            return {
-                scene: new SScene(),
-                value: -1,
-                options:[
-                    {
-                        value:SGraphLayoutType.Left,
-                        label:'左对齐'
-                    },
-                    {
-                        value:SGraphLayoutType.Right,
-                        label:'右对齐'
-                    },
-                    {
-                        value:SGraphLayoutType.Top,
-                        label:'顶对齐'
-                    },
-                    {
-                        value:SGraphLayoutType.Bottom,
-                        label:'底对齐'
-                    },
-                    {
-                        value:SGraphLayoutType.Center,
-                        label:'水平居中对齐'
-                    },
-                    {
-                        value:SGraphLayoutType.Middle,
-                        label:'垂直居中对齐'
-                    },
-                    {
-                        value:SGraphLayoutType.Vertical,
-                        label:'垂直分布'
-                    },
-                    {
-                        value:SGraphLayoutType.Horizontal,
-                        label:'水平分布'
-                    }
-                ]
-            }
-        },
-        mounted() {
-            let view = new TestView();
-            view.scene = this.scene;//new SScene(); //this.data.scene;
-        },
-        methods: {
-            addCircle() {
-                this.scene.cmd = 1;
-            },
-            addRect() {
-                this.scene.cmd = 2;
-            },
-            changeAlign(v){
-                this.scene.selectContainer.layout(v)
-                // console.log(this.scene.selectContainer.layout(SGraphLayoutType.Left))
-            }
-        }
-    }
-</script>
-
-<style scoped>
-
-</style>

+ 0 - 193
docs/.vuepress/components/example/web/graph/scene/ClockItem.vue

@@ -1,193 +0,0 @@
-<template>
-    <canvas id="clockItem1" width="400" height="400" />
-</template>
-
-<script lang="ts">
-    import { SColor, SPainter, SRect } from "@saga-web/draw";
-    import { SGraphItem, SGraphScene, SGraphView } from "@saga-web/graph";
-
-    class ClockItem extends SGraphItem {
-        /** 宽度 */
-        width = 100;
-        /** 高度 */
-        height = 100;
-
-        /** 半径 */
-        get radius(): number {
-            return Math.min(this.width, this.height) / 2.0;
-        }
-
-        /**
-         * 构造函数
-         *
-         * @param   parent      指向父Item
-         * @param   width       宽度
-         * @param   height      高度
-         */
-        constructor(parent: SGraphItem | null, width: number, height: number) {
-            super(parent);
-            this.width = width;
-            this.height = height;
-        }
-
-        /**
-         * 对象边界区域
-         *
-         * @return  边界区域
-         */
-        boundingRect(): SRect {
-            return new SRect(0, 0, this.width, this.height);
-        }
-
-        /**
-         * Item绘制操作
-         *
-         * @param   canvas      画布
-         */
-        onDraw(canvas: SPainter): void {
-            canvas.translate(this.width / 2, this.height / 2);
-            const t = new Date();
-            this.drawScale(canvas);
-            this.drawHour(canvas, t.getHours(), t.getMinutes(), t.getSeconds());
-            this.drawMinute(canvas, t.getMinutes(), t.getSeconds());
-            this.drawSecond(canvas, t.getSeconds() + t.getMilliseconds() / 1000.0);
-
-            this.update();
-        }
-
-        /**
-         * 绘制表刻度
-         *
-         * @param   canvas      画布
-         */
-        private drawScale(canvas: SPainter): void {
-            const scaleLength = Math.max(this.radius / 10.0, 2.0);
-            const scaleLength1 = scaleLength * 1.2;
-            const strokeWidth = Math.max(this.radius / 100.0, 2.0);
-            const strokeWidth1 = strokeWidth * 2.0;
-
-            canvas.save();
-            canvas.pen.color = SColor.Blue;
-
-            for (let i = 1; i <= 12; i++) {
-                // 12小时刻度
-                canvas.pen.lineWidth = strokeWidth1;
-                canvas.drawLine(
-                    0,
-                    -this.radius,
-                    0,
-                    -this.radius + scaleLength1
-                );
-
-                if (this.radius >= 40) {
-                    // 如果半度大于40显示分钟刻度
-                    canvas.rotate((6 * Math.PI) / 180);
-                    for (let j = 1; j <= 4; j++) {
-                        // 分钟刻度
-                        canvas.pen.lineWidth = strokeWidth;
-                        canvas.drawLine(
-                            0,
-                            -this.radius,
-                            0,
-                            -this.radius + scaleLength
-                        );
-                        canvas.rotate((6 * Math.PI) / 180);
-                    }
-                } else {
-                    canvas.rotate((30 * Math.PI) / 180);
-                }
-            }
-
-            canvas.restore();
-        }
-
-        /**
-         * 绘制时针
-         *
-         * @param   canvas      画布
-         * @param   hour        时
-         * @param   minute      分
-         * @param   second      秒
-         */
-        private drawHour(
-            canvas: SPainter,
-            hour: number,
-            minute: number,
-            second: number
-        ): void {
-            canvas.save();
-            canvas.pen.color = SColor.Black;
-            canvas.rotate(
-                ((hour * 30.0 + (minute * 30.0) / 60 + (second * 30.0) / 3600) *
-                    Math.PI) /
-                180
-            );
-            canvas.drawLine(
-                0,
-                this.radius / 10.0,
-                0,
-                -this.radius / 2.0
-            );
-            canvas.restore();
-        }
-
-        /**
-         * 绘制秒针
-         *
-         * @param   canvas      画布
-         * @param   minute      分
-         * @param   second      秒
-         */
-        private drawMinute(canvas: SPainter, minute: number, second: number): void {
-            canvas.save();
-            canvas.pen.color = SColor.Black;
-            canvas.rotate(((minute * 6 + (second * 6) / 60.0) * Math.PI) / 180);
-            canvas.drawLine(
-                0,
-                this.radius / 10.0,
-                0,
-                (-this.radius * 2.0) / 3.0
-            );
-            canvas.restore();
-        }
-
-        /**
-         * 绘制秒针
-         *
-         * @param   canvas      画布
-         * @param   second      秒
-         */
-        private drawSecond(canvas: SPainter, second: number): void {
-            canvas.save();
-            canvas.pen.color = SColor.Red;
-            canvas.rotate((second * 6 * Math.PI) / 180);
-            canvas.drawLine(
-                0,
-                this.radius / 5.0,
-                0,
-                -this.radius + this.radius / 10.0
-            );
-            canvas.restore();
-        }
-    }
-
-    class TestView extends SGraphView {
-        clock1 = new ClockItem(null, 300, 300);
-
-        constructor() {
-            super("clockItem1");
-            this.scene = new SGraphScene();
-            this.scene.addItem(this.clock1);
-        }
-    }
-
-    export default {
-        mounted(): void {
-            new TestView();
-        }
-    }
-</script>
-
-<style scoped>
-
-</style>

+ 0 - 64
docs/.vuepress/components/example/web/graph/scene/ImageItem.vue

@@ -1,64 +0,0 @@
-<template>
-    <div>
-        <el-row>
-            <el-button @click="Full">铺满</el-button>
-            <el-button @click="Equivalency">等比缩放</el-button>
-            <el-button @click="AutoFit">自适应</el-button>
-        </el-row>
-        <canvas id="ImageItem1" width="740" height="400"/>
-    </div>
-</template>
-
-<script lang="ts">
-    import { SGraphScene, SGraphView, SImageShowType, SImageItem } from "@saga-web/graph";
-
-    class SScene extends SGraphScene {
-        imageItem: SImageItem = new SImageItem(null);
-        constructor() {
-            super();
-            this.imageItem.moveable = true;
-            this.imageItem.width = 400;
-            this.imageItem.height = 300;
-            this.imageItem.url = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1591685374103&di=cd5a56b2e3f5e12d7145b967afbcfb7a&imgtype=0&src=http%3A%2F%2Fcdn.duitang.com%2Fuploads%2Fitem%2F201408%2F05%2F20140805191039_cuTPn.jpeg";
-            this.addItem(this.imageItem);
-        }
-    }
-
-    class ImageView extends SGraphView {
-        constructor() {
-            super("ImageItem1");
-        }
-    }
-
-    export default {
-        mounted(): void {
-            let view = new ImageView();
-            // @ts-ignore
-            view.scene = this.scene;
-            view.fitSceneToView();
-        },
-        data() {
-            return {
-                scene: new SScene(),
-            }
-        },
-        methods: {
-            Full() {
-                // @ts-ignore
-                this.scene.imageItem.showType = SImageShowType.Full;
-            },
-            Equivalency() {
-                // @ts-ignore
-                this.scene.imageItem.showType = SImageShowType.Equivalency;
-            },
-            AutoFit() {
-                // @ts-ignore
-                this.scene.imageItem.showType = SImageShowType.AutoFit;
-            },
-        }
-    }
-</script>
-
-<style scoped>
-
-</style>

+ 0 - 56
docs/.vuepress/components/example/web/graph/scene/PolylineItem.vue

@@ -1,56 +0,0 @@
-<template>
-    <div>
-        <el-button size="mini" @click="init">清空画布,并初始化折线item</el-button>
-        <el-button size="mini" @click="undo">undo</el-button>
-        <el-button size="mini" @click="redo">redo</el-button>
-        <canvas id="editPolyline" width="740" height="400" tabindex="0"></canvas>
-    </div>
-</template>
-
-<script>
-    import {SGraphScene, SGraphView} from "@saga-web/graph/lib";
-    import {SPolylineItem,SItemStatus} from "@saga-web/big/lib";
-    export default {
-        name: "editPolyline",
-        data() {
-            return {
-                scene: null,
-                view: null,
-                item: null,
-            };
-        },
-        mounted() {
-            this.view = new SGraphView("editPolyline");
-            this.scene = new SGraphScene();
-            this.view.scene = this.scene;
-            this.init()
-        },
-        methods:{
-            init(){
-                this.scene.root.children = [];
-                this.item = new SPolylineItem(null,[]);
-                this.item.status = SItemStatus.Create;
-                this.scene.addItem(this.item);
-                this.scene.grabItem = this.item;
-                this.view.update();
-            },
-            undo(){
-                if(this.scene.grabItem) {
-                    this.scene.grabItem.undo()
-                }
-            },
-            redo(){
-                if(this.scene.grabItem) {
-                    this.scene.grabItem.redo()
-                }
-            }
-        }
-    }
-</script>
-
-<style scoped>
-canvas{
-    border: 1px solid #eeeeee;
-    outline: none;
-}
-</style>

+ 0 - 47
docs/.vuepress/components/example/web/graph/scene/SEditLine.vue

@@ -1,47 +0,0 @@
-<template>
-    <div>
-        <el-button @click="create">创建</el-button>
-        <el-button @click="undo">undo</el-button>
-        <el-button @click="redo">redo</el-button>
-        <canvas id="editLine" width="740" height="400"  tabindex="0" />
-    </div>
-</template>
-<script>
-    import { SGraphScene, SGraphView } from "@saga-web/graph/";
-    import { SItemStatus } from "@saga-web/big/lib/enums/SItemStatus";
-    import { SLineItem } from "@saga-web/big/lib";
-
-    export default {
-        data() {
-            return {
-                scene: null,
-                view: null
-            };
-        },
-        mounted() {
-            this.view = new SGraphView("editLine");
-            this.scene = new SGraphScene();
-            this.view.scene = this.scene;
-        },
-        methods: {
-            create() {
-                this.scene.root.children = [];
-                const lineItem = new SLineItem(null, [] );
-                lineItem.status = SItemStatus.Create;
-                this.scene.addItem(lineItem);
-                this.scene.grabItem = lineItem;
-                this.view.fitSceneToView();
-            },
-            undo(){
-                if(this.scene.grabItem) {
-                    this.scene.grabItem.undo();
-                }
-            },
-            redo(){
-                if(this.scene.grabItem) {
-                    this.scene.grabItem.redo();
-                }
-            }
-        }
-    };
-</script>

+ 0 - 568
docs/.vuepress/components/example/web/graph/scene/SEditPolygon.vue

@@ -1,568 +0,0 @@
-<template>
-  <div>
-    <el-button @click="show">展示</el-button>
-    <el-button @click="create">创建</el-button>
-    <el-button @click="edit">编辑</el-button>
-    <canvas id="editPolygon" width="800" height="400"  tabindex="0" />
-  </div>
-</template>
-<script lang='ts'>
-import { SGraphItem, SGraphView, SGraphScene } from "@saga-web/graph/";
-import { SMouseEvent } from "@saga-web/base/";
-import {
-  SColor,
-  SLineCapStyle,
-  SPainter,
-  SPath2D,
-  SPoint,
-  SPolygonUtil,
-  SRect,
-  SLine
-} from "@saga-web/draw";
-import { SRelationState } from "@saga-web/big/lib/enums/SRelationState";
-import { SMathUtil } from "@saga-web/big/lib/utils/SMathUtil";
-
-export default {
-  data() {
-    return {
-      scene: null,
-      view: null
-    };
-  },
-  mounted(): void {
-    this.view = new SGraphView("editPolygon");
-  },
-  methods: {
-    show() {
-      const scene = new SGraphScene();
-      this.view.scene = scene;
-      const spolygonItem = new SPolygonItem(null);
-      spolygonItem.setStatus = SRelationState.Normal;
-      const PointList: SPoint[] = [
-        new SPoint(0, 0),
-        new SPoint(50, 0),
-        new SPoint(50, 50),
-        new SPoint(0, 50)
-      ];
-      spolygonItem.setPointList = PointList;
-      scene.addItem(spolygonItem);
-      this.view.fitSceneToView();
-    },
-    create() {
-      const scene = new SGraphScene();
-      this.view.scene = scene;
-      const spolygonItem = new SPolygonItem(null);
-      spolygonItem.setStatus = SRelationState.Create;
-      scene.addItem(spolygonItem);
-      scene.grabItem = spolygonItem;
-      this.view.fitSceneToView();
-    },
-    edit() {
-      const scene = new SGraphScene();
-      this.view.scene = scene;
-      const spolygonItem = new SPolygonItem(null);
-      spolygonItem.setStatus = SRelationState.Edit;
-      const PointList: SPoint[] = [
-        new SPoint(0, 0),
-        new SPoint(50, 0),
-        new SPoint(50, 60),
-        new SPoint(0, 50)
-      ];
-      spolygonItem.setPointList = PointList;
-      scene.addItem(spolygonItem);
-      scene.grabItem = spolygonItem;
-      this.view.fitSceneToView();
-    }
-  }
-};
-
-/**
- * @author hanyaolong
- */
-
-class SPolygonItem extends SGraphItem {
-  /** X坐标最小值  */
-  private minX = Number.MAX_SAFE_INTEGER;
-  /** X坐标最大值  */
-  private maxX = Number.MIN_SAFE_INTEGER;
-  /** Y坐标最小值  */
-  private minY = Number.MAX_SAFE_INTEGER;
-  /** Y坐标最大值  */
-  private maxY = Number.MIN_SAFE_INTEGER;
-  /** 轮廓线坐标  */
-  private pointList: SPoint[] = [];
-  // 获取当前状态
-  get getPointList(): SPoint[] {
-    return this.pointList;
-  }
-  // 编辑当前状态
-  set setPointList(arr: SPoint[]) {
-    this.pointList = arr;
-    if (arr) {
-      this._xyzListToSPointList(arr);
-    }
-    this.update();
-  }
-  /** 是否闭合    */
-  closeFlag: boolean = false;
-  // 当前状态 1:show 2 创建中,3 编辑中
-  _status: number = SRelationState.Normal;
-  // 获取当前状态
-  get getStatus(): number {
-    return this._status;
-  }
-  // 编辑当前状态
-  set setStatus(value: number) {
-    this._status = value;
-    this.update();
-  }
-  /** 边框颜色 */
-  borderColor: SColor = new SColor("#0091FF");
-  /** 填充颜色 */
-  brushColor: SColor = new SColor("#1EE887");
-  /** border宽 只可输入像素宽*/
-  borderLine: number = 4;
-  /** 鼠标移动点  */
-  private lastPoint = new SPoint();
-  /** 当前鼠标获取顶点对应索引 */
-  private curIndex: number = -1;
-  /** 灵敏像素 */
-  private len: number = 15;
-  /** 场景像素  */
-  private scenceLen: number = 15;
-  /** 场景像素  */
-  private isAlt: boolean = false;
-
-  /**
-   * 构造函数
-   *
-   * @param parent    指向父对象
-   */
-
-  constructor(parent: SGraphItem | null) {
-    super(parent);
-  }
-
-  ///////////////以下为对pointList 数组的操作方法
-
-  /**
-   * 储存新的多边形顶点
-   * @param x   点位得x坐标
-   * @param y   点位得y坐标
-   * @param i   储存所在索引
-   * @return SPoint
-   */
-
-  insertPoint(x: number, y: number, i: number | null = null): SPoint {
-    const point = new SPoint(x, y);
-    if (i == null) {
-      this.pointList.push(point);
-    } else {
-      this.pointList.splice(i, 0, point);
-    }
-    this.update();
-    return point;
-  }
-
-  /**
-   * 删除点位
-   * @param i   删除点所在的索引
-   * @return SPoint
-   */
-
-  deletePoint(i: number | null = null): SPoint | null | undefined {
-    let point = null;
-    if (i != null) {
-      if (this.pointList.length - 1 >= i) {
-        point = this.pointList[i];
-        this.pointList.splice(i, 1);
-      } else {
-        point = null;
-      }
-    } else {
-      point = this.pointList.pop();
-    }
-    this.update();
-    return point;
-  }
-
-  /**
-   * 多边形顶点的移动位置
-   * @param x   点位得x坐标
-   * @param y   点位得y坐标
-   * @param i   点位得i坐标
-   * @return SPoint
-   */
-
-  movePoint(x: number, y: number, i: number): SPoint | null | undefined {
-    let point = null;
-    if (this.pointList.length) {
-      this.pointList[i].x = x;
-      this.pointList[i].y = y;
-    }
-    point = this.pointList[i];
-    return point;
-  }
-
-  /**
-   * 打印出多边形数组
-   * @return SPoint[]
-   */
-
-  PrintPointList(): SPoint[] {
-    return this.pointList;
-  }
-
-  ///////////////////////////
-
-  /**
-   * xyz数据转换为SPoint格式函数;获取外接矩阵参数
-   *
-   * @param arr    外层传入的数据PointList
-   */
-
-  protected _xyzListToSPointList(arr: SPoint[]): void {
-    if (arr.length) {
-      this.pointList = arr.map(it => {
-        let x = it.x,
-          y = it.y;
-        if (x < this.minX) {
-          this.minX = x;
-        }
-        if (y < this.minY) {
-          this.minY = y;
-        }
-        if (x > this.maxX) {
-          this.maxX = x;
-        }
-        if (y > this.maxY) {
-          this.maxY = y;
-        }
-        return new SPoint(x, y);
-      });
-    } else {
-      this.pointList = [];
-    }
-  }
-
-  ////////////以下为三种状态下的绘制多边形方法
-
-  /**
-   * 展示状态 --绘制多边形数组
-   * @param painter    绘制类
-   * @param pointList    绘制多边形数组
-   *
-   */
-
-  protected drawShowPolygon(painter: SPainter, pointList: SPoint[]): void {
-    painter.pen.lineCapStyle = SLineCapStyle.Square;
-    painter.pen.color = this.borderColor;
-    painter.pen.lineWidth = painter.toPx(this.borderLine);
-    painter.brush.color = this.brushColor;
-    painter.drawPolygon([...pointList]);
-  }
-
-  /**
-   *
-   * 创建状态 --绘制多边形数组
-   * @param painter    绘制类
-   * @param pointList    绘制多边形数组
-   *
-   */
-
-  protected drawCreatePolygon(painter: SPainter, pointList: SPoint[]): void {
-    painter.pen.lineCapStyle = SLineCapStyle.Square;
-    painter.pen.color = this.borderColor;
-    painter.pen.lineWidth = painter.toPx(4);
-    painter.drawPolyline(pointList);
-    if (this.lastPoint) {
-      painter.drawLine(pointList[pointList.length - 1], this.lastPoint);
-    }
-    painter.pen.color = SColor.Transparent;
-    painter.brush.color = this.brushColor;
-    painter.pen.lineWidth = painter.toPx(4);
-    painter.drawPolygon([...pointList, this.lastPoint]);
-  }
-
-  /**
-   *
-   * 编辑状态 --绘制多边形数组
-   *
-   * @param painter    绘制类
-   * @param pointList    绘制多边形数组
-   *
-   * */
-
-  protected drawEditPolygon(painter: SPainter, pointList: SPoint[]): void {
-    // 展示多边形
-    this.drawShowPolygon(painter, pointList);
-    // 绘制顶点块
-    pointList.forEach((item, index) => {
-      painter.drawCircle(item.x, item.y, painter.toPx(8));
-    });
-  }
-
-  ////////////////////////////////
-
-  /**
-   * 编辑状态操作多边形数组
-   *
-   * @param event    鼠标事件
-   *
-   *
-   * */
-
-  protected editPolygonPoint(event: SMouseEvent): void {
-    //  判断是否为删除状态 isAlt = true为删除状态
-    if (this.isAlt) {
-      // 1 判断是否点击在多边形顶点
-      let lenIndex = -1; // 当前点击到的点位索引;
-      let curenLen = this.scenceLen; // 当前的灵敏度
-      this.pointList.forEach((item, index) => {
-        let dis = SMathUtil.pointDistance(event.x, event.y, item.x, item.y);
-        if (dis < curenLen) {
-          curenLen = dis;
-          lenIndex = index;
-        }
-      });
-      // 若点击到,对该索引对应的点做删除
-      if (lenIndex != -1) {
-        if (this.pointList.length <= 3) {
-          return;
-        }
-        this.deletePoint(lenIndex);
-      }
-    } else {
-      // 1 判断是否点击在多边形顶点
-      this.curIndex = -1;
-      let lenIndex = -1; // 当前点击到的点位索引;
-      let curenLen = this.scenceLen; // 当前的灵敏度
-      this.pointList.forEach((item, index) => {
-        let dis = SMathUtil.pointDistance(event.x, event.y, item.x, item.y);
-        if (dis < curenLen) {
-          curenLen = dis;
-          lenIndex = index;
-        }
-      });
-      this.curIndex = lenIndex;
-
-      // 2判断是否点击在多边形得边上
-      if (-1 == lenIndex) {
-        let len = SMathUtil.pointToLine(
-            new SPoint(event.x, event.y),
-            new SLine(this.pointList[0], this.pointList[1])
-          ),
-          index = 0;
-        if (this.pointList.length > 2) {
-          for (let i = 1; i < this.pointList.length; i++) {
-            let dis = SMathUtil.pointToLine(
-              new SPoint(event.x, event.y),
-              new SLine(this.pointList[i], this.pointList[i + 1])
-            );
-            if (i + 1 == this.pointList.length) {
-              dis = SMathUtil.pointToLine(
-                new SPoint(event.x, event.y),
-                new SLine(this.pointList[i], this.pointList[0])
-              );
-            }
-            if (dis.MinDis < len.MinDis) {
-              len = dis;
-              index = i;
-            }
-          }
-        }
-        // 如果再线上则为新增点
-        if (len.Point) {
-          if (len.MinDis <= this.scenceLen) {
-            this.pointList.splice(index + 1, 0, len.Point);
-          }
-        }
-      }
-      // 刷新视图
-      this.update();
-    }
-  }
-
-  ///////////////////////////////以下为鼠标事件
-
-  /**
-   * 鼠标双击事件
-   *
-   * @param	event         事件参数
-   * @return	boolean
-   */
-
-  onDoubleClick(event: SMouseEvent): boolean {
-    // 如果位show状态 双击改对象则需改为编辑状态
-    if (SRelationState.Normal == this._status) {
-      this._status = SRelationState.Edit;
-    } else if (SRelationState.Edit == this._status) {
-      this._status = SRelationState.Normal;
-    }
-    this.update();
-    return true;
-  } // Function onDoubleClick()
-
-  /**
-   * 键盘事件
-   *
-   * @param	event         事件参数
-   * @return	boolean
-   */
-
-  onKeyDown(event: KeyboardEvent): boolean {
-    console.log(event);
-    if (this._status == SRelationState.Normal) {
-      return false;
-    } else if (this._status == SRelationState.Create) {
-      if (event.code == "Enter") {
-        this._status = SRelationState.Normal;
-      }
-    } else if (this._status == SRelationState.Edit) {
-      if (event.key == "Alt") {
-        this.isAlt = true;
-      }
-    } else {
-    }
-    this.update();
-    return true;
-  } // Function onKeyDown()
-
-  /**
-   * 键盘键抬起事件
-   *
-   * @param	event         事件参数
-   * @return	boolean
-   */
-  onKeyUp(event: KeyboardEvent): boolean {
-    if (this._status == SRelationState.Edit) {
-      if (event.key == "Alt") {
-        this.isAlt = false;
-      }
-    }
-    this.update();
-    return true;
-  } // Function onKeyUp()
-
-  /**
-   * 鼠标按下事件
-   *
-   * @param	event         事件参数
-   * @return	boolean
-   */
-  onMouseDown(event: SMouseEvent): boolean {
-    console.log("aaaaaa");
-    // 如果状态为编辑状态则添加点
-    if (this._status == SRelationState.Create) {
-      // 新增顶点
-      this.insertPoint(event.x, event.y);
-    } else if (this._status == SRelationState.Edit) {
-      // 对多边形数组做编辑操作
-      this.editPolygonPoint(event);
-    }
-    return true;
-  } // Function onMouseDown()
-
-  /**
-   * 鼠标移入事件
-   *
-   * @param	event         事件参数
-   * @return	boolean
-   */
-  onMouseEnter(event: SMouseEvent): boolean {
-    return true;
-  } // Function onMouseEnter()
-
-  /**
-   * 鼠标移出事件
-   *
-   * @param	event         事件参数
-   * @return	boolean
-   */
-
-  onMouseLeave(event: SMouseEvent): boolean {
-    return true;
-  } // Function onMouseLeave()
-
-  /**
-   * 鼠标移动事件
-   *
-   * @param	event         事件参数
-   * @return	boolean
-   */
-
-  onMouseMove(event: SMouseEvent): boolean {
-    if (this._status == SRelationState.Create) {
-      this.lastPoint.x = event.x;
-      this.lastPoint.y = event.y;
-    } else if (this._status == SRelationState.Edit) {
-      if (-1 != this.curIndex) {
-        this.pointList[this.curIndex].x = event.x;
-        this.pointList[this.curIndex].y = event.y;
-      }
-    }
-    this.update();
-    return true;
-  } // Function onMouseMove()
-
-  /**
-   * 鼠标抬起事件
-   *
-   * @param	event         事件参数
-   * @return	boolean
-   */
-
-  onMouseUp(event: SMouseEvent): boolean {
-    if (this._status == SRelationState.Edit) {
-      this.curIndex = -1;
-    }
-    return true;
-  } // Function onMouseUp()
-
-  /**
-   * 适配事件
-   *
-   * @param	event         事件参数
-   * @return	boolean
-   */
-
-  onResize(event: SMouseEvent): boolean {
-    return true;
-  } // Function onResize()
-
-  /**
-   * Item对象边界区域
-   *
-   * @return SRect
-   */
-  boundingRect(): SRect {
-    return new SRect(
-      this.minX,
-      this.minY,
-      this.maxX - this.minX,
-      this.maxY - this.minY
-    );
-  } // Function boundingRect()
-
-  /**
-   * Item绘制操作
-   *
-   * @param   painter       painter对象
-   */
-
-  onDraw(painter: SPainter): void {
-    this.scenceLen = painter.toPx(this.len);
-    // 当状态为展示状态
-    if (this._status == SRelationState.Normal) {
-      // 闭合多边形
-      this.drawShowPolygon(painter, this.pointList);
-    } else if (this._status == SRelationState.Create) {
-      // 创建状态
-      this.drawCreatePolygon(painter, this.pointList);
-    } else {
-      // 编辑状态
-      this.drawEditPolygon(painter, this.pointList);
-    }
-  } // Function onDraw()
-}
-</script>

+ 0 - 234
docs/.vuepress/components/example/web/graph/scene/SImgTextItem.vue

@@ -1,234 +0,0 @@
-<template>
-    <div>
-        <el-button @click="changemaodian">切换锚点显示状态</el-button>
-        <el-button @click="changetext">切换文本显示状态</el-button>
-        <canvas id="editPolygon" width="740" height="400" tabindex="0"></canvas>
-    </div>
-</template>
-
-<script lang="ts">
-    import {SGraphItem, SGraphScene, SGraphView, SObjectItem, STextItem, SImageItem, SAnchorItem} from "@saga-web/graph/lib";
-    import { SItemStatus }from "@saga-web/big/lib";
-    import {SColor, SPainter, SRect, SSize} from "@saga-web/draw/lib";
-    import {SMouseEvent} from "@saga-web/base/lib";
-
-    /**
-     * 图例item  icon
-     *
-     * */
-    class SImgTextItem extends SObjectItem {
-
-        /** item状态  */
-        _status: SItemStatus = SItemStatus.Normal;
-        get status(): SItemStatus {
-            return this._status;
-        }
-        set status(v: SItemStatus) {
-            this._status = v;
-            this.update();
-        }
-
-        /** 是否显示文字  */
-        _showText: boolean = true;
-        get showText(): boolean {
-            return this._showText;
-        }
-        set showText(v: boolean) {
-            if (v === this._showText) {
-                return
-            }
-            this._showText = v;
-            this.textItem.visible = v;
-        }
-
-        /** 是否显示锚点  */
-        _showAnchor: boolean = false;
-        get showAnchor():boolean{
-            return this._showAnchor;
-        }
-        set showAnchor(v:boolean){
-            this._showAnchor = v;
-            this.anchorList.forEach(t => {
-                t.visible = v;
-            })
-        }
-
-        /** X轴坐标 */
-        get x(): number {
-            return this.pos.x;
-        } // Get x
-        set x(v: number) {
-            this.pos.x = v;
-            this.$emit("changePos");
-            this.update();
-        } // Set x
-        /** Y轴坐标 */
-        get y(): number {
-            return this.pos.y;
-        } // Get y
-        set y(v: number) {
-            this.pos.y = v;
-            this.$emit("changePos");
-            this.update();
-        } // Set y
-
-        /** img Item    */
-        img: SImageItem = new SImageItem(this);
-
-        /** text item   */
-        textItem: STextItem = new STextItem(this);
-
-        /**
-         * 构造体
-         *
-         * */
-        constructor(parent: SGraphItem | null) {
-            super(parent);
-            this.img.url = `http://adm.sagacloud.cn:8080/doc/assets/img/logo.png`;
-            this.img.width = 32;
-            this.img.height = 32;
-            let anchorPoint = [{ x: 0, y: this.img.height / 2 }, { x: 0, y: -this.img.height / 2 }, { x: -this.img.width / 2, y: 0 }, { x: this.img.width / 2, y: 0 }];
-            this.anchorList = anchorPoint.map(t => {
-                let item = new SAnchorItem(this);
-                item.moveTo(t.x, t.y);
-                return item;
-            });
-            this.update();
-            this.textItem.text = "x2";
-            this.textItem.moveTo(18, -6);
-            this.moveable = true;
-            this.selectable = true;
-            this.textItem.enabled = false;
-            this.img.enabled = false;
-        }
-
-        onMouseEnter(event: SMouseEvent): boolean {
-            this.showAnchor = true;
-            return true;
-        }
-
-        onMouseLeave(event: SMouseEvent): boolean {
-            this.showAnchor = false;
-            return true;
-        }
-
-        onMouseMove(event: SMouseEvent): boolean {
-            return super.onMouseMove(event);
-        }
-
-        /**
-         * 鼠标按下事件
-         *
-         * */
-        onMouseDown(event: SMouseEvent): boolean {
-            console.log(this.textItem)
-            if (this.status == SItemStatus.Normal) {
-                return super.onMouseDown(event);
-            } else if (this.status == SItemStatus.Edit) {
-                return super.onMouseDown(event);
-            }
-            return true;
-        } // Function onMouseDown()
-
-        /**
-         * 宽高发发生变化
-         *
-         * @param   oldSize 改之前的大小
-         * @param   newSize 改之后大小
-         * */
-        onResize(oldSize: SSize, newSize: SSize) {
-            console.log(arguments);
-        } // Function onResize()
-
-        /**
-         * 鼠标双击事件
-         *
-         * @param   event   鼠标事件
-         * @return  是否处理事件
-         * */
-        onDoubleClick(event: SMouseEvent): boolean {
-            this.status = SItemStatus.Edit;
-            return true;
-        } // Function onDoubleClick()
-
-        /**
-         * 宽高发发生变化
-         *
-         * @return  SRect   所有子对象的并集
-         * */
-        boundingRect(): SRect {
-            let rect = this.img.boundingRect().adjusted(this.img.pos.x,this.img.pos.y,0,0);
-            if (this.showText) {
-                rect = rect.unioned(this.textItem.boundingRect().adjusted(this.textItem.pos.x,this.textItem.pos.y,0,0))
-            }
-            return rect;
-        } // Function boundingRect()
-
-        /**
-         * Item绘制操作
-         *
-         * @param   painter painter对象
-         */
-        onDraw(painter: SPainter): void {
-            painter.pen.lineWidth = painter.toPx(1);
-            painter.pen.color = new SColor("#00FF00");
-            painter.brush.color = SColor.Transparent;
-            if (this.showAnchor) {
-                painter.brush.color = SColor.Gray
-            }
-            painter.drawRect(this.boundingRect());
-        } // Function onDraw()
-    }
-
-
-    export default {
-        name: "ImgTextItem",
-        data() {
-            return {
-                scene: null,
-                view: null,
-                input:'',
-            };
-        },
-        mounted() {
-            console.log(22222222222222222)
-            // @ts-ignore
-            this.view = new SGraphView("editPolygon");
-            // @ts-ignore
-            this.scene = new SGraphScene();
-            // @ts-ignore
-            this.view.scene = this.scene;
-            // @ts-ignore
-            this.init()
-        },
-        methods:{
-            init(){
-                // @ts-ignore
-                this.item = new SImgTextItem(null);
-                // @ts-ignore
-                this.item.moveable = true;
-
-                // @ts-ignore
-                this.scene.addItem(this.item);
-                // this.view.fitSceneToView();
-            },
-            changemaodian(){
-                // @ts-ignore
-                this.item.showAnchor = !this.item.showAnchor;
-            },
-            changetext(){
-                // @ts-ignore
-                this.item.showText = !this.item.showText;
-            }
-        }
-    }
-</script>
-
-<style scoped>
-    canvas{
-        border:1px solid #ccc;
-    }
-    canvas:focus{
-        outline: none;
-    }
-</style>

+ 0 - 117
docs/.vuepress/components/example/web/graph/scene/TextItem.vue

@@ -1,117 +0,0 @@
-<template>
-	<div>
-		<el-row>
-			<el-input v-model="text" @change="handleChangeText" type="textarea" :autosize="{ minRows: 1, maxRows: 1}" placeholder="请输入内容" style="width:200px;"></el-input>
-			<el-input-number v-model="size" @change="handleChangeSize" :min="1" label="字号"></el-input-number>
-			<el-color-picker v-model="color" @change="handleChangeColor" style="top: 15px;"></el-color-picker>
-			<el-button @click="undo">Undo</el-button>
-			<el-button @click="redo">Redo</el-button>
-			<el-button @click="reset">Reset</el-button>
-		</el-row>
-		<canvas id="TextItem1" width="740" height="400" tabindex="0"/>
-	</div>
-</template>
-
-<script>
-	import { SUndoStack } from "@saga-web/base/lib";
-    import { SFont } from "@saga-web/draw/lib";
-	import { SGraphScene, SGraphView, SGraphPropertyCommand, SGraphMoveCommand, STextItem } from "@saga-web/graph/lib";
-
-	class SScene extends SGraphScene {
-		undoStack = new SUndoStack();
-		textItem = new STextItem(null);
-
-		constructor() {
-			super();
-			this.textItem.moveable = true;
-			this.textItem.x = 100;
-			this.textItem.y = 100;
-			this.addItem(this.textItem);
-			this.textItem.connect("onMove", this, this.onItemMove.bind(this));
-		}
-
-		updateText(str) {
-			if (this.textItem.text !== str) {
-				let old = this.textItem.text;
-				this.textItem.text = str;
-				this.undoStack.push(new SGraphPropertyCommand(this, this.textItem, "text", old, str));
-			}
-		}
-
-		updateColor(color) {
-			if (this.textItem.color !== color) {
-				let old = this.textItem.color;
-				this.textItem.color = color;
-				this.undoStack.push(new SGraphPropertyCommand(this, this.textItem, "color", old, color));
-			}
-		}
-
-		updateSize(size) {
-			if (this.textItem.font.size !== size) {
-				let old = new SFont(this.textItem.font);
-				let font = new SFont(this.textItem.font);
-				font.size = size;
-				this.textItem.font = font;
-				this.undoStack.push(new SGraphPropertyCommand(this, this.textItem, "font", old, font));
-			}
-		}
-
-		onItemMove(item, ...arg) {
-            this.undoStack.push(new SGraphMoveCommand(this, item, arg[0][0], arg[0][1]));
-        }
-
-	}
-
-	class TestView extends SGraphView {
-        constructor() {
-			super("TextItem1");
-        }
-	}
-
-    export default {
-		data() {
-			return {
-				scene: new SScene(),
-				text: '测试文本',
-				size: 20,
-				color: "#333333",
-			}
-		},
-        mounted() {
-			let view = new TestView();
-			this.scene.updateText(this.text);
-			this.scene.updateColor(this.color);
-			this.scene.updateSize(this.size);
-			view.scene = this.scene;
-		},
-		methods: {
-			handleChangeText(text) {
-				this.scene.updateText(text);
-			},
-			handleChangeColor(color) {
-				this.scene.updateColor(color);
-			},
-			handleChangeSize(size) {
-				this.scene.updateSize(size);
-			},
-			undo() {
-				this.scene.undoStack.undo();
-			},
-			redo() {
-				this.scene.undoStack.redo();
-			},
-			reset() {
-				this.text = "测试文本";
-				this.size = 20;
-				this.color = "#333333";
-				this.scene.updateText(this.text);
-				this.scene.updateColor(this.color);
-				this.scene.updateSize(this.size);
-			}
-		},
-    }
-</script>
-
-<style scoped>
-
-</style>

+ 0 - 155
docs/.vuepress/components/example/web/graph/scene/Undo1.vue

@@ -1,155 +0,0 @@
-<template>
-    <div>
-        <el-button @click="addCircle">Circle</el-button>
-        <el-button @click="addRect">Rect</el-button>
-        <el-button @click="deleteItem">Delete</el-button>
-        <el-button @click="undo">Undo</el-button>
-        <el-button @click="redo">Redo</el-button>
-        <el-button @click="log">日志</el-button>
-        <canvas id="undoFrame" width="800" height="400" />
-    </div>
-</template>
-
-<script lang="ts">
-    import { SMouseEvent, SUndoStack } from "@saga-web/base";
-    import { SColor, SPainter, SRect } from "@saga-web/draw";
-    import { SGraphItem, SGraphScene, SGraphView, SGraphAddCommand, SGraphMoveCommand } from "@saga-web/graph";
-    import {SPoint} from "@saga-web/draw/lib";
-
-    class RectItem extends SGraphItem {
-        width = 100;
-        height = 100;
-        id = new Date().getTime()
-        constructor(parent: SGraphItem | null) {
-            super(parent);
-            this.moveable = true;
-            this.selectable = true;
-            this.selected = true;
-            this.isTransform = true;
-            this.rolate = 60;
-        }
-
-        boundingRect(): SRect {
-            return new SRect(0, 0, this.width, this.height);
-        }
-
-        onDraw(canvas: SPainter): void {
-            canvas.pen.color = SColor.Blue;
-            canvas.pen.lineWidth = 5;
-            canvas.brush.color = this.selected ? SColor.Red : SColor.Green;
-            canvas.drawRect(0, 0, this.width, this.height)
-        }
-    }
-
-    class CircleItem extends SGraphItem {
-        r = 50;
-        id = new Date().getTime()
-
-        constructor(parent: SGraphItem | null) {
-            super(parent);
-            this.moveable = true;
-            this.selectable = true;
-            this.isTransform = false;
-        }
-
-        boundingRect(): SRect {
-            return new SRect(0, 0, this.r * 2, this.r * 2);
-        }
-
-        onDraw(canvas: SPainter): void {
-            canvas.pen.color = SColor.Blue;
-            canvas.pen.lineWidth = 5;
-            canvas.brush.color = this.selected ? SColor.Red : SColor.Green;
-            canvas.drawCircle(this.r, this.r, this.r);
-        }
-    }
-
-    class SScene extends SGraphScene {
-        undoStack = new SUndoStack();
-        /** 定义命令 */
-        cmd = 0;
-
-        constructor() {
-            super();
-        }
-
-
-        onMouseUp(event: SMouseEvent): boolean {
-            switch(this.cmd) {
-                case 1:
-                    this.addCircle(event.x, event.y);
-                    break;
-                case 2:
-                    this.addRect(event.x, event.y);
-                    break;
-                default:
-                    super.onMouseUp(event);
-            }
-            this.cmd = 0;
-            return false
-        }
-
-        private addCircle(x: number, y: number): void {
-            let item = new CircleItem(null);
-            item.moveTo(x - 50, y - 50);
-            this.addItem(item);
-            this.undoStack.push(new SGraphAddCommand(this, item));
-            item.connect("onMove", this, this.onItemMove.bind(this));
-        }
-
-        private addRect(x: number, y: number): void {
-            let item = new RectItem(null);
-            item.moveTo(x - 50, y - 50);
-            this.addItem(item);
-            this.undoStack.push(new SGraphAddCommand(this, item));
-            item.connect("onMove", this, this.onItemMove.bind(this));
-        }
-
-        onItemMove(item: SGraphItem, ...arg: any): void {
-            this.undoStack.push(new SGraphMoveCommand(this, item, arg[0][0] as SPoint, arg[0][1] as SPoint));
-        }
-    }
-
-    class TestView extends SGraphView {
-        constructor() {
-            super("undoFrame");
-        }
-    }
-
-    export default {
-        data() {
-            return {
-                scene: new SScene(),
-            }
-        },
-        mounted(): void {
-            let view = new TestView();
-            view.scene = this.scene;//new SScene(); //this.data.scene;
-        },
-        methods: {
-            addCircle() {
-                this.scene.cmd = 1;
-            },
-            addRect() {
-                this.scene.cmd = 2;
-            },
-            deleteItem() {
-
-            },
-            undo() {
-                this.scene.undoStack.undo();
-            },
-            redo() {
-                this.scene.undoStack.redo();
-            },
-            log() {
-                let str = this.scene.undoStack.toLog();
-                console.log(str)
-            }
-        }
-    }
-</script>
-
-<style scoped>
-
-</style>

+ 0 - 82
docs/.vuepress/components/example/web/graph/style/shadow.vue

@@ -1,82 +0,0 @@
-<template>
-    <div>
-        阴影扩散范围:<el-input-number @change="changeblur" v-model="blurl" size="mini" style="width: 100px"></el-input-number>
-        x轴偏移量:<el-input-number @change="changeX" v-model="X" size="mini" style="width: 100px"></el-input-number>
-        y轴偏移量:<el-input-number @change="changeY" v-model="Y" size="mini" style="width: 100px"></el-input-number>
-        <el-color-picker @change="changeColor" v-model="color" size="mini" style="vertical-align: middle"></el-color-picker>
-        <canvas id="shadow" width="740" height="400" tabindex="0"></canvas>
-    </div>
-</template>
-
-<script>
-    import { SCanvasView, SColor, SPainter } from "@saga-web/draw/lib";
-
-    class shadowView extends SCanvasView {
-
-        constructor(id) {
-            super(id);
-            this.shadowBlur = 10;
-            this.shadowColor = new SColor('#00000060');
-            this.shadowOffsetX = 10;
-            this.shadowOffsetY = 10;
-        }
-
-        onDraw(canvas) {
-            canvas.clearRect(0,0,740,400);
-
-            canvas.pen.lineWidth = 1;
-            canvas.pen.color = SColor.Black;
-            canvas.brush.color = SColor.White;
-            canvas.shadow.shadowBlur = this.shadowBlur;
-            canvas.shadow.shadowColor = this.shadowColor;
-            canvas.shadow.shadowOffsetX = this.shadowOffsetX;
-            canvas.shadow.shadowOffsetY = this.shadowOffsetY;
-            canvas.drawRect(300,50,100,100);
-            canvas.drawRect(270,100,100,100);
-        }
-    }
-    export default {
-        name: "shadow",
-        data(){
-            return {
-                view: null,
-                blurl: 10,
-                X:10,
-                Y:10,
-                color:"#CCCCCC"
-            }
-        },
-        mounted() {
-            this.view = new shadowView('shadow');
-        },
-        methods:{
-            // 修改扩散距离
-            changeblur(v) {
-                this.view.shadowBlur = v;
-                this.view.update()
-            },
-            // x轴偏移量
-            changeX(v){
-                this.view.shadowOffsetX = v;
-                this.view.update()
-            },
-            // y轴偏移量
-            changeY(v){
-                this.view.shadowOffsetY = v;
-                this.view.update()
-            },
-            // 修改颜色
-            changeColor(v){
-                this.view.shadowColor = new SColor(v);
-                this.view.update()
-            }
-        }
-    }
-</script>
-
-<style scoped>
-    canvas{
-        border: 1px solid #eeeeee;
-        outline: none;
-    }
-</style>

+ 31 - 27
docs/.vuepress/config.js

@@ -1,16 +1,17 @@
-const setupContent = require("../setup/index");
+const setupDevContent = require("../setup/dev/index");
+const setupServerContent = require("../setup/server/index");
 const revitContent = require("../revit/index");
 const databaseContent = require("../dev/database/index");
 const dataCenterContent = require("../dev/data-center/index");
 const paasContent = require("../dev/paas/index");
 const revitCenterContent = require("../dev/revit-center/index");
-const sagaGraphyContent = require("../dev/saga-graphy/index");
 const dataCenterScheme = require("../dev/data-center-scheme/index");
+const libContent = require("../dev/lib/index");
 
 module.exports = {
-    title: "数字化交付开发文档",
-    description: "上格云数字化交付开发文档",
-    base: "/doc/",
+    title: "数字化交付后台开发文档",
+    description: "博锐尚格数字化交付后台开发文档",
+    base: "/doc/service/",
     plugins: [
         "@vuepress/last-updated",
         "plugin-back-to-top",
@@ -35,15 +36,30 @@ module.exports = {
         lineNumbers: true
     },
     themeConfig: {
-        logo: "/assets/img/logo.png",
+        logo: "/assets/img/logos.png",
         nav: [
             {text: "首页", link: "/"},
             {
-                text: "服务器安装",
+                text: "安装配置",
                 items: [
-                    {text: "CentoOS 部署", link: "/setup/centos/"},
-                    {text: "Windows 部署", link: "/setup/windows/"}
+                    {
+                        text: "服务器配置",
+                        items: [
+                            {text: "CentoOS 部署", link: "/setup/server/centos/"},
+                            {text: "Windows 部署", link: "/setup/server/windows/"}
+                        ]
+                    },
+                    {
+                        text: "开发环境",
+                        items: [
+                            {text: "IDEA", link: "/setup/dev/idea"},
+                            {text: "Revit", link: "/setup/dev/revit"},
+                            {text: "Visual Studio", link: "/setup/dev/vsts"}
+                        ]
+                    }
+
                 ]
+
             },
             {
                 text: "开发文档",
@@ -54,14 +70,8 @@ module.exports = {
                             {text: "数据中心", link: "/dev/data-center/"},
                             {text: "物理世界同步", link: "/dev/dataplatform-sync/"},
                             {text: "模型管理", link: "/dev/revit-center/"},
-                            {text: "数据中台参考", link: "/dev/paas/"}
-                        ]
-                    },
-                    {
-                        text: "Web开发",
-                        items: [
-                            { text: "图形引擎", link: "/dev/saga-graphy/" },
-                            { text: "建筑信息图", link: "/dev/saga-big/" }
+                            {text: "数据中台参考", link: "/dev/paas/"},
+                            {text: "服务支持库", link: "/dev/lib/"}
                         ]
                     },
                     {
@@ -101,13 +111,6 @@ module.exports = {
                         ]
                     },
                     {
-                        text: "Web开发",
-                        items: [
-                            { text: "图形引擎", link: "http://adm.sagacloud.cn:8080/api/web/graph/" },
-                            { text: "建筑信息图", link: "http://adm.sagacloud.cn:8080/api/web/big/" }
-                        ]
-                    },
-                    {
                         text: "移动端开发",
                         items: [
                             { text: "图形引擎", link: "http://http://adm.sagacloud.cn:8080/api/android/graphy/" }
@@ -127,16 +130,17 @@ module.exports = {
             }
         ],
         displayAllHeaders: true,
-        sidebarDepth: 2,
+        sidebarDepth: 1,
         sidebar: {
-            "/setup/" : setupContent,
+            "/setup/server/" : setupServerContent,
+            "/setup/dev/" : setupDevContent,
             "/revit/" : revitContent,
             "/dev/database/" : databaseContent,
             "/dev/data-center/" : dataCenterContent,
             "/dev/paas/" : paasContent,
             "/dev/revit-center/" : revitCenterContent,
-            "/dev/saga-graphy/": sagaGraphyContent,
             "/dev/data-center-scheme/" : dataCenterScheme,
+            "/dev/lib/" : libContent,
         }
     }
 };

BIN
docs/.vuepress/public/assets/img/logos.png


+ 7 - 0
docs/dev/lib/README.md

@@ -0,0 +1,7 @@
+
+
+
+
+#### 架构图
+#### jar 包怎么引用
+#### 

+ 3 - 0
docs/dev/lib/coding/README.md

@@ -0,0 +1,3 @@
+#### 实体类结构规范
+#### 控制类 、service 规范
+#### 接口使用方式、调用,函数调用,自定义函数使用

+ 20 - 0
docs/dev/lib/index.js

@@ -0,0 +1,20 @@
+const content = [
+    {
+        title: "web接口支持规范",
+        path: "/dev/lib/web/",
+        children: [
+            ["/dev/lib/web/create", "创建"],
+            ["/dev/lib/web/update", "修改"],
+            ["/dev/lib/web/delete", "删除"],
+            ["/dev/lib/web/query", "查询"],
+            ["/dev/lib/web/count", "统计"],
+            ["/dev/lib/web/filters", "条件过滤"]
+        ]
+    },
+    {
+        title: "开发规范介绍",
+        path: "/dev/lib/coding/"
+    }
+];
+
+module.exports = content;

+ 3 - 0
docs/dev/lib/web/README.md

@@ -0,0 +1,3 @@
+#### swagger 为什么使用
+#### 标准接口(标准通用增删改查,请求体结构、应答结构、web端所有操作符使用)
+#### 定义接口(组合报表)

+ 1 - 0
docs/dev/lib/web/count.md

@@ -0,0 +1 @@
+# 条件统计

+ 1 - 0
docs/dev/lib/web/create.md

@@ -0,0 +1 @@
+# 创建

+ 1 - 0
docs/dev/lib/web/delete.md

@@ -0,0 +1 @@
+# 删除

+ 3 - 0
docs/dev/lib/web/filters.md

@@ -0,0 +1,3 @@
+# 过滤条件
+
+## 条件表达式的使用

+ 155 - 0
docs/dev/lib/web/query.md

@@ -0,0 +1,155 @@
+# 查询
+## 请求体 json
+::: details 查看代码
+```
+{
+  "Cascade": [
+    {
+      "Cascade": [
+        null
+      ],
+      "Distinct": true,
+      "Filters": "string",
+      "Group": {
+        "AvgList": [
+          "string"
+        ],
+        "Count": true,
+        "MaxList": [
+          "string"
+        ],
+        "MinList": [
+          "string"
+        ],
+        "NameList": [
+          "string"
+        ],
+        "SumList": [
+          "string"
+        ]
+      },
+      "Name": "string",
+      "Orders": "name asc, createTime desc",
+      "Projection": [
+        "string"
+      ]
+    }
+  ],
+  "Distinct": true,
+  "Filters": "string",
+  "Group": {
+    "AvgList": [
+      "string"
+    ],
+    "Count": true,
+    "MaxList": [
+      "string"
+    ],
+    "MinList": [
+      "string"
+    ],
+    "NameList": [
+      "string"
+    ],
+    "SumList": [
+      "string"
+    ]
+  },
+  "Orders": "name asc, createTime desc",
+  "PageNumber": 1,
+  "PageSize": 50,
+  "Projection": [
+    "string"
+  ]
+}
+```
+:::
+
+## 应答 json
+::: details 查看代码
+```metadata json
+{
+    "Content":[
+        {
+            "EquipID":"Eq3702020002f9052971335b417b896c73bdcd832f2d",
+            "EquipLocalId":"CCTV-15F-06-05",
+            "BimId":"Pj37020200023d180a0a876a11eaad60abc9d54aea48F20:8240980",
+            "BimLocation":"-106089.73,64853.35,92300.0"
+        }
+    ],
+    "Message":"接口失败会返回原因",
+    "PageNumber":1,
+    "PageSize":50,
+    "Result":"success",
+    "Total":1
+}
+```
+::: 
+## 分页
+
+PageNumber 请求页码 Int 值 默认 1
+
+PageSize 请求条数 Int 值 默认 50 条
+
+通用接口中 PageSize 请求条数最大为 1000,为了避免大量的数据请求占用过多的资源,减少带宽
+
+## 过滤条件
+Filters 中编写过滤条件 例如:
+```metadata json
+{
+  
+  "Filters": "ProjectId = 'Pj3702020002'; Category = 'FSSN' ",
+  "PageNumber": 1,
+  "PageSize": 50
+}
+```
+分号(;代表 and )还可以使用 and 来查询,例如:
+```metadata json
+{
+  
+  "Filters": "ProjectId = 'Pj3702020002' and Category = 'FSSN' ",
+  "PageNumber": 1,
+  "PageSize": 50
+  
+}
+
+```
+更多详细查询条件以及操作符使用参考 [ “过滤条件” 操作符介绍](./filters)
+
+## 排序
+Orders 排序,默认升序 asc 可以多字段排序,升序 asc  降序 desc,例如:
+
+```metadata json
+{
+  
+  "Filters": "ProjectId = 'Pj3702020002' and Category = 'FSSN' ",
+  "PageNumber": 1,
+  "PageSize": 50,
+  "Orders": "EquipName, CreateTime desc"
+}
+```
+多字段排序从前往后依次按照 Orders 中的条件排序返回结果。
+## 去重
+
+
+## 指定应答属性
+Projection 指定后返回的属性,有些时候并不想把某些对象所有信息点都查出来,只是用几个属性,提高数据交互质量可以指定需要的属性,例如:
+```metadata json
+{
+  "Filters": "ProjectId = 'Pj3702020002' and Category = 'FSSN' ",
+  "PageNumber": 1,
+  "PageSize": 50,
+  "Projection": [
+      "EquipID","EquipName","EquipLocalId","EquipLocalName","Category"
+    ]
+}
+```
+如上面的请求体就会返回 Projection 中指定的属性
+
+## 级联查询 (根据条件筛选、关系类型筛选级联) 
+
+
+
+
+
+## 综合示例 (多条件组合案例)

+ 1 - 0
docs/dev/lib/web/update.md

@@ -0,0 +1 @@
+# 修改

+ 0 - 2
docs/dev/saga-big/README.md

@@ -1,2 +0,0 @@
-# 建筑信息图
-

+ 0 - 1
docs/dev/saga-graphy/README.md

@@ -1 +0,0 @@
-# 图形引擎

+ 0 - 3
docs/dev/saga-graphy/feng-map/typeIdMap.md

@@ -1,3 +0,0 @@
-# 地图要素分类编码
-
-

+ 0 - 1
docs/dev/saga-graphy/floor-map/README.md

@@ -1 +0,0 @@
-# 楼层平面图

+ 0 - 0
docs/dev/saga-graphy/floor-map/divide.md


+ 0 - 6
docs/dev/saga-graphy/floor-map/downloadFile.md

@@ -1,6 +0,0 @@
-
-## 手工下载楼层底图文件
-
-手工下载地址例:[http://adm.sagacloud.cn/image-service/common/file_get?systemId=revit&key=Fl11010500011b85b9eeff8211e8b8b087ac5144d0ef20191108102222bim.jsonz](http://adm.sagacloud.cn/image-service/common/file_get?systemId=revit&key=Fl11010500011b85b9eeff8211e8b8b087ac5144d0ef20191108102222bim.jsonz)
-
-下载后为无后缀压缩文件,直接打开是乱码,需手工添加zip后缀并解压方可得到json文件

BIN
docs/dev/saga-graphy/floor-map/img/equipLocation.png


BIN
docs/dev/saga-graphy/floor-map/img/liucheng.png


BIN
docs/dev/saga-graphy/floor-map/img/space.png


+ 0 - 147
docs/dev/saga-graphy/floor-map/jsonFile.md

@@ -1,147 +0,0 @@
-
-## json数据格式
-
-### 整体数据格式
-
-```
-    {
-        EntityList:[
-            Elements:{                          // 底图展示所需数据
-                Columns:[],                     // 所有柱子数据
-                Doors:[],                       // 所有门数据
-                Spaces:[],                      // 所有空间数据
-                VirtualWalls:[],                // 所有虚拟墙数据
-                Walls:[],                       // 所有墙数据
-                Windows:[],                     // 所有窗户数据
-            },
-            MBIName:'',
-            ModelId:'',
-            PlanName:''
-        ]
-    }
-```
-
-### 柱子具体数据内容
-
-```
-    Columns:[
-        {
-            Name: '',                           // 名称
-            OutLine: [
-                [{X:0,Y:0,Z:0},...],            // 外轮廓 
-                ...                             // 内轮廓
-            ],                                  // 轮廓线
-            RoomBoundary: '',                   // 房间边界
-            Location: {X:0,Y:0,Z:0},            // 位置
-            ModelId: '',                        // 模型id
-            SourceId: '',                       // 对应Revit模型id
-        },
-        ...
-    ]
-```
-
-### 门具体数据
-
-```
-    Doors:[
-        {
-            FaceDirection: {X:0,Y:0,Z:0},       // 面朝方向
-            HandDirection: {X:0,Y:0,Z:0},       // 把手方向
-            Location: {X:0,Y:0,Z:0},            // 位置
-            ModelId: '',                        // 模型id
-            Name: '',                           // 名称
-            OutLine: [
-                [{X:0,Y:0,Z:0},...],            // 外轮廓 
-                ...                             // 内轮廓
-            ],                                  // 轮廓线
-            Owner: '',                          // 拥有者的RevitId
-            SourceId: '',                       // 对应Revit模型id
-            Thick: 200,                         // 厚度
-            WallId: '',                         // 所属墙
-            Width: 200,                         // 宽度
-        },
-        ...
-    ]
-```
-
-### 空间具体数据
-
-```
-    Spaces:[
-        {
-            BoundarySegments: [[''],...],       // 轮廓线段
-            Location: {X:0,Y:0,Z:0},            // 位置
-            ModelId: '',                        // 模型id
-            Name: '',                           // 名称
-            OutLine: [
-                [{X:0,Y:0,Z:0},...],            // 外轮廓 
-                ...                             // 内轮廓
-            ],                                  // 轮廓线
-            SourceId: '',                       // 对应Revit模型id
-            Tag: '',                            // 补充信息
-            Height: 200,                        // 高度
-        },
-        ...
-    ]
-```
-
-### 虚拟墙具体数据
-
-```
-    VirtualWalls:[
-        {
-            Location: {X:0,Y:0,Z:0},            // 位置
-            ModelId: '',                        // 模型id
-            Name: '',                           // 名称
-            OutLine: [
-                [{X:0,Y:0,Z:0},...],            // 外轮廓 
-                ...                             // 内轮廓
-            ],                                  // 轮廓线
-            SourceId: '',                       // 对应Revit模型id
-        },
-        ...
-    ]
-```
-
-### 墙具体数据
-
-```
-    Walls:[
-        {
-            LevelId: '',                        // 层id
-            Location: {X:0,Y:0,Z:0},            // 位置
-            ModelId: '',                        // 模型id
-            Name: '',                           // 名称
-            OutLine: [
-                [{X:0,Y:0,Z:0},...],            // 外轮廓 
-                ...                             // 内轮廓
-            ],                                  // 轮廓线
-            SourceId: '',                       // 对应Revit模型id
-            Tag: '',                            // 补充信息
-            Width: 200,                         // 厚度
-        },
-        ...
-    ]
-```
-
-### 窗户具体数据
-
-```
-    Windows:[
-        {
-            Location: {X:0,Y:0,Z:0},            // 位置
-            ModelId: '',                        // 模型id
-            Name: '',                           // 名称
-            OutLine: [
-                [{X:0,Y:0,Z:0},...],            // 外轮廓 
-                ...                             // 内轮廓
-            ],                                  // 轮廓线
-            Owner: '',                          // 拥有者的RevitId
-            SourceId: '',                       // 对应Revit模型id
-            WallId: '',                         // 所属墙
-            Width: 200,                         // 宽度
-            Thick: 200,                         // 厚度
-        },
-        ...
-    ]
-```

+ 0 - 10
docs/dev/saga-graphy/floor-map/mapDemo.md

@@ -1,10 +0,0 @@
-# 可编辑直线示例
-::: details 目录
-[[toc]]
-:::
-
-<example-web-graph-MapDemo/>
-
-::: details 查看代码
-<<< @/docs/.vuepress/components/example/web/graph/mapDemo.vue
-:::

+ 0 - 98
docs/dev/saga-graphy/floor-map/workLine.md

@@ -1,98 +0,0 @@
-## 下载-解析-生成 过程
-
-### 工作流程图
-
-![工作流程图](./img/liucheng.png)
-
-### 下载底图数据
-
-#### 方式1 通过楼层对象floormap信息点,直接从文件服务器获取压缩数据
-
-引擎中已封装好函数loadUrl,直接传入文件服务器路径即可;并且会将压缩数据自动解压
-
-```
-loadUrl(url: string): Promise<void> {}
-```
-
-#### 方式2 通过模型后台接口 /base-graph/query 传入模型id 直接获取未压缩数据
-引擎中已封装好函数getFloorData,直接传入模型id,url为接口地址
-
-```
-getFloorData(url: string, data: { ModelId: string }) {}
-```
-
-
-### 下载设备,业务空间数据
-
-下载设备,业务空间等的数据均需要另走查询对象接口
-
-如设备数据
-
-```
-    Equip:{
-        ...
-        BIMLocation:'0,0,0',                    // 如果设备有位置,则会在设备对象中存在此数据
-    }
-```    
-
-根据此坐标生成设备位置
-
-![工作流程图](./img/equipLocation.png)
-
-业务空间数据
-```
-    Space:{
-        ...
-        OutLine: [                              
-            [
-                [{X:0,Y:0,Z:0},...],            // 外轮廓 
-                ...                             // 内轮廓
-            ]
-        ],                                      // 轮廓线
-    }
-```
-
-根据轮廓线生成业务空间
-
-![工作流程图](./img/space.png) 
-
-### 解析
-引擎中会读取下载好的数据,按数据将不同的对象分发到引擎中各个添加对象的方法中
-
-```
-private addBaseMapItem(data: FloorData): void {
-        if (data.Walls) {
-            data.Walls.forEach((t: Wall): void => {
-                this.addWall(t);
-            });
-        }
-        if (data.Columns) {
-            data.Columns.forEach((t: Column): void => {
-                this.addColumn(t);
-            });
-        }
-        if (data.Windows) {
-            data.Windows.forEach((t: Casement): void => {
-                this.addCasement(t);
-            });
-        }
-        if (data.VirtualWalls) {
-            data.VirtualWalls.forEach((t: VirtualWall): void => {
-                this.addVirtualWall(t);
-            });
-        }
-        if (data.Doors) {
-            data.Doors.forEach((t: Door): void => {
-                this.addDoor(t);
-            });
-        }
-        if (data.Spaces) {
-            data.Spaces.forEach((t: Space): void => {
-                this.addSpace(t);
-            });
-        }
-    } // Function addBaseMapItem()
-```
-
-### 生成
-当视图监听到需要刷新时,就会触发update()方法,刷新视图,用户就可以在页面中看到相应的楼层平面图了

+ 0 - 37
docs/dev/saga-graphy/graphy-engine/README.md

@@ -1,37 +0,0 @@
-# 绘图引擎
-
-1.引擎基本结构
-
-![绘图引擎结构](./img/draw-engine.png)
-
-多引擎结构
-
-![多引擎结构](./img/mutli-engine.png)
-
-绘制结构
-
-![绘制结构](./img/huizhijiegou.png)
-
-2.绘制操作,特殊说明:path/image/text;画笔/画刷;字体/字号/对齐方式;案例:线/圆/矩形/多边形/饼图(实现)/椭圆/圆角矩形;
-
-画刷实现结构
-
-![画刷实现结构](./img/huashuajiegou.png)
-
-画笔实现结构
-
-![画笔实现结构](./img/huabishixian.png)
-
-文本实现结构
-
-![文本实现结构](./img/wenbenshixian.png)
-
-3.颜色与过渡
-
-4.矩阵变换
-
-5.融合效果
-
-6.特效:投影/发光/倒影/a过渡/等
-
-7.实现自定义绘图引擎:如image绘图引擎

+ 0 - 184
docs/dev/saga-graphy/graphy-engine/arrow.md

@@ -1,184 +0,0 @@
-# 绘图指令-绘制带有末端样式的线段
-
-## 函数入参
-
-传入线段和末端样式style{begin?:SArrowStyleType,end?:SArrowStyleType}
-
-drawArrowLine(line: SLine, style?: SArrow):void
-
-传入线段的两个点和末端样式
-
-drawArrowLine(p1: SPoint, p2: SPoint, style?: SArrow): void;
-
-传入线段的两个点的坐标值和末端样式
-
-drawArrowLine(x1: number,y1: number,x2: number,y2: number,style?: SArrow): void;
-
-## 类型
-
-### 无
-
-不绘制任意箭头
-
-### 标准箭头
-
-绘制如下类型箭头
-
-![标准箭头](./img/basic-arrow.png)
-
-#### 画法描述
-
-1.将坐标系平移至线段终点;
-
-2.计算出线段与x轴夹角,并将坐标系旋转至x轴与线段重合;
-
-3.设定箭头夹角为θ=π/2,末端三角形边长d=5,则箭头上下端与x轴夹角为π/4,根据此角度与边长计算上下端坐标;
-
-4.直接绘制原点与上下端连线的折线图形即可;
-
-![标准箭头计算](./img/basic-jisuan.png)
-
-```
-// 定义箭头长度
-const d = 5;
-// 箭头横坐标
-const x1 = d * Math.cos(Math.PI / 4);
-// 箭头纵坐标
-const y1 = d * Math.sin(Math.PI / 4);
-// 线段与x轴夹角
-const fo = Math.atan(line.dy / line.dx);
-const ang = line.dx >= 0 ? fo : fo + Math.PI;
-this.save();
-this.translate(line.x2, line.y2);
-this.rotate(ang);
-this.engine.drawPolyline([
-    new SPoint(-x1, y1),
-    new SPoint(0, 0),
-    new SPoint(-x1, -y1)
-]);
-this.restore();
-```
-
-### 三角形
-
-绘制如下类型箭头,通过画笔颜色和画刷颜色控制笔触颜色和填充颜色
-
-![三角形箭头](./img/triangle-arrow.png)
-
-#### 画法描述
-
-坐标点位置计算与标准箭头类似,只是箭头夹角θ=π/6,且最后绘制图形为多边形
-
-```
-// 定义箭头长度
-const d = 5;
-// 箭头横坐标
-const x1 = d * Math.cos(Math.PI / 4);
-// 箭头纵坐标
-const y1 = d * Math.sin(Math.PI / 4);
-// 线段与x轴夹角
-const fo = Math.atan(line.dy / line.dx);
-const ang = line.dx >= 0 ? fo : fo + Math.PI;
-this.save();
-this.translate(line.x2, line.y2);
-this.rotate(ang);
-this.engine.drawPolygon([
-    new SPoint(-x1, y1),
-    new SPoint(0, 0),
-    new SPoint(-x1, -y1)
-]);
-this.restore();
-```
-
-### 圆
-
-绘制如下类型箭头,通过画笔颜色和画刷颜色控制笔触颜色和填充颜色
-
-![圆形箭头](./img/circle-arrow.png)
-
-#### 画法描述
-
-1.将坐标系平移至线段终点;
-
-2.设定圆半径r=5,计算圆心坐标为(-r,0),绘制圆形即可
-
-![圆形计算](./img/circle-jisuan.png)
-
-```
-// 定义箭头长度
-const d = 5;
-// 线段与x轴夹角
-const fo = Math.atan(line.dy / line.dx);
-const ang = line.dx >= 0 ? fo : fo + Math.PI;
-this.save();
-this.translate(line.x2, line.y2);
-this.rotate(ang);
-this.engine.drawCircle(-d / 2, 0, d / 2);
-this.restore();
-```
-
-### 菱形
-
-绘制如下类型箭头,通过画笔颜色和画刷颜色控制笔触颜色和填充颜色
-
-![菱形箭头](./img/diamond-arrow.png)
-
-#### 画法描述
-
-坐标点位置计算与标准箭头类似,只需多计算一个点,绘制图形为多边形
-
-![菱形计算](./img/diamond-jisuan.jpg)
-
-```
-// 定义箭头长度
-const d = 5;
-// 箭头横坐标
-const x1 = d * Math.cos(Math.PI / 4);
-// 箭头纵坐标
-const y1 = d * Math.sin(Math.PI / 4);
-// 线段与x轴夹角
-const fo = Math.atan(line.dy / line.dx);
-const ang = line.dx >= 0 ? fo : fo + Math.PI;
-this.save();
-this.translate(line.x2, line.y2);
-this.rotate(ang);
-this.engine.drawPolygon([
-    new SPoint(-x1, y1),
-    new SPoint(0, 0),
-    new SPoint(-x1, -y1),
-    new SPoint(-Math.sqrt(2) * d, 0)
-]);
-this.restore();
-```
-
-### 方形
-
-绘制如下类型箭头,通过画笔颜色和画刷颜色控制笔触颜色和填充颜色
-
-![方形箭头](./img/square-arrow.png)
-
-#### 画法描述
-
-1.将坐标系平移至线段终点;
-
-2.可以计算四个顶点坐标,绘制多边形;亦可移至计算出的原点,直接绘制矩形;
-
-![方形计算](./img/square-jisuan.png)
-
-```
-// 定义箭头长度
-const d = 5;
-// 线段与x轴夹角
-const fo = Math.atan(line.dy / line.dx);
-const ang = line.dx >= 0 ? fo : fo + Math.PI;
-this.save();
-this.translate(line.x2, line.y2);
-this.rotate(ang);
-this.engine.drawPolygon([
-    new SPoint(-d, d / 2),
-    new SPoint(0, d / 2),
-    new SPoint(0, -d / 2),
-    new SPoint(-d, -d / 2)
-]);
-this.restore();
-```

+ 0 - 4
docs/dev/saga-graphy/graphy-engine/clip.md

@@ -1,4 +0,0 @@
-# 裁剪
-::: details 目录
-[[toc]]
-:::

+ 0 - 127
docs/dev/saga-graphy/graphy-engine/composite.md

@@ -1,127 +0,0 @@
-# 融合
-
-通过canvas的属性globalCompositeOperation,设置多个图形之间的绘制方式
-
-源图像 = 您打算放置到画布上的绘图。
-
-目标图像 = 您已经放置在画布上的绘图
-
-#### 方式1 source-over
-
-默认。在目标图像上显示源图像。
-
-![融合1](./img/source-over.png) 
-
-```
-painter.composite = SCompositeType.SourceOver
-```
-
-#### 方式2 source-atop
-
-在目标图像顶部显示源图像。源图像位于目标图像之外的部分是不可见的。
-
-![融合2](./img/source-atop.png)
-
-```
-painter.composite = SCompositeType.SourceAtop
-```
-
-
-#### 方式3 source-in
-
-在目标图像中显示源图像。只有目标图像内的源图像部分会显示,目标图像是透明的。
-
-![融合3](./img/source-in.png)
-
-```
-painter.composite = SCompositeType.SourceIn
-```
-
-
-#### 方式4 source-out
-
-在目标图像之外显示源图像。只会显示目标图像之外源图像部分,目标图像是透明的。
-
-![融合4](./img/source-out.png)
-
-```
-painter.composite = SCompositeType.SourceOut
-```
-
-
-#### 方式5 destination-over
-
-在源图像上方显示目标图像。
-
-![融合5](./img/destination-over.png)
-
-```
-painter.composite = SCompositeType.DestinationOver
-```
-
-
-#### 方式6 destination-atop
-
-在源图像顶部显示目标图像。源图像之外的目标图像部分不会被显示。
-
-![融合6](./img/destination-atop.png)
-
-```
-painter.composite = SCompositeType.DestinationAtop
-```
-
-
-#### 方式7 destination-in
-
-在源图像中显示目标图像。只有源图像内的目标图像部分会被显示,源图像是透明的。
-
-![融合7](./img/destination-in.png)
-
-```
-painter.composite = SCompositeType.DestinationIn
-```
-
-
-#### 方式8 destination-out
-
-在源图像外显示目标图像。只有源图像外的目标图像部分会被显示,源图像是透明的。
-
-![融合8](./img/destination-out.png)
-
-```
-painter.composite = SCompositeType.DestinationOut
-```
-
-
-#### 方式9 lighter
-
-显示源图像 + 目标图像。
-
-![融合9](./img/lighter.png)
-
-```
-painter.composite = SCompositeType.Lighter
-```
-
-
-#### 方式10 copy
-
-显示源图像。忽略目标图像。
-
-![融合10](./img/copy.png)
-
-```
-painter.composite = SCompositeType.Copy
-```
-
-
-#### 方式11 xor
-
-使用异或操作对源图像与目标图像进行组合。
-
-![融合11](./img/xor.png)
-
-```
-painter.composite = SCompositeType.Xor
-```
-

+ 0 - 4
docs/dev/saga-graphy/graphy-engine/custom-engine.md

@@ -1,4 +0,0 @@
-# 自定义引擎
-::: details 目录
-[[toc]]
-:::

+ 0 - 49
docs/dev/saga-graphy/graphy-engine/draw.md

@@ -1,49 +0,0 @@
-# 绘制形状
-::: details 目录
-[[toc]]
-:::
-
-## 直线
-
-<example-web-graph-DrawLine1 /> 
-
-::: details 查看代码
-
-<<< @/docs/.vuepress/components/example/web/graph/DrawLine1.vue
-
-:::
-
-## 折线
-
-<example-web-graph-DrawPolyline1 /> 
-
-::: details 查看代码
-
-<<< @/docs/.vuepress/components/example/web/graph/DrawPolyline1.vue
-
-:::
-
-## 矩形
-
-<example-web-graph-DrawRect1 /> 
-
-::: details 查看代码
-
-<<< @/docs/.vuepress/components/example/web/graph/DrawRect1.vue
-
-:::
-
-## 圆
-
-<example-web-graph-Circle1 /> 
-
-::: details 查看代码
-
-<<< @/docs/.vuepress/components/example/web/graph/Circle1.vue
-
-
-## 椭圆
-
-## 多边形
-
-## 路径

+ 0 - 89
docs/dev/saga-graphy/graphy-engine/gradient.md

@@ -1,89 +0,0 @@
-# 渐变
-
-渐变是一种有规律性的变化;引擎中分为线性渐变和放射性渐变
-
-渐变实现结构图
-
-![渐变结构](./img/jianbianjiegou.png)
-
-## 线性渐变
-
-定义从上到下的渐变,作为矩形的填充样式:
-
-![线性渐变1](./img/line-gradient2.png) 
-
-demo代码示例
-
-```
-let gradient = new SLinearGradient(this.minX,this.minY,this.minX,this.maxY)
-gradient.addColorStop(0,new SColor('#d8b31d'))
-gradient.addColorStop(0.5,new SColor('#38ded6'))
-gradient.addColorStop(1,new SColor('#c3470c'))
-painter.brush.gradient = gradient
-```
-
-定义从左到右的渐变,作为矩形的填充样式:
-
-![线性渐变2](./img/line-gradient.png) 
-
-demo代码示例
-
-```
-let gradient = new SLinearGradient(this.minX,this.minY,this.maxX,this.minY)
-gradient.addColorStop(0,new SColor('#d8b31d'))
-gradient.addColorStop(0.5,new SColor('#38ded6'))
-gradient.addColorStop(1,new SColor('#c3470c'))
-painter.brush.gradient = gradient
-```
-
-## 放射渐变
-
-绘制一个矩形,并用放射状/圆形渐变进行填充:
-
-情况1:圆心重合,圆1半径小于圆2半径
-
-![放射渐变1](./img/radial-gradient.png) 
-
-示例demo代码,填充的图形为700*700的矩形,
-
-```
-let gradient = new SRadialGradient((this.minX+this.maxX)/2,(this.minY+this.maxY)/2,5,(this.minX+this.maxX)/2,(this.minY+this.maxY)/2,35)
-gradient.addColorStop(0,new SColor('#ff483b'))
-gradient.addColorStop(0.5,new SColor('#04ff00'))
-gradient.addColorStop(1,new SColor('#3d4eff'))
-painter.brush.gradient = gradient
-```
-
-还有其他更多情况,实现更多图案,均可以调整参数来实现,一下列举几种情况
-
-情况2:圆1在圆2内部,圆1半径小于圆2半径
-
-![放射渐变2](./img/radial-gradient2.png) 
-
-情况3:圆1和圆2相离时,并且大小不相同
-
-![放射渐变3](./img/radial-gradient3.png) 
-![放射渐变4](./img/radial-gradient4.png) 
-
-情况4:当圆1和圆2相离时,并且大小相同
-
-![放射渐变5](./img/radial-gradient5.png) 
-
-情况5:当圆1和圆2相交时,并且大小相同
-
-![放射渐变5](./img/radial-gradient6.png) 
-
-情况6:当圆1和圆2相交时,圆心相同,并且大小相同
-
-![放射渐变5](./img/radial-gradient7.png) 
-
-## 渐变属性
-
-起点:渐变开始位置
-stop停点:渐变过程中间色,可以有多个
-结束点:渐变结束位置
-
-![渐变属性1](./img/gradient-attr1.png)
-
-![渐变属性2](./img/gradient-attr2.png)
-

+ 0 - 2
docs/dev/saga-graphy/graphy-engine/image.md

@@ -1,2 +0,0 @@
-# 绘制图片
-

BIN
docs/dev/saga-graphy/graphy-engine/img/basic-arrow.png


BIN
docs/dev/saga-graphy/graphy-engine/img/basic-jisuan.png


BIN
docs/dev/saga-graphy/graphy-engine/img/circle-arrow.png


BIN
docs/dev/saga-graphy/graphy-engine/img/circle-jisuan.png


BIN
docs/dev/saga-graphy/graphy-engine/img/copy.png


BIN
docs/dev/saga-graphy/graphy-engine/img/destination-atop.png


BIN
docs/dev/saga-graphy/graphy-engine/img/destination-in.png


BIN
docs/dev/saga-graphy/graphy-engine/img/destination-out.png


BIN
docs/dev/saga-graphy/graphy-engine/img/destination-over.png


BIN
docs/dev/saga-graphy/graphy-engine/img/diamond-arrow.png


BIN
docs/dev/saga-graphy/graphy-engine/img/diamond-jisuan.jpg


BIN
docs/dev/saga-graphy/graphy-engine/img/draw-engine.png


BIN
docs/dev/saga-graphy/graphy-engine/img/drawconstruction.png


BIN
docs/dev/saga-graphy/graphy-engine/img/gradient-attr1.png


BIN
docs/dev/saga-graphy/graphy-engine/img/gradient-attr2.png


BIN
docs/dev/saga-graphy/graphy-engine/img/gradient-construction.png


BIN
docs/dev/saga-graphy/graphy-engine/img/huabishixian.png


BIN
docs/dev/saga-graphy/graphy-engine/img/huashuajiegou.png


BIN
docs/dev/saga-graphy/graphy-engine/img/huizhijiegou.png


BIN
docs/dev/saga-graphy/graphy-engine/img/jianbianjiegou.png


BIN
docs/dev/saga-graphy/graphy-engine/img/lighter.png


BIN
docs/dev/saga-graphy/graphy-engine/img/line-gradient.png


BIN
docs/dev/saga-graphy/graphy-engine/img/line-gradient2.png


BIN
docs/dev/saga-graphy/graphy-engine/img/mutli-engine.png


BIN
docs/dev/saga-graphy/graphy-engine/img/radial-gradient.png


BIN
docs/dev/saga-graphy/graphy-engine/img/radial-gradient2.png


BIN
docs/dev/saga-graphy/graphy-engine/img/radial-gradient3.png


BIN
docs/dev/saga-graphy/graphy-engine/img/radial-gradient4.png


BIN
docs/dev/saga-graphy/graphy-engine/img/radial-gradient5.png


BIN
docs/dev/saga-graphy/graphy-engine/img/radial-gradient6.png


BIN
docs/dev/saga-graphy/graphy-engine/img/radial-gradient7.png


BIN
docs/dev/saga-graphy/graphy-engine/img/source-atop.png


BIN
docs/dev/saga-graphy/graphy-engine/img/source-in.png


BIN
docs/dev/saga-graphy/graphy-engine/img/source-out.png


BIN
docs/dev/saga-graphy/graphy-engine/img/source-over.png


BIN
docs/dev/saga-graphy/graphy-engine/img/square-arrow.png


BIN
docs/dev/saga-graphy/graphy-engine/img/square-jisuan.png


BIN
docs/dev/saga-graphy/graphy-engine/img/triangle-arrow.png


BIN
docs/dev/saga-graphy/graphy-engine/img/wenbenshixian.png


BIN
docs/dev/saga-graphy/graphy-engine/img/xor.png


+ 0 - 93
docs/dev/saga-graphy/graphy-engine/style.md

@@ -1,93 +0,0 @@
-# 颜色与样式
-
-::: details 目录
-[[toc]]
-:::
-
-## 颜色
-### 内置颜色
-SColor 内置了一些常用颜色。见下表:
-
-<table border="0">
-  <tr style="background:#00000000">
-    <td>SColor.Transparent</td>
-    <td>#00000000</td>
-  </tr>
-  <tr style="background:#000000;color:white">
-    <td>SColor.Black</td>
-    <td>#00000000</td>
-  </tr>
-  <tr style="background:#000080;color:white">
-    <td>SColor.DarkBlue</td>
-    <td>#000080</td>
-  </tr>
-  <tr style="background:#0000FF;color:white">
-    <td>SColor.Blue</td>
-    <td>#0000FF</td>
-  </tr>
-  <tr style="background:#008000;color:white">
-    <td>SColor.DarkGreen</td>
-    <td>#008000</td>
-  </tr>
-  <tr style="background:#00FF00;color:white">
-    <td>SColor.Green</td>
-    <td>#00FF00</td>
-  </tr>
-  <tr style="background:#008080;color:white">
-    <td>SColor.DarkCyan</td>
-    <td>#008080</td>
-  </tr>
-  <tr style="background:#00FFFF">
-    <td>SColor.Cyan</td>
-    <td>#00FFFF</td>
-  </tr>
-  <tr style="background:#800000;color:white">
-    <td>SColor.DarkRed</td>
-    <td>#800000</td>
-  </tr>
-  <tr style="background:#FF0000;color:white">
-    <td>SColor.Red</td>
-    <td>#FF0000</td>
-  </tr>
-  <tr style="background:#800080;color:white">
-    <td>SColor.DarkMagenta</td>
-    <td>#800080</td>
-  </tr>
-  <tr style="background:#FF00FF;color:white">
-    <td>SColor.Magenta</td>
-    <td>#FF00FF</td>
-  </tr>
-  <tr style="background:#808000;color:white">
-    <td>SColor.DarkYellow</td>
-    <td>#808000</td>
-  </tr>
-  <tr style="background:#FFFF00">
-    <td>SColor.Yellow</td>
-    <td>#00000000</td>
-  </tr>
-  <tr style="background:#FFFFFF">
-    <td>SColor.White</td>
-    <td>#FFFFFF</td>
-  </tr>
-  <tr style="background:#808080;color:white">
-    <td>SColor.DarkGray</td>
-    <td>#808080</td>
-  </tr>
-  <tr style="background:#A0A0A0">
-    <td>SColor.Gray</td>
-    <td>#A0A0A0</td>
-  </tr>   
-  <tr style="background:#C0C0C0">
-    <td>SColor.LightGray</td>
-    <td>#C0C0C0</td>
-  </tr>  
-</table>
-
-### 填充色实例
-
-### 轮廓色实例
-
-## 阴影
-
-<example-web-graph-style-shadow /> 
-

+ 0 - 3
docs/dev/saga-graphy/graphy-engine/text.md

@@ -1,3 +0,0 @@
-# 绘制文字
-
-

+ 0 - 4
docs/dev/saga-graphy/graphy-engine/transform.md

@@ -1,4 +0,0 @@
-# 变形
-::: details 目录
-[[toc]]
-:::

+ 0 - 58
docs/dev/saga-graphy/index.js

@@ -1,58 +0,0 @@
-const content = [
-    {
-        title: "绘图引擎",
-        path: "/dev/saga-graphy/graphy-engine/",
-        children: [
-            ["/dev/saga-graphy/graphy-engine/draw", "绘制形状"],
-            ["/dev/saga-graphy/graphy-engine/style", "颜色与样式"],
-            ["/dev/saga-graphy/graphy-engine/text", "绘制文字"],
-            ["/dev/saga-graphy/graphy-engine/image", "绘制图片"],
-            ["/dev/saga-graphy/graphy-engine/gradient", "渐变"],
-            ["/dev/saga-graphy/graphy-engine/composite", "融合"],
-            ["/dev/saga-graphy/graphy-engine/transform", "变型"],
-            ["/dev/saga-graphy/graphy-engine/clip", "裁剪"],
-            ["/dev/saga-graphy/graphy-engine/arrow", "绘图指令-绘制带有箭头的线段"],
-        ]
-    },
-    {
-        title: "场景管理",
-        path: "/dev/saga-graphy/scene-manage/",
-        children: [
-            {
-                title: "图元素实例",
-                path: "/dev/saga-graphy/scene-manage/items/",
-                children: [
-                    ["/dev/saga-graphy/scene-manage/items/clock", "时钟"],
-                    ["/dev/saga-graphy/scene-manage/items/text", "文本"],
-                    ["/dev/saga-graphy/scene-manage/items/image", "图片"],
-                    ["/dev/saga-graphy/scene-manage/items/editLine", "可编辑直线"],
-                    ["/dev/saga-graphy/scene-manage/items/editPolyline", "可编辑折线"],
-                    ["/dev/saga-graphy/scene-manage/items/editPolygon", "可编辑多边形示例"],
-                    ["/dev/saga-graphy/scene-manage/items/imgText", "图例item(图片文本组合)"]
-                ]
-            },
-            ["/dev/saga-graphy/scene-manage/undo", "Undo示例"],
-            ["/dev/saga-graphy/scene-manage/align", "对齐示例"],
-        ]
-    },
-    {
-        title: "楼层平面图",
-        path: "/dev/saga-graphy/floor-map/",
-        children: [
-            ["/dev/saga-graphy/floor-map/workLine", "工作流程"],
-            ["/dev/saga-graphy/floor-map/downloadFile", "手工下载楼层底图文件"],
-            ["/dev/saga-graphy/floor-map/jsonFile", "json数据格式"],
-            ["/dev/saga-graphy/floor-map/divide", "划分"],
-            ["/dev/saga-graphy/floor-map/mapDemo", "楼层平面图范例"],
-        ]
-    },
-    {
-        title: "系统图",
-        path: "/dev/saga-graphy/system-diagram/",
-        children: [
-            ["/dev/saga-graphy/system-diagram/json-file", "json数据格式"]
-        ]
-    },
-];
-
-module.exports = content;

+ 0 - 11
docs/dev/saga-graphy/scene-manage/README.md

@@ -1,11 +0,0 @@
-场景管理
-
-
-1.视图-场景-对象的基本说明
-2.绘制封装,painter传递过程
-3.系统事件传递
-4.坐标换算
-5.自定义事件$emit
-6.基本操作,如放大缩小
-7.undo/redo 框架
-8.item实现案例,钟表/连线/多边形

+ 0 - 16
docs/dev/saga-graphy/scene-manage/align.md

@@ -1,16 +0,0 @@
-# 对齐示例
-
-::: details 目录
-[[toc]]
-:::
-
-<example-web-graph-scene-Align />
-
-::: details 查看代码
-<<< @/docs/.vuepress/components/example/web/graph/scene/Align.vue
-:::
-
-::: tip 注
-1、使用对齐时,至少选择2个item<br/>
-2、使用分散对齐时,至少选择3个item<br/>
-:::

+ 0 - 1
docs/dev/saga-graphy/scene-manage/items/README.md

@@ -1 +0,0 @@
-Item

+ 0 - 0
docs/dev/saga-graphy/scene-manage/items/clock.md


Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff