请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

北向
金牌服务用户   /  发表于:2025-10-23 15:00  /   查看:74  /  回复:1
1金币
有这么一个场景,普通用户看1,管理员看1和2,2不给普通用户看(包括文字和数值),如下图所示


实现思路:
一、 1与2各写好SQL逻辑的数据集
(1)1处SQL直接传入用户id参数,即能实现各看各数;
(2)2处SQL通过不同用户角色判断再传入用户id参数,即能控制不同用户角色所能看到的数据权限范围

二、将需要权限控制的文字设置一个字段名“系列名”,且将文字写入“系列名”字段。注意:此逻辑一定要在用户角色权限表的最里层设置,通过传入的用户id不仅能控制数值,还能控制此文字能否可见
数据层(SQL)逻辑如下:
  1. select
  2. count(distinct DocCode) 数值
  3. , 系列名
  4. , 标签
  5. from
  6. (
  7. select
  8. 用户id
  9. ,权限等级
  10. ,部门id
  11. ,'总客户新增数' 系列名
  12. ,'客户' 标签
  13. from 用户权限表
  14. where 权限等级 in ('本部门','全公司') and userCode={{@userCode:type=text,default=''}}
  15. )t1
  16. cross join 业务数据表
  17. where
  18. (权限等级='本人' and 用户id={{@userCode:type=text,default=''}})
  19. or (权限等级='本部门' and t1.部门id=t2.部门id)
  20. or (权限等级='全公司' )
复制代码


表现层(仪表板)设置:
1.添加仪表板参数


2.将系列名添加进去,选择第一个值即可


附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

评分

参与人数 1金币 +666 收起 理由
lucas.Yan + 666 老铁666,期待更有价值的分享!

查看全部评分

1 个回复

lucas.Yan
超级版主   /  发表于:2025-10-23 16:03:08
沙发
感谢分享使用技巧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部