Transfer
穿梭框
Markup Schema 案例
vue
<script lang="ts" setup>
import { createForm } from '@formily/core'
import { createSchemaField, FormProvider } from '@formily/vue'
import { FormItem, Submit, Transfer } from '@silver-formily/element-plus'
const form = createForm()
const { SchemaField, SchemaStringField } = createSchemaField({
components: {
FormItem,
Transfer,
},
})
async function log(value) {
console.log(value)
}
</script>
<template>
<FormProvider :form="form">
<SchemaField>
<SchemaStringField
name="input"
title="单选"
x-decorator="FormItem"
x-component="Transfer"
:enum="[
{
label: '选项1',
key: 1,
},
{
label: '选项2',
key: 2,
},
]"
/>
</SchemaField>
<Submit @submit="log">
提交
</Submit>
</FormProvider>
</template>JSON Schema 案例
vue
<script lang="ts" setup>
import { createForm } from '@formily/core'
import { createSchemaField } from '@formily/vue'
import { Form, FormItem, Submit, Transfer } from '@silver-formily/element-plus'
const schema = {
type: 'object',
properties: {
transfer: {
'type': 'array',
'title': '穿梭框',
'enum': [
{ label: '选项1', key: 1 },
{ label: '选项2', key: 2 },
],
'x-decorator': 'FormItem',
'x-component': 'Transfer',
},
},
}
const form = createForm()
const { SchemaField } = createSchemaField({
components: {
FormItem,
Transfer,
},
})
async function onSubmit(value) {
console.log(value)
}
</script>
<template>
<Form :form="form" label-align="left" :label-width="160">
<SchemaField :schema="schema" />
<Submit @submit="onSubmit">
提交
</Submit>
</Form>
</template>Template 案例
vue
<script lang="ts" setup>
import { createForm } from '@formily/core'
import { Field, FormProvider } from '@formily/vue'
import { FormItem, Submit, Transfer } from '@silver-formily/element-plus'
const form = createForm()
async function log(value) {
console.log(value)
}
</script>
<template>
<FormProvider :form="form">
<Field
name="input"
title="单选"
:decorator="[FormItem]"
:component="[Transfer]"
:data-source="[
{
label: '选项1',
key: 1,
},
{
label: '选项2',
key: 2,
},
]"
/>
<Submit @submit="log">
提交
</Submit>
</FormProvider>
</template>API
参考 https://cn.element-plus.org/zh-CN/component/transfer.html