欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Element Tree树形组件懒加载,刷新数据

程序员文章站 2022-05-03 18:04:00
...

在项目中很多机构管理中会用到tree展示机构数据,当数据发生改变后该怎么刷新呢?
Element Tree树形组件懒加载,刷新数据

在网上搜索了很久,最后结合网上的方案自己想到了一个办法。

1.首先在第一次初始化的时候把node和resolve保存下来为rootNoderootReslove

2.数据改变的时候删除保存下来的node的children,将rootNoderootReslove做为参数手动调用load方法,

比如说在新增成功后直接调用this.resetNode()就能刷新tree,相关代码:

 <el-tree
          :props="props"
          :load="loadNode"
          lazy
          :highlight-current="true"
          @node-click="clickLoad"
          ref="load"
        >
 props: {
        label: 'name',
        children: 'data',
        isLeaf: 'leaf'
      },
  // 查询组织架构
    loadNode (node, resolve) {
      if (node.level === 0) {
       this.rootNode = node
        this.rootResolve = resolve
        getConfigManageList('', {name: this.keywords}).then(res => {
          this.pageData = res.data
          resolve(res.data)
          this.loading = false
        }).catch(() => {
          resolve([{name: '暂无组织...', leaf: true}])
          this.loading = false
        })
      }
      if (node.level > 0) {
        getConfigManageList(node.data.code, {name: this.keywords}).then(res => {
          this.pageData = res.data
          res.data.forEach(item => {
            if (item.subNumber <= 0) {
              item.level = true
            } else {
              item.level = ''
            }
          })
          this.fatherCode = node.code
          resolve(res.data)
        })
      }
    },
 // 刷新tree
    resetNode(){
      var theChildren = this.rootNode.childNodes
      theChildren.splice(0, theChildren.length)
      this.loadNode(this.rootNode, this.rootResolve)
    },

还有这种操作!同事们都惊呆了,纷纷夸我厉害

相关标签: 前端 element