管道基础大数据平台系统开发-【前端】-新系統界面
1
Surpriseplus
2022-11-29 271d931fc950745d37554528324cbc8a636d85c3
1
已添加1个文件
已修改11个文件
1878 ■■■■■ 文件已修改
public/config/config.js 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/api.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/MapDiv.vue 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/mapol.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/mapsdk.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/mapviewTwo.vue 118 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Archive/index.vue 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Synthesis/LeftMenu.vue 1000 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Synthesis/analyse.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Synthesis/index.vue 536 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/metadataManage.vue 73 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/exportMap/index.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/config/config.js
@@ -3,13 +3,16 @@
var socketUrl = 'ws://192.168.20.39:12316/ws/select';
//数据库监控地址
var sql_Url = 'http://192.168.20.39:8081/admin/druid/sql.html';
//路径分析地址
var wnsUrl = 'http://192.168.20.39:9055/gisserver/wnsserver/beijingdaohang_wns';
//gisserver
var gisServerUrl = 'http://192.168.20.39:9055/gisserver';
//综合展示
window.sceneConfig = {
  // sdk许可
  licenseServer: 'http://192.168.20.39/LFServer',
  // æœåŠ¡åœ°å€
  baseURL: 'http://183.162.245.49:8888/',
  positionBtn: [],
  mpt: {
    url: 'http://183.162.245.49:82/SG/Elevation',
src/api/api.js
@@ -431,6 +431,15 @@
export function meta_downloadReq(params) {
  return request.post('/meta/downloadReq', params);
}
//元数据=>密码初始化
export function sign_getPublicKey(params) {
  return request.get('/sign/getPublicKey', { params: params });
}
//元数据=>下载文件
export function meta_selectDownloadFile(params) {
  return request.get('meta/selectDownloadFile', { params: params });
}
//综合展示获取
export function select_Comprehensive_ByPageAndCount(params) {
  return request.get('/comprehensive/selectAddrByPage', { params: params });
src/components/MapDiv.vue
@@ -24,13 +24,13 @@
</template>
<script>
import mapsdk from "./mapsdk";
import mapol from "./mapol";
import { transform } from "ol/proj";
import ol from "ol";
import $ from "jquery";
import mapsdk from './mapsdk';
import mapol from './mapol';
import { transform } from 'ol/proj';
import ol from 'ol';
import $ from 'jquery';
export default {
  name: "",
  name: '',
  components: {
    mapsdk,
    mapol,
@@ -88,44 +88,44 @@
    },
    showSplitMap() {
      var that = this;
      $("#mapView")
      $('#mapView')
        .off()
        .on("mousemove", function () {
        .on('mousemove', function () {
          if (that.isSplitFlag == 1) {
            window.Viewer.camera.changed.addEventListener(that.sdktool());
          }
        })
        .on("mouseout", function () {
        .on('mouseout', function () {
          if (that.isSplitFlag == 1) {
            window.Viewer.camera.changed.removeEventListener(that.sdktool());
          }
        });
      let mapZoomAndMove = function (event) {
        var position = window.map.getView().getCenter();
        var pos = transform(position, "EPSG:3857", "EPSG:4326");
        var pos = transform(position, 'EPSG:3857', 'EPSG:4326');
        var level = that.getHeight(parseInt(window.map.getView().getZoom()));
        window.Viewer.camera.setView({
          destination: Cesium.Cartesian3.fromDegrees(pos[0], pos[1], level),
        });
      };
      $("#map")
      $('#map')
        .off()
        .on("mousemove", function () {
        .on('mousemove', function () {
          if (that.isSplitFlag == 1) {
            that.olzoomAndMove(mapZoomAndMove);
          }
        })
        .on("mouseout", function () {
        .on('mouseout', function () {
          if (that.isSplitFlag == 1) {
            that.clearolzoomAndMove();
          }
        });
    },
    clearolzoomAndMove() {
      let registerOnZoomArr = window.map.get("registerOnZoom");
      let registerOnZoomArr = window.map.get('registerOnZoom');
      if (registerOnZoomArr && registerOnZoomArr.length > 0) {
        for (let i = 0; i < registerOnZoomArr.length; i++) {
          window.map.un("moveend", registerOnZoomArr[i]);
          window.map.un('moveend', registerOnZoomArr[i]);
        }
      }
    },
@@ -146,15 +146,15 @@
        window.map.lastZoom = window.map.getView().getZoom();
      };
      // ä¿å­˜ç¼©æ”¾å’Œæ‹–动事件对象,用于后期移除
      let registerOnZoomArr = map.get("registerOnZoom") || [];
      let registerOnZoomArr = map.get('registerOnZoom') || [];
      registerOnZoomArr.push(registerOnZoom);
      // ä½¿ç”¨åœ°å›¾ set æ–¹æ³•保存事件对象
      window.map.set("registerOnZoom", registerOnZoomArr);
      window.map.set('registerOnZoom', registerOnZoomArr);
      // ç›‘听地图移动结束事件
      window.map.on("moveend", registerOnZoom);
      window.map.on('moveend', registerOnZoom);
      return eventListen;
    },
@@ -168,7 +168,7 @@
      var level = this.getLevel(cartographic.height);
      window.map
        .getView()
        .setCenter(transform([lng, lat], "EPSG:4326", "EPSG:3857"));
        .setCenter(transform([lng, lat], 'EPSG:4326', 'EPSG:3857'));
      window.map.getView().setZoom(level);
    },
    getLevel(height) {
@@ -187,14 +187,8 @@
    },
  },
  mounted() {
    this.$bus.$on("changemap", (e) => {
      if (e == "分屏") {
        this.changeMap(1);
      } else if (e == "二维") {
        this.changeMap(2);
      } else if (e == "三维") {
        this.changeMap(3);
      }
    this.$bus.$on('changemap', (e) => {
      this.changeMap(e);
    });
  },
};
@@ -203,7 +197,7 @@
<style scoped>
.myDiv {
  width: 100%;
  height: 88%;
  height: 100%;
  padding: 0;
  margin: 0;
  position: absolute;
src/components/mapol.vue
@@ -53,6 +53,7 @@
        }),
      });
    },
    changeMenulayer() {
      this.isActive = !this.isActive;
      this.isMenuLayer = !this.isMenuLayer;
src/components/mapsdk.vue
@@ -383,7 +383,7 @@
        layerName: window.sceneConfig.mpt.name,
        requestVertexNormals: true,
      };
      // sgworld.Creator.sfsterrainprovider('mpt', option, '', true, '');
      sgworld.Creator.sfsterrainprovider('mpt', option, '', true, '');
      window.elevationTool = new SmartEarth.ElevationTool(window.sgworld);
    },
@@ -571,7 +571,8 @@
        }
        var jsonurl =
          'http://192.168.20.39:9055/gisserver/wnsserver/beijingdaohang_wns?start=' +
          wnsUrl +
          '?start=' +
          this.pathFrom.lon +
          '&end=' +
          this.pathFrom.lat +
src/components/mapviewTwo.vue
@@ -51,41 +51,41 @@
</template>
<script>
import ImageWMS from "ol/source/ImageWMS";
import Map from "ol/Map";
import XYZ from "ol/source/XYZ";
import View from "ol/View";
import Image from "ol/layer/Image";
import TileLayer from "ol/layer/Tile";
import { transform } from "ol/proj";
import ImageWMS from 'ol/source/ImageWMS';
import Map from 'ol/Map';
import XYZ from 'ol/source/XYZ';
import View from 'ol/View';
import Image from 'ol/layer/Image';
import TileLayer from 'ol/layer/Tile';
import { transform } from 'ol/proj';
// import { Image as ImageLayer, Tile as TileLayer } from "ol/layer"
import echart11 from "./echart11.vue";
import echart12 from "./echart12.vue";
import echart13 from "./echart13.vue";
import echart14 from "./echart14.vue";
import echart15 from "./echart15.vue";
import echart16 from "./echart16.vue";
import echart21 from "./echart21.vue";
import echart22 from "./echart22.vue";
import echart23 from "./echart23.vue";
import echart24 from "./echart24.vue";
import echart25 from "./echart25.vue";
import echart26 from "./echart26.vue";
import echart31 from "./echart31.vue";
import echart32 from "./echart32.vue";
import echart33 from "./echart33.vue";
import echart34 from "./echart34.vue";
import echart35 from "./echart35.vue";
import echart36 from "./echart36.vue";
import echart41 from "./echart41.vue";
import echart42 from "./echart42.vue";
import echart43 from "./echart43.vue";
import echart44 from "./echart44.vue";
import echart45 from "./echart45.vue";
import echart46 from "./echart46.vue";
import echart11 from './echart11.vue';
import echart12 from './echart12.vue';
import echart13 from './echart13.vue';
import echart14 from './echart14.vue';
import echart15 from './echart15.vue';
import echart16 from './echart16.vue';
import echart21 from './echart21.vue';
import echart22 from './echart22.vue';
import echart23 from './echart23.vue';
import echart24 from './echart24.vue';
import echart25 from './echart25.vue';
import echart26 from './echart26.vue';
import echart31 from './echart31.vue';
import echart32 from './echart32.vue';
import echart33 from './echart33.vue';
import echart34 from './echart34.vue';
import echart35 from './echart35.vue';
import echart36 from './echart36.vue';
import echart41 from './echart41.vue';
import echart42 from './echart42.vue';
import echart43 from './echart43.vue';
import echart44 from './echart44.vue';
import echart45 from './echart45.vue';
import echart46 from './echart46.vue';
export default {
  name: "webmap",
  props: ["typeIndex"],
  name: 'webmap',
  props: ['typeIndex'],
  components: {
    echart11,
    echart12,
@@ -123,13 +123,13 @@
      isActive: true,
      isMenuLayer: false,
      title: [
        "管道基础数据专题图",
        "用户使用情况专题图",
        "项目基本情况专题图",
        "项目进度管理专题图",
        "全球项目分布专题图",
        "全国管网分布专题图",
        "全国项目足迹专题图",
        '管道基础数据专题图',
        '用户使用情况专题图',
        '项目基本情况专题图',
        '项目进度管理专题图',
        '全球项目分布专题图',
        '全国管网分布专题图',
        '全国项目足迹专题图',
      ],
    };
  },
@@ -165,7 +165,7 @@
      }
    },
    close() {
      this.$emit("close", false);
      this.$emit('close', false);
    },
    changeFlag(res) {
      this.layerFlag = res;
@@ -179,21 +179,21 @@
    initMap() {
      this.vectorLayer = new TileLayer({
        source: new XYZ({
          url: "http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}",
          url: 'http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}',
        }),
      });
      this.imageLayer = new TileLayer({
        source: new XYZ({
          url: "http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=6&x={x}&y={y}&z={z}",
          url: 'http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=6&x={x}&y={y}&z={z}',
        }),
      });
      this.map = new Map({
        target: "map",
        target: 'map',
        layers: [this.imageLayer, this.vectorLayer],
        view: new View({
          center: transform([105.02, 34.9], "EPSG:4326", "EPSG:3857"),
          center: transform([105.02, 34.9], 'EPSG:4326', 'EPSG:3857'),
          zoom: 4,
          projection: "EPSG:3857",
          projection: 'EPSG:3857',
        }),
      });
      if (this.wmsLayer == null) {
@@ -210,25 +210,25 @@
      }
      var value;
      if (res == 3 || res == 4 || res == 7) {
        value = "xmzj";
        value = 'xmzj';
      } else if (res == 1 || res == 2 || res == 6) {
        value = "lfgd";
        value = 'lfgd';
      } else if (res == 5) {
        value = "qqxm";
        value = 'qqxm';
      }
      this.wmsLayer = new Image({
        source: new ImageWMS({
          ratio: 1,
          url: "http://192.168.20.39:9055/gisserver/wmsserver/" + value,
          crossOrigin: "anonymous",
          url: gisServerUrl + '/wmsserver/' + value,
          crossOrigin: 'anonymous',
          //serverType: 'geoserver',
          params: {
            VERSION: "1.3.0",
            FORMAT: "image/png",
            LAYERS: "",
            srs: "EPSG:900913",
            VERSION: '1.3.0',
            FORMAT: 'image/png',
            LAYERS: '',
            srs: 'EPSG:900913',
            tiled: true,
            styles: "",
            styles: '',
          },
        }),
      });
@@ -315,7 +315,7 @@
  box-shadow: 3px 3px 6px #666;
  border: 1px solid rgba(204, 204, 204, 0.76);
  border-radius: 5px;
   cursor: pointer;
  cursor: pointer;
}
.center1 {
  right: 1%;
@@ -337,7 +337,7 @@
.active {
  width: 100%;
  height: 100%;
  background: url("../assets/img/Layer/imgLayer2.png") no-repeat center;
  background: url('../assets/img/Layer/imgLayer2.png') no-repeat center;
  position: absolute;
  background-size: 100% 100%;
  border-radius: 5px;
@@ -345,7 +345,7 @@
.menuLayer {
  width: 100%;
  height: 100%;
  background: url("../assets/img/Layer/imgLayer1.png") no-repeat center;
  background: url('../assets/img/Layer/imgLayer1.png') no-repeat center;
  position: absolute;
  background-size: 100% 100%;
  border-radius: 5px;
src/views/Archive/index.vue
@@ -22,11 +22,11 @@
            </div>
          </el-col>
          <el-col :span="4">
            <el-input :placeholder="$t('common.pleaseInput')"
            <el-input v-model="input" :placeholder="$t('common.pleaseInput')"
          /></el-col>
          <el-col :span="4"
            ><el-button type="primary">{{ $t('common.iquery') }}</el-button>
            <el-button v-if="archStatus.download" type="primary">{{
            ><el-button class="primary">{{ $t('common.iquery') }}</el-button>
            <el-button v-if="archStatus.download" type="success">{{
              $t('common.download')
            }}</el-button>
          </el-col>
@@ -87,6 +87,7 @@
export default {
  data() {
    return {
      input: '',
      tree: [
        {
          label: '文献',
@@ -144,29 +145,7 @@
        chilren: 'children', //"children"内的每个对象解析为一个子项;
        label: 'label', //所有"label"所在的对象解析为一个父项
      },
      tableData: [
        {
          timer: '2016-05-01',
          name: 'Tom',
          count: '3',
          type: '业务图层',
          state: 'x',
        },
        {
          timer: '2016-05-02',
          name: 'Tom',
          count: '2',
          type: '业务图层',
          state: 'x',
        },
        {
          timer: '2016-05-03',
          name: 'Tom',
          count: '1',
          type: '业务图层',
          state: 'x',
        },
      ],
      tableData: [],
      archStatus: {
        download: false,
      },
@@ -214,6 +193,7 @@
.archive .arch_card {
  width: 100%;
  height: 100%;
  background: #303030;
}
.archive .arch_card .el-card__body {
  padding: 10px;
@@ -234,9 +214,24 @@
  width: 100%;
  height: 81vh;
  border: transparent;
  background: #303030;
}
.archive .el-table .warning-row {
  --el-table-tr-bg-color: var(--el-color-warning-light-9);
}
.el-form-item__label {
  color: white;
}
.el-input__inner {
  background-color: transparent !important ;
  color: #fff !important ;
  border: 1px solid !important ;
}
.primary {
  background: #409eff;
  border: #409eff;
  color: white;
}
</style>
src/views/Synthesis/LeftMenu.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,1000 @@
<template>
  <div class="menu_Box">
    <div
      class="leftMen_div"
      @click="setChangeTwoMenu(item)"
      v-for="(item, index) in setListTwoMenu"
      :class="{ lefMenuDivActive: showTwoMenuFlag == item.id }"
    >
      <div class="menuTwoImage" :class="item.css"></div>
      <div>{{ $t(item.label) }}</div>
    </div>
    <mapinfo ref="mapinfo" />
  </div>
</template>
<script>
import { transform } from 'ol/proj';
import mapinfo from '../Tools/mapinfo.vue';
export default {
  components: { mapinfo },
  data() {
    return {
      showTwoMenuFlag: false,
      setListTwoMenu: [],
      setListTwoMenuAll: [
        [
          {
            id: 'a1',
            label: 'synthesis.layer',
            name: '图层管理',
            css: 'twoMenu_imge11',
          },
          {
            id: 'a2',
            name: '场景提取',
            label: 'synthesis.sceneExtraction',
            css: 'twoMenu_imge12',
          },
          {
            id: 'a3',
            label: 'synthesis.release',
            name: '场景发布',
            css: 'twoMenu_imge13',
          },
        ],
        [
          {
            id: 'b1',
            label: 'synthesis.split',
            name: '分屏',
            css: 'twoMenu_imge21',
          },
          {
            id: 'b2',
            label: 'synthesis.twod',
            name: '二维',
            css: 'twoMenu_imge22',
          },
          {
            id: 'b3',
            label: 'synthesis.threed',
            name: '三维',
            css: 'twoMenu_imge23',
          },
          {
            id: 'b4',
            label: 'synthesis.full',
            name: '全图',
            css: 'twoMenu_imge24',
          },
          {
            id: 'b5',
            label: 'synthesis.zommin',
            name: '放大',
            css: 'twoMenu_imge25',
          },
          {
            id: 'b6',
            label: 'synthesis.zoomout',
            name: '缩小',
            css: 'twoMenu_imge26',
          },
          {
            id: 'b7',
            label: 'synthesis.rule',
            name: '比例尺',
            css: 'twoMenu_imge27',
          },
          {
            id: 'b8',
            label: 'synthesis.compass',
            name: '指北针',
            css: 'twoMenu_imge28',
          },
        ],
        [
          {
            id: 'c1',
            label: 'synthesis.someroaming',
            name: '点漫游',
            css: 'twoMenu_imge31',
          },
          {
            id: 'c2',
            label: 'synthesis.lineroaming',
            name: '线路漫游',
            css: 'twoMenu_imge32',
          },
          {
            id: 'c3',
            label: 'synthesis.mouseroaming',
            name: '鼠标漫游',
            css: 'twoMenu_imge33',
          },
          {
            id: 'c4',
            label: 'synthesis.snapshot',
            name: '地图快照',
            css: 'twoMenu_imge34',
          },
          {
            id: 'c5',
            label: 'synthesis.tdisplay',
            name: '三维演示',
            css: 'twoMenu_imge35',
          },
        ],
        [
          {
            id: 'd1',
            label: 'synthesis.contouranalysis',
            name: '等高线',
            css: 'twoMenu_imge41',
          },
          {
            id: 'd2',
            label: 'synthesis.slopeanalysis',
            name: '坡度分析',
            css: 'twoMenu_imge42',
          },
          {
            id: 'd3',
            label: 'synthesis.pathanalysis',
            name: '路径分析',
            css: 'twoMenu_imge43',
          },
          {
            id: 'd4',
            label: 'synthesis.cuttinganalysis',
            name: '地形剖切',
            css: 'twoMenu_imge44',
          },
          {
            id: 'd5',
            label: 'synthesis.floodanalysis',
            name: '淹没分析',
            css: 'twoMenu_imge45',
          },
          {
            id: 'd6',
            label: 'synthesis.earthworkcalculation',
            name: '土方量计算',
            css: 'twoMenu_imge46',
          },
          {
            id: 'd7',
            label: 'synthesis.crosssectionanalysis',
            name: '三维截面',
            css: 'twoMenu_imge47',
          },
          {
            id: 'd8',
            label: 'synthesis.imagecontrast',
            name: '影像对比',
            css: 'twoMenu_imge48',
          },
          {
            id: 'd9',
            label: 'synthesis.pipelineAnalysis',
            name: '管道分析',
            css: 'twoMenu_imge49',
          },
          {
            id: 'd10',
            label: 'synthesis.flatterrain',
            name: '地形平整',
            css: 'twoMenu_imge410',
          },
          {
            id: 'd11',
            label: 'synthesis.terrainexcavation',
            name: '地形开挖',
            css: 'twoMenu_imge411',
          },
        ],
        [
          {
            id: 'e1',
            label: 'synthesis.attributequery',
            name: '属性查询',
            css: 'twoMenu_imge51',
          },
          {
            id: 'e2',
            label: 'synthesis.rangequery',
            name: '空间查询',
            css: 'twoMenu_imge52',
          },
        ],
        [
          {
            id: 'f1',
            label: 'synthesis.gpsrtk',
            name: '坐标定位',
            css: 'twoMenu_imge61',
          },
          {
            id: 'f2',
            label: 'synthesis.placenamelocation',
            name: '地名定位',
            css: 'twoMenu_imge62',
          },
        ],
        [
          {
            id: 'j1',
            label: 'synthesis.synthobj.m1',
            name: '水平距离',
            css: 'twoMenu_imge71',
          },
          {
            id: 'j2',
            label: 'synthesis.synthobj.m4',
            name: '垂直高度',
            css: 'twoMenu_imge72',
          },
          {
            id: 'j3',
            label: 'synthesis.synthobj.m6',
            name: '平面面积',
            css: 'twoMenu_imge73',
          },
          {
            id: 'j4',
            label: 'synthesis.synthobj.m7',
            name: '体积',
            css: 'twoMenu_imge74',
          },
          {
            id: 'j5',
            label: 'synthesis.synthobj.m5',
            name: '表面面积',
            css: 'twoMenu_imge75',
          },
          {
            id: 'j6',
            label: 'synthesis.synthobj.m2',
            name: '空间距离',
            css: 'twoMenu_imge76',
          },
        ],
        [
          {
            id: 'h1',
            label: 'synthesis.point',
            name: '点',
            css: 'twoMenu_imge81',
          },
          {
            id: 'h2',
            label: 'synthesis.line',
            name: '线',
            css: 'twoMenu_imge82',
          },
          {
            id: 'h3',
            label: 'synthesis.rectangle',
            name: '矩形',
            css: 'twoMenu_imge83',
          },
          {
            id: 'h4',
            label: 'synthesis.polygon',
            name: '多边形',
            css: 'twoMenu_imge84',
          },
          {
            id: 'h5',
            label: 'synthesis.import',
            name: '导入',
            css: 'twoMenu_imge85',
          },
          {
            id: 'h6',
            label: 'synthesis.export',
            name: '导出',
            css: 'twoMenu_imge86',
          },
          {
            id: 'h7',
            label: 'synthesis.removepaint',
            name: '清除',
            css: 'twoMenu_imge87',
          },
        ],
      ],
      isRuler: false,
      isNaviget: false,
      isolineFlag: false,
      isslopeFlag: false,
    };
  },
  methods: {
    //二級菜单点击切换
    setChangeTwoMenu(res) {
      this.showTwoMenuFlag = res.id;
      this.$store.state.mapMenuBoolean = false;
      this.$store.state.mapMenuBoxFlag = null;
      this.$store.state.mapPopBoolean = false;
      this.$store.state.mapPopBoxFlag = null;
      var val = res.id[0];
      switch (val) {
        case 'a': //图层管理
          this.setCoverage(res.id);
          break;
        case 'b':
          this.setViewport(res.id);
          break;
        case 'c':
          this.setWander(res.id);
          break;
        case 'd':
          this.setAnalsy(res.id);
          break;
        case 'e':
          this.setIquery(res.id);
          break;
        case 'f':
          this.setOrientation(res.id);
          break;
        case 'j':
          this.setMeasurement(res.id);
          break;
        case 'h':
          this.setPlot(res.id);
          break;
      }
    },
    setPlot(res) {
      switch (res) {
        case 'h1':
          sgworld.Creator.createSimpleGraphic(
            'point',
            {},
            function (entity) {}
          );
          break;
        case 'h2':
          sgworld.Creator.createSimpleGraphic(
            'polyline',
            {},
            function (entity) {}
          );
          break;
        case 'h3':
          sgworld.Creator.createSimpleGraphic(
            'rectangle',
            {},
            function (entity) {}
          );
          break;
        case 'h4':
          sgworld.Creator.createSimpleGraphic(
            'polygon',
            {},
            function (entity) {}
          );
          break;
        case 'h7':
          sgworld.Creator.SimpleGraphic.clear();
          break;
      }
    },
    setMeasurement(res) {
      switch (res) {
        case 'j1':
          var measure = window.sgworld.Command.execute(
            0,
            2,
            this.colorAll,
            (data) => {
              data.id = window.sgworld.Core.getuid();
              this.measureData.set(data.id, measure);
              this.openMeasureResultInfo('水平距离', data);
            }
          );
          break;
        case 'j6':
          var measure = window.sgworld.Command.execute(
            0,
            10,
            this.colorAll,
            (data) => {
              data.id = window.sgworld.Core.getuid();
              this.measureData.set(data.id, measure);
              this.openMeasureResultInfo('空间距离', data);
            }
          );
          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);
            }
          );
          break;
        case 'j2':
          var measure = window.sgworld.Command.execute(
            0,
            5,
            this.colorAll,
            (data) => {
              data.id = window.sgworld.Core.getuid();
              this.measureData.set(data.id, measure);
              this.openMeasureResultInfo('垂直高度', data);
            }
          );
          break;
        case 'j5':
          var measure = window.sgworld.Command.execute(
            0,
            8,
            {
              ...this.colorAll,
              tin: true, // æ˜¯å¦æ˜¾ç¤ºtin三角网
              onlyTerrain: false, // æ˜¯å¦åªæµ‹é‡ç²¾ç»†åœ°å½¢
            },
            (data) => {
              data.id = window.sgworld.Core.getuid();
              this.measureData.set(data.id, measure);
              this.openMeasureResultInfo('表面面积', data);
            }
          );
          break;
        case 'j3':
          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 'j4':
          var volumetricMeasurementTool =
            window.sgworld.Creator.createVolumetricMeasureTool();
          volumetricMeasurementTool.startDrawing(
            { ...this.colorAll, onlyTerrain: false },
            '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}`;
              } else {
                data.id = window.sgworld.Core.getuid();
                this.measureData.set(data.id, volumetricMeasurementTool);
                let popupData = this.openMeasureResultInfo('体积方量', data);
                volumetricMeasurementTool.popupData = popupData;
              }
            }
          );
          break;
        case 'j8':
          var measure = window.sgworld.Command.execute(
            0,
            12,
            this.colorAll,
            (data) => {
              data.id = window.sgworld.Core.getuid();
              this.measureData.set(data.id, measure);
              this.openMeasureResultInfo('角度', data);
            }
          );
          break;
      }
    },
    openMeasureResultInfo(name, data) {
      let info = '';
      switch (name) {
        case '水平距离':
        case '空间距离':
          info = '总长度:' + data.distance[data.distance.length - 1];
          break;
        case '海拔高度':
          info = '海拔:' + data.height;
          break;
        case '垂直高度':
          info = `${data.gddistance}<br>${data.kjdistance}<br>${data.spdistance}`;
          break;
        case '表面面积':
        case '平面面积':
          info = data.mj;
          break;
        case '角度':
          data.labels.forEach((label) => {
            info += label.label.text.getValue() + '<br>';
          });
          break;
        case '体积方量':
          info = `填方:${
            data.volume.fill.toFixed(4) + data.unit.fill
          }<br>挖方:${data.volume.dig.toFixed(4) + data.unit.dig}`;
          break;
      }
      return (
        this.$refs &&
        this.$refs.mapinfo &&
        this.$refs.mapinfo.open(name, info, {
          close: () => {
            // æ¸…除测量
            this.clearMeasure(data.id);
          },
        })
      );
    },
    clearMeasure(id) {
      if (id) {
        let data = this.measureData.get(id);
        data && data.deleteObject && data.deleteObject();
        // ä½“积方量
        data && data.cleanUp && data.cleanUp();
        this.measureData.delete(id);
      } else {
        this.measureData.forEach((data) => {
          data.deleteObject && data.deleteObject();
          // ä½“积方量
          data.cleanUp && data.cleanUp();
        });
        this.measureData.clear();
      }
    },
    setIquery(res) {
      switch (res) {
        case 'e1':
          this.$store.state.mapMenuBoolean = true;
          this.$store.state.mapMenuBoxFlag = '1';
          break;
        case 'e2':
          this.$store.state.mapMenuBoolean = true;
          this.$store.state.mapMenuBoxFlag = '2';
          break;
      }
    },
    setAnalsy(res) {
      var that = this;
      switch (res) {
        case 'd1':
          that.isolineFlag = !that.isolineFlag;
          elevationTool.tf = that.isolineFlag;
          elevationTool.render();
          break;
        case 'd2':
          that.isslopeFlag = !that.isslopeFlag;
          if (that.isslopeFlag == true) {
            elevationTool.type = 'slope';
          } else {
            elevationTool.type = 'none';
          }
          elevationTool.render();
          break;
        case 'd3':
          var value = {
            name: 'Analysis',
            id: 3,
          };
          this.$bus.$emit('mapChangeBox', value);
          break;
        case 'd4':
          if (window.AnalysisDXPM) {
            this.clear(res);
          } else {
            this.addterrainSectionAnalysis();
          }
          break;
        case 'd5':
          if (window.AnalysisFlood) {
            this.clear(res.id);
          } else {
            this.addAnalysisFlood();
          }
          break;
        case 'd6':
          var that = this;
          var volumetricMeasurementTool =
            sgworld.Creator.createVolumetricMeasureTool();
          volumetricMeasurementTool.startDrawing(
            { ...this.colorAll, onlyTerrain: false },
            '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}`;
              } else {
                data.id = sgworld.Core.getuid();
                this.measureData.set(data.id, volumetricMeasurementTool);
                let popupData = that.openMeasureResultInfo('体积方量', data);
                volumetricMeasurementTool.popupData = popupData;
              }
            }
          );
          break;
      }
    },
    clear(res) {
      switch (res) {
        case 'd4':
          layer.close(this.dxpmIndex);
          this.dxpmIndex = undefined;
          if (window.AnalysisDXPM) {
            window.AnalysisDXPM.flyPoint &&
              Viewer.entities.remove(window.AnalysisDXPM.flyPoint);
            window.AnalysisDXPM && window.AnalysisDXPM.deleteObject();
            window.AnalysisDXPM = undefined;
          }
          break;
        case 'd5':
          window.AnalysisFlood && window.AnalysisFlood.endWater();
          window.AnalysisFlood = undefined;
          break;
      }
    },
    addAnalysisFlood() {
      var method = {
        pointSelect: true,
        spood: 20,
        GroupID: 0,
        url: '/SmartEarthSDK/Workers/image/waterNormals.jpg',
      };
      window.AnalysisFlood = sgworld.Command.execute(
        2,
        2,
        method,
        (value) => {}
      );
    },
    addterrainSectionAnalysis() {
      window.AnalysisDXPM = sgworld.Command.execute(
        2,
        6,
        { cyjj: 50, objid: 0 },
        (Distance) => {
          if (Distance.gcs && Distance.gcs.length) {
            window.AnalysisDXPM.analyseData = Distance;
            this.dxpmIndex = layer.open({
              type: 2,
              title: '分析结果',
              shade: false,
              area: ['80%', '280px'],
              offset: 'b',
              skin: 'other-class',
              content: '/SmartEarthSDK/Workers/analysis/AnalysisDXPM.html',
              end: () => {
                this.dxpmIndex && this.clear('4');
              },
            });
          } else {
            //剖面
            window.AnalysisDXPM && window.AnalysisDXPM.deleteObject();
          }
        }
      );
    },
    setWander(res) {
      switch (res) {
        case 'c1':
          window.sgworld.Analysis.setPointFly();
          break;
        case 'c2':
          window.sgworld.Command.execute(2, 3, '', (data) => {
            data.showPoint = false;
            data.showLine = true;
            data.mode = 1;
            // å¼¹çª—数据
            window.PathAnimationData = {
              flyData: data,
            };
            window.PathAnimationData.winIndex = layer.open({
              type: 2,
              title: '路径动画',
              shade: false,
              area: ['352px', '690px'],
              offset: 'r',
              skin: 'other-class',
              content: '/SmartEarthSDK/Workers/path/Path.html',
              end: function () {
                PathAnimationData.fly && PathAnimationData.fly.exit();
              },
            });
          });
          break;
        case 'c3':
          sgworld.Analysis.createindoormode({ showHelp: true });
          break;
        case 'c4':
          window.sgworld.Analysis.createScreenshot();
          break;
      }
    },
    setOrientation(res) {
      var resid;
      switch (res) {
        case 'f1':
          resid = 1;
          break;
        case 'f2':
          resid = 2;
          break;
      }
      var val = {
        name: 'Coord',
        id: resid,
      };
      this.$bus.$emit('mapChangeBox', val);
    },
    setViewport(res) {
      switch (res) {
        case 'b1': //分屏
          this.$bus.$emit('changemap', 1);
          break;
        case 'b2': //二维
          this.$bus.$emit('changemap', 2);
          break;
        case 'b3': //三维
          this.$bus.$emit('changemap', 3);
          break;
        case 'b4': //全图
          window.sgworld.Navigate.jumpTo({
            //跳转视角
            destination: new Cesium.Cartesian3.fromDegrees(110, 32, 8000000),
          });
          window.map
            .getView()
            .setCenter(transform([110, 32], 'EPSG:4326', 'EPSG:3857'));
          window.map.getView().setZoom(4);
          break;
        case 'b5': //放大
          window.sgworld.Navigate.zoomIn();
          // èŽ·å–å½“å‰è§†å›¾
          var zoom = window.map.getView().getZoom(); // èŽ·å–å½“å‰ç¼©æ”¾çº§åˆ«
          window.map.getView().setZoom(zoom + 1); // è®¾ç½®ç¼©æ”¾çº§åˆ«
          break;
        case 'b6': //缩小
          window.sgworld.Navigate.zoomOut();
          var zoom = window.map.getView().getZoom(); // èŽ·å–å½“å‰ç¼©æ”¾çº§åˆ«
          window.map.getView().setZoom(zoom - 1); // è®¾ç½®ç¼©æ”¾çº§åˆ«
          break;
        case 'b7': //比例尺
          this.isRuler = !this.isRuler;
          window.sgworld.navControl('scale', this.isRuler);
          break;
        case 'b8': //指北针
          this.isNaviget = !this.isNaviget;
          window.sgworld.navControl('nav', this.isNaviget);
          break;
      }
    },
    menuChange(res) {
      this.setListTwoMenu = this.setListTwoMenuAll[res];
    },
  },
  mounted() {
    this.measureData = new Map();
    this.colorAll = {
      point: Cesium.Color.fromCssColorString('#ff0000'),
      polyline: Cesium.Color.fromCssColorString('#ffff00').withAlpha(0.6),
      polygon: Cesium.Color.fromCssColorString('#ffff00').withAlpha(0.6),
    };
    this.$bus.$on('setChangeTwoMenu', (res) => {
      this.menuChange(res);
    });
  },
};
</script>
<style lang="less" scoped>
.menu_Box {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow-y: auto;
  text-align: center;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  .leftMen_div {
    font-size: 16px;
    font-family: Microsoft YaHei;
    font-weight: 400;
    color: #ffffff;
    padding: 10px;
    min-width: 100px;
    margin-left: 10px;
    margin-top: 10px;
    border-radius: 5px;
  }
  .leftMen_div:hover {
    background: linear-gradient(180deg, #002992, #080472);
    border: 1px solid #000000;
    box-shadow: 0px 3px 5px 0px rgba(0, 0, 0, 0.21);
  }
  .lefMenuDivActive {
    background: linear-gradient(180deg, #002992, #080472);
  }
  .menuTwoImage {
    width: 32px;
    height: 32px;
    display: inline-block;
  }
  .twoMenu_imge11 {
    background: url('../../assets/img/synthesis/图层 32.png') no-repeat center;
  }
  .twoMenu_imge12 {
    background: url('../../assets/img/synthesis/图层 35.png') no-repeat center;
  }
  .twoMenu_imge13 {
    background: url('../../assets/img/synthesis/发布.png') no-repeat center;
  }
  //视图
  .twoMenu_imge21 {
    background: url('../../assets/img/synthesis/圆角矩形 12 æ‹·è´ 3.png')
      no-repeat center;
  }
  .twoMenu_imge22 {
    background: url('../../assets/img/synthesis/图层 10 æ‹·è´.png') no-repeat
      center;
  }
  .twoMenu_imge23 {
    background: url('../../assets/img/synthesis/图层 11 æ‹·è´.png') no-repeat
      center;
  }
  .twoMenu_imge24 {
    background: url('../../assets/img/synthesis/图层 12 æ‹·è´ 2.png') no-repeat
      center;
  }
  .twoMenu_imge25 {
    background: url('../../assets/img/synthesis/圆角矩形 5 æ‹·è´ 2.png')
      no-repeat center;
  }
  .twoMenu_imge26 {
    background: url('../../assets/img/synthesis/圆角矩形 5 æ‹·è´ 3.png')
      no-repeat center;
  }
  .twoMenu_imge27 {
    background: url('../../assets/img/synthesis/矩形 9.png') no-repeat center;
  }
  .twoMenu_imge28 {
    background: url('../../assets/img/synthesis/椭圆 4.png') no-repeat center;
  }
  //漫游
  .twoMenu_imge31 {
    background: url('../../assets/img/synthesis/椭圆 6.png') no-repeat center;
  }
  .twoMenu_imge32 {
    background: url('../../assets/img/synthesis/椭圆 7 æ‹·è´ 2.png') no-repeat
      center;
  }
  .twoMenu_imge33 {
    background: url('../../assets/img/synthesis/图层 14 å‰¯æœ¬ æ‹·è´.png')
      no-repeat center;
  }
  .twoMenu_imge34 {
    background: url('../../assets/img/synthesis/图层 74 æ‹·è´ 2.png') no-repeat
      center;
  }
  .twoMenu_imge35 {
    background: url('../../assets/img/synthesis/椭圆 7 æ‹·è´ 4.png') no-repeat
      center;
  }
  //分析
  .twoMenu_imge41 {
    background: url('../../assets/img/synthesis/椭圆 8 æ‹·è´ 8.png') no-repeat
      center;
  }
  .twoMenu_imge42 {
    background: url('../../assets/img/synthesis/圆角矩形 12 æ‹·è´ 5.png')
      no-repeat center;
  }
  .twoMenu_imge43 {
    background: url('../../assets/img/synthesis/圆角矩形 10 å‰¯æœ¬ 3.png')
      no-repeat center;
  }
  .twoMenu_imge44 {
    background: url('../../assets/img/synthesis/图层 74 æ‹·è´ 3.png') no-repeat
      center;
  }
  .twoMenu_imge45 {
    background: url('../../assets/img/synthesis/图层 20.png') no-repeat center;
  }
  .twoMenu_imge46 {
    background: url('../../assets/img/synthesis/图层 14 æ‹·è´ 3.png') no-repeat
      center;
  }
  .twoMenu_imge47 {
    background: url('../../assets/img/synthesis/图层 18.png') no-repeat center;
  }
  .twoMenu_imge48 {
    background: url('../../assets/img/synthesis/圆角矩形 12 æ‹·è´ 6.png')
      no-repeat center;
  }
  .twoMenu_imge49 {
    background: url('../../assets/img/synthesis/管道.png') no-repeat center;
  }
  .twoMenu_imge410 {
    background: url('../../assets/img/synthesis/dxkw.png') no-repeat center;
  }
  .twoMenu_imge411 {
    background: url('../../assets/img/synthesis/矩形 14 æ‹·è´ 7.png') no-repeat
      center;
  }
  //查询
  .twoMenu_imge51 {
    background: url('../../assets/img/synthesis/图层 23.png') no-repeat center;
  }
  .twoMenu_imge52 {
    background: url('../../assets/img/synthesis/空间查询.png') no-repeat center;
  }
  //定位
  .twoMenu_imge61 {
    background: url('../../assets/img/synthesis/图层 27.png') no-repeat center;
  }
  .twoMenu_imge62 {
    background: url('../../assets/img/synthesis/图层 28.png') no-repeat center;
  }
  //测量
  .twoMenu_imge71 {
    background: url('../../assets/img/synthesis/图层 31.png') no-repeat center;
  }
  .twoMenu_imge72 {
    background: url('../../assets/img/synthesis/图层 31 æ‹·è´.png') no-repeat
      center;
  }
  .twoMenu_imge73 {
    background: url('../../assets/img/synthesis/矩形 13 æ‹·è´.png') no-repeat
      center;
  }
  .twoMenu_imge74 {
    background: url('../../assets/img/synthesis/图层 18 æ‹·è´.png') no-repeat
      center;
  }
  .twoMenu_imge75 {
    background: url('../../assets/img/synthesis/M æ‹·è´.png') no-repeat center;
  }
  .twoMenu_imge76 {
    background: url('../../assets/img/synthesis/空间测距.png') no-repeat center;
  }
  //标绘
  .twoMenu_imge81 {
    background: url('../../assets/img/synthesis/椭圆 5 æ‹·è´ 3.png') no-repeat
      center;
  }
  .twoMenu_imge82 {
    background: url('../../assets/img/synthesis/椭圆 3 æ‹·è´ 16.png') no-repeat
      center;
  }
  .twoMenu_imge83 {
    background: url('../../assets/img/synthesis/椭圆 3 æ‹·è´ 20.png') no-repeat
      center;
  }
  .twoMenu_imge84 {
    background: url('../../assets/img/synthesis/椭圆 3 æ‹·è´ 23.png') no-repeat
      center;
  }
  .twoMenu_imge85 {
    background: url('../../assets/img/synthesis/导入.png') no-repeat center;
  }
  .twoMenu_imge86 {
    background: url('../../assets/img/synthesis/导出.png') no-repeat center;
  }
  .twoMenu_imge87 {
    background: url('../../assets/img/synthesis/清除.png') no-repeat center;
  }
}
</style>
src/views/Synthesis/analyse.vue
@@ -101,27 +101,7 @@
            id: 3,
          };
          this.$bus.$emit('mapChangeBox', value);
          // var jsonurl =
          //   'http://192.168.20.39:9055/gisserver/wnsserver/beijingdaohang_wns?start=' +
          //   '116.0867468497,39.937314280233' +
          //   '&end=' +
          //   '116.0860003269,39.936289981725' +
          //   '&propertyName=Shape&tolerance=500&request=FindPath&format=json';
          // $.ajax({
          //   url: jsonurl,
          //   async: false,
          //   type: 'GET',
          //   dataType: 'json',
          //   contentType: 'application/json;charset=utf-8',
          //   success: (data) => {
          //     data.features.forEach((e) => {
          //       if (e.geometry.type == 'LineString') {
          //         //this.executeFly3D(e.geometry.coordinates);
          //         this.executeFly3D(e.geometry.coordinates);
          //       }
          //     });
          //   },
          // });
          break;
        case '4':
          if (window.AnalysisDXPM) {
src/views/Synthesis/index.vue
@@ -2,7 +2,10 @@
  <div class="synthesis">
    <div class="lefIcon">
      <ul>
        <li v-for="item in showMenuList">
        <li
          v-for="item in showMenuList"
          :class="{ lefMenuActive: showMenuFlag == item.id }"
        >
          <div class="menuDiv" :title="item.name" @click="setMenuChange(item)">
            <div class="menuImage" :class="item.class"></div>
          </div>
@@ -11,17 +14,13 @@
    </div>
    <div class="rightContent">
      <div class="left_main" :class="{ left_main_show: !openStatus }">
        <div class="leftMen_div" v-for="(item, index) in setListTwoMenu">
          <div class="menuTwoImage" :class="item.css"></div>
          <div>{{ $t(item.label) }}</div>
        <div class="right_Map">
          <left-menu></left-menu>
        </div>
      </div>
      <div id="mapdiv" class="right_main">
        <div @click="changeBaseLayer" class="bottomChageLayer">
          <div
            id="cenBg"
            v-bind:class="{ active: isActive, menuLayer: !isActive }"
          ></div>
      <div class="right_main">
        <div class="right_Map">
          <mapdiv></mapdiv>
        </div>
      </div>
    </div>
@@ -30,10 +29,16 @@
<script>
import { getPerms } from '../../api/api';
import mapdiv from '../../components/MapDiv.vue';
import leftMenu from './LeftMenu.vue';
export default {
  components: {},
  components: {
    mapdiv,
    leftMenu,
  },
  data() {
    return {
      showMenuFlag: null,
      openStatus: false,
      isActive: false,
      showMenuList: [],
@@ -93,311 +98,11 @@
          show: false,
        },
      ],
      setListTwoMenu: [],
      setListTwoMenuAll: [
        [
          {
            label: 'synthesis.layer',
            name: '图层管理',
            css: 'twoMenu_imge11',
          },
          {
            name: '场景提取',
            label: 'synthesis.sceneExtraction',
            css: 'twoMenu_imge12',
          },
          {
            label: 'synthesis.release',
            name: '场景发布',
            css: 'twoMenu_imge13',
          },
        ],
        [
          {
            label: 'synthesis.split',
            name: '分屏',
            css: 'twoMenu_imge21',
          },
          {
            label: 'synthesis.twod',
            name: '二维',
            css: 'twoMenu_imge22',
          },
          {
            label: 'synthesis.threed',
            name: '三维',
            css: 'twoMenu_imge23',
          },
          {
            label: 'synthesis.full',
            name: '全图',
            css: 'twoMenu_imge24',
          },
          {
            label: 'synthesis.zommin',
            name: '放大',
            css: 'twoMenu_imge25',
          },
          {
            label: 'synthesis.zoomout',
            name: '缩小',
            css: 'twoMenu_imge26',
          },
          {
            label: 'synthesis.rule',
            name: '比例尺',
            css: 'twoMenu_imge27',
          },
          {
            label: 'synthesis.compass',
            name: '指北针',
            css: 'twoMenu_imge28',
          },
        ],
        [
          {
            label: 'synthesis.someroaming',
            name: '点漫游',
            css: 'twoMenu_imge31',
          },
          {
            label: 'synthesis.lineroaming',
            name: '线路漫游',
            css: 'twoMenu_imge32',
          },
          {
            label: 'synthesis.mouseroaming',
            name: '鼠标漫游',
            css: 'twoMenu_imge33',
          },
          {
            label: 'synthesis.snapshot',
            name: '地图快照',
            css: 'twoMenu_imge34',
          },
          {
            label: 'synthesis.tdisplay',
            name: '三维演示',
            css: 'twoMenu_imge35',
          },
        ],
        [
          {
            label: 'synthesis.contouranalysis',
            name: '等高线',
            css: 'twoMenu_imge41',
          },
          {
            label: 'synthesis.slopeanalysis',
            name: '坡度分析',
            css: 'twoMenu_imge42',
          },
          {
            label: 'synthesis.pathanalysis',
            name: '路径分析',
            css: 'twoMenu_imge43',
          },
          {
            label: 'synthesis.cuttinganalysis',
            name: '地形剖切',
            css: 'twoMenu_imge44',
          },
          {
            label: 'synthesis.floodanalysis',
            name: '淹没分析',
            css: 'twoMenu_imge45',
          },
          {
            label: 'synthesis.earthworkcalculation',
            name: '土方量计算',
            css: 'twoMenu_imge46',
          },
          {
            label: 'synthesis.crosssectionanalysis',
            name: '三维截面',
            css: 'twoMenu_imge47',
          },
          {
            label: 'synthesis.imagecontrast',
            name: '影像对比',
            css: 'twoMenu_imge48',
          },
          {
            label: 'synthesis.pipelineAnalysis',
            name: '管道分析',
            css: 'twoMenu_imge49',
          },
          {
            label: 'synthesis.flatterrain',
            name: '地形平整',
            css: 'twoMenu_imge410',
          },
          {
            label: 'synthesis.terrainexcavation',
            name: '地形开挖',
            css: 'twoMenu_imge411',
          },
        ],
        [
          {
            label: 'synthesis.attributequery',
            name: '属性查询',
            css: 'twoMenu_imge51',
          },
          {
            label: 'synthesis.rangequery',
            name: '空间查询',
            css: 'twoMenu_imge52',
          },
        ],
        [
          {
            label: 'synthesis.gpsrtk',
            name: '坐标定位',
            css: 'twoMenu_imge61',
          },
          {
            label: 'synthesis.placenamelocation',
            name: '地名定位',
            css: 'twoMenu_imge62',
          },
        ],
        [
          {
            label: 'synthesis.synthobj.m1',
            name: '水平距离',
            css: 'twoMenu_imge71',
          },
          {
            label: 'synthesis.synthobj.m4',
            name: '垂直高度',
            css: 'twoMenu_imge72',
          },
          {
            label: 'synthesis.synthobj.m6',
            name: '平面面积',
            css: 'twoMenu_imge73',
          },
          {
            label: 'synthesis.synthobj.m7',
            name: '体积',
            css: 'twoMenu_imge74',
          },
          {
            label: 'synthesis.synthobj.m5',
            name: '表面面积',
            css: 'twoMenu_imge75',
          },
          {
            label: 'synthesis.synthobj.m2',
            name: '空间距离',
            css: 'twoMenu_imge76',
          },
        ],
        [
          {
            label: 'synthesis.point',
            name: '点',
            css: 'twoMenu_imge81',
          },
          {
            label: 'synthesis.line',
            name: '线',
            css: 'twoMenu_imge82',
          },
          {
            label: 'synthesis.rectangle',
            name: '矩形',
            css: 'twoMenu_imge83',
          },
          {
            label: 'synthesis.polygon',
            name: '多边形',
            css: 'twoMenu_imge84',
          },
          {
            label: 'synthesis.import',
            name: '导入',
            css: 'twoMenu_imge85',
          },
          {
            label: 'synthesis.export',
            name: '导出',
            css: 'twoMenu_imge86',
          },
          {
            label: 'synthesis.removepaint',
            name: '清除',
            css: 'twoMenu_imge87',
          },
        ],
      ],
    };
  },
  watch: {},
  created() {},
  methods: {
    //地图初始化
    initMap() {
      //地图初始化
      window.sgworld = new SmartEarth.SGWorld('mapdiv', {
        licenseServer: window.sceneConfig.licenseServer,
      });
      window.Viewer = window.sgworld._Viewer;
      //定位
      sgworld.Navigate.jumpTo({
        //跳转视角
        destination: new Cesium.Cartesian3.fromDegrees(
          116.055913,
          39.937685,
          8000
        ),
      });
      Viewer.imageryLayers.addImageryProvider(
        new Cesium.WebMapTileServiceImageryProvider({
          url: 'http://t0.tianditu.com/vec_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=vec&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles&tk=94a34772eb88317fcbf8428e10448561',
          layer: 'tdtVecBasicLayer',
          style: 'default',
          format: 'image/jpeg',
          tileMatrixSetID: 'GoogleMapsCompatible',
          show: false,
        })
      );
      Viewer.imageryLayers.addImageryProvider(
        new Cesium.WebMapTileServiceImageryProvider({
          url: 'http://t0.tianditu.com/img_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=img&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles&tk=94a34772eb88317fcbf8428e10448561',
          layer: 'tdtBasicLayer',
          style: 'default',
          format: 'image/jpeg',
          tileMatrixSetID: 'GoogleMapsCompatible',
          show: false,
        })
      );
      Viewer.imageryLayers.addImageryProvider(
        new Cesium.WebMapTileServiceImageryProvider({
          url: 'http://t0.tianditu.com/cva_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=cva&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default.jpg&tk=94a34772eb88317fcbf8428e10448561',
          layer: 'tdtAnnoLayer',
          style: 'default',
          format: 'image/jpeg',
          tileMatrixSetID: 'GoogleMapsCompatible',
        })
      );
    },
    //底图切换
    changeBaseLayer() {
      this.isActive = !this.isActive;
      this.setLayerVisible();
    },
    setLayerVisible() {
      if (this.isActive == true) {
        Viewer.imageryLayers.get(1).show = true;
        Viewer.imageryLayers.get(2).show = false;
      } else {
        Viewer.imageryLayers.get(1).show = false;
        Viewer.imageryLayers.get(2).show = true;
      }
    },
    //左侧菜单滑动显隐
    setMenuChange(res) {
      switch (res.id) {
@@ -406,7 +111,8 @@
          break;
        default: {
          this.openStatus = true;
          this.setListTwoMenu = this.setListTwoMenuAll[res.id - 2];
          this.$bus.$emit('setChangeTwoMenu', res.id - 2);
          this.showMenuFlag = res.id;
        }
      }
    },
@@ -427,7 +133,7 @@
      //初始化二级菜单
      if (this.showMenuList.length > 1) {
        var index = this.showMenuList[1].id;
        this.setListTwoMenu = this.setListTwoMenuAll[index - 2];
        this.$bus.$emit('setChangeTwoMenu', index - 2);
      }
    },
    showMenuChange(res, result) {
@@ -470,6 +176,7 @@
    background: #353535;
    position: absolute;
    z-index: 30;
    .menuDiv {
      width: 60px;
      height: 60px;
@@ -519,10 +226,17 @@
          no-repeat center;
      }
    }
    // li {
    //   background: rgba(53, 53, 53, 0);
    // }
    .lefMenuActive {
      background: linear-gradient(180deg, #002992, #080472);
    }
    li:hover {
      background: linear-gradient(180deg, #002992, #080472);
    }
  }
  .rightContent {
    width: calc(100% - 63px);
    height: 100%;
@@ -532,198 +246,8 @@
      margin: 0;
      width: 300px;
      height: auto;
      text-align: center;
      transition: width 2s;
      display: flex;
      flex-wrap: wrap;
      align-content: flex-start;
    }
    .leftMen_div {
      font-size: 16px;
      font-family: Microsoft YaHei;
      font-weight: 400;
      color: #ffffff;
      padding: 10px;
      min-width: 100px;
      margin-left: 10px;
      margin-top: 10px;
      border-radius: 5px;
    }
    .leftMen_div:hover {
      background: linear-gradient(180deg, #002992, #080472);
      border: 1px solid #000000;
      box-shadow: 0px 3px 5px 0px rgba(0, 0, 0, 0.21);
    }
    .menuTwoImage {
      width: 32px;
      height: 32px;
      display: inline-block;
    }
    .twoMenu_imge11 {
      background: url('../../assets/img/synthesis/图层 32.png') no-repeat center;
    }
    .twoMenu_imge12 {
      background: url('../../assets/img/synthesis/图层 35.png') no-repeat center;
    }
    .twoMenu_imge13 {
      background: url('../../assets/img/synthesis/发布.png') no-repeat center;
    }
    //视图
    .twoMenu_imge21 {
      background: url('../../assets/img/synthesis/圆角矩形 12 æ‹·è´ 3.png')
        no-repeat center;
    }
    .twoMenu_imge22 {
      background: url('../../assets/img/synthesis/图层 10 æ‹·è´.png') no-repeat
        center;
    }
    .twoMenu_imge23 {
      background: url('../../assets/img/synthesis/图层 11 æ‹·è´.png') no-repeat
        center;
    }
    .twoMenu_imge24 {
      background: url('../../assets/img/synthesis/图层 12 æ‹·è´ 2.png') no-repeat
        center;
    }
    .twoMenu_imge25 {
      background: url('../../assets/img/synthesis/圆角矩形 5 æ‹·è´ 2.png')
        no-repeat center;
    }
    .twoMenu_imge26 {
      background: url('../../assets/img/synthesis/圆角矩形 5 æ‹·è´ 3.png')
        no-repeat center;
    }
    .twoMenu_imge27 {
      background: url('../../assets/img/synthesis/矩形 9.png') no-repeat center;
    }
    .twoMenu_imge28 {
      background: url('../../assets/img/synthesis/椭圆 4.png') no-repeat center;
    }
    //漫游
    .twoMenu_imge31 {
      background: url('../../assets/img/synthesis/椭圆 6.png') no-repeat center;
    }
    .twoMenu_imge32 {
      background: url('../../assets/img/synthesis/椭圆 7 æ‹·è´ 2.png') no-repeat
        center;
    }
    .twoMenu_imge33 {
      background: url('../../assets/img/synthesis/图层 14 å‰¯æœ¬ æ‹·è´.png')
        no-repeat center;
    }
    .twoMenu_imge34 {
      background: url('../../assets/img/synthesis/图层 74 æ‹·è´ 2.png') no-repeat
        center;
    }
    .twoMenu_imge35 {
      background: url('../../assets/img/synthesis/椭圆 7 æ‹·è´ 4.png') no-repeat
        center;
    }
    //分析
    .twoMenu_imge41 {
      background: url('../../assets/img/synthesis/椭圆 8 æ‹·è´ 8.png') no-repeat
        center;
    }
    .twoMenu_imge42 {
      background: url('../../assets/img/synthesis/圆角矩形 12 æ‹·è´ 5.png')
        no-repeat center;
    }
    .twoMenu_imge43 {
      background: url('../../assets/img/synthesis/圆角矩形 10 å‰¯æœ¬ 3.png')
        no-repeat center;
    }
    .twoMenu_imge44 {
      background: url('../../assets/img/synthesis/图层 74 æ‹·è´ 3.png') no-repeat
        center;
    }
    .twoMenu_imge45 {
      background: url('../../assets/img/synthesis/图层 20.png') no-repeat center;
    }
    .twoMenu_imge46 {
      background: url('../../assets/img/synthesis/图层 14 æ‹·è´ 3.png') no-repeat
        center;
    }
    .twoMenu_imge47 {
      background: url('../../assets/img/synthesis/图层 18.png') no-repeat center;
    }
    .twoMenu_imge48 {
      background: url('../../assets/img/synthesis/圆角矩形 12 æ‹·è´ 6.png')
        no-repeat center;
    }
    .twoMenu_imge49 {
      background: url('../../assets/img/synthesis/管道.png') no-repeat center;
    }
    .twoMenu_imge410 {
      background: url('../../assets/img/synthesis/dxkw.png') no-repeat center;
    }
    .twoMenu_imge411 {
      background: url('../../assets/img/synthesis/矩形 14 æ‹·è´ 7.png') no-repeat
        center;
    }
    //查询
    .twoMenu_imge51 {
      background: url('../../assets/img/synthesis/图层 23.png') no-repeat center;
    }
    .twoMenu_imge52 {
      background: url('../../assets/img/synthesis/空间查询.png') no-repeat
        center;
    }
    //定位
    .twoMenu_imge61 {
      background: url('../../assets/img/synthesis/图层 27.png') no-repeat center;
    }
    .twoMenu_imge62 {
      background: url('../../assets/img/synthesis/图层 28.png') no-repeat center;
    }
    //测量
    .twoMenu_imge71 {
      background: url('../../assets/img/synthesis/图层 31.png') no-repeat center;
    }
    .twoMenu_imge72 {
      background: url('../../assets/img/synthesis/图层 31 æ‹·è´.png') no-repeat
        center;
    }
    .twoMenu_imge73 {
      background: url('../../assets/img/synthesis/矩形 13 æ‹·è´.png') no-repeat
        center;
    }
    .twoMenu_imge74 {
      background: url('../../assets/img/synthesis/图层 18 æ‹·è´.png') no-repeat
        center;
    }
    .twoMenu_imge75 {
      background: url('../../assets/img/synthesis/M æ‹·è´.png') no-repeat center;
    }
    .twoMenu_imge76 {
      background: url('../../assets/img/synthesis/空间测距.png') no-repeat
        center;
    }
    //标绘
    .twoMenu_imge81 {
      background: url('../../assets/img/synthesis/椭圆 5 æ‹·è´ 3.png') no-repeat
        center;
    }
    .twoMenu_imge82 {
      background: url('../../assets/img/synthesis/椭圆 3 æ‹·è´ 16.png') no-repeat
        center;
    }
    .twoMenu_imge83 {
      background: url('../../assets/img/synthesis/椭圆 3 æ‹·è´ 20.png') no-repeat
        center;
    }
    .twoMenu_imge84 {
      background: url('../../assets/img/synthesis/椭圆 3 æ‹·è´ 23.png') no-repeat
        center;
    }
    .twoMenu_imge85 {
      background: url('../../assets/img/synthesis/导入.png') no-repeat center;
    }
    .twoMenu_imge86 {
      background: url('../../assets/img/synthesis/导出.png') no-repeat center;
    }
    .twoMenu_imge87 {
      background: url('../../assets/img/synthesis/清除.png') no-repeat center;
      transition: width 2s;
    }
    .right_main {
@@ -731,6 +255,10 @@
      height: 100%;
      position: relative;
    }
    .right_Map {
      width: 100%;
      height: 100%;
    }
    .left_main_show {
      width: 0px;
    }
src/views/datamanage/metadataManage.vue
@@ -317,10 +317,10 @@
        class="codeForm"
      >
        <el-form-item :label="$t('common.passworld')" prop="password">
          <el-input type="password" v-model="codeForm.password"></el-input>
          <el-input type="password" v-model="codeForm.password" show-password></el-input>
        </el-form-item>
        <el-form-item :label="$t('common.SPassword')" prop="repassword">
          <el-input type="password" v-model="codeForm.repassword"></el-input>
          <el-input type="password" v-model="codeForm.repassword" show-password></el-input>
        </el-form-item>
        <el-form-item>
          <el-button class="primary" size="small" @click="download('codeForm')"
@@ -332,11 +332,11 @@
        </el-form-item>
      </el-form>
    </div>
     <iframe id="downFrame" src="" style="display: none; border: 0; padding: 0; height: 0; width: 0"></iframe>
  </div>
</template>
<script>
var encrypt = new JSEncrypt();
import $ from 'jquery'
import { getToken } from '@/utils/auth';
import {
@@ -349,6 +349,8 @@
  selectdirTab,
  queryDepTree,
  meta_downloadReq,
  sign_getPublicKey,
  meta_selectDownloadFile
} from '../../api/api';
import MyBread from '../../components/MyBread.vue';
@@ -443,8 +445,17 @@
    this.getSelectDictTab();
    this.showPermsBtn();
    this.getQueryDepTree();
    this.signGetPublicKey();
  },
  methods: {
  async signGetPublicKey(){
      const res = await sign_getPublicKey();
       if (res && res.code == 200) {
          window.encrypt = new JSEncrypt();
          encrypt.setPublicKey(res.result);
        }
    },
    //单位列表获取
    async getQueryDepTree() {
      const res = await queryDepTree();
@@ -749,45 +760,31 @@
        std.push(this.multipleSelection[i].id)
      }
      var obj = {
        pwd: encrypt.encrypt("Test!321&456"),
        pwd: encrypt.encrypt(this.codeForm.repassword),
        ids: std
      };
       var token = getToken();
      $.ajax({
        url:BASE_URL+"/meta/downloadReq?token="+token,
        type: 'post',
 dataType:  null,
        data: JSON.stringify(obj),
        success: function (res) {
            debugger
        },
        error: function () {
        const res = await meta_downloadReq(JSON.stringify(obj))
        }
      })
       if(res.code!=200){
        this.$message.error('下载请求失败');
        return
       }
      //
      //    $.ajax( BASE_URL+"/meta/downloadReq?token="+token, "POST", JSON.stringify(obj), null, null, function (rs) {
      //   console.log(rs);
      //   alert("code = " + rs.code + ", msg = " + rs.msg + ", result = " + rs.result);
      // });
      //   const res = await meta_downloadReq(JSON.stringify(obj))
      //  debugger
      //
      //         $.ajax(BASE_URL + '/meta/downloadReq"?token=' + token, {
      //         type: 'post',
      //         data:  JSON.stringify(obj),
      //         async: true,
      //         cache: false,
      //         processData: false,
      //         contentType: false,
      //         success: (rs) => {
      //        debugger
      //         },
      //         error: (e) => {
      //           console.log(e);
      //         },
      //       });
       var downObj={
        guid :res.result,
        pwd :encodeURIComponent(encrypt.encrypt(this.codeForm.repassword))
       }
      const data = await meta_selectDownloadFile(downObj)
      if(data.code !=200){
        this.$message.error('下载请求失败');
        return
       }
       var token = getToken()
       var url = BASE_URL+"/meta/downloadFile?token=" +token+ "&guid=" + res.result + "&pwd=" +encodeURIComponent(encrypt.encrypt(this.codeForm.repassword));
      $("#downFrame").attr("src", url).click();
      this.closeDown();
    },
    closeDown() {
      this.showCodeBox = false;
src/views/exportMap/index.vue
@@ -1,7 +1,7 @@
<template>
  <div class="exportmap">
    <div id="mapView" class="mapView">
      <!-- <div class="topMenu">
      <div class="topMenu">
        <el-form :inline="true" :model="formInline" class="demo-form-inline">
          <el-form-item>
            <el-link
@@ -175,8 +175,8 @@
          >
          </el-pagination>
        </div>
      </div> -->
      <!-- <div
      </div>
      <div
        @click="changeMenulayer"
        class="center CenDiv"
        :class="{ center1: centerFlag }"
@@ -185,10 +185,10 @@
          id="cenBg"
          v-bind:class="{ active: isActive, menuLayer: isMenuLayer }"
        ></div>
      </div> -->
      </div>
    </div>
    <!-- <el-dialog
    <el-dialog
      title="提示"
      :visible.sync="dialogVisible"
      width="30%"
@@ -211,7 +211,7 @@
        <el-button @click="dialogVisible = false">取 æ¶ˆ</el-button>
        <el-button type="primary" @click="setAddMapLayer">ç¡® å®š</el-button>
      </span>
    </el-dialog> -->
    </el-dialog>
  </div>
</template>