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-CSDN博客https://blog.csdn.net/clover_oreo/article/details/134345223?spm=1001.2014.3001.5502
真正的原因:
ROLE_ID是主键,无法更改状态
【解决方法】
需要将主键ROLE_ID会话状态保护从“需要校验和——会话级别”改为“无限制”
如此就能正常展示了