jjb-lc-designable
Version:
基于alibaba-designable源码二次封装的表单设计器。
63 lines (59 loc) • 1.53 kB
text/typescript
import React from 'react'
import { Input as FormilyInput } from 'jjb-lc-formily/antd'
import { createBehavior, createResource } from 'jjb-lc-designable/core'
import { DnFC } from 'jjb-lc-designable/react'
import { createFieldSchema } from '../Field'
import { AllSchemas } from '../../schemas'
import { AllLocales } from '../../locales'
export const Input: DnFC<React.ComponentProps<typeof FormilyInput>> =
FormilyInput
Input.Behavior = createBehavior(
{
name: 'Input',
extends: ['Field'],
selector: (node) => node.props['x-component'] === 'Input',
designerProps: {
propsSchema: createFieldSchema(AllSchemas.Input),
},
designerLocales: AllLocales.Input,
},
{
name: 'Input.TextArea',
extends: ['Field'],
selector: (node) => node.props['x-component'] === 'Input.TextArea',
designerProps: {
propsSchema: createFieldSchema(AllSchemas.Input.TextArea),
},
designerLocales: AllLocales.TextArea,
}
)
Input.Resource = createResource(
{
icon: 'InputSource',
elements: [
{
componentName: 'Field',
props: {
type: 'string',
title: 'Input',
'x-decorator': 'FormItem',
'x-component': 'Input',
},
},
],
},
{
icon: 'TextAreaSource',
elements: [
{
componentName: 'Field',
props: {
type: 'string',
title: 'TextArea',
'x-decorator': 'FormItem',
'x-component': 'Input.TextArea',
},
},
],
}
)