Skip to content

权限控制

权限分三个粒度:动态路由控制页面、v-hasPerm 控制按钮、后端 RBAC 控制数据。按需选用。

页面权限

用户在路由 meta 中声明权限标识,登录后按角色生成可访问路由:

typescript
{
  path: "/system/user",
  component: () => import("@/views/system/user/index.vue"),
  meta: {
    title: "用户管理",
    icon: "user",
    perms: ["sys:user:list"],  // 权限标识
    roles: ["ADMIN"],          // 角色限制
  },
}

按钮权限

指令方式

vue
<template>
  <!-- 单个权限 -->
  <el-button v-hasPerm="['sys:user:create']">新增</el-button>

  <!-- 多个权限(满足其一即可) -->
  <el-button v-hasPerm="['sys:user:update', 'sys:user:delete']">编辑/删除</el-button>
</template>

函数方式

typescript
import { hasPerm } from "@/utils/auth"

if (hasPerm("sys:user:update")) {
  // 有权限时执行
}

权限标识规范

采用 模块:功能:操作 格式,如 sys:user:create

操作标识示例
查询listsys:user:list
查看viewsys:user:view
新增createsys:user:create
编辑updatesys:user:update
删除deletesys:user:delete
导入importsys:user:import
导出exportsys:user:export
分配权限assignsys:role:assign

基于 MIT 许可发布 · 如需部署协助或二开定制,请查看 支持与合作