feat: 新增大屏功能,bug修复。
This commit is contained in:
@@ -87,4 +87,84 @@ export function deleteAction(url: string, data?: any, isToken: boolean = true) {
|
||||
return request({ data, url, method: 'DELETE', headers: { isToken }, })
|
||||
}
|
||||
|
||||
export function downloadAction(url: string, data: any = {}, filename: string = 'download.xlsx') {
|
||||
const token = getToken()
|
||||
const fullUrl = baseUrl + url
|
||||
// #ifdef H5
|
||||
return new Promise((resolve, reject) => {
|
||||
const xhr = new XMLHttpRequest()
|
||||
xhr.open('POST', fullUrl, true)
|
||||
xhr.responseType = 'blob'
|
||||
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
|
||||
if (token) {
|
||||
xhr.setRequestHeader('Authorization', 'Bearer ' + token)
|
||||
}
|
||||
xhr.onload = () => {
|
||||
if (xhr.status >= 200 && xhr.status < 300) {
|
||||
const blob = xhr.response
|
||||
const link = document.createElement('a')
|
||||
link.href = window.URL.createObjectURL(blob)
|
||||
link.download = filename
|
||||
link.click()
|
||||
window.URL.revokeObjectURL(link.href)
|
||||
resolve(blob)
|
||||
} else {
|
||||
toast('下载文件出现错误')
|
||||
reject(xhr.status)
|
||||
}
|
||||
}
|
||||
xhr.onerror = () => {
|
||||
toast('下载文件出现错误')
|
||||
reject(new Error('download error'))
|
||||
}
|
||||
xhr.send(tansParams(data))
|
||||
})
|
||||
// #endif
|
||||
// #ifndef H5
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.request({
|
||||
method: 'POST',
|
||||
url: fullUrl,
|
||||
data: tansParams(data),
|
||||
responseType: 'arraybuffer',
|
||||
header: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
...(token ? { Authorization: 'Bearer ' + token } : {})
|
||||
},
|
||||
success: (res: any) => {
|
||||
if (res.statusCode !== 200) {
|
||||
toast('下载文件出现错误')
|
||||
reject(res.statusCode)
|
||||
return
|
||||
}
|
||||
// #ifdef MP-WEIXIN
|
||||
const filePath = `${wx.env.USER_DATA_PATH}/${filename}`
|
||||
uni.getFileSystemManager().writeFile({
|
||||
filePath,
|
||||
data: res.data,
|
||||
success: () => {
|
||||
uni.openDocument({
|
||||
filePath,
|
||||
fileType: 'xlsx',
|
||||
showMenu: true,
|
||||
success: resolve,
|
||||
fail: reject
|
||||
})
|
||||
},
|
||||
fail: reject
|
||||
})
|
||||
// #endif
|
||||
// #ifndef MP-WEIXIN
|
||||
resolve(res.data)
|
||||
// #endif
|
||||
},
|
||||
fail: (err) => {
|
||||
toast('下载文件出现错误')
|
||||
reject(err)
|
||||
}
|
||||
})
|
||||
})
|
||||
// #endif
|
||||
}
|
||||
|
||||
export default request
|
||||
|
||||
Reference in New Issue
Block a user