# ArrayTabs
自增选项卡,对于纵向空间要求较高的场景可以考虑使用该组件
注意:该组件只适用于 Schema 场景
# Markup Schema 案例
:
字符串数组 1
:
对象数组 1
:
:
<template>
<FormProvider :form="form">
<SchemaField>
<SchemaArrayField
name="string_array"
x-decorator="FormItem"
title="字符串数组"
:maxItems="3"
x-component="ArrayTabs"
>
<SchemaStringField
x-decorator="FormItem"
required
x-component="Input"
/>
</SchemaArrayField>
<SchemaArrayField
name="array"
x-decorator="FormItem"
title="对象数组"
:maxItems="3"
x-component="ArrayTabs"
>
<SchemaObjectField>
<SchemaStringField
x-decorator="FormItem"
title="AAA"
name="aaa"
required
x-component="Input"
/>
<SchemaStringField
x-decorator="FormItem"
title="BBB"
name="bbb"
required
x-component="Input"
/>
</SchemaObjectField>
</SchemaArrayField>
</SchemaField>
<FormButtonGroup>
<Submit @submit="log">提交</Submit>
</FormButtonGroup>
</FormProvider>
</template>
<script>
import { createForm } from '@formily/core'
import { FormProvider, createSchemaField } from '@formily/vue'
import {
FormItem,
FormButtonGroup,
Submit,
Input,
Select,
ArrayTabs,
} from '@formily/antdv'
import { Button } from 'ant-design-vue'
const SchemaField = createSchemaField({
components: {
FormItem,
Input,
Select,
ArrayTabs,
},
})
export default {
components: {
FormProvider,
FormButtonGroup,
Button,
Submit,
...SchemaField,
},
data() {
const form = createForm()
return {
form,
}
},
methods: {
log(values) {
console.log(values)
},
},
}
</script>
<style lang="scss" scoped></style>
# JSON Schema 案例
:
字符串数组 1
:
对象数组 1
*
:*
:<template>
<FormProvider :form="form">
<SchemaField :schema="schema" />
<Submit @submit="log">提交</Submit>
</FormProvider>
</template>
<script>
import { createForm } from '@formily/core'
import { FormProvider, createSchemaField } from '@formily/vue'
import {
FormButtonGroup,
Submit,
FormItem,
Space,
Input,
ArrayTabs,
} from '@formily/antdv'
import { Button } from 'ant-design-vue'
const SchemaField = createSchemaField({
components: {
FormItem,
Space,
Input,
ArrayTabs,
},
})
export default {
components: {
FormProvider,
FormButtonGroup,
Button,
Submit,
...SchemaField,
},
data() {
const form = createForm()
const schema = {
type: 'object',
properties: {
string_array: {
type: 'array',
title: '字符串数组',
'x-decorator': 'FormItem',
maxItems: 3,
'x-component': 'ArrayTabs',
items: {
type: 'string',
'x-decorator': 'FormItem',
required: true,
'x-component': 'Input',
},
},
array: {
type: 'array',
title: '对象数组',
'x-decorator': 'FormItem',
maxItems: 3,
'x-component': 'ArrayTabs',
items: {
type: 'object',
properties: {
aaa: {
type: 'string',
'x-decorator': 'FormItem',
title: 'AAA',
required: true,
'x-component': 'Input',
},
bbb: {
type: 'string',
'x-decorator': 'FormItem',
title: 'BBB',
required: true,
'x-component': 'Input',
},
},
},
},
},
}
return {
form,
schema,
}
},
methods: {
log(values) {
console.log(values)
},
},
}
</script>
<style lang="scss" scoped></style>
# API
# ArrayTabs
← ArrayTable Cascader →