管道基础大数据平台系统开发-【前端】-新系統界面
Surpriseplus
2022-12-30 a55625f79b5bea88a04dc5cebf264a61cd594547
管道分析,IE判斷,上传Loading
已添加3个文件
已修改10个文件
1292 ■■■■■ 文件已修改
public/LfSKyline/imgs/Edge设置.png 补丁 | 查看 | 原始文档 | blame | 历史
public/LfSKyline/index.html 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/LfSKyline/js/detect.js 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/LfSKyline/js/index.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/config/config.js 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/api.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/index.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Synthesis/LeftMenu.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Synthesis/index.vue 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Tools/pipeLineAnaly.vue 863 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Tools/queryinfo.vue 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/dataLoader.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/dataUpdata.vue 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/LfSKyline/imgs/EdgeÉèÖÃ.png
public/LfSKyline/index.html
@@ -21,12 +21,38 @@
        }
        document.writeln("<link href='./layui-v2.6.8/css/layui.css?" + new Date().getTime() + "' rel='stylesheet' \/>");
        document.writeln("<link href='./css/index.css?" + new Date().getTime() + "' rel='stylesheet' \/>");
        document.writeln("<script src='./js/detect.js?" + new Date().getTime() + "'><\/script>");
        document.writeln("<script src='./js/index.js?" + new Date().getTime() + "'><\/script>");
    </script>
</head>
<body>
    <div class="mapView">
    <div id="download" style="display: none;">
        <p>
          <b style="font-size: 24px;">三维软件安装使用说明:</b>
        </p>
        <p>
          è¯´æ˜Ž1:如果您无法正确地看到三维地图,请下载  <a href="http://192.168.20.39/LFData/soft/TEv7.4.zip" class="a">TE v7.4.zip</a> å®‰è£…包。
        </p>
        <p>
          è¯´æ˜Ž2:安装时,请务必关闭浏览器后再安装!
        </p>
        <p>
          è¯´æ˜Ž3:当前仅支持含有 IE核心 çš„æµè§ˆå™¨ï¼Œå¦‚ IE、360、Edge æµè§ˆå™¨ã€‚
        </p>
        <p>
          è¯´æ˜Ž4:使用 360 æµè§ˆå™¨æ—¶ï¼Œè¯·åˆ‡æ¢è‡³å…¼å®¹æ¨¡å¼ã€‚
        </p>
        <p>
          è¯´æ˜Ž5:使用 Edge æµè§ˆå™¨æ—¶ï¼Œç‚¹å‡»å³ä¸Šè§’çš„ â€œ...” é€‰æ‹© â€œè®¾ç½®â€ï¼›<br />
          <span style="visibility: hidden;">说明5:</span>在左侧搜索里面输入:Internet;<br />
          <span style="visibility: hidden;">说明5:</span>点击 â€œInternet Explorer æ¨¡å¼ï¼ˆIE æ¨¡å¼ï¼‰æŒ‰é’®â€ï¼Œå°†å¼€å…³åˆ‡æ¢è‡³è“è‰²ï¼›<br />
          <span style="visibility: hidden;">说明5:</span>选择“让 Internet Explorer åœ¨ Microsoft Edge ä¸­æ‰“开网站”,切换至 â€œå§‹ç»ˆï¼ˆæŽ¨èï¼‰â€ï¼›<br />
          <span style="visibility: hidden;">说明5:</span>选择“允许 Internet Explorer æ¨¡å¼ä¸‹é‡æ–°åŠ è½½ç½‘ç«™ï¼ˆIE模式)”,切换至 â€œå…è®¸â€ã€‚<br />
          <span style="visibility: hidden;">说明5:</span><img src="./imgs/Edge设置.png" style="width: 630px; height: 480px;" title="Edge设置" alt="Edge设置" />
        </p>
      </div>
    <div id="mapView" class="mapView">
        <div class="top">
            <div class="top_left">
                <div class="Logo">
public/LfSKyline/js/detect.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,74 @@
var Detect = {
    ieVer: 9.0,
    teVer: 7.4,
    sgVer: "66",
    detectIE: function () {
        var isIE = !!window.ActiveXObject || "ActiveXObject" in window;
        if (!isIE) {
            alert("请使用含有 IE核心 çš„æµè§ˆå™¨ï¼");
            return false;
        }
        var ieVer = this.getIEVer();
        if (ieVer < this.ieVer) {
            alert("请使用 IE " + this.ieVer + " æˆ– æ›´é«˜ç‰ˆæœ¬ï¼");
            return false;
        }
        var flag = this.detectTE();
        if (!flag) {
            return false;
        }
        return true;
    },
    getIEVer: function () {
        var agent = window.navigator.userAgent.toLowerCase();
        var msie = agent.indexOf("msie ");
        if (msie > -1) {
            return parseFloat(agent.substring(msie + 5, agent.indexOf(";", msie)));
        }
        return 11;
    },
    detectTE: function () {
        try {
            var sg = this.getSG();
            if (sg == null) {
                return false;
            }
            //var test = new ActiveXObject("TEDetect.TETest"); if (!test || test.Type == "NA") return false;
            var ver = parseFloat(sg.Version.Major + "." + sg.Version.Minor);
            if (ver < this.teVer) {
                alert("请使用 Skyline Globe " + this.teVer + " æˆ– æ›´é«˜ç‰ˆæœ¬ï¼");
                return false;
            }
            if (ver >= 7.4) {
                this.sgVer = "74";
            } else if (ver >= 7.1) {
                this.sgVer = "71";
            } else if (ver >= 7) {
                this.sgVer = "70";
            } else {
                this.sgVer = "66";
            }
            return true;
        } catch (e) {
            console.error(e);
        }
        return false;
    },
    getSG: function () {
        return TEWinEx.CreateInstance("TerraExplorerX.SGWorld" + this.sgVer);
    }
};
public/LfSKyline/js/index.js
@@ -4,8 +4,18 @@
    treePlay: 'PS\\全国管网专题图展示',
    objTypes: [19, 23, 26, 29, 34, 36, 38, 39, 40],
    init: function () {
        var flag = Detect.detectIE();
        if (!flag) {
            this.showDownload();
            return;
        }
        this.initSG();
    },
    // æ˜¾ç¤ºä¸‹è½½
    showDownload: function () {
        $("#mapView").hide();
        $("#download").show();
    },
    initSG: function () {
        SG = TEWinEx.CreateInstance("TerraExplorerX.SGWorld74"); // SGWorld74,SGWorld71,SGWorld66
        SG.AttachEvent("OnLoadFinished", this.loadFinished);
public/config/config.js
@@ -1,14 +1,17 @@
const BASE_URL = 'http://192.168.20.39:12316/server';
var ipConfig = '192.168.20.39';
const BASE_URL = 'http://"' + ipConfig + '":12316/server';
//webSocket æœåŠ¡åœ°å€
var socketUrl = 'ws://192.168.20.39:12316/server/ws/select';
var socketUrl = 'ws://' + ipConfig + ':12316/server/ws/select';
//数据库监控地址
var sql_Url = 'http://192.168.20.39:8081/admin/druid/sql.html';
var sql_Url = 'http://' + ipConfig + ':8081/admin/druid/sql.html';
//路径分析地址
var wnsUrl = 'http://192.168.20.39:9055/gisserver/wnsserver/beijingdaohang_wns';
var wnsUrl = 'http://' + ipConfig + ':9055/gisserver/wnsserver/beijingdaohang_wns';
//gisserver
var gisServerUrl = 'http://192.168.20.39:9055/gisserver';
var gisServerUrl = 'http://' + ipConfig + ':9055/gisserver';
//geoServerUrl
var geoserver = 'http://192.168.20.39:8088';
var geoserver = 'http://' + ipConfig + ':8088';
var geoServerURl = geoserver + '/geoserver/LF/wms';
var geoserverWFS =
  geoserver +
@@ -17,13 +20,13 @@
  geoserver +
  '/geoserver/LF/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=LF%3Am_pipeline&maxFeatures=50&outputFormat=application%2Fjson&cql_filter=projname=';
//模型加载地址
var modelUrl = 'http://192.168.20.39/LFData/tileset/SN/tileset.json';
var modelUrl = 'http://' + ipConfig + '/LFData/tileset/SN/tileset.json';
//DEM
var demLayer = 'http://192.168.20.39/LFData/dem'
var demLayer = 'http://' + ipConfig + '/LFData/dem'
//综合展示
window.sceneConfig = {
  // sdk许可
  licenseServer: 'http://192.168.20.39/LFServer',
  licenseServer: 'http://' + ipConfig + '/LFServer',
  // æœåŠ¡åœ°å€
  baseURL: 'http://183.162.245.49:8888/',
  positionBtn: [],
src/api/api.js
@@ -698,6 +698,22 @@
  return request.get('/apply/updateForResubmit', { params: params });
}
//管道分析=》查询管段
export function pipelines_selectSegNames(params) {
  return request.get('/pipeline/selectSegNames', { params: params });
}
//管道分析=》查询管段
export function pipeline_selectPipeAnalysis(params) {
  return request.post('/pipeline/selectPipeAnalysis', params);
}
//管道分析=》请求管道分析结果下载
export function pipeline_downloadReq(params) {
  return request.post('/pipeline/downloadReq', params);
}
//请求站场点内容
export function querySitePoint(size, index, name) {
  return service.get(
src/store/index.js
@@ -47,6 +47,8 @@
    download: false,
    showAllLayers: true,
    primitLayer:null,
    loading:false,
    pipelineEntity:[],
  },
  mutations: {
    //获取权限合集
src/views/Synthesis/LeftMenu.vue
@@ -14,6 +14,7 @@
    </div>
    <mapinfo ref="mapinfo" />
    <maplayer ref="maplayer" />
    <queryinfo ref="queryinfo" />
    <input
      type="file"
      accept=".kml"
@@ -27,9 +28,9 @@
import { transform } from 'ol/proj';
import mapinfo from '../Tools/mapinfo.vue';
import maplayer from '../Tools/maplayer.vue';
import queryinfo from '../Tools/queryinfo.vue'
export default {
  components: { mapinfo, maplayer },
  components: { mapinfo, maplayer, queryinfo },
  data() {
    return {
      showTwoMenuFlag: false,
@@ -760,6 +761,19 @@
            }
          );
          break;
        case 'd9':
          this.$store.state.mapPopBoxFlag = '3';
          this.$refs && this.$refs.queryinfo && this.$refs.queryinfo.open("管道空间分析", null, {
            close: () => {
              if (this.$store.state.pipelineEntity.length != 0) {
                for (var i in this.$store.state.pipelineEntity) {
                  var item = this.$store.state.pipelineEntity[i]
                  sgworld.Viewer.entities.remove(item);
                }
              }
            }
          });
          break;
        case 'd8':
          if (this.isContrastFlag == false) {
            this.isContrastFlag = true;
@@ -793,6 +807,7 @@
            );
          }
          break;
        case 'd11':
          if (window.Excavation) {
            window.Excavation.clear();
src/views/Synthesis/index.vue
@@ -1,19 +1,34 @@
<template>
  <div class="synthesis">
  <div
    class="synthesis"
    v-loading="$store.state.loading"
    element-loading-spinner="el-icon-loading"
    element-loading-background="rgba(0, 0, 0, 0.8)"
  >
    <div class="lefIcon">
      <ul>
        <li
          v-for="item in showMenuList"
          :class="{ lefMenuActive: showMenuFlag == item.id }"
        >
          <div class="menuDiv" :title="item.name" @click="setMenuChange(item)">
            <div class="menuImage" :class="item.class"></div>
          <div
            class="menuDiv"
            :title="item.name"
            @click="setMenuChange(item)"
          >
            <div
              class="menuImage"
              :class="item.class"
            ></div>
          </div>
        </li>
      </ul>
    </div>
    <div class="rightContent">
      <div class="left_main" :class="{ left_main_show: !openStatus }">
      <div
        class="left_main"
        :class="{ left_main_show: !openStatus }"
      >
        <div class="right_Map">
          <left-menu></left-menu>
        </div>
@@ -212,44 +227,44 @@
      }
      .menu_img1 {
        background: url('../../assets/img/synthesis/系统菜单.png') no-repeat
        background: url("../../assets/img/synthesis/系统菜单.png") no-repeat
          center;
      }
      .menu_img2 {
        background: url('../../assets/img/synthesis/矩形 8 æ‹·è´ 2.png')
        background: url("../../assets/img/synthesis/矩形 8 æ‹·è´ 2.png")
          no-repeat center;
      }
      .menu_img3 {
        background: url('../../assets/img/synthesis/图层 6 æ‹·è´.png') no-repeat
        background: url("../../assets/img/synthesis/图层 6 æ‹·è´.png") no-repeat
          center;
      }
      .menu_img4 {
        background: url('../../assets/img/synthesis/图层 8 æ‹·è´ 2.png')
        background: url("../../assets/img/synthesis/图层 8 æ‹·è´ 2.png")
          no-repeat center;
      }
      .menu_img5 {
        background: url('../../assets/img/synthesis/矢量智能对象 æ‹·è´ 3.png')
        background: url("../../assets/img/synthesis/矢量智能对象 æ‹·è´ 3.png")
          no-repeat center;
      }
      .menu_img6 {
        background: url('../../assets/img/synthesis/图层 9 æ‹·è´ 4.png')
        background: url("../../assets/img/synthesis/图层 9 æ‹·è´ 4.png")
          no-repeat center;
      }
      .menu_img7 {
        background: url('../../assets/img/synthesis/图层 7 æ‹·è´ 5.png')
        background: url("../../assets/img/synthesis/图层 7 æ‹·è´ 5.png")
          no-repeat center;
      }
      .menu_img8 {
        background: url('../../assets/img/synthesis/图层 5 æ‹·è´ 6.png')
        background: url("../../assets/img/synthesis/图层 5 æ‹·è´ 6.png")
          no-repeat center;
      }
      .menu_img9 {
        background: url('../../assets/img/synthesis/矩形 8 æ‹·è´ 11.png')
        background: url("../../assets/img/synthesis/矩形 8 æ‹·è´ 11.png")
          no-repeat center;
      }
      .menu_img10{
        background: url('../../assets/img/synthesis/场景打开1.png')
          no-repeat center;
        background: url("../../assets/img/synthesis/场景打开1.png") no-repeat
          center;
      }
    }
    // li {
@@ -307,7 +322,7 @@
    .active {
      width: 100%;
      height: 100%;
      background: url('../../assets/img/Layer/imgLayer2.png') no-repeat center;
      background: url("../../assets/img/Layer/imgLayer2.png") no-repeat center;
      position: absolute;
      background-size: 100% 100%;
      border-radius: 5px;
@@ -315,11 +330,14 @@
    .menuLayer {
      width: 100%;
      height: 100%;
      background: url('../../assets/img/Layer/imgLayer1.png') no-repeat center;
      background: url("../../assets/img/Layer/imgLayer1.png") no-repeat center;
      position: absolute;
      background-size: 100% 100%;
      border-radius: 5px;
    }
  }
  /deep/.el-loading-spinner i{
    color: #1890FF;
  }
}
</style>
src/views/Tools/pipeLineAnaly.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,863 @@
<template>
  <div class="pipeLineBox">
    <div class="headerBox">
      <div class="elFrom">
        <el-form
          ref="form"
          :model="ruleFrom"
          label-width="120px"
        >
          <el-form-item label="管道中心线">
            <el-select
              @change="selectChange"
              v-model="ruleFrom.value1"
              placeholder="请选择"
            >
              <el-option
                v-for="item in options1"
                :key="item.gid"
                :label="item.pipeName"
                :value="item.pipeName"
              >
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="选取管道">
            <el-select
              @change="selectChange1"
              v-model="ruleFrom.value2"
              placeholder="请选择"
            >
              <el-option
                v-for="item in options2"
                :key="item.gid"
                :label="item.segName"
                :value="item.segName"
                gid
              >
              </el-option>
            </el-select>
          </el-form-item>
        </el-form>
      </div>
      <div style="display:flex">
        <div class="transBox">
          <label>基础数据图层</label>
          <div class="checkBox">
            <ul>
              <li
                @click="checkLeft(item)"
                :class="{checkhover:checkedLeftflag == item.id}"
                v-for='(item,index) in cities'
                :label="item.label"
                :key="item.id"
              >{{item.label}}</li>
            </ul>
          </div>
        </div>
        <div class="transInfo">
          <div>
            <el-link
              @click="setTransRight"
              :underline="false"
            ><i
                style="color:white"
                class="el-icon-d-arrow-right"
              ></i></el-link>
            <br />
            <el-link
              @click="setTransLeft"
              :underline="false"
            ><i
                style="color:white"
                class="el-icon-d-arrow-left"
              ></i></el-link>
          </div>
        </div>
        <div class="transBox">
          <label>分析图层</label>
          <div class="checkBox">
            <ul>
              <li
                @click="checkRight(item)"
                :class="{checkhover:checkedRightflag == item.id}"
                v-for='(item,index) in citiyData'
                :label="item.label"
                :key="item.id"
              >{{item.label}}</li>
            </ul>
          </div>
        </div>
      </div>
      <div class="sureButton">
        <div class="suerBox">
          <el-button
            @click="setAnalysis"
            size="small"
          >分析</el-button>
          <el-button
            @click="clearAnalysis"
            size="small"
          >取消</el-button>
        </div>
      </div>
    </div>
    <div class="contentBox">
      <div class="contentRight">
        <ul>
          <li
            @click="setlistChange(item)"
            :class="{checkhover:listflag == item.id}"
            v-for="item in listData"
          >{{item.label}}</li>
        </ul>
      </div>
      <div class="contentLeft">
        <div style="float:right;padding:2px">
          <el-button
            @click="showDialogVivable()"
            size="mini"
            type="info"
          >下载</el-button>
          <!-- <el-button
            size="mini"
            type="info"
          >整表下载</el-button> -->
          <!-- <el-button
            size="mini"
            type="info"
          >删除</el-button> -->
        </div>
        <el-table
          :data="tableData"
          style="width: 100%"
          height="70%"
        >
          <el-table-column
            align="center"
            type="index"
            :label="$t('operatManage.ELM.index')"
            width="70px"
          />
          <el-table-column
            label="定位"
            width="100"
            align="center"
          >
            <template slot-scope="scope">
              <el-button
                icon="el-icon-map-location"
                size="mini"
                @click="spaceLocation(scope.$index, scope.row)"
              ></el-button>
            </template>
          </el-table-column>
          <el-table-column
            prop="acrossName"
            label="被穿越地物名称"
            width="180"
          >
          </el-table-column>
          <el-table-column
            prop="acrossLength"
            label="穿越长度"
            width="100"
          >
          </el-table-column>
          <el-table-column
            prop="pipeName"
            label="管线名称"
            width="180"
          >
          </el-table-column>
          <el-table-column
            prop="segName"
            label="管段名称"
            width="180"
          >
          </el-table-column>
          <el-table-column
            prop="remarks"
            label="备注"
            width="100"
          >
          </el-table-column>
        </el-table>
        <div
          class="pagination_box"
          style="margin-top:10px"
        >
          <el-pagination
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
            :current-page="pageData.pageIndex"
            :page-sizes="[10, 20, 30, 40]"
            :page-size="pageData.pageSize"
            layout="total, sizes, prev, pager, next, jumper"
            :total="pageData.pageCount"
          >
          </el-pagination>
        </div>
      </div>
    </div>
    <el-dialog
      :title="$t('common.passworld')"
      :visible.sync="dialogVisible"
      width="30%"
      :before-close="handleClose"
      :modal="false"
      :show-close="false"
    >
      <el-form
        :model="codeForm"
        :rules="rules"
        ref="codeForm"
        label-width="100px"
        class="codeForm"
      >
        <el-form-item
          :label="$t('common.passworld')"
          prop="password"
        >
          <el-input
            type="password"
            v-model="codeForm.password"
            show-password
          ></el-input>
        </el-form-item>
        <el-form-item
          :label="$t('common.SPassword')"
          prop="repassword"
        >
          <el-input
            type="password"
            v-model="codeForm.repassword"
            show-password
          ></el-input>
        </el-form-item>
        <el-form-item>
          <el-button
            class="primary"
            size="small"
            @click="download "
          >{{$t('common.confirm')}}</el-button>
          <el-button
            type="info"
            size="small"
            @click="closeDialog "
          >{{$t('common.cancel')}}</el-button>
        </el-form-item>
      </el-form>
    </el-dialog>
    <iframe
      id="Iframe1"
      src=""
      style="display: none; border: 0; padding: 0; height: 0; width: 0"
    ></iframe>
  </div>
</template>
<script>
import WKT from 'terraformer-wkt-parser'
import { getToken } from "@/utils/auth";
import { pipelines_selectSegNames, pipeline_selectPipeAnalysis, sign_getPublicKey, pipeline_downloadReq } from '../../api/api.js';
import $ from "jquery";
export default {
  data() {
    var repasswordValidator = (rule, value, callback) => {
      if (value === '') {
        callback(new Error('请再次输入密码'));
      } else if (value !== this.codeForm.password) {
        callback(new Error('两次输入密码不一致!'));
      } else {
        callback();
      }
    };
    var passwordValidator = (rule, value, callback) => {
      var passwordreg =
        /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![a-z0-9]+$)(?![a-z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![0-9\W!@#$%^&*`~()\\-_+=,.?;<>]+$)[a-zA-Z0-9\W!@#$%^&*`~()\\-_+=,.?;<>]{12,20}$/;
      if (!passwordreg.test(value)) {
        callback(
          new Error('密码必须由数字、字母、特殊字符组合,请输入13-20位')
        );
      } else {
        callback();
      }
    };
    return {
      rules: {
        password: [{ required: true, message: '请输入密码', trigger: 'blur' }, { validator: passwordValidator, trigger: 'blur' }],
        repassword: [
          { required: true, message: '请输入确认密码', trigger: 'blur' },
          { validator: repasswordValidator, trigger: 'blur' },
        ],
      },
      dialogVisible: false,
      codeForm: {
        repassword: '', password: ''
      },
      ruleFrom: {
        value1: '',
        value2: ''
      },
      options1: [],
      options2: [],
      checkList: [],
      checkData: [{
        id: 1,
        label: '铁路(dlg_25w_lrrl)',
        tabs: 'dlg_25w_lrrl',
        tabdesc: '铁路',
        table: 'bd.dlg_25w_lrrl',
        checked: false,
      }, {
        id: 2,
        label: '公路(dlg_25w_lrdl)',
        tabs: 'dlg_25w_lrdl',
        tabdesc: '公路',
        table: 'bd.dlg_25w_lrdl',
        checked: false,
      }, {
        id: 3,
        label: '水系线(dlg_25w_hydl)',
        tabs: 'dlg_25w_hydl',
        tabdesc: '水系线',
        table: 'bd.dlg_25w_hydl',
        checked: false,
      }, {
        id: 4,
        label: '水系面(dlg_25w_hyda)',
        tabs: 'dlg_25w_hyda',
        tabdesc: '水系面',
        table: 'bd.dlg_25w_hyda',
        checked: false,
      }],
      citiyData: [],
      cities: [],
      checkedCities: [],
      tableData: [],
      leftChecked: null,
      rightChecked: null,
      checkedLeftflag: null,
      checkedRightflag: null,
      analyGid: null,
      listData: [],
      listflag: null,
      featureData: [],
      pageData: {
        pageIndex: 1,
        pageSize: 10,
        pageCount: 0
      },
      multipleSelection: [],
      featurTable: null,
    }
  },
  methods: {
    spaceLocation(index, row) {
      // var wkt = row.wkt;
      // var wkt = 'POINT(115.18478138905392 40.57482771162533)'
      // var wkt = 'MULTIPOINT(115.93358953162945 40.479862914876286,115.92324938088053 40.47513850651151)'
      //var wkt = 'LINESTRING(116.29963795744581 40.412471126263874,116.30084981880705 40.411513388032716)'
      var wkt = 'MULTILINESTRING((115.87321225794265 40.452276576555455,115.87744445061348 40.45421026272125),(115.87918147829747 40.45500390957606,115.87983275512077 40.455301477546435))'
      var geojson = WKT.parse(wkt);
      this.claerAll();
      switch (geojson.type) {
        case 'Point':
          this.setShowImagePoint(geojson.coordinates)
          break;
        case 'MultiPoint':
          for (var i in geojson.coordinates) {
            this.setShowImagePoint(geojson.coordinates[i])
          }
          break;
        case 'LineString':
          this.setShowImageLine(geojson.coordinates)
          break;
        case 'MultiLineString':
          for (var i in geojson.coordinates) {
            this.setShowImageLine(geojson.coordinates[i])
          }
          break;
      }
    },
    setShowImagePoint(res) {
      var obj = { X: res[0], Y: res[1], Altitude: 1000 }
      var imageLabel = sgworld.Creator.CreateImageLabel(obj, SmartEarthRootUrl + "Workers/image/mark.png", {}, 0, "管道空间分析");
      this.$store.state.pipelineEntity.push(imageLabel.item)
      sgworld.Navigate.flyToObj(imageLabel.item);
    },
    setShowImageLine(res) {
      var obj = [];
      for (var i in res) {
        obj.push({ x: res[i][0], y: res[i][1], z: 1000 })
      }
      var line = sgworld.Creator.createPolyline(obj, "#ffff00", 1, 0, "管道空间分析");
      this.$store.state.pipelineEntity.push(line.item)
      sgworld.Navigate.flyToObj(line.item);
    },
    claerAll() {
      for (var i in this.$store.state.pipelineEntity) {
        var item = this.$store.state.pipelineEntity[i]
        sgworld.Viewer.entities.remove(item);
      }
      this.$store.state.pipelineEntity = [];
    },
    async signGetPublicKey() {
      const res = await sign_getPublicKey();
      if (res && res.code == 200) {
        window.encrypt = new JSEncrypt();
        encrypt.setPublicKey(res.result);
      }
    },
    async download() {
      var std = [];
      for (var i in this.listData) {
        std.push(this.listData[i].table)
      }
      var obj = {
        pwd: encrypt.encrypt(this.codeForm.password),
        gid: this.analyGid,
        tabs: std
      };
      const data = await pipeline_downloadReq(obj);
      if (data.code != 200) {
        this.$message.error("下载请求失败");
        this.closeDialog();
        return;
      }
      this.closeDialog();
      var token = getToken();
      var url =
        BASE_URL +
        "/pipeline/downloadFile?token=" +
        token +
        "&guid=" +
        data.result +
        "&pwd=" +
        encodeURIComponent(obj.pwd);
      $("#Iframe1").attr("src", url).click();
      //  this.$store.state.loading = false;
    },
    showDialogVivable() {
      if (this.listData.length == 0) return
      this.dialogVisible = true
    },
    handleClose() {
      this.$confirm('确认关闭?')
        .then(_ => {
          this.closeDialog()
        })
        .catch(_ => { });
    },
    closeDialog() {
      this.dialogVisible = false
      this.codeForm = {
        repassword: '', password: ''
      }
    },
    handleSelectionChange(val) {
      this.multipleSelection = val;
    },
    setTransLeft() {
      if (this.rightChecked == null) return
      this.cities.push(this.rightChecked)
      this.citiyData.forEach((value, index, array) => {
        if (value.label == this.rightChecked.label) {
          array.splice(index, 1)
        }
      });
      this.checkedLeftflag = null;
      this.rightChecked = null
    },
    setTransRight() {
      if (this.leftChecked == null) return
      this.citiyData.push(this.leftChecked)
      this.cities.forEach((value, index, array) => {
        if (value.label == this.leftChecked.label) {
          array.splice(index, 1)
        }
      });
      this.checkedRightflag = null;
      this.leftChecked = null
    },
    checkLeft(res) {
      this.checkedLeftflag = res.id;
      this.leftChecked = res;
    },
    checkRight(res) {
      this.checkedRightflag = res.id;
      this.rightChecked = res;
    },
    selectChange(res) {
      this.changeSelect2(res)
    },
    selectChange1(res) {
      this.analyGid = res;
    },
    changeSelect2(res) {
      this.options2 = [];
      var value = this.options1;
      for (var i in value) {
        if (value[i].pipeName == res) {
          this.options2.push(value[i])
        }
      }
      this.ruleFrom.value2 = this.options2[0].segName;
      this.analyGid = this.options2[0].gid;
    },
    clearAnalysis() {
      this.tableData = [];
      this.listData = [];
      this.cities = [{
        id: 1,
        label: '铁路(dlg_25w_lrrl)',
        tabs: 'dlg_25w_lrrl',
        tabdesc: '铁路',
        table: 'bd.dlg_25w_lrrl',
        checked: false,
      }, {
        id: 2,
        label: '公路(dlg_25w_lrdl)',
        tabs: 'dlg_25w_lrdl',
        tabdesc: '公路',
        table: 'bd.dlg_25w_lrdl',
        checked: false,
      }, {
        id: 3,
        label: '水系线(dlg_25w_hydl)',
        tabs: 'dlg_25w_hydl',
        tabdesc: '水系线',
        table: 'bd.dlg_25w_hydl',
        checked: false,
      }, {
        id: 4,
        label: '水系面(dlg_25w_hyda)',
        tabs: 'dlg_25w_hyda',
        tabdesc: '水系面',
        table: 'bd.dlg_25w_hyda',
        checked: false,
      }];
      this.citiyData = [];
      this.getAllData();
      this.listflag = null;
      this.checkedRightflag = null;
      this.checkedLeftflag = null;
      this.pageData = {
        pageIndex: 1,
        pageSize: 10,
        pageCount: 0
      }
    },
    async setAnalysis() {
      if (this.citiyData.length == 0) {
        this.$message.error('请选择要分析的图层!');
      }
      var std = [];
      var listTable = [];
      for (var i in this.citiyData) {
        std.push(this.citiyData[i].table)
        listTable.push(this.citiyData[i])
      }
      this.listData = listTable;
      this.listflag = this.listData[0].id
      var obj = {
        gid: this.analyGid,
        tabs: std
      }
      const data = await pipeline_selectPipeAnalysis(obj);
      if (data.code != 200) {
        this.$message.error('列表调用失败');
      }
      this.featureData = data.result;
      this.featurTable = this.featureData[this.listData[0].table]
      this.pageData.pageCount = this.featurTable.length;
      this.pageData.pageIndex = 1;
      this.pageData.pageSize = 10;
      this.changePageData();
    },
    setlistChange(res) {
      this.listflag = res.id
      this.featurTable = this.featureData[res.table]
      this.pageData.pageCount = this.featurTable.length;
      this.pageData.pageIndex = 1;
      this.pageData.pageSize = 10;
      this.changePageData();
    },
    changePageData() {
      var start = (this.pageData.pageIndex) * this.pageData.pageSize;
      var end = start + this.pageData.pageSize;
      this.tableData = this.featurTable.slice(start, end);
    },
    handleSizeChange(val) {
      this.pageData.pageIndex = 1;
      this.pageData.pageSize = val;
      this.changePageData();
    },
    handleCurrentChange(val) {
      this.pageData.pageIndex = val;
      this.changePageData();
    },
    async getAllData() {
      const data = await pipelines_selectSegNames();
      if (data.code != 200) {
        this.$message.error('列表调用失败');
      }
      this.options1 = data.result;
      this.ruleFrom.value1 = this.options1[0].pipeName;
      this.changeSelect2(this.ruleFrom.value1)
    },
  },
  mounted() {
    this.cities = [{
      id: 1,
      label: '铁路(dlg_25w_lrrl)',
      tabs: 'dlg_25w_lrrl',
      tabdesc: '铁路',
      table: 'bd.dlg_25w_lrrl',
      checked: false,
    }, {
      id: 2,
      label: '公路(dlg_25w_lrdl)',
      tabs: 'dlg_25w_lrdl',
      tabdesc: '公路',
      table: 'bd.dlg_25w_lrdl',
      checked: false,
    }, {
      id: 3,
      label: '水系线(dlg_25w_hydl)',
      tabs: 'dlg_25w_hydl',
      tabdesc: '水系线',
      table: 'bd.dlg_25w_hydl',
      checked: false,
    }, {
      id: 4,
      label: '水系面(dlg_25w_hyda)',
      tabs: 'dlg_25w_hyda',
      tabdesc: '水系面',
      table: 'bd.dlg_25w_hyda',
      checked: false,
    }];
    this.getAllData();
    this.signGetPublicKey();
  }
}
</script>
<style scoped lang="less">
.pipeLineBox {
  width: 100%;
  height: 100%;
  overflow: hidden;
  padding: 0;
  margin: 0;
  .headerBox {
    width: 100%;
    height: 130px;
    display: flex;
    justify-content: space-around;
    .elFrom {
      width: 300px;
      height: 130%;
    }
    .transBox {
      width: 200px;
      height: 100%;
      .checkBox {
        width: 100%;
        height: 90px;
        border: 1px solid white;
        border-radius: 5px;
        overflow-y: auto;
      }
      label {
        color: white;
      }
    }
    .transInfo {
      padding: 5px;
      display: flex;
      align-items: center;
    }
    .sureButton {
      display: flex;
      align-items: center;
      height: 100%;
      .suerBox {
        width: 100%;
        height: 40px;
      }
    }
  }
  .contentBox {
    width: 100%;
    height: 266px;
    display: flex;
    .contentRight {
      width: 30%;
      height: 100%;
      border: 1px solid white;
      overflow: auto;
    }
    .contentLeft {
      width: 70%;
      height: 100%;
    }
  }
  .checkhover {
    color: #409eff;
  }
  /deep/ .el-select .el-input__inner {
    border-color: #fff !important;
  }
  /deep/.el-button {
    background: #303030;
    color: white;
  }
  /deep/.el-form-item__label {
    color: white;
  }
  // è®¾ç½®è¾“入框的背景色、字体颜色、边框属性设置;
  /deep/.el-input__inner {
    background-color: transparent !important ;
    color: #fff;
    border: 1px solid;
  }
  /deep/ .el-table {
    background-color: transparent;
    th,
    td {
      background-color: transparent;
    }
    .el-table__expanded-cell {
      background-color: transparent !important;
    }
    // è¡¨å¤´èƒŒæ™¯è‰²
    th.el-table__cell {
      background-color: #303030;
      color: #fff;
    }
    tr > td {
      background-color: #303030;
      color: #fff;
    }
    // hover效果
    tr:hover > td {
      background-color: rgba(255, 255, 255, 0.3) !important;
    }
    tbody tr:hover {
      background-color: rgba(255, 255, 255, 0.3) !important;
      // text-align: center;
    }
    // æ»šåŠ¨æ¡å®½é«˜
    .el-table__body-wrapper::-webkit-scrollbar {
      width: 5px;
      height: 5px;
    }
    .el-table__body-wrapper::-webkit-scrollbar {
      width: 5px;
      /*滚动条宽度*/
      height: 10px;
      /*滚动条高度*/
    }
    /*定义滚动条轨道 å†…阴影+圆角*/
    .el-table__body-wrapper::-webkit-scrollbar-track {
      box-shadow: 0px 1px 3px #216fe6 inset;
      /*滚动条的背景区域的内阴影*/
      border-radius: 10px;
    }
    /*定义滑块 å†…阴影+圆角*/
    .el-table__body-wrapper::-webkit-scrollbar-thumb {
      box-shadow: 0px 1px 3px #216fe6 inset;
      border-radius: 6px;
      background-color: #216fe6;
    }
  }
  /deep/.el-checkbox__input.is-checked + .el-checkbox__label {
    color: #fff;
  }
  /deep/.el-checkbox__label {
    float: right;
  }
  .country-group {
    display: flex;
    justify-content: center;
    .country-group-item {
      margin: 4px 0;
    }
  }
  .pagination_box {
    margin-top: 20px;
    /deep/.el-input__inner {
      background-color: transparent !important;
      border: 1px solid;
      color: white;
    }
    /deep/.el-pagination__total {
      color: white;
    }
    /deep/.el-pagination__jump {
      color: white;
    }
    /deep/.el-pager li.active {
      color: #409eff;
    }
    /deep/.el-pager li {
      color: white;
      background: transparent;
    }
    /deep/.el-pager li {
      color: white;
    }
    /deep/.btn-prev {
      background: transparent;
    }
    /deep/.btn-next {
      background: transparent;
    }
    /deep/.btn-next i {
      color: white;
    }
    /deep/.btn-prev i {
      color: white;
    }
  }
  /deep/ .el-dialog {
    background: #303030;
  }
  /deep/.el-range-editor.is-active,
  .el-range-editor.is-active:hover,
  .el-select .el-input.is-focus .el-input__inner {
    border: 1px solid;
  }
  /deep/.el-dialog__title {
    color: white;
  }
}
</style>
src/views/Tools/queryinfo.vue
@@ -5,18 +5,17 @@
      v-for="(data, index) in PopupData"
      :key="data.id"
       :title="data.title || '提示'"
       maxHeight="360px"
      maxHeight="400"
      @close="close(data.id)"
      left="calc(100% - 960px)"
      top="calc(100% - 430px) "
      top="calc(100% - 470px) "
    >
   <div>
    <div style="width:940px;height:358px;">
        <div style="width:940px;height:400px;">
  <map-menu-pop v-if="$store.state.mapPopBoxFlag == '1'" />
        <map-space-pop v-if="$store.state.mapPopBoxFlag == '2'" />
          <pipe-line-analy v-if="$store.state.mapPopBoxFlag == '3'" />
    </div>
   </div>
    </Popup>
@@ -27,13 +26,15 @@
import Popup from './Popup.vue';
import mapMenuPop from '../../components/MapView/mapMenuPop.vue';
import mapSpacePop from '../../components/MapView/mapSpacePop.vue';
import pipeLineAnaly from './pipeLineAnaly.vue'
export default {
  name: 'queryinfo',
  components: {
    Popup,
 mapMenuPop,
 mapSpacePop
    mapSpacePop,
    pipeLineAnaly
  },
  data() {
    return {
src/views/datamanage/dataLoader.vue
@@ -855,7 +855,7 @@
    },
    //文件上传
    setFileUpload() {
      this.handlerLoading(true);
      this.fullscreenLoading = true;
      var token = getToken();
      var formData = new FormData();
@@ -874,22 +874,24 @@
        processData: false,
        contentType: false,
        success: (rs) => {
          this.getFileLength();
this.fullscreenLoading = false;
          this.$message({
            message: '数据上传成功',
            type: 'success'
          });
          this.getFileLength();
      this.clearFileSelect();
        },
        error: (rs) => {
          this.fullscreenLoading = false;
          this.$message.error('数据上传失败');
           this.clearFileSelect();
        }
      });
      this.handlerLoading(false);
    },
    //获取文件上传数据
    async getFileLength() {
@@ -977,7 +979,7 @@
    //Loading显隐
    handlerLoading(res) {
      this.fullscreenLoading = res;
    },
    //目录切换
    catalogChange(value) {
@@ -1328,3 +1330,8 @@
  }
}
</style>
<style>
.el-loading-spinner i {
  color: #1890ff !important;
}
</style>
src/views/datamanage/dataUpdata.vue
@@ -1,19 +1,30 @@
<template>
  <div class="authorityManagement_box"    v-loading.fullscreen.lock="fullscreenLoading"
  <div
    class="authorityManagement_box"
    v-loading.fullscreen.lock="fullscreenLoading"
                element-loading-spinner="el-icon-loading"
                 element-loading-background="rgba(0, 0, 0, 0.8)">
    <My-bread
      :list="[
    element-loading-background="rgba(0, 0, 0, 0.8)"
  >
    <My-bread :list="[
        `${$t('dataManage.dataManage')}`,
        `${$t('dataManage.dataUpdata')}`,
      ]"
    ></My-bread>
      ]"></My-bread>
    <el-divider />
    <div class="updateContent">
               <el-tabs v-model="activeTabName" @tab-click="handleTabClick">
    <el-tab-pane :label="$t('dataManage.dataUpObj.uploaddata')" name="first">
      <el-tabs
        v-model="activeTabName"
        @tab-click="handleTabClick"
      >
        <el-tab-pane
          :label="$t('dataManage.dataUpObj.uploaddata')"
          name="first"
        >
            <div class="contentIquery">
        <el-form :inline="true" :model="formInline" class="demo-form-inline">
            <el-form
              :inline="true"
              :model="formInline"
              class="demo-form-inline"
            >
          <el-form-item :label="$t('dataManage.dataUpObj.catalogue')">
            <el-cascader
              v-model="formInline.dirid"
@@ -31,12 +42,16 @@
            ></el-cascader>
          </el-form-item>
          <el-form-item :label="$t('dataManage.dataUpObj.versionNo')">
              <el-select v-model="formInline.verid" :placeholder="$t('common.choose')">
                <el-select
                  v-model="formInline.verid"
                  :placeholder="$t('common.choose')"
                >
              <el-option
                v-for="item in verOption"
                :key="item.id"
                :label="item.name"
                :value="item.id">
                    :value="item.id"
                  >
              </el-option>
              </el-select>
          </el-form-item>
@@ -54,23 +69,29 @@
              <el-input
              type="textarea"
              v-model="formInline.fileName"
              class="nm-skin-pretty"
              show-word-limit
              :rows="2"  resize='none'
                  :rows="2"
                  resize='none'
              style="width: 600px;"
            ></el-input>
            ></el-input>
          </el-form-item>
          <el-form-item>
            <input id="uploadfile" @change= "handleFileChange" type="file"  name="file" multiple="multiple"  style="display: none"></input>
                <input
                  id="uploadfile"
                  @change="handleFileChange"
                  type="file"
                  name="file"
                  multiple="multiple"
                  style="display: none"
                ></input>
             <el-button v-if="formInline.fileName == '未选择文件'"
                <el-button
                  v-if="formInline.fileName == '未选择文件'"
              type="info"
                @click="fileSelect">
                  @click="fileSelect"
                >
                   é€‰æ‹©æ–‡ä»¶
             </el-button>
             <el-button
@@ -90,14 +111,17 @@
              maxlength="50"
              class="nm-skin-pretty"
              show-word-limit
              :rows="2"  resize='none'
                  :rows="2"
                  resize='none'
              style="width: 460px"
            ></el-input>
          </el-form-item>
          <el-form-item>
            <el-button icon="el-icon-upload" @click="setFileUpload"
             type="success">{{
                <el-button
                  icon="el-icon-upload"
                  @click="setFileUpload"
                  type="success"
                >{{
              $t('common.upload')
            }}</el-button>
@@ -105,23 +129,19 @@
              icon="el-icon-delete"
              type="danger"
              @click="setFileDelete"
              :disabled="tableData.length == 0 ? true : false"
              >{{ $t('common.delete') }}</el-button
            >
                >{{ $t('common.delete') }}</el-button>
             <el-button
              icon="el-icon-data-line"
              type="info"
               disabled
              >{{ $t('common.quayTest') }}</el-button
            >
                >{{ $t('common.quayTest') }}</el-button>
            <el-button
              icon="el-icon-folder-add"
              type="warning"
                @click="setFileWare"
              :disabled="tableData.length == 0 ? true : false"
              >{{ $t('common.Warehousin') }}</el-button
            >
                >{{ $t('common.Warehousin') }}</el-button>
          </el-form-item>
        </el-form>
      </div>
@@ -131,8 +151,12 @@
        :data="tableData"
        style="width: width:99%"
        height="99%"
        @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" />
              @selection-change="handleSelectionChange"
            >
              <el-table-column
                type="selection"
                width="55"
              />
        <el-table-column
          align="center"
          type="index"
@@ -163,31 +187,50 @@
      </div>
      </el-tab-pane>
    <el-tab-pane :label="$t('dataManage.dataUpObj.receiptdata')" name="second">
<div class="contentIquery" style="padding-bottom: 0% !important;">
        <el-form :inline="true" :model="formWarehousing" class="demo-form-inline">
        <el-tab-pane
          :label="$t('dataManage.dataUpObj.receiptdata')"
          name="second"
        >
          <div
            class="contentIquery"
            style="padding-bottom: 0% !important;"
          >
            <el-form
              :inline="true"
              :model="formWarehousing"
              class="demo-form-inline"
            >
          <el-form-item :label="$t('dataManage.dataUpObj.describe')">
<el-input v-model="formWarehousing.name" placeholder="请输入内容"></el-input>
                <el-input
                  v-model="formWarehousing.name"
                  placeholder="请输入内容"
                ></el-input>
          </el-form-item>
          <el-form-item>
            <el-button icon="el-icon-upload" @click="setWarehouseSearch"
           class="primary">{{
                <el-button
                  icon="el-icon-upload"
                  @click="setWarehouseSearch"
                  class="primary"
                >{{
              $t('common.iquery')
            }}</el-button>
            <el-button @click="setWarehouseReset"
                <el-button
                  @click="setWarehouseReset"
              icon="el-icon-folder-add"
              type="info"
              >{{ $t('common.reset') }}</el-button
            >
             <el-button @click="setWarehouseDel"
                >{{ $t('common.reset') }}</el-button>
                <el-button
                  @click="setWarehouseDel"
              icon="el-icon-folder-delete"
              type="danger"
              >{{ $t('common.delete') }}</el-button
            >
                >{{ $t('common.delete') }}</el-button>
          </el-form-item>
        </el-form>
      </div>
   <div class="contentTable" style="height:500px">
          <div
            class="contentTable"
            style="height:500px"
          >
   <el-table
     :data="waretableData"
   @selection-change="handleDelteChange"
@@ -196,7 +239,8 @@
 >
    <el-table-column
      type="selection"
      width="55"/>
                width="55"
              />
        <el-table-column
          align="center"
          type="index"
@@ -215,7 +259,6 @@
          prop="dirName"
          :label="$t('dataManage.dataUpObj.catalogue')"
          fixed
        />
         <el-table-column
          align="center"
@@ -275,7 +318,10 @@
        />
    </el-table>
      <div style="margin-top: 10px" class="pagination_box">
            <div
              style="margin-top: 10px"
              class="pagination_box"
            >
    <el-pagination
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
@@ -300,8 +346,10 @@
import $ from 'jquery';
import MyBread from '../../components/MyBread.vue';
import { getToken } from '@/utils/auth';
import { selectdirTab, queryDepTree, dataUploadSelectVerByDirid, dataUploadSelectPath, dataUploadSelectFiles, dataUploadDeleteFiles, dataUploadInsertFiles,
dataUpload_selectByPageForUpload,dataUpload_deleteMetas} from '../../api/api';
import {
  selectdirTab, queryDepTree, dataUploadSelectVerByDirid, dataUploadSelectPath, dataUploadSelectFiles, dataUploadDeleteFiles, dataUploadInsertFiles,
  dataUpload_selectByPageForUpload, dataUpload_deleteMetas
} from '../../api/api';
export default {
  name: 'dataUpdata',
  components: {
@@ -494,7 +542,7 @@
    },
    //数据删除
    async setFileDelete() {
      this.handlerLoading(true);
      var data = JSON.stringify(this.multipleSelection);
      const res = await dataUploadDeleteFiles(data);
      if (res.code != 200) {
@@ -502,10 +550,6 @@
        return;
      }
      this.getFileLength();
      this.handlerLoading(false);
    },
    //数据入库
    async setFileWare() {
@@ -543,13 +587,13 @@
    },
    //文件上传
    setFileUpload() {
      this.handlerLoading(true);
      this.fullscreenLoading = true;
      var token = getToken();
      var formData = new FormData();
      var fs = document.getElementById("uploadfile");
      if (fs.files.length == 0) {
        this.handlerLoading(false);
        return this.$message.error('请选择需要上传的文件');
      }
      for (var i = 0, c = fs.files.length; i < c; i++) {
@@ -565,20 +609,26 @@
        contentType: false,
        success: (rs) => {
          this.getFileLength();
          this.fullscreenLoading = false;
          this.$message({
            message: '上传成功',
            type: 'success'
          });
this.clearFileSelect();
        },
        error: (rs) => {
          alert("上传文件失败!");
          this.fullscreenLoading = false;
            this.$message.error('数据上传失败');
          this.clearFileSelect();
        }
      });
      this.handlerLoading(false);
    },
    progressHandle(e) {
      var percent = (e.loaded / e.total * 100).toFixed(2);
      console.log(percent)
    },
    //获取文件上传数据
    async getFileLength() {
@@ -891,3 +941,8 @@
  }
}
</style>
<style>
.el-loading-spinner i {
  color: #1890ff !important;
}
</style>