diff --git a/src/api/user.js b/src/api/user.js index a928986..49e2777 100644 --- a/src/api/user.js +++ b/src/api/user.js @@ -7,6 +7,13 @@ export function add(data) { data }) } +export function downloadUser() { + return request({ + url: 'api/users/download', + method: 'get', + responseType: 'blob' + }) +} export function del(id) { return request({ diff --git a/src/utils/index.js b/src/utils/index.js index 2514e9a..d12da2f 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -147,3 +147,15 @@ export function removeClass(ele, cls) { ele.className = ele.className.replace(reg, ' ') } } + +export function downloadFile(obj, name, suffix) { + const url = window.URL.createObjectURL(new Blob([obj])) + const link = document.createElement('a') + link.style.display = 'none' + link.href = url + const fileName = parseTime(new Date()) + '-' + name + '.' + suffix + link.setAttribute('download', fileName) + document.body.appendChild(link) + link.click() + document.body.removeChild(link) +} diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index 51a43ba..8dba217 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -32,7 +32,7 @@
{ - const tHeader = ['ID', '用户名', '邮箱', '头像地址', '状态', '注册日期', '最后修改密码日期'] - const filterVal = ['id', 'username', 'email', 'avatar', 'enabled', 'createTime', 'lastPasswordResetTime'] - const data = this.formatJson(filterVal, this.data) - excel.export_json_to_excel({ - header: tHeader, - data, - filename: 'table-list' - }) + downloadUser().then(result => { + downloadFile(result, '用户列表', 'xls') + this.downloadLoading = false + }).catch(() => { this.downloadLoading = false }) },