Skip to content

Transfer 穿梭框

双栏/上下穿梭框组件,已专门针对移动端手持屏幕优化,默认采用上下垂直排列模式(上层待选列表,下层已选列表),支持单条点击直速穿梭与多选批量转移。


代码示例

1. 移动端上下模式 (Vertical Mode - 默认)

vue
<template>
  <mu-transfer
    v-model:value="targetKeys"
    mode="vertical"
    :data="dataList"
    :titles="['待选择列表', '已选择列表']"
    @change="onChange"
  />
</template>

<script setup>
import { ref } from 'vue'

const targetKeys = ref(['2', '5'])

const dataList = ref([
  { label: '张三 (前端工程师)', value: '1' },
  { label: '李四 (架构师)', value: '2' },
  { label: '王五 (UI 设计师)', value: '3' },
  { label: '赵六 (测试负责人)', value: '4' }
])

function onChange(keys) {
  console.log('已选择 Key 集合:', keys)
}
</script>

2. 传统左右并排模式 (Horizontal Mode)

适用于大屏、平板或 PC 端页面展示。

vue
<template>
  <mu-transfer
    v-model:value="targetKeys"
    mode="horizontal"
    :data="dataList"
  />
</template>

API 属性说明 (Props)

参数名说明类型可选值默认值
value / v-model:value已选择列表中的 key 数组Array-[]
data / dataSource全量候选数据列表数组Array-[]
mode布局显示模式Stringvertical (上下模式,移动端推荐) | horizontal (左右模式)'vertical'
quickClick单击列表项是否直接一键穿梭移动Booleantrue | falsetrue
labelKey列表项展示文本的字段 keyString-'label'
valueKey列表项唯一标识符字段 keyString-'value'
titles两侧/上下面板标题文案Array-['待选择', '已选择']
checkable是否显示复选框批量选择框Booleantrue | falsetrue

事件说明 (Events)

事件名说明回调参数
change穿梭列表发生移动变更时触发(targetKeys: Array)
update:value支持 v-model:value 语法双向绑定(targetKeys: Array)

基于 MIT 协议开源发行

H5 模拟器 (transfer)☀️🔄