论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
前端开发
›
Web 背景项目,权限如何定义、设置、利用:菜单权限、按 ...
Web 背景项目,权限如何定义、设置、利用:菜单权限、按钮权限 ts element- ...
千千梦丶琪
金牌会员
|
2024-8-6 02:43:20
|
显示全部楼层
|
阅读模式
楼主
主题
867
|
帖子
867
|
积分
2601
Web 背景项目,权限如何定义、设置、利用:菜单权限、按钮权限 ts element-ui-Plus
做一个背景管理项目,里面必要用到权限管理。这里说一下权限定义的大概,代码不多,主要讲原理和如何实现它。
一、权限管理的原理
权限管理分三个部分:
接口的访问权限:
这个背景去做就好了,前边只必要配置。
菜单的访问权限,展示给特定用户的菜单是哪样的
这个必要前端设置,背景再返给你过滤后的菜单。
界面中的一些操作按钮
这个是跟菜单走的,必要前端在界面的每个操作按钮上添加 v-if 判断,这里的权限就是个字符串。一个自定义的表示的字符串,用户有这个字符串就表现,没有就不表现。
这些权限是定义在脚色上的,再给用户分配一些特定的脚色即可。
二、实现
1. 接口权限
后端去实现,前端只必要提示可设置的操作流程即可
这里可以用 el-transfer 插件举行操作,会比较方便
2. 菜单权限
菜单权限只必要编辑哪些菜单可见就行。
3. 按钮权限
按钮权限是这里面比较贫苦的,但也不是很贫苦。
首先你必要在菜单定义中添加这个按钮,并添加这个按钮的权限标识,
比如 user:btn:add 表示 User 列表中的添加按钮,这个标识你可以随心定义,尽可能的简朴且表义。
用户组设置菜单权限的时候也同步设置按钮权限
在页面中判断按钮是不是表现:
从登录后的菜单列表中获取所有的标识字符串列表,制作成 set 好供背面利用。
/**
* 递归获取所有菜单权限
* @param menuTree
* @return Array<string>
*/
function getPermissionArrayFromMenuTree(menuTree: Array<MenuEntity>): Array<string>{
let tempPermissionArray: Array<string> = []
menuTree.forEach(item => {
if (item.children?.length > 0){
tempPermissionArray = tempPermissionArray.concat( getPermissionArrayFromMenuTree(item.children))
} else {
if (item.perm) tempPermissionArray.push(item.perm)
}
})
return tempPermissionArray
}
// 通过上面的方法获取到所有权限数组后,把它弄成 set,放到 store 中供后续使用
// 这个操作一般在登录后,或者在页面刷新后
storeProject.permissionSet = new Set(getPermissionArrayFromMenuTree(res))
复制代码
定义一个 enum 方便后续举行判断
将所有在菜单中设置的权限字符串都设置成:笔墨-权限字符串 的 Enum
页面中利用权限判断这个按钮该不该表现
<el-button
v-if="storeProject.permissionSet.has(EnumPermissions['员工:按钮:添加'])"
type="success" icon="Plus" @click="addUser()">添加</el-button>
复制代码
如许就能看到上面定义成 enum 的好处了,你不必要记那些权限标识。
三、完成
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
千千梦丶琪
金牌会员
这个人很懒什么都没写!
楼主热帖
SQLserver的安装
【C++】ZZ1864- 解题精讲
StoneDB社区答疑第一期
一文搞清UNIX/Linux与Windows文件换行 ...
数据湖Hudi与对象存储Minio及Hive\Spar ...
C语言程序设计(一)计算机思维导论 ...
开发了一个Java库的Google Bard API, ...
学透shell 带你写常用的100个 shell 脚 ...
多商户商城系统功能拆解06讲-平台端商 ...
Cesium 几何体贴模型 sampleHeight(二 ...
标签云
存储
挺好的
服务器
快速回复
返回顶部
返回列表