SchemaField (Markup Schema)
描述
SchemaField 组件是专门用于解析JSON-Schema动态渲染表单的组件。 在使用 SchemaField 组件的时候,需要通过 createSchemaField 工厂函数创建一个 SchemaField 组件。
签名
ts
interface ComposeSchemaField {
SchemaField: Vue.Component<any, any, any, ISchemaFieldProps>
SchemaMarkupField: Vue.Component<any, any, any, ISchema>
SchemaStringField: Vue.Component<any, any, any, Omit<ISchema, 'type'>>
SchemaObjectField: Vue.Component<any, any, any, Omit<ISchema, 'type'>>
SchemaArrayField: Vue.Component<any, any, any, Omit<ISchema, 'type'>>
SchemaBooleanField: Vue.Component<any, any, any, Omit<ISchema, 'type'>>
SchemaDateField: Vue.Component<any, any, any, Omit<ISchema, 'type'>>
SchemaDateTimeField: Vue.Component<any, any, any, Omit<ISchema, 'type'>>
SchemaVoidField: Vue.Component<any, any, any, Omit<ISchema, 'type'>>
SchemaNumberField: Vue.Component<any, any, any, Omit<ISchema, 'type'>>
}
// 工厂函数参数属性
interface ISchemaFieldFactoryProps {
components?: {
[key: string]: Vue.Component // 组件列表
}
scope?: any // 全局作用域,用于实现协议表达式变量注入
}
// SchemaField属性
interface ISchemaFieldProps extends IFieldFactoryProps {
schema?: ISchema // 字段schema
scope?: any // 协议表达式作用域
name?: string // 字段名称
}
// 工厂函数
interface createSchemaField {
(props: ISchemaFieldFactoryProps): ComposeSchemaField
}IFieldFactoryProps 参考 IFieldFactoryProps
ISchema 参考 ISchema