Checkbox
复选框
Markup Schema 案例
vue
<template>
<Form :form="form">
<SchemaField>
<SchemaBooleanField
name="single1"
title="是否确认"
x-decorator="FormItem"
x-component="Checkbox"
/>
<SchemaBooleanField
name="single2"
title="独立使用"
x-decorator="FormItem"
x-component="Checkbox"
:x-component-props="{
label: 'option1',
trueValue: 1,
falseValue: 0,
}"
/>
<SchemaArrayField
name="multiple1"
title="复选"
:enum="[
{ label: '选项1', value: 1 },
{ label: '选项2', value: 2 },
]"
x-decorator="FormItem"
x-component="Checkbox.Group"
/>
<SchemaArrayField
name="multiple2"
title="禁用"
:enum="[
{ label: '选项1', value: 1, disabled: true },
{ label: '选项2', value: 2 },
]"
x-decorator="FormItem"
x-component="Checkbox.Group"
/>
<SchemaArrayField
name="multiple3"
title="按钮"
:enum="[
{ label: '选项1', value: 1 },
{ label: '选项2', value: 2 },
]"
x-decorator="FormItem"
x-component="Checkbox.Group"
:x-component-props="{
optionType: 'button',
}"
/>
<SchemaArrayField
name="multiple4"
title="边框"
:enum="[
{ label: '选项1', value: 1, border: true },
{ label: '选项2', value: 2, border: true },
]"
x-decorator="FormItem"
x-component="Checkbox.Group"
/>
</SchemaField>
<Submit @submit="onSubmit">提交</Submit>
</Form>
</template>
<script>
import { createForm } from '@formily/core'
import { createSchemaField } from '@formily/vue'
import { Formily } from 'element-plus-x'
const { Checkbox, Form, FormItem, Submit } = Formily
const form = createForm()
const fields = createSchemaField({
components: {
FormItem,
Checkbox,
},
})
export default {
components: { Form, ...fields, Submit },
data() {
return {
form,
}
},
methods: {
onSubmit(value) {
console.log(value)
},
},
}
</script>
隐藏源代码
JSON Schema 案例
vue
<template>
<Form :form="form">
<SchemaField :schema="schema" />
<Submit @submit="onSubmit">提交</Submit>
</Form>
</template>
<script>
import { createForm } from '@formily/core'
import { createSchemaField } from '@formily/vue'
import { Formily } from 'element-plus-x'
const { Form, FormItem, Checkbox, Submit } = Formily
const schema = {
type: 'object',
properties: {
checkbox: {
type: 'number',
title: '是否确认',
'x-decorator': 'FormItem',
'x-component': 'Checkbox',
},
checkboxGroup: {
type: 'array',
title: '复选',
'x-decorator': 'FormItem',
'x-component': 'Checkbox.Group',
enum: [
{
label: '选项1',
value: 1,
},
{
label: '选项2',
value: 2,
},
],
},
},
}
const form = createForm()
const { SchemaField } = createSchemaField({
components: {
FormItem,
Checkbox,
},
})
export default {
components: { Form, SchemaField, Submit },
data() {
return {
form,
schema,
}
},
methods: {
onSubmit(value) {
console.log(value)
},
},
}
</script>
隐藏源代码
Template 案例
vue
<template>
<Form :form="form">
<Field
name="single"
title="是否确认"
:decorator="[FormItem]"
:component="[Checkbox]"
/>
<ArrayField
name="multiple"
title="复选"
:data-source="[
{ label: '选项1', value: 1 },
{ label: '选项2', value: 2 },
]"
:decorator="[FormItem]"
:component="[Checkbox.Group, { optionType: 'button' }]"
>
<template #option="{ option }">
<div>#_{{ option.label }}</div>
</template>
</ArrayField>
<Submit @submit="onSubmit">提交</Submit>
</Form>
</template>
<script>
import { createForm } from '@formily/core'
import { ArrayField, Field } from '@formily/vue'
import { Formily } from 'element-plus-x'
const { Form, FormItem, Checkbox, Submit } = Formily
const form = createForm()
export default {
components: { Form, Field, ArrayField, Submit },
data() {
return {
FormItem,
Checkbox,
form,
}
},
methods: {
onSubmit(value) {
console.log(value)
},
},
}
</script>
隐藏源代码
API
参考 ElCheckbox