فهرست منبع

比例尺字段修改

haojianlong 4 سال پیش
والد
کامیت
df8cd3d4dd

+ 12 - 9
src/components/ledger/lib/bimDialog.vue

@@ -119,13 +119,15 @@
                 let x = 0;
                 let y = 0;
                 let scale = 1;
-                if (this.floorData && this.floorData.Properties) {
-                  x = this.floorData.Properties.X;
-                  y = this.floorData.Properties.Y;
-                  const pro = this.floorData.Properties;
-                  const dis = SMathUtil.pointDistance(pro.Line[0].x, pro.Line[0].y, pro.Line[1].x, pro.Line[1].y)
-                  const proText = pro.Text.substring(0, pro.Text.length - 3);
-                  scale = proText / dis;
+                if (this.floorData && this.floorData.StructureInfo && this.floorData.StructureInfo.FloorMapRatio && this.floorData.StructureInfo.FloorMapShift) {
+                  try {
+                    const point = JSON.parse(this.floorData.StructureInfo.FloorMapShift);
+                    x = point.X;
+                    y = point.Y;
+                    scale = this.floorData.StructureInfo.FloorMapRatio;
+                  } catch (err) {
+                    console.log(err);
+                  }
                 }
                 that.drawMainScene.loadImg(`/image-service/common/image_get?systemId=dataPlatform&key=${Id}`, (res) => {
                     that.getGraphtSuc(res)
@@ -247,9 +249,10 @@
       canvasClick(item, event) {
         if (item instanceof SGraphItem) {
           this.clearMark()
+          const p = item.mapToScene(event[0].x, event[0].y)
           let obj = {
-            X: event[0].x,
-            Y: event[0].y,
+            X: p.x,
+            Y: p.y,
           }
           this.drawMainScene.addMarker(obj)
           this.view.fitSceneToView()

+ 3 - 6
src/components/ledger/lib/floorCascader.vue

@@ -79,8 +79,7 @@
                         "FloorLocalName",
                         "FloorSequenceID",
                         "StructureInfo",
-                        "Outline",
-                        "Properties"
+                        "Outline"
                     ]
                 }
                 let promise1 = new Promise((resolve, reject) => {
@@ -117,8 +116,7 @@
                                         label: floor.FloorLocalName,
                                         FloorSequenceID: floor.FloorSequenceID,
                                         StructureInfo: floor.StructureInfo || {},
-                                        Outline: floor.Outline || null,
-                                        Properties: floor.Properties || null
+                                        Outline: floor.Outline || null
                                     })
                                 } else {
                                     build.children = []
@@ -133,8 +131,7 @@
                                         label: floor.FloorLocalName,
                                         FloorSequenceID: floor.FloorSequenceID,
                                         StructureInfo: floor.StructureInfo || {},
-                                        Outline: floor.Outline || null,
-                                        Properties: floor.Properties || null
+                                        Outline: floor.Outline || null
                                     })
                                 }
                             }

+ 12 - 9
src/views/ledger/facility/batchPoint.vue

@@ -379,10 +379,11 @@ export default {
     // 打点
     spaceClick(item, e) {
         if (this.isMarking) {
+            const p = item.mapToScene(e[0].x, e[0].y)
             this.scene.addIconText({
                 id: this.equipData.EquipID,
-                X: e[0].x, 
-                Y: e[0].y, 
+                X: p.x, 
+                Y: p.y, 
                 Z: 0,
                 text: [`${this.equipData.EquipLocalName || '--'}\n${this.equipData.EquipLocalID || '--'}\n0`]
             });
@@ -487,13 +488,15 @@ export default {
         let x = 0;
         let y = 0;
         let scale = 1;
-        if (this.floorData && this.floorData.Properties) {
-            x = this.floorData.Properties.X;
-            y = this.floorData.Properties.Y;
-            const pro = this.floorData.Properties;
-            const dis = SMathUtil.pointDistance(pro.Line[0].x, pro.Line[0].y, pro.Line[1].x, pro.Line[1].y)
-            const proText = pro.Text.substring(0, pro.Text.length - 3);
-            scale = proText / dis;
+        if (this.floorData && this.floorData.StructureInfo && this.floorData.StructureInfo.FloorMapRatio && this.floorData.StructureInfo.FloorMapShift) {
+            try {
+                const point = JSON.parse(this.floorData.StructureInfo.FloorMapShift);
+                x = point.X;
+                y = point.Y;
+                scale = this.floorData.StructureInfo.FloorMapRatio;
+            } catch (err) {
+                console.log(err);
+            }
         }
         this.scene.loadImg(`/image-service/common/image_get?systemId=dataPlatform&key=${this.floorMap}`, res => {
           this.getGraphtSuc(res)

+ 12 - 7
src/views/ready/buildfloor/drawGraphy/drawFloor.vue

@@ -122,14 +122,19 @@ export default {
       this.drawMainScene.isSpaceSelectable = false;
 
       if (this.type == 3) {
-        this.addScaleItem(this.floorData.Properties)
-        this.$emit('getGraphSuc');
-        if (this.floorData.Properties) {
-          const x = this.floorData.Properties.X;
-          const y = this.floorData.Properties.Y;
-          if (x != 0 || y != 0) {
-            this.drawMainScene.imgList[0].moveTo(x, y);
+        try {
+          this.addScaleItem(this.floorData.Properties)
+          this.$emit('getGraphSuc');
+          if (this.floorData.StructureInfo && this.floorData.StructureInfo.FloorMapShift) {
+            const struct = JSON.parse(this.floorData.StructureInfo.FloorMapShift)
+            const x = struct.X;
+            const y = struct.Y;
+            if (x != 0 || y != 0) {
+              this.drawMainScene.imgList[0].moveTo(x, y);
+            }
           }
+        } catch (err) {
+          console.log(err);
         }
       }
 

+ 13 - 4
src/views/ready/buildfloor/repetitionGraphy.vue

@@ -320,13 +320,19 @@ export default {
       const line = scaleItem.line.map(t => {
         return { x: t.x + this.baseImgItem.x, y: t.y + this.baseImgItem.y }
       })
+      // 计算放缩比例
+      const proDis = SMathUtil.pointDistance(line[0].x, line[0].y, line[1].x, line[1].y)
+      const proText = scaleItem.text.substring(0, scaleItem.text.length - 3);
+      const proScale = proDis / proText;
       let Param = {
         Content: [{
           FloorId: this.FloorID,
-          StructureInfo: { FloorMap: this.key },
+          StructureInfo: { 
+            FloorMap: this.key,
+            FloorMapRatio: proScale,
+            FloorMapShift: JSON.stringify({X: this.baseImgItem.x, Y: this.baseImgItem.y})
+          },
           Properties: {
-            X: this.baseImgItem.x,
-            Y: this.baseImgItem.y,
             Line: line,
             Text: scaleItem.text
           }
@@ -423,8 +429,11 @@ export default {
           this.curImgItem = new SImageItem(null, url);
           this.curImgItem.enabled = false;
           this.curImgItem.showType = SImageShowType.AutoFit;
+          const structure = v.StructureInfo;
           if (v.Properties) {
             try {
+              // 
+              const point = JSON.parse(structure.FloorMapShift)
               // 计算两个比例尺差距
               const scaleItem = this.$refs.drawFloor.scaleItem
               this.curImgItem.zOrder = scaleItem.zOrder - 1;
@@ -433,7 +442,7 @@ export default {
                 this.$message.warning('比例尺相差较大,可以返回上一步修改比例尺')
               }
               this.curImgItem.showType == SImageShowType.Full;
-              this.curImgItem.moveTo(v.Properties.X, v.Properties.Y);
+              this.curImgItem.moveTo(point.X, point.Y);
             } catch (err) {
               console.log(err);
             }