Parcourir la source

Merge branch 'dev' of http://39.106.8.246:3003/web/ibms into dev

shaun-sheep il y a 5 ans
Parent
commit
ea45985448

+ 1 - 1
package.json

@@ -23,7 +23,7 @@
     "@saga-web/cad-engine": "2.0.548",
     "@saga-web/draw": "2.1.75",
     "@saga-web/graphy": "2.1.42",
-    "@saga-web/topology": "1.0.10",
+    "@saga-web/topology": "1.0.41",
     "axios": "^0.18.0",
     "echarts": "^4.1.0",
     "el-cascader-multi": "^1.1.8",

+ 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()
     },
     // 缩放

+ 5 - 4
src/views/business_space/dataUtil/topology.vue

@@ -83,17 +83,18 @@ export default {
       let equipdata = {
         ID: this.uuid(),
         Size: {
-          Width: 200,
-          Height: 100
+          Width: 100,
+          Height: 50
         },
-        AnchorList: [{ Pos: { X: 0, Y: 0 }, FaceType: 0 }]
+        Pos:{},
+        AnchorList: [{ FaceType: 0, Pos: {} }, { FaceType: 1, Pos: {} }, { FaceType: 2, Pos: {} }, { FaceType: 3, Pos: {} }]
       }
       this.scene.createItem(equipdata)
       this.scene.grabItem.moveable = true
       console.log(this.scene)
       console.log(this.view)
     },
-    drawline(){
+    drawline() {
       this.scene.isLining = true;
     },
     uuid(len, radix) {

+ 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;

+ 2 - 1
src/views/ready/buildfloor/drawGraphy/drawFloor.vue

@@ -64,7 +64,7 @@ export default {
   },
   methods: {
     //
-    init(){
+    init() {
       this.getFloorData();
     },
     // 初始化canvas
@@ -143,6 +143,7 @@ export default {
           }
         });
         this.drawMainScene.addAllShade(this.shadeList);
+        this.$emit('changeSign', this.shadeList.length > 0);
       });
     },
     // 清空平面图

+ 7 - 3
src/views/ready/buildfloor/repetitionGraphy.vue

@@ -4,14 +4,14 @@
     <div class="buttons">
       <el-button icon="el-icon-back" size="mini" @click="backRouter"></el-button>
       <el-button v-if="!isEdit" size="mini" @click="changeGraphy">替换平面图</el-button>
-      <el-button v-if="sign&&!isEdit" size="mini" @click="editGraphy">编辑平面图</el-button>
+      <el-button v-if="(sign||otherSign)&&!isEdit" size="mini" @click="editGraphy">编辑平面图</el-button>
       <el-button v-if="isEdit" size="mini" @click="cancel">取消</el-button>
       <el-button v-if="isEdit" size="mini" @click="confirm" type="primary">确认</el-button>
       <span style="float:right;" v-if="file.FolderName">当前对应的模型文件:{{file.FolderName}} - {{file.FloorName}}</span>
     </div>
     <!-- 展示图片 -->
     <div class="drawImg">
-      <drawFloor ref="drawFloor" :isEdit="isEdit" :showTools="true" :id="1"></drawFloor>
+      <drawFloor ref="drawFloor" :isEdit="isEdit" :showTools="true" :id="1" @changeSign="changeSign"></drawFloor>
     </div>
     <!-- 查看图片弹窗 -->
     <checkGraphy ref="checkGraphy" @refresh="refresh" :alreadyRelatedModel='alreadyRelatedModel'></checkGraphy>
@@ -33,7 +33,8 @@ export default {
       isEdit: false, // 是否编辑模式
       file: {},
       alreadyRelatedModel: [],
-      sign: false
+      sign: false,
+      otherSign: false
     };
   },
   created() {
@@ -123,6 +124,9 @@ export default {
         }).filter(t => t);
       });
     },
+    changeSign(flag){
+      this.otherSign = flag
+    }
   },
   watch: {
     modelId(n, o) {