1.0.0 • Published 11 months ago

gs-tree-transfer v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
11 months ago

gs-tree-transfer

简介

gs-tree-transfer 是一个基于wl-tree-transfer的穿梭框组件,原组件仅支持vue2.0 GitHub

快速上手

先 npm 下载插件

npm install gs-tree-transfer --save

npm i gs-tree-transfer -S

文档

序号参数说明类型默认值补充
1width宽度String100%建议在外部盒子设定宽度和位置
2height高度String320px-
3title标题String"源列表", "目标列表"-
4button_text按钮名字Array--
5from_data源数据Array-数据格式同element-ui tree组件,但必须有id和pid
6to_data目标数据Array-数据格式同element-ui tree组件,但必须有id和pid
7defaultProps配置项-同el-tree中propsObject{ label: "label", children: "children", isLeaf: "leaf", disable: "disable" }用法和el-tree的props一样
8node_key自定义node-key的值,默认为idStringid必须与treedata数据内的id参数名一致,必须唯一
9pid自定义pid的参数名,默认为"pid"Stringpid有网友提出后台给的字段名不叫pid,因此增加自定义支持
10leafOnly废弃---
11filter是否开启筛选功能Booleanfalse根据defaultProps参数的label字段筛选
12openAll是否默认展开全部Booleanfalse存在性能问题
13renderContent renderContentLeft, renderContentRight自定义树节点, 用法同element-ui treeFunction-2.2.3版本拆为两个函数分别定义左右两侧自定义节点
14mode设置穿梭框模式Stringtransfermode默认为transfer模式,即树形穿梭框模式,可配置字段为addressList改为通讯录模式,通讯录模式时按钮不可自定义名字,如要自定义标题名在title数组传入四个值即可,addressList模式时标题默认为通讯录、收件人、抄送人、密送人
15transferOpenNode穿梭后是否展开穿梭的节点Booleantrue默认为true即展开穿梭的节点,便于视觉查看,增加此参数是因为数据量大时展开会有明显卡顿问题,但注意,如此参数设置为false则穿梭后不展开,毕竟无法确定第几层就会有庞大数据
16defaultCheckedKeys默认选中节点Arrayfalse只匹配初始时默认节点,不会在你操作后动态改变默认节点
17placeholder设置搜索框提示语String输入关键词进行筛选-
18defaultTransfer是否自动穿梭一次默认选中defaultCheckedKeys的节点Booleanfalse用来满足用户不想将数据拆分成fromData和toData的需求
19arrayToTree是否开启一维数组转化为树形结构Booleanfalse数据必须存在根节点,并且不会断节,数据格式详见github上app.vue,根据id、pid对应关系转化,存在一定的性能问题
20addressOptions通讯录模式配置项Object{num: Number, suffix: String, connector: String}num-> 所需右侧通讯录个数,默认3 suffix-> label后想要拼接的字段(如id,即取此条数据的id拼接在后方)默认suffix connector -> 连接符(字符串)默认-
21lazy是否启用懒加载Booleanfalse效果动el-tree懒加载,不可和openAll或默认展开同时使用
22lazyFn懒加载的回调函数Function-当适用lazy时必须传入回调函数,示例:lazyFn='loadNode',返回参数loadNode(node, resolve, from), node->当前展开节点node,resolve->懒加载resolve,from -> left/right 表示回调来自左侧/右侧
23high-light是否高亮当前选中节点Booleanfalse-
24filterNode自定义搜索函数Function-不传则仍默认根据defaultProps参数的label字段筛选
25defaultExpandedKeys默认展开节点Array-要展开的节点id数组,会自动去重生效在左右两侧
26lazyRight2.2.9 版本lazy属性只对左侧树生效,如果需要右侧也是用懒加载->lazyRightBoolean---
27sjr通讯录模式,设置右侧收件人数据Array--
28csr通讯录模式,设置右侧抄送人数据Array--
29msr通讯录模式,设置右侧密送人数据Array--
30rootPidValue穿梭框模式,根节点数据pid的值,用于匹配退出循环,重要String,Number0--插件不再强制将你的数据根节点pid都改为0
31checkStrictly是否父子不关联Booleanfalse此模式不支持lazy,返回的fromData和toData是最新数据,obj里面的keys,nodes不完整。且对删空子节点后的父节点左右两边处理逻辑有差异:当授权时既然要在右边出现,必然需要左侧父节点,而删除授权时,移除子权限并不代表想移除父权限
32renderAfterExpand是否在第一次展开某个树节点后才渲染其子节点Booleantrue-
33expandOnClickNode是否在点击节点的时候展开或者收缩节点Booleantrue-
34checkOnClickNode是否在点击节点的时候选中节点Booleanfalse-
35indent相邻级节点间的水平缩进,单位为像素Number16-
36icon-class自定义树节点的图标String--
37draggable是否开启拖拽节点功能Booleanfalse-
38allow-drag判断节点能否被拖拽Function(node)--
39allow-drop拖拽时判定目标节点能否被放置Function(draggingNode, dropNode, type)-type 参数有三种情况:'prev'、'inner' 和 'next',分别表示放置在目标节点前、插入至目标节点和放置在目标节点后

事件

序号事件名称说明回调参数
1add-btn点击添加按钮时触发的事件(2.4.0以前为addBtn)function(fromData,toData,obj),树形穿梭框transfer模式分别为1.移动后左侧数据,2.移动后右侧数据,3.移动的节点keys、nodes、halfKeys、halfNodes对象;通讯录addressList模式时返回参数为右侧收件人列表、右侧抄送人列表、右侧密送人列表
2remove-btn点击移除按钮时触发的事件(2.4.0以前为removeBtn)function(fromData,toData,obj),树形穿梭框transfer模式分别为1.移动后左侧数据,2.移动后右侧数据,3.移动的节点keys、nodes、halfKeys、halfNodes对象;通讯录addressList模式时返回参数为右侧收件人列表、右侧抄送人列表、右侧密送人列表
3left-check-change左侧源数据勾选事件function(nodeObj, treeObj, checkAll)见el-tree组件check事件返回值, 新增checkAll参数表示是否全部选中
4right-check-change右侧目标数据勾选事件function(nodeObj, treeObj, checkAll)见el-tree组件check事件返回值, 新增checkAll参数表示是否全部选中
5node-drag-start节点开始拖拽时触发的事件共3个参数,依次为:"left"/"right"、被拖拽节点对应的 Node、event
6node-drag-enter拖拽进入其他节点时触发的事件共4个参数,依次为:"left"/"right"、被拖拽节点对应的 Node、所进入节点对应的 Node、event
7node-drag-leave拖拽离开某个节点时触发的事件共4个参数,依次为:"left"/"right"、被拖拽节点对应的 Node、所离开节点对应的 Node、event
8node-drag-over在拖拽节点时触发的事件(类似浏览器的 mouseover 事件)共4个参数,依次为:"left"/"right"、被拖拽节点对应的 Node、当前进入节点对应的 Node、event
9node-drag-end拖拽结束时(可能未成功)触发的事件共5个参数,依次为:"left"/"right"、被拖拽节点对应的 Node、结束拖拽时最后进入的节点(可能为空)、被拖拽节点的放置位置(before、after、inner)、event
10node-drop拖拽成功完成时触发的事件共5个参数,依次为:"left"/"right"、被拖拽节点对应的 Node、结束拖拽时最后进入的节点、被拖拽节点的放置位置(before、after、inner)、event

方法

序号名称说明
1clearChecked清除选中节点,默认清除全部 type:string left左边 right右边 all全部 默认all
2getChecked获取选中数据
3setChecked设置选中数据 function(leftKeys = [], rightKeys = [])

slot

序号名字说明
1left-footer穿梭框左侧、右侧底部slot
2right-footer穿梭框左侧、右侧底部slot
3title-left穿梭框标题区左侧、右侧自定义内容
4title-right穿梭框标题区左侧、右侧自定义内容
5form左侧内容区上部slot
6to右侧内容区上部slot
7content-left自定义左侧树节点
8content-right自定义右侧树节点
1.0.0

11 months ago