Forráskód Böngészése

修改bug2748 2749

haojianlong 5 éve
szülő
commit
1026209fa9

+ 18 - 3
src/components/ledger/lib/cenoteGraphy.vue

@@ -19,7 +19,7 @@
 <script>
 import canvasFun from "@/components/business_space/newGraphy/canvasFun";
 import { SColor, SPoint } from "@saga-web/draw/lib";
-import { DivideFloorScene, SpaceItem, ZoneItem } from "@saga-web/cad-engine/lib";
+import { DivideFloorScene, SpaceItem, ZoneItem, Opt } from "@saga-web/cad-engine/lib";
 import { FloorView } from "@saga-web/cad-engine/lib/FloorView";
 import { colorArr } from '@/utils/spaceColor';
 import { getFloorMsgByFloorID, shaftSpaceQuery, shaftZoneLinkReplace, zoneQuery } from '@/api/scan/request';
@@ -44,6 +44,7 @@ export default {
         isEdit: false,
         groupSelect: true
       },
+      sceneMarkList: []
     }
   },
   mounted() {
@@ -54,7 +55,7 @@ export default {
     canvasFun
   },
   created() {
-
+    Opt.sceneMarkColor = new SColor('#ffffff');
   },
   methods: {
     //获取楼层map
@@ -67,6 +68,12 @@ export default {
         getFloorMsgByFloorID(pa, res => {
           this.floorMap = res.Content[0].StructureInfo ? res.Content[0].StructureInfo.FloorMap : '';
           this.space = space;
+          // 蒙版
+          if (res.Content[0].Outline) {
+            this.sceneMarkList = res.Content[0].Outline.map(t => {
+              return new SPoint(t.X, t.Y);
+            })
+          }
           this.getGraphy();
         })
       }
@@ -87,6 +94,7 @@ export default {
     getGraphy() {
       let that = this;
       that.clearGraphy()
+      if (!this.floorMap) return
       that.scene = new DivideFloorScene();
       that.canvasLoading = true;
       that.scene.loadUrl(`/image-service/common/file_get?systemId=revit&key=${this.floorMap}`).then(res => {
@@ -97,10 +105,13 @@ export default {
           return;
         }
         that.view.scene = that.scene;
+        if (that.sceneMarkList.length) {
+          that.scene.addSceneMark(that.sceneMarkList)
+        }
         that.scene.isSpaceSelectable = false;
         // 绘制业务空间
         that.getBusinessSpace();
-        that.view.fitSceneToView();
+        that.fit();
         that.view.minScale = that.view.scale;
         if (that.$refs.canvasFun) {
           that.$refs.canvasFun.everyScale = that.view.scale;
@@ -244,6 +255,10 @@ export default {
     },
     // 适配底图到窗口
     fit() {
+      if (this.scene.sceneMark) {
+        this.view.fitItemToView([this.scene.sceneMark])
+        return
+      }
       this.view.fitSceneToView()
     },
     // 缩放

+ 14 - 3
src/views/ledger/rentlist/manageTenantZone.vue

@@ -83,7 +83,7 @@
 import canvasFun from "@/components/business_space/newGraphy/canvasFun";
 import { mapGetters, mapActions } from "vuex";
 import { SColor, SPoint } from "@saga-web/draw/lib";
-import { DivideFloorScene, SpaceItem, ZoneItem, FloorView } from "@saga-web/cad-engine/lib";
+import { DivideFloorScene, SpaceItem, ZoneItem, FloorView, Opt } from "@saga-web/cad-engine/lib";
 import { colorArr } from "@/utils/spaceColor"
 import { buildingQuery, queryTnRelateFloor, queryRentTableData, tnRelateZone, zoneQuery } from '@/api/scan/request'
 export default {
@@ -100,7 +100,7 @@ export default {
       buildSelect: 0,
       activeFloor: 0,
       activeTentanIndex: 0,
-      canvasLoading: true,
+      canvasLoading: false,
       isEdit: false,
       view: '',
       scene: '',
@@ -125,6 +125,7 @@ export default {
   created() {
     this.onlyRead = this.$route.query.onlyRead;
     this.init();
+    Opt.sceneMarkColor = new SColor('#ffffff');
   },
   mounted() {
     this.canvasWidth = this.$refs.graphy.offsetWidth;
@@ -140,6 +141,10 @@ export default {
     },
     // 适配底图到窗口
     fit() {
+      if (this.scene.sceneMark) {
+        this.view.fitItemToView([this.scene.sceneMark])
+        return
+      }
       this.view.fitSceneToView()
     },
     // 缩放
@@ -376,10 +381,16 @@ export default {
             return;
           }
           this.view.scene = this.scene;
+          if (this.floorList[index].Outline) {
+            let newArr = this.floorList[index].Outline.map(t => {
+              return new SPoint(t.X, t.Y);
+            })
+            this.scene.addSceneMark(newArr)
+          }
           this.scene.isSpaceSelectable = false;
           // 绘制业务空间
           this.getBusinessSpace();
-          this.view.fitSceneToView();
+          this.fit();
           this.view.minScale = this.view.scale;
           if (this.$refs.canvasFun) {
             this.$refs.canvasFun.everyScale = this.view.scale;