From 7636cb02ab589813c19aa831832d0a66f3d17b8b Mon Sep 17 00:00:00 2001 From: xy <271556543@qq.com> Date: Tue, 30 May 2023 10:25:00 +0800 Subject: [PATCH] 2023-5-29 --- src/views/component/table.vue | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/views/component/table.vue b/src/views/component/table.vue index 46fe702..0113ce5 100644 --- a/src/views/component/table.vue +++ b/src/views/component/table.vue @@ -103,7 +103,7 @@ @@ -148,6 +148,8 @@ import { op } from "@/const/op"; import { download } from "@/utils/downloadRequest"; import { getparameter } from "@/api/system/dictionary"; import { show } from "@/api/system/customForm"; +import * as XLSX from "xlsx"; +import { saveAs } from "file-saver"; import dialoger from './dialog.vue'; import LxHeader from "@/components/LxHeader/index.vue"; @@ -197,6 +199,27 @@ export default { } }, + async exportExcel(sheetName) { + const res = await index(Object.assign(this.select,{ page: 1,page_size: 9999})) + if(res.data){ + let headers = this.form.map(i => { + return { + key: i.field, + title: i.name + } + }) + const data = res.data.map(row => headers.map(header => row[header.key])); + data.unshift(headers.map(header => header.title)); + const wb = XLSX.utils.book_new(); + const ws = XLSX.utils.aoa_to_sheet(data); + XLSX.utils.book_append_sheet(wb, ws, sheetName); + const wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' }); + saveAs(new Blob([wbout], { type: 'application/octet-stream' }), `${sheetName}.xlsx`); + } + + // download('/api/admin/base-form/index','get',Object.assign(select,{ page: 1,page_size: 9999,is_export: 1 }),`${new Date().getTime()}.xlsx`) + }, + //target要为内存地址引用类型 inputStartHandler(e,target) { let temp = target?.value.split(',')[1]