diff --git a/src/api/sales/order.js b/src/api/sales/order.js index 1dfc663..10dd777 100644 --- a/src/api/sales/order.js +++ b/src/api/sales/order.js @@ -6,6 +6,19 @@ export const search = (params) => { params, }); }; +export const exportAll = (params) => { + return request({ + url: '/mall/trade/admin/tradeOrder/page', + method: 'get', + params: { + ...params, + export: true, + }, + headers: { + download: true, + }, + }); +}; export const detail = (id) => { return request({ url: '/mall/trade/admin/tradeOrder/' + id, diff --git a/src/api/sales/service.js b/src/api/sales/service.js index 8b78808..75368c4 100644 --- a/src/api/sales/service.js +++ b/src/api/sales/service.js @@ -6,6 +6,19 @@ export const search = (params) => { params, }); }; +export const exportAll = (params) => { + return request({ + url: '/mall/trade/admin/refundOrder/page', + method: 'get', + params: { + ...params, + export: true, + }, + headers: { + download: true, + }, + }); +}; export const refundDetail = (id) => { return request({ url: '/mall/trade/admin/refundOrder/refundInfo/' + id, diff --git a/src/store/modules/sales/order.js b/src/store/modules/sales/order.js index a0f4772..2494687 100644 --- a/src/store/modules/sales/order.js +++ b/src/store/modules/sales/order.js @@ -1,5 +1,6 @@ import * as api from '@/api/sales/order.js'; import { ElMessage, ElMessageBox } from '@/plugins/element-plus'; +import { excel } from '@/plugins/global-api'; const state = () => ({ code: 'OrderManagement', condition: {}, @@ -65,6 +66,25 @@ const actions = { } return res; }, + export: async ({ state }) => { + let data = { ...state.condition, pageIndex: 1, length: 9999 }; + if (data.dateRange?.length) { + data.startTime = data.dateRange[0]; + data.endTime = data.dateRange[1]; + } + delete data.dateRange; + data.orderStatus = (data.orderStatus || []).join(','); + if (data.orderStatus === '0') { + delete data.orderStatus; + } + let res = await api.exportAll(data); + if (res) { + excel('订单导出.xlsx', res); + } else { + ElMessage.error('导出订单列表失败'); + } + return res; + }, load: async ({ commit, state }) => { commit('setOpts', { ...state.opts, diff --git a/src/store/modules/sales/service.js b/src/store/modules/sales/service.js index 320065c..0d9f54a 100644 --- a/src/store/modules/sales/service.js +++ b/src/store/modules/sales/service.js @@ -1,5 +1,6 @@ import * as api from '@/api/sales/service.js'; import { ElMessage } from '@/plugins/element-plus'; +import { excel } from '@/plugins/global-api'; const state = () => ({ code: 'ServiceOrderManagement', condition: {}, @@ -92,6 +93,25 @@ const actions = { } return res; }, + export: async ({ state }) => { + let data = { ...state.condition, pageIndex: 1, length: 9999 }; + if (data.dateRange?.length) { + data.applyStartTime = data.dateRange[0]; + data.applyEndTime = data.dateRange[1]; + } + delete data.dateRange; + data.refundStatus = (data.refundStatus || []).join(','); + if (data.refundStatus === '0') { + delete data.refundStatus; + } + let res = await api.exportAll(data); + if (res) { + excel('售后服务单导出.xlsx', res); + } else { + ElMessage.error('导出售后服务单列表失败'); + } + return res; + }, load: async ({ commit, state }) => { commit('setOpts', { ...state.opts, diff --git a/src/utils/request.js b/src/utils/request.js index 01c357a..891ac68 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -9,6 +9,9 @@ const handleResponse = async ({ config: requestConfig, data, status }) => { .get('key') .replace('${filename}', requestConfig.data.get('name'))}`; } + if (requestConfig.headers.download === true) { + return data; + } let code = data.code || status; console.info('[api]', code, requestConfig.method, requestConfig.url, data.data); if (code !== 'SUCCESS') { diff --git a/src/views/sales/order/index.vue b/src/views/sales/order/index.vue index 468ee66..840256d 100644 --- a/src/views/sales/order/index.vue +++ b/src/views/sales/order/index.vue @@ -142,7 +142,9 @@ /* 导出订单 */ const handleExport = async () => { - console.info('export'); + loading.value = true; + await store.dispatch('order/export'); + loading.value = false; }; /* 查看详情 */ diff --git a/src/views/sales/service/index.vue b/src/views/sales/service/index.vue index 15bbad9..8a89482 100644 --- a/src/views/sales/service/index.vue +++ b/src/views/sales/service/index.vue @@ -135,7 +135,9 @@ /* 导出订单 */ const handleExport = async () => { - console.info('export'); + loading.value = true; + await store.dispatch('service/export'); + loading.value = false; }; /* 查看详情 */