# 树形下拉和导航树组件问题排查指南
# 一、前置操作:补丁更新
在开始排查问题前,请务必完成以下补丁更新步骤,以排除已知问题的干扰:
- 前端:优先安装最新的前端补丁。
- 后端:优先建议安装后端合集补丁,若无合集补丁,请通过以下链接检查是否存在相关的补丁。若存在,请先安装对应补丁再进行后续问题排查,避免因已知BUG导致。
补丁参考链接:[http://help.primeton.com/productcs/patches/]
# 二、常见故障排查手册
# 1. 数据显示与加载问题
| 问题现象 | 可能原因 | 排查/解决方案 |
|---|---|---|
| 如何自关联成树形结构树状展示? | 实体关系配置。 | 1. 实体关联:确认实体已配置自关联(id/pid)或1:N关系。 2. 组件设置:在节点配置中正确映射“父节点关联字段”和“子节点关联字段”。 |
| 搜索功能无效或搜不到数据 | 1. 搜索模式配置不当。 2. 过滤条件冲突。 | 注:搜索方式是实体独有的配置,json和字典只有全量搜索。 1. 确认搜索模式: - 动态搜索:仅搜索叶子节点。 - 静态搜索:仅搜索已加载的节点。 - 全量搜索:可在高级扩展属性中添加 isEntityAllSearch: true(注意:数据量大时影响性能)。2. 过滤条件:检查是否在“查询实体前设置过滤条件”中设置了互斥的条件。 |
| 标签页中放置导航树组件,预览时不显示该组件 | 加载 | 可将标签页组件的“懒加载”属性开启。 |
| 数据选择树表展示,但是不触发为树形结构数据 | 自定义返回数据结构不符合树表要求。 | 检查是否有自定义接口返回this.data数据,返回的 this.data 的数据结构是否符合 vxe-table 树形要求,可通过 _hasChildren 字段的值控制是否显示下拉箭头(true/false)。 |
# 2. 交互与操作问题
| 问题现象 | 可能原因 | 排查/解决方案 |
|---|---|---|
| 树形下拉无法选中父节点 | 组件默认配置仅允许选中叶子节点。 | 可通过在高级-事件中配置允许选择( allowSelect)事件,调用 callback(true) 允许选中。可根据 node 属性控制可选和不可选 |
| 左数右表保存/新增后左侧树不刷新 | 缺乏刷新触发机制。 | 1. 注册监听:在“表单加载前”事件注册监听:this.$bus.$on('action_reload_tree', (data)=> { this.Api.getElement('treeRef').reloadParent(); })2. 触发事件:在右侧表单“提交成功”事件中发射事件: this.$bus.$emit('action_reload_tree', {})。 |
# 3. 配置与代码类问题
| 问题现象 | 可能原因 | 排查/解决方案 |
|---|---|---|
| 查询前过滤条件不生效 | 1. 代码逻辑错误。 2. 参数传递不对。 | 1. 抓包:打开浏览器F12控制台,查看网络请求中传递的参数是否正确。 2. 检查代码:确认查询前事件中 callback(condition) 的格式是否正确。3. 排序:排序字段通过 orderPropertyNames 配置,如 "id:desc"。 |
| 大数据量导致卡顿 | 一次性加载过多节点。 | 1. 避免使用“全量搜索”或默认全部展开。 2. 使用“动态搜索/懒加载”,按需加载数据。 3. 若必须处理大数据,建议在逻辑流中预处理数据,或通过业务条件缩小查询范围。 |
| 实体数据排序无效 | 未配置排序规则。 | 在“查询实体前设置过滤条件”事件中,通过 orderPropertyNames 指定排序字段(如 orderPropertyNames: 'listOrder:asc')。 |