1. 概述
1.1 应用场景
数据决策系统中,不同用户/职务/角色查看同一张 FVS可视化看板,需要指定部分组件不可见,看到的内容不相同,可通过 JS 来实现。
1.2 预期效果
FVS可视化看板中存在多个个组件。
1)一般用户在数据决策系统中查看该模板时,只能看到其他组件,看不见组件表格1、表格2、表格3。
2)部门「领导部」/角色「普通角色1」/用户Lisa」在数据决策系统中查看该模板时,可以看到组件 表格1、表格2、表格3。
2. 示例
本文示例:
FVS可视化看板中存在组件 表格1、表格2、表格3 和其他组件。
系统中存在部门「领导部」、角色「普通角色1」、用户「Lisa」。
希望 FVS可视化看板中的组件 表格1、表格2、表格3,对其他用户隐藏,对部门「领导部」、角色「普通角色1」、用户「Lisa」可见。
2.1 设置初始化后事件
打开 FVS可视化看板,选择一个需要控制查看权限的组件「表格3」。点击「交互>事件」,添加「初始化后事件」。如下图所示:
1)设置参数
position=INARRAY("领导部",GETUSERDEPARTMENTS())
position 参数为领导部在 GETUSERDEPARTMENTS() 返回的部门中的位置,若领导部不在返回的部门中,则 position 为 0role=$fine_role
user=$fine_username
2)添加 JavaScript 代码,代码如下:
注1:代码中的表格1、表格2、表格3为选中的组件名称,用户需要按照模板实际情况修改。
注2:代码中的「领导部」、「普通角色1」、「Lisa」分别为可看到该组件的部门、角色、人员,用户需要按照模板实际情况修改。
setTimeout(function() {}, 1000);
var a = position;
var b = role;
var c = user;
if (a <= 0 && b != '普通角色1' && c != 'Lisa') {
duchamp.getWidgetByName('表格1').setVisible(false);
duchamp.getWidgetByName('表格2').setVisible(false);
duchamp.getWidgetByName('表格3').setVisible(false);
}
2.2 分配目录查看权限
管理员登录数据决策系统,点击「管理系统>目录管理>管理目录」,点击「添加模板」,选择上一节设置好的模板。
管理员登录数据决策系统,点击「管理系统>权限管理>普通权限管理>权限快速配置」,为「所有部门」分配该模板目录的查看权限。
2.3 效果预览
不同用户登录系统,查看该模板,看到的内容不同,如 1.2 节所示。