Skip to content

Transfer

穿梭框

基础用法

Transfer 的数据通过 data 属性传入。 数据需要是一个对象数组,每个对象有以下属性:value 为数据的唯一性标识,label 为显示文本,disabled 表示该项数据是否禁止被操作。 目标列表中的数据项会同步到绑定至 v-model 的变量,值为数据项的 value 所组成的数组。 当然,如果希望在初始状态时目标列表不为空,可以像本例一样为 v-model 绑定的变量赋予一个初始值.

vue




穿梭插入方式

通过 target-order 可以设置穿梭元素的添加形式,可选为pushunshift, 默认为 push

vue




搜索

设置 filterabletrue 即可开启搜索模式。 默认情况下,若数据项的 label 属性包含搜索关键字,则会在搜索结果中显示。 你也可以使用 filter-method 定义自己的搜索逻辑。 filter-method 接收一个方法,当搜索关键字变化时,会将当前的关键字和每个数据项传给该方法。 若方法返回 true,则会在搜索结果中显示对应的数据项。

vue



自定义显示

可以对列表标题文案、数据项的渲染进行自定义。

具体使用

可以使用 titles 属性对列表标题文案进行自定义。 数据项的渲染可以使用 scoped-slot 进行自定义,提供了具名 slot:source-item。 此外,如果希望某些数据项在初始化时就被勾选,可以使用 left-default-checkedright-default-checked 属性。

vue




Props

参数类型是否必传说明默认值
modelValuearray选中的值-
dataarray备选的数据, 对象数组,每个对象需要包含 value, label, disabled 三个属性,如果没有的话,需要通过 propKeys 来指定对应的字段-
filterableboolean是否显示筛选false
filterPlaceholderstring筛选输入框的 placeholder'请输入搜索内容'
filterMethodfunction筛选的方法,第一个是输入的值, 第二个参数是每个可选项,返回 true/false 表示匹配成功/失败(word, option) => option.label.indexOf(word) > -1
targetOrder'original'/'push'/'unshift'选中的值插入的方式,original 表示按照原来的顺序,push 表示放到最后,unshift 表示放到最前面'original'
titlesarray一个长度为 2 的字符串数组,分别用于左右穿梭框的标题['列表 1', '列表 2']
propKeysobject当 data 里的每一项不符合规范时,可以通过该字段指明 label, value, disabled 三个字段对应的字段。({ value: 'value', label: 'label', disabled: 'disabled'})
leftDefaultCheckedarray左侧默认选中项[]
rightDefaultCheckedarray右侧默认选中项[]

Events

事件名称说明回调参数
update:modelValue当值改变时触发新的值
select当一个项目被加入到右侧时触发新添加的值
remove当一个项目从右侧删除时触发被删除的值

Slots

插槽名称说明参数
source-item单个数据项的显示option:包含了 label, value, disabled 三个属性。index:顺序