管道基础大数据平台系统开发-【前端】-新系統界面
1
Surpriseplus
2023-02-01 dda0e6f581e8c2b116f2eae53756d80215d6e5e0
src/views/Synthesis/LeftMenu.vue
@@ -6,12 +6,21 @@
      v-for="(item, index) in setListTwoMenu"
      :class="{ lefMenuDivActive: showTwoMenuFlag == item.id }"
    >
      <div class="menuTwoImage" :class="item.css"></div>
      <div
        class="menuTwoImage"
        :class="item.css"
      ></div>
      <div>{{ $t(item.label) }}</div>
    </div>
    <mapinfo ref="mapinfo" />
    <maplayer ref="maplayer" />
    <input type="file" accept=".kml" class="file" style="display: none" />
    <queryinfo ref="queryinfo" />
    <input
      type="file"
      accept=".kml"
      class="file"
      style="display: none"
    />
  </div>
</template>
@@ -19,9 +28,9 @@
import { transform } from 'ol/proj';
import mapinfo from '../Tools/mapinfo.vue';
import maplayer from '../Tools/maplayer.vue';
import queryinfo from '../Tools/queryinfo.vue'
export default {
  components: { mapinfo, maplayer },
  components: { mapinfo, maplayer, queryinfo },
  data() {
    return {
      showTwoMenuFlag: false,
@@ -34,18 +43,7 @@
            name: '图层管理',
            css: 'twoMenu_imge11',
          },
          {
            id: 'a2',
            name: '场景提取',
            label: 'synthesis.sceneExtraction',
            css: 'twoMenu_imge12',
          },
          {
            id: 'a3',
            label: 'synthesis.release',
            name: '场景发布',
            css: 'twoMenu_imge13',
          },
        ],
        [
          {
@@ -96,6 +94,12 @@
            name: '指北针',
            css: 'twoMenu_imge28',
          },
          {
            id: 'b9',
            label: 'synthesis.undergroundMode',
            name: '地下模式',
            css: 'twoMenu_imge29',
          },
        ],
        [
          {
@@ -122,12 +126,7 @@
            name: '地图快照',
            css: 'twoMenu_imge34',
          },
          {
            id: 'c5',
            label: 'synthesis.tdisplay',
            name: '三维演示',
            css: 'twoMenu_imge35',
          },
        ],
        [
          {
@@ -229,7 +228,7 @@
          {
            id: 'j1',
            label: 'synthesis.synthobj.m1',
            name: '水平距离',
            name: '表面距离',
            css: 'twoMenu_imge71',
          },
          {
@@ -306,13 +305,32 @@
            name: '清除',
            css: 'twoMenu_imge87',
          },
        ],
        ], [
          {
            id: 'i1',
            name: '场景提取',
            label: 'synthesis.sceneExtraction',
            css: 'twoMenu_imge12',
          },
          {
            id: 'i2',
            label: 'synthesis.release',
            name: '场景发布',
            css: 'twoMenu_imge13',
          }, {
            id: 'i3',
            label: 'synthesis.tdisplay',
            name: '三维演示',
            css: 'twoMenu_imge35',
          },
        ]
      ],
      isRuler: false,
      isNaviget: false,
      isolineFlag: false,
      isslopeFlag: false,
      isContrastFlag: false,
      UndergroundMode: false
    };
  },
  methods: {
@@ -354,6 +372,7 @@
          sgworld.Creator.SimpleGraphic.edit(true, { editProp: true });
          this.setPlot(res.id);
          break;
      }
    },
    setPlot(res) {
@@ -362,28 +381,28 @@
          sgworld.Creator.createSimpleGraphic(
            'point',
            {},
            function (entity) {}
            function (entity) { }
          );
          break;
        case 'h2':
          sgworld.Creator.createSimpleGraphic(
            'polyline',
            {},
            function (entity) {}
            function (entity) { }
          );
          break;
        case 'h3':
          sgworld.Creator.createSimpleGraphic(
            'rectangle',
            {},
            function (entity) {}
            function (entity) { }
          );
          break;
        case 'h4':
          sgworld.Creator.createSimpleGraphic(
            'polygon',
            {},
            function (entity) {}
            function (entity) { }
          );
          break;
        case 'h5':
@@ -437,7 +456,7 @@
      }
    },
    handleOpenClick() {
      // let that = this;
      sgworld.Creator.SimpleGraphic.edit(true, { editProp: true });
      let fileInput = document.querySelector('.file');
      fileInput.onchange = function (evt) {
        let files = evt.target.files;
@@ -446,23 +465,59 @@
          let fileReader = new FileReader();
          fileReader.readAsDataURL(file);
          fileReader.onload = () => {
            sgworld.Viewer.dataSources
              .add(
                Cesium.KmlDataSource.load(fileReader.result, {
                  camera: sgworld.Viewer.scene.camera,
                  canvas: sgworld.Viewer.scene.canvas,
                })
              )
              .then((KmlDataSource) => {
                console.log(KmlDataSource);
                // let entities = kmlDataSource.entities;
              });
            var kmlOptions = {
              camera: sgworld.Viewer.scene.camera,
              canvas: sgworld.Viewer.scene.canvas,
              clampToGround: true,
            };
            var geocachePromise = Cesium.KmlDataSource.load(
              fileReader.result,
              kmlOptions
            );
            geocachePromise.then(function (dataSource) {
              var geocacheEntities = dataSource.entities.values;
              for (var i = 0; i < geocacheEntities.length; i++) {
                var entity = geocacheEntities[i];
                sgworld.Viewer.entities.add(entity);
              }
            });
            // sgworld.Viewer.dataSources
            //   .add(
            //     Cesium.KmlDataSource.load(fileReader.result, {
            //       camera: sgworld.Viewer.scene.camera,
            //       canvas: sgworld.Viewer.scene.canvas,
            //     })
            //   )
            //   .then((KmlDataSource) => {
            //     console.log(KmlDataSource);
            //     // let entities = kmlDataSource.entities;
            //   });
          };
        }
        // fileInput.value = null;
      };
      fileInput.click();
    },
    setLayerScene() {
      var URL = window.location.href.split("#");
      this.openwindow({ url: URL[0] + 'LfSKyline/index.html' });
    },
    openwindow(data) {
      var url = data.url;                                          //转向网页的地址;
      var name = data.title || '选择要添加的页面';                  //网页名称,可为空;
      var iWidth = window.screen.width;                           //弹出窗口的宽度;
      var iHeight = window.screen.height;      //弹出窗口的高度;
      var iTop = 0       //获得窗口的垂直位置;
      var iLeft = 0;        //获得窗口的水平位置;
      window.open(url, name, 'height=' + iHeight + ',,innerHeight=' + iHeight + ',width=' + iWidth + ',innerWidth=' + iWidth + ',top=' + iTop + ',left=' + iLeft + ',toolbar=no,menubar=no,scrollbars=auto,resizeable=no,location=no,status=no');
    },
    setMeasurement(res) {
      switch (res) {
        case 'j1':
@@ -473,7 +528,7 @@
            (data) => {
              data.id = window.sgworld.Core.getuid();
              this.measureData.set(data.id, measure);
              this.openMeasureResultInfo('水平距离', data);
              this.openMeasureResultInfo('表面距离', data);
            }
          );
          break;
@@ -490,16 +545,24 @@
          );
          break;
        case 'j3':
          var measure = window.sgworld.Command.execute(
            1,
            11,
            this.colorAll,
            (data) => {
              data.id = window.sgworld.Core.getuid();
              this.measureData.set(data.id, measure);
              this.openMeasureResultInfo('海拔高度', data);
            }
          );
          // var measure = window.sgworld.Command.execute(
          //   1,
          //   11,
          //   this.colorAll,
          //   (data) => {
          //     data.id = window.sgworld.Core.getuid();
          //     this.measureData.set(data.id, measure);
          //     this.openMeasureResultInfo('海拔高度', data);
          //   }
          // );
            var measure = window.sgworld.Command.execute(0, 3, this.colorAll, (data) => {
        data.id = window.sgworld.Core.getuid();
       this.measureData.set(data.id, measure);
        this.openMeasureResultInfo('平面面积', data);
      });
          break;
        case 'j2':
          var measure = window.sgworld.Command.execute(
@@ -549,9 +612,8 @@
            'auto',
            (data) => {
              if (volumetricMeasurementTool.popupData) {
                volumetricMeasurementTool.popupData.value = `填方:${
                  data.volume.fill.toFixed(4) + data.unit.fill
                }<br>挖方:${data.volume.dig.toFixed(4) + data.unit.dig}`;
                volumetricMeasurementTool.popupData.value = `填方:${data.volume.fill.toFixed(4) + data.unit.fill
                  }<br>挖方:${data.volume.dig.toFixed(4) + data.unit.dig}`;
              } else {
                data.id = window.sgworld.Core.getuid();
                this.measureData.set(data.id, volumetricMeasurementTool);
@@ -578,12 +640,12 @@
    openMeasureResultInfo(name, data) {
      let info = '';
      switch (name) {
        case '水平距离':
        case '表面距离':
        case '空间距离':
          info = '总长度:' + data.distance[data.distance.length - 1];
          break;
        case '海拔高度':
          info = '海拔:' + data.height;
          info = '高度:' + data.height;
          break;
        case '垂直高度':
          info = `${data.gddistance}<br>${data.kjdistance}<br>${data.spdistance}`;
@@ -598,9 +660,8 @@
          });
          break;
        case '体积方量':
          info = `填方:${
            data.volume.fill.toFixed(4) + data.unit.fill
          }<br>挖方:${data.volume.dig.toFixed(4) + data.unit.dig}`;
          info = `填方:${data.volume.fill.toFixed(4) + data.unit.fill
            }<br>挖方:${data.volume.dig.toFixed(4) + data.unit.dig}`;
          break;
      }
      return (
@@ -689,9 +750,8 @@
            'auto',
            (data) => {
              if (volumetricMeasurementTool.popupData) {
                volumetricMeasurementTool.popupData.value = `填方:${
                  data.volume.fill.toFixed(4) + data.unit.fill
                }<br>挖方:${data.volume.dig.toFixed(4) + data.unit.dig}`;
                volumetricMeasurementTool.popupData.value = `填方:${data.volume.fill.toFixed(4) + data.unit.fill
                  }<br>挖方:${data.volume.dig.toFixed(4) + data.unit.dig}`;
              } else {
                data.id = sgworld.Core.getuid();
                this.measureData.set(data.id, volumetricMeasurementTool);
@@ -715,6 +775,19 @@
              that.setclippingModel();
            }
          );
          break;
        case 'd9':
          this.$store.state.mapPopBoxFlag = '3';
          this.$refs && this.$refs.queryinfo && this.$refs.queryinfo.open("管道空间分析", null, {
            close: () => {
              if (this.$store.state.pipelineEntity.length != 0) {
                for (var i in this.$store.state.pipelineEntity) {
                  var item = this.$store.state.pipelineEntity[i]
                  sgworld.Viewer.entities.remove(item);
                }
              }
            }
          });
          break;
        case 'd8':
          if (this.isContrastFlag == false) {
@@ -749,6 +822,7 @@
            );
          }
          break;
        case 'd11':
          if (window.Excavation) {
            window.Excavation.clear();
@@ -757,7 +831,7 @@
            window.Excavation = sgworld.Analysis.TerrainExcavation(
              10,
              {},
              function () {}
              function () { }
            );
          }
          break;
@@ -804,10 +878,9 @@
        2,
        2,
        method,
        (value) => {}
        (value) => { }
      );
    },
    addterrainSectionAnalysis() {
      window.AnalysisDXPM = sgworld.Command.execute(
        2,
@@ -815,6 +888,11 @@
        { cyjj: 50, objid: 0 },
        (Distance) => {
          if (Distance.gcs && Distance.gcs.length) {
            var url = window.location.href;
            var testurl = '';
            if (url.indexOf('web') != -1) {
              testurl = '/web';
            }
            window.AnalysisDXPM.analyseData = Distance;
            this.dxpmIndex = layer.open({
              type: 2,
@@ -823,7 +901,7 @@
              area: ['80%', '280px'],
              offset: 'b',
              skin: 'other-class',
              content: '/SmartEarthSDK/Workers/analysis/AnalysisDXPM.html',
              content: testurl + '/SmartEarthSDK/Workers/analysis/AnalysisDXPM.html',
              end: () => {
                this.dxpmIndex && this.clear('d4');
              },
@@ -933,12 +1011,23 @@
          this.isNaviget = !this.isNaviget;
          window.sgworld.navControl('nav', this.isNaviget);
          break;
        case 'b9': //地下模式
          this.UndergroundMode = !this.UndergroundMode;
          window.sgworld.Analysis.UndergroundMode(this.UndergroundMode, 0.3)
          break;
      }
    },
    setCoverage(res) {
      switch (res) {
        case 'a1':
          this.$refs && this.$refs.maplayer && this.$refs.maplayer.open();
          if (this.$store.state.layerMnage == false) {
            this.$refs && this.$refs.maplayer && this.$refs.maplayer.open();
            this.$store.state.layerMnage = true;
          } else if (this.$store.state.layerMnage == true) {
            this.$refs && this.$refs.maplayer && this.$refs.maplayer.close();
            this.$store.state.layerMnage = false;
          }
          break;
      }
    },
@@ -954,7 +1043,17 @@
      polygon: Cesium.Color.fromCssColorString('#ffff00').withAlpha(0.6),
    };
    this.$bus.$on('setChangeTwoMenu', (res) => {
      this.menuChange(res);
      if (res == 8) { this.setLayerScene(); } else {
        this.menuChange(res);
      }
    });
    this.$bus.$on('showLeftMenu', (res) => {
      this.$store.state.showAllLayers = true;
      this.setCoverage('a1');
    });
  },
};
@@ -998,167 +1097,170 @@
  }
  .twoMenu_imge11 {
    background: url('../../assets/img/synthesis/图层 32.png') no-repeat center;
    background: url("../../assets/img/synthesis/图层 32.png") no-repeat center;
  }
  .twoMenu_imge12 {
    background: url('../../assets/img/synthesis/图层 35.png') no-repeat center;
    background: url("../../assets/img/synthesis/图层 35.png") no-repeat center;
  }
  .twoMenu_imge13 {
    background: url('../../assets/img/synthesis/发布.png') no-repeat center;
    background: url("../../assets/img/synthesis/发布.png") no-repeat center;
  }
  //视图
  .twoMenu_imge21 {
    background: url('../../assets/img/synthesis/圆角矩形 12 拷贝 3.png')
    background: url("../../assets/img/synthesis/圆角矩形 12 拷贝 3.png")
      no-repeat center;
  }
  .twoMenu_imge22 {
    background: url('../../assets/img/synthesis/图层 10 拷贝.png') no-repeat
    background: url("../../assets/img/synthesis/图层 10 拷贝.png") no-repeat
      center;
  }
  .twoMenu_imge23 {
    background: url('../../assets/img/synthesis/图层 11 拷贝.png') no-repeat
    background: url("../../assets/img/synthesis/图层 11 拷贝.png") no-repeat
      center;
  }
  .twoMenu_imge24 {
    background: url('../../assets/img/synthesis/图层 12 拷贝 2.png') no-repeat
    background: url("../../assets/img/synthesis/图层 12 拷贝 2.png") no-repeat
      center;
  }
  .twoMenu_imge25 {
    background: url('../../assets/img/synthesis/圆角矩形 5 拷贝 2.png')
    background: url("../../assets/img/synthesis/圆角矩形 5 拷贝 2.png")
      no-repeat center;
  }
  .twoMenu_imge26 {
    background: url('../../assets/img/synthesis/圆角矩形 5 拷贝 3.png')
    background: url("../../assets/img/synthesis/圆角矩形 5 拷贝 3.png")
      no-repeat center;
  }
  .twoMenu_imge27 {
    background: url('../../assets/img/synthesis/矩形 9.png') no-repeat center;
    background: url("../../assets/img/synthesis/矩形 9.png") no-repeat center;
  }
  .twoMenu_imge28 {
    background: url('../../assets/img/synthesis/椭圆 4.png') no-repeat center;
    background: url("../../assets/img/synthesis/椭圆 4.png") no-repeat center;
  }
  .twoMenu_imge29 {
    background: url("../../assets/img/synthesis/z_03.png") no-repeat center;
  }
  //漫游
  .twoMenu_imge31 {
    background: url('../../assets/img/synthesis/椭圆 6.png') no-repeat center;
    background: url("../../assets/img/synthesis/椭圆 6.png") no-repeat center;
  }
  .twoMenu_imge32 {
    background: url('../../assets/img/synthesis/椭圆 7 拷贝 2.png') no-repeat
    background: url("../../assets/img/synthesis/椭圆 7 拷贝 2.png") no-repeat
      center;
  }
  .twoMenu_imge33 {
    background: url('../../assets/img/synthesis/图层 14 副本 拷贝.png')
    background: url("../../assets/img/synthesis/图层 14 副本 拷贝.png")
      no-repeat center;
  }
  .twoMenu_imge34 {
    background: url('../../assets/img/synthesis/图层 74 拷贝 2.png') no-repeat
    background: url("../../assets/img/synthesis/图层 74 拷贝 2.png") no-repeat
      center;
  }
  .twoMenu_imge35 {
    background: url('../../assets/img/synthesis/椭圆 7 拷贝 4.png') no-repeat
    background: url("../../assets/img/synthesis/椭圆 7 拷贝 4.png") no-repeat
      center;
  }
  //分析
  .twoMenu_imge41 {
    background: url('../../assets/img/synthesis/椭圆 8 拷贝 8.png') no-repeat
    background: url("../../assets/img/synthesis/椭圆 8 拷贝 8.png") no-repeat
      center;
  }
  .twoMenu_imge42 {
    background: url('../../assets/img/synthesis/圆角矩形 12 拷贝 5.png')
    background: url("../../assets/img/synthesis/圆角矩形 12 拷贝 5.png")
      no-repeat center;
  }
  .twoMenu_imge43 {
    background: url('../../assets/img/synthesis/圆角矩形 10 副本 3.png')
    background: url("../../assets/img/synthesis/圆角矩形 10 副本 3.png")
      no-repeat center;
  }
  .twoMenu_imge44 {
    background: url('../../assets/img/synthesis/图层 74 拷贝 3.png') no-repeat
    background: url("../../assets/img/synthesis/图层 74 拷贝 3.png") no-repeat
      center;
  }
  .twoMenu_imge45 {
    background: url('../../assets/img/synthesis/图层 20.png') no-repeat center;
    background: url("../../assets/img/synthesis/图层 20.png") no-repeat center;
  }
  .twoMenu_imge46 {
    background: url('../../assets/img/synthesis/图层 14 拷贝 3.png') no-repeat
    background: url("../../assets/img/synthesis/图层 14 拷贝 3.png") no-repeat
      center;
  }
  .twoMenu_imge47 {
    background: url('../../assets/img/synthesis/图层 18.png') no-repeat center;
    background: url("../../assets/img/synthesis/图层 18.png") no-repeat center;
  }
  .twoMenu_imge48 {
    background: url('../../assets/img/synthesis/圆角矩形 12 拷贝 6.png')
    background: url("../../assets/img/synthesis/圆角矩形 12 拷贝 6.png")
      no-repeat center;
  }
  .twoMenu_imge49 {
    background: url('../../assets/img/synthesis/管道.png') no-repeat center;
    background: url("../../assets/img/synthesis/管道.png") no-repeat center;
  }
  .twoMenu_imge410 {
    background: url('../../assets/img/synthesis/dxkw.png') no-repeat center;
    background: url("../../assets/img/synthesis/dxkw.png") no-repeat center;
  }
  .twoMenu_imge411 {
    background: url('../../assets/img/synthesis/矩形 14 拷贝 7.png') no-repeat
    background: url("../../assets/img/synthesis/矩形 14 拷贝 7.png") no-repeat
      center;
  }
  //查询
  .twoMenu_imge51 {
    background: url('../../assets/img/synthesis/图层 23.png') no-repeat center;
    background: url("../../assets/img/synthesis/图层 23.png") no-repeat center;
  }
  .twoMenu_imge52 {
    background: url('../../assets/img/synthesis/空间查询.png') no-repeat center;
    background: url("../../assets/img/synthesis/空间查询.png") no-repeat center;
  }
  //定位
  .twoMenu_imge61 {
    background: url('../../assets/img/synthesis/图层 27.png') no-repeat center;
    background: url("../../assets/img/synthesis/图层 27.png") no-repeat center;
  }
  .twoMenu_imge62 {
    background: url('../../assets/img/synthesis/图层 28.png') no-repeat center;
    background: url("../../assets/img/synthesis/图层 28.png") no-repeat center;
  }
  //测量
  .twoMenu_imge71 {
    background: url('../../assets/img/synthesis/图层 31.png') no-repeat center;
    background: url("../../assets/img/synthesis/图层 31.png") no-repeat center;
  }
  .twoMenu_imge72 {
    background: url('../../assets/img/synthesis/图层 31 拷贝.png') no-repeat
    background: url("../../assets/img/synthesis/图层 31 拷贝.png") no-repeat
      center;
  }
  .twoMenu_imge73 {
    background: url('../../assets/img/synthesis/矩形 13 拷贝.png') no-repeat
    background: url("../../assets/img/synthesis/矩形 13 拷贝.png") no-repeat
      center;
  }
  .twoMenu_imge74 {
    background: url('../../assets/img/synthesis/图层 18 拷贝.png') no-repeat
    background: url("../../assets/img/synthesis/图层 18 拷贝.png") no-repeat
      center;
  }
  .twoMenu_imge75 {
    background: url('../../assets/img/synthesis/M 拷贝.png') no-repeat center;
    background: url("../../assets/img/synthesis/M 拷贝.png") no-repeat center;
  }
  .twoMenu_imge76 {
    background: url('../../assets/img/synthesis/空间测距.png') no-repeat center;
    background: url("../../assets/img/synthesis/空间测距.png") no-repeat center;
  }
  //标绘
  .twoMenu_imge81 {
    background: url('../../assets/img/synthesis/椭圆 5 拷贝 3.png') no-repeat
    background: url("../../assets/img/synthesis/椭圆 5 拷贝 3.png") no-repeat
      center;
  }
  .twoMenu_imge82 {
    background: url('../../assets/img/synthesis/椭圆 3 拷贝 16.png') no-repeat
    background: url("../../assets/img/synthesis/椭圆 3 拷贝 16.png") no-repeat
      center;
  }
  .twoMenu_imge83 {
    background: url('../../assets/img/synthesis/椭圆 3 拷贝 20.png') no-repeat
    background: url("../../assets/img/synthesis/椭圆 3 拷贝 20.png") no-repeat
      center;
  }
  .twoMenu_imge84 {
    background: url('../../assets/img/synthesis/椭圆 3 拷贝 23.png') no-repeat
    background: url("../../assets/img/synthesis/椭圆 3 拷贝 23.png") no-repeat
      center;
  }
  .twoMenu_imge85 {
    background: url('../../assets/img/synthesis/导入.png') no-repeat center;
    background: url("../../assets/img/synthesis/导入.png") no-repeat center;
  }
  .twoMenu_imge86 {
    background: url('../../assets/img/synthesis/导出.png') no-repeat center;
    background: url("../../assets/img/synthesis/导出.png") no-repeat center;
  }
  .twoMenu_imge87 {
    background: url('../../assets/img/synthesis/清除.png') no-repeat center;
    background: url("../../assets/img/synthesis/清除.png") no-repeat center;
  }
}
</style>