feat: 新增权限测试页

This commit is contained in:
kailong321200875
2023-08-06 09:45:13 +08:00
parent c4576bd57b
commit 3fe40ba62d
11 changed files with 207 additions and 34 deletions

View File

@@ -1,28 +1,18 @@
import type { App, Directive, DirectiveBinding } from 'vue'
import { useI18n } from '@/hooks/web/useI18n'
import { useStorage } from '@/hooks/web/useStorage'
import { intersection } from 'lodash-es'
import { isArray } from '@/utils/is'
import { useAppStoreWithOut } from '@/store/modules/app'
import router from '@/router'
const { t } = useI18n()
const { getStorage } = useStorage()
const appStore = useAppStoreWithOut()
// 全部权限
const all_permission = ['*.*.*']
const hasPermission = (value: string | string[]): boolean => {
const permissions = getStorage(appStore.getUserInfo).permissions as string[]
const hasPermission = (value: string): boolean => {
const permission = (router.currentRoute.value.meta.permission || []) as string[]
if (!value) {
throw new Error(t('permission.hasPermission'))
}
if (!isArray(value)) {
return permissions?.includes(value as string)
}
if (all_permission[0] === permissions[0]) {
if (permission.includes(value)) {
return true
}
return (intersection(value, permissions) as string[]).length > 0
return false
}
function hasPermi(el: Element, binding: DirectiveBinding) {
const value = binding.value