mirror of
https://github.com/soybeanjs/soybean-admin.git
synced 2025-09-17 17:26:38 +08:00
55 lines
1.1 KiB
TypeScript
55 lines
1.1 KiB
TypeScript
import UAParser from 'ua-parser-js';
|
|
import { useAuthStore } from '@/store';
|
|
import { isArray, isString } from '@/utils';
|
|
|
|
interface AppInfo {
|
|
/** 项目名称 */
|
|
name: string;
|
|
/** 项目标题 */
|
|
title: string;
|
|
/** 项目描述 */
|
|
desc: string;
|
|
}
|
|
|
|
/** 项目信息 */
|
|
export function useAppInfo(): AppInfo {
|
|
const { VITE_APP_NAME: name, VITE_APP_TITLE: title, VITE_APP_DESC: desc } = import.meta.env;
|
|
|
|
return {
|
|
name,
|
|
title,
|
|
desc
|
|
};
|
|
}
|
|
|
|
/** 获取设备信息 */
|
|
export function useDeviceInfo() {
|
|
const parser = new UAParser();
|
|
const result = parser.getResult();
|
|
return result;
|
|
}
|
|
|
|
/** 权限判断 */
|
|
export function usePermission() {
|
|
const auth = useAuthStore();
|
|
|
|
function hasPermission(permission: Auth.RoleType | Auth.RoleType[]) {
|
|
const { userRole } = auth.userInfo;
|
|
|
|
let has = userRole === 'super';
|
|
if (!has) {
|
|
if (isArray(permission)) {
|
|
has = (permission as Auth.RoleType[]).includes(userRole);
|
|
}
|
|
if (isString(permission)) {
|
|
has = (permission as Auth.RoleType) === userRole;
|
|
}
|
|
}
|
|
return has;
|
|
}
|
|
|
|
return {
|
|
hasPermission
|
|
};
|
|
}
|