element表格多列排序_vue表格树状结构的实现

本文介绍了如何在Vue项目中使用Element UI实现表格多列排序及树状结构。首先,讨论了避免直接使用Element自带的简单实现方式,而是通过处理后端返回的树状结构数据,将其转换为平级数据列表。接着,详细阐述了构建map对象、添加自定义字段如`level`、`index`、`isOpen`和`isShow`来控制树状结构的展开和折叠。此外,还讲解了如何利用这些字段实现展开/折叠操作,以及结合`index`字段进行上移和下移排序的功能。文章最后展示了实现后的效果。
摘要由CSDN通过智能技术生成
这绝对是我最后一次写树状结构,我非常的确定一定以及肯定! 上一篇文章总结了 vue树状目录组件,忘记的可以点击传送门回顾一下: vue目录树组件

bc5e2758c9b76990f040e6ec57a9102e.png

还是这个目录树,改版成 表格树状结构

我这里采用的UI库是Element,库自带了一种实现方式:

6732105863d2bfe2cd5e093cd71b47ad.png

但是这种自带的实现方式,可扩展性很差,就很low,而且这样偷懒会让自己的技术止步不前,心里不安呀。

首先明确实现逻辑,表格树状结构中所谓的树状,并不是数据结构上的树状,只是布局上的效果而已,这里要求的数据结构是平级的数据列表

还是上篇文章中说的,后端直接返回树状结构数据。

e8271c8920ade390f2acde8d81a5ddf9.png

所以这里需要对数据处理一下,将树状结构的数据转换成平级的。getTreeList 方法中调用接口先获取到后端数据。

getTreeList() {
        this.treeList = [];    Catalog.getListByParent(this.catalogId).then((res) => {
        if (res.status === 0) {
            const treeList = res.data || [];        const tableList: ITree[] = [];        this.setCatalogList(tableList, treeList);        this.treeList = treeList;        this.tableList = tableList;    }  });},

这里有个需要注意的点,接口返回的数据并没有直接赋给 this.treeList ,因为直接赋值之后 vue 不会一直监听数据的变化,而

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值