QingForm 是一个用于 Angular 动态创建表单的库,JSON配置,支持字段间的灵活联动 GitHub 地址:https://github.com/tirelyl/qing-form
- 安装 qing-form
npm install qing-form --save
- 导入 QingFormModule
import { NgModule } from '@angular/core';
import { QingFormModule } from 'qing-form';
@NgModule({
imports: [
...,
QingFormModule,
]
})
export class ShareModule { }
- 在组件中使用JSON来配置表单
import { Component, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { QfFieldConfig } from 'qing-form';
@Component({
selector: 'app',
template: `
<form [formGroup]="form">
<qf-form [form]="form" [fields]="fields"></qf-form>
</form>
`
})
export class AppComponent {
form = new FormGroup({});
fields: QfFieldConfig[] = [
{
key: '1',
type: 'input',
templateOptions: {
label: '输入框',
placeholder: '我是提示'
}
}
];
}
<qf-form [form]="form" [fields]="fields"></qf-form>
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
[form] |
当前表单的 FormGroup 实例 | Array<TemplateRef<void>> |
new FormGroup({}) |
fields |
每一个表单控件的配置信息 | QfFieldConfig |
[] |
属性 | 说明 | 类型 | 必填 |
---|---|---|---|
key |
表单控件的唯一key,于 FormGroup 中的 key 对应 | string |
✅ |
type |
表单控件类型 | 'input' | 'date' | 'radio' | 'checkbox' |
✅ |
templateOptions |
给控件设置交互相关的信息 | QfTemplateOptions |
- |
属性 | 说明 | 类型 | 必填 |
---|---|---|---|
label |
控件标题 | string |
- |
placeholder |
控件默认文字 | string |
- |
defaultValue |
控件默认值 | any |
- |
options |
选择类型控件选项 | Array<{ label: string; value: string; checked?: boolean; }> |
- |
valueType |
控件值联动类型 | 'string' | 'formula' | 'custom' |
- |
formula |
联动值类型为 formula 时,需要计算的公式 | string |
- |