elementui 表格 数据-element ui 树形表单数据延迟加载

2023-08-29 0 1,891 百度已收录

element ui中所谓table的延迟加载就是一次只显示一层数据

 <el-table
    :data="tableData"
    style="width: 100%;margin-top: 10px;"
    row-key="id"
    border
    lazy
    :load="getChildrens"
    :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
>
<el-table-column prop="name" label="名称" width = '300' ></el-table-column>
</el-table>

row-key 是此表单必须需要的键。 唯一表示如果有id就必须使用id。

然后是数据属性,一般是第一层数据的来源

load方法是每次点击展开时启动的方法

首先请求第一个生命周期的top数据elementui 表格 数据,并给出与表数据属性绑定的tableData参数

如果item.hasChildren属性为true,则该数据后面会有一个可以展开的小箭头。 如果为 false,则不会显示。

created(){
    getSystemMenuList(0).then((src) => {
       if(src.status == 200) {
             this.tableData = src.data.map((item, index) =>{
                 item.hasChildren = true;
                 return item
             })
         }
     })
}

然后我们就编译load对应的getChildrens函数

getChildrens(tree,treeNode, resolve){
   getSystemMenuList(tree.id).then((response) => {
        var data
        if(response.data.length&&response.data.length > 0){
            let data = response.data.map((item, index) =>{
                item.hasChildren = true;
                return item
            })
            resolve(data)
        }else{
            tree.hasChildren = false
        }
    });
},

当点击某条数据后面的展开箭头时触发该函数

需要三个参数

第一条是引发风暴的数据

第二个我们不需要使用

第三个是返回给他的孩子数据

这里我们使用第一个参数,即触发风暴的数据的id来调整socket

然后判断socket返回的数据是否不为空,循环遍历其子集并将其hasChildren赋值为true,表示数据项可以进一步扩展

然后将调整后的子数据扔去解析elementui 表格 数据,使其显示为触发风暴数据的子集

如果数据没有被socket调用出来,并且数据为空,那么该数据没有子集,数据本身的第一个参数被赋给hasChildren为false,说明这个数据难以扩展。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 elementui elementui 表格 数据-element ui 树形表单数据延迟加载 https://www.wkzy.net/game/168848.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务