管道基础大数据平台系统开发-【前端】-新系統界面
Surpriseplus
2023-08-04 d3215f0051943a83f459009359d0039c3a0e1a4e
src/views/datamanage/dataUpdata.vue
@@ -3,6 +3,7 @@
    class="subpage_Box"
    v-loading="loading"
    element-loading-background="rgba(0, 0, 0, 0.8)"
    :element-loading-text="loadText"
  >
    <My-bread :list="[
        `${$t('dataManage.dataManage')}`,
@@ -68,6 +69,7 @@
              size="small"
            >
              <el-select
                ref="multiSelect"
                :popper-append-to-body="false"
                v-model="formInline.dirName"
                :disabled="tableData.length == 0 ? false : true"
@@ -608,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')"
            />
@@ -632,7 +642,7 @@
              @size-change="handleSizeChange"
              @current-change="handleCurrentChange"
              :current-page="listData.pageIndex"
              :page-sizes="[10, 20, 50, 100]"
              :page-sizes="[10, 50, 100, 200,500]"
              :page-size="listData.pageSize"
              layout="total, sizes, prev, pager, next, jumper"
              :total="count"
@@ -1126,7 +1136,7 @@
            @size-change="handleLoaderSizeChange"
            @current-change="handleLoaderCurrentChange"
            :current-page="listLoader.pageIndex"
            :page-sizes="[10, 20, 50, 100]"
            :page-sizes="[10, 50, 100, 200]"
            :page-size="listLoader.pageSize"
            layout="total, sizes, prev, pager, next, jumper"
            :total="count1"
@@ -1288,7 +1298,7 @@
            @size-change="handleMetaSizeChange"
            @current-change="handMetaCurrentChange"
            :current-page="listMetaData.pageIndex"
            :page-sizes="[10, 20, 50, 100]"
            :page-sizes="[10, 50, 100, 200]"
            :page-size="listMetaData.pageSize"
            layout="total, sizes, prev, pager, next, jumper"
            :total="listMetaData.count"
@@ -1384,6 +1394,7 @@
      :visible.sync="warehouseDialog"
      width="70%"
      :close-on-click-modal="false"
      :before-close="handleWarehouseClose"
    >
      <div style="height:65vh">
        <el-table
@@ -1425,6 +1436,37 @@
      style="display: none"
      @change="uploadAnFilesChange"
    />
    <el-dialog :visible.sync="noteVisible">
      <div class="nodeBox">
        <div style="text-align: center;">
          <h1>
            数据上传注意事项
          </h1>
        </div>
        <h3>
          1、项目整体上传
        </h3>
        <h5>&nbsp; &nbsp; &nbsp; &nbsp;按照项目标准结构组织数据并打zip包,按要求编辑好WBS文件。选择需要上传对应的项目名称,选择zip数据包和WBS文件,完成整体项目数据上传,上传入库完成后,系统自动解压zip包,以zip包内原始文件格式存储在预先组织的目录结构下。</h5>
        <h3>
          2、单文件上传
        </h3>
        <h5>&nbsp; &nbsp; &nbsp; &nbsp;上传单个文件,选择需要上传的存储目录位置、数据版本、数据专业、数据(.xls、.xlsx、pdf、las等格式)、元数据等,完成单个文件数据上传;</h5>
        <h5>&nbsp; &nbsp; &nbsp; &nbsp;批量上传一个最小目录文件夹下的各类数据,选择需要上传数据的存储目录位置、数据版本、数据专业、数据(zip格式)、元数据等,完成一个文件夹下各类数据上传,上传入库完成后,系统自动解压zip包,以zip包内原始文件存储数据。</h5>
        <h5>&nbsp; &nbsp; &nbsp; &nbsp;单文件上传不支持多级目录文件夹以zip压缩包方式上传。</h5>
        <h3>
          3、特定格式单文件上传要求
        </h3>
        <h5>√&nbsp; &nbsp;<span>DOM数据上传:</span>至少需包含.tif、.tif.ovr文件,以zip包压缩统一上传。</h5>
        <h5>√&nbsp; &nbsp;<span>DEM数据上传:</span>至少需包含.tif、.tif.ovr文件,以zip包压缩统一上传。</h5>
        <h5>√&nbsp; &nbsp;<span>OSGB倾斜模型数据上传:</span>需包含Data文件夹、metadata.xml文件,以zip包压缩统一上传。</h5>
        <h5>√&nbsp; &nbsp;<span>Las、Laz点云数据上传:</span>可单独上传文件,也可以zip包压缩统一上传。</h5>
        <h5>√&nbsp; &nbsp;<span>CPT点云数据上传:</span>可单独上传文件,也可以zip包压缩统一上传。</h5>
        <h5>√&nbsp; &nbsp;<span>MPT场景数据上传:</span>需包含.mIdx、.Strmi、.mpt文件,以zip包压缩统一上传。</h5>
        <h5>√&nbsp; &nbsp;<span>GDB格式矢量文件上传:</span>需包含gdb各类子文件,以zip包压缩统一上传。</h5>
        <h5>√&nbsp; &nbsp;<span>SHP矢量文件上传:</span>需包含.shp、.shx、.dbf、prj子文件,以zip包压缩统一上传。</h5>
      </div>
    </el-dialog>
  </div>
</template>
@@ -1609,6 +1651,7 @@
      wareTableFlag: null,
      insertWareList: null,
      loading: false,
      loadText: '',
      dbTableData: [],
      dialogVisible: false,
      listLoader: {
@@ -1660,13 +1703,14 @@
        label1: '上传',
        label2: '文件上传进度:'
      },
      warehouseDialog: true,
      warehouseDialog: false,
      wareData: [],
      noteVisible: false,
    };
  },
  mounted() {
    this.noteVisible = true;
    //获取坐标系
    this.setCoordinateSystem();
    //获取项目名称
@@ -1686,6 +1730,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;
@@ -2012,6 +2066,9 @@
    },
    //自动匹配确认
    async setInsrtWareTable() {
      this.loading = true;
      this.dialogWarehousing = false;
      this.loadText = "数据入库中,请等待..."
      if (this.tableWareThree.length != 0) {
        for (var i in this.tableWareThree) {
          var tabs = this.tableWareThree[i].tabs;
@@ -2030,26 +2087,32 @@
        });
      }
      this.loading = true;
      const res = await dataUpload_insertFiles(
        JSON.stringify(this.insertWareList)
      );
      this.loading = false;
      if (res.code != 200) {
        this.$message.error("数据入库失败");
        return;
      }
      debugger
      this.$message({
        message: "数据入库成功",
        type: "success",
      });
      this.loading = false;
      this.loadText = ""
      if (res.result.length > 0) {
        this.warehouseDialog = true;
        this.wareData = res.result;
      }
      this.setInsrtWareTableClose();
    },
    handleWarehouseClose() {
      this.warehouseDialog = false;
      this.wareData = [];
    },
    //自动匹配
    autoMatchWare() {
@@ -2059,7 +2122,8 @@
      for (var i = 0; i < val1.length; i++) {
        const stdTab = this.setSplitWare(val1[i].tab);
        for (var j = 0; j < val2.length; j++) {
          if (val2[j].tab == stdTab) {
          var tabs = stdTab.toLowerCase();
          if (val2[j].tab.indexOf(tabs) > -1) {
            std.push(val1[i].tab);
            val1[i].entity = val2[j].entity;
            val1[i].tabDesc = val2[j].tabDesc;
@@ -2187,18 +2251,21 @@
          }
        }
      }
      this.loading = true;
      var obj = {
        dirid: this.formInline.dirid,
        epsgCode: this.formInline.coordinateId,
        path: this.formInline.path,
        verid: this.formInline.verid,
      };
      this.loadText = "数据映射查询中,请等待..."
      //查询映射
      const data = await dataUpload_selectMappers(obj);
      if (data.code != 200) {
        return this.$message.error("数据映射失败");
      }
      this.loading = false;
      this.loadText = " "
      var std = [];
      var result = data.result;
      this.insertWareList = data.result;
@@ -2864,11 +2931,13 @@
    },
    //上传数据列表清单初始化
    setStartWareTable() {
      this.listData = {
        pageIndex: 1,
        pageSize: 10,
        name: null,
      };
      // this.listData = {
      //   pageIndex: 1,
      //   pageSize: 10,
      //   name: null,
      // };
      this.listData.pageIndex = 1;
      this.listData.name = null;
      this.getAllWareTable();
    },
    //获取数据上传列表清单
@@ -3058,11 +3127,16 @@
      this.formInline.dirid = node.data.id;
      this.formInline.dirName = node.data.name;
      this.getselectVerByDirid();
      setTimeout(() => {
        this.$refs.multiSelect.blur()
      }, 100)
    },
    //Tabsq切换
    handleTabClick(tab, event) {
      if (tab.name == "second") {
        this.setStartWareTable();
      } else {
        this.noteVisible = true
      }
      this.calHeight();
    },
@@ -3107,7 +3181,23 @@
    z-index: 9999;
  }
}
.nodeBox {
  h5 {
    line-height: 26px;
    font-size: 14px;
    span {
      font-weight: bolder;
    }
  }
  h3 {
    line-height: 40px;
    font-size: 16px;
    font-weight: bold;
  }
  h1 {
    font-weight: bold;
  }
}
.inquire {
  padding: 8px;
  //margin-top: 20px;