发布时间:2026/7/24 11:53:54
tree回显问题 问题描述1、el-tree 勾选反显原本整个父子节点都勾选状态新增一个子节点因为父节点是全选状态所以新增的子节点也呈勾选状态实际是未勾选状态。2、用的是default-checked-keys 回显数据更新后必须在 $nextTick 中调用 setCheckedKeys这样才能确保树组件正确回显勾选状态。解决思路问题原因解决方案回显不生效default-checked-keys 非响应式使用 setCheckedKeys设置时机不对DOM 未渲染完成包裹在$nextTick中传了父节点 id父节点会强制全选并级联勾选所有子节点只传叶子节点 id 给 setCheckedKeys核心逻辑先处理子节点再根据子节点状态回推父节点只传叶子节点 id 给 setCheckedKeys父节点状态由组件自动计算markTreeChecked返回的是树数据本身不会影响setCheckedKeys的行为这样即使后端返回的数据中新增了子节点父节点也能正确呈现半选状态。htmlel-tree:datalistshow-checkbox node-keyidreftreedefault-expand-all:props{label: name,value: id}/el-tree获取数据及回显调用created 或 mounted// 获取树的数据getMenuTree().then(res{this.listres.data.data;// 获取已勾选的数据idreturngetEchoData();}).then(res{// 处理回显letmenuIds[];if(res.data.data.menuIdsres.data.data.menuIds.length0){menuIdsres.data.data.menuIds.split(,);}// 根据返回的 menuIds 处理树数据标记每个节点的选中状态用于界面展示this.markTreeChecked(this.list,menuIds);this.$nextTick((){if(this.$refs.tree){// 只传叶子节点 id避免父节点强制全选constleafIdsthis.filterLeafIds(this.list);this.$refs.tree.setCheckedKeys(leafIds);}});});methods// 递归标记树节点的选中状态markTreeChecked(treeData,checkedIds){treeData.forEach(node{if(node.childrennode.children.length0){// 先处理子节点constchildCheckedCountthis.markTreeChecked(node.children,checkedIds);// 根据子节点选中数量计算当前父节点状态constallCheckedchildCheckedCountnode.children.length;constnoneCheckedchildCheckedCount0;node.checkedallChecked;node.halfChecked!allChecked!noneChecked;}else{// 叶子节点直接判断是否在选中列表中node.checkedcheckedIds.includes(node.id);}});}// 收集所有选中的叶子节点 idfilterLeafIds(treeData){constleafIds[];consttraverse(nodes){nodes.forEach(node{if(node.childrennode.children.length0){traverse(node.children);}elseif(node.checked){leafIds.push(node.id);}});};traverse(treeData);returnleafIds;}

相关新闻

2026/7/24 11:53:54

CRAG技术解析:检索增强生成的动态纠正机制

1. CRAG技术概述:检索增强生成的进化方向CRAG(Corrective Retrieval Augmented Generation)是检索增强生成(RAG)技术的最新演进形态,它通过引入动态纠正机制,显著提升了传统RAG系统的准确性和可…

2026/7/24 11:53:54

基于NLP与规则引擎的财务审计辅助系统构建与实践

在金融审计领域,审计人员每天需要处理海量的财务报告、交易记录和公司公告,其中可能混杂着错误信息、刻意隐瞒或数据矛盾。传统审计流程高度依赖人工核对和抽样检查,面对复杂业务和庞大数据量时,容易遗漏关键风险点。一个能够自动…

2026/7/24 11:53:54

天辛大师浅谈AI时代的修行,文科生是要有点人文精神的

AI时代的文人精神话说丙午年仲夏,齐鲁之地有个秀才,姓孔名墨,字子规,乃是至圣先师嫡传后裔。此人自幼饱读诗书,尤爱《儒林外史》,常叹吴敬梓笔锋如刀,刺透士林虚伪。这年深秋,孔墨赴…

2026/7/24 13:18:57

TPS65263-1Q1电源时序与软启动设计:从5.2µA电流源到多路电源协调

1. 项目概述与核心价值在为一个复杂的数字系统(比如一块高性能的FPGA或处理器板卡)设计电源时,我们常常会面临一个看似简单、实则暗藏玄机的问题:如何让这几路电压“优雅”地启动?直接上电,各路电源瞬间达到…

2026/7/24 13:18:57

深度学习中的层归一化技术解析与应用实践

1. 层归一化技术解析层归一化(Layer Normalization)是深度学习模型训练中的一项关键技术,它通过对神经网络层输出的标准化处理,显著提升了模型训练的稳定性和收敛速度。这项技术最早由Jimmy Lei Ba等人在2016年提出,现…

2026/7/24 13:18:57

C++从零构建游戏导航网格:原理、实现与工程实践

1. 项目概述:为什么导航网格是游戏AI的基石 在游戏开发,尤其是涉及复杂地形和大量AI角色的项目中,如何让一个虚拟角色智能地从A点移动到B点,同时避开障碍物、选择最优路径,是一个核心挑战。这就是游戏导航系统要解决的…

2026/7/24 13:18:57

指数加权平均原理与深度学习优化实践

1. 指数加权平均概述指数加权平均(Exponential Weighted Average,EWA)是一种在时间序列分析中广泛使用的平滑技术。我第一次接触这个概念是在优化算法课程中,当时教授用它来解释动量(Momentum)优化器的原理…

2026/7/24 13:18:57

大模型场景化学习路线与实战指南

1. 为什么大模型学习需要场景化路线?去年第一次接触大语言模型时,我和大多数新手一样陷入迷茫。官方文档里充斥着"transformer架构"、"注意力机制"这类术语,GitHub上的开源项目动辄需要16块GPU才能跑起来。直到我把学习目…

2026/7/24 13:13:57

TI DRV8306智能栅极驱动芯片:高可靠BLDC电机驱动保护与设计实战

1. 项目概述与核心价值在搞电机驱动的这些年里,我经手过不少栅极驱动芯片,从简单的半桥驱动到复杂的集成方案,踩过的坑和积累的经验都指向一个核心:可靠性是电机驱动设计的生命线。尤其是在电动工具、工业风扇、水泵这些需要长时间…

2026/7/23 12:54:51

Unity与Python本地通信:基于Flask的跨语言数据交换实战

1. 项目概述:为什么我们需要一个本地通信服务器?在游戏开发、数字孪生、仿真训练等众多领域,Unity作为强大的实时3D内容创作平台,其核心逻辑通常由C#驱动。然而,当我们需要进行复杂的数据分析、机器学习推理、科学计算…

2026/7/24 0:03:10

不同品牌斜齿行星减速机如何替换?以PX与PAG系列为例

不同品牌斜齿行星减速机如何替换?以 PX 与 PAG 系列为例 一、系列对应不等于型号直接互换 PX 与 PAG 都属于斜齿、方法兰、输出轴式精密行星减速机,结构形式和应用方向具有对应关系。 原设备使用PX系列时,可以优先从PAG系列中寻找替换型号。但…

2026/7/24 0:03:10

jdk8 把list 扁平化成String 多个以逗号分隔

在 JDK 8 中&#xff0c;将 List 扁平化为以逗号分隔的 String&#xff0c;有几种非常简洁且高效的方法。&#x1f680; 推荐方案&#xff1a;使用 Collectors.joining()这是最标准的 Java 8 写法&#xff0c;适用于 List<String>。javaimport java.util.stream.Collecto…

2026/7/24 0:03:10

java 两个 long id 怎么合并成一个long id 并且不重复

“把两个 Long ID 合并成一个唯一的 Long ID&#xff0c;且保证不重复”这个需求&#xff0c;在 Java 里直接做数学上的“完美合并”是不可能的。因为两个 Long&#xff08;各 64 位&#xff09;要合并成一个 Long&#xff08;64 位&#xff09;&#xff0c;在信息论上是有损压…

2026/7/23 23:42:43

3个高效策略:快速掌握Axure中文界面配置

3个高效策略&#xff1a;快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…