From 17099c410f14f2f7ad01f4440deb30224d3a3b83 Mon Sep 17 00:00:00 2001 From: QU Jixiang Date: Wed, 19 Apr 2023 23:05:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BA=86=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=AE=A1=E7=90=86=E8=A1=A8=E5=AF=BC=E5=87=BA=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=95=B0=E6=8D=AE=E9=87=8D=E5=A4=8D=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复了用户管理界面导出Excel表之后,用户数据重复,一共导出了两份的问题。 问题:el-table的fixed属性将某一列固定后,element-ui会创建table dom,通过一个隐藏一个显示来实现交互结果,所以导出整个el-table时,就会将显示的和隐藏的的两个table数据都导出,导致数据重复。 --- vue/views/UserManager/UserMan.vue | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/vue/views/UserManager/UserMan.vue b/vue/views/UserManager/UserMan.vue index 7a19b51d..cd775b05 100644 --- a/vue/views/UserManager/UserMan.vue +++ b/vue/views/UserManager/UserMan.vue @@ -169,7 +169,17 @@ export default { }, handleExport() { const xlsxParam = { raw: true }; - const t2b = XLSX.utils.table_to_book(document.querySelector('#exportTab'), xlsxParam); + const exportTabElement = document.querySelector('#exportTab'); + const fixed = exportTabElement.querySelector(".el-table__fixed") || exportTabElement.querySelector(".el-table__fixed-right"); + let t2b = null; + if (fixed) { + const parentNode = fixed.parentNode; + parentNode.removeChild(fixed); + t2b = XLSX.utils.table_to_book(exportTabElement, xlsxParam); + parentNode.appendChild(fixed); + } else { + t2b = XLSX.utils.table_to_book(exportTabElement, xlsxParam); + } const userExcel = XLSX.write(t2b, { bookType: 'xlsx', bookSST: true, type: 'array' }); try { FileSaver.saveAs( -- Gitee