基于antv 的动态表单。 在完整支持的表单组件下,拓展支持了颜色Color、旋转角度Angle、代码编辑Monaco、富文本编辑RichText、JSON编辑器、MarkDown编辑器
npm i --save antv-dynamic-form
import DynamicForm from "antv-dynamic-form"
let state = reactive({
foo: "test"
});
let schema = reactive({
fields:[{
label: "输入框",
path: "foo",
component: "Input",
rules:{ required: true, message: 'Please input your username!' }
}]
});
<DynamicForm :state="state" :schema="schema"/>label 字段标签名称 path 字段对应states绑定的数据路径 component 组件名称支持组件参考 组件列表 tips 组件提示信息 rules 组件验证规则 props 组件的自定义传入属性,例如设置component为Input,可参考ant Input有哪些props传值 get 自定义获取绑定值 set 自定义设置绑定值
| 组件名 | 说明 |
|---|---|
| Input | 输入框,参考antv的 Input |
| InputNumber | 数字输入框,参考antv的 InputNumber |
| Select | 选择器,参考antv的 Select |
| Radio | 单选框,参考antv的 Radio |
| Switch | 开关,参考antv的 Switch |
| Checkbox | 多选框 ,参考antv的 Checkbox |
| Slider | 滑动输入条,参考antv的 Slider |
| Cascader | 级联选择,参考antv的 Slider |
| AutoComplete | 自动完成,参考antv的 AutoComplete |
| TreeSelect | 树选择,参考antv的 TreeSelect |
| TimePicker | 时间选择,参考antv的 TimePicker |
| TimeRangePicker | 时间范围选择,参考antv的 TimePicker |
| DatePicker | 日期选择,参考antv的 DatePicker |
| RangePicker | 日期范围选择,参考antv的 DatePicker |
| Rate | 评分,参考antv的 Rate |
| Upload | 上传,参考antv的 Upload |
| Transfer | 穿梭框,参考antv的 Transfer |
| Table | 编辑表格(未完成),参考antv的 Table |
| List | 可修改(增删)列表【容器】 |
| Group | 子分组表单【容器】 |
| Color | 颜色选择 |
| Angle | 旋转按钮,用于角度选择0~360 |
| JsonEditor | json专用编辑器 |
| Markdown | Markdown可视化编辑器 |
| RichText | 富文本可视化编辑器 |
| MonacoEditor | 代码编辑器(vscode) |
