管道基础大数据平台系统开发-【前端】-新系統界面
surprise
2023-11-29 97277a2c41d80bbf375f88a47e242f1b17602b2b
发布管理修改
已添加2个文件
已修改7个文件
1238 ■■■■■ 文件已修改
src/components/MapDiv.vue 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/mapol.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/mapsdk.vue 633 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/index.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Tools/AddOnlineMap.vue 226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Tools/AddOnlineOLMap.vue 221 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Tools/layer.js 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/dataUpdata.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/uploadmanage.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/MapDiv.vue
@@ -24,6 +24,7 @@
      <mapol></mapol>
    </div>
    <add-online-map ref="addOnlineMap" />
    <add-online-ol-map ref="addOnlineOlMap"></add-online-ol-map>
  </div>
</template>
@@ -35,13 +36,15 @@
import ol from "ol"
import $ from "jquery"
import AddOnlineMap from '../views/Tools/AddOnlineMap.vue'
import AddOnlineOlMap from '../views/Tools/AddOnlineOLMap.vue'
export default {
  name: "",
  components: {
    mapsdk,
    mapol,
    AddOnlineMap
    AddOnlineMap,
    AddOnlineOlMap
  },
  data() {
    return {
@@ -62,6 +65,7 @@
    changeMap(res) {
      this.isSplitFlag = res
      this.getMapViewCenter(this.isSplitFlag);
      switch (res) {
        case 1:
          this.isShowCeMap = true
@@ -70,8 +74,9 @@
          this.isShowOlMap = true
          this.isSdkMapFlag = true
          var that = this
          this.$store.state.setChangeBaseMap = false;
          setTimeout(function () {
            window.map.updateSize()
            that.showSplitMap()
          }, 500)
@@ -96,6 +101,7 @@
          this.isOlMapFlag = false
          this.isShowCeMap = false
          var val = this.$store.state.Map3;
          this.$store.state.setChangeBaseMap = true;
          window.Viewer.camera.setView({
            destination: Cesium.Cartesian3.fromDegrees(val[0], val[1], val[2]),
          })
@@ -227,13 +233,22 @@
      }
      return this.levelArray[this.levelArray.length - 1]
    },
    showBaseMapLayer() {
      this.$refs && this.$refs.addOnlineMap && this.$refs.addOnlineMap.open("在线地图", null);
    showBaseMapLayer(res) {
      this.closeAllBaseMapLayer();
      if(res.type == 'ol'){
        this.$refs && this.$refs.addOnlineOlMap && this.$refs.addOnlineOlMap.open("2D在线地图", null);
      }else{
        this.$refs && this.$refs.addOnlineMap && this.$refs.addOnlineMap.open("3D在线地图", null);
    }
    },
    closeAllBaseMapLayer(){
      this.$refs && this.$refs.addOnlineOlMap && this.$refs.addOnlineOlMap.close();
      this.$refs && this.$refs.addOnlineMap && this.$refs.addOnlineMap.close();
    },
  },
  mounted() {
    this.$bus.$on("setChangeBaseMapLayer", (res) => {
      this.showBaseMapLayer()
      this.showBaseMapLayer(res)
    })
@@ -269,7 +284,7 @@
  width: 100%;
}
.sdkMapTwo {
  width: calc(50% - 1px);
  width: calc(50% - 2px);
}
.olMap {
  height: 100%;
@@ -281,7 +296,7 @@
  width: 100%;
}
.olMapTwo {
  width: calc(50% - 1px);
  width: calc(50% - 2px);
}
#ds {
  height: 100%;
src/components/mapol.vue
@@ -26,7 +26,9 @@
      <div
        @click="changeMapType"
        class="changeMapType"
        v-if="$store.state.setChangeBaseMap"
        style="  position: absolute;
  bottom: 52px;
  right: 46px;
  height: 30px;
@@ -203,7 +205,7 @@
    },
    changeMenulayer() {
      this.$bus.$emit("setChangeBaseMapLayer", true)
      this.$bus.$emit("setChangeBaseMapLayer", {type:'ol',boolen:true})
      // this.isActive = !this.isActive
      // this.isMenuLayer = !this.isMenuLayer
      // this.setLayerVisible()
src/components/mapsdk.vue
@@ -1,212 +1,107 @@
<template>
  <div class="mapBox">
    <div id="mapdiv">
      <div
        class="menu_Top box_divm"
        v-if="$store.state.mapMenuBoolean"
      >
      <div class="menu_Top box_divm" v-if="$store.state.mapMenuBoolean">
        <map-menu-top v-if="$store.state.mapMenuBoxFlag == '1'" />
        <map-space-top v-if="$store.state.mapMenuBoxFlag == '2'" />
      </div>
      <div
        class="bufferBox"
        v-if="showBufferBoxDialog"
      >
      <div class="bufferBox" v-if="showBufferBoxDialog">
        <el-card class="box-card box_divm">
          <div
            slot="header"
            class="clearfix"
          >
          <div slot="header" class="clearfix">
            <span>缓冲区分析</span>
            <div style="float: right; cursor: pointer">
              <i
                class="el-icon-close"
                @click="closeBufferBox(1)"
              ></i>
              <i class="el-icon-close" @click="closeBufferBox(1)"></i>
            </div>
          </div>
          <div class="box-body">
            <el-form
              ref="form"
              :model="bufFrom"
              label-width="100px"
            >
            <el-form ref="form" :model="bufFrom" label-width="100px">
              <el-form-item label="缓冲半径(ç±³):">
                <el-input v-model="bufFrom.val"></el-input>
              </el-form-item>
              <el-form-item>
                <el-button
                  @click="addBuffer(1)"
                  type="info"
                >点</el-button>
                <el-button
                  @click="addBuffer(2)"
                  type="info"
                >线</el-button>
                <el-button
                  @click="addBuffer(3)"
                  type="info"
                >面</el-button>
                <el-button
                  @click="clearBuffer"
                  type="info"
                >清除</el-button>
                <el-button @click="addBuffer(1)" type="info">点</el-button>
                <el-button @click="addBuffer(2)" type="info">线</el-button>
                <el-button @click="addBuffer(3)" type="info">面</el-button>
                <el-button @click="clearBuffer" type="info">清除</el-button>
              </el-form-item>
            </el-form>
          </div>
        </el-card>
      </div>
      <!--坐标点位-->
      <div
        class="coordLocalBox"
        v-if="showCoordLocalBoxDialog"
      >
      <div class="coordLocalBox" v-if="showCoordLocalBoxDialog">
        <el-card class="box-card">
          <div slot="header">
            <span>坐标定位</span>
            <div style="float: right; cursor: pointer">
              <i
                class="el-icon-close"
                @click="closeBufferBox(2)"
              ></i>
              <i class="el-icon-close" @click="closeBufferBox(2)"></i>
            </div>
          </div>
          <div class="box-body">
            <el-form
              ref="form"
              :model="coordFrom"
              label-width="70px"
            >
            <el-form ref="form" :model="coordFrom" label-width="70px">
              <el-form-item label="经度:">
                <el-input
                  v-model="coordFrom.lon"
                  placeholder="请输入经度"
                ></el-input>
                <el-input v-model="coordFrom.lon" placeholder="请输入经度"></el-input>
              </el-form-item>
              <el-form-item label="纬度:">
                <el-input
                  v-model="coordFrom.lat"
                  placeholder="请输入维度"
                ></el-input>
                <el-input v-model="coordFrom.lat" placeholder="请输入维度"></el-input>
              </el-form-item>
              <el-form-item label="高度:">
                <el-input
                  v-model="coordFrom.height"
                  placeholder="请输入高度"
                ></el-input>
                <el-input v-model="coordFrom.height" placeholder="请输入高度"></el-input>
              </el-form-item>
              <el-form-item>
                <el-button
                  @click="setCoordLocal"
                  type="info"
                >定位</el-button>
                <el-button @click="setCoordLocal" type="info">定位</el-button>
              </el-form-item>
            </el-form>
          </div>
        </el-card>
      </div>
      <!--地形平整-->
      <div
        class="terrainLevelBox"
        v-if="showTerrainLevelDialog"
      >
      <div class="terrainLevelBox" v-if="showTerrainLevelDialog">
        <el-card class="box-card">
          <div slot="header">
            <span>地形平整</span>
            <div style="float: right; cursor: pointer">
              <i
                class="el-icon-close"
                @click="closeBufferBox(5)"
              ></i>
              <i class="el-icon-close" @click="closeBufferBox(5)"></i>
            </div>
          </div>
          <div class="box-body">
            <el-form
              ref="form"
              :model="terrainFrom"
              label-width="100px"
            >
            <el-form ref="form" :model="terrainFrom" label-width="100px">
              <el-form-item label="平整高度:">
                <el-input v-model="terrainFrom.height"></el-input>
              </el-form-item>
              <el-form-item>
                <el-button
                  @click="drawTerrainLevel"
                  type="parmary"
                >绘制</el-button>
                <el-button
                  @click="clearTerrainLevel"
                  type="info"
                >清除</el-button>
                <el-button @click="drawTerrainLevel" type="parmary">绘制</el-button>
                <el-button @click="clearTerrainLevel" type="info">清除</el-button>
              </el-form-item>
            </el-form>
          </div>
        </el-card>
      </div>
      <div
        class="toponymicLocalBox"
        v-if="showToponymicLocalBoxDialog"
      >
      <div class="toponymicLocalBox" v-if="showToponymicLocalBoxDialog">
        <el-card class="box-card">
          <div
            slot="header"
            class="clearfix"
          >
          <div slot="header" class="clearfix">
            <span>地名定位</span>
            <div style="float: right; cursor: pointer">
              <i
                class="el-icon-close"
                @click="closeBufferBox(3)"
              ></i>
              <i class="el-icon-close" @click="closeBufferBox(3)"></i>
            </div>
          </div>
          <div class="box-body">
            <el-form
              :model="comprehensive"
              :inline="true"
            >
            <el-form :model="comprehensive" :inline="true">
              <el-form-item label="地名:">
                <el-input
                  size="small"
                  style="width: 160px"
                  v-model="comprehensive.name"
                  placeholder="请输入地名...."
                ></el-input>
                <el-input size="small" style="width: 160px" v-model="comprehensive.name"
                  placeholder="请输入地名...."></el-input>
              </el-form-item>
              <el-form-item>
                <el-button
                  @click="setQueryTable"
                  type="info"
                  size="small"
                >查询</el-button>
                <el-button @click="setQueryTable" type="info" size="small">查询</el-button>
              </el-form-item>
            </el-form>
            <el-table
              :data="tableData"
              height="200px"
              border
              style="width: 100%"
            >
              <el-table-column
                align="center"
                type="index"
                label="序号"
                width="70"
              />
              <el-table-column
                prop="name"
                align="center"
                label="地名"
              >
            <el-table :data="tableData" height="200px" border style="width: 100%">
              <el-table-column align="center" type="index" label="序号" width="70" />
              <el-table-column prop="name" align="center" label="地名">
                <template slot-scope="scope">
                  <el-button
                    @click="handleLocation(scope.$index, scope.row)"
                    size="small"
                  >{{scope.row.name}}<i
                      class="el-icon-place"
                      style="padding-left: 5px"
                    ></i></el-button>
                  <el-button @click="handleLocation(scope.$index, scope.row)" size="small">{{ scope.row.name }}<i
                      class="el-icon-place" style="padding-left: 5px"></i></el-button>
                </template>
              </el-table-column>
              <!--              <el-table-column-->
@@ -230,81 +125,37 @@
              <!--              </el-table-column>-->
            </el-table>
            <div class="pagination_box">
              <el-pagination
                @size-change="handleSizeChange"
                @current-change="handleCurrentChange"
                :current-page="listData.pageIndex"
                :page-sizes="[10, 20, 50, 100]"
                :pager-count="3"
                :page-size="listData.pageSize"
                layout="total, prev, pager, next"
                :total="count"
              >
              <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
                :current-page="listData.pageIndex" :page-sizes="[10, 20, 50, 100]" :pager-count="3"
                :page-size="listData.pageSize" layout="total, prev, pager, next" :total="count">
              </el-pagination>
            </div>
          </div>
        </el-card>
      </div>
      <!-- è·¯å¾„分析弹窗-->
      <div
        class="pathAnalysisBox"
        v-if="showPathAnalysisBoxDialog"
      >
      <div class="pathAnalysisBox" v-if="showPathAnalysisBoxDialog">
        <el-card class="box-card">
          <div
            slot="header"
            class="clearfix"
          >
          <div slot="header" class="clearfix">
            <span>路径分析</span>
            <div style="float: right; cursor: pointer">
              <i
                class="el-icon-close"
                @click="closeBufferBox(4)"
              ></i>
              <i class="el-icon-close" @click="closeBufferBox(4)"></i>
            </div>
          </div>
          <div class="box-body">
            <el-form
              ref="form"
              :model="pathFrom"
              :rules="rules"
              label-width="55px"
            >
              <el-form-item
                label="起点:"
                prop="lon"
              >
                <el-input
                  style="width: 250px"
                  v-model="pathFrom.lon"
                  placeholder="坐标格式:116.799,39.979"
                ></el-input>
                <el-link
                  :underline="false"
                  @click="showMouseLeftClick(1)"
                  style="margin-left: 10px"
                ><i class="el-icon-plus"></i></el-link>
            <el-form ref="form" :model="pathFrom" :rules="rules" label-width="55px">
              <el-form-item label="起点:" prop="lon">
                <el-input style="width: 250px" v-model="pathFrom.lon" placeholder="坐标格式:116.799,39.979"></el-input>
                <el-link :underline="false" @click="showMouseLeftClick(1)" style="margin-left: 10px"><i
                    class="el-icon-plus"></i></el-link>
              </el-form-item>
              <el-form-item
                label="终点:"
                prop="lat"
              >
                <el-input
                  style="width: 250px"
                  v-model="pathFrom.lat"
                  placeholder="坐标格式:116.824,39.938"
                ></el-input>
                <el-link
                  :underline="false"
                  @click="showMouseLeftClick(2)"
                  style="margin-left: 10px"
                ><i class="el-icon-plus"></i></el-link>
              <el-form-item label="终点:" prop="lat">
                <el-input style="width: 250px" v-model="pathFrom.lat" placeholder="坐标格式:116.824,39.938"></el-input>
                <el-link :underline="false" @click="showMouseLeftClick(2)" style="margin-left: 10px"><i
                    class="el-icon-plus"></i></el-link>
              </el-form-item>
              <el-form-item>
                <el-button
                  @click="showMouseLeftClick(3)"
                  type="info"
                >查询</el-button>
                <el-button @click="showMouseLeftClick(3)" type="info">查询</el-button>
              </el-form-item>
            </el-form>
          </div>
@@ -333,10 +184,7 @@
        ></div>
      </div> -->
      <!--      class="center CenDiv"-->
      <div
        @click="changeMenulayer"
        class="changeLayer"
        style="  position: absolute;
      <div @click="changeMenulayer" class="changeLayer" style="  position: absolute;
  bottom: 116px;
  right: 46px;
  height: 30px;
@@ -346,19 +194,11 @@
  justify-content: center;
  align-items: center;
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.5);"
      >
        <div
          title="底图切换"
          id="cenBg"
          class="mapBaseMap"
        ></div>
  border: 1px solid rgba(255, 255, 255, 0.5);">
        <div title="底图切换" id="cenBg" class="mapBaseMap"></div>
      </div>
      <div
        @click="changeMapType"
        class="changeMapType"
        style="  position: absolute;
      <div @click="changeMapType" class="changeMapType" v-if="$store.state.setChangeBaseMap" style="  position: absolute;
  bottom: 85px;
  right: 46px;
  height: 30px;
@@ -368,27 +208,16 @@
  justify-content: center;
  align-items: center;
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.5);"
      >
        <div
          title="2/3维切换"
          id="cenBg"
          :class="show2DMap ? 'mapTypeTwo' : 'mapTypeThree'"
        ></div>
  border: 1px solid rgba(255, 255, 255, 0.5);">
        <div title="2/3维切换" id="cenBg" :class="show2DMap ? 'mapTypeTwo' : 'mapTypeThree'"></div>
      </div>
      <!--      </div>-->
      <!-- å¡åº¦åˆ†æžå¼¹çª—-->
      <div
        class="lengend"
        v-show="showLengendDialog"
      >
      <div class="lengend" v-show="showLengendDialog">
        <el-card class="box-card">
          <div class="lengendBox">
            <div>
              <img
                class="lengendImg"
                src="../assets/img/colors.png"
              />
              <img class="lengendImg" src="../assets/img/colors.png" />
            </div>
            <div class="lengendSpan">
              <div>0°</div>
@@ -400,10 +229,7 @@
          </div>
        </el-card>
      </div>
      <div
        class="HistLeng"
        v-show="$store.state.histLenged"
      >
      <div class="HistLeng" v-show="$store.state.histLenged">
        <el-card class="box-card">
          <table>
            <tr>
@@ -473,84 +299,38 @@
        </el-card>
      </div>
      <!--属性信息弹窗-->
      <div
        class="propertiesPop"
        v-if="$store.state.propertiesFlag == '1'"
        v-drag
      >
      <div class="propertiesPop" v-if="$store.state.propertiesFlag == '1'" v-drag>
        <el-card class="box-card">
          <div slot="header">
            <span>属性信息</span>
            <div style="float: right; cursor: pointer">
              <el-link
                v-if="$store.state.surfaceDeForm.flag && this.$store.state.surfaceDeForm.gid"
                type="primary"
                :underline="false"
                @click="setSurfaceDeForm"
                style="margin-right: 10px"
              >地表形变时序图</el-link>
              <el-link
                v-if="$store.state.propertiesName.enName == 's_surveyworksite'"
                type="primary"
                :underline="false"
                @click="getPointInfo"
                style="margin-right: 10px"
              >勘察信息表</el-link>
              <el-link
                type="primary"
                :underline="false"
                @click="getAttatchList"
                style="margin-right: 10px"
              >查看附件</el-link>
              <i
                class="el-icon-close"
                @click="closeBufferBox(6)"
              ></i>
              <el-link v-if="$store.state.surfaceDeForm.flag && this.$store.state.surfaceDeForm.gid" type="primary"
                :underline="false" @click="setSurfaceDeForm" style="margin-right: 10px">地表形变时序图</el-link>
              <el-link v-if="$store.state.propertiesName.enName == 's_surveyworksite'" type="primary" :underline="false"
                @click="getPointInfo" style="margin-right: 10px">勘察信息表</el-link>
              <el-link type="primary" :underline="false" @click="getAttatchList" style="margin-right: 10px">查看附件</el-link>
              <i class="el-icon-close" @click="closeBufferBox(6)"></i>
            </div>
          </div>
          <div
            class="pointInfoBoxContext"
            style="height:250px;overflow-y: auto"
          >
            <div
              style="line-height: 20px"
              v-for="(value, key) in $store.state.propertiesInfo"
              :key="key"
            >
              <span
                v-if="key != 'eventid'"
                style="font-size: 14px;font-weight: bold;margin-right: 5px"
              >{{key}}:</span>
          <div class="pointInfoBoxContext" style="height:250px;overflow-y: auto">
            <div style="line-height: 20px" v-for="(value, key) in $store.state.propertiesInfo" :key="key">
              <span v-if="key != 'eventid'" style="font-size: 14px;font-weight: bold;margin-right: 5px">{{ key }}:</span>
              <span v-if="key != 'eventid'">{{value}}</span>
            </div>
          </div>
        </el-card>
      </div>
      <!--勘察信息弹窗-->
      <div
        v-drag
        class="attributionPop"
        v-if="showAttribute"
      >
      <div v-drag class="attributionPop" v-if="showAttribute">
        <el-card class="box-card">
          <div slot="header">
            <span>勘察信息</span>
            <div style="float: right; cursor: pointer">
              <i
                class="el-icon-close"
                @click="showAttribute=false"
              ></i>
              <i class="el-icon-close" @click="showAttribute = false"></i>
            </div>
          </div>
          <div
            class="pointInfoBoxContext"
            style="height:250px;overflow-y: auto"
          >
            <div
              style="line-height: 20px"
              v-for="(item, index) in attributeList"
              :key="index"
            >
          <div class="pointInfoBoxContext" style="height:250px;overflow-y: auto">
            <div style="line-height: 20px" v-for="(item, index) in attributeList" :key="index">
              <span style="font-size: 14px;font-weight: bold;margin-right: 5px">{{item.alias}}:</span>
              <span>{{item.value ? item.value :'暂无数据'}}</span>
            </div>
@@ -558,19 +338,12 @@
        </el-card>
      </div>
      <div
        class="propertiesPop"
        style="right:22%"
        v-if="$store.state.propertiesFlag == '2'"
      >
      <div class="propertiesPop" style="right:22%" v-if="$store.state.propertiesFlag == '2'">
        <el-card class="box-card">
          <div slot="header">
            <span>{{ $store.state.propertiesInfo.title }}</span>
          </div>
          <div
            class="pointInfoBoxContext"
            style="height:250px;overflow-y: auto"
          >
          <div class="pointInfoBoxContext" style="height:250px;overflow-y: auto">
            <div style="line-height: 20px">岩土名称: {{ $store.state.propertiesInfo.name }}</div>
            <div style="line-height: 20px">岩土类型: {{ $store.state.propertiesInfo.type }}</div>
            <div style="line-height: 20px">层底深度: {{ $store.state.propertiesInfo.botdepth }} ç±³</div>
@@ -580,225 +353,95 @@
        </el-card>
      </div>
      <!--三维截面分析弹窗-->
      <div
        class="modelClipPop"
        v-if="$store.state.propertiesFlag == '3'"
      >
      <div class="modelClipPop" v-if="$store.state.propertiesFlag == '3'">
        <div class="slide-bg">
          <el-slider
            class="slide"
            @change="valveChange()"
            :min="-300"
            :max="300"
            v-model="valueX"
          ></el-slider>
          <el-slider class="slide" @change="valveChange()" :min="-300" :max="300" v-model="valueX"></el-slider>
          <span>左右截面</span>
        </div>SpatialQuery
        <div class="slide-bg">
          <el-slider
            class="slide"
            @change="valveChange()"
            :min="-300"
            :max="300"
            v-model="valueY"
          ></el-slider>
          <el-slider class="slide" @change="valveChange()" :min="-300" :max="300" v-model="valueY"></el-slider>
          <span>前后截面</span>
        </div>
        <div class="slide-bg">
          <el-slider
            class="slide"
            @change="valveChange()"
            :min="-300"
            :max="300"
            v-model="valueZ"
          ></el-slider>
          <el-slider class="slide" @change="valveChange()" :min="-300" :max="300" v-model="valueZ"></el-slider>
          <span>上下截面</span>
        </div>
      </div>
      <!-- åœ°è¡¨å½¢å˜æ—¶åºå›¾ -->
      <div
        class="surfaceDeFormPop"
        style="    width: 800px;
      height: 800px;"
        v-show="surfaceDeFormFlag"
        v-drag
      >
      <div class="surfaceDeFormPop" style="    width: 800px;
      height: 800px;" v-show="surfaceDeFormFlag" v-drag>
        <el-card class="box-card">
          <div slot="header">
            <span>地表形变时序图</span>
            <div style="float: right; cursor: pointer">
              <i
                class="el-icon-close"
                @click="closeBufferBox(7)"
              ></i>
              <i class="el-icon-close" @click="closeBufferBox(7)"></i>
            </div>
          </div>
          <div
            id="surfaceDeFormEchart"
            class="pointInfoBoxContext"
            style="height:500px;width:750px;"
          >
          <div id="surfaceDeFormEchart" class="pointInfoBoxContext" style="height:500px;width:750px;">
          </div>
        </el-card>
      </div>
      <!--附件列表弹窗-->
      <el-dialog
        title="附件列表"
        :append-to-body="false"
        :visible.sync="showAttach"
        width="35%"
        :close-on-click-modal="false"
      >
      <el-dialog title="附件列表" :append-to-body="false" :visible.sync="showAttach" width="35%"
        :close-on-click-modal="false">
        <div>
          <el-table
            :data="attachList"
            height="100%"
            style="width: 100%"
            border
          >
            <el-table-column
              align="center"
              type="index"
              label="序号"
              width="50"
            />
            <el-table-column
              prop="name"
              label="名称"
            >
          <el-table :data="attachList" height="100%" style="width: 100%" border>
            <el-table-column align="center" type="index" label="序号" width="50" />
            <el-table-column prop="name" label="名称">
            </el-table-column>
            <el-table-column
              label="时间"
              width="180"
            >
            <el-table-column label="时间" width="180">
              <template slot-scope="scope">
                <span>{{format(scope.row.createTime)}}</span>
              </template>
            </el-table-column>
            <el-table-column
              label="操作"
              width="100"
            >
            <el-table-column label="操作" width="100">
              <template slot-scope="scope">
                <el-button
                  v-if="showAttachDetailBtn(scope.row)"
                  @click="showAttachDetail(scope.row)"
                  type="text"
                  size="small"
                >查看</el-button>
                <el-button v-if="showAttachDetailBtn(scope.row)" @click="showAttachDetail(scope.row)" type="text"
                  size="small">查看</el-button>
              </template>
            </el-table-column>
          </el-table>
        </div>
      </el-dialog>
      <!--附件弹窗-->
      <el-dialog
        title="预览"
        :append-to-body="false"
        :visible.sync="dialog.dialogVisible"
        width="70%"
        :close-on-click-modal="false"
      >
        <div
          v-if="dialog.isPdf"
          class="pdfClass"
        >
          <iframe
            :src="dialog.src"
            type="application/x-google-chrome-pdf"
            width="100%"
            height="100%"
          >
      <el-dialog title="预览" :append-to-body="false" :visible.sync="dialog.dialogVisible" width="70%"
        :close-on-click-modal="false">
        <div v-if="dialog.isPdf" class="pdfClass">
          <iframe :src="dialog.src" type="application/x-google-chrome-pdf" width="100%" height="100%">
          </iframe>
        </div>
        <div
          v-if="dialog.isJpg"
          class="pdfClass"
        >
          <el-image
            style="width:100%; height:100%"
            :src="dialog.src"
            :preview-src-list="[dialog.src]"
          >
        <div v-if="dialog.isJpg" class="pdfClass">
          <el-image style="width:100%; height:100%" :src="dialog.src" :preview-src-list="[dialog.src]">
          </el-image>
        </div>
      </el-dialog>
      <el-dialog
        title="瓦片下载"
        :append-to-body="false"
        :visible.sync="downTitleFlag"
        :close-on-click-modal="false"
        :show-close="false"
        width="30%"
      >
        <el-form
          :model="ruleForm"
          status-icon
          :rules="rules"
          ref="ruleForm"
          label-width="100px"
          class="demo-ruleForm"
        >
          <el-form-item
            label="名称"
            prop="title"
          >
            <el-input
              v-model="ruleForm.title"
              size="small"
              placeholder="请输入数据名称..."
            ></el-input>
      <el-dialog title="瓦片下载" :append-to-body="false" :visible.sync="downTitleFlag" :close-on-click-modal="false"
        :show-close="false" width="30%">
        <el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
          <el-form-item label="名称" prop="title">
            <el-input v-model="ruleForm.title" size="small" placeholder="请输入数据名称..."></el-input>
          </el-form-item>
          <el-form-item
            label="密码"
            prop="pass"
          >
            <el-input
              show-password
              type="password"
              v-model="ruleForm.pass"
              autocomplete="off"
              size="small"
              placeholder="请输入密码..."
            ></el-input>
          <el-form-item label="密码" prop="pass">
            <el-input show-password type="password" v-model="ruleForm.pass" autocomplete="off" size="small"
              placeholder="请输入密码..."></el-input>
          </el-form-item>
          <el-form-item
            label="确认密码"
            prop="checkPass"
          >
            <el-input
              show-password
              type="password"
              v-model="ruleForm.checkPass"
              autocomplete="off"
              size="small"
              placeholder="确认密码..."
            ></el-input>
          <el-form-item label="确认密码" prop="checkPass">
            <el-input show-password type="password" v-model="ruleForm.checkPass" autocomplete="off" size="small"
              placeholder="确认密码..."></el-input>
          </el-form-item>
          <el-form-item>
            <el-button
              type="primary"
              size="small"
              @click='submitTitleDown("ruleForm")'
            >提交</el-button>
            <el-button
              size="small"
              @click='cannelTitleDown("ruleForm")'
            >取消</el-button>
            <el-button type="primary" size="small" @click='submitTitleDown("ruleForm")'>提交</el-button>
            <el-button size="small" @click='cannelTitleDown("ruleForm")'>取消</el-button>
          </el-form-item>
        </el-form>
      </el-dialog>
    </div>
    <surface-chart ref="surfaceChart" />
    <iframe
      id="downFrame"
      src=""
      style="display: none; border: 0; padding: 0; height: 0; width: 0"
    ></iframe>
    <iframe id="downFrame" src="" style="display: none; border: 0; padding: 0; height: 0; width: 0"></iframe>
    <model-property ref="modelProperty"></model-property>
  </div>
</template>
@@ -1019,6 +662,7 @@
        xtitle.push(this.formDate(val[i].defdate))
        val2.push(val[i].seqvar)
      }
      debugger
      this.showSurfaceDeFormEchart(xtitle, val1, val2);
    },
@@ -1418,7 +1062,7 @@
      this.terrainflag = !this.terrainflag
    },
    changeMenulayer() {
      this.$bus.$emit("setChangeBaseMapLayer", true)
      this.$bus.$emit("setChangeBaseMapLayer", { type: 'Cesium', boolen: true })
      // this.$refs && this.$refs.addOnlineMap && this.$refs.addOnlineMap.open("地下模式", null,);
      // this.isActive = !this.isActive;
      // this.isMenuLayer = !this.isMenuLayer;
@@ -2139,11 +1783,13 @@
  width: 100%;
  height: 100%;
  position: relative;
  #mapdiv {
    width: 100%;
    height: 100%;
    overflow: hidden;
    position: relative;
    .toponymicLocalBox {
      width: 350px;
      //width: 750px;
@@ -2153,6 +1799,7 @@
      right: 8%;
      bottom: 1%;
    }
    .bufferBox {
      width: 412px;
      height: 230px;
@@ -2161,6 +1808,7 @@
      right: 6%;
      bottom: 1%;
    }
    .coordLocalBox {
      width: 350px;
      height: 370px;
@@ -2168,10 +1816,12 @@
      position: absolute;
      right: 8%;
      bottom: 1%;
      span {
        width: 100px;
      }
    }
    .propertiesPop {
      width: 350px;
      height: 370px;
@@ -2179,25 +1829,31 @@
      position: absolute;
      right: 8%;
      bottom: 1%;
      /deep/ .el-card__header {
        padding: 10px 20px;
      }
      /deep/ .el-card__body {
        padding: 10px 20px;
      }
    }
    .surfaceDeFormPop {
      z-index: 40;
      position: absolute;
      right: 8%;
      bottom: 1%;
      /deep/ .el-card__header {
        padding: 10px 20px;
      }
      /deep/ .el-card__body {
        padding: 10px 20px;
      }
    }
    .modelClipPop {
      width: 350px;
      z-index: 40;
@@ -2206,10 +1862,12 @@
      top: 3%;
      background: rgba(255, 255, 255, 0.85);
      border: 1px solid rgba(32, 160, 255, 0.6);
      .slide-bg {
        padding: 10px;
        display: flex;
        align-items: center;
        .slide {
          width: 250px;
          margin-left: 5px;
@@ -2217,6 +1875,7 @@
        }
      }
    }
    .pathAnalysisBox {
      width: 412px;
      height: 370px;
@@ -2225,6 +1884,7 @@
      right: 8%;
      bottom: 1%;
    }
    .attributionPop {
      width: 350px;
      height: 370px;
@@ -2232,13 +1892,16 @@
      position: absolute;
      right: 38%;
      bottom: 1%;
      /deep/ .el-card__header {
        padding: 10px 20px;
      }
      /deep/ .el-card__body {
        padding: 10px 20px;
      }
    }
    .terrainLevelBox {
      width: 350px;
      height: 370px;
@@ -2252,15 +1915,18 @@
      opacity: 0.85;
      border: 1px solid rgba(32, 160, 255, 0.6);
    }
    .menu_Top {
      width: 100%;
      padding: 1%;
      position: absolute;
      z-index: 40;
      /deep/.el-form-item {
        margin-bottom: 0px;
      }
    }
    .menu_Popup {
      background: #303030;
      opacity: 0.85;
@@ -2272,12 +1938,14 @@
      position: absolute;
      z-index: 40;
    }
    .HistLeng {
      z-index: 40;
      position: absolute;
      right: 115px;
      bottom: 10px;
    }
    .lengend {
      width: 300px;
      z-index: 40;
@@ -2285,18 +1953,23 @@
      right: 1%;
      bottom: 13%;
      transform: rotate(90deg);
      .lengendBox {
        .lengendSpan {
          display: flex;
          justify-content: space-between;
          margin-top: 10px;
          div {
            transform: rotate(-90deg);
          }
        }
        .lengendImg {
          -ms-transform: rotate(180deg); /* IE 9 */
          -webkit-transform: rotate(180deg); /* Safari and Chrome */
          -ms-transform: rotate(180deg);
          /* IE 9 */
          -webkit-transform: rotate(180deg);
          /* Safari and Chrome */
          transform: rotate(180deg);
          width: 100%;
          height: 30px;
@@ -2367,9 +2040,11 @@
  border-radius: 5px;
  cursor: pointer;
}
.center1 {
  right: 1%;
}
.right {
  position: absolute;
  top: 50px;
@@ -2381,6 +2056,7 @@
  flex-direction: column;
  justify-content: space-between;
}
// .CenDiv:hover {
//   border: 1px solid #409eff;
// }
@@ -2392,6 +2068,7 @@
  background-size: 100% 100%;
  border-radius: 5px;
}
.menuLayer {
  width: 100%;
  height: 100%;
@@ -2427,12 +2104,12 @@
//
//  cursor: pointer;
//}
.changeTerrain {
}
.changeLayer {
}
.changeMapType {
}
.changeTerrain {}
.changeLayer {}
.changeMapType {}
//.changeTerrain {
//  position: absolute;
//  bottom: 1%;
@@ -2458,6 +2135,7 @@
  //background-size: contain;
}
.mapTerrain {
  width: 100%;
  height: 100%;
@@ -2468,6 +2146,7 @@
  background-repeat: no-repeat;
  //background-size: contain;
}
.mapTypeThree {
  width: 100%;
  height: 100%;
src/store/index.js
@@ -83,7 +83,8 @@
      falg: false,
      gid: null,
      val: null
    }
    },
    setChangeBaseMap:true,
  },
  mutations: {
    UPDATE_LISTEN_TIME(state, msg) {
src/views/Tools/AddOnlineMap.vue
@@ -1,60 +1,23 @@
<template>
  <Popup
    ref="pop"
    :title="title"
    @close="close(true)"
    width="400px"
    @yes="addData"
    @cancel="close(false)"
  >
  <Popup ref="pop" :title="title" @close="close(true)" width="400px" @yes="addData" @cancel="close(false)">
    <div
      id="archTopBox"
      class="archTopBox"
    >
    <div id="archTopBox" class="archTopBox">
      <div
        class="boxCard"
        v-for="(item,index) in mapList"
      >
      <div class="boxCard" v-for="(item, index) in mapList">
        <el-card class="box-card">
          <div
            slot="header"
            class="clearfix"
          >
          <div slot="header" class="clearfix">
            <span style="font-size:14px">{{item.name}}</span>
            <div style="float: right; padding: 3px 0">
              <i
                v-show="!item.isShow"
                style="margin-left:10px"
                class="el-icon-arrow-up"
                :title="$t('archiveObj.fold')"
                @click="setCardChange(item)"
              ></i>
              <i
                v-show="item.isShow"
                style="margin-left:10px"
                class="el-icon-arrow-down"
                :title="$t('archiveObj.develop')"
                @click="setCardChange(item)"
              ></i>
              <i v-show="!item.isShow" style="margin-left:10px" class="el-icon-arrow-up" :title="$t('archiveObj.fold')"
                @click="setCardChange(item)"></i>
              <i v-show="item.isShow" style="margin-left:10px" class="el-icon-arrow-down"
                :title="$t('archiveObj.develop')" @click="setCardChange(item)"></i>
            </div>
          </div>
          <div
            :id="item.id"
            style="margin:5px 1px"
            v-show="!item.isShow"
          >
          <div :id="item.id" style="margin:5px 1px" v-show="!item.isShow">
            <div style="margin:10px;width:380px">
              <div
                class="map"
                v-for="(map, mapIndex) in item.list"
                @click="addImageLayer(map, item)"
              >
                <img
                  style="width: 60px; height: 60px"
                  :src="map.image"
                ></img>
              <div class="map" v-for="(map, mapIndex) in item.list" @click="addImageLayer(map, item)">
                <img style="width: 60px; height: 60px" :src="map.image"></img>
                <div> <el-link :underline="false">
                    {{ map.name }}
                  </el-link></div>
@@ -64,29 +27,6 @@
        </el-card>
      </div>
      <!-- <el-collapse :value="activeNames">
          <el-collapse-item
            v-for="(mapCollection, index) in mapList"
            :title="mapCollection.name"
            :name="mapCollection.name"
            :key="index"
          >
            <div
              class="map"
              v-for="(map, mapIndex) in mapCollection.list"
              :key="mapIndex"
              @click="addImageLayer(map, mapCollection)"
            >
              <el-image
                style="width: 60px; height: 60px"
                :src="require(`@assets/imageLayer/${map.image}`)"
                fit="fill"
              ></el-image>
        <span>{{ map.name }}</span>
      </div>
      </el-collapse-item>
      </el-collapse> -->
    </div>
    </el-form>
  </Popup>
@@ -97,7 +37,7 @@
import TileLayer from "ol/layer/Tile"
import XYZ from "ol/source/XYZ"
// å½±åƒå›¾å±‚
import mapLayers from "./layer";
export default {
  name: "AddOnlineMap",
  components: {
@@ -106,7 +46,7 @@
  mixins: [],
  data() {
    return {
      title: "在线地图",
      title: "3D在线地图",
      left: undefined,
      tokne: "",
      data: {
@@ -120,98 +60,7 @@
        zIndex: undefined,
      },
      mapCollection: undefined,
      mapList: [{
        name: "Cesium",
        sourceType: "cesium",
        tokne: "94a34772eb88317fcbf8428e10448561",
        maximumLevel: 18,
        id: 1,
        isShow: true,
        list: [{
          name: "Cesium影像",
          image: require("../../assets/img/imageLayer/tdmap_image.jpg"),
          urls: "https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}",
        },],
      },
      {
        name: "天地图",
        sourceType: "tdmap",
        tokne: "94a34772eb88317fcbf8428e10448561",
        maximumLevel: 18,
        id: 1,
        isShow: true,
        list: [
          {
            name: "天地图地图",
            image: require("../../assets/img/imageLayer/tdmap_map.jpg"),
            urls: "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=",
            olUrls: 'http://t0.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk='
          },
          {
            name: "天地图影像",
            image: require("../../assets/img/imageLayer/tdmap_image.jpg"),
            urls: "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=",
            olUrls: 'http://t0.tianditu.gov.cn/DataServer?T=img_w&x={x}&y={y}&l={z}&tk='
          },
          {
            name: "天地图地形",
            image: require("../../assets/img/imageLayer/tdmap_label.jpg"),
            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=",
            olUrls: 'http://t0.tianditu.gov.cn/DataServer?T=ter_w&x={x}&y={y}&l={z}&tk='
          },
        ],
      },
      {
        name: "高德地图",
        sourceType: "gdmap",
        maximumLevel: 18,
        id: 2,
        isShow: true,
        list: [
          {
            name: "高德地图",
            image: require("../../assets/img/imageLayer/gdmap_map.jpg"),
            urls: "https://webst02.is.autonavi.com/appmaptile?style=7&x={x}&y={y}&z={z}",
          },
          {
            name: "高德影像",
            image: require("../../assets/img/imageLayer/gdmap_image.jpg"),
            urls: "https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}",
          },
        ],
      }, {
        name: '本地服务',
        sourceType: 'localmap',
        maximumLevel: 22,
        id: 3,
        isShow: true,
        list: [
          {
            name: "地图",
            image: require("../../assets/img/imageLayer/gdmap_map.jpg"),
            urls: "http://{host}/LFData/2d/tiles/vec/{z}/{x}/{y}.png",
          },
          {
            name: "影像",
            image: require("../../assets/img/imageLayer/gdmap_image.jpg"),
            urls: "http://{host}/LFData/2d/tiles/img/{z}/{x}/{y}.png",
          },
          {
            name: "地形",
            image: require("../../assets/img/imageLayer/dixing.png"),
            urls: "http://{host}/LFData/2d/tiles/ter/{z}/{x}/{y}.png",
          },
          {
            name: "1:20万区域地质图",
            image: require("../../assets/img/imageLayer/25dizhi.png"),
            urls: "http://{host}/LFData/2d/tiles/20w_qydz/{z}/{x}/{y}.png",
          },
        ],
      }
      ],
      mapList: mapLayers,
    };
  },
  computed: {
@@ -248,12 +97,7 @@
      window.Viewer.imageryLayers.remove(
        window.BaseMapLayer
      );
      window.map.removeLayer(window.olBaseMapLayer);
      if (!is_production) {
        if (window.vectorLayer) {
          window.map.removeLayer(window.vectorLayer);
        }
      }
    },
    addImageLayer(map, mapCollection) {
@@ -268,15 +112,7 @@
      this.mapCollection = mapCollection;
      if (mapCollection.sourceType === "cesium") {
        window.olBaseMapLayer = new TileLayer({
          title: "高德地图",
          source: new XYZ({
            url: map.urls,
            wrapX: false
          }),
          zIndex: -1
        });
        window.map.addLayer(window.olBaseMapLayer);
        return;
      } else if (mapCollection.sourceType === "tdmap") {
@@ -291,15 +127,7 @@
          tileMatrixSetID: "GoogleMapsCompatible",
        }))
        window.olBaseMapLayer = new TileLayer({
          title: "高德地图",
          source: new XYZ({
            url: map.olUrls + tokne
          }),
          zIndex: -1
        });
        window.map.addLayer(window.olBaseMapLayer);
      } else if (mapCollection.sourceType === "gdmap") {
        window.BaseMapLayer = Viewer.imageryLayers.addImageryProvider(
@@ -309,15 +137,7 @@
          })
        );
        window.olBaseMapLayer = new TileLayer({
          title: "高德地图",
          source: new XYZ({
            url: map.urls,
            wrapX: false
          }),
          zIndex: -1
        });
        window.map.addLayer(window.olBaseMapLayer);
      } else if (mapCollection.sourceType === "localmap") {
        var ulr = map.urls;
        ulr = ulr.replace("{host}", iisHost)
@@ -329,15 +149,7 @@
          })
        );
        window.olBaseMapLayer = new TileLayer({
          title: "高德地图",
          source: new XYZ({
            url: ulr,
            wrapX: false
          }),
          zIndex: -1
        });
        window.map.addLayer(window.olBaseMapLayer);
      }
      Viewer.imageryLayers.lowerToBottom(window.BaseMapLayer);//将图层移到最底层
      Viewer.imageryLayers.raise(window.BaseMapLayer);//将图层移到最底层
@@ -380,6 +192,7 @@
/deep/.el-card__body {
  padding: 0px !important;
}
.map {
  display: inline-block;
  cursor: pointer;
@@ -391,6 +204,7 @@
    border-radius: 4px;
  }
}
.boxCard {
  margin-bottom: 5px;
}
src/views/Tools/AddOnlineOLMap.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,221 @@
<template>
  <Popup ref="pop" :title="title" @close="close(true)" width="400px" @yes="addData" @cancel="close(false)">
    <div id="archTopBox" class="archTopBox">
      <div class="boxCard" v-for="(item, index) in mapList">
        <el-card class="box-card">
          <div slot="header" class="clearfix">
            <span style="font-size:14px">{{ item.name }}</span>
            <div style="float: right; padding: 3px 0">
              <i v-show="!item.isShow" style="margin-left:10px" class="el-icon-arrow-up" :title="$t('archiveObj.fold')"
                @click="setCardChange(item)"></i>
              <i v-show="item.isShow" style="margin-left:10px" class="el-icon-arrow-down"
                :title="$t('archiveObj.develop')" @click="setCardChange(item)"></i>
            </div>
          </div>
          <div :id="item.id" style="margin:5px 1px" v-show="!item.isShow">
            <div style="margin:10px;width:380px">
              <div class="map" v-for="(map, mapIndex) in item.list" @click="addImageLayer(map, item)">
                <img style="width: 60px; height: 60px" :src="map.image"></img>
                <div> <el-link :underline="false">
                    {{ map.name }}
                  </el-link></div>
              </div>
            </div>
          </div>
        </el-card>
      </div>
    </div>
    </el-form>
  </Popup>
</template>
<script>
import Popup from "./Popup";
import TileLayer from "ol/layer/Tile"
import XYZ from "ol/source/XYZ"
// å½±åƒå›¾å±‚
import mapLayers from "./layer";
export default {
  name: "addOnlineOlMap",
  components: {
    Popup,
  },
  mixins: [],
  data() {
    return {
      title: "2D在线地图",
      left: undefined,
      tokne: "",
      data: {
        id: "",
        sourceType: "",
        name: "",
        urls: "",
        layer: "",
        alpha: 1,
        maximumLevel: 26,
        zIndex: undefined,
      },
      mapCollection: undefined,
      mapList: mapLayers,
    };
  },
  computed: {
    activeNames() {
      return this.mapList.map((item) => {
        return item.name;
      });
    },
  },
  methods: {
    setCardChange(res) {
      res.isShow = !res.isShow
    },
    // å…³é—­å¼¹çª—
    close(isCloseBtn, removeLayer = true) {
      //   removeLayer && this.removeImageLayer();
      // é‡ç½®data值
      Object.assign(this.$data, this.$options.data());
      !isCloseBtn && this.$refs.pop.close();
    },
    // æ‰“开弹窗
    open() {
      this.close(true);
      this.$refs.pop.open();
    },
    changeToken(token) {
      this.mapCollection.tokne = token;
    },
    removeImageLayer() {
      window.map.removeLayer(window.olBaseMapLayer);
      if (!is_production) {
        if (window.vectorLayer) {
          window.map.removeLayer(window.vectorLayer);
        }
      }
    },
    addImageLayer(map, mapCollection) {
      if (
        this.data.name === map.name &&
        (this.data.urls === map.urls || this.data.urls === mapCollection.urls)
      ) {
        return;
      }
      this.removeImageLayer();
      this.mapCollection = mapCollection;
      if (mapCollection.sourceType === "cesium") {
        window.olBaseMapLayer = new TileLayer({
          title: "高德地图",
          source: new XYZ({
            url: map.urls,
            wrapX: false
          }),
          zIndex: -1
        });
        window.map.addLayer(window.olBaseMapLayer);
        return;
      } else if (mapCollection.sourceType === "tdmap") {
        var tokne = mapCollection.tokne;
        //添加天地图影像
        window.olBaseMapLayer = new TileLayer({
          title: "高德地图",
          source: new XYZ({
            url: map.olUrls + tokne
          }),
          zIndex: -1
        });
        window.map.addLayer(window.olBaseMapLayer);
      } else if (mapCollection.sourceType === "gdmap") {
        window.olBaseMapLayer = new TileLayer({
          title: "高德地图",
          source: new XYZ({
            url: map.urls,
            wrapX: false
          }),
          zIndex: -1
        });
        window.map.addLayer(window.olBaseMapLayer);
      } else if (mapCollection.sourceType === "localmap") {
        var ulr = map.urls;
        ulr = ulr.replace("{host}", iisHost)
        window.olBaseMapLayer = new TileLayer({
          title: "高德地图",
          source: new XYZ({
            url: ulr,
            wrapX: false
          }),
          zIndex: -1
        });
        window.map.addLayer(window.olBaseMapLayer);
      }
    },
    // æ·»åŠ æ•°æ®
    addData() {
      if (this.data.urls && this.data.sourceType) {
        let data = {
          id: window.sgworld.Core.getuid(),
          ...this.data,
          Level: [0, 26],
        };
        if (data.sourceType === "tdmap") {
          data.urls += "&tk=" + this.tokne;
        } else if (data.sourceType === "bdmap") {
          data.style = this.mapCollection.style;
        }
        if (this.mapCollection.GCJ02) {
          data.GCJ02 = true;
        }
        data.item = window.BaseMapLayer;
        window.BaseMapLayer = undefined;
        this.$emit("success", data);
        this.close(false, false);
      } else {
        this.$message("请选择地图");
      }
    },
  },
};
</script>
<style scoped lang="less">
/deep/.el-card__body {
  padding: 0px !important;
}
.map {
  display: inline-block;
  cursor: pointer;
  margin: 5px;
  text-align: center;
  .el-image {
    border: 2px solid #fff;
    border-radius: 4px;
  }
}
.boxCard {
  margin-bottom: 5px;
}
</style>
src/views/Tools/layer.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,92 @@
const mapLayers = [{
    name: "Cesium",
    sourceType: "cesium",
    tokne: "94a34772eb88317fcbf8428e10448561",
    maximumLevel: 18,
    id: 1,
    isShow: true,
    list: [{
        name: "Cesium影像",
        image: require("../../assets/img/imageLayer/tdmap_image.jpg"),
        urls: "https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}",
    },],
},
{
    name: "天地图",
    sourceType: "tdmap",
    tokne: "94a34772eb88317fcbf8428e10448561",
    maximumLevel: 18,
    id: 1,
    isShow: true,
    list: [
        {
            name: "天地图地图",
            image: require("../../assets/img/imageLayer/tdmap_map.jpg"),
            urls: "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=",
            olUrls: 'http://t0.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk='
        },
        {
            name: "天地图影像",
            image: require("../../assets/img/imageLayer/tdmap_image.jpg"),
            urls: "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=",
            olUrls: 'http://t0.tianditu.gov.cn/DataServer?T=img_w&x={x}&y={y}&l={z}&tk='
        },
        {
            name: "天地图地形",
            image: require("../../assets/img/imageLayer/tdmap_label.jpg"),
            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=",
            olUrls: 'http://t0.tianditu.gov.cn/DataServer?T=ter_w&x={x}&y={y}&l={z}&tk='
        },
    ],
},
{
    name: "高德地图",
    sourceType: "gdmap",
    maximumLevel: 18,
    id: 2,
    isShow: true,
    list: [
        {
            name: "高德地图",
            image: require("../../assets/img/imageLayer/gdmap_map.jpg"),
            urls: "https://webst02.is.autonavi.com/appmaptile?style=7&x={x}&y={y}&z={z}",
        },
        {
            name: "高德影像",
            image: require("../../assets/img/imageLayer/gdmap_image.jpg"),
            urls: "https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}",
        },
    ],
}, {
    name: '本地服务',
    sourceType: 'localmap',
    maximumLevel: 22,
    id: 3,
    isShow: true,
    list: [
        {
            name: "地图",
            image: require("../../assets/img/imageLayer/gdmap_map.jpg"),
            urls: "http://{host}/LFData/2d/tiles/vec/{z}/{x}/{y}.png",
        },
        {
            name: "影像",
            image: require("../../assets/img/imageLayer/gdmap_image.jpg"),
            urls: "http://{host}/LFData/2d/tiles/img/{z}/{x}/{y}.png",
        },
        {
            name: "地形",
            image: require("../../assets/img/imageLayer/dixing.png"),
            urls: "http://{host}/LFData/2d/tiles/ter/{z}/{x}/{y}.png",
        },
        {
            name: "1:20万区域地质图",
            image: require("../../assets/img/imageLayer/25dizhi.png"),
            urls: "http://{host}/LFData/2d/tiles/20w_qydz/{z}/{x}/{y}.png",
        },
    ],
}
]
export default mapLayers;
src/views/datamanage/dataUpdata.vue
@@ -1726,7 +1726,7 @@
        this.taskStatus++;
        this.getStartTaskStatus();
      } else {
        this.quayTestForms.names = JSON.parse(this.pathBak).toString();
        this.quayTestForms.names = this.pathBak
        var value = this.getCheckedKeys
        var bak = value.data.fullName.split("\\");
        this.quayTestForms.xmmc = bak[this.taskStatus];
@@ -1801,7 +1801,11 @@
      }
      this.progress = std / (res.length * 100);
      for (var i in this.tableData) {
        if (!this.multipleSelection[this.taskStatus]) {
          break;
        }
        if (
          this.tableData[i].path == this.multipleSelection[this.taskStatus].path
        ) {
          this.$set(this, "jindutiao", parseInt(this.progress * 100));
src/views/datamanage/uploadmanage.vue
@@ -1227,18 +1227,18 @@
        std.push(this.multipleSelection[i].id)
      }
      if (this.formInline.type == 'DOM') {
        const data1 = await publish_selectRasterCs({
          ids: std.toString()
        })
        if (data1.code == 200 && data1.result.length == 0) {
        } else {
          this.rasterCsOption = data1.result;
          this.insertDialogVisible = false;
          this.rasterCsVisible = true;
          return
        }
      }
      // if (this.formInline.type == 'DOM') {
        // const data1 = await publish_selectRasterCs({
        //   ids: std.toString()
        // })
        // if (data1.code == 200 && data1.result.length == 0) {
        // } else {
        //   this.rasterCsOption = data1.result;
        //   this.insertDialogVisible = false;
        //   this.rasterCsVisible = true;
        //   return
        // }
      // }
      var obj = {