一、新框架导出要求:1、导出数据带时间戳的,要转化为日期格式,状态为1,0;要转为试用状态和付费使用状态。
2、导出,只需要导出需要的栏目,像多选模式和操作栏目不需要。
3、需要导出所有数据,不能单页导出(也要根据搜索结果导出)
二、代码如下:
a、按钮
<Button type="primary" size="large" @click="exportData"><Icon type="ios-download-outline"></Icon> 单位管理导出</Button>
<Table ref="tables" border editable search-place="top" :data="tableData" :size="size" :columns="columns" @on-select="handleSelectionChangeFunc" />
b、方法
//多页面导出功能
getExportAllDate(){ //获得导出的所有数据
this.formItem.create_time=[Date.parse(this.formItem.create_time[0]),Date.parse(this.formItem.create_time[1])];
this.formItem.end_time=[Date.parse(this.formItem.end_time[0]),Date.parse(this.formItem.end_time[1])];
var data = { ...this.formItem};
var getAllUrl = ApiBaseUrl + '/ecs.unitManagement.enter/.......';
this.$axios.get(getAllUrl,{params: data}).then(response => {
const res = response.data;
switch(res.code)
{
case 200:
let resdata = res.data.list;
if(resdata){
//把获得的数据赋值ExportAllDateArr,导出data参数上
this.ExportAllDateArr = resdata;
}
break;
case 401:
this.MessageError(res.error);
break;
case 402:
this.MessageError(res.error,1 , 5);
break;
default:
this.MessageError(res.error);
break
}
}).catch(err => {
this.MessageError("获取失败")
})
},
exportData(){
let columnsLength=this.columns.length;
this.$refs.tables.exportCsv({
filename: '单位管理导出', //导出表格名称
original: false,//true为导出是页面表格的原始数据,false为可以导出使用sortable: true后的数据。但是,前提条件为data 参数指向table的:data
columns: this.columns.filter(function(col, index){ //index指向列,0表示第一列,以下表示,输出第二列到倒数第二列
return index=>1 && index< columnsLength-1;
}),
data: this.ExportAllDateArr.filter((data, index) => this.changeEx(data)) //this.ExportAllDateArr为getExportAllDate()获得 });
},
changeEx(data){ //改变导出数据方法
let end_time = parseInt(data.end_time) > 0 ? parseInt(data.end_time+"000"): 0 ;
let endTimeData = end_time == 0 ? "":moment(end_time).format('YYYY-MM-DD');
data.end_time= endTimeData != '' ? endTimeData:"";
data.status = data.status == 0 ? "试用中":"付费使用中";
return data;
},