From 9a8e89f73b9a25ff66c340c82d32e14b3b711522 Mon Sep 17 00:00:00 2001 From: jinna Date: Tue, 5 Sep 2023 18:04:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A1=B5=E9=9D=A2=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E5=90=8D=E7=A7=B0=E4=BB=A5=E5=8F=8A=E5=8E=BB=E9=99=A4?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E9=A1=B5=E7=94=A8=E6=88=B7=E5=90=8D=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E8=87=AA=E5=8A=A8=E5=9B=9E=E6=98=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/login/userlogin.vue | 4 ++-- src/views/customer/index.vue | 39 +++++++++++++++++++++++++++++++--- src/views/order/index.vue | 7 ++++-- src/views/statistics/index.vue | 7 +++++- 4 files changed, 49 insertions(+), 8 deletions(-) diff --git a/src/page/login/userlogin.vue b/src/page/login/userlogin.vue index 576bb8e..5850965 100644 --- a/src/page/login/userlogin.vue +++ b/src/page/login/userlogin.vue @@ -88,9 +88,9 @@ //角色ID roleId: "", //用户名 - username: "zt_manager", + username: "", //密码 - password: "123456", + password: "", //账号类型 type: "account", //验证码的值 diff --git a/src/views/customer/index.vue b/src/views/customer/index.vue index 4d79721..98f567d 100644 --- a/src/views/customer/index.vue +++ b/src/views/customer/index.vue @@ -229,10 +229,43 @@ export default { cancelButtonText: "取消", type: "warning" }).then(() => { - NProgress.start(); + // NProgress.start(); exportBlob(`/api/weChatUser/export?${this.website.tokenHeader}=${getToken()}${this.query.phone ? '&phone=' + this.query.phone : ''}${this.query.username ? '&username=' + this.query.username : ''}`).then(res => { - downloadXls(res.data, `用户数据${dateNow()}.xlsx`); - NProgress.done(); + // const contentDisposition = res.headers['content-disposition'] + // const fileNameRegexp = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/; + // const matches = fileNameRegexp.exec(contentDisposition); + // const filename = (matches != null && matches[1] ? decodeURIComponent(matches[1].replace(/['"]/g, '')) : '微信用户.xlsx'); + // downloadXls(res.data,filename); + // NProgress.done(); + if (!res || !res.data) { + this.$message({ + type: "error", + message: "导出失败!", + }); + return; + } + let blob = new Blob([res.data]); //response.data为后端传的流文件 + const contentDisposition = res.headers['content-disposition'] + const fileNameRegexp = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/; + const matches = fileNameRegexp.exec(contentDisposition); + const filename = (matches != null && matches[1] ? decodeURIComponent(matches[1].replace(/['"]/g, '')) : '微信用户.xlsx'); + let downloadFilename = filename; //设置导出的文件名 + if (window.navigator && window.navigator.msSaveOrOpenBlob) { + //兼容ie浏览器 + window.navigator.msSaveOrOpenBlob(blob, downloadFilename); + } else { + //谷歌,火狐等浏览器 + let url = window.URL.createObjectURL(blob); + let downloadElement = document.createElement("a"); + downloadElement.style.display = "none"; + downloadElement.href = url; + downloadElement.download = downloadFilename; + document.body.appendChild(downloadElement); + downloadElement.click(); + document.body.removeChild(downloadElement); + window.URL.revokeObjectURL(url); + } + this.$message({ type: "success", message: "导出成功!" }); }) }); }, diff --git a/src/views/order/index.vue b/src/views/order/index.vue index 7b087be..e88dcd8 100644 --- a/src/views/order/index.vue +++ b/src/views/order/index.vue @@ -778,7 +778,6 @@ export default { orderNo:this.form.orderNumber ? this.form.orderNumber : '' } exportList(params).then((res) => { - console.log(res); if (!res || !res.data) { this.$message({ type: "error", @@ -787,7 +786,11 @@ export default { return; } let blob = new Blob([res.data]); //response.data为后端传的流文件 - let downloadFilename = "订单" + ".xlsx"; //设置导出的文件名 + const contentDisposition = res.headers['content-disposition'] + const fileNameRegexp = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/; + const matches = fileNameRegexp.exec(contentDisposition); + const filename = (matches != null && matches[1] ? decodeURIComponent(matches[1].replace(/['"]/g, '')) : '订单.xlsx'); + let downloadFilename = filename; //设置导出的文件名 if (window.navigator && window.navigator.msSaveOrOpenBlob) { //兼容ie浏览器 window.navigator.msSaveOrOpenBlob(blob, downloadFilename); diff --git a/src/views/statistics/index.vue b/src/views/statistics/index.vue index 146ae6f..891449c 100644 --- a/src/views/statistics/index.vue +++ b/src/views/statistics/index.vue @@ -669,7 +669,12 @@ export default { return; } let blob = new Blob([res.data]);//response.data为后端传的流文件 - let downloadFilename = '统计' + '.xlsx';//设置导出的文件名 + const contentDisposition = res.headers['content-disposition'] + const fileNameRegexp = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/; + const matches = fileNameRegexp.exec(contentDisposition); + const filename = (matches != null && matches[1] ? decodeURIComponent(matches[1].replace(/['"]/g, '')) : '统计.xlsx'); + // console.log(filename) + let downloadFilename = filename;//设置导出的文件名 if (window.navigator && window.navigator.msSaveOrOpenBlob) { //兼容ie浏览器 window.navigator.msSaveOrOpenBlob(blob, downloadFilename)