element-ui的树形表格el-table懒加载lazy子节点修改数据后局部刷新

这篇具有很好参考价值的文章主要介绍了element-ui的树形表格el-table懒加载lazy子节点修改数据后局部刷新。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在使用element-ui的树形表格(el-table)懒加载(lazy),并使用了懒加载,出现了一个问题,在对当前节点添加、修改、删除一个子节点数据时,当前节点的子节点数据并不自动刷新出来。element-ui官方没有提供子节点修改数据后局部刷新方法。文章来源地址https://www.toymoban.com/news/detail-527469.html

<el-table
    v-loading="loading"
    row-key="id"
    :data="dataList"
    lazy
    :load="load"
    ref="table"
    :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
    ......
</el-table>
<!--删除按钮-->
<el-button
    type="text"
    style="color: #ff6d6d"
    @click="delete(row)">
    删除
</el-button

>

首先,在data(){}中定义一个maps:new Map();

data(){
    return(){
        maps: new Map(),
        dataList: []
    }
}

然后,当数据进行懒加载时把点击的节点数据存储在map中,点击删除时再从map中获取节点数据,进行数据刷新操作。

methods:{
    // 懒加载
    load(tree, treeNode, resolve) {
        // getData()是懒加载获取数据的方法
        this.getData(tree, resolve);
        // 接下来是map的set存储
        // -- key值是点击节点的id
        // -- value是load接收的参{tree,treeNode,resolve}
        this.maps.set(tree.id, { tree, treeNode, resolve })    
    },
    // 懒加载动态获取数据
    getData(tree, resolve){
        let { data: res } = await this.$http.get('sys/getList', {
            params: {
              id: tree.id
            }
        })
        if (!res.data) {
            return
        }
        resolve(
            res.data.map((item) => {
                return {
                    ...item
                }
            })
        )
    },
    // 删除方法
    delete(row){
        this.refreshLoad(item.parentId)
    },
    // 获取map中的数据,重新加载
    refreshLoad(parentId){
        // 根据父级ID取出对应节点数据
        const { tree, treeNode, resolve } = this.maps.get(parentId)
        // 根据父节点id更新子节点数据
        // -- 先给table标签添加一个ref="table1"
        // -- parentId: 就是父节点的ID
        // -- []:就是子节点的数据
        this.$set(this.$refs.table.store.states.lazyTreeNodeMap, parentId, [])
        if (tree) {
            // 将取出对应数据再传给load方法,重新加载数据。
            this.load(tree, treeNode, resolve);
        }
    }
}

到了这里,关于element-ui的树形表格el-table懒加载lazy子节点修改数据后局部刷新的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue中element-ui表格组件el-table封装,在table表格中插入图片

            这次写的项目是写后台管理系统这部分,对于后台管理使用vue写,用组件的话,table组件用得次数比较多,可以封装一个table组件。         1.如封装的table组件:  :prop=\\\"item.prop\\\"  :label=\\\"item.label\\\"是必须要有的,其他的可以根据自己需要写 。 2.封装之后是就是使

    2024年02月15日
    浏览(41)
  • Element-ui中表格el-table图片预览效果实现(非常实用)

    🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅  文末获取源码联系 🏆先展示效果:   🏆使用的是下面这个插

    2024年02月11日
    浏览(44)
  • 修改element-ui中的表格el-table的滚动条样式

    一.单独修改element-ui中的表格el-table的滚动条样式(两种方法) 1. 2.  二.保持整个页面的滚动条的风格是一致(直接改全局的滚动条样式) 三.页面内某一组件滚动条样式美化  scroll-bar是需要滚动条组件的元素,类名自定义

    2024年02月11日
    浏览(49)
  • [element-ui] el-table表格合并 span-method

    element 中表格合并 span-method 函数详解

    2024年02月13日
    浏览(40)
  • vue element-ui表格(el-table)数据导出execl文件

    功能实现:element UI 的el-table数据导出为execl文件 使用到插件:xlsx、file-saver exportExecl.js 代码如下: 页面代码如下:

    2024年02月14日
    浏览(42)
  • element-ui里el-table表格操作列多横线怎么解决

    在vue中封装了element-ui表格,然后使用插槽,fixed定位等,导致样式出现了错乱 本文就到此结束了,希望大家共同努力,早日拿下 el 💪💪。 如果文中有不对的地方,或是大家有不同的见解,欢迎指出 🙏🙏。 如果大家觉得所有收获,欢迎一键三连💕💕。

    2024年02月11日
    浏览(46)
  • element-ui 表格el-table高度不是一个固定值时固定表头

    elementui中为表格组件提供了height属性实现固定表头 height可以为数字或者字符串,当为一个数字时表示固定的高度,也可以为百分比等字符串。 当height不是一个固定值时,如期望表格可以填充完页面剩余空间,并且固定表头时,可以通过给height属性赋值字符串形式实现。以页

    2024年01月25日
    浏览(49)
  • element-ui的table实现滚动加载,涵el-table组件封装一份

    重点就是 a d d R o l l L i s t e n e r addRollListener a d d R o l l L i s t e n e r 函数,想快点弄上去看效果的直接弄这个函数吧 如果不在mounted中则一定要this.$nextTick(() = this.addRollListener()) 示例代码 如果你把上面的看过了;只需要在 a d d R o l l L i s t e n e r addRollListener a d d R o l l L i s t e

    2023年04月08日
    浏览(39)
  • 解决vue-electron element-UI中el-table表格不显示

    问题:element-UI官网上el-table组件,引入自己项目的时候表格不显示。 解决方案: 修改.electron-vuewebpack.renderer.config.js 将 修改为 即可解决。

    2024年02月16日
    浏览(39)
  • element-ui的el-table表格复选框只能单选,不可多选

    element的el-table表格复选框只能选中一条,选择下一条,上一条去掉勾选。使用文档中select方法,el-table绑定一个ref。具体代码实现如下 toggleRowSelection:用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中) 

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包