Tree 树

代码演示

安徽省
上海市
湖南省

基础用法

基础的树形结构展示。

查看代码 < />


<template>
  <w-tree
    :data="data"
    :props="defaultProps"
    highlight-current
    @node-click="handleNodeClick">
  </w-tree>
</template>
<script>
export default {
  data () {
    return {
      data: [
        {
        label: '安徽省',
        children: [{
          label: '安徽医科大学附属医院',
          children: [{
            label: '心内科'
          }]
        }]
      }, {
        label: '上海市',
        children: [{
          label: '上海第六人民医院',
          children: [{
            label: '口腔科'
          }]
        }, {
          label: '上海龙华医院',
          children: [{
            label: '外科'
          }]
        }]
      }, {
        label: '湖南省',
        children: [{
          label: '湖南省人民医院',
          children: [{
            label: '发热科'
          }]
        }, {
          label: '湖南省儿童医院',
          children: [{
            label: '小儿内科'
          }]
        }]
      }],
      defaultProps: {
        children: 'children',
        label: 'label'
      }
    }
  },
  methods: {
    handleNodeClick(data) {
      console.log(data);
    }
  }
}
</script>
区域一(region1)
区域二(region2)

可选择

适用于需要选择层级时使用。

查看代码 < />


<template>
  <w-tree
    :props="defaultProps"
    :load="loadNode"
    lazy
    show-checkbox
    @check-change="handleCheckChange">
  </w-tree>
</template>
<script>
export default {
  data () {
    return {
      defaultProps: {
        label: 'name',
        children: 'zones'
      },
      count: 1
  },
  }
  methods: {
    handleCheckChange(data, checked, indeterminate) {
      console.log(data, checked, indeterminate);
    },
    handleNodeClick(data) {
      console.log(data);
    },
    loadNode(node, resolve) {
      if (node.level === 0) {
        return resolve([{ name: '区域一(region1)' }, { name: '区域二(region2)' }]);
      }
      if (node.level > 3) return resolve([]);

      var hasChild;
      if (node.data.name === '区域一(region1)') {
        hasChild = true;
      } else if (node.data.name === '区域二(region2)') {
        hasChild = false;
      } else {
        hasChild = Math.random() > 0.5;
      }

      setTimeout(() => {
        var data;
        if (hasChild) {
          data = [{
            name:`地区(${this.count++})`
          }, {
            name: `地区(${this.count++})`
          }];
        } else {
          data = [];
        }

        resolve(data);
      }, 500);
    }
  }
}
</script>
region

懒加载自定义叶子节点

为树形组件添加参数lazy,并配合load属性,可以懒加载自定义的叶子结点。

查看代码 < />


<template>
  <w-tree
    :props="props1"
    :load="loadNode1"
    lazy
    show-checkbox>
  </w-tree>
</template>
<script>
export default {
  data () {
    return {
        props1: {
          children: 'children',
          label: 'label'
        }
      },
    },
    methods: {
      loadNode1(node, resolve) {
        if (node.level === 0) {
          return resolve([{ name: 'region' }]);
        }
        if (node.level > 1) return resolve([]);

        setTimeout(() => {
          const data = [{
            name: 'leaf',
            leaf: true
          }, {
            name: 'zone'
          }];

          resolve(data);
        }, 500);
      }
    }
}
</script>
安徽省
上海市
第六人民医院
上海大华医院
重庆市
重庆市三峡中心医院
重庆市儿童医院

默认展开与选中

可将 Tree 的某些节点设置为默认展开或默认选中。

查看代码 < />


<template>
  <w-tree
    :data="data2"
    show-checkbox
    node-key="id"
    :default-expanded-keys="[2, 3]"
    :default-checked-keys="[5]"
    :props="defaultProps">
  </w-tree>
</template>
<script>
export default {
  data () {
    return {
      data2: [{
          id: 1,
          label: '安徽省',
          children: [{
            id: 4,
            label: '合肥市',
            children: [{
              id: 9,
              label: '省立医院'
            }, {
              id: 10,
              label: '安医大第一附属医院'
            }]
          }]
        }, {
          id: 2,
          label: '上海市',
          children: [{
            id: 5,
            label: '第六人民医院'
          }, {
            id: 6,
            label: '上海大华医院'
          }]
        }, {
          id: 3,
          label: '重庆市',
          children: [{
            id: 7,
            label: '重庆市三峡中心医院'
          }, {
            id: 8,
            label: '重庆市儿童医院'
          }]
        }],
        defaultProps: {
          children: 'children',
          label: 'label'
        }
    },
  }
  methods: {
    handleNodeClick(data) {
      console.log(data);
    }
  }
}
</script>
CT
平扫CT
增强CT扫描
MRI
B超
肝、胆囊、胆管
胃、肠
眼睛

禁用与可选状态

可将 Tree 的某些节点设置禁用(disabled)状态和是否可选(selectable)状态。

查看代码 < />


<template>
  <w-tree
    :data="data3"
    show-checkbox
    ref="tree"
    node-key="id"
    :default-expanded-keys="[1,7]"
    :default-checked-keys="[2]"
  >
  </w-tree>
</template>
<script>
export default {
  data () {
    return {
        data3: [
          {
            id: 1,
            label: "CT",
            selectable: false, // 选项不可选
            children: [
              {
                id: 2,
                label: "平扫CT"
              },
              {
                id: 3,
                label: "增强CT扫描",
                selectable: false
              }
            ]
          },
          {
            id: 4,
            label: "MRI",
            selectable: false,
            children: [
              {
                id: 5,
                label: "中枢神经系统"
              },
              {
                id: 6,
                label: "膀胱",
                selectable: false
              }
            ]
          },
          {
            id: 7,
            label: "B超",
            selectable: false,
            children: [
              {
                id: 8,
                label: "肝、胆囊、胆管"
              },
              {
                id: 9,
                label: "胃、肠",
                disabled: true // 选项被禁用
              },
              {
                id: 10,
                label: "眼睛"
              }
            ]
          }
        ],
        defaultProps: {
          children: 'children',
          label: 'label'
        }
    },
  }
}
</script>
市场部
售前
线下谈判
线上销售
产品设计部
设计一部
设计二部
研发部
服务端开发
前端开发

树节点选择

本例展示如何获取和设置选中节点。获取和设置各有两种方式:通过 node 或通过 key。如果需要通过 key 来获取或设置,则必须设置node-key。

查看代码 < />


<template>
  <w-tree
    :data="data2"
    show-checkbox
    default-expand-all
    node-key="id"
    ref="tree"
    highlight-current
    :props="defaultProps">
  </w-tree>

  <div class="buttons">
    <w-button @click="getCheckedNodes">通过 node 获取</w-button>
    <w-button @click="getCheckedKeys">通过 key 获取</w-button>
    <w-button @click="setCheckedNodes">通过 node 设置</w-button>
    <w-button @click="setCheckedKeys">通过 key 设置</w-button>
    <w-button @click="resetChecked">清空</w-button>
  </div>
</template>
<script>
export default {
  data () {
    return {
      data2: [{
          id: 1,
          label: '市场部',
          children: [{
            id: 4,
            label: '售前',
            children: [{
              id: 9,
              label: '线下谈判'
            }, {
              id: 10,
              label: '线上销售'
            }]
          }]
        }, {
          id: 2,
          label: '产品设计部',
          children: [{
            id: 5,
            label: '设计一部'
          }, {
            id: 6,
            label: '设计二部'
          }]
        }, {
          id: 3,
          label: '研发部',
          children: [{
            id: 7,
            label: '服务端开发'
          }, {
            id: 8,
            label: '前端开发'
          }]
        }],
        defaultProps: {
          children: 'children',
          label: 'label'
        }
      },
    },
    methods: {

      getCheckedNodes() {
        console.log(this.$refs.tree.getCheckedNodes());
      },
      getCheckedKeys() {
        console.log(this.$refs.tree.getCheckedKeys());
      },
      setCheckedNodes() {
        this.$refs.tree.setCheckedNodes([{
          id: 5,
          label: '设计一部'
        }, {
          id: 9,
          label: '线下谈判'
        }]);
      },
      setCheckedKeys() {
        this.$refs.tree.setCheckedKeys([3]);
      },
      resetChecked() {
        this.$refs.tree.setCheckedKeys([]);
      }
    }
}
</script>
特别关注
今日挂号管理
专家挂号
工作中心
今日就诊
就诊人数统计
已就诊
复诊人数管理
个人设置
基础设置
用户密码
业务设置
排班管理
特别关注
今日挂号管理
专家挂号
工作中心
今日就诊
就诊人数统计
已就诊
复诊人数管理
个人设置
基础设置
用户密码
业务设置
排班管理

自定义节点内容

节点的内容支持自定义,可以在节点区添加按钮或图标等内容。

查看代码 < />


<template>
  <div class="custom-tree-container">
    <div class="block">
      <p>使用 render-content</p>
      <w-tree
        :data="data4" show-checkbox
        node-key="id" default-expand-all
        :expand-on-click-node="false"
        :render-content="renderContent">
      </w-tree>
    </div>
    <div class="block">
      <p>使用 scoped slot</p>
      <w-tree
        :data="data5" show-checkbox
        node-key="id" default-expand-all
        :expand-on-click-node="false">
        <span class="custom-tree-node" slot-scope="{ node, data }">
          <span>{{ node.label }}</span>
          <span>
            <w-button
              type="text" size="mini"
              @click="() => append(data)">
              Append
            </w-button>
            <w-button
              type="text" size="mini"
              @click="() => remove(node, data)">
              Delete
            </w-button>
          </span>
        </span>
      </w-tree>
    </div>
  </div>
</template>
<script>
export default {
  data () {
  const data = [
        {
        label: '特别关注',
        children: [{
          label: '今日挂号管理',
          children: [{
            label: '专家挂号'
          }]
        }]
      }, {
        label: '工作中心',
        children: [{
          label: '今日就诊',
          children: [{
            label: '就诊人数统计'
          }]
        }, {
          label: '已就诊',
          children: [{
            label: '复诊人数管理'
          }]
        }]
      }, {
        label: '个人设置',
        children: [{
          label: '基础设置',
          children: [{
            label: '用户密码'
          }]
        }, {
          label: '业务设置',
          children: [{
            label: '排班管理'
          }]
        }]
      }];

    return {
      defaultProps: {
        children: 'children',
        label: 'label'
      },
      data4: JSON.parse(JSON.stringify(data)),
      data5: JSON.parse(JSON.stringify(data))
  },
  }
  methods: {
    append(data) {
      const newChild = { label: 'testtest', children: [] };
      if (!data.children) {
        this.$set(data, 'children', []);
      }
      data.children.push(newChild);
    },

    remove(node, data) {
      const parent = node.parent;
      const children = parent.data.children || parent.data;
      const index = children.findIndex(d => d.label === data.label);
      children.splice(index, 1);
    },

    renderContent(h, { node, data, store }) {
        const isFile = !node.childNodes.length
        const iconName = isFile ? 'w-icon-user' : node.expanded ? 'w-icon-pdf-solid'  : 'w-icon-pdf'
        return (
          <span class="custom-tree-node1
                  <span>
                      <i class={['w-tree__icon', iconName]}></i>
                      <span>{node.label}</span>
                  </span>
                  <span class="button">
                      <w-button size="mini" type="text" on-click={ () => this.append(data) }>Append</w-button>
                      <w-button size="mini" type="text" on-click={ () => this.remove(node, data) }>Delete</w-button>
                  </span>
          </span>
        );
      }
  }
}
</script>

节点过滤

通过关键字过滤树节点。

查看代码 < />


<template>
  <div class="tree-search">
    <w-input
      placeholder="请输入内容"
      v-model="filterText"
      suffix-icon="w-icon-search"
      @input="handleInputChange"
    >
    </w-input>

    <w-tree
      class="filter-tree"
      :data="data2"
      :props="defaultProps"
      default-expand-all
      :filter-node-method="filterNode"
      ref="tree2"
    >
    </w-tree>
  </div>
</template>
<script>
export default {
  data () {
    return {
      filterText: '',
      data2: [
        {
          id: 1,
          label: '特别关心',
          children: [
            {
              id: 4,
              label: '挂号管理',
              children: [
                {
                  id: 9,
                  label: '专家挂号'
                },
                {
                  id: 10,
                  label: '普通挂号'
                }
              ]
            }
          ]
        },
        {
          id: 2,
          label: '工作中心',
          children: [
            {
              id: 5,
              label: '今日就诊'
            },
            {
              id: 6,
              label: '已就诊'
            }
          ]
        },
        {
          id: 3,
          label: '个人中心',
          children: [
            {
              id: 7,
              label: '排班管理'
            },
            {
              id: 8,
              label: '密码设置'
            }
          ]
        }
      ],
      defaultProps: {
        children: 'children',
        label: 'label'
      }
    };
  },
  methods: {
    filterNode(value, data) {
      if (!value) return true;
      return data.label.indexOf(value) !== -1
    },
    handleInputChange(val) {
      this.$refs.tree2.filter(val);
    }
  }
}
</script>
<style lang="scss" scoped>
.tree-search {
  width: 500px;
  .w-input {
    margin-bottom: 15px;
  }
}
</style>
产品管理
活动策划
系统配置

手风琴模式

对于同一级的节点,每次只能展开一个。

查看代码 < />


<template>
  <w-tree
    :data="data"
    :props="defaultProps"
    accordion
    @node-click="handleNodeClick">
  </w-tree>
</template>
<script>
export default {
  data () {
    return {
      data: [
        {
        label: '产品管理',
        children: [{
          label: '日活管理',
          children: [{
            label: '异常报告'
          }]
        }]
      }, {
        label: '活动策划',
        children: [{
          label: '营销活动策划方案',
          children: [{
            label: '实体医院走访'
          }]
        }, {
          label: '线上展销计划',
          children: [{
            label: '基础药房对接'
          }]
        }]
      }, {
        label: '系统配置',
        children: [{
          label: '基础设置',
          children: [{
            label: '人员管理'
          }]
        }, {
          label: '业务管理',
          children: [{
            label: '底层业务设置'
          }]
        }]
      }],
      defaultProps: {
        children: 'children',
        label: 'label'
      }
  },
  }
  methods: {
    handleNodeClick(data) {
      console.log(data);
    }
  }
}
</script>
目录一(level-1)
二级 1-1
三级 1-1-1
三级 1-1-2
目录二(level-1)
二级 2-1
二级 2-2
目录三(level-1)
二级 3-1
二级 3-2
三级 3-2-1
三级 3-2-2
三级 3-2-3

可拖拽节点

通过 draggable 属性可让节点变为可拖拽。

查看代码 < />


<template>
  <w-tree
    :data="data6"
    node-key="id"
    default-expand-all
    draggable
    :allow-drop="allowDrop"
    :allow-drag="allowDrag"
    @node-drag-start="handleDragStart"
    @node-drag-enter="handleDragEnter"
    @node-drag-leave="handleDragLeave"
    @node-drag-over="handleDragOver"
    @node-drag-end="handleDragEnd"
    @node-drop="handleDrop"
  >
  </w-tree>
</template>
<script>
export default {
  data () {
    return {
      data6: [
        {
          id: 1,
          label: "目录一(level-1)",
          children: [
            {
              id: 4,
              label: "二级 1-1",
              children: [
                {
                  id: 9,
                  label: "三级 1-1-1"
                },
                {
                  id: 10,
                  label: "三级 1-1-2"
                }
              ]
            }
          ]
        },
        {
          id: 2,
          label: "目录二(level-1)",
          children: [
            {
              id: 5,
              label: "二级 2-1"
            },
            {
              id: 6,
              label: "二级 2-2"
            }
          ]
        },
        {
          id: 3,
          label: "目录三(level-1)",
          children: [
            {
              id: 7,
              label: "二级 3-1"
            },
            {
              id: 8,
              label: "二级 3-2",
              children: [
                {
                  id: 11,
                  label: "三级 3-2-1"
                },
                {
                  id: 12,
                  label: "三级 3-2-2"
                },
                {
                  id: 13,
                  label: "三级 3-2-3"
                }
              ]
            }
          ]
        }
      ],
      defaultProps: {
        children: "children",
        label: "label"
      }
    },
    methods: {
      handleDragStart(node, ev) {
        console.log("drag start", node);
      },
      handleDragEnter(draggingNode, dropNode, ev) {
        console.log("tree drag enter: ", dropNode.label);
      },
      handleDragLeave(draggingNode, dropNode, ev) {
        console.log("tree drag leave: ", dropNode.label);
      },
      handleDragOver(draggingNode, dropNode, ev) {
        console.log("tree drag over: ", dropNode.label);
      },
      handleDragEnd(draggingNode, dropNode, dropType, ev) {
        console.log("tree drag end: ", dropNode && dropNode.label, dropType);
      },
      handleDrop(draggingNode, dropNode, dropType, ev) {
        console.log("tree drop: ", dropNode.label, dropType);
      },
      allowDrop(draggingNode, dropNode, type) {
        if (dropNode.data.label === "二级 3-1") {
          return type !== "inner";
        } else {
          return true;
        }
      },
      allowDrag(draggingNode) {
        return draggingNode.data.label.indexOf("三级 3-2-2") === -1;
      }
    }
  }
</script>

API

Attributes

参数 说明 类型 可选值 默认值 Version
auto-expand-parent 展开子节点的时候是否自动展开父节点 Boolean true
accordion 是否每次只打开一个同级树节点展开 Boolean false
allow-drag 判断节点能否被拖拽 Function(node)
allow-drop 拖拽时判定目标节点能否被放置。type 参数有三种情况:'prev'、'inner' 和 'next',分别表示放置在目标节点前、插入至目标节点和放置在目标节点后 Function(draggingNode, dropNode, type)
current-node-key 当前选中的节点 String, number
check-strictly 在显示复选框的情况下,是否严格的遵循父子不互相关联的做法,默认为 false Boolean false
check-on-click-node 是否在点击节点的时候选中节点,默认值为 false,即只有在点击复选框时才会选中节点。 Boolean false
draggable 是否开启拖拽节点功能 Boolean false
data 展示数据 Array
default-expanded-keys 默认展开的节点的 key 的数组 Array
default-expand-all 是否默认展开所有节点 Boolean false
default-checked-keys 默认勾选的节点的 key 的数组 Array
expand-on-click-node 是否在点击节点的时候展开或者收缩节点, 默认值为 true,如果为 false,则只有点箭头图标的时候才会展开或者收缩节点。 Boolean true
empty-text 内容为空的时候展示的文本 String
filter-node-method 对树节点进行筛选时执行的方法,返回 true 表示这个节点可以显示,返回 false 则表示这个节点会被隐藏 Function(value, data, node)
highlight-current 是否高亮当前选中节点,默认值是 false。 Boolean false
indent 相邻级节点间的水平缩进,单位为像素 number 16
icon-class 自定义树节点的图标 String
load 加载子树数据的方法,仅当 lazy 属性为true 时生效 Function(node, resolve)
lazy 是否懒加载子节点,需与 load 方法结合使用 Boolean false
node-key 每个树节点用来作为唯一标识的属性,整棵树应该是唯一的 String
props 配置选项,具体看下表 Object
render-after-expand 是否在第一次展开某个树节点后才渲染其子节点 Boolean true
render-content 树节点的内容区的渲染 Function Function(h, { node, data, store }
show-checkbox 节点是否可被选择 Boolean false

props

参数 说明 类型 可选值 默认值 Version
children 指定子树为节点对象的某个属性值 String
disabled 指定节点选择框是否禁用为节点对象的某个属性值 Boolean, Function(data, node)
isLeaf 指定节点是否为叶子节点,仅在指定了 lazy 属性的情况下生效 Boolean, Function(data, node)
label 指定节点标签为节点对象的某个属性值 String, Function(data, node)
selectable 指定节点是否可选择(当设置该值为 false 时,默认设置或手动调用选中相关的方法,均无效) Boolean true v1.5.24

方法

Tree 内部使用了 Node 类型的对象来包装用户传入的数据,用来保存目前节点的状态。 Tree 拥有如下方法:

方法名 说明 参数 Version
append 为 Tree 中的一个节点追加一个子节点 (data, parentNode) 接收两个参数,1. 要追加的子节点的 data 2. 子节点的 parent 的 data、key 或者 node
filter 对树节点进行筛选操作 接收一个任意类型的参数,该参数会在 filter-node-method 中作为第一个参数
getCheckedKeys 若节点可被选择(即 show-checkboxtrue),则返回目前被选中的节点的 key 所组成的数组 (leafOnly) 接收一个 Boolean 类型的参数,若为 true 则仅返回被选中的叶子节点的 keys,默认值为 false
getHalfCheckedNodes 若节点可被选择(即 show-checkboxtrue),则返回目前半选中的节点所组成的数组 -
getHalfCheckedKeys 若节点可被选择(即 show-checkboxtrue),则返回目前半选中的节点的 key 所组成的数组 -
getCheckedNodes 若节点可被选择(即 show-checkboxtrue),则返回目前被选中的节点所组成的数组 (leafOnly) 接收一个 Boolean 类型的参数,若为 true 则仅返回被选中的叶子节点,默认值为 false
getCurrentKey 获取当前被选中节点的 key,使用此方法必须设置 node-key 属性,若没有节点被选中则返回 null
getCurrentNode 获取当前被选中节点的 node,若没有节点被选中则返回 null
getNode 根据 data 或者 key 拿到 Tree 组件中的 node (data) 要获得 node 的 key 或者 data
insertBefore 为 Tree 的一个节点的前面增加一个节点 (data, refNode) 接收两个参数,1. 要增加的节点的 data 2. 要增加的节点的后一个节点的 data、key 或者 node
insertAfter 为 Tree 的一个节点的后面增加一个节点 (data, refNode) 接收两个参数,1. 要增加的节点的 data 2. 要增加的节点的前一个节点的 data、key 或者 node
remove 删除 Tree 中的一个节点 (data) 要删除的节点的 data、key 或者 node
setCheckedNodes 设置目前勾选的节点,使用此方法必须设置 node-key 属性 (nodes) 接收勾选节点数据的数组
setCheckedKeys 通过 keys 设置目前勾选的节点,使用此方法必须设置 node-key 属性 (keys, leafOnly) 接收两个参数,1. 勾选节点的 key 的数组 2. Boolean 类型的参数,若为 true 则仅设置叶子节点的选中状态,默认值为 false
setCurrentKey 通过 key 设置某个节点的当前选中状态,使用此方法必须设置 node-key 属性 (key) 待被选节点的 key,若为 null 则取消当前高亮的节点
setChecked 通过 key / data 设置某个节点的勾选状态,使用此方法必须设置 node-key 属性 (key/data, checked, deep) 接收三个参数,1. 勾选节点的 key 或者 data 2. Boolean 类型,节点是否选中 3. Boolean 类型,是否设置子节点 ,默认为 false
setCurrentNode 通过 node 设置某个节点的当前选中状态,使用此方法必须设置 node-key 属性 (node) 待被选节点的 node
updateKeyChildren 通过 keys 设置节点子元素,使用此方法必须设置 node-key 属性 (key, data) 接收两个参数,1. 节点 key 2. 节点数据的数组

Events

事件名称 说明 回调参数 Version
check 当复选框被点击的时候触发 共两个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、树目前的选中状态对象,包含 checkedNodes、checkedKeys、halfCheckedNodes、halfCheckedKeys 四个属性
current-change 当前选中节点变化时触发的事件 共两个参数,依次为:当前节点的数据,当前节点的 Node 对象
check-change 节点选中状态发生变化时的回调 共三个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、节点本身是否被选中、节点的子树中是否有被选中的节点
node-click 节点被点击时的回调 共三个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、节点对应的 Node、节点组件本身。
node-contextmenu 当某一节点被鼠标右键点击时会触发该事件 共四个参数,依次为:event、传递给 data 属性的数组中该节点所对应的对象、节点对应的 Node、节点组件本身。
node-expand 节点被展开时触发的事件 共三个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、节点对应的 Node、节点组件本身
node-collapse 节点被关闭时触发的事件 共三个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、节点对应的 Node、节点组件本身
node-drag-start 节点开始拖拽时触发的事件 共两个参数,依次为:被拖拽节点对应的 Node、event
node-drag-enter 拖拽进入其他节点时触发的事件 共三个参数,依次为:被拖拽节点对应的 Node、所进入节点对应的 Node、event
node-drag-leave 拖拽离开某个节点时触发的事件 共三个参数,依次为:被拖拽节点对应的 Node、所离开节点对应的 Node、event
node-drag-over 在拖拽节点时触发的事件(类似浏览器的 mouseover 事件) 共三个参数,依次为:被拖拽节点对应的 Node、当前进入节点对应的 Node、event
node-drag-end 拖拽结束时(可能未成功)触发的事件 共四个参数,依次为:被拖拽节点对应的 Node、结束拖拽时最后进入的节点(可能为空)、被拖拽节点的放置位置(before、after、inner)、event
node-drop 拖拽成功完成时触发的事件 共四个参数,依次为:被拖拽节点对应的 Node、结束拖拽时最后进入的节点、被拖拽节点的放置位置(before、after、inner)、event

Scoped Slot

name 说明 Version
自定义树节点的内容,参数为 { node, data }

贡献者

类型 参与者
设计者 UED视觉组
维护者 UED前端组
上次更新: 4/22/2020, 5:01:44 PM