管道基础大数据平台系统开发-【前端】-新系統界面
Surpriseplus
2023-02-26 303f5d5c1296bfdcec63f1de35f3f64739f14007
资料馆,数据申请界面优化,综合展示三维截面分析
已修改4个文件
347 ■■■■ 文件已修改
src/components/mapsdk.vue 149 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Archive/dataApplication.vue 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Archive/index.vue 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Synthesis/LeftMenu.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/mapsdk.vue
@@ -1,44 +1,82 @@
<template>
  <div class="mapBox">
    <div id="mapdiv">
      <div class="menu_Top box_divm" v-if="$store.state.mapMenuBoolean">
      <div
        class="menu_Top box_divm"
        v-if="$store.state.mapMenuBoolean"
      >
        <map-menu-top v-if="$store.state.mapMenuBoxFlag == '1'" />
        <map-space-top v-if="$store.state.mapMenuBoxFlag == '2'" />
      </div>
      <div class="bufferBox" v-if="showBufferBoxDialog">
      <div
        class="bufferBox"
        v-if="showBufferBoxDialog"
      >
        <el-card class="box-card box_divm">
          <div slot="header" class="clearfix">
          <div
            slot="header"
            class="clearfix"
          >
            <span>缓冲区分析</span>
            <div style="float: right; cursor: pointer">
              <i class="el-icon-close" @click="closeBufferBox(1)"></i>
              <i
                class="el-icon-close"
                @click="closeBufferBox(1)"
              ></i>
            </div>
          </div>
          <div class="box-body">
            <el-form ref="form" :model="bufFrom" label-width="100px">
            <el-form
              ref="form"
              :model="bufFrom"
              label-width="100px"
            >
              <el-form-item label="缓冲半径(米):">
                <el-input v-model="bufFrom.val"></el-input>
              </el-form-item>
              <el-form-item>
                <el-button @click="addBuffer(1)" type="info">点</el-button>
                <el-button @click="addBuffer(2)" type="info">线</el-button>
                <el-button @click="addBuffer(3)" type="info">面</el-button>
                <el-button @click="clearBuffer" type="info">清除</el-button>
                <el-button
                  @click="addBuffer(1)"
                  type="info"
                >点</el-button>
                <el-button
                  @click="addBuffer(2)"
                  type="info"
                >线</el-button>
                <el-button
                  @click="addBuffer(3)"
                  type="info"
                >面</el-button>
                <el-button
                  @click="clearBuffer"
                  type="info"
                >清除</el-button>
              </el-form-item>
            </el-form>
          </div>
        </el-card>
      </div>
      <div class="coordLocalBox" v-if="showCoordLocalBoxDialog">
      <div
        class="coordLocalBox"
        v-if="showCoordLocalBoxDialog"
      >
        <el-card class="box-card">
          <div slot="header">
            <span>坐标定位</span>
            <div style="float: right; cursor: pointer">
              <i class="el-icon-close" @click="closeBufferBox(2)"></i>
              <i
                class="el-icon-close"
                @click="closeBufferBox(2)"
              ></i>
            </div>
          </div>
          <div class="box-body">
            <el-form ref="form" :model="coordFrom" label-width="50px">
            <el-form
              ref="form"
              :model="coordFrom"
              label-width="50px"
            >
              <el-form-item label="经度:">
                <el-input v-model="coordFrom.lon"></el-input>
              </el-form-item>
@@ -49,22 +87,38 @@
                <el-input v-model="coordFrom.height"></el-input>
              </el-form-item>
              <el-form-item>
                <el-button @click="setCoordLocal" type="info">定位</el-button>
                <el-button
                  @click="setCoordLocal"
                  type="info"
                >定位</el-button>
              </el-form-item>
            </el-form>
          </div>
        </el-card>
      </div>
      <div class="toponymicLocalBox" v-if="showToponymicLocalBoxDialog">
      <div
        class="toponymicLocalBox"
        v-if="showToponymicLocalBoxDialog"
      >
        <el-card class="box-card">
          <div slot="header" class="clearfix">
          <div
            slot="header"
            class="clearfix"
          >
            <span>地名定位</span>
            <div style="float: right; cursor: pointer">
              <i class="el-icon-close" @click="closeBufferBox(3)"></i>
              <i
                class="el-icon-close"
                @click="closeBufferBox(3)"
              ></i>
            </div>
          </div>
          <div class="box-body">
            <el-form :model="comprehensive" :inline="true" label-width="50px">
            <el-form
              :model="comprehensive"
              :inline="true"
              label-width="50px"
            >
              <el-form-item label="地名:">
                <el-input
                  style="width: 200px"
@@ -72,17 +126,28 @@
                ></el-input>
              </el-form-item>
              <el-form-item>
                <el-button @click="setQueryTable" type="info">查询</el-button>
                <el-button
                  @click="setQueryTable"
                  type="info"
                >查询</el-button>
              </el-form-item>
            </el-form>
            <el-table :data="tableData" height="200px" style="width: 100%">
            <el-table
              :data="tableData"
              height="200px"
              style="width: 100%"
            >
              <el-table-column
                align="center"
                type="index"
                label="序号"
                width="70px"
              />
              <el-table-column prop="name" align="center" label="定位">
              <el-table-column
                prop="name"
                align="center"
                label="定位"
              >
                <template slot-scope="scope">
                  <el-button
                    @click="handleLocation(scope.$index, scope.row)"
@@ -91,7 +156,11 @@
                  ></el-button>
                </template>
              </el-table-column>
              <el-table-column prop="name" align="center" label="地名">
              <el-table-column
                prop="name"
                align="center"
                label="地名"
              >
              </el-table-column>
            </el-table>
            <div class="pagination_box">
@@ -109,12 +178,21 @@
          </div>
        </el-card>
      </div>
      <div class="pathAnalysisBox" v-if="showPathAnalysisBoxDialog">
      <div
        class="pathAnalysisBox"
        v-if="showPathAnalysisBoxDialog"
      >
        <el-card class="box-card">
          <div slot="header" class="clearfix">
          <div
            slot="header"
            class="clearfix"
          >
            <span>路径分析</span>
            <div style="float: right; cursor: pointer">
              <i class="el-icon-close" @click="closeBufferBox(4)"></i>
              <i
                class="el-icon-close"
                @click="closeBufferBox(4)"
              ></i>
            </div>
          </div>
          <div class="box-body">
@@ -124,7 +202,10 @@
              :rules="rules"
              label-width="55px"
            >
              <el-form-item label="起点:" prop="lon">
              <el-form-item
                label="起点:"
                prop="lon"
              >
                <el-input
                  style="width: 250px"
                  v-model="pathFrom.lon"
@@ -134,10 +215,12 @@
                  :underline="false"
                  @click="showMouseLeftClick(1)"
                  style="margin-left: 10px"
                  ><i style="color: white" class="el-icon-plus"></i
                ></el-link>
                ><i class="el-icon-plus"></i></el-link>
              </el-form-item>
              <el-form-item label="终点:" prop="lat">
              <el-form-item
                label="终点:"
                prop="lat"
              >
                <el-input
                  style="width: 250px"
                  v-model="pathFrom.lat"
@@ -147,13 +230,13 @@
                  :underline="false"
                  @click="showMouseLeftClick(2)"
                  style="margin-left: 10px"
                  ><i style="color: white" class="el-icon-plus"></i
                ></el-link>
                ><i class="el-icon-plus"></i></el-link>
              </el-form-item>
              <el-form-item>
                <el-button @click="showMouseLeftClick(3)" type="info"
                  >查询</el-button
                >
                <el-button
                  @click="showMouseLeftClick(3)"
                  type="info"
                >查询</el-button>
              </el-form-item>
            </el-form>
          </div>
src/views/Archive/dataApplication.vue
@@ -1,14 +1,19 @@
<template>
  <div class="logLog_box box_div">
    <My-bread
      :list="[
    <My-bread :list="[
        `${$t('synthesis.synthesis')}`,
        `${$t('synthesis.dataApplication')}`,
      ]"
    ></My-bread>
      ]"></My-bread>
    <el-divider />
    <div class="inquire subpage_Div" ref="container">
      <el-form :inline="true" ref="sizeForm" :model="sizeForm">
    <div
      class="inquire subpage_Div"
      ref="container"
    >
      <el-form
        :inline="true"
        ref="sizeForm"
        :model="sizeForm"
      >
        <div class="flex_box">
          <div style="margin-right: auto">
            <el-form-item
@@ -16,6 +21,7 @@
              :label="$t('operatManage.operationLogObj.username')"
            >
              <el-input
                size="small"
                v-model="sizeForm.uname"
                :placeholder="$t('operatManage.operationLogObj.pleaseInput')"
              />
@@ -25,13 +31,26 @@
              :label="$t('operatManage.operationLogObj.status')"
            >
              <el-select
                size="small"
                v-model="sizeForm.status"
                :placeholder="$t('operatManage.operationLogObj.pleaseSelect')"
              >
                <el-option :label="$t('dataApply.type1')" value="-10" />
                <el-option :label="$t('dataApply.type2')" value="-1" />
                <el-option :label="$t('dataApply.type3')" value="0" />
                <el-option :label="$t('dataApply.type4')" value="-9" />
                <el-option
                  :label="$t('dataApply.type1')"
                  value="-10"
                />
                <el-option
                  :label="$t('dataApply.type2')"
                  value="-1"
                />
                <el-option
                  :label="$t('dataApply.type3')"
                  value="0"
                />
                <el-option
                  :label="$t('dataApply.type4')"
                  value="-9"
                />
              </el-select>
            </el-form-item>
            <el-form-item
@@ -39,6 +58,7 @@
              :label="$t('operatManage.operationLogObj.startTime')"
            >
              <el-date-picker
                size="small"
                format="yyyy-MM-dd HH:mm:ss"
                value-format="yyyy-MM-dd HH:mm:ss"
                v-model="sizeForm.start"
@@ -52,6 +72,7 @@
              :label="$t('operatManage.operationLogObj.endTime')"
            >
              <el-date-picker
                size="small"
                format="yyyy-MM-dd HH:mm:ss"
                value-format="yyyy-MM-dd HH:mm:ss"
                v-model="sizeForm.end"
@@ -67,26 +88,29 @@
              <el-button
                @click="onSubmit"
                icon="el-icon-search"
                style="
                  background: #409eff;
                  border: 1px solid #409eff;
                  color: white;
                "
                >{{ $t("operatManage.operationLogObj.inquire") }}</el-button
              >
                size="small"
                type="primary"
              >{{ $t("operatManage.operationLogObj.inquire") }}</el-button>
              <el-button
                size="small"
                @click="resAllTable"
                icon="el-icon-delete"
                type="info"
                >{{ $t("operatManage.operationLogObj.empty") }}</el-button
              >
              >{{ $t("operatManage.operationLogObj.empty") }}</el-button>
            </el-form-item>
          </div>
        </div>
      </el-form>
    </div>
    <div class="table_box subpage_Div" :style="styleVar">
      <el-table :data="tableData" style="width: 100%" height="calc(100% - 57px)">
    <div
      class="table_box subpage_Div"
      :style="styleVar"
    >
      <el-table
        :data="tableData"
        style="width: 100%"
        height="calc(100% - 20px)"
      >
        <el-table-column
          align="center"
          type="index"
@@ -118,7 +142,10 @@
          :formatter="formatStatus"
        />
        <el-table-column min-width="150" :label="$t('common.operate')">
        <el-table-column
          min-width="150"
          :label="$t('common.operate')"
        >
          <template slot-scope="scope">
            <el-button
              type="danger"
@@ -126,28 +153,25 @@
              @click="handleApplyCancel(scope.$index, scope.row)"
              v-if="matchState(scope, /[]/)"
              plain
              >{{ $t("dataApply.ApplicationCancel") }}</el-button
            >
            >{{ $t("dataApply.ApplicationCancel") }}</el-button>
            <el-button
              type="warning"
              size="mini"
              @click="handleReApply(scope.$index, scope.row)"
              v-if="matchState1(scope, /[]/)"
              plain
              >{{ $t("dataApply.ReApply") }}</el-button
            >
            >{{ $t("dataApply.ReApply") }}</el-button>
            <el-button
              type="info"
              size="mini"
              plain
              @click="handlDetails(scope.$index, scope.row)"
              >{{ $t("dataApply.details") }}</el-button
            >
            >{{ $t("dataApply.details") }}</el-button>
          </template>
        </el-table-column>
      </el-table>
      <div class="pagination_box">
      <div style="margin-top:10px">
        <el-pagination
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
@@ -167,10 +191,14 @@
      :before-close="handleClose"
    >
      <div>
        <el-form :inline="true" :model="detailsFrom" class="demo-form-inline">
        <el-form
          :inline="true"
          :model="detailsFrom"
          class="demo-form-inline"
        >
          <el-form-item label="表名:">
            <div class="statusLabel">{{ detailsFrom.tabs }}</div> </el-form-item
          ><br />
            <div class="statusLabel">{{ detailsFrom.tabs }}</div>
          </el-form-item><br />
          <el-form-item label="申请人:">
            <div class="statusLabel">{{ detailsFrom.uname }}</div>
          </el-form-item>
@@ -181,16 +209,31 @@
            <div class="statusLabel">{{ detailsFrom.status }}</div>
          </el-form-item>
        </el-form>
        <el-table :data="detailsFrom.tableData" style="width: 100%">
        <el-table
          :data="detailsFrom.tableData"
          style="width: 100%"
        >
          <el-table-column
            align="center"
            type="index"
            :label="$t('operatManage.ELM.index')"
            width="70px"
          />
          <el-table-column align="center" prop="depName" label="单位" />
          <el-table-column align="center" prop="uname" label="审核人" />
          <el-table-column align="center" prop="uname" label="描述">
          <el-table-column
            align="center"
            prop="depName"
            label="单位"
          />
          <el-table-column
            align="center"
            prop="uname"
            label="审核人"
          />
          <el-table-column
            align="center"
            prop="uname"
            label="描述"
          >
            <template slot-scope="scope">
              <el-input
                type="textarea"
@@ -208,7 +251,10 @@
            label="状态"
            :formatter="formatStatus1"
          />
          <el-table-column min-width="150" :label="$t('common.operate')">
          <el-table-column
            min-width="150"
            :label="$t('common.operate')"
          >
            <template slot-scope="scope">
              <div v-if="matchState3(scope, /[]/)">
                <el-button
@@ -216,16 +262,14 @@
                  size="mini"
                  @click="handleApplyRepulse(scope.$index, scope.row)"
                  plain
                  >打回</el-button
                >
                >打回</el-button>
                <el-button
                  @click="handleApplyAdopt(scope.$index, scope.row)"
                  type="success"
                  size="mini"
                  plain
                  >通过</el-button
                >
                >通过</el-button>
              </div>
              <div v-if="!matchState3(scope, /[]/)">- -</div>
            </template>
@@ -275,14 +319,14 @@
      },
      count: 0,
      detailsId: null,
            tableHeight: 0,
      tableHeight: 0,
      timer: 0,
      styleVar: {
        height: "calc(100% - 109px)",
      },
    };
  },
    beforeDestroy() {
  beforeDestroy() {
    this.timer && clearTimeout(this.timer);
    window.removeEventListener("resize", this.onResize);
  },
@@ -291,7 +335,7 @@
    this.calHeight();
  },
  methods: {
        onResize() {
    onResize() {
      this.timer && clearTimeout(this.timer);
      this.timer = setTimeout(() => {
        this.calHeight();
@@ -521,7 +565,7 @@
  width: 100%;
  height: 100%;
  padding: 1%;
  padding: 10px;
  box-sizing: border-box;
  .el-input {
@@ -530,7 +574,7 @@
  .inquire {
    padding: 8px;
     margin-top: 20px;
    margin-top: 20px;
    border-radius: 5px;
@@ -544,11 +588,6 @@
    font-size: 14px;
  }
  .table_box {
    // overflow: auto;
    // height: 70%;
    // padding: 10px;
    // height: auto;
    // border-radius: 5px;
  }
  .text-center {
    text-align: center;
src/views/Archive/index.vue
@@ -146,7 +146,10 @@
      </el-form>
    </div>
    <div class="contBox">
      <div class="archTopBox">
      <div
        id="archTopBox"
        class="archTopBox"
      >
        <div
          class="boxCard"
@@ -214,7 +217,7 @@
        </div>
      </div>
      <div class="archBottomBox">
        <div class="pagination_box">
        <div style="margin-top:10px">
          <el-pagination
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
@@ -545,7 +548,7 @@
          </el-table-column>
        </el-table>
        <div class="archBottomBox">
          <div class="pagination_box">
          <div>
            <el-pagination
              @size-change="handleSizeChange1"
              @current-change="handleCurrentChange1"
@@ -1325,12 +1328,28 @@
    handleSizeChange(val) {
      this.listData.pageIndex = 1;
      this.listData.pageSize = val;
      this.getAllTabesData();
      switch (this.formInline.dataType) {
        case "type2"://文件数据
          this.getQueryFileData();
          break;
        case "type1"://数据库数据
          this.getQueryBankData();
          break;
      }
    },
    handleCurrentChange(val) {
      this.listData.pageIndex = val;
      this.getAllTabesData();
      switch (this.formInline.dataType) {
        case "type2"://文件数据
          this.getQueryFileData();
          break;
        case "type1"://数据库数据
          this.getQueryBankData();
          break;
      }
    },
    // 关键字查询
    submitForm() {
@@ -1350,16 +1369,22 @@
    },
    handleSizeChange1(val) {
      this.listBankData.pageIndex = 1;
      this.listBankData.pageSize = val;
      //获取table信息
      this.getCollapseTable(this.filedsLayer);
    },
    handleCurrentChange1(val) {
      // 将div的滚动条复位到顶部
      this.listBankData.pageIndex = val;
      //获取table信息
      this.getCollapseTable(this.filedsLayer);
    },
    //查询数据库数据
    async getQueryBankData() {
@@ -1507,8 +1532,7 @@
  height: calc(100% - 20px);
  padding: 10px;
  position: relative;
  overflow: auto;
  overflow: hidden;
  .menu_top {
    display: flex;
    justify-content: space-between;
@@ -1519,7 +1543,7 @@
  }
  .contBox {
    width: 100%;
    min-height: calc(100% - 111px);
    height: calc(100% - 111px);
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
@@ -1527,6 +1551,10 @@
    .archTopBox {
      width: 100%;
      overflow: auto;
      position: relative;
      .cardItem {
        margin-bottom: 10px;
        margin-left: 20px;
src/views/Synthesis/LeftMenu.vue
@@ -1242,7 +1242,7 @@
          var that = this;
          window.model = sgworld.Creator.create3DTilesets(
            "",
            modelUrl,
            modelUrl + '/tileset/m/SN/tileset.json',
            {},
            {},
            "0",
@@ -1644,6 +1644,17 @@
      // this.$refs.tree.setCheckedKeys(checkKey);
      this.$store.state.checkedKeys = checkKey
    },
    setTreeData(source) {
      let cloneData = JSON.parse(JSON.stringify(source)); // 对源数据深度克隆
      return cloneData.filter((father) => {
        // 循环所有项
        let branchArr = cloneData.filter((child) => father.id == child.pid); // 对比ID,分别上下级菜单,并返回数据
        branchArr.length > 0 ? (father.children = branchArr) : ""; // 给父级添加一个children属性,并赋值
        // 属于同一对象问题,例如:令 a=b、c=1 ,然后再令 b.c=c , 那么 a.c=b.c=c=1 ;同理,后续令 c.d=2 ,那么 a.c.d 也是=2;
        // 由此循环多次后,就能形成相应的树形数据结构
        return father.pid == 0; // 返回一级菜单
      });
    },
    setAddLayers(res) {
      if (res.serveType == "WMS") {
        var resource = geoServerURl;