基于Ant Design 和 jQuery UI 的表单设计器
github 地址
特性
- React
- Vue 3.x
- Typescript
- 统一的组件定义,对Vue 和React 的实现提供一个统一的组件定义描述
概念
- Component 组件
- Layout 布局,一种特殊的Component
- Component Editor 组件属性编辑器
- Component Factory 提供组件定义
扩展组件
定义组件属性类型
在src/props.ts 文件中定义组件属性
export type RateProps = {
count: number
}
定义一个ComponentFactory
在src/factory目录下定义。 提供了makeFieldId()和makeComponentId()两个方法用于生成id
class RateFactory implements FieldFactory<RateProps> {
readonly type = "Rate"
readonly group = FactoryGroup.Component;
title = "评分"
/**
* 初始化一个组件定义
* @returns {{type: string, title: string}}
*/
createComponentDefinition() {
return {
id: makeComponentId(),
type: this.type,
title: this.title,
fieldDef: {
fieldId: makeFieldId(),
fieldType: 'varchar' as FieldType,
fieldName: '',
},
props: {
count: 5
},
}
}
}
export default new RateFactory();
创建一个vue组件或布局
- 在src/antdv-designer/src/designer/components目录下添加vue组件
- 在src/antdv-designer/src/designer/layout目录下添加vue布局
创建一个React组件或布局
- 在src/antd-designer/src/designer/components目录下添加React组件
- 在src/antd-designer/src/designer/layout目录下添加React布局