tree-transfer
> 树形穿梭框
简介
树形穿梭框组件,基于 vue + element-ui,使用场景:经营类目、部门选择等场景。使用前请先确认安装并注册 element-ui。
安装
``
bash
npm install ele-tree-transfer -S
`
挂载方式
$3
`
bash
import { TreeTransfer } from "ele-tree-transfer";
export default {
components: {
TreeTransfer,
},
}
`
$3
在 main.js 文件中加入代码:
`
bash
import TreeTransfer from "ele-tree-transfer";
Vue.use(TreeTransfer);
`
$3
`
js
v-model="model"
ref="treeTransfer"
node-key="id"
default-expand-all
show-checkbox
search
showCheckAll
showCheckNum
nodeCheck
:props="props"
:data="data"
>
{{ node.label }}
{{ node.label }}
左侧全选
左侧反选
右侧全选
右侧反选
获取v-model绑定值
清空v-model
``
使用文档
注:未标注的参数与方法,请参照element-ui tree组件。
| 序号 | 参数 | 说明 | 类型 | 默认值 | 补充 |
| ---- | ---------------- | ------------------------------------------------------- | -------------------------- | ------------------------------------------------------------------------------------------ | --------------------------------------------------------- |
| 1 | width | 宽度 | String | 100% | - |
| 2 | height | 高度 | String | 40vh | - |
| 3 | props | 同 el-tree 属性 props | Object | {label: "label",children: "children",disabled: "disabled",value: "value",isLeaf: () => {}} | - |
| 4 | checkedDisabled | 选中节点后是否禁用该节点 | Boolean | true | 选中禁用 |
| 5 | titles | 自定义列表标题 | 同 el-transfer 组件 titles | Array | ["列表 1", "列表 2"] | - |
| 6 | nodeKey | 唯一标识 | String | id | - |
| 7 | checkedKeys | 默认勾选的节点数组 | Array | [] | - |
| 8 | placeholder | 搜索提示文字 | Array | ["请输入内容", "请输入内容"] | - |
| 9 | search | 是否可搜索 | Boolean | false | 默认不显示搜索 |
| 10 | inputLength | 搜索输入长度 | Number | 50 | - |
| 11 | data | 展示数据 | Array | [] | - |
| 12 | checkedBox | 是否展示多选框 | Boolean | true | - |
| 13 | expandAll | 是否默认展开所有节点 | Boolean | true | - |
| 14 | checkStrictly | 是否遵循父子节点不关联 | Boolean | false | - |
| 15 | accordion | 是否开启手风琴模式 | Boolean | false | - |
| 16 | nodeCheck | 对底层节点添加点击节点本身选中当前节点 | Boolean | false | 只支持最底层节点 |
| 17 | lazy | 是否开启懒加载 | Boolean | false | - |
| 18 | load | 懒加载回调 | Function | - | - |
| 19 | selectMax | 限制可选中数量 | String/Number | 50 | - |
| 20 | isAcross | 是否不允许跨一级添加 默认允许 | Boolean | false | - |
| 21 | isSuperior | 是否开启父节点选中子节点禁用规则 | Boolean | false | - |
| 22 | isMostJunior | 过滤上级节点,只保存最下级节点 | Boolean | false | - |
| 23 | expandLevelKeys | 默认展开到多少级,懒加载时需手动调用 defaultExpand 方法 | Object | {level: 0,key: "level"} | 懒加载数据庞大时不推荐使用 |
| 24 | showCheckAll | 表头是否显示全选框 | Boolean | false | - |
| 25 | showCheckNum | 表头是否显示总数以及勾选数量 | Boolean | false | - |
| 26 | buttonTexts | 自定义按钮文案 | Array | [] | - |
| 27 | headerPosition | 表头标题显示位置 | String | left | left 左,center 居中 |
| 28 | draggable | 是否开启拖拽节点功能 | Boolean | false | - |
| 29 | draggableLevel | 允许拖拽节点等级,默认 1 级 | String/Number | 1 | 默认全部允许拖拽 |
| 30 | rightCheckChange | 右侧节点树勾选发生变化时回调 | Function | - | - |
| 31 | allowDrag | 判断节点能否被拖拽 | Function | - | - |
| 32 | allowDrop | 拖拽时判定目标节点能否被放置 | Function | - | - |
| 33 | nodeDragStart | 节点开始拖拽时触发的事件 | Function | - | - |
| 34 | nodeDragEnter | 拖拽进入其他节点时触发的事件 | Function | - | - |
| 35 | nodeDragLeave | 拖拽离开某个节点时触发的事件 | Function | - | - |
| 36 | nodeDragOver | 在拖拽节点时触发的事件(类似浏览器的 mouseover 事件) | Function | - | - |
| 37 | nodeDragEnd | 拖拽结束时(可能未成功)触发的事件 | Function | - | - |
| 38 | nodeDrop | 拖拽成功完成时触发的事件 | Function | - | - |
> ---
事件
| 序号 | 事件名称 | 说明 | 回调参数 |
| ---- | --------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| 1 | checkedChange | 右侧节点选中状态回调,返回唯一标识数组 | node-key 已勾选状态的数组 |
| 2 | node-click | 节点被点击时的回调 | 共三个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、节点对应的 Node、节点组件本身 |
| 1 | node-drag-start | 节点开始拖拽时触发的事件 | 共两个参数,依次为:被拖拽节点对应的 Node、event |
| 2 | node-drag-enter | 拖拽进入其他节点时触发的事件 | 共三个参数,依次为:被拖拽节点对应的 Node、所进入节点对应的 Node、event |
| 3 | node-drag-leave | 拖拽离开某个节点时触发的事件 | 共三个参数,依次为:被拖拽节点对应的 Node、所离开节点对应的 Node、event |
| 4 | node-drag-over | 在拖拽节点时触发的事件(类似浏览器的 mouseover 事件) | 共三个参数,依次为:被拖拽节点对应的 Node、当前进入节点对应的 Node、event |
| 5 | node-drag-end | 拖拽结束时(可能未成功)触发的事件 | 共四个参数,依次为:被拖拽节点对应的 Node、结束拖拽时最后进入的节点(可能为空)、被拖拽节点的放置位置(before、after、inner)、event |
| 6 | node-drop | 拖拽成功完成时触发的事件 | 共四个参数,依次为:被拖拽节点对应的 Node、结束拖拽时最后进入的节点、被拖拽节点的放置位置(before、after、inner)、event |
> ---
方法
| 序号 | 名称 | 说明 | 补充 |
| ---- | ----------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| 1 | enableOrDisableParent | 启用or禁用父节点 | enableOrDisableParent(data,type,all),1:需要操作的节点data或key 参数2:true禁用 false启用 参数3:是否操作所有父级 |
| 2 | setChecked | 通过 key / data 设置某个节点的勾选状态,使用此方法必须设置 node-key 属性 | (key/data, checked, deep) 接收三个参数,1. 勾选节点的 key 或者 data 2. boolean 类型,节点是否选中 3. boolean 类型,是否设置子节点 ,默认为 false |
| 3 | getChecked | 获取已选中数据方法 | 返回由 node-key 组成的选中数据数组 |
| 4 | clearChecked | 清除节点选中 | clearChecked(type,clearChecked),type:left 左边 right 右边 all 全部清除,clearChecked:Boolean 是否取消禁用 |
| 5 | updateKeyChildren | 通过 keys 设置节点子元素,使用此方法必须设置 node-key 属性 | (key, data) 接收两个参数,1. 节点 key 2. 节点数据的数组 |
| 6 | changeTreeChecked | 设置整棵树节点全选与反选 | (true, "left") 接收两个参数,1.节点选中与否,true 选中 false 取消选中。2.String 类型 left 左边树,right 右边树 |
| 7 | enableOrDisableNode | 启用or禁用某个节点 | enableOrDisableNode(data,type),1:需要操作的节点data或key 2、Boolean:true禁用,false启用 |
| 8 | clearSearch | 清除搜索条件 | clearSearch(key) 默认左右两侧搜索条件,key传值:left左侧,right:右侧 |
> ---
slot
| 序号 | 插槽名称 | 说明 |
| ---- | ------------ | ------------ |
| 1 | leftHeader | 左侧头部插槽 |
| 2 | rightHeader | 右侧头部插槽 |
| 3 | leftSearch | 左侧搜索框插槽 |
| 4 | rightSearch | 右侧搜索框插槽 |
| 5 | leftButton | 左侧按钮插槽 |
| 6 | rightButton | 右侧按钮插槽 |
| 7 | leftText | 左侧树自定义内容 |
| 8 | rightText | 右侧树自定义内容 |
> ---
git仓库地址
https://gitee.com/yt1997/ele-tree-transfer