反饋已提交

網絡繁忙

JS透過判斷使用者/部門/角色控制決策報表的組件查看權限

1. 概述

1.1 應用場景

數據決策系統中,不同使用者/職務/角色查看同一張決策報表,需要指定部分組件不可見,看到的內容不相同,可透過JS來實現。

1.2 預期效果

決策報表中存在多個個組件。

1)一般使用者在數據決策系統中查看該範本時,只能看到其他組件,看不見組件report0、report1、report2。

2)部門「領導部」/角色「普通角色1」/使用者Lisa」在數據決策系統中查看該範本時,可以看到組件report0、report1、report2。

2. 範例

本文範例:

決策報表中存在組件report0、report1、report2和其他組件。

系統中存在部門「領導部」、角色「普通角色1」、使用者「Lisa」。

希望決策報表中的組件report0、report1、report2,對其他使用者隱藏,對部門「領導部」、角色「普通角色1」、使用者「Lisa」可見。

2.1 設定初始化後事件

開啟決策報表,選擇需要控制查看權限的組件chart0。點選「事件」,新增「初始化後」事件。如下圖所示:

1)設定參數

  • position=INARRAY("領導部",GETUSERDEPARTMENTS())
    position 參數為領導部在 GETUSERDEPARTMENTS() 傳回的部門中的位置,若領導部不在傳回的部門中,則 position 為 0

  • role=$fine_role

  • user=$fine_username

2)新增 JavaScript 程式碼,程式碼如下:

注1:程式碼中的report0、report1、report2為選中的組件名稱,使用者需要按照範本實際情況修改。

注2:程式碼中的「領導部」、「普通角色1」、「Lisa」分別為可看到該組件的部門、角色、人員,使用者需要按照範本實際情況修改。

setTimeout(function({}, 1000);
var a = position;
var b = role;
var c = user;
if (a <= 0 && b != '普通角色1' && c != 'Lisa') {
_g().getWidgetByName('report0').setVisible(false);
_g().getWidgetByName('report1').setVisible(false);
_g().getWidgetByName('report2').setVisible(false);
}


2.2 分配目錄查看權限

管理者登入數據決策系統,點選「管理系統>目錄管理>管理目錄」,點選「新增範本」,選擇上一節設定好的範本。

管理者登入數據決策系統,點選「管理系統>權限管理>普通權限管理>權限快速配置」,為「所有部門」分配範本目錄的查看權限。

2.3 效果預覽

不同使用者登入系統,查看該範本,看到的內容不同,如1.2節所示。

附件列表


主題: 數據決策系統
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

文 檔回 饋

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉