# 数据导出
数据导出默认关闭
# 开启导出功能
# 1. 安装插件(服务端导出不需要)
npm i @d2-projects/vue-table-export --save
vue.use
import Vue from 'vue'
import pluginExport from '@d2-projects/vue-table-export'
Vue.use(pluginExport)
# 2. 开启数据导出
const crudOptions={
pageOptions:{
export:{
local:true,//本地导出,false为服务端导出
}
}
}
# 3. toolbar 增加导出按钮
<!-- 追加导出属性与事件 -->
<div slot="header">
<crud-toolbar ... :export="true" @export="handleExport"/>
</div>
<!-- 推荐直接简写成如下方式 -->
<div slot="header">
<crud-toolbar v-bind="_crudToolbarProps" v-on="_crudToolbarListeners"/>
</div>
# 服务端导出
# 1. 配置
const crudOptions={
pageOptions:{
export:{
local:false,//配置为服务端导出
}
}
}
# 2. 自定义服务端导出方法
服务端导出请自由发挥
- 数据量比较小的话,可以组装好参数,通过window.open(),直接打开服务端导出url
- 数据量比较大的话,可以通过request提交导出请求,然后提示用户您的导出任务正在处理
/**
* 服务端导出数据
* @param context={
search: this.crud.searchOptions.form, //当前查询参数
columns: this.crud.columns, //当前字段
data: this.crud.list // 当前数据
* }
*/
doServerExport (context) {
//请自由发挥
},
# api
# 配置参数
以下是可选配置参数
const crudOptions={
pageOptions:{
export:{
local:true,//本地导出,false为服务端导出
title:'数据导出',//导出的文件名
type:'excel', //导出文件类型,可选: [ csv | excel ]
formatter(row, context){
// 数据格式化
// row.xxx = parseInt(row.xxx)
},
columnBuilder(col, context){
// 列设置
// col.width=20 //设置列宽
},
// 以下是 vue-table-export 插件的参数
// excel
header:'',// 第一行
merges: undefined, // 合并单元格
// csv
noHeader: undefined, // 不导出表头
separator:',', // 数据分隔符 非 String ,
quoted:false //每项数据是否加引号
}
}
}
更多导出插件参数请参考:vue-table-export文档 (opens new window)