diff --git a/src/api/axios/Axios.ts b/src/api/axios/Axios.ts index e27cbf8..903ba42 100644 --- a/src/api/axios/Axios.ts +++ b/src/api/axios/Axios.ts @@ -169,31 +169,43 @@ export class VAxios { conf = this.supportFormData(conf); return await new Promise((resolve, reject) => { this.axiosInstance - .request>(conf) - .then(async (res: AxiosResponse) => { - if (transformRequestHook && isFunction(transformRequestHook)) { - try { - const ret = transformRequestHook(res, opt); - if (ret instanceof Promise) { - try { - const data = await ret; - resolve(data); - } catch (error) { - console.error('reponse error:结构体错误!' + config.url); - reject(error); + .request>(conf) + .then(async (res: AxiosResponse) => { + if (transformRequestHook && isFunction(transformRequestHook)) { + try { + let ret; + if (res.data instanceof Blob) { + // 如果是 Blob 类型,直接返回 Blob + ret = res.data; + } else { + ret = transformRequestHook(res, opt); + } + if (ret instanceof Promise) { + try { + const data = await ret; + resolve(data); + } catch (error) { + console.error('reponse error:结构体错误!' + config.url); + reject(error); + } + } else { + resolve(ret); } + } catch (err) { + reject(err || new Error('request error!')); } - resolve(ret); - } catch (err) { - reject(err || new Error('request error!')); + return; } - return; - } - resolve(res as unknown as Promise); - }) - .catch((e: Error | AxiosError) => { - reject(e); - }); + // 如果没有 transformRequestHook,直接返回响应数据 + if (res.data instanceof Blob) { + resolve(res.data as unknown as T); + } else { + resolve(res as unknown as T); + } + }) + .catch((e: Error | AxiosError) => { + reject(e); + }); }); } } diff --git a/src/components.d.ts b/src/components.d.ts index d1dc45b..51c3f11 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -19,8 +19,6 @@ declare module 'vue' { ElIcon: typeof import('element-plus/es')['ElIcon'] ElInput: typeof import('element-plus/es')['ElInput'] ElOption: typeof import('element-plus/es')['ElOption'] - ElPagination: typeof import('element-plus/es')['ElPagination'] - ElPopover: typeof import('element-plus/es')['ElPopover'] ElRadioButton: typeof import('element-plus/es')['ElRadioButton'] ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] ElSelect: typeof import('element-plus/es')['ElSelect'] @@ -28,9 +26,6 @@ declare module 'vue' { ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] ElTabPane: typeof import('element-plus/es')['ElTabPane'] ElTabs: typeof import('element-plus/es')['ElTabs'] - ElTooltip: typeof import('element-plus/es')['ElTooltip'] - ElTree: typeof import('element-plus/es')['ElTree'] - ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect'] Form: typeof import('./components/Form/index.vue')['default'] InputNumber: typeof import('./components/Input/input-number.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] diff --git a/src/views/Main/Dike/components/safetyAppraisal.vue b/src/views/Main/Dike/components/safetyAppraisal.vue index 9056a83..448b01c 100644 --- a/src/views/Main/Dike/components/safetyAppraisal.vue +++ b/src/views/Main/Dike/components/safetyAppraisal.vue @@ -107,6 +107,7 @@ const props = defineProps({ resCode: { type: String as PropType, }, + }); // Data for the table