管道基础大数据平台系统开发-【前端】-新系統界面
发布管理,添加模型发布类型;发布管理界面优化;目录管理上传文件改为上传目录,目录下载改为文件夹下载,默认选中最后一个菜单节点;钻孔柱状图效果修改;矢量数据入库修改
已添加1个文件
已修改12个文件
已删除1个文件
1007 ■■■■■ 文件已修改
public/config/config.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/工程项目-目录管理模V2023030901.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
public/工程项目-目录管理模V20230413.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/lang/en.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/lang/zh.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/MapView/mapSpacePop.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/chart/CountDataApply.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Archive/dataApplication.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Tools/AddOnlineMap.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/catalogueManage.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/dataStatistics.vue 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/dataUpdata.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/metadataManage.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/uploadmanage.vue 876 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/config/config.js
@@ -59,7 +59,7 @@
    ns: 'bs',
  },
]
var dirTemplateFile = '工程项目-目录管理模V2023030901.xlsx'
var dirTemplateFile = '工程项目-目录管理模V20230413.xlsx'
var gaoDeBaseUrl = [{
  url: 'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}',
  label: '高德矢量',
public/¹¤³ÌÏîÄ¿-Ŀ¼¹ÜÀíÄ£V2023030901.xlsx
Binary files differ
public/¹¤³ÌÏîÄ¿-Ŀ¼¹ÜÀíÄ£V20230413.xlsx
Binary files differ
src/assets/lang/en.js
@@ -3,6 +3,7 @@
    preview: 'preview',
    publish: "Publish",
    releaseTime: 'Release time',
    publishStatus: 'Publish Status',
    rublisher: 'Publisher',
    publishAddress: 'Publishing address',
    increase: 'increase',
@@ -944,6 +945,8 @@
    },
    butten: {
      directoryDownload: 'Directory Download',
      folderDownload: 'Folder Download',
      uploads: 'uploads',
      templateDownload: "Template download",
      uploadFile: "Upload File",
      NewPeer: "New Peer",
src/assets/lang/zh.js
@@ -1,8 +1,10 @@
const zh = {
  common: {
    dataStatus: '数据状态',
    preview: '预览',
    publish: "发布",
    releaseTime: '发布时间',
    publishStatus: '发布状态',
    rublisher: '发布人员',
    publishAddress: '发布地址',
    increase: '添加',
@@ -957,6 +959,8 @@
    },
    butten: {
      directoryDownload: '目录下载',
      folderDownload: '文件夹下载',
      uploads: '上传目录',
      templateDownload: "模板下载",
      uploadFile: "上传文件",
      NewPeer: "新增同级",
src/components/MapView/mapSpacePop.vue
@@ -930,8 +930,8 @@
          tag: 'Histogram',
          properties: std[i],
          ellipse: {
            semiMinorAxis: 1.0, //短轴
            semiMajorAxis: 1.0, //长轴
            semiMinorAxis: 2.0, //短轴
            semiMajorAxis: 2.0, //长轴
            height: height, //拉伸高度    elev  gwaterdep
            extrudedHeight: num, //离地高度
            rotation: Cesium.Math.toRadians(0), //旋转
src/components/chart/CountDataApply.vue
@@ -1,5 +1,8 @@
<template>
  <div class="CountDataApply" ref="chart"></div>
  <div
    class="CountDataApply"
    ref="chart"
  ></div>
</template>
<script>
@@ -63,7 +66,7 @@
          },
          //坐标值标注
          axisLabel: {
            show: true,
            show: false,
            textStyle: {
              color: "#fff",
            },
src/views/Archive/dataApplication.vue
@@ -411,7 +411,7 @@
      if (data.code != 200) {
        return this.$message.error("列表调用失败");
      }
      debugger
      this.detailsFrom.tableData = data.result;
      this.detailsFrom.tabs = row.tabs;
      this.detailsFrom.uname = row.uname;
src/views/Tools/AddOnlineMap.vue
@@ -290,7 +290,7 @@
          format: "image/jpeg",
          tileMatrixSetID: "GoogleMapsCompatible",
        }))
        debugger
        window.olBaseMapLayer = new TileLayer({
          title: "高德地图",
          source: new XYZ({
src/views/datamanage/catalogueManage.vue
@@ -53,7 +53,7 @@
                    type="info"
                    size="small"
                    @click="setDirectoryDownload"
                  >{{ $t("shuJuGuanLi.butten.directoryDownload") }}</el-button>
                  >{{ $t("shuJuGuanLi.butten.folderDownload") }}</el-button>
                </el-form-item>
                <el-form-item>
@@ -77,7 +77,7 @@
                      type="success"
                      icon="el-icon-plus"
                      size="small"
                    >{{ $t("shuJuGuanLi.butten.uploadFile") }}</el-button>
                    >{{ $t("shuJuGuanLi.butten.uploads") }}</el-button>
                  </el-upload>
                </el-form-item>
                <el-form-item>
@@ -713,7 +713,7 @@
        var rs = JSON.parse(this.currentData);
        cdata = this.$refs.tree.getNode(rs.id).data;
      } else {
        cdata = this.dirList[0]
        cdata = this.dirList[this.dirList.length - 1]
      }
      this.$nextTick(() => {
        this.expandData = [cdata.id];
src/views/datamanage/dataStatistics.vue
@@ -1,14 +1,15 @@
<template>
  <div class="dataStatistics">
    <My-bread
      :list="[
    <My-bread :list="[
        `${$t('dataManage.dataManage')}`,
        `${$t('dataManage.dataStatistics')}`,
      ]"
    ></My-bread>
      ]"></My-bread>
    <el-divider />
    <div class="contentBox">
      <div class="content_Left subpage_Div"  style="border: 1px solid #dcdfe6;">
      <div
        class="content_Left subpage_Div"
        style="border: 1px solid #dcdfe6;"
      >
        <el-tree
          :data="treeData"
          @node-click="handleNodeClick"
@@ -19,34 +20,40 @@
        >
        </el-tree>
      </div>
      <div class="content_Right subpage_Div" style="border: 1px solid #dcdfe6;">
        <div class="iquery subpage_Div" style="padding-bottom: 14px">
      <div
        class="content_Right subpage_Div"
        style="border: 1px solid #dcdfe6;"
      >
        <div
          class="iquery subpage_Div"
          style="padding-bottom: 14px"
        >
          <div>
            <el-button
              icon="el-icon-c-scale-to-original"
              size="small"
              type="warning"
              @click="setCountFlagChange(1)"
              >{{ $t("shuJuGuanLi.butten.Report") }}</el-button
            >
            >{{ $t("shuJuGuanLi.butten.Report") }}</el-button>
            <el-button
              icon="el-icon-pie-chart"
              size="small"
              type="primary"
              @click="setCountFlagChange(2)"
              >{{ $t("shuJuGuanLi.butten.Histogram") }}</el-button
            >
            >{{ $t("shuJuGuanLi.butten.Histogram") }}</el-button>
            <el-button
              icon="el-icon-download"
              size="small"
              type="success"
              @click="setCountFlagChange(3)"
              >{{ $t("shuJuGuanLi.butten.Download") }}</el-button
            >
            >{{ $t("shuJuGuanLi.butten.Download") }}</el-button>
          </div>
        </div>
        <div class="dividing-line"></div>
        <div class="contentTable subpage_Div" v-show="setCountFlag">
        <div
          class="contentTable subpage_Div"
          v-show="setCountFlag"
        >
          <el-table
            :data="tableData"
            style="width: 100%"
@@ -167,9 +174,15 @@
            :formatter="showFormat"
          >
          </el-table-column>
          <el-table-column width="120" :label="$t('common.operate')">
          <el-table-column
            width="120"
            :label="$t('common.operate')"
          >
            <template slot-scope="scope">
              <el-button @click="setDownLoadRow(scope.row)" size="small">
              <el-button
                @click="setDownLoadRow(scope.row)"
                size="small"
              >
                {{ $t("common.download") }}
              </el-button>
            </template>
@@ -278,7 +291,7 @@
          this.closeDownLoadFlag();
          done();
        })
        .catch((_) => {});
        .catch((_) => { });
    },
    closeDownLoadFlag() {
      this.showDownLoadFlag = false;
@@ -300,6 +313,7 @@
      }
    },
    async getQueryDownloadData() {
      this.modelData = [];
      this.listData = {
        pageIndex: 1,
        pageSize: 10,
@@ -436,7 +450,7 @@
          startValue: dataAxis[Math.max(params.dataIndex - zoomSize / 2, 0)],
          endValue:
            dataAxis[
              Math.min(params.dataIndex + zoomSize / 2, data.length - 1)
            Math.min(params.dataIndex + zoomSize / 2, data.length - 1)
            ],
        });
      });
@@ -468,9 +482,10 @@
    },
    //查询统计信息
    async setQueryCountData() {
      var data;
      var data, val;
      if (this.queryData.value == "countServices") {
        data = await dataCount_selectCountServices();
      } else if (this.queryData.value == "countSizes") {
        data = await dataCount_selectCountSizes();
      } else if (this.queryData.value == "countOperates") {
@@ -485,6 +500,16 @@
          data.result[i].count = data.result[i].sizes;
        }
      }
      if (this.queryData.value == "countOperates") {
        for (var i in data.result) {
          if (data.result[i].m2) {
            data.result[i].m1 = data.result[i].m1 + '\\' + data.result[i].m2
          }
        }
      }
      this.tableData = data.result;
      this.$nextTick(() => {
        this.$refs.table.doLayout();
src/views/datamanage/dataUpdata.vue
@@ -610,6 +610,14 @@
            />
            <el-table-column
              align="center"
              :label="$t('common.dataStatus')"
              :formatter="stateFormat"
            >
            </el-table-column>
            <el-table-column
              align="
                  center"
              prop="desc"
              :label="$t('dataManage.dataUpObj.describe')"
            />
@@ -1690,7 +1698,16 @@
  },
  watch: {},
  methods: {
    stateFormat(row, column) {
      var val = ['shp', 'gdb', 'xls', 'xlsx']
      if (val.indexOf(row.type) > -1 && row.rows > 0) {
        return '已上传,已入库'
      } else if (val.indexOf(row.type) > -1 && row.rows == 0) {
        return '已上传,未入库'
      } else {
        return '已上传'
      }
    },
    setRestMetaData() {
      this.fromQueryMeta.name = "";
      this.listMetaData.name = this.fromQueryMeta.name;
src/views/datamanage/metadataManage.vue
@@ -290,6 +290,13 @@
          prop="rows"
          :label="$t('dataManage.vmobj.row')"
        />
        <el-table-column
          :label="$t('common.dataStatus')"
          :formatter="stateFormat"
        >
        </el-table-column>
        <el-table-column
          prop="uname"
          :label="$t('dataManage.vmobj.createonuser')"
@@ -1137,6 +1144,16 @@
    },
  },
  methods: {
    stateFormat(row, column) {
      var val = ['shp', 'gdb', 'xls', 'xlsx']
      if (val.indexOf(row.type) > -1 && row.rows > 0) {
        return '已上传,已入库'
      } else if (val.indexOf(row.type) > -1 && row.rows == 0) {
        return '已上传,未入库'
      } else {
        return '已上传'
      }
    },
    //大小值改变
    changeSizeFile(row, column, cellValue, index) {
      if (cellValue >= 1024) {
@@ -1592,7 +1609,7 @@
    showDetail(row) {
      // console.log(index, row);
      this.showinfoBox = true;
      debugger
      this.itemdetail = row;
    },
src/views/datamanage/uploadmanage.vue
@@ -8,230 +8,351 @@
    <el-divider />
    <!-- tabs切换 -->
    <div class="tabs_box">
      <div class="tabs_pane"
           @click="setTabsChange(1)">
        <div class="tabsSpan"
             :class="{ changetabs : active == 'first'}">
      <div
        class="tabs_pane"
        @click="setTabsChange(1)"
      >
        <div
          class="tabsSpan"
          :class="{ changetabs : active == 'first'}"
        >
          <span> {{$t('dataManage.uploadObj.dataRelease')}}</span>
        </div>
      </div>
      <div class="tabs_pane"
           @click="setTabsChange(2)">
        <div class="tabsSpan"
             :class="{ changetabs : active == 'second'}">
      <div
        class="tabs_pane"
        @click="setTabsChange(2)"
      >
        <div
          class="tabsSpan"
          :class="{ changetabs : active == 'second'}"
        >
          <span> {{$t('dataManage.uploadObj.releaseList')}}</span>
        </div>
      </div>
      <div class="tabs_pane"
           @click="setTabsChange(3)">
        <div class="tabsSpan"
             :class="{ changetabs : active == 'third'}">
      <div
        class="tabs_pane"
        @click="setTabsChange(3)"
      >
        <div
          class="tabsSpan"
          :class="{ changetabs : active == 'third'}"
        >
          <span> {{$t('dataManage.uploadObj.modelAttachMount')}}</span>
        </div>
      </div>
    </div>
    <div v-if="active != 'third'"
         class="content_box">
      <el-form :inline="true"
               :model="formInline"
               class="demo-form-inline">
    <div
      v-if="active != 'third'"
      class="content_box"
    >
      <el-form
        :inline="true"
        :model="formInline"
        class="demo-form-inline"
      >
        <!-- å•位 -->
        <el-form-item v-if="active == 'first'">
          <el-select size="small"
                     v-model="formInline.depid">
            <el-option :value="formInline.depid"
                       :label="formInline.depName"
                       style="height: auto">
              <el-tree ref="tree"
                       :data="depOption"
                       node-key="id"
                       :props="defaultProps"
                       @node-click="handleDepChange" />
          <el-select
            size="small"
            v-model="formInline.depid"
          >
            <el-option
              :value="formInline.depid"
              :label="formInline.depName"
              style="height: auto"
            >
              <el-tree
                ref="tree"
                :data="depOption"
                node-key="id"
                :props="defaultProps"
                @node-click="handleDepChange"
              />
            </el-option>
          </el-select>
        </el-form-item>
        <!-- ç›®å½• -->
        <el-form-item v-if="active == 'first'">
          <el-select size="small"
                     v-model="formInline.dirid">
            <el-option :value="formInline.dirid"
                       :label="formInline.dirName"
                       style="height: auto">
              <el-tree ref="tree"
                       :data="dirOption"
                       node-key="id"
                       :props="defaultProps"
                       @node-click="handleDirChange" />
          <el-select
            size="small"
            v-model="formInline.dirid"
          >
            <el-option
              :value="formInline.dirid"
              :label="formInline.dirName"
              style="height: auto"
            >
              <el-tree
                ref="tree"
                :data="dirOption"
                node-key="id"
                :props="defaultProps"
                @node-click="handleDirChange"
              />
            </el-option>
          </el-select>
        </el-form-item>
        <!-- ç‰ˆæœ¬ -->
        <el-form-item v-if="active == 'first'">
          <el-select size="small"
                     v-model="formInline.verid"
                     @change="handleVerChange"> <el-option v-for="item in verOption"
                       :key="item.id"
                       :label="item.name"
                       :value="item.id">
          <el-select
            size="small"
            v-model="formInline.verid"
            @change="handleVerChange"
          > <el-option
              v-for="item in verOption"
              :key="item.id"
              :label="item.name"
              :value="item.id"
            >
            </el-option>
          </el-select>
        </el-form-item>
        <!-- ç±»åž‹ -->
        <el-form-item v-if="active == 'first'">
          <el-select size="small"
                     v-model="formInline.type"
                     @change="handleTypeChange">
            <el-option v-for="item in typeOption"
                       :key="item.value"
                       :label="item.label"
                       :value="item.value">
          <el-select
            size="small"
            v-model="formInline.type"
            @change="handleTypeChange"
          >
            <el-option
              v-for="item in typeOption"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item>
          <el-input size="small"
                    :title="$t('dataManage.vmobj.keyword')"
                    v-model="formInline.name"
                    :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuedataName')"> <i @click="getTableData"
               :title="$t('common.iquery')"
               slot="suffix"
               class="el-icon-search"
               style="padding-right: 8px"></i></el-input>
          <el-input
            size="small"
            :title="$t('dataManage.vmobj.keyword')"
            v-model="formInline.name"
            :placeholder="$t('shuJuGuanLi.shuJuJianSuo.valuedataName')"
          > <i
              @click="getTableData"
              :title="$t('common.iquery')"
              slot="suffix"
              class="el-icon-search"
              style="padding-right: 8px"
            ></i></el-input>
        </el-form-item>
        <el-form-item style="float:right">
          <!-- å‘布 -->
          <el-button v-if="active == 'first'"
                     type="success"
                     size="small"
                     icon="el-icon-s-promotion"
                     @click="setPagePublish">{{$t('common.publish')}}</el-button>
          <el-button
            v-if="active == 'first'"
            type="success"
            size="small"
            icon="el-icon-s-promotion"
            @click="setPagePublish"
          >{{$t('common.publish')}}</el-button>
          <!-- åˆªé™¤ -->
          <el-button v-if="active == 'second'"
                     type="danger"
                     size="small"
                     icon="el-icon-delete"
                     @click="setPageDelete">{{$t('common.delete')}}</el-button>
          <el-button
            v-if="active == 'second'"
            type="danger"
            size="small"
            icon="el-icon-delete"
            @click="setPageDelete"
          >{{$t('common.delete')}}</el-button>
          <!-- é‡ç½® -->
          <el-button type="info"
                     size="small"
                     @click="setPageStart"
                     icon="el-icon-refresh">{{$t('common.reset')}}</el-button>
          <el-button
            type="info"
            size="small"
            @click="setPageStart"
            icon="el-icon-refresh"
          >{{$t('common.reset')}}</el-button>
        </el-form-item>
      </el-form>
      <div class="dividing-line"></div>
      <div class="table_box content_Table">
        <el-table :data="tableData"
                  style="width: 100%"
                  @selection-change="handleSelectionChange"
                  @cell-dblclick="copyText"
                  height="calc(100% - 1px)">
          <el-table-column type="selection"
                           width="55" />
          <el-table-column :label="$t('dataManage.dictionaryManageObj.number')"
                           type="index"
                           width="50"
                           align="center">
        <el-table
          :data="tableData"
          style="width: 100%"
          @selection-change="handleSelectionChange"
          @cell-dblclick="copyText"
          height="calc(100% - 1px)"
          ref="tableBox"
        >
          <el-table-column
            type="selection"
            width="55"
            key="1"
          />
          <el-table-column
            :label="$t('dataManage.dictionaryManageObj.number')"
            type="index"
            width="50"
            align="center"
            key="2"
          >
          </el-table-column>
          <el-table-column prop="name"
                           :label="$t('dataManage.vmobj.name')"
                           align="center" />
          <el-table-column prop="type"
                           :label="$t('dataManage.vmobj.format')"
                           align="center" />
          <el-table-column v-if="active == 'first'"
                           prop="sizes"
                           :label="$t('dataManage.vmobj.size')"
                           :formatter="stateFormatSizes"
                           align="center" />
          <el-table-column prop="depName"
                           :label="$t('dataManage.vmobj.depName')"
                           align="center" />
          <el-table-column prop="dirName"
                           :label="$t('dataManage.vmobj.dirName')"
                           width="200"
                           align="center" />
          <el-table-column prop="verName"
                           :label="$t('dataManage.vmobj.versionNumber')"
                           align="center" />
          <el-table-column prop="url"
                           :label="$t('common.publishAddress')"
                           align="center" />
          <el-table-column v-if="active == 'first'"
                           prop="uname"
                           :label="$t('common.rublisher')"
                           align="center"
                           :key="Math.random()" />
          <el-table-column v-if="active != 'first'"
                           prop="createName"
                           :label="$t('common.rublisher')"
                           align="center"
                           :key="Math.random()" />
          <el-table-column prop="createTime"
                           :label="$t('common.releaseTime')"
                           align="center" />
          <el-table-column min-width="150"
                           :label="$t('common.operate')">
          <el-table-column
            prop="name"
            :label="$t('dataManage.vmobj.name')"
            align="center"
            key="3"
          />
          <el-table-column
            prop="type"
            :label="$t('dataManage.vmobj.format')"
            align="center"
            key="4"
          />
          <el-table-column
            v-if="active == 'first'"
            prop="sizes"
            :label="$t('dataManage.vmobj.size')"
            :formatter="stateFormatSizes"
            align="center"
            key="5"
          />
          <el-table-column
            prop="depName"
            :label="$t('dataManage.vmobj.depName')"
            align="center"
            key="6"
          />
          <el-table-column
            prop="dirName"
            :label="$t('dataManage.vmobj.dirName')"
            width="200"
            align="center"
            key="7"
          />
          <el-table-column
            prop="verName"
            :label="$t('dataManage.vmobj.versionNumber')"
            align="center"
            key="8"
          />
          <el-table-column
            prop="url"
            :label="$t('common.publishAddress')"
            align="center"
            key="9"
          />
          <el-table-column
            v-if="active == 'first'"
            prop="uname"
            :label="$t('common.rublisher')"
            align="center"
            key="10"
          />
          <el-table-column
            v-if="active != 'first'"
            prop="createName"
            :label="$t('common.rublisher')"
            align="center"
            key="11"
          />
          <el-table-column
            prop="createTime"
            :label="$t('common.releaseTime')"
            align="center"
            key="12"
          />
          <el-table-column
            v-if="active == 'first'"
            prop="createTime"
            :label="$t('common.publishStatus')"
            align="center"
            key="13"
          >
            <template slot-scope="scope">
              <el-button v-if="active == 'second'"
                         size="small"
                         type="info"
                         plain
                         @click="setPreviewDetails(scope.row)">{{$t('common.details')}}
              <span v-if="scope.row.url ">已发布</span>
            </template>
          </el-table-column>
          <el-table-column
            min-width="150"
            :label="$t('common.operate')"
            v-if="active == 'second'"
          >
            <template slot-scope="scope">
              <el-button
                v-if="active == 'second'"
                size="small"
                type="info"
                plain
                @click="setPreviewDetails(scope.row)"
              >{{$t('common.details')}}
              </el-button>
              <el-button v-if="active == 'second'"
                         size="small"
                         type="warning"
                         plain
                         @click="setPreviewEdit(scope.row)">{{$t('common.update')}}
              <el-button
                v-if="active == 'second'"
                size="small"
                type="warning"
                plain
                @click="setPreviewEdit(scope.row)"
              >{{$t('common.update')}}
              </el-button>
              <el-button v-if="scope.row.url"
                         size="small"
                         type="success"
                         plain
                         @click="setPreviewLayer(scope.row)">{{$t('common.preview')}}
              <el-button
                v-if="scope.row.url && active == 'second'"
                size="small"
                type="success"
                plain
                @click="setPreviewLayer(scope.row)"
              >{{$t('common.preview')}}
              </el-button>
              <el-button
                v-if="scope.row.url && active == 'first'"
                size="small"
                type="success"
                plain
              >已发布
              </el-button>
            </template>
          </el-table-column>
        </el-table>
      </div>
      <div class="pagination_box"
           style="margin-top: 10px">
        <el-pagination @size-change="handleSizeChange"
                       @current-change="handleCurrentChange"
                       :current-page="listData.pageIndex"
                       :page-sizes="showPageSize"
                       :page-size="listData.pageSize"
                       layout="total, sizes, prev, pager, next, jumper"
                       :total="listData.count">
      <div
        class="pagination_box"
        style="margin-top: 10px"
      >
        <el-pagination
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
          :current-page="listData.pageIndex"
          :page-sizes="showPageSize"
          :page-size="listData.pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="listData.count"
        >
        </el-pagination>
      </div>
    </div>
    <div v-if="active == 'third'"
         class="content_box">
    <div
      v-if="active == 'third'"
      class="content_box"
    >
      <mapview v-if="active == 'third'"></mapview>
    </div>
    <!-- åœ°å€é¢„览 -->
    <el-dialog :title="$t('common.preview')"
               :class="isFullscreen ? '' : 'dialogClass_his'"
               custom-class="handleDialogClass"
               width="73.4%"
               :fullscreen="isFullscreen"
               v-if="dialogVisible"
               :visible.sync="dialogVisible"
               :show-close="false"
               :close-on-click-modal="false"
               :close-on-press-escape="false">
      <dialog-header slot="title"
                     :dialog-tittle="$t('common.preview')"
                     :fullscreen="isFullscreen"
                     @handle-closed="handleClose"
                     @is-fullscreen="onFullscreen"></dialog-header>
    <el-dialog
      :title="$t('common.preview')"
      :class="isFullscreen ? '' : 'dialogClass_his'"
      custom-class="handleDialogClass"
      width="73.4%"
      :fullscreen="isFullscreen"
      v-if="dialogVisible"
      :visible.sync="dialogVisible"
      :show-close="false"
      :close-on-click-modal="false"
      :close-on-press-escape="false"
    >
      <dialog-header
        slot="title"
        :dialog-tittle="$t('common.preview')"
        :fullscreen="isFullscreen"
        @handle-closed="handleClose"
        @is-fullscreen="onFullscreen"
      ></dialog-header>
      <div :class="{'fullscreen1':isFullscreen}">
        <mapview v-if="showMapView"></mapview>
      </div>
@@ -251,57 +372,75 @@
        id="MapDiv"
        style="background:red;widht:100%;height:calc(100% - 10px)"
      ></div>
      <!--
    </el-dialog> -->
    <!-- ä¿®æ”¹æ•°æ® -->
    <el-dialog :title="$t('common.update')"
               :visible.sync="editDialogVisible"
               width="50%"
               :show-close="false"
               :close-on-click-modal="false">
    <el-dialog
      :title="$t('common.update')"
      :visible.sync="editDialogVisible"
      width="50%"
      :show-close="false"
      :close-on-click-modal="false"
    >
      <div style="width:100%;height:50vh">
        <el-form ref="form"
                 :model="editLayer"
                 label-width="150px">
        <el-form
          ref="form"
          :model="editLayer"
          label-width="150px"
        >
          <el-form-item :label="$t('dataManage.vmobj.name')">
            <el-input v-model="editLayer.name"></el-input>
          </el-form-item>
          <el-form-item :label="$t('dataManage.vmobj.format')">
            <el-input disabled
                      v-model="editLayer.type"></el-input>
            <el-input
              disabled
              v-model="editLayer.type"
            ></el-input>
          </el-form-item>
          <el-form-item :label="$t('dataManage.vmobj.depName')">
            <el-input disabled
                      v-model="editLayer.depName"></el-input>
            <el-input
              disabled
              v-model="editLayer.depName"
            ></el-input>
          </el-form-item>
          <el-form-item :label="$t('dataManage.vmobj.dirName')">
            <el-input disabled
                      v-model="editLayer.dirName"></el-input>
            <el-input
              disabled
              v-model="editLayer.dirName"
            ></el-input>
          </el-form-item>
          <el-form-item :label="$t('dataManage.vmobj.versionNumber')">
            <el-input disabled
                      v-model="editLayer.verName"></el-input>
            <el-input
              disabled
              v-model="editLayer.verName"
            ></el-input>
          </el-form-item>
          <el-form-item :label="$t('common.publishAddress')">
            <el-input v-model="editLayer.url"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button size="small"
                       type="primary"
                       @click="setEditLayerSubmit">{{$t('common.submit')}}</el-button>
            <el-button size="small"
                       type="info"
                       @click="setEditLayerCancle">{{$t('common.cancel')}}</el-button>
            <el-button
              size="small"
              type="primary"
              @click="setEditLayerSubmit"
            >{{$t('common.submit')}}</el-button>
            <el-button
              size="small"
              type="info"
              @click="setEditLayerCancle"
            >{{$t('common.cancel')}}</el-button>
          </el-form-item>
        </el-form>
      </div>
    </el-dialog>
    <!-- æ•°æ®è¯¦æƒ… -->
    <el-dialog :title="$t('common.details')"
               :visible.sync="detailsDialogVisible"
               width="50%"
               :close-on-click-modal="false">
    <el-dialog
      :title="$t('common.details')"
      :visible.sync="detailsDialogVisible"
      width="50%"
      :close-on-click-modal="false"
    >
      <div style="width:100%;height:50vh">
        <p>{{ $t("dataManage.vmobj.name") }}:{{ itemdetail.name }}</p>
        <el-divider></el-divider>
@@ -326,89 +465,183 @@
      </div>
    </el-dialog>
    <!-- å‘布 -->
    <el-dialog :title="$t('common.publish')"
               :visible.sync="insertDialogVisible"
               width="40%"
               :close-on-click-modal="false"
               :show-close="false">
    <el-dialog
      :title="$t('common.publish')"
      :visible.sync="insertDialogVisible"
      width="40%"
      :close-on-click-modal="false"
      :show-close="false"
    >
      <div style="width:100%; ">
        <el-form ref="form"
                 :model="insertLayer"
                 label-width="150px">
        <el-form
          ref="form"
          :model="insertLayer"
          label-width="150px"
        >
          <el-form-item :label="$t('dataManage.vmobj.name')">
            <el-input v-model="insertLayer.name"
                      :placeholder="$t('dataManage.vmobj.name')"></el-input>
            <el-input
              v-model="insertLayer.name"
              :placeholder="$t('dataManage.vmobj.name')"
            ></el-input>
          </el-form-item>
          <el-form-item :label="$t('dataManage.vmobj.numberFiles')">
            <el-input disabled
                      v-model="insertLayer.number"></el-input>
            <el-input
              disabled
              v-model="insertLayer.number"
            ></el-input>
          </el-form-item>
          <el-form-item :label="$t('dataManage.vmobj.labe14')"
                        v-show="formInline.type =='DOM'">
            <el-select style="width:100%"
                       v-model="insertLayer.noData">
              <el-option label="黑色"
                         value="0"></el-option>
              <el-option label="白色"
                         value="255"></el-option>
          <el-form-item
            :label="$t('dataManage.vmobj.labe14')"
            v-show="formInline.type =='DOM'"
          >
            <el-select
              style="width:100%"
              v-model="insertLayer.noData"
            >
              <el-option
                label="黑色"
                value="0"
              ></el-option>
              <el-option
                label="白色"
                value="255"
              ></el-option>
            </el-select>
          </el-form-item>
          <el-form-item v-show="formInline.type !='DEM'"
                        :label="$t('dataManage.vmobj.minLevel')">
          <el-form-item
            v-show="formInline.type !='DEM'"
            :label="$t('dataManage.vmobj.minLevel')"
          >
            <!-- <el-input
              v-model="insertLayer.min"
              :placeholder="$t('dataManage.vmobj.labe11')"
            ></el-input> -->
            <el-select style="width:100%"
                       v-model="insertLayer.min"
                       :placeholder="$t('dataManage.vmobj.labe11')">
              <el-option v-for="item in options"
                         :key="item.value"
                         :label="item.label"
                         :value="item.value">
            <el-select
              style="width:100%"
              v-model="insertLayer.min"
              :placeholder="$t('dataManage.vmobj.labe11')"
            >
              <el-option
                v-for="item in options"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item :label="$t('dataManage.vmobj.maxLevel')"
                        v-show="formInline.type !='DEM'">
          <el-form-item
            :label="$t('dataManage.vmobj.maxLevel')"
            v-show="formInline.type !='DEM'"
          >
            <!-- <el-input
              v-model="insertLayer.max"
              :placeholder="$t('dataManage.vmobj.labe12')"
            ></el-input> -->
            <el-select style="width:100%"
                       v-model="insertLayer.max"
                       :placeholder="$t('dataManage.vmobj.labe12')">
              <el-option v-for="item in options"
                         :key="item.value"
                         :label="item.label"
                         :value="item.value">
            <el-select
              style="width:100%"
              v-model="insertLayer.max"
              :placeholder="$t('dataManage.vmobj.labe12')"
            >
              <el-option
                v-for="item in options"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              >
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item>
            <el-button size="small"
                       type="primary"
                       @click="setinsertLayerSubmit()">{{$t('common.submit')}}</el-button>
            <el-button size="small"
                       type="info"
                       @click="setinsertLayerCancel()">{{$t('common.cancel')}}</el-button>
            <el-button
              size="small"
              type="primary"
              @click="setinsertLayerSubmit()"
            >{{$t('common.submit')}}</el-button>
            <el-button
              size="small"
              type="info"
              @click="setinsertLayerCancel()"
            >{{$t('common.cancel')}}</el-button>
          </el-form-item>
        </el-form>
      </div>
    </el-dialog>
    <!--模型发布 -->
    <el-dialog
      :title="$t('common.publish')"
      :visible.sync="insertModelVisible"
      width="25%"
      :close-on-click-modal="false"
      :show-close="false"
    >
      <div style="width:100%; ">
    <div class="loadBox"
         v-if="loadDialogVisible">
      <div style="widht:100%; margin:20px; color:white">
        <div style="margin-left:99%">
          <el-link @click="setloadDialogVisible()"
                   style="color:white"> X</el-link>
        <div
          v-for="item in modelOptions"
          style="margin: 5px;"
        >
          <el-row :gutter="20">
            <el-col :span="10">
              <div style="height: 64px; display: flex; align-items: center;">
                {{ item.name }}
              </div>
            </el-col>
            <el-col :span="10">
              <div style="height: 64px; display: flex; align-items: center;">
                <el-select
                  size="small"
                  v-model="item.isModel"
                  placeholder="请选择数据类型"
                >
                  <el-option
                    label="单体模型"
                    value="1"
                  ></el-option>
                  <el-option
                    label="倾斜模型"
                    value="0"
                  >倾斜模型</el-option>
                </el-select>
              </div>
            </el-col>
          </el-row>
        </div>
        <div style="display: flex; justify-content: end;margin-top:10px;">
          <el-button
            size="small"
            type="primary"
            @click="setModelInsert"
          >{{$t('common.submit')}}</el-button>
          <el-button
            size="small"
            type="info"
            @click="setModelCanel"
          >{{$t('common.cancel')}}</el-button>
        </div>
      </div>
      <div v-loading="true"
           element-loading-background="rgba(0, 0, 0, 0.0) "
           element-loading-text="数据发布中"
           style="margin: 0px 20px;widht:100%;height:calc(100% - 80px); ">
    </el-dialog>
    <div
      class="loadBox"
      v-if="loadDialogVisible"
    >
      <div style="widht:100%; margin:20px; color:white">
        <div style="margin-left:99%">
          <el-link
            @click="setloadDialogVisible()"
            style="color:white"
          > X</el-link>
        </div>
      </div>
      <div
        v-loading="true"
        element-loading-background="rgba(0, 0, 0, 0.0) "
        element-loading-text="数据发布中"
        style="margin: 0px 20px;widht:100%;height:calc(100% - 80px); "
      >
      </div>
    </div>
  </div>
@@ -437,7 +670,7 @@
    MyBread, mapview,
    'dialog-header': dialogHeader,
  },
  data () {
  data() {
    return {
      active: 'first',
      formInline: {
@@ -459,6 +692,7 @@
      depOption: [],
      dirOption: [],
      verOption: [],
      modelOptions: [],
      typeOption: [{
        value: 'DOM',
        label: '影像数据(.tif, .img)'
@@ -494,14 +728,72 @@
      detailsDialogVisible: false,
      itemdetail: {},
      insertDialogVisible: false,
      insertModelVisible: false,
      insertLayer: { name: '', number: null, min: 4, max: 18, noData: '0' },
      loadDialogVisible: false,
      options: [],
      isFullscreen: false,
    }
  },
  methods: {
    copyText (row, column, cell, event) {
    setModelCanel() {
      this.insertModelVisible = false;
      this.modelOptions = [];
    },
    async setModelInsert() {
      var val = this.modelOptions.filter(res => {
        if (!res.isModel) {
          return res
        }
      })
      var str = [];
      if (val.length > 0) {
        for (var i in val) {
          str.push(val[i].name)
        }
        var mesage = str.toString() + '未选择数据类型'
        this.$message(mesage);
        return;
      }
      var ids = [];
      var models = [];
      for (var i in this.modelOptions) {
        ids.push(this.modelOptions[i].id)
        models.push(parseInt(this.modelOptions[i].isModel))
      }
      var obj = {
        dircode: this.formInline.dirid,
        depcode: this.formInline.depid,
        min: null,
        max: null,
        name: null,
        type: this.formInline.type,
        noData: null,
        ids: ids,
        models: models
      }
      this.loadDialogVisible = true
      this.insertModelVisible = false;
      const data = await publish_insert(obj);
      if (data.code == 200 && data.result > 0) {
        this.$message({
          message: '数据发布成功',
          type: 'success'
        });
      } else {
        this.$message.error("数据发布失败")
      }
      this.loadDialogVisible = false
      this.getTableData();
    },
    copyText(row, column, cell, event) {
      // åŒå‡»å¤åˆ¶
      let save = function (e) {
        e.clipboardData.setData('text/plain', event.target.innerText);
@@ -511,7 +803,7 @@
      document.execCommand("copy");//执行copy方法
      this.$message({ message: '复制成功', type: 'success' })//提示
    },
    setOptions () {
    setOptions() {
      var std = [];
      for (var i = 0; i < 23; i++) {
        std.push({
@@ -521,15 +813,15 @@
      }
      this.options = std;
    },
    setloadDialogVisible () {
    setloadDialogVisible() {
      this.loadDialogVisible = false
    },
    setinsertLayerCancel () {
    setinsertLayerCancel() {
      this.insertDialogVisible = false;
      this.insertLayer = { name: '', number: null, min: 4, max: 18 };
    },
    //发布提交
    async setinsertLayerSubmit () {
    async setinsertLayerSubmit() {
      var min = this.insertLayer.min;
      var max = this.insertLayer.max;
@@ -591,7 +883,7 @@
    },
    //数据发布
    async setPagePublish () {
    async setPagePublish() {
      if (this.multipleSelection.length == 0) {
        this.$message("请选择要发布的数据")
        return
@@ -602,6 +894,17 @@
        this.insertLayer.number = this.multipleSelection.length
        this.insertLayer.noData = '0';
        this.insertDialogVisible = true;
      } if (this.formInline.type == "3DML" || this.formInline.type == "BIM") {
        var val = JSON.parse(JSON.stringify(this.multipleSelection))
        for (var i in val) {
          val[i].isModel = null
        }
        this.modelOptions = val;
        this.insertModelVisible = true;
      } else {
        var std = [];
        for (var i in this.multipleSelection) {
@@ -633,12 +936,12 @@
      }
    },
    //数据详情
    setPreviewDetails (res) {
    setPreviewDetails(res) {
      this.itemdetail = res;
      this.detailsDialogVisible = true;
    },
    //修改提交
    async setEditLayerSubmit () {
    async setEditLayerSubmit() {
      if (this.editLayer.url) {
        var url = this.editLayer.url;
        this.editLayer.url = url.replace(iisHost, "{host}");
@@ -657,7 +960,7 @@
      this.editDialogVisible = false;
    },
    //修改取消
    setEditLayerCancle () {
    setEditLayerCancle() {
      if (this.editLayer == this.updateLayer) {
        this.editDialogVisible = false;
      } else {
@@ -672,13 +975,13 @@
      }
    },
    //修改弹窗
    setPreviewEdit (res) {
    setPreviewEdit(res) {
      this.updateLayer = JSON.stringify(res) //备份;
      this.editLayer = JSON.parse(JSON.stringify(res));
      this.editDialogVisible = true;
    },
    //删除
    setPageDelete () {
    setPageDelete() {
      if (this.multipleSelection.length == 0) {
        return this.$message.error("请选择要删除的数据")
      } else {
@@ -692,7 +995,7 @@
          });
      }
    },
    async deletePage () {
    async deletePage() {
      var std = [];
      for (var i in this.multipleSelection) {
        std.push(this.multipleSelection[i].id);
@@ -710,28 +1013,28 @@
      }
    },
    //预览弹窗打开
    setPreviewLayer (res) {
    setPreviewLayer(res) {
      this.$store.state.previewLayer = res;
      this.dialogVisible = true;
      this.showMapView = true;
    },
    //是否为全屏函数
    onFullscreen (fullscreen) {
    onFullscreen(fullscreen) {
      this.isFullscreen = fullscreen;
    },
    //预览弹窗关闭
    handleClose () {
    handleClose() {
      this.getTableData();
      this.dialogVisible = false;
      this.showMapView = false;
    },
    // èŽ·å–å¤šé€‰é€‰ä¸­çš„å¯¹è±¡
    handleSelectionChange (val) {
    handleSelectionChange(val) {
      this.multipleSelection = val
    },
    //单位转换
    stateFormatSizes (row, column) {
    stateFormatSizes(row, column) {
      if (row.sizes >= 1024) {
        const val = parseFloat(row.sizes / 1024).toFixed(3)
        return val + " GB"
@@ -740,7 +1043,7 @@
      }
    },
    //格式化地址
    formatLayer (row, column) {
    formatLayer(row, column) {
      let data = row.layer
      if (data == null) {
        return data
@@ -749,7 +1052,7 @@
      return data.replace("{host}", iisHost)
    },
    //格式化时间
    formatData (row, column) {
    formatData(row, column) {
      let data = row[column.property]
      if (data == null) {
        return data
@@ -757,18 +1060,18 @@
      return this.format(data)
    },
    //分页切换
    handleCurrentChange (val) {
    handleCurrentChange(val) {
      this.listData.pageIndex = val;
      this.getTableData_one();
    },
    //每页显示数量
    handleSizeChange (val) {
    handleSizeChange(val) {
      this.listData.pageSize = val;
      this.listData.pageIndex = 1;
      this.getTableData_one();
    },
    //tabs切換
    setTabsChange (res) {
    setTabsChange(res) {
      switch (res) {
        case 1:
          this.active = 'first';
@@ -783,12 +1086,19 @@
            url: "menuLayer"
          }
          this.active = 'third';
          break;
          this.$nextTick(() => {
            this.$refs.tableBox.doLayout()
          })
      }
    },
    //页面初始化
    setPageStart () {
    setPageStart() {
      this.formInline = {
        dirid: null,
        dirName: null,
@@ -819,7 +1129,7 @@
      this.getDirTreeList();
    },
    //获取目录列表
    async getDirTreeList () {
    async getDirTreeList() {
      const data = await selectdirTab();
      if (data.code != 200) {
        this.$message.error("单位列表获取失败")
@@ -831,7 +1141,7 @@
      this.getVerList(this.dirOption[0].id)
    },
    //获取版本列表
    async getVerList (res) {
    async getVerList(res) {
      const data = await meta_selectVerByDirid({ dirid: res })
      if (data.code != 200) {
        this.$message.error("版本列表获取失败")
@@ -842,36 +1152,36 @@
      this.getTableData();
    },
    //版本列表切换
    handleVerChange (value) {
    handleVerChange(value) {
      this.formInline.verid = value;
      this.getTableData();
    },
    //服务类型列表切换
    handleTypeChange (value) {
    handleTypeChange(value) {
      this.formInline.type = value;
      this.getTableData();
    },
    //单位列表切换
    handleDepChange (data, node, nodeData) {
    handleDepChange(data, node, nodeData) {
      this.formInline.depid = data.code
      this.formInline.depName = data.name
      this.getTableData();
    },
    //目录列表切换
    handleDirChange (data, node, nodeData) {
    handleDirChange(data, node, nodeData) {
      this.formInline.dirid = data.code
      this.formInline.dirName = data.name
      this.getVerList(data.id)
    },
    //获取Table表格数据
    async getTableData () {
    async getTableData() {
      this.listData.count = 0;
      this.listData.pageIndex = 1;
      this.getTableData_one();
    },
    async getTableData_one () {
    async getTableData_one() {
      this.tableData = [];
      if (this.active == "first") {
@@ -932,7 +1242,7 @@
      }
    },
    //格式化时间
    format (shijianchuo) {
    format(shijianchuo) {
      //shijianchuo是整数,否则要parseInt转换
      var time = new Date(shijianchuo);
      var y = time.getFullYear();
@@ -956,11 +1266,11 @@
      );
    },
    //格式化时间
    add0 (m) {
    add0(m) {
      return m < 10 ? '0' + m : m;
    },
    //获取单位列表
    async getDepTreeList () {
    async getDepTreeList() {
      const data = await selectdepTab();
      if (data.code != 200) {
        this.$message.error("单位列表获取失败")
@@ -971,7 +1281,7 @@
      this.formInline.depName = this.depOption[0].name
    },
    //树列表生成
    treeData (source) {
    treeData(source) {
      let cloneData = JSON.parse(JSON.stringify(source)) // å¯¹æºæ•°æ®æ·±åº¦å…‹éš†
      return cloneData.filter(father => {
        // å¾ªçŽ¯æ‰€æœ‰é¡¹
@@ -981,7 +1291,7 @@
      })
    },
  },
  mounted () {
  mounted() {
    this.active = 'first';
    this.setPageStart();
    this.setOptions();