Commit b085f35dfeb7a83e213bb942a7ed99298f330fdc

Authored by xingyu
1 parent 611e11ae

feat: vue3 axios add download function

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) =&gt; { @@ -14,23 +14,23 @@ const download0 = (data: any, fileName: string, mineType: string) =&gt; {
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) =&gt; { @@ -45,8 +45,8 @@ const handleSynchDb = (row: CodegenTableVO) =&gt; {
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" />