From 7001fd099ff6a27b41beed2991896ed8163011c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9F=A9=E7=A3=8A?= Date: Thu, 29 Jul 2021 15:33:31 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=80=E6=AC=BE=E7=BB=B4=E6=9D=83=E9=A1=B5?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=AF=BC=E5=87=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 抽取固定数据的表格配置为单独的ts文件 2. 退款维权的批量导出功能实现 --- src/api/order/order.ts | 2 +- src/utils/download.ts | 52 ++++++++++ .../after-sale/components/AfterSaleTable.vue | 53 +--------- .../after-sale/components/FilterForm.vue | 96 ++++++------------- .../after-sale/components/tableConfig.ts | 82 ++++++++++++++++ .../all-order/components/AllOrderTable.vue | 56 ++--------- .../order/all-order/components/FilterForm.vue | 47 ++------- .../order/all-order/components/tableConfig.ts | 83 ++++++++++++++++ 8 files changed, 268 insertions(+), 203 deletions(-) create mode 100644 src/utils/download.ts create mode 100644 src/views/order/after-sale/components/tableConfig.ts create mode 100644 src/views/order/all-order/components/tableConfig.ts diff --git a/src/api/order/order.ts b/src/api/order/order.ts index 761d0fc..5cb29c7 100644 --- a/src/api/order/order.ts +++ b/src/api/order/order.ts @@ -4,7 +4,7 @@ import { AfterSaleParams } from '@/model/order/AfterSale' // 枚举接口地址 -enum Api { +export enum Api { ORDER_TABLE = '/api/order/page', AFTER_SALE_TABLE = '/api/order/afterSale/page', AFTER_SALE_EXPORT = '/api/order/afterSale/export', diff --git a/src/utils/download.ts b/src/utils/download.ts new file mode 100644 index 0000000..9505881 --- /dev/null +++ b/src/utils/download.ts @@ -0,0 +1,52 @@ +/** + * @description: 下载文件 + * @param {string} url 下载地址 + * @param {Object} params 拼接参数 + * @return {*} + */ +import { getToken } from '@/utils/auth' + +export function downloadFile(apiUrl: string, params: any): void { + const url = spliceUrl(apiUrl, params) + const linkTag: HTMLAnchorElement = document.createElement('a') + linkTag.href = url + document.body.appendChild(linkTag) + linkTag.click() + document.body.removeChild(linkTag) +} + +/** + * @description: 拼接下载地址 + * @param {string} apiUrl + * @param {any} params + * @return {string} url 下载地址 + */ +function spliceUrl(apiUrl: string, params: any) { + // host地址 + let domainUrl: string + switch (import.meta.env.MODE) { + case 'development': + domainUrl = 'http://139.198.172.231:8490' + break + case 'production': + // domainUrl = import.meta.env.VITE_API_DOMAIN as string + domainUrl = 'http://' + window.location.host + break + default: + domainUrl = '' + break + } + + // api 和 token 拼接 + const token = getToken() + apiUrl += '?token=' + token + + // 参数拼接 + let queryUrl = '' + for (const item in params) { + queryUrl += '&' + item + '=' + params[item] + } + // 下载地址 + const url: string = domainUrl + apiUrl + queryUrl + return url +} diff --git a/src/views/order/after-sale/components/AfterSaleTable.vue b/src/views/order/after-sale/components/AfterSaleTable.vue index b3902d5..5c85896 100644 --- a/src/views/order/after-sale/components/AfterSaleTable.vue +++ b/src/views/order/after-sale/components/AfterSaleTable.vue @@ -54,6 +54,7 @@