# 穿梭框
# 基础穿梭框
1 / 20 项
0 / 0 项
暂无数据
<template>
<div>
<t-transfer
:data="list"
v-model="targetValue"
:checked.sync="checked"
@change="onChange"
@checked-change="handleCheckedChange"
/>
</div>
</template>
<script>
const list = [];
for (let i = 0; i < 20; i++) {
list.push({
value: i.toString(),
label: `内容${i + 1}`,
disabled: i % 4 > 2,
});
}
export default {
data() {
return {
list,
targetValue: [],
checked: ['2'],
};
},
methods: {
handleCheckedChange({
checked, sourceChecked, targetChecked, type,
}) {
console.log('handleCheckedChange', {
checked,
sourceChecked,
targetChecked,
type,
});
},
onChange(newTargetValue) {
console.log(newTargetValue);
},
},
};
</script>
显示代码 复制代码 复制代码
# 带搜索框的穿梭框
0 / 20 项
0 / 0 项
暂无数据
<template>
<div>
<t-transfer theme="primary" :data="list" v-model="targetValue" :checked-value="checkedValue" :search="true" />
</div>
</template>
<script>
const list = [];
for (let i = 0; i < 20; i++) {
list.push({
value: i.toString(),
label: `内容${i + 1}`,
});
}
export default {
data() {
return {
list,
targetValue: [],
checkedValue: [],
};
},
};
</script>
显示代码 复制代码 复制代码
# 与 Tree 结合使用
0 / 4 项
0 / 0 项
暂无数据
<template>
<div>
<t-transfer
:data="items"
v-model="targetValue"
:checked.sync="checked"
@change="onChange"
@checked-change="handleCheckedChange"
>
<template v-slot:tree="slotProps">
<t-tree :icon="icon" v-bind="slotProps" checkable hover expand-all transition />
</template>
</t-transfer>
</div>
</template>
<script>
export default {
data() {
return {
items: [
{
value: '1',
label: '1',
children: [
{
value: '1.1',
label: '1.1',
},
{
value: '1.2',
label: '1.2',
children: [
{
value: '1.2.1',
label: '1.2.1',
children: [
{
value: '1.2.1.1',
label: '1.2.1.1',
}
],
},
],
},
],
},
{
value: '2',
label: '2',
children: [
{
value: '2.1',
label: '2.1',
},
{
value: '2.2',
label: '2.2',
},
],
},
],
targetValue: [],
checked: [],
};
},
methods: {
handleCheckedChange({
checked, sourceChecked, targetChecked, type,
}) {
console.log('handleCheckedChange', {
checked,
sourceChecked,
targetChecked,
type,
});
},
onChange(newTargetValue) {
console.log('onChange', newTargetValue);
},
icon(createElement, node) {
let name = '';
if (node.getChildren()) {
if (node.expanded) {
name = 'care-icon-arrow-down-small';
}
else {
name = 'care-icon-arrow-right-small';
}
return <i slot="icon" class={name}></i>;
}else {
return '';
}
},
},
};
</script>
显示代码 复制代码 复制代码