目前公司的框架,分配权限的界面是这样的:一个原汁原味的树形结构,没有搜索功能。
如果在10年前,这样的设计,对小系统应该是没有问题的。但是现在都是大平台了,一个平台有10几个子系统,每次要给用户修改权限时,我都需要先心疼自己几秒,用完后心疼实施同事几秒,毕竟这个功能的主要使用者是他们。
这个界面的使用方法是用浏览器搜索框,搜索相关子系统、模块、功能的名称。有下面2个问题:
1.如果名称没有太多相近名或相同词,那也没问题。关键是用户说没有某个功能的权限时。但是,通常我只知道他要是某个模块的权限,只能模糊搜索模块名。比如搜“车辆、数据、报表”,结果是有10几个满足条件,我只能按回车键一个个找了。
2.有时找到子系统后,如果模块下有好些功能,则要拉住鼠标滚动好多次才能找到要加的权限。
按查找方式:子系统-》模块-》功能的操作习惯、尽量减少用户在滚动中查找的目标优化,样式优化后的界面如下,是不是会好一些呢?
优点是:
1.即使子系统有20个左右也可以一眼找到。
2.每个子系统里有哪些模块也一目了然。如果模块多的,还可以再增加一个收展叶节点“功能名称”的功能,或者再增加一个针对叶节点的搜索功能。
3.搜索框支持所有节点的搜索。
另外,使用这个功能的场景通常是:
1.新增一个角色,给角色初始化权限;
2.新开发了某个模块、功能,要给已有的角色增加新模块、功能的权限;
3.某个报表作废了,要取消掉已有角色的访问权限。因为不取消就会有用户时不时去使用,反馈报表统计不准等问题。
4.业务权责调整,要给已有的角色调整权限。和第2个场景类似
不知道设计这个功能的前辈,是基于什么考虑的,目前用起来,第1个场景是没有大问题的,但是第2-4个场景则是很繁琐,麻烦得很。当然,如果让维护的人直接数据库CRUD搞起,那就另说了。但通过CRUD操作合理吗??有点想不通。。。(•_•)?
如果是我,我会增加可查看每个功能都有哪些角色配置了的功能,方便批量给角色新增和取消。
这个功能的其他问题:
1.有时会在修改权限后,发现被修改的角色,只有最后一次打钩的权限,之前勾上的权限全没了。
这个问题已经出现过2次了。我估计出现的场景应该是在网络不稳定、或者弱网的情况下,在之前权限的勾选状态还没渲染出来的情况下,操作者已添加新的权限,并保存了。
优化方法可以是:在未完成页面渲染时,保存按钮置灰。完成后再恢复。