【antd + vue】Tree 树形控件:默认展开所有树节点 、点击文字可以“选中/取消选中”节点

一、defaultExpandAll 默认展开所有树节点

1、需求:默认展开所有树节点

2、问题:

v-if="data.length"判断的层级不够,只判断到了物理那一层,所以只展开到那一层。

3、原因分析:

默认展开所有树节点, 如果是异步数据,需要在数据返回后再实例化,建议用 v-if="data.length";当有 expandedKeys 时,defaultExpandAll 将失效。

4、解决办法:

判断:到最里面的那一层数据都有了之后再渲染。

二、点击文字可以"选中/取消选中"节点

1、需求:点击文字选中/取消选中节点

2、解决办法:

javascript 复制代码
<a-tree
    checkable
    v-model="checkedKeys":tree-data="treeData"
    @select="treeNodeSelect">
</a-tree>

/**
* @description: 点击文字也能选中
* @return {*}
*/
const treeNodeSelect= (selectedKeys, e) => {
    // 转成真正的数组
    const toArray = (list) => Array.from(list || []);
    // 获取被点击的树节点
    const node = e.nativeEvent.path.find((item) => {
      return toArray(item.classList).findIndex(className => className === "ant-tree-treenode-switcher-open") !== -1;
    });
    // 获取checkbox复选框
    const checkbox = toArray(node.childNodes).find((item) => {
      return toArray(item.classList).findIndex(className => className === "ant-tree-checkbox") !== -1;
    })
    // 模拟点击
    checkbox && checkbox.click();
};

3、参考链接:

ant-design-vue tree组件选中节点也可以勾选上checkbox

相关推荐
Selicens几秒前
git批量删除本地多余分支
前端·git·后端
wuhen_n5 分钟前
KeepAlive:组件缓存实现深度解析
前端·javascript·vue.js
前端付豪6 分钟前
Nest 项目小实践之图书展示和搜索
前端·node.js·nestjs
wuhen_n7 分钟前
Vue Router与响应式系统的集成
前端·javascript·vue.js
Ruihong30 分钟前
《VuReact:下一代 Vue 3 -> React 智能编译工具,支持 SFC 与增量迁移》
vue.js
FansUnion34 分钟前
用 AI 自动生成壁纸标题、描述和 SEO Slug
javascript
青青家的小灰灰38 分钟前
金三银四面试官最想听的 React 答案:虚拟 DOM、Hooks 陷阱与大型列表优化
前端·react.js·面试
HelloReader39 分钟前
深入理解 Tauri 架构与应用体积优化实战指南
前端
lemon_yyds39 分钟前
vue 2 升级vue3 : ref 和 v-model 命名为同名
前端·vue.js
codingWhat39 分钟前
小程序里「嵌」H5:一套完整可落地的 WebView 集成方案
前端·uni-app·webview