<el-button
v-waves
class="filter-item"
type="primary"
icon="el-icon-printer"
@click="handleExportList"
>
导出
</el-button>
导出按钮
handleExportList() { //导出触发
const loading = this.$loading({
lock: true,
text: '正在导出...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
fetchList( //当前页面查询方法
{
page: 1,
limit: -1
},
this.listQuery, 查询条件
).then((response) => {
import('@/vendor/Export2Excel').then((excel) => {
const tHeader = [ //表头
'设备编码',
'设备名称',
'资产状态',
'资产性质',
'库存时间',
'存放位置',
'管理部门',
'资产管理员',
'状态变更时间',
'闲置类型',
'闲置天数'
]
const filterVal = [ //对应字段
'deviceCode',
'deviceName',
'stateName',
'assetNatureName',
'inRepositoryTime',
'useAreaName',
'manageDeptName',
'assetManageName',
'statusChangeDate',
'idleType',
'idleDays'
]
const data = this.formatJson(filterVal, response.data.data)
loading.close()
excel.export_json_to_excel({
header: tHeader,
data,
filename: '闲置资产详细信息',
autoWidth: this.autoWidth,
bookType: this.bookType
})
})
})
},
formatJson(filterVal, jsonData) {
return jsonData.map((v) =>
filterVal.map((j) => {
if (j === 'users') {
let userNames = ''
v[j].filter((user) => {
userNames = userNames + ',' + user.userName
})
return userNames.substring(1)
} else if (j === 'maintainers') {
let mtNames = ''
v[j].filter((user) => {
mtNames = mtNames + ',' + user.userName
})
return mtNames.substring(1)
} else {
return v[j]
}
}),
)
},
方法