随着时间的推移,我们小组成员一边测试一边完善系统,开发已经进入比较靠后的阶段了。
在一次测试的时候,我们发现了一个问题:在这个系统中,当不同的成员拥有对同一个事情的需求时,能够看到不属于自己应有的功能并对其进行操作。
听起来似乎很拗口,那我就举个例子说明一下。
科室库和中心库都有查看申请的列表的功能(当科室库需要某种耗材的时候要向中心库提交申请)中心库还有对申请表进行确认的功能但科室库没有。
上述是系统在该部分的目标,而出现的问题是以科室库的身份登录的时候,能够看到与中心库完全相同的界面和可执行操作。出现这一问题的原因是这部分在写的时候,所有角色都使用同一个页面的代码(我对于不同的角色使用相同的功能一直倾向于这样做)却没有为不同的角色分配不同的标识以被识别。
如图所示 因此为了解决这个问题,我专门在角色相关的数据里加入了roleID这一属性,通过对不同的角色赋予不同的值来确定是否显示相关组件。
相关的代码如下:
组件的代码,可见出现了 v-show的使用
<el-button
size="mini"
type="primary"
@click="handleViewChange(scope.$index, scope.row)"