Skip to content

tree(树)

基础用法

示例:tree1.png

代码示例:

vue
<template>
  <div class="bs-bg-color-white p10">
    <v-tree
      ref="tree"
      :container-height="height"
      :data="data"
      :props="props"
      display="CODE_NAME"
      data-type="TREE"
      multiple
      expand
      @node-collapse="handleNodeCollapse"
      @node-expand="handleNodeExpand"
      @node-click="handleNodeClick"
    >
    </v-tree>
  </div>
</template>
<script>
export default {
  data() {
    return {
      height: 500,
      data: [
        {
          label: "一级 1",
          code: "code1",
          children: [
            {
              label: "二级 1-1",
              code: "code1-1",
              pcode: "code1",
              children: [
                {
                  label: "三级 1-1-1",
                  code: "code1-1-1",
                  pcode: "code1-1",
                },
              ],
            },
          ],
        },
        {
          label: "一级 2",
          code: "code2",
          children: [
            {
              label: "二级 2-1",
              code: "code2-1",
              pcode: "code2",
              children: [
                {
                  pcode: "code2-1",
                  code: "code2-1-1",
                  label: "三级 2-1-1",
                },
              ],
            },
            {
              label: "二级 2-2",
              code: "code2-2",
              pcode: "code2",
              children: [
                {
                  pcode: "code2-2",
                  code: "code2-2-1",
                  label: "三级 2-2-1",
                },
              ],
            },
          ],
        },
        {
          label: "一级 3",
          code: "code3",
          children: [
            {
              label: "二级 3-1",
              code: "code3-1",
              pcode: "code3",
              children: [
                {
                  pcode: "code3-1",
                  code: "code3-1-1",
                  label: "三级 3-1-1",
                },
              ],
            },
            {
              label: "二级 3-2",
              code: "code3-2",
              pcode: "code3",
              children: [
                {
                  label: "三级 3-2-1",
                  code: "code3-2-1",
                  pcode: "code3-2",
                },
              ],
            },
          ],
        },
      ],
      props: {
        label: "label",
        children: "children",
        id: "code",
        pid: "pcode",
        disabled: "disabled",
      },
    };
  },
  methods: {
    /**
     * 处理收起事件
     */
    handleNodeCollapse(originalData, option) {
      console.log("originalData", originalData);
      // originalData {label: '二级 1-1', code: 'code1-1', pcode: 'code1', children: Array(1)}
      console.log("option", option);
      // option {id: 'code1-1', label: '二级 1-1', pid: 'code1', hasChildren: 1, disabled: undefined, …}
    },
    /**
     * 处理展开事件
     */
    handleNodeExpand(originalData, option) {
      console.log("originalData", originalData);
      // originalData {label: '二级 1-1', code: 'code1-1', pcode: 'code1', children: Array(1)}
      console.log("option", option);
      // option {id: 'code1-1', label: '二级 1-1', pid: 'code1', hasChildren: 1, disabled: undefined, …}
    },
    /**
     * 处理点击事件
     */
    handleNodeClick(originalData, option) {
      console.log("originalData", originalData);
      // originalData {label: '二级 1-1', code: 'code1-1', pcode: 'code1', children: Array(1)}
      console.log("option", option);
      // option {id: 'code1-1', label: '二级 1-1', pid: 'code1', hasChildren: 1, disabled: undefined, …}
    },
  },
  mounted() {},
  computed: {},
};
</script>

属性:

参数说明类型可选值默认值
data数据Array-[]
dataType数据类型String'ARRAY','TREE'' '
expand是否默认展开Boolean-false
defaultExpandedKeys默认展开哪些节点Boolean-false
multiple复选状态Boolean-false
strictly在复选模式下,是否严格的遵循父子不互相关联Boolean-false
display节点显示类型String'CODE','NAME','CODE_NAME''NAME'
filterConsists过滤集中包含的值String'SELF','CHILDREN''SELF'
props展示数据结构Object-{
id: 'code',
label: 'name',
pid: 'pcode',
children: 'children',
disabled: 'disabled',
}
sortKey排序字段对应的键名,如果没有传,则根据组件默认排序String-''
containerHeight树组件高度Number-700
simpleOption是否为简单的选项数据Boolean-true
filterFunc自定义过滤方法(需要同步返回true或者false,使用该方法时,建议将simpleOption属性设置为false)Function-false
isLeaf是否只有末级节点可选择Boolean-false

事件:

事件名说明参数参数说明
complete加载完成事件--
node-collapse节点收起事件originalData,option节点对应的原始数据,节点本身
node-expand节点展开事件originalData,option节点对应的原始数据,节点本身
node-click节点点击事件originalData,option节点对应的原始数据,节点本身
check复选事件checkedKeys,checkedOriginalData选中的原始数据的key值,选中的原始数据

方法:

方法名说明参数参数说明
expandByCode通过编码展开  (展开方式:展开此编码节点的所有父节点和节点本身)code需要展开的节点编码
setActiveNode设置当前激活的节点code需要激活的节点code
updateNodeValue更新节点数据nodeId,value = {}节点id,需要更新的值
setCheckedKeys设置当前选中节点value节点props.id的值
getCheckedNodes获取当前选中节点的节点信息--
getCheckedKeys获取当前选中节点对应的key值--

插槽:

插槽名称说明参数
default自定义树节点的内容node