Commit b085f35dfeb7a83e213bb942a7ed99298f330fdc
1 parent
611e11ae
feat: vue3 axios add download function
Showing
26 changed files
with
48 additions
and
37 deletions
yudao-ui-admin-vue3/src/api/infra/apiAccessLog/index.ts
| @@ -9,5 +9,5 @@ export const getApiAccessLogPageApi = (params) => { | @@ -9,5 +9,5 @@ export const getApiAccessLogPageApi = (params) => { | ||
| 9 | 9 | ||
| 10 | // 导出API 访问日志 | 10 | // 导出API 访问日志 |
| 11 | export const exportApiAccessLogApi = (params) => { | 11 | export const exportApiAccessLogApi = (params) => { |
| 12 | - return request.get({ url: '/infra/api-access-log/export-excel', params, responseType: 'blob' }) | 12 | + return request.download({ url: '/infra/api-access-log/export-excel', params }) |
| 13 | } | 13 | } |
yudao-ui-admin-vue3/src/api/infra/apiErrorLog/index.ts
| @@ -16,5 +16,8 @@ export const updateApiErrorLogPageApi = (id: number, processStatus: number) => { | @@ -16,5 +16,8 @@ export const updateApiErrorLogPageApi = (id: number, processStatus: number) => { | ||
| 16 | 16 | ||
| 17 | // 导出API 访问日志 | 17 | // 导出API 访问日志 |
| 18 | export const exportApiErrorLogApi = (params) => { | 18 | export const exportApiErrorLogApi = (params) => { |
| 19 | - return request.get({ url: '/infra/api-error-log/export-excel', params, responseType: 'blob' }) | 19 | + return request.download({ |
| 20 | + url: '/infra/api-error-log/export-excel', | ||
| 21 | + params | ||
| 22 | + }) | ||
| 20 | } | 23 | } |
yudao-ui-admin-vue3/src/api/infra/codegen/index.ts
| @@ -40,7 +40,7 @@ export const previewCodegenApi = (id: number) => { | @@ -40,7 +40,7 @@ export const previewCodegenApi = (id: number) => { | ||
| 40 | 40 | ||
| 41 | // 下载生成代码 | 41 | // 下载生成代码 |
| 42 | export const downloadCodegenApi = (id: number) => { | 42 | export const downloadCodegenApi = (id: number) => { |
| 43 | - return request.get({ url: '/infra/codegen/download?tableId=' + id, responseType: 'blob' }) | 43 | + return request.download({ url: '/infra/codegen/download?tableId=' + id }) |
| 44 | } | 44 | } |
| 45 | 45 | ||
| 46 | // 获得表定义 | 46 | // 获得表定义 |
yudao-ui-admin-vue3/src/api/infra/config/index.ts
| @@ -35,5 +35,5 @@ export const deleteConfigApi = (id: number) => { | @@ -35,5 +35,5 @@ export const deleteConfigApi = (id: number) => { | ||
| 35 | 35 | ||
| 36 | // 导出参数 | 36 | // 导出参数 |
| 37 | export const exportConfigApi = (params) => { | 37 | export const exportConfigApi = (params) => { |
| 38 | - return request.get({ url: '/infra/config/export', params, responseType: 'blob' }) | 38 | + return request.download({ url: '/infra/config/export', params }) |
| 39 | } | 39 | } |
yudao-ui-admin-vue3/src/api/infra/dbDoc/index.ts
| @@ -4,15 +4,15 @@ const request = useAxios() | @@ -4,15 +4,15 @@ const request = useAxios() | ||
| 4 | 4 | ||
| 5 | // 导出Html | 5 | // 导出Html |
| 6 | export const exportHtmlApi = () => { | 6 | export const exportHtmlApi = () => { |
| 7 | - return request.get({ url: '/infra/db-doc/export-html', responseType: 'blob' }) | 7 | + return request.download({ url: '/infra/db-doc/export-html' }) |
| 8 | } | 8 | } |
| 9 | 9 | ||
| 10 | // 导出Word | 10 | // 导出Word |
| 11 | export const exportWordApi = () => { | 11 | export const exportWordApi = () => { |
| 12 | - return request.get({ url: '/infra/db-doc/export-word', responseType: 'blob' }) | 12 | + return request.download({ url: '/infra/db-doc/export-word' }) |
| 13 | } | 13 | } |
| 14 | 14 | ||
| 15 | // 导出Markdown | 15 | // 导出Markdown |
| 16 | export const exportMarkdownApi = () => { | 16 | export const exportMarkdownApi = () => { |
| 17 | - return request.get({ url: '/infra/db-doc/export-markdown', responseType: 'blob' }) | 17 | + return request.download({ url: '/infra/db-doc/export-markdown' }) |
| 18 | } | 18 | } |
yudao-ui-admin-vue3/src/api/infra/job/index.ts
| @@ -30,7 +30,7 @@ export const deleteJobApi = (id: number) => { | @@ -30,7 +30,7 @@ export const deleteJobApi = (id: number) => { | ||
| 30 | 30 | ||
| 31 | // 导出定时任务调度 | 31 | // 导出定时任务调度 |
| 32 | export const exportJobApi = (params) => { | 32 | export const exportJobApi = (params) => { |
| 33 | - return request.get({ url: '/infra/job/export-excel', params, responseType: 'blob' }) | 33 | + return request.download({ url: '/infra/job/export-excel', params }) |
| 34 | } | 34 | } |
| 35 | 35 | ||
| 36 | // 任务状态修改 | 36 | // 任务状态修改 |
yudao-ui-admin-vue3/src/api/infra/jobLog/index.ts
| @@ -14,9 +14,8 @@ export const getJobLogApi = (id: number) => { | @@ -14,9 +14,8 @@ export const getJobLogApi = (id: number) => { | ||
| 14 | 14 | ||
| 15 | // 导出定时任务日志 | 15 | // 导出定时任务日志 |
| 16 | export const exportJobLogApi = (params) => { | 16 | export const exportJobLogApi = (params) => { |
| 17 | - return request.get({ | 17 | + return request.download({ |
| 18 | url: '/infra/job-log/export-excel', | 18 | url: '/infra/job-log/export-excel', |
| 19 | - params, | ||
| 20 | - responseType: 'blob' | 19 | + params |
| 21 | }) | 20 | }) |
| 22 | } | 21 | } |
yudao-ui-admin-vue3/src/api/pay/app/index.ts
| @@ -39,7 +39,7 @@ export const deleteAppApi = (id: number) => { | @@ -39,7 +39,7 @@ export const deleteAppApi = (id: number) => { | ||
| 39 | 39 | ||
| 40 | // 导出支付应用 | 40 | // 导出支付应用 |
| 41 | export const exportAppApi = (params) => { | 41 | export const exportAppApi = (params) => { |
| 42 | - return request.get({ url: '/pay/app/export-excel', params, responseType: 'blob' }) | 42 | + return request.download({ url: '/pay/app/export-excel', params }) |
| 43 | } | 43 | } |
| 44 | 44 | ||
| 45 | // 根据商ID称搜索应用列表 | 45 | // 根据商ID称搜索应用列表 |
yudao-ui-admin-vue3/src/api/pay/channel/index.ts
| @@ -35,5 +35,5 @@ export const deleteChannelApi = (id: number) => { | @@ -35,5 +35,5 @@ export const deleteChannelApi = (id: number) => { | ||
| 35 | 35 | ||
| 36 | // 导出支付渠道 | 36 | // 导出支付渠道 |
| 37 | export const exportChannelApi = (params) => { | 37 | export const exportChannelApi = (params) => { |
| 38 | - return request.get({ url: '/pay/channel/export-excel', params, responseType: 'blob' }) | 38 | + return request.download({ url: '/pay/channel/export-excel', params }) |
| 39 | } | 39 | } |
yudao-ui-admin-vue3/src/api/pay/merchant/index.ts
| @@ -40,7 +40,7 @@ export const deleteMerchantApi = (id: number) => { | @@ -40,7 +40,7 @@ export const deleteMerchantApi = (id: number) => { | ||
| 40 | 40 | ||
| 41 | // 导出支付商户 | 41 | // 导出支付商户 |
| 42 | export const exportMerchantApi = (params) => { | 42 | export const exportMerchantApi = (params) => { |
| 43 | - return request.get({ url: '/pay/merchant/export-excel', params, responseType: 'blob' }) | 43 | + return request.download({ url: '/pay/merchant/export-excel', params }) |
| 44 | } | 44 | } |
| 45 | // 支付商户状态修改 | 45 | // 支付商户状态修改 |
| 46 | export const changeMerchantStatusApi = (id: number, status: number) => { | 46 | export const changeMerchantStatusApi = (id: number, status: number) => { |
yudao-ui-admin-vue3/src/api/pay/order/index.ts
| @@ -30,5 +30,5 @@ export const deleteOrderApi = async (id: number) => { | @@ -30,5 +30,5 @@ export const deleteOrderApi = async (id: number) => { | ||
| 30 | 30 | ||
| 31 | // 导出支付订单 | 31 | // 导出支付订单 |
| 32 | export const exportOrderApi = async (params) => { | 32 | export const exportOrderApi = async (params) => { |
| 33 | - return await request.get({ url: '/pay/order/export-excel', params, responseType: 'blob' }) | 33 | + return await request.download({ url: '/pay/order/export-excel', params }) |
| 34 | } | 34 | } |
yudao-ui-admin-vue3/src/api/pay/refund/index.ts
| @@ -30,5 +30,5 @@ export const deleteRefundApi = (id: number) => { | @@ -30,5 +30,5 @@ export const deleteRefundApi = (id: number) => { | ||
| 30 | 30 | ||
| 31 | // 导出退款订单 | 31 | // 导出退款订单 |
| 32 | export const exportRefundApi = (params) => { | 32 | export const exportRefundApi = (params) => { |
| 33 | - return request.get({ url: '/pay/refund/export-excel', params, responseType: 'blob' }) | 33 | + return request.download({ url: '/pay/refund/export-excel', params }) |
| 34 | } | 34 | } |
yudao-ui-admin-vue3/src/api/system/errorCode/index.ts
| @@ -29,5 +29,5 @@ export const deleteErrorCodeApi = (id: number) => { | @@ -29,5 +29,5 @@ export const deleteErrorCodeApi = (id: number) => { | ||
| 29 | } | 29 | } |
| 30 | // 导出错误码 | 30 | // 导出错误码 |
| 31 | export const excelErrorCodeApi = (params) => { | 31 | export const excelErrorCodeApi = (params) => { |
| 32 | - return request.get({ url: '/system/error-code/export-excel', params, responseType: 'blob' }) | 32 | + return request.download({ url: '/system/error-code/export-excel', params }) |
| 33 | } | 33 | } |
yudao-ui-admin-vue3/src/api/system/loginLog/index.ts
| @@ -8,5 +8,5 @@ export const getLoginLogPageApi = (params) => { | @@ -8,5 +8,5 @@ export const getLoginLogPageApi = (params) => { | ||
| 8 | } | 8 | } |
| 9 | // 导出登录日志 | 9 | // 导出登录日志 |
| 10 | export const exportLoginLogApi = (params) => { | 10 | export const exportLoginLogApi = (params) => { |
| 11 | - return request.get({ url: '/system/login-log/export', params, responseType: 'blob' }) | 11 | + return request.download({ url: '/system/login-log/export', params }) |
| 12 | } | 12 | } |
yudao-ui-admin-vue3/src/api/system/operatelog/index.ts
| @@ -8,5 +8,5 @@ export const getOperateLogPageApi = (params) => { | @@ -8,5 +8,5 @@ export const getOperateLogPageApi = (params) => { | ||
| 8 | } | 8 | } |
| 9 | // 导出操作日志 | 9 | // 导出操作日志 |
| 10 | export const exportOperateLogApi = (params) => { | 10 | export const exportOperateLogApi = (params) => { |
| 11 | - return request.get({ url: '/system/operate-log/export', params, responseType: 'blob' }) | 11 | + return request.download({ url: '/system/operate-log/export', params }) |
| 12 | } | 12 | } |
yudao-ui-admin-vue3/src/api/system/post/index.ts
| @@ -34,5 +34,5 @@ export const deletePostApi = async (id: number) => { | @@ -34,5 +34,5 @@ export const deletePostApi = async (id: number) => { | ||
| 34 | 34 | ||
| 35 | // 导出岗位 | 35 | // 导出岗位 |
| 36 | export const exportPostApi = async (params) => { | 36 | export const exportPostApi = async (params) => { |
| 37 | - return await request.get({ url: '/system/post/export', params, responseType: 'blob' }) | 37 | + return await request.download({ url: '/system/post/export', params }) |
| 38 | } | 38 | } |
yudao-ui-admin-vue3/src/api/system/sensitiveWord/index.ts
| @@ -30,7 +30,7 @@ export const deleteSensitiveWordApi = (id: number) => { | @@ -30,7 +30,7 @@ export const deleteSensitiveWordApi = (id: number) => { | ||
| 30 | 30 | ||
| 31 | // 导出敏感词 | 31 | // 导出敏感词 |
| 32 | export const exportSensitiveWordApi = (params) => { | 32 | export const exportSensitiveWordApi = (params) => { |
| 33 | - return request.get({ url: '/system/sensitive-word/export', params, responseType: 'blob' }) | 33 | + return request.download({ url: '/system/sensitive-word/export-excel', params }) |
| 34 | } | 34 | } |
| 35 | 35 | ||
| 36 | // 获取所有敏感词的标签数组 | 36 | // 获取所有敏感词的标签数组 |
yudao-ui-admin-vue3/src/api/system/sms/smsLog/index.ts
| @@ -9,5 +9,5 @@ export const getSmsLogPageApi = (params) => { | @@ -9,5 +9,5 @@ export const getSmsLogPageApi = (params) => { | ||
| 9 | 9 | ||
| 10 | // 导出短信日志 | 10 | // 导出短信日志 |
| 11 | export const exportSmsLogApi = (params) => { | 11 | export const exportSmsLogApi = (params) => { |
| 12 | - return request.get({ url: '/system/sms-log/export', params, responseType: 'blob' }) | 12 | + return request.download({ url: '/system/sms-log/export', params }) |
| 13 | } | 13 | } |
yudao-ui-admin-vue3/src/api/system/sms/smsTemplate/index.ts
| @@ -35,5 +35,8 @@ export const sendSmsApi = (data) => { | @@ -35,5 +35,8 @@ export const sendSmsApi = (data) => { | ||
| 35 | 35 | ||
| 36 | // 导出短信模板 | 36 | // 导出短信模板 |
| 37 | export const exportPostApi = (params) => { | 37 | export const exportPostApi = (params) => { |
| 38 | - return request.get({ url: '/system/sms-template/export-excel', params, responseType: 'blob' }) | 38 | + return request.download({ |
| 39 | + url: '/system/sms-template/export-excel', | ||
| 40 | + params | ||
| 41 | + }) | ||
| 39 | } | 42 | } |
yudao-ui-admin-vue3/src/api/system/tenant/index.ts
| @@ -30,5 +30,5 @@ export const deleteTenantApi = (id: number) => { | @@ -30,5 +30,5 @@ export const deleteTenantApi = (id: number) => { | ||
| 30 | 30 | ||
| 31 | // 导出租户 | 31 | // 导出租户 |
| 32 | export const exportTenantApi = (params) => { | 32 | export const exportTenantApi = (params) => { |
| 33 | - return request.get({ url: '/system/tenant/export-excel', params, responseType: 'blob' }) | 33 | + return request.download({ url: '/system/tenant/export-excel', params }) |
| 34 | } | 34 | } |
yudao-ui-admin-vue3/src/api/system/user/index.ts
| @@ -30,12 +30,12 @@ export const deleteUserApi = (id: number) => { | @@ -30,12 +30,12 @@ export const deleteUserApi = (id: number) => { | ||
| 30 | 30 | ||
| 31 | // 导出用户 | 31 | // 导出用户 |
| 32 | export const exportUserApi = (params) => { | 32 | export const exportUserApi = (params) => { |
| 33 | - return request.get({ url: '/system/user/export', params, responseType: 'blob' }) | 33 | + return request.download({ url: '/system/user/export', params }) |
| 34 | } | 34 | } |
| 35 | 35 | ||
| 36 | // 下载用户导入模板 | 36 | // 下载用户导入模板 |
| 37 | export const importUserTemplateApi = () => { | 37 | export const importUserTemplateApi = () => { |
| 38 | - return request.get({ url: '/system/user/get-import-template', responseType: 'blob' }) | 38 | + return request.download({ url: '/system/user/get-import-template' }) |
| 39 | } | 39 | } |
| 40 | 40 | ||
| 41 | // 用户密码重置 | 41 | // 用户密码重置 |
yudao-ui-admin-vue3/src/config/axios/index.ts
| @@ -29,7 +29,8 @@ export const PATH_URL = base_url[import.meta.env.VITE_API_BASEPATH] | @@ -29,7 +29,8 @@ export const PATH_URL = base_url[import.meta.env.VITE_API_BASEPATH] | ||
| 29 | // 创建axios实例 | 29 | // 创建axios实例 |
| 30 | const service: AxiosInstance = axios.create({ | 30 | const service: AxiosInstance = axios.create({ |
| 31 | baseURL: BASE_URL + BASE_API, // api 的 base_url | 31 | baseURL: BASE_URL + BASE_API, // api 的 base_url |
| 32 | - timeout: config.request_timeout // 请求超时时间 | 32 | + timeout: config.request_timeout, // 请求超时时间 |
| 33 | + withCredentials: false // 禁用 Cookie 等信息 | ||
| 33 | }) | 34 | }) |
| 34 | 35 | ||
| 35 | // request拦截器 | 36 | // request拦截器 |
yudao-ui-admin-vue3/src/hooks/web/useAxios.ts
| @@ -37,12 +37,17 @@ async function putFn<T = any>(option: AxiosConfig): Promise<T> { | @@ -37,12 +37,17 @@ async function putFn<T = any>(option: AxiosConfig): Promise<T> { | ||
| 37 | const res = await request({ method: 'PUT', ...option }) | 37 | const res = await request({ method: 'PUT', ...option }) |
| 38 | return res.data | 38 | return res.data |
| 39 | } | 39 | } |
| 40 | +async function downloadFn<T = any>(option: AxiosConfig): Promise<T> { | ||
| 41 | + const res = await request({ method: 'GET', responseType: 'blob', ...option }) | ||
| 42 | + return res as unknown as Promise<T> | ||
| 43 | +} | ||
| 40 | 44 | ||
| 41 | export const useAxios = () => { | 45 | export const useAxios = () => { |
| 42 | return { | 46 | return { |
| 43 | get: getFn, | 47 | get: getFn, |
| 44 | post: postFn, | 48 | post: postFn, |
| 45 | delete: deleteFn, | 49 | delete: deleteFn, |
| 46 | - put: putFn | 50 | + put: putFn, |
| 51 | + download: downloadFn | ||
| 47 | } | 52 | } |
| 48 | } | 53 | } |
yudao-ui-admin-vue3/src/utils/download.ts
| 1 | -const download0 = (data: any, fileName: string, mineType: string) => { | 1 | +const download0 = (data: Blob, fileName: string, mineType: string) => { |
| 2 | // 创建 blob | 2 | // 创建 blob |
| 3 | const blob = new Blob([data], { type: mineType }) | 3 | const blob = new Blob([data], { type: mineType }) |
| 4 | // 创建 href 超链接,点击进行下载 | 4 | // 创建 href 超链接,点击进行下载 |
| @@ -14,23 +14,23 @@ const download0 = (data: any, fileName: string, mineType: string) => { | @@ -14,23 +14,23 @@ const download0 = (data: any, fileName: string, mineType: string) => { | ||
| 14 | 14 | ||
| 15 | const download = { | 15 | const download = { |
| 16 | // 下载 Excel 方法 | 16 | // 下载 Excel 方法 |
| 17 | - excel: (data: any, fileName: string) => { | 17 | + excel: (data: Blob, fileName: string) => { |
| 18 | download0(data, fileName, 'application/vnd.ms-excel') | 18 | download0(data, fileName, 'application/vnd.ms-excel') |
| 19 | }, | 19 | }, |
| 20 | // 下载 Word 方法 | 20 | // 下载 Word 方法 |
| 21 | - word: (data: any, fileName: string) => { | 21 | + word: (data: Blob, fileName: string) => { |
| 22 | download0(data, fileName, 'application/msword') | 22 | download0(data, fileName, 'application/msword') |
| 23 | }, | 23 | }, |
| 24 | // 下载 Zip 方法 | 24 | // 下载 Zip 方法 |
| 25 | - zip: (data: any, fileName: string) => { | 25 | + zip: (data: Blob, fileName: string) => { |
| 26 | download0(data, fileName, 'application/zip') | 26 | download0(data, fileName, 'application/zip') |
| 27 | }, | 27 | }, |
| 28 | // 下载 Html 方法 | 28 | // 下载 Html 方法 |
| 29 | - html: (data: any, fileName: string) => { | 29 | + html: (data: Blob, fileName: string) => { |
| 30 | download0(data, fileName, 'text/html') | 30 | download0(data, fileName, 'text/html') |
| 31 | }, | 31 | }, |
| 32 | // 下载 Markdown 方法 | 32 | // 下载 Markdown 方法 |
| 33 | - markdown: (data: any, fileName: string) => { | 33 | + markdown: (data: Blob, fileName: string) => { |
| 34 | download0(data, fileName, 'text/markdown') | 34 | download0(data, fileName, 'text/markdown') |
| 35 | } | 35 | } |
| 36 | } | 36 | } |
yudao-ui-admin-vue3/src/views/infra/codegen/index.vue
| @@ -45,8 +45,8 @@ const handleSynchDb = (row: CodegenTableVO) => { | @@ -45,8 +45,8 @@ const handleSynchDb = (row: CodegenTableVO) => { | ||
| 45 | }) | 45 | }) |
| 46 | } | 46 | } |
| 47 | // 生成代码操作 | 47 | // 生成代码操作 |
| 48 | -const handleGenTable = (row: CodegenTableVO) => { | ||
| 49 | - const res = CodegenApi.downloadCodegenApi(row.id) | 48 | +const handleGenTable = async (row: CodegenTableVO) => { |
| 49 | + const res = await CodegenApi.downloadCodegenApi(row.id) | ||
| 50 | download.zip(res, 'codegen-' + row.className + '.zip') | 50 | download.zip(res, 'codegen-' + row.className + '.zip') |
| 51 | } | 51 | } |
| 52 | // 删除操作 | 52 | // 删除操作 |
yudao-ui-admin-vue3/src/views/system/oauth2/client/index.vue
| @@ -113,7 +113,7 @@ getList() | @@ -113,7 +113,7 @@ getList() | ||
| 113 | @register="register" | 113 | @register="register" |
| 114 | > | 114 | > |
| 115 | <template #logo="{ row }"> | 115 | <template #logo="{ row }"> |
| 116 | - <el-image :src="row.logo" /> | 116 | + <el-image :src="row.logo" :preview-src-list="[row.logo]" /> |
| 117 | </template> | 117 | </template> |
| 118 | <template #status="{ row }"> | 118 | <template #status="{ row }"> |
| 119 | <DictTag :type="DICT_TYPE.COMMON_STATUS" :value="row.status" /> | 119 | <DictTag :type="DICT_TYPE.COMMON_STATUS" :value="row.status" /> |