管道基础大数据平台系统开发-【前端】-新系統界面
1
Surpriseplus
2022-12-06 938493192a9a112e5eef0d98b46a30569ce98a59
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
@@ -79,6 +82,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 +101,6 @@
      <div class="contentTable">
         <el-table
     :data="tableData"
        border
        style="width: 100%"
        height="99%"
        @selection-change="handleSelectionChange">
@@ -110,9 +118,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"
          fixed
        />
          <el-table-column
          align="center"
          prop="name"
          :label="$t('common.name')"
          fixed
        />
         <el-table-column
          align="center"
          prop="dirName"
          :label="$t('dataManage.dataUpObj.catalogue')"
          fixed
        />
         <el-table-column
          align="center"
          prop="depName"
          :label="$t('dataManage.dataUpObj.company')"
          fixed
        />
             <el-table-column
          align="center"
          prop="verName"
          :label="$t('dataManage.dataUpObj.versionNo')"
          fixed
        />
             <el-table-column
          align="center"
          prop="type"
          :label="$t('common.type')"
          fixed
        />
        <el-table-column
          align="center"
          prop="sizes"
          :label="$t('common.size')"
          fixed
          :formatter="changeSizeFile"
        />
         <el-table-column
          align="center"
          :label="$t('dataManage.dataUpObj.tableName')"
          fixed
        >
         <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,8 +252,12 @@
          :total="count"
        >
        </el-pagination>
      </div> -->
      </div>
      </div>
    </el-tab-pane>
  </el-tabs>
    </div>
    <!--  -->
@@ -162,10 +295,50 @@
  </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 +353,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 +368,11 @@
  },
  data() {
    return {
          formWarehousing: {
          name:''
      },
waretableData:[],
      activeTabName:'first',
      wareStatus: false,
      dialogWarehousing: false,
      btnStatus: 0,
@@ -211,6 +393,7 @@
      listData: {
        pageIndex: 1,
        pageSize: 10,
        name:''
      },
      pickerOptions: {
        disabledDate(time) {
@@ -233,6 +416,16 @@
      activeName2: '',
      activeName3: '',
      wareTableFlag: null,
      multipleDelete:[],
      dialogVisible:false,
      attributeData:[],
        listLoader:{
        id:null,
        pageSize:1,
        pageSize:10,
      },
      count1:0,
      dbTableData:[],
    };
  },
@@ -270,22 +463,170 @@
      },
      deep: true,
      immediate: true,
    },
  },
  methods: {
  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
      }
      this.dialogVisible = true;
      this.attributeData =data.result;
      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
      }
 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();
},
      changetimeFile(res){
//shijianchuo是整数,否则要parseInt转换
      var time = new Date(res.createTime);
      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
      );
    },
      //格式化时间
    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
                      fileEntities: this.tableData,
                  tabEntities: this.tableWareThree
                };
                debugger
            const res = await dataUploadInsertFiles(JSON.stringify(obj));
            const res = await dataLoader_InsertFiles(JSON.stringify(obj));
             if (res.code != 200) {
        this.$message.error('数据入库失败');
        return;
      }else{
        debugger
         this.$message({
          message: '数据入库成功',
          type: 'success'
@@ -349,28 +690,34 @@
      var value1 = this.tableWareThree[res];
      value1.entity = null;
        value1.tabDesc= null;
      this.tableWareOne.push(value1);
        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;
  if(this.tableWareThree.indexOf(this.wareSelectOne) != -1){
      this.tableWareThree.push(this.wareSelectOne)
  }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 +753,7 @@
        this.$message.error('数据请求失败');
        return;
      }
      debugger
      this.tableWareOne = data.result;
    },
    //数据删除
@@ -416,13 +763,14 @@
      const res = await dataUploadDeleteFiles(data);
      if (res.code != 200) {
        this.$message.error('删除失败');
           this.handlerLoading(false);
        return;
      }
      this.getFileLength();
   this.handlerLoading(false);
      this.handlerLoading(false);
    },
    //数据入库
    async setFileWare() {
@@ -440,7 +788,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 +836,14 @@
          this.getFileLength();
          alert("code = " + rs.code + ", msg = " + rs.msg + ", result = " + rs.result);
           this.$message({
          message: '数据上传成功',
          type: 'success'
        });
        },
        error: (rs) => {
          alert("上传文件失败!");
          this.$message.error('数据上传失败');
        }
      });
@@ -526,16 +877,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;
@@ -606,7 +957,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 +1013,8 @@
      border-radius: 5px;
    }
    .contentTable {
      width: 98%;
      height: 72%;
      width: 97%;
      height: 400px;
      border: 1px solid white;
      padding: 1%;
      border-radius: 5px;
@@ -726,42 +1077,7 @@
          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;
        }
      }
    }
    .primary {
      background: #409eff;
@@ -915,5 +1231,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>