管道基础大数据平台系统开发-【前端】-新系統界面
1
Surpriseplus
2022-12-21 ec3342e1b34dd02f33dae9bed2db16a14ae8096d
src/views/datamanage/dataLoader.vue
@@ -10,7 +10,10 @@
    ></My-bread>
    <el-divider />
    <div class="updateContent">
      <div class="contentIquery">
       <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-item :label="$t('dataManage.dataUpObj.catalogue')">
            <el-cascader
@@ -38,20 +41,32 @@
              </el-option>
              </el-select>
          </el-form-item>
          <el-form-item :label="$t('dataManage.dataUpObj.entryTime')">
            <el-date-picker
              v-model.trim="formInline.gather"
              :picker-options="pickerOptions"
              type="datetime"
              placeholder="请选择"
              value-format="yyyy-MM-dd HH:mm:ss"
            />
          </el-form-item>
          <el-form-item>
            <input id="uploadfile" @change= "handleFileChange" type="file"  name="file" multiple="multiple" accept=".xls,.xlsx,.mdb,.shp.zip,.gdb.zip"  style="display: none"></input>
            <el-button icon="el-icon-document-add" @click="fileSelect" class="primary">{{
            <!-- <el-button icon="el-icon-document-add" @click="fileSelect" class="primary">{{
              $t('common.file')
            }}</el-button>
            }}</el-button> -->
            <el-input v-model="formInline.fileName" disabled>
         <template slot="append">
             <el-button v-if="formInline.fileName == '未选择文件'"
              type="info"
                @click="fileSelect">
                   选择文件
             </el-button>
             <el-button
               v-else
                type="info"
                @click="clearFileSelect"
                >
                    重置
             </el-button>
         </template>
      </el-input>
          </el-form-item>
          <br />
          <el-form-item :label="$t('dataManage.dataUpObj.describe')">
@@ -79,6 +94,12 @@
              :disabled="tableData.length == 0 ? true : false"
              >{{ $t('common.delete') }}</el-button
            >
             <el-button
              icon="el-icon-data-line"
              type="info"
               disabled
              >{{ $t('common.quayTest') }}</el-button
            >
            <el-button
              icon="el-icon-folder-add"
              type="warning"
@@ -92,7 +113,6 @@
      <div class="contentTable">
         <el-table
     :data="tableData"
        border
        style="width: 100%"
        height="99%"
        @selection-change="handleSelectionChange">
@@ -110,9 +130,130 @@
          :label="$t('common.name')"
          fixed
        />
    </el-table>
      <!-- <div style="margin-top: 10px" class="pagination_box">
      </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-form-item :label="$t('dataManage.dataUpObj.describe')">
<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">{{
              $t('common.iquery')
            }}</el-button>
            <el-button @click="setWarehouseReset"
              icon="el-icon-folder-add"
              type="info"
              >{{ $t('common.reset') }}</el-button
            >
              <el-button @click="setWarehouseDel"
              icon="el-icon-folder-delete"
              type="danger"
              >{{ $t('common.delete') }}</el-button
            >
          </el-form-item>
        </el-form>
      </div>
   <div class="contentTable" style="height:500px">
   <el-table
     :data="waretableData"
        style="width:99%"
        height="92%"
         @selection-change="handleDelteChange"
 >
   <el-table-column
      type="selection"
      width="55">
    </el-table-column>
        <el-table-column
          align="center"
          type="index"
          :label="$t('common.index')"
          width="70px"
        />
          <el-table-column
          align="center"
          prop="name"
          :label="$t('common.name')"
        />
         <el-table-column
          align="center"
          prop="dirName"
          :label="$t('dataManage.dataUpObj.catalogue')"
        />
         <el-table-column
          align="center"
          prop="depName"
          :label="$t('dataManage.dataUpObj.company')"
        />
             <el-table-column
          align="center"
          prop="verName"
          :label="$t('dataManage.dataUpObj.versionNo')"
        />
             <el-table-column
          align="center"
          prop="type"
          :label="$t('common.type')"
        />
        <el-table-column
          align="center"
          prop="sizes"
          :label="$t('common.size')"
          :formatter="changeSizeFile"
        />
         <el-table-column
          align="center"
          :label="$t('dataManage.dataUpObj.tableName')"
        >
         <template slot-scope="scope">
      <a @click="detail(scope.row)"  >{{
          scope.row.tab
        }}</a>
    </template>
        </el-table-column>
         <el-table-column
          align="center"
          prop="rows"
          :label="$t('common.lineNuber')"
        />
         <el-table-column
          align="center"
          prop="desc"
          :label="$t('dataManage.dataUpObj.describe')"
        />
        <el-table-column
          align="center"
          prop="uname"
          :label="$t('dataManage.vmobj.createonuser')"
        />
         <el-table-column
          align="center"
          prop="createTime"
          :label="$t('dataManage.vmobj.createontime')"
          :formatter="changetimeFile"
        />
    </el-table>
      <div style="margin-top: 10px" class="pagination_box">
    <el-pagination
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
@@ -123,15 +264,19 @@
          :total="count"
        >
        </el-pagination>
      </div> -->
      </div>
      </div>
    </el-tab-pane>
  </el-tabs>
    </div>
    <!--  -->
   <el-dialog
  :title="$t('dataManage.datawarehousing')"
  :visible.sync="dialogWarehousing"
  width="50%"
  width="70%"
  :before-close="handleWareClose"
  >
  <div  class="dialogBox">
@@ -147,7 +292,7 @@
  </div>
  <div class="transFarBox">
 <ul>
      <li @click="singleElection2(item)" v-for="(item, i) in tableWareTwo"  :class="{ active: activeName2 == item.entity }">{{item.tabDesc}} (  {{item.tab}})</li>
      <li @click="singleElection2(item)" v-for="(item, i) in tableWareTwo"  :class="{ active: activeName2 == item.entity }">{{item.tabDesc}} ( {{item.ns}}.{{item.tab}})</li>
    </ul>
  </div>
   <div class="tarnsbtton">
@@ -156,16 +301,56 @@
   </div>
   <div class="transFarBox">
     <ul>
      <li @click="singleElection3(i)" v-for="(item, i) in tableWareThree"  :class="{ active: activeName3 ==( item.tab+i)}">{{item.tab}} ( {{item.tabDesc}}:{{item.entity}} )</li>
      <li @click="singleElection3(i)" v-for="(item, i) in tableWareThree"  :class="{ active: activeName3 ==( item.tab+i)}">{{item.tab}} ( {{item.tabDesc}}  {{item.ns}}.{{item.tabs}} )</li>
    </ul>
   </div>
  </div>
  <span slot="footer" class="dialog-footer">
        <el-button  class="primary" @click="autoMatchWare">自动匹配</el-button>
    <el-button @click="dialogVisible = false">取 消</el-button>
    <el-button @click="setInsrtWareTableClose ">取 消</el-button>
    <el-button class="primary" @click="setInsrtWareTable">确 定</el-button>
  </span>
</el-dialog>
<el-dialog
  :title="$t('common.details')"
  :visible.sync="dialogVisible"
   width="70%"
   >
   <div style="height:600px">
     <el-table
            ref="filterTable"
            :data="dbTableData"
            height="90%"
            border
          style="width: 100%"
          >
            <el-table-column width="60" type="index" :label="$t('common.index')" />
            <el-table-column
              v-for="(item, index) in attributeData"
              :key="index"
              :label="item.alias"
              :prop="item.field"
              show-overflow-tooltip
              align="center"
            ></el-table-column>
          </el-table>
            <div style="margin-top: 10px" class="pagination_box">
    <el-pagination
          @size-change="handleLoaderSizeChange"
          @current-change="handleLoaderCurrentChange"
          :current-page="listLoader.pageIndex"
          :page-sizes="[10, 20, 30, 40]"
          :page-size="listLoader.pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="count1"
        >
        </el-pagination>
      </div>
   </div>
</el-dialog>
  </div>
</template>
@@ -180,9 +365,13 @@
  dataLoader_selectVerByDirid,
  dataLoader_selectFiles,
  dataUploadDeleteFiles,
  dataUploadInsertFiles,
  dataLoader_InsertFiles,
  dataLoader_selectMappers,
  dataLoader_SelectTabs
  dataLoader_SelectTabs,
  dataLoader_selectByPageForUpload,
  dataLoader_deleteMetas,
  dataLoader_selectFields,
  dataLoader_selectDbData
} from '../../api/api';
export default {
  name: 'dataUpdata',
@@ -191,6 +380,13 @@
  },
  data() {
    return {
      formWarehousing: {
        name: '',
      },
      waretableData: [],
      activeTabName: 'first',
      wareStatus: false,
      dialogWarehousing: false,
      btnStatus: 0,
@@ -198,6 +394,7 @@
      formInline: {
        verid: '',
        gather: '',
          fileName:'未选择文件'
      },
      tableWareOne: [],
      tableWareTwo: [],
@@ -211,6 +408,7 @@
      listData: {
        pageIndex: 1,
        pageSize: 10,
        name: ''
      },
      pickerOptions: {
        disabledDate(time) {
@@ -233,6 +431,16 @@
      activeName2: '',
      activeName3: '',
      wareTableFlag: null,
      multipleDelete: [],
      dialogVisible: false,
      attributeData: [],
      listLoader: {
        id: null,
        pageSize: 1,
        pageSize: 10,
      },
      count1: 0,
      dbTableData: [],
    };
  },
@@ -270,23 +478,192 @@
      },
      deep: true,
      immediate: true,
    },
  },
  methods: {
   async setInsrtWareTable(){
    async detail(res) {
      var val = res.tab.split(".");
      const data = await dataLoader_selectFields({
        ns: val[0],
        tab: val[1]
      })
      if (data.code != 200) {
        this.$message.error('字段列表调用失败');
        return
      }
      var val_data= data.result;
      for(var i in val_data){
        if(val_data[i].alias.indexOf('ID') != -1){
         val_data[i].alias = val_data[i].alias.replace('ID','')
        }
      }
      this.dialogVisible = true;
      this.attributeData = val_data;
      this.listLoader = {
        id: res.id,
        pageIndex: 1,
        pageSize: 10,
      }
      this.getDataLoaderSelectDbData();
    },
    async getDataLoaderSelectDbData() {
      const data1 = await dataLoader_selectDbData(this.listLoader);
      if (data1.code != 200) {
        this.$message.error('字段列表调用失败');
        return
      }
      var val = data1.result;
      for(var i in val){
       val[i].createuser = val[i].createName;
       val[i].depid= val[i].depName;
       val[i].dirid= val[i].dirName;
       val[i].verid= val[i].verName;
       val[i].updateuser= val[i].updateName;
       if(val[i].createtime != null){
          val[i].createtime= this.changetimeLayer(val[i].createtime )
       }
       if(val[i].updatetime != null){
          val[i].updatetime= this.changetimeLayer(val[i].updatetime )
       }
      }
      this.dbTableData = data1.result;
      this.count1 = data1.count;
    },
    handleLoaderSizeChange(val) {
      this.listLoader.pageIndex = 1;
      this.listLoader.pageSize = val;
      this.getDataLoaderSelectDbData();
    },
    handleLoaderCurrentChange(val) {
      this.listLoader.pageIndex = val;
      this.getDataLoaderSelectDbData();
    },
changetimeLayer(res){
      var time = new Date(res );
     var y = time.getFullYear();
      var m = time.getMonth() + 1;
      var d = time.getDate();
      var h = time.getHours();
      var mm = time.getMinutes();
      var s = time.getSeconds();
      return (
        y +
        '-' +
        this.add0(m) +
        '-' +
        this.add0(d) +
        ' ' +
        h +
        ':' +
        mm +
        ':' +
        s
      );
},
    changetimeFile(res) {
     return this.changetimeLayer(res.createTime)
    },
    //格式化时间
    add0(m) {
      return m < 10 ? '0' + m : m;
    },
    setWarehouseSearch() {
      this.listData = {
        pageIndex: 1,
        pageSize: 10,
        name: this.formWarehousing.name,
      }
      this.getAllWareTable();
    },
    async setWarehouseDel() {
      var std = [];
      for (var i in this.multipleDelete) {
        std.push(this.multipleDelete[i].id);
      }
      const res = await dataLoader_deleteMetas({ ids: std.toString() })
      if (res.code != 200) {
        this.$message.error('删除失败');
      } else {
        this.$message({
          message: '删除成功',
          type: 'success'
        });
        this.listData.pageIndex = 1;
        this.listData.pageSize = 10;
        this.getAllWareTable();
      }
    },
    handleDelteChange(val) {
      this.multipleDelete = val;
    },
    setWarehouseReset() {
      this.formWarehousing.name = '';
      this.listData = {
        pageIndex: 1,
        pageSize: 10,
        name: null,
      }
      this.getAllWareTable();
    },
    handleTabClick(tab, event) {
      if (this.activeTabName == 'second') {
        this.setWarehouseReset();
      }
    },
    handleSizeChange(val) {
      this.listData.pageIndex = 1;
      this.listData.pageSize = val;
      this.getAllWareTable();
    },
    handleCurrentChange(val) {
      this.listData.pageIndex = val;
      this.getAllWareTable();
    },
    //获取入库数据列表
    async getAllWareTable() {
      const res = await dataLoader_selectByPageForUpload(this.listData);
      if (res.code != 200) {
        this.$message.error('列表数据获取失败');
        return;
      }
      this.count = res.count;
      this.waretableData = res.result;
    },
    //大小值改變
    changeSizeFile(row, column, cellValue, index) {
      if (cellValue >= 1024) {
        return parseFloat(cellValue / 1204).toFixed(3) + "GB"
      } else {
        return cellValue + "MB"
      }
    },
    setInsrtWareTableClose() {
      this.dialogWarehousing = false;
      this.setClearAttartch();
    },
    async setInsrtWareTable() {
      var obj = {
                  metaEntity: this.formInline,
                  fileEntities: this.tableWareThree
                };
                debugger
            const res = await dataUploadInsertFiles(JSON.stringify(obj));
             if (res.code != 200) {
        metaEntity: this.formInline,
        fileEntities: this.tableData,
        tabEntities: this.tableWareThree
      };
      const res = await dataLoader_InsertFiles(JSON.stringify(obj));
      if (res.code != 200) {
        this.$message.error('数据入库失败');
        return;
      }else{
        debugger
         this.$message({
      } else {
        this.$message({
          message: '数据入库成功',
          type: 'success'
        });
@@ -296,13 +673,13 @@
      }
    },
    setClearAttartch(){
       this.activeName = '';
    setClearAttartch() {
      this.activeName = '';
      this.activeName2 = '';
      this.activeName3 = '';
      this.tableWareThree =[];
      this.tableWareTwo=[];
      this.tableWareOne=[];
      this.tableWareThree = [];
      this.tableWareTwo = [];
      this.tableWareOne = [];
    },
    autoMatchWare() {
      var val1 = this.tableWareOne;
@@ -315,24 +692,27 @@
          if (val2[j].tab == stdTab) {
            std.push(val1[i].tab)
            val1[i].entity = val2[j].entity;
            val1[i].tabDesc= val2[j].tabDesc;
            val1[i].tabDesc = val2[j].tabDesc;
              val1[i].tabs=val2[j].tab;
               val1[i].ns=val2[j].ns;
            this.tableWareThree.push(val1[i]);
          }
        }
      }
 std.forEach(item => {
          this.tableWareOne = this.tableWareOne.filter(items => items.tab!== item);
        });
      std.forEach(item => {
        this.tableWareOne = this.tableWareOne.filter(items => items.tab !== item);
      });
    },
    setSplitWare(res) {
      if (res.indexOf(".shp") != -1) {
        return res.split(".shp").join("");
      }else if (res.indexOf(".mdb") != -1){
 return res.split(".mdb").join("");
      }else if (res.indexOf(".gdb") != -1){
 return res.split(".gdb").join("");
      }else{
      } else if (res.indexOf(".mdb") != -1) {
        return res.split(".mdb").join("");
      } else if (res.indexOf(".gdb") != -1) {
        return res.split(".gdb").join("");
      } else {
        return res;
      }
    },
@@ -348,29 +728,35 @@
      var res = this.wareTableFlag;
      var value1 = this.tableWareThree[res];
      value1.entity = null;
        value1.tabDesc= null;
      this.tableWareOne.push(value1);
      this.tableWareThree.splice(res, 1)
      this.activeName = '';
      this.activeName2 = '';
      this.activeName3 = '';
      value1.tabDesc = null;
      if (this.tableWareOne.indexOf(value1) != -1) {
      } else {
        this.tableWareOne.push(value1);
        this.tableWareThree.splice(res, 1)
        this.activeName = '';
        this.activeName2 = '';
        this.activeName3 = '';
      }
    },
    setWareTableChangeRight() {
      this.wareSelectOne.entity = this.wareSelectTwo.entity;
          this.wareSelectOne.tabDesc = this.wareSelectTwo.tabDesc;
      this.wareSelectOne.tabDesc = this.wareSelectTwo.tabDesc;
      if (this.tableWareThree.indexOf(this.wareSelectOne) != -1) {
      this.tableWareThree.push(this.wareSelectOne)
      this.tableWareOne.forEach((value, index, array) => {
        if (value.tab == this.wareSelectOne.tab) {
          this.tableWareOne.splice(index, 1)
        }
      })
   this.activeName = '';
      this.activeName2 = '';
      this.activeName3 = '';
      } else {
        this.tableWareThree.push(this.wareSelectOne)
        this.tableWareOne.forEach((value, index, array) => {
          if (value.tab == this.wareSelectOne.tab) {
            this.tableWareOne.splice(index, 1)
          }
        })
        this.activeName = '';
        this.activeName2 = '';
        this.activeName3 = '';
      }
    },
    singleElection(row) {
      this.wareSelectOne = row;
@@ -406,7 +792,7 @@
        this.$message.error('数据请求失败');
        return;
      }
      debugger
      this.tableWareOne = data.result;
    },
    //数据删除
@@ -416,13 +802,14 @@
      const res = await dataUploadDeleteFiles(data);
      if (res.code != 200) {
        this.$message.error('删除失败');
        this.handlerLoading(false);
        return;
      }
      this.getFileLength();
      this.handlerLoading(false);
    },
    //数据入库
    async setFileWare() {
@@ -440,7 +827,7 @@
      //             fileEntities: this.multipleSelection
      //           };
      //       const res = await dataUploadInsertFiles(JSON.stringify(obj));
      //       const res = await dataLoader_InsertFiles(JSON.stringify(obj));
      //        if (res.code != 200) {
      //       this.$message.error('文件入库失败');
@@ -488,11 +875,15 @@
          this.getFileLength();
          alert("code = " + rs.code + ", msg = " + rs.msg + ", result = " + rs.result);
          this.$message({
            message: '数据上传成功',
            type: 'success'
          });
      this.clearFileSelect();
        },
        error: (rs) => {
          alert("上传文件失败!");
          this.$message.error('数据上传失败');
           this.clearFileSelect();
        }
      });
@@ -526,16 +917,16 @@
    },
    //分页控制
    handleSizeChange(res) {
      this.listData.pageIndex = 1;
      this.listData.pageSize = res;
      this.setViewTable();
    },
    handleCurrentChange(res) {
      this.listData.pageIndex = res;
      this.setViewTable();
    },
    // //分页控制
    // handleSizeChange(res) {
    //   this.listData.pageIndex = 1;
    //   this.listData.pageSize = res;
    //   this.setViewTable();
    // },
    // handleCurrentChange(res) {
    //   this.listData.pageIndex = res;
    //   this.setViewTable();
    // },
    //表格选中事件
    handleSelectionChange(res) {
      this.multipleSelection = res;
@@ -544,9 +935,16 @@
    fileSelect() {
      $("#uploadfile").click();
    },
    handleFileChange() {
      var fs = document.getElementById("uploadfile");
    handleFileChange(event) {
      // var fs = document.getElementById("uploadfile");
      var f = event.currentTarget.files[0]
      this.formInline.fileName = f.name;
    },
    clearFileSelect(){
   this.formInline.fileName="未选择文件";
    document.getElementById("uploadfile").value = "";
    },
    //当前时间获取
    timeDefault() {
@@ -606,7 +1004,7 @@
    async getselectVerByDirid() {
      this.verOption = [];
      this.formInline.verid = "";
      const res = await dataLoader_selectVerByDirid(this.formInline.dirid);
      const res = await dataLoader_selectVerByDirid({ dirid: this.formInline.dirid });
      if (res.code != 200) {
        this.$message.error('版本列表获取失败');
@@ -662,8 +1060,8 @@
      border-radius: 5px;
    }
    .contentTable {
      width: 98%;
      height: 72%;
      width: 97%;
      height: 400px;
      border: 1px solid white;
      padding: 1%;
      border-radius: 5px;
@@ -724,42 +1122,6 @@
          box-shadow: 0px 1px 3px #216fe6 inset;
          border-radius: 6px;
          background-color: #216fe6;
        }
      }
      .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;
        }
      }
    }
@@ -915,5 +1277,47 @@
      background-color: #216fe6;
    }
  }
  /deep/.el-tabs__active-bar {
    background: #409eff;
  }
  /deep/ .el-tabs__item {
    color: #409eff;
  }
  .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;
    }
  }
}
</style>