管道基础大数据平台系统开发-【前端】-新系統界面
Surpriseplus
2023-08-14 04dae190af26730e8e0dcfb7cb4ec066400422f3
src/components/Screen/bottom.vue
@@ -208,8 +208,10 @@
  },
  computed: {
    currMenuList() {
      const menu = this.menuList.find(item => item.menuName == this.currMenu)
      const filterChildren = []
      const value = this.searchName
      menu.children.forEach(item => {
        if (item.name && item.name.includes(value)) {
@@ -226,9 +228,15 @@
  methods: {
    ChangeBaseLayer(name) {
      this.currYX = name
      Viewer.imageryLayers._layers[1].show = false
      Viewer.imageryLayers._layers[2].show = false
      Viewer.imageryLayers._layers[3].show = false
      if (is_production) {
        Viewer.imageryLayers._layers[2].show = false
        Viewer.imageryLayers._layers[1].show = false
      } else {
        Viewer.imageryLayers._layers[1].show = false
      }
      if (yunxuanLayer) {
        Viewer.imageryLayers.remove(yunxuanLayer);
        yunxuanLayer = null
@@ -253,15 +261,30 @@
            // )
            var urls = "http://t0.tianditu.com/ter_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=ter&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles&tk=";
            var tokne = "94a34772eb88317fcbf8428e10448561"
            yunxuanLayer = Viewer.imageryLayers.addImageryProvider(new Cesium.WebMapTileServiceImageryProvider({
              url: urls + tokne,
              layer: "tdtImgLayer",
              style: "default",
              format: "image/jpeg",
              tileMatrixSetID: "GoogleMapsCompatible",
            }))
            Viewer.imageryLayers.lowerToBottom(yunxuanLayer);//将图层移到最底层
            if (is_production) {
              var baseUrl_yx = window.sceneConfig.baseUrl_yx;
              if (baseUrl_yx.indexOf('{host}') > -1) {
                baseUrl_yx = baseUrl_yx.replace("{host}", iisHost)
              }
              yunxuanLayer = Viewer.imageryLayers.addImageryProvider(
                new Cesium.UrlTemplateImageryProvider({
                  url: baseUrl_yx,
                  maximumLevel: 22,
                })
              );
            } else {
              yunxuanLayer = Viewer.imageryLayers.addImageryProvider(new Cesium.WebMapTileServiceImageryProvider({
                url: urls + tokne,
                layer: "tdtImgLayer",
                style: "default",
                format: "image/jpeg",
                tileMatrixSetID: "GoogleMapsCompatible",
              }))
            }
            Viewer.imageryLayers.lowerToBottom(yunxuanLayer);//将图层移到最底层
            Viewer.imageryLayers.raise(yunxuanLayer);//将图层上移一层
          }
@@ -269,18 +292,24 @@
          break
        case "影像图":
          Viewer.imageryLayers._layers[2].show = true
          if (is_production) {
            Viewer.imageryLayers._layers[1].show = true
          }
          break
        case "注记图":
          Viewer.imageryLayers._layers[1].show = true
          if (is_production) {
            Viewer.imageryLayers._layers[2].show = true
          } else {
            Viewer.imageryLayers._layers[1].show = true
          }
          break
        default:
          break
      }
    },
    handleMenuClick(menu) {
      this.currMenu = menu.menuName
    },
    handlePopoverClick(child) {
@@ -291,12 +320,13 @@
          this.showPathLine(child)
          break
        case "项目展示":
          this.$bus.$emit("changeProjectLayer", child.id)
          this.DisplayCurrentProject(child)
          this.changeProject(child)
          this.$bus.$emit("changeProjectCode", child.id)
          break
        case "专题展示":
          this.$bus.$emit("changeProjectLayer", child.id)
          this.changeProject(child)
          break
@@ -307,6 +337,9 @@
    //工程巡视
    async showPathLine(params) {
      this.$bus.$emit("closeLeftAndRightMenu", true)
      const line = wktToGeoJSON(params.wkt)
      const position = line.coordinates[0]
      const result = []
@@ -315,7 +348,7 @@
        pos.push(1000)
        result.push(...pos)
      })
      // console.log("line", position)
      window.sgworld.Creator.getFlyData(result, data => {
        data.showPoint = false
@@ -327,6 +360,7 @@
        window.PathAnimationData = {
          flyData: data,
        }
        var that = this
        window.PathAnimationData.winIndex = layer.open({
          type: 2,
          title: "工程巡视",
@@ -337,6 +371,7 @@
          content: SmartEarthRootUrl + "Workers/path/ProjectPath.html",
          end: function () {
            PathAnimationData.fly && PathAnimationData.fly.exit()
            that.$bus.$emit("closeLeftAndRightMenu", false)
          },
        })
      })
@@ -400,7 +435,9 @@
    async getCountProjectTour() {
      const res = await countProjectTour()
      if (res.code === 200) {
        const menu = this.menuList.find(item => item.menuName == "工程巡视")
        menu.children = res.result.map(item => {
          return {
            name: item.projname,
@@ -413,6 +450,31 @@
    //专题展示
    changeProject(params) {
      this.$bus.$emit("changeProject", params.name)
      var lon, lat, height;
      if (params.name.indexOf("全国") != -1) {
        height = 20000000;
        lon = 110;
        lat = 32;
        window.viewer.camera.flyTo({
          destination: new Cesium.Cartesian3.fromDegrees(lon, lat, height),
          orientation: {
            heading: Cesium.Math.toRadians(0),
            pitch: Cesium.Math.toRadians(-90),
          },
        })
      } else if (params.name.indexOf("全球") != -1) {
        lon = 85;
        lat = 25;
        height = 30000000;
        window.viewer.camera.flyTo({
          destination: new Cesium.Cartesian3.fromDegrees(lon, lat, height),
          orientation: {
            heading: Cesium.Math.toRadians(0),
            pitch: Cesium.Math.toRadians(-90),
          },
        })
      }
    },
    handleTree(params) {
      this.showTree = !this.showTree
@@ -542,7 +604,7 @@
      background: url(~@/assets/img/Screen/centerbtn.png);
      background-size: 100% 100%;
      background-repeat: no-repeat;
      font-size: 1rem;
      font-size: 16px;
      display: flex;
      align-items: center;
      justify-content: center;