管道基础大数据平台系统开发-【前端】-新系統界面
Surpriseplus
2022-11-21 ba3f4338070b930bc2b5b50bcd483aba1a37d7b9
src/views/datamanage/dataUpdata.vue
@@ -14,7 +14,7 @@
        <el-form :inline="true" :model="formInline" class="demo-form-inline">
          <el-form-item :label="$t('dataManage.dataUpObj.catalogue')">
            <el-cascader
              v-model="formInline.catalog"
              v-model="formInline.dirid"
              :options="catalogOption"
              @change="catalogChange"
              :props="cascader"
@@ -22,15 +22,25 @@
          </el-form-item>
          <el-form-item :label="$t('dataManage.dataUpObj.company')">
            <el-cascader
              v-model="formInline.company"
              v-model="formInline.depid"
              :options="companyOption"
              @change="companyChange"
              :props="cascader"
            ></el-cascader>
          </el-form-item>
          <el-form-item :label="$t('dataManage.dataUpObj.versionNo')">
              <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">
              </el-option>
              </el-select>
          </el-form-item>
          <el-form-item :label="$t('dataManage.dataUpObj.entryTime')">
            <el-date-picker
              v-model.trim="formInline.monitorTime"
              v-model.trim="formInline.gather"
              :picker-options="pickerOptions"
              type="datetime"
              placeholder="请选择"
@@ -47,11 +57,11 @@
          <el-form-item :label="$t('dataManage.dataUpObj.describe')">
            <el-input
              type="textarea"
              v-model="formInline.desc"
              v-model="formInline.descr"
              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>
@@ -85,7 +95,7 @@
     :data="tableData"
        border
        style="width: 100%"
        height="92%"
        height="99%"
        @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" />
        <el-table-column
@@ -99,11 +109,11 @@
        <el-table-column
          align="center"
          prop="name"
          :label="$t('userManage.userInfoObj.uname')"
          :label="$t('common.name')"
          fixed
        />
    </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"
@@ -114,7 +124,7 @@
          :total="count"
        >
        </el-pagination>
      </div>
      </div> -->
      </div>
    </div>
@@ -124,7 +134,8 @@
<script>
import $ from 'jquery';
import MyBread from '../../components/MyBread.vue';
import { selectdirTab, queryDepTree } from '../../api/api';
import { getToken } from '@/utils/auth';
import { selectdirTab, queryDepTree,dataUploadSelectVerByDirid,dataUploadSelectPath,dataUploadSelectFiles,dataUploadDeleteFiles,dataUploadInsertFiles} from '../../api/api';
export default {
  name: 'dataUpdata',
  components: {
@@ -135,7 +146,8 @@
      btnStatus: 0,
      count: 0,
      formInline: {
        monitorTime: '',
        verid:'',
        gather: '',
      },
      catalogOption: [],
      companyOption: [],
@@ -153,6 +165,7 @@
        },
        selectableRange: '00:00:00 - 23:59:59',
      },
      verOption: [],
      cascader: {
        label: 'name',
        value: 'id',
@@ -168,9 +181,10 @@
    this.getQueryDepTree();
    this.timeDefault();
    this.getFilePath();
  },
  watch: {
    'detailData.monitorTime': {
    'detailData.gather': {
      handler(newValue, oldValue) {
        if (newValue) {
          let date = new Date();
@@ -184,7 +198,7 @@
          ) {
            let hh1 = moment(newValue).format('HH:mm:ss');
            if (hh1 > nowDate) {
              this.detailData.monitorTime = new Date();
              this.detailData.gather = new Date();
            }
            st = nowDate;
          } else {
@@ -200,58 +214,42 @@
  },
  methods: {
    //文件上传
    setFileUpload() {
      this.handlerLoading(true);
      setTimeout(() => {
        this.handlerLoading(false);
      }, 2000);
      this.getFileLength();
    },
    //数据删除
    setFileDelete() {
  async setFileDelete() {
      this.handlerLoading(true);
    var data = JSON.stringify(this.multipleSelection);
    const res = await dataUploadDeleteFiles(data);
 if (res.code != 200) {
       this.$message.error('删除失败');
        return;
      }
  this.getFileLength();
      this.multipleSelection.forEach(item => {
        this.listTable = this.listTable.filter((items) => {
          if (items.name != item.name && item.id != items.id) {
            return items;
          }
        });
      });
      this.listData.pageIndex= 1;
      this.listData.pageSize = 10;
      this.count = this.listTable.length;
      this.setViewTable();
      this.getFileLength();
      this.handlerLoading(false);
    },
    //数据入库
    setFileWare() {
      this.handlerLoading(true);
      setTimeout(() => {
        this.handlerLoading(false);
      }, 2000);
      this.getFilePath();
    },
    //获取文件上传路径
    getFilePath() {
      for (var i = 0; i < 20; i++) {
        this.listTable.push({
          id: i,
          name: 'value' + i
        })
 async setFileWare() {
      if(this.multipleSelection.length==0){
       this.$message.error('请选择要入库的数据');
        return
      }
      this.count = this.listTable.length;
      this.listData.pageIndex = 1;
      this.listData.pageSize = 10;
      this.setViewTable();
        var obj = {
              metaEntity: this.formInline,
              fileEntities: this.multipleSelection
            };
        const res = await dataUploadInsertFiles(JSON.stringify(obj));
         if (res.code != 200) {
        this.$message.error('文件上传数据获取失败');
        return;
      }
  this.getFileLength();
    },
    //显示表格数据
    setViewTable() {
      var index = this.listData.pageIndex - 1;
@@ -262,20 +260,68 @@
        if (this.listTable[i] != null) {
          std.push(this.listTable[i])
        }
      }
      this.tableData = std;
    },
    //获取文件上传数据
    getFileLength() {
    //文件上传
    setFileUpload() {
       this.handlerLoading(true);
      var token = getToken();
 var formData = new FormData();
      var fs = document.getElementById("uploadfile");
      for (var i = 0, c = fs.files.length; i < c; i++) {
        formData.append(fs.files[i].name, fs.files[i]); // fs.files[i].name,file
      }
 $.ajax(BASE_URL+"/dataUpload/uploadFiles?token="+token + "&path=" + this.formInline.path, {
        type: "post",
        data: formData,
        async: true,
        cache: false,
        processData: false,
        contentType: false,
        success:(rs)=> {
                 this.getFileLength();
          alert("code = " + rs.code + ", msg = " + rs.msg + ", result = " + rs.result);
        },
        error:(rs)=> {
          alert("上传文件失败!");
        }
      });
            this.handlerLoading(false);
    },
    //获取文件上传数据
   async getFileLength() {
      const res = await dataUploadSelectFiles(this.formInline.path);
      if (res.code != 200) {
        this.$message.error('文件上传数据获取失败');
        return;
      }
      if(res.result == null){
     this.count =0;
        this.setClearTableData();
      }else{
        this.count = res.result.length;
        this.tableData = res.result;
      }
      // this.listData.pageIndex = 1;
      // this.listData.pageSize = 10;
      // this.setViewTable();
    },
    //清除表格信息
    setClearTableData() {
      this.tableData = [];
      this.listTable = [];
    },
    //分页控制
    handleSizeChange(res) {
      this.listData.pageIndex = 1;
@@ -295,13 +341,8 @@
      $("#uploadfile").click();
    },
    handleFileChange() {
      var val = document.getElementById("uploadfile").files;
      if (!val || !val.length) return;
      var formData = new FormData();
      for (var i = 0; i < val.length; i++) {
        formData.append(val[i].name, val[i]);
      }
      console.log(formData)
  var fs = document.getElementById("uploadfile");
    },
    //当前时间获取
    timeDefault() {
@@ -322,7 +363,7 @@
        minutes +
        sign2 +
        seconds;
      this.formInline.monitorTime = s1;
      this.formInline.gather = s1;
    },
    //Loading显隐
@@ -331,13 +372,22 @@
    },
    //目录切换
    catalogChange(value) {
      this.formInline.catalog = value;
      this.formInline.dirid = value;
      this.getselectVerByDirid();
    },
    //单位切换
    companyChange(value) {
      this.formInline.company = value;
      this.formInline.depid = value;
    },
 //获取文件上传路径
   async getFilePath() {
      const res = await dataUploadSelectPath();
    if (res.code != 200) {
        this.$message.error('单位列表获取失败');
        return;
      }
      this.formInline.path = res.result;
    },
    //单位列表获取
    async getQueryDepTree() {
      const res = await queryDepTree();
@@ -345,9 +395,24 @@
        this.$message.error('单位列表获取失败');
        return;
      }
      this.formInline.company = 1;
      this.formInline.depid = 1;
      this.companyOption = this.treeData(res.result);
    },
    //版本号获取
    async getselectVerByDirid() {
      this.verOption=[];
      this.formInline.verid ="";
      const res =  await dataUploadSelectVerByDirid(this.formInline.dirid);
      if (res.code != 200) {
        this.$message.error('版本列表获取失败');
        return;
      }
      this.verOption = res.result;
      this.formInline.verid = res.result[0].id;
    },
    //目录列表获取
    async getSelectdirTab() {
      const res = await selectdirTab();
@@ -355,8 +420,9 @@
        this.$message.error('目录列表获取失败');
        return;
      }
      this.formInline.catalog = 1;
      this.formInline.dirid = 1;
      this.catalogOption = this.treeData(res.result);
      this.getselectVerByDirid()
    },
    //树列表生成
    treeData(source) {
@@ -485,11 +551,11 @@
        /deep/.btn-next {
          background: transparent;
        }
         /deep/.btn-next i {
          color:white;
        /deep/.btn-next i {
          color: white;
        }
        /deep/.btn-prev i {
          color:white;
          color: white;
        }
      }
    }