APEX 权限的树形列表展示——基于APEX FancyTree Select

本文介绍了如何在OracleAPEX中使用Apex-Fancy-Tree-Select插件展示权限数据,包括SQL查询、选中模式、错误重现及解决方法,重点在于处理主键ROLE_ID的会话状态问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Apex-Fancy-Tree-Select  git学习网页

GitHub - RonnyWeiss/Apex-Fancy-Tree-Select: Fancy Tree Plug-in for Oracle APEXicon-default.png?t=N7T8https://github.com/RonnyWeiss/Apex-Fancy-Tree-Select

  详情可见↓:

存档&改造【06】Apex-Fancy-Tree-Select花式树的使用&误删页数据还原(根据时间节点导出导入)-优快云博客icon-default.png?t=N7T8https://blog.youkuaiyun.com/clover_oreo/article/details/133672082?spm=1001.2014.3001.5502

select distinct (o.PERMISSION_ID)      as id,          --数据id
                o.PARENT_PERMISSION_ID  as PARENT_ID,   --父id
                o.PERMISSION_NAME      as title,       --显示的标题
                o.PERMISSION_ID        as VALUE,       --标题对应的值
                1              as TYPE,
                case
                    when (select count(1)
                          from BASIC_SYSTEM_ROLE_PERMISSION role_per
                          where role_per.PERMISSION_ID = o.PERMISSION_ID
                            and role_per.ROLE_ID = :P47_ROLE_ID
                            and role_per.TENANT_ID = :USER_TENANT) = 1 then
                        1
                    else
                        0
                    end        as SELECTED,    --设置加载时选中 0(null): 不选中 1:选中
                0              as EXPANDED,    --是否展开未选中项 0(null): 不展开 1:展开
                1              as CHECKBOX,    --是否启用复选框 0(null): 禁用 1:启用
                0              as UNSELECTABLE --设置不可选中 0(null): 可以 1: 不可以
from BASIC_SYSTEM_PERMISSION o
where o.TENANT_ID = :USER_TENANT
  and DEL_FLAG = 0 AND IS_ENABLE = 1
start with o.PERMISSION_ID is not null
connect by prior o.PERMISSION_ID = o.PARENT_PERMISSION_ID
order by o.PERMISSION_ID;

细节,这里应该要加上对应的权限id,但是我忘记替换了,用的还是原版的

!!!注意点:

selectMode为2:选中父级不影响子级,为3:选中父级的同时也会选中子级

storeTtem:绑定权限ID

修改后

问题重现了:

Error occured! Please check browser console for more information.

系统发生错误!有关详细信息,请检查浏览器控制台。

调试消息:
New: 显示处理过程中尝试保存处于会话状态的项 P43_ROLE_ID。项保护级别为: 可以在项具有 "会话" 校验和时设置项。 未传入校验和, 或者传入的校验和应该适合保护级别为 "(未提供校验和)" 的项。

之前也遇到过↓,之前的问题原因是数据类型有误×,这次我专门看了,数据类型都是number,不存在数据类型不一致的问题【开发问题&解决方法记录】01.dian-优快云博客https://blog.youkuaiyun.com/clover_oreo/article/details/134345223?spm=1001.2014.3001.5502

真正的原因:

ROLE_ID是主键,无法更改状态

【解决方法】

需要将主键ROLE_ID会话状态保护从“需要校验和——会话级别”改为“无限制

如此就能正常展示了

xiangqxiang'q

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值