feat: 新增大屏功能,bug修复。

This commit is contained in:
tianyongbao
2026-06-21 09:41:27 +08:00
parent c9ea1e402b
commit 8f38ff8185
29 changed files with 4055 additions and 84 deletions

View File

@@ -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