Files
dafuweng-saiadmin6.x/saiadmin-artd/src/utils/tool.ts
2026-03-03 09:53:54 +08:00

61 lines
1.5 KiB
TypeScript

import { useUserStore } from '@/store/modules/user'
/**
* 检查权限
* @param permission
* @returns
*/
export function checkAuth(permission: string) {
const userStore = useUserStore()
const userButtons = userStore.getUserInfo.buttons
// 超级管理员
if (userButtons?.includes('*')) {
return true
}
// 如果按钮为空或未定义,移除元素
if (!userButtons?.length) {
return false
}
const hasPermission = userButtons.some((item) => item === permission)
// 如果没有权限,移除元素
if (hasPermission) {
return true
}
return false
}
/**
* 下载文件
* @param res 响应数据
* @param downName 下载文件名
*/
export function downloadFile(res: any, downName: string = '') {
const aLink = document.createElement('a')
let fileName = downName
let blob = res //第三方请求返回blob对象
//通过后端接口返回
if (res.headers && res.data) {
blob = new Blob([res.data], {
type: res.headers['content-type'].replace(';charset=utf8', '')
})
if (!downName) {
const contentDisposition = decodeURI(res.headers['content-disposition'])
const result = contentDisposition.match(/filename="(.+)/gi)
fileName = result?.[0].replace(/filename="(.+)/gi, '') || ''
fileName = fileName.replace('"', '')
}
}
aLink.href = URL.createObjectURL(blob)
// 设置下载文件名称
aLink.setAttribute('download', fileName)
document.body.appendChild(aLink)
aLink.click()
document.body.removeChild(aLink)
URL.revokeObjectURL(aLink.href)
}