前端自定义指令控制权限(后端Spring Security)

1. 新建 directives/auth.ts

javascript 复制代码
//导入自定义指令
import auth from '@/directives/auth'// 注册全局自定义指令 v-auth
app.directive('auth', auth);

1.1完整的authDirective.ts

javascript 复制代码
import { wmsStore } from "@/store/pinia"

// 判断用户是否有某个角色的函数
const hasRoles = (roles: any) => {

  const pinaRoles: any = wmsStore().roles;

  if (Array.isArray(roles)) {
    return roles.some(role => pinaRoles.includes(role));
  } else if (typeof roles === 'string') {
    return pinaRoles.includes(roles);
  } else {
     return false
  }

}
// 判断用户是否有某个权限的函数,同上
const hasPermissions = (permission: any) => {

  return true
}

// 创建自定义指令
export default {
  mounted(el: HTMLElement, binding: any) {
 
    const type = binding.arg
    if (type === 'role') {
      if (!hasRoles(binding.value)) {
        el.remove()
      }
    }
  },
};
  

2.如何使用

2.1 菜单使用方式

2.2 按钮使用

相关推荐
开心工作室_kaic7 分钟前
基于Java的可携宠物酒店管理系统的设计与实现(论文+源码)_kaic
java·开发语言·javascript·数据库·微信小程序·小程序·宠物
serve the people10 分钟前
vue中父组件给子组件传递数据
前端·javascript·vue.js
噫吁嚱!!!18 分钟前
若依前端后打成一个JAR包部署
java·前端·jar
乔没乔见Joe22 分钟前
使用Apifox创建接口文档,部署第一个简单的基于Vue+Axios的前端项目
前端·javascript·vue.js·vscode·axios
szqcloud1 小时前
腾讯云SDK 选择指引
前端·云计算·音视频·腾讯云
m0_528723811 小时前
在前端开发中,如何处理列表分页时遇到接口延迟或数据返回顺序不一致的问题
前端·javascript·vue.js
爱喝醋的雷达1 小时前
Java项目-----图形验证码登陆实现
java·开发语言·前端
你会发光哎u1 小时前
彻底理解TypeScript函数语法
开发语言·前端·typescript
cuiZero01 小时前
基础【前端】面试题
前端
speedoooo1 小时前
用AI构建小程序需要多久?效果如何?
前端·人工智能·小程序·前端框架