62 lines
1.3 KiB
Vue
62 lines
1.3 KiB
Vue
|
|
<template>
|
||
|
|
<d2-container>
|
||
|
|
<template slot="header">导出表格</template>
|
||
|
|
<div class="d2-mb">
|
||
|
|
<el-button type="primary" @click="exportCsv">
|
||
|
|
<d2-icon name="download"/>
|
||
|
|
导出 CSV
|
||
|
|
</el-button>
|
||
|
|
<el-button type="primary" @click="exportExcel">
|
||
|
|
<d2-icon name="download"/>
|
||
|
|
导出 Excel
|
||
|
|
</el-button>
|
||
|
|
</div>
|
||
|
|
<el-table v-bind="table" style="width: 100%">
|
||
|
|
<el-table-column
|
||
|
|
v-for="(item, index) in table.columns"
|
||
|
|
:key="index"
|
||
|
|
:prop="item.prop"
|
||
|
|
:label="item.label">
|
||
|
|
</el-table-column>
|
||
|
|
</el-table>
|
||
|
|
</d2-container>
|
||
|
|
</template>
|
||
|
|
|
||
|
|
<script>
|
||
|
|
// 假数据
|
||
|
|
import table from './data'
|
||
|
|
export default {
|
||
|
|
data () {
|
||
|
|
return {
|
||
|
|
table: {
|
||
|
|
columns: table.columns,
|
||
|
|
data: table.data,
|
||
|
|
size: 'mini',
|
||
|
|
stripe: true,
|
||
|
|
border: true
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
methods: {
|
||
|
|
exportCsv (params = {}) {
|
||
|
|
this.$export.csv({
|
||
|
|
columns: this.table.columns,
|
||
|
|
data: this.table.data
|
||
|
|
})
|
||
|
|
.then(() => {
|
||
|
|
this.$message('导出CSV成功')
|
||
|
|
})
|
||
|
|
},
|
||
|
|
exportExcel () {
|
||
|
|
this.$export.excel({
|
||
|
|
columns: this.table.columns,
|
||
|
|
data: this.table.data
|
||
|
|
})
|
||
|
|
.then(() => {
|
||
|
|
this.$message('导出表格成功')
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
</script>
|