diff --git a/nc_wms_web/src/api/business/wms/base/address/address-api.ts b/nc_wms_web/src/api/business/wms/base/address/address-api.ts index e462acf..c079fa2 100644 --- a/nc_wms_web/src/api/business/wms/base/address/address-api.ts +++ b/nc_wms_web/src/api/business/wms/base/address/address-api.ts @@ -5,7 +5,7 @@ * @Date: 2024-12-26 15:35:23 * @Copyright 友仓 */ -import {postRequest, getRequest, getDownload2} from '/@/lib/axios'; +import {postRequest, getRequest, postDownload2} from '/@/lib/axios'; export const addressApi = { @@ -59,20 +59,11 @@ export const addressApi = { return postRequest('/address/importAddress', file); }, - - createExportTask: () => { - return postRequest('/address/createExportTask', {}); - }, - - getExportProgress: (taskId: string) => { - return getRequest(`/address/progress/${taskId}`, {}); - }, - /** * 导出 @author hj */ - exportAddress: (taskId: string,signal?: AbortSignal) => { - return getDownload2(`/address/exportAddress/${taskId}`, {},signal); + exportAddress: (taskId: string, param: any, signal?: AbortSignal) => { + return postDownload2(`/address/exportAddress/${taskId}`, param, signal); } }; diff --git a/nc_wms_web/src/api/business/wms/base/item/item-api.ts b/nc_wms_web/src/api/business/wms/base/item/item-api.ts index b87b931..218d3e4 100644 --- a/nc_wms_web/src/api/business/wms/base/item/item-api.ts +++ b/nc_wms_web/src/api/business/wms/base/item/item-api.ts @@ -5,7 +5,7 @@ * @Date: 2024-11-25 17:08:18 * @Copyright 友仓 */ -import {postRequest, getRequest, getDownload2} from '/@/lib/axios'; +import {postRequest, getRequest, postDownload2} from '/@/lib/axios'; export const itemApi = { @@ -62,8 +62,7 @@ export const itemApi = { /** * 导出 @author hj */ - exportItems: (taskId: string,signal?: AbortSignal) => { - return getDownload2(`/item/exportItems/${taskId}`,{},signal); + exportItems: (taskId: string, param: any, signal?: AbortSignal) => { + return postDownload2(`/item/exportItems/${taskId}`, param, signal); }, - }; diff --git a/nc_wms_web/src/api/business/wms/export/export-api.ts b/nc_wms_web/src/api/business/wms/export/export-api.ts new file mode 100644 index 0000000..e4fb88d --- /dev/null +++ b/nc_wms_web/src/api/business/wms/export/export-api.ts @@ -0,0 +1,14 @@ +import {postRequest, getRequest,} from '/@/lib/axios'; + +export const exportApi = { + + + createExportTask: () => { + return postRequest('/export/createExportTask', {}); + }, + + getExportProgress: (taskId: string) => { + return getRequest(`/export/progress/${taskId}`, {}); + }, + +} diff --git a/nc_wms_web/src/lib/axios.ts b/nc_wms_web/src/lib/axios.ts index 962a734..489215c 100644 --- a/nc_wms_web/src/lib/axios.ts +++ b/nc_wms_web/src/lib/axios.ts @@ -184,6 +184,22 @@ export const postDownload = function (url, data) { }); }; +export const postDownload2 = function (url: string, data: any, signal?: AbortSignal) { + request({ + method: 'post', + url, + data, + responseType: 'blob', + signal + }) + .then((data) => { + handleDownloadData(data); + }) + .catch((error) => { + handleDownloadError(error); + }); +}; + /** * 文件下载 */ @@ -201,23 +217,6 @@ export const getDownload = function (url, params) { handleDownloadError(error); }); }; - -export const getDownload2 = function (url: string, params: any, signal?: AbortSignal) { - request({ - method: 'get', - url, - params, - responseType: 'blob', - signal // 注入取消信号 - }) - .then((data) => { - handleDownloadData(data); - }) - .catch((error) => { - message.success('取消成功'); - }); -}; - function handleDownloadError(error) { if (error instanceof Blob) { const fileReader = new FileReader(); diff --git a/nc_wms_web/src/views/business/wms/base/address/address-list.vue b/nc_wms_web/src/views/business/wms/base/address/address-list.vue index bf62a62..d5dce1b 100644 --- a/nc_wms_web/src/views/business/wms/base/address/address-list.vue +++ b/nc_wms_web/src/views/business/wms/base/address/address-list.vue @@ -197,6 +197,7 @@ import {message, Modal, UploadFile} from 'ant-design-vue'; import {LoadingOutlined} from '@ant-design/icons-vue'; import {SmartLoading} from '/@/components/framework/smart-loading'; import {addressApi} from '/@/api/business/wms/base/address/address-api'; +import {exportApi} from '/@/api/business/wms/export/export-api' import {PAGE_SIZE_OPTIONS} from '/@/constants/common-const'; import {smartSentry} from '/@/lib/smart-sentry'; import TableOperator from '/@/components/support/table-operator/index.vue'; @@ -462,12 +463,12 @@ const onExportAddress = async () => { resetProgressState(); // 重置进度状态 // 创建导出任务 - const {data: taskId} = await addressApi.createExportTask(); + const {data: taskId} = await exportApi.createExportTask(); currentTaskId.value = taskId; // 发起导出请求 try { - addressApi.exportAddress(taskId, abortController.value.signal) + addressApi.exportAddress(taskId, queryForm, abortController.value.signal) } catch (error) { handleExportError(); } @@ -480,7 +481,11 @@ const onExportAddress = async () => { // 启动轮询 timerId.value = setInterval(async () => { try { - const {data: progress} = await addressApi.getExportProgress(currentTaskId.value); + const {data: progress} = await exportApi.getExportProgress(currentTaskId.value); + + if (progress == -1) { + handleExportError(); + } progressPercent.value = progress; diff --git a/nc_wms_web/src/views/business/wms/base/item/item-list.vue b/nc_wms_web/src/views/business/wms/base/item/item-list.vue index 08595b6..36fcdc5 100644 --- a/nc_wms_web/src/views/business/wms/base/item/item-list.vue +++ b/nc_wms_web/src/views/business/wms/base/item/item-list.vue @@ -204,6 +204,7 @@ import {reactive, ref, onMounted} from 'vue'; import {message, Modal} from 'ant-design-vue'; import {SmartLoading} from '/@/components/framework/smart-loading'; import {itemApi} from '/@/api/business/wms/base/item/item-api.js'; +import {exportApi} from '/@/api/business/wms/export/export-api' import {PAGE_SIZE_OPTIONS} from '/@/constants/common-const'; import {smartSentry} from '/@/lib/smart-sentry'; import TableOperator from '/@/components/support/table-operator/index.vue'; @@ -213,7 +214,6 @@ import ItemSelect from "/@/views/business/wms/base/item/item-select.vue"; import {UploadFile} from 'ant-design-vue'; import {fileApi} from "/@/api/support/file-api"; import DictLabel from "/@/components/support/dict-label/index.vue"; -import {addressApi} from "/@/api/business/wms/base/address/address-api"; import {LoadingOutlined} from "@ant-design/icons-vue"; // ---------------------------- 表格列 ---------------------------- let columns = ref([ @@ -517,12 +517,12 @@ const onExportItems = async () => { resetProgressState(); // 重置进度状态 // 创建导出任务 - const {data: taskId} = await addressApi.createExportTask(); + const {data: taskId} = await exportApi.createExportTask(); currentTaskId.value = taskId; // 发起导出请求 try { - itemApi.exportItems(taskId, abortController.value.signal) + itemApi.exportItems(taskId, queryForm, abortController.value.signal) } catch (error) { handleExportError(); } @@ -535,7 +535,11 @@ const onExportItems = async () => { // 启动轮询 timerId.value = setInterval(async () => { try { - const {data: progress} = await addressApi.getExportProgress(currentTaskId.value); + const {data: progress} = await exportApi.getExportProgress(currentTaskId.value); + + if (progress == -1) { + handleExportError(); + } progressPercent.value = progress;