田源
2023-07-26 9675f1491ef23c4c6f69cb83cbf6de3fd6dac61b
Source/UBCS-WEB/src/components/Master/MasterTransfer.vue
@@ -1,8 +1,6 @@
<template>
<el-dialog :visible.sync="dialogPush" append-to-body  :close-on-click-modal="false"  @close="recoverPage" title="导出">
  <div style="margin-bottom: 10px">
    <el-button type="success"
               @click="handleExcel">下载 多级表头excel</el-button>
    <el-radio-group v-model="radio">
      <el-radio :label="0">选择</el-radio>
      <el-radio :label="1">全部</el-radio>
@@ -20,13 +18,18 @@
    :data="data">
  </el-transfer>
  </div>
  <div style="display: flex;justify-content: flex-end;">
    <el-button size="small" plain type="success" @click="handleExcel">确定</el-button>
    <el-button size="small" plain >取消</el-button>
  </div>
</el-dialog>
</template>
<script>
import {exportCode} from '@/api/GetItem'
export default {
name: "MasterTransfer",
  props:['visible','tableHeadData','codeClassifyOid','tableData'],
  props:['visible','tableHeadData','codeClassifyOid','tableData','selectRow'],
  data(){
    return {
      data: [],
@@ -41,7 +44,7 @@
      option:{
        title: '文档标题',
        column: [{
          label: '多级表头',
          label: '主数据',
          prop: 'header',
          children: []
        }],
@@ -106,11 +109,57 @@
      this.$emit('update:visible', false);
    },
    handleExcel(){
      this.$Export.excel({
        title: this.option.title,
        columns: this.option.column,
        data: this.option.data
      });
      // this.$Export.excel({
      //   title: this.option.title,
      //   columns: this.option.column,
      //   data: this.option.data
      // });
      if(this.radio === 0){
        if(this.selectRow.length<=0){
          this.$message.warning('请选择要导出的模板')
        }else {
          //已选择多选
          const selectList=[]
          //已选择属性
          let exportArr={}
          const ids = this.selectRow.map(item => item.oid).join(',')
          this.selectRow.forEach(item=>{
            selectList.push(
             item.oid
            )
          })
          this.value.map(index => this.tableHeadData[index].prop).forEach((item, index) => {
            exportArr[`attrIdIndexMap[${index}]`] = item
          })
          exportCode({codeClassifyOid:this.codeClassifyOid,'conditionMap[oid]':ids,...exportArr}).then(res=>{
            console.log('res',res)
            const filename = '下载.xlsx'; // 下载的文件名
            const blob = new Blob([res.data], { type: 'application/vnd.ms-excel' });
            const a = document.createElement('a');
            const url = window.URL.createObjectURL(blob);
            a.href = url;
            a.download = filename;
            a.style.display = 'none';
            document.body.appendChild(a);
            a.click();
            document.body.removeChild(a);
            window.URL.revokeObjectURL(url);
            // const filename = '下载.xlsx'; // 下载的文件名
            // const blob = new Blob([response.data], { type: 'application/vnd.ms-excel' });
            //
            // const url = window.URL.createObjectURL(blob);
            // const link = document.createElement('a');
            // link.href = url;
            // link.setAttribute('download', filename);
            // document.body.appendChild(link);
            // link.click();
            // document.body.removeChild(link);
            // URL.revokeObjectURL(url);
          })
        }
      };
    },
  }
}