导入携带参数

pull/8599/head
huoshicnag 2025-08-05 12:35:24 +08:00
parent 277b5c43ac
commit 2af453276b
3 changed files with 54 additions and 31 deletions

View File

@ -34,6 +34,10 @@ interface ListPageOptions {
//update-end-author:taoyan date:20220507 for: erp
//
success?: (fileInfo?: any) => void;
// update-begin--author:huoshicang---date:20250805
parameters?: { key: String; value: String };
// update-end--author:huoshicang---date:20250805
};
}
@ -118,11 +122,13 @@ export function useListPage(options: ListPageOptions) {
// excel
function onImportXls(file) {
let { url, success } = options?.importConfig ?? {};
let { url, success, parameters = {} } = options?.importConfig ?? {};
//update-begin-author:taoyan date:20220507 for: erp
let realUrl = typeof url === 'function' ? url() : url;
if (realUrl) {
return handleImportXls(file, realUrl, success || reload);
// update-begin--author:huoshicang---date:20250805
return handleImportXls(file, realUrl, success || reload, parameters);
// update-end--author:huoshicang---date:20250805
//update-end-author:taoyan date:20220507 for: erp
} else {
$message.createMessage.warn('没有传递 importConfig.url 参数');

View File

@ -59,8 +59,9 @@ export function useMethods() {
* @param data 导入的数据
* @param url
* @param success 成功后的回调
* @param parameters 导入携带的参数
*/
async function importXls(data, url, success) {
async function importXls(data, url, success, parameters) {
const isReturn = (fileInfo) => {
try {
if (fileInfo.code === 201) {
@ -90,12 +91,14 @@ export function useMethods() {
typeof success === 'function' ? success(fileInfo) : '';
}
};
await defHttp.uploadFile({ url }, { file: data.file }, { success: isReturn });
await defHttp.uploadFile({ url }, { file: data.file }, { success: isReturn }, parameters);
}
return {
handleExportXls: (name: string, url: string, params?: object) => exportXls(name, url, params),
handleImportXls: (data, url, success) => importXls(data, url, success),
// update-begin--author:huoshicang---date:20250805
handleImportXls: (data, url, success, parameters) => importXls(data, url, success, parameters),
// update-end--author:huoshicang---date:20250805
handleExportXlsx: (name: string, url: string, params?: object) => exportXls(name, url, params, true),
};

View File

@ -71,7 +71,12 @@ export class VAxios {
if (!transform) {
return;
}
const { requestInterceptors, requestInterceptorsCatch, responseInterceptors, responseInterceptorsCatch } = transform;
const {
requestInterceptors,
requestInterceptorsCatch,
responseInterceptors,
responseInterceptorsCatch
} = transform;
const axiosCanceler = new AxiosCanceler();
@ -114,7 +119,11 @@ export class VAxios {
* 文件上传
*/
//--@updateBy-begin----author:liusq---date:20211117------for:callback------
uploadFile<T = any>(config: AxiosRequestConfig, params: UploadFileParams, callback?: UploadFileCallBack) {
// update-begin--author:huoshicang---date:20250805
uploadFile<T = any>(config: AxiosRequestConfig, params: UploadFileParams, callback?: UploadFileCallBack, parameters?: {
key: String;
value: String
}) {
//--@updateBy-end----author:liusq---date:20211117------for:callback------
const formData = new window.FormData();
const customFilename = params.name || 'file';
@ -139,6 +148,11 @@ export class VAxios {
formData.append(key, params.data[key]);
});
}
// update-begin--author:huoshicang---date:20250805
if (Object.keys(parameters).length != 0) {
for (const key in parameters) formData.append(key, parameters[key]);
}
// update-end--author:huoshicang---date:20250805
return this.axiosInstance
.request<T>({