# AiForm 表单组件 通过 JSON Schema 配置动态渲染表单,支持多种字段类型和验证规则。 ## 基础用法 ```vue ``` ## Props | 属性 | 类型 | 默认值 | 说明 | |------|------|--------|------| | schema | Array | [] | 表单字段配置 | | value | Object | {} | 表单数据 (v-model) | | gridCols | Number | 1 | 栅格列数 | | labelPlacement | String | 'left' | 标签位置:left/top | | labelWidth | String/Number | 'auto' | 标签宽度 | | showActions | Boolean | true | 是否显示操作按钮 | | enableCollapse | Boolean | false | 是否启用折叠 | | maxVisibleFields | Number | 6 | 折叠时最大显示字段数 | ## Schema 字段配置 | 属性 | 类型 | 说明 | |------|------|------| | field | String | 字段名 | | label | String | 标签文本 | | type | String | 字段类型 | | required | Boolean | 是否必填 | | rules | Array | 验证规则 | | options | Array | 选项(select/radio/checkbox) | | defaultValue | Any | 默认值 | | span | Number | 栅格占位 | | vIf | Function/Boolean | 条件显示 | | onChange | Function | 值变化回调 | ## 支持的字段类型 | 类型 | 说明 | |------|------| | input | 输入框 | | textarea | 文本域 | | number | 数字输入 | | select | 下拉选择 | | radio | 单选 | | checkbox | 多选 | | date | 日期 | | datetime | 日期时间 | | switch | 开关 | | slot | 自定义插槽 | ## 方法 ```js // 验证表单 await formRef.value.validate() // 重置验证 formRef.value.restoreValidation() // 重置表单 formRef.value.reset() // 获取表单数据 const data = formRef.value.getFormData() ``` ## 事件 | 事件 | 参数 | 说明 | |------|------|------| | submit | formData | 提交表单 | | reset | - | 重置表单 | | cancel | - | 取消 |