ludc
2023-12-13 16913ea709f434cfebe71fd0c66b0a6931398f3e
Source/UBCS-WEB/src/components/file/main.vue
@@ -1,21 +1,22 @@
<template>
  <basic-container>
    <avue-crud :option="option"
               :table-loading="loading"
               :data="data"
               :page.sync="page"
               :before-open="beforeOpen"
               :permission="permissionList"
               v-model="form"
               ref="crud"
               @row-del="rowDel"
               @search-change="searchChange"
               @search-reset="searchReset"
               @selection-change="selectionChange"
               @current-change="currentChange"
               @size-change="sizeChange"
               @refresh-change="refreshChange"
               @on-load="onLoad">
      :table-loading="loading"
      :data="data"
      :page.sync="page"
      :before-open="beforeOpen"
      :permission="permissionList"
      v-model="form"
      ref="crud"
      @row-del="rowDel"
      @search-change="searchChange"
      @search-reset="searchReset"
      @selection-change="selectionChange"
      @row-click="selectedRowClick"
      @current-change="currentChange"
      @size-change="sizeChange"
      @refresh-change="refreshChange"
      @on-load="onLoad">
      <template slot="menuLeft">
        <el-button v-if="hasUpload" type="primary"
                   size="small"
@@ -63,17 +64,18 @@
<script>
import {getList, getFile,upload,update, remove,download} from "@/api/resource/file";
import {mapGetters} from "vuex";
import {dateFormat} from "@/util/date";
import {validatenull} from "@/util/validate";
import func from "@/util/func";
export default {
  props: ["options","visible"],
  props: ["options","visible","ownbizOid"],
  data() {
    return {
      form: {},
      query: {},
      params:{},
      loading: false,
      hasPage:this.options.hasPage||false,
      page: {
        pageSize: 10,
        currentPage: 1,
@@ -86,10 +88,10 @@
      hasDel:validatenull(this.options.hasDel) ? true :this.options.hasDel,
      hasDownload:validatenull(this.options.hasDownload) ? true :this.options.hasDownload,
      option: {
        height:(this.options.tableHeight?this.options.tableHeight:'auto'),
        height:(this.options.tableHeight?this.options.tableHeight:'300'),
        calcHeight: 30,
        tip: false,
        searchShow: true,
        searchShow: false,
        searchMenuSpan: 6,
        border: true,
        index: true,
@@ -188,6 +190,7 @@
          prop: 'attachFile',
          type: 'upload',
          dragFile: true,
          showFileList:false,
          accept: this.options.uploadAccept || 'file',
          loadText: '文件上传中,请稍等',
          span: 24,
@@ -230,6 +233,12 @@
  },
  mounted() {
  },
  watch:{
    ownbizOid(val){
      this.setParams()
      this.refreshChange()
    }
  },
  methods: {
    setFormItem(){
@@ -311,9 +320,9 @@
    setParams() {
      var queryMap = {
        currentButtonKey: 'VIEW',
        ownbizOid:this.options.ownbizOid || "share",
        ownBtmName:this.options.ownbizBtm || "share",
        fileDocClassify: this.options.fileDocClassify|| "ADMIN_SHARE",
        ownbizOid: this.options.ownbizOid || "share",
        ownBtmName: this.options.ownbizBtm || "share",
        fileDocClassify: this.options.fileDocClassify || "ADMIN_SHARE",
        fileDocClassifyName: this.options.fileDocClassifyName || "管理员共享文件"
      };
      if (this.options.where) {
@@ -329,6 +338,12 @@
      }
      this.page.pageSize = this.options.pageObject.limit;
      this.page.currentPage = this.options.pageObject.page;
      this.attachOption.column[1].data.ownbizOid = this.options.ownbizOid || "share";
      this.attachOption.column[1].data.ownBtmName = this.options.ownbizBtm || "share";
      this.attachOption.column[1].data.fileDocClassify = this.options.fileDocClassify || "ADMIN_SHARE";
      this.attachOption.column[1].data.fileDocClassifyName = this.options.fileDocClassifyName || "管理员共享文件"
    },
    handleUpload() {
      this.attachOption.column[1].data.fileOid='';
@@ -363,15 +378,26 @@
    },
    handleDownload(row) {
      //window.open(`${row.link}`);
      let data=new FormData();
      if(row && row.oid){
        download(row.oid)
        data.append('fileOids',row.oid)
        this.downloadFile(data);
      }else{
        if (this.selectionList.length === 0) {
          this.$message.warning("请选择至少一条数据");
          return;
        }
        download(this.oids);
        data.append('fileOids',this.oids)
        this.downloadFile(data);
      }
    },
    downloadFile(data){
      download(data).then(res=>{
        // console.log(res);
        if(res){
          func.downloadFileByBlobHandler(res);
        }
      });
    },
    rowDel(row) {
      this.$confirm("确定将选择文件删除?", {
@@ -380,7 +406,7 @@
        type: "warning"
      })
        .then(() => {
          return remove(row.oid,row.oid);
          return remove([row.oid]);
        })
        .then(() => {
          this.onLoad(this.page);
@@ -401,7 +427,7 @@
        type: "warning"
      })
        .then(() => {
          return remove(this.oids,this.oids);
          return remove(this.oids.split(','));
        })
        .then(() => {
          this.onLoad(this.page);
@@ -432,6 +458,13 @@
    },
    selectionChange(list) {
      this.selectionList = list;
      this.$refs.crud.setCurrentRow(this.selectionList[list.length-1]);
    },
    selectedRowClick(row){
      this.selectionList = row;
      this.$refs.crud.toggleSelection();
      this.$refs.crud.setCurrentRow(row);
      this.$refs.crud.toggleRowSelection(row); //选中当前行
    },
    selectionClear() {
      this.selectionList = [];
@@ -444,7 +477,7 @@
      this.page.pageSize = pageSize;
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
      this.onLoad(this.page);
    },
    onLoad(page, params={}) {
      this.loading = true;