ant design vue Tree组件叶子节点横向排列

antdesignvue的树形组件要实现组件叶子节点横向排列有点坑,没有 配置属性,需要自己想办法。

要实现的效果

看tree组件的dom结构,父元素flex竖向布局,子项不论节点层级都在同一层!!!

难点在于想直接把其中某一些节点,横向布局排列。

我的实现思路核心还是通过给叶子节点绑定类名,通过类名来覆盖原始的样式。

1、.ant-tree-list-holder-inner 的包裹元素上去掉 flex属性

<style lang="scss" scoped>
.auth_tree {
  :deep(.ant-tree-list-holder-inner) {
    display: inline-block !important;
  }
}
</style>


2、给叶子节点绑定className

把树形结构递归遍历,给子叶添加class属性

因为antdesignvue文档上给数据添加class属性

const addClassToLeafNodes = treeData => {
  treeData.forEach(item => {
    if (item?.children?.length > 0) {
      addClassToLeafNodes(item.children);
    } else {
      if (item.permissionType === 2) item.class = 'yu_leaf';
    }
  });
  return treeData;
};


3、通过className定位到叶子节点,将所有叶子节点的display 改成 inline-flex。

<style>
.yu_leaf {
  display: inline-flex !important;
  width: 200px;
}
</style>


给不同层级的节点绑定className,然后覆盖原有样式,比如边距等。
然后就能实现叶子项横向排列了。

祝好!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yusirxiaer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值