# el-tree-new

# 使用

组件引入部分 略

页面上使用(需要设置node-key属性

<template>
	<el-tree-new ref="tree" show-checkbox node-key="menuId" :settings="defaultProps"  default-expand-all class="tree-warp" :data="menuList"></el-tree-new>
</template>

<script>
export default {
    data() {
		return {
            menuList: [],
            defaultProps: {
                children: "children",
                label: "title"
            },
        }
	}
}
</script>

接受el-tree所有参数及事件

# 调用el-tree的方法

调用el-tree的方法使用规则如下

this.$refs.tree.getTree().setCheckedKeys([])

先使用 getTree() 方法 获取 el-tree的实例,然后再调用el-tree拥有的方法

# 新增方法

方法名 使用方式 作用说明
expandAll this.$refs.tree.expandAll() 展开所有选项
foldAll this.$refs.tree.foldAll() 折叠所有选项
expandAllFirstLevel this.$refs.tree.expandAllFirstLevel() 展开所有一级树
foldAllFirstLevel this.$refs.tree.foldAllFirstLevel() 折叠所有一级树
judgeExpandAll this.$refs.tree.judgeExpandAll() 判断是否展开全部 是的话 返回 true,否则返回false
judgeFoldAll this.$refs.tree.judgeFoldAll() 判断是否折叠全部 是的话 返回 true,否则返回false
judgeExpandAllFirstLevel this.$refs.tree.judgeExpandAllFirstLevel() 判断是否展开全部一级树 是的话 返回 true,否则返回false
judgeFoldAllFirstLevel this.$refs.tree.judgeFoldAllFirstLevel() 判断是否折叠全部一级树 是的话 返回 true,否则返回false
selectAll this.$refs.tree.selectAll() 复选框模式下全选
unSelectAll this.$refs.tree.unSelectAll() 复选框模式下全不选
toggleSelectAll this.$refs.tree.toggleSelectAll() 复选框模式下反选
judgeSelectAll this.$refs.tree.judgeSelectAll() 判断是否全选 是的话 返回 true,否则返回false
judgeUnSelectAll this.$refs.tree.judgeUnSelectAll() 判断是否全不选 是的话 返回 true,否则返回false

注意: judgeExpandAll,judgeFoldAll,judgeExpandAllFirstLevel,judgeFoldAllFirstLevel,judgeSelectAll,judgeUnSelectAll

这四个方法 一般配合 expandChange 事件使用,需再添加定时器 ,否则有bug,如

<el-tree-new ref="tree" show-checkbox node-key="id" @expandChange="expandChange" @check-change="checkChange" />
	expandChange(){
      setTimeout(() => {
        if (this.isExpand) {
          const isFoldAllFirstLevel = this.$refs.tree.judgeFoldAllFirstLevel() //是否折叠所有一级树
          if (isFoldAllFirstLevel) {
            this.isExpand = false
          }
        } else {
          const isExpandAllFirstLevel = this.$refs.tree.judgeExpandAllFirstLevel() //是否展开所有一级树
          if (isExpandAllFirstLevel) {
            this.isExpand = true
          }
        }
      }, 100)
    },

# 新增属性

参数 说明 类型 默认值
data 树的数据 Array 树数据的示例,太长在这不写
settings 设置 Object {level: "level",children: "children",label: "label"}
maxLevel 限制最大层级 “1” 表示 最大层级为2层 “2” 表示 最大层级为 3层 ... 默认值为"",不限制层级 String ""

# 新增事件

事件名称 事件说明 备注
expandChange 折叠或展开时触发,无返回值 折叠状态改变 可能比 上面的 判断方法执行的慢,导致判断不准确,因此需要再上述判断方法添加 延时
上次更新: 6/29/2022, 3:01:11 PM