mirror of
https://gitee.com/element-plus/element-plus.git
synced 2024-12-15 09:50:58 +08:00
0636e1e240
* style: add import lint * chore: apply eslint rules * chore: add stricter lint * chore: lint all files * auto fix * manually fix * restore build-indices.ts
100 lines
2.6 KiB
Vue
100 lines
2.6 KiB
Vue
<template>
|
|
<p style="text-align: center; margin: 0 0 20px">
|
|
Customize data items using render-content
|
|
</p>
|
|
<div style="text-align: center">
|
|
<el-transfer
|
|
v-model="leftValue"
|
|
style="text-align: left; display: inline-block"
|
|
filterable
|
|
:left-default-checked="[2, 3]"
|
|
:right-default-checked="[1]"
|
|
:render-content="renderFunc"
|
|
:titles="['Source', 'Target']"
|
|
:button-texts="['To left', 'To right']"
|
|
:format="{
|
|
noChecked: '${total}',
|
|
hasChecked: '${checked}/${total}',
|
|
}"
|
|
:data="data"
|
|
@change="handleChange"
|
|
>
|
|
<template #left-footer>
|
|
<el-button class="transfer-footer" size="small">Operation</el-button>
|
|
</template>
|
|
<template #right-footer>
|
|
<el-button class="transfer-footer" size="small">Operation</el-button>
|
|
</template>
|
|
</el-transfer>
|
|
<p style="text-align: center; margin: 50px 0 20px">
|
|
Customize data items using scoped slot
|
|
</p>
|
|
<div style="text-align: center">
|
|
<el-transfer
|
|
v-model="rightValue"
|
|
style="text-align: left; display: inline-block"
|
|
filterable
|
|
:left-default-checked="[2, 3]"
|
|
:right-default-checked="[1]"
|
|
:titles="['Source', 'Target']"
|
|
:button-texts="['To left', 'To right']"
|
|
:format="{
|
|
noChecked: '${total}',
|
|
hasChecked: '${checked}/${total}',
|
|
}"
|
|
:data="data"
|
|
@change="handleChange"
|
|
>
|
|
<template #default="{ option }">
|
|
<span>{{ option.key }} - {{ option.label }}</span>
|
|
</template>
|
|
<template #left-footer>
|
|
<el-button class="transfer-footer" size="small">Operation</el-button>
|
|
</template>
|
|
<template #right-footer>
|
|
<el-button class="transfer-footer" size="small">Operation</el-button>
|
|
</template>
|
|
</el-transfer>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script lang="ts">
|
|
export default {
|
|
data() {
|
|
const generateData = (_) => {
|
|
const data = []
|
|
for (let i = 1; i <= 15; i++) {
|
|
data.push({
|
|
key: i,
|
|
label: `Option ${i}`,
|
|
disabled: i % 4 === 0,
|
|
})
|
|
}
|
|
return data
|
|
}
|
|
return {
|
|
data: generateData(),
|
|
rightValue: [1],
|
|
leftValue: [1],
|
|
renderFunc(h, option) {
|
|
return h('span', null, option.key, ' - ', option.label)
|
|
},
|
|
}
|
|
},
|
|
|
|
methods: {
|
|
handleChange(value, direction, movedKeys) {
|
|
console.log(value, direction, movedKeys)
|
|
},
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
.transfer-footer {
|
|
margin-left: 20px;
|
|
padding: 6px 5px;
|
|
}
|
|
</style>
|