# Form Schema
Form Schema 是在 JSON Schema 基础下进行扩展的一种定义表单的规范。主要用于:
- 描述数据
- 描述 UI
- 数据验证与表单验证
表现形式上,Form Schema 仍然是 JSON。
TIP
Form Schema 暂时只支持 JSON Schema 一部分 keywords,之后的迭代中会根据需要增加其他 keywords 的支持。
# 定义简单表单
简单表单:model 相对比较简单,model 属性的值一般是基本类型数据。
<template>
<el-schema-form
:schema="schema"
:model="model"
:config="config"
style="width: 400px;"
></el-schema-form>
</template>
<script>
export default {
data () {
return {
model: {
name: ''
},
schema: {
type: 'object',
properties: {
name: {
title: '活动名称',
description: '活动名称描述',
head: '我是 form item 头部,你可以在这里写一些说明信息',
tail: {
render: () => {
return (
<el-alert>form item 尾部,我可以是一个动态组件,你可以在这里对 UI 进行自定义</el-alert>
)
}
},
component: 'input',
field: {
placeholder: '活动名称',
type: 'textarea',
listeners: {}
},
rules: [
{
required: true,
message: '活动名称不能为空',
trigger: 'change'
}
]
}
}
},
config: {
labelPosition: 'top'
}
}
}
}
</script>
上面的 Schema 描述了一个值类型为 Object,且有一个属性为 name。name 的表现形态是 Form-Item,对应的控件是文本输入框。Form-Item 的参数详见:Form-Item
# 定义复杂嵌套表单
嵌套表单:model 相对比较复杂,属性存在多个层级。