Browse Source

建筑楼层平面图划分

haojianlong 5 years ago
parent
commit
82cca8c3a4

+ 4 - 4
package.json

@@ -25,10 +25,10 @@
         "vue-router": "^3.0.1",
         "vuex": "^3.1.0",
         "cad-engine": "2.0.250",
-        "@saga-web/base": "2.1.8",
-        "@saga-web/draw": "2.1.57",
-        "@saga-web/graphy": "2.1.28",
-        "@saga-web/cad-engine": "2.0.308"
+        "@saga-web/base": "2.1.9",
+        "@saga-web/draw": "2.1.58",
+        "@saga-web/graphy": "2.1.30",
+        "@saga-web/cad-engine": "2.0.345"
     },
     "devDependencies": {
         "ajv": "^6.9.1",

+ 20 - 1
src/components/business_space/newGraphy/canvasFun.vue

@@ -16,7 +16,14 @@
       </el-dropdown>
     </div>
     <div v-if="isEdit" :class="{'active':active=='divide'}">
-      <i class="iconfont icon-edit1" @click="divide"></i>
+      <el-dropdown size="mini" placement="top-start" @command="handleDivideCommand" :hide-on-click="false">
+        <i class="iconfont icon-edit1" @click="divide"></i>
+        <el-dropdown-menu slot='dropdown'>
+          <el-dropdown-item command="savePng">
+            吸附<el-switch v-model="isSwitch"></el-switch>
+          </el-dropdown-item>
+        </el-dropdown-menu>
+      </el-dropdown>
     </div>
     <div v-if="isEdit">
       <i class="iconfont icon-Erase" @click="clearDivide"></i>
@@ -46,6 +53,7 @@ export default {
       active: '',
       min: 1,
       everyScale: 1, // 每份的放大倍数
+      isSwitch: false, // 是否开启吸附
     }
   },
   props: {
@@ -70,6 +78,10 @@ export default {
     handleCommand(command) {
       this.$emit(command)
     },
+    // 是否开启吸附
+    handleDivideCommand(commond) {
+      this.$emit('changeAbsorb', this.isSwitch);
+    },
     // 切割编辑
     divide() {
       this.active = 'divide';
@@ -124,14 +136,21 @@ export default {
     background-color: #6da60f;
     i {
       cursor: pointer;
+      color: #fff;
     }
   }
+  & > div:active {
+    background-color: #4b7902;
+  }
   & > div.active {
     background-color: #4b7902;
   }
   &.isEdit > div {
     background-color: #02a7f0;
   }
+  &.isEdit > div:active {
+    background-color: #027db4;
+  }
   &.isEdit > div.active {
     background-color: #027db4;
   }

+ 8 - 14
src/views/ready/buildfloor/drawGraphy/drawFloor.vue

@@ -2,15 +2,15 @@
   <div :id="`drawFloor${id}`" class="drawFloor" v-loading="canvasLoading">
     <canvas :id="`floorCanvas${id}`" :width="cadWidth" :height="cadHeight" ref="canvas" tabindex="0"></canvas>
     <div class="operate" v-if="showTools">
-      <canvasFun @move="moveCanvas" @fit="fit" @savePng="savePng" @saveSvg="saveSvg" @divide="divide" @clearDivide="clearDivide" @undo="undo"
-        @redo="redo" @scale="scale" :isEdit="isEdit" ref="canvasFun"></canvasFun>
+      <canvasFun @fit="fit" @savePng="savePng" @saveSvg="saveSvg" @divide="divide" @clearDivide="clearDivide" @undo="undo" @redo="redo" @scale="scale"
+        @changeAbsorb="changeAbsorb" :isEdit="isEdit" ref="canvasFun"></canvasFun>
     </div>
   </div>
 </template>
 
 <script>
 import { SGraphyView } from "@saga-web/graphy/lib";
-import { DivideFloorScene } from "@saga-web/cad-engine/lib"
+import { DivideFloorScene, FloorView } from "@saga-web/cad-engine/lib"
 import { SColor, SPoint } from "@saga-web/draw/lib";
 import canvasFun from "@/components/business_space/newGraphy/canvasFun"
 import { floorQuery } from "@/api/scan/request";
@@ -123,23 +123,13 @@ export default {
         return
       }
       let id = `floorCanvas${this.id}`;
-      this.view = new SGraphyView(id)
+      this.view = new FloorView(id)
     },
     // canvas 获取焦点
     focus() {
       document.getElementById(`floorCanvas${this.id}`).focus()
     },
     // 工具栏操作
-    // 移动底图
-    moveCanvas(move) {
-      // todo
-      let canvas = document.getElementById(`floorCanvas${this.id}`);
-      if (move) {
-        canvas.style.cursor = 'move';
-      } else {
-        canvas.style.cursor = 'default';
-      }
-    },
     // 适配底图到窗口
     fit() {
       this.view.fitSceneToView()
@@ -160,6 +150,10 @@ export default {
     clearDivide() {
       this.drawMainScene.clearSceneMark()
     },
+    // 吸附
+    changeAbsorb(isAbsorbing) {
+      this.drawMainScene.isAbsorbing = isAbsorbing;
+    },
     // 撤销
     undo() {