Skip to content

左树选中节点与后代筛选 ​

9.0.5 候选在 diy_LeftJoinRightView 增加“右侧加载子级数据” RightLoadDescendants,默认 0。字段缺失、NULL 或 false 保持原单节点路径,不产生额外范围请求。官方系统账号和系统角色的组织树可开启,其它左右结构保持原值。

开关与查询范围 ​

配置状态右侧查询范围
RightLoadDescendants=0、字段缺失、NULL 或 false保持原单节点路径,不新增范围请求
开启“右侧加载子级数据”加载所选节点及有权读取的后代,仍受原右表权限约束
点击“全部”清除节点筛选,按原权限查询

开启时,点击节点调用固定登录 Managed 入口 platform-left-tree-scope,只提交当前右侧菜单 Id 与选中节点 Id。服务端从真实当前租户、用户与主库唯一左右配置派生左侧菜单、树表、父键及关联键,不接受客户端树快照、owner、tenant 或 SQL。配置链末级必须精确匹配菜单,不能用子串命中授权。

授权快照与稳定排序 ​

左树快照逐页通过原 Client FormEngine 读取,每页 100 条,仍校验左菜单、角色、字段和数据权限;最多 10,000 节点。总数变化、缺页、重复、超限或未授权节点均失败关闭。遍历按 Sort、Id 稳定排序,不跨越不可读中间节点查找后代,孤儿不混入其它节点。右表最终查询继续走其原菜单、角色、租户与行数据权限,范围筛选不会授予额外权限。

官方组织树初始化按 Sort ASC 查询,既有父子字段和菜单身份不变。系统账号筛选保留主部门 DeptId 与兼职部门 DeptIds 的同组 OR;系统角色保留 DeptIds 的 JSON 值包含关系,不把 Id 直接拼入 SQL。

自定义事件与失败恢复 ​

自定义 ShujieDDJSJ 必须读取 V8.TreeScope.Values,返回 {TreeScopeApplied:true, PropsWhere:[...]}。未适配的旧事件不得静默丢掉后代范围;更新时须完整读取并合并原业务事件,官方升级不能直接覆盖客户定制。搜索关键词只影响左树可见呈现,后代范围来自左菜单的完整有界授权集合,不把当前页当完整组织树。

范围请求失败时隐藏旧右表并显示重试说明,不用空条件显示“全部”。快速切节点时旧响应和旧事件失败不覆盖当前选择;“全部”继续清除节点筛选并按原权限查询。现有右侧新增父关联、左右面板偏好和手机抽屉保持。

升级与验收 ​

  1. 先升级后端和 PC。
  2. 通过责任官方应用追加字段、Managed 与精确配置行。
  3. 配套资源齐备前保持默认关闭。

验收包含普通用户/管理员的权限交集、循环/孤儿/重复/深树、分页变化、Sort、全部/单节点切换、快速点击、错误恢复、右侧新增和手机抽屉。实际源码编译或 VM 测试不等于真实页面、角色或手机验收。

MIT License.