mirror of
https://gitee.com/baidu/amis.git
synced 2024-12-15 09:21:13 +08:00
4acfbb99ce
* feat:优化事件数据域 * feat:优化事件数据域 * feat:优化事件数据域(option->item,options->items) * feat:优化事件数据域(version) * feat:优化事件数据域(修复弹窗事件多次触发&并行数据获取问题) * feat:优化事件数据域(删除多余代码) * feat:优化事件数据域(更新文档) * feat:优化事件数据域(更新文档) * feat:优化动作数据域 * feat:优化动作数据域
12 KiB
Executable File
12 KiB
Executable File
title | description | type | group | menuName | icon | order |
---|---|---|---|---|---|---|
Wizard 向导 | 0 | ⚙ 组件 | Wizard 向导 | 73 |
表单向导,能够配置多个步骤引导用户一步一步完成表单提交。
基本使用
{
"type": "wizard",
"initApi": "/api/mock2/form/saveForm?waitSeconds=2",
"mode": "vertical",
"steps": [
{
"title": "第一步",
"body": [
{
"name": "website",
"label": "网址",
"type": "input-url",
"required": true
},
{
"name": "email",
"label": "邮箱",
"type": "input-email",
"required": true
}
]
},
{
"title": "Step 2",
"body": [
{
"name": "email2",
"label": "邮箱",
"type": "input-email",
"required": true
}
]
},
{
"title": "Step 3",
"body": [
"这是最后一步了"
]
}
]
}
属性表
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
type | string |
"wizard" |
指定为 Wizard 组件 |
mode | string |
"horizontal" |
展示模式,选择:horizontal 或者 vertical |
api | API | 最后一步保存的接口。 | |
initApi | API | 初始化数据接口 | |
initFetch | API | 初始是否拉取数据。 | |
initFetchOn | 表达式 | 初始是否拉取数据,通过表达式来配置 | |
actionPrevLabel | string |
上一步 |
上一步按钮文本 |
actionNextLabel | string |
下一步 |
下一步按钮文本 |
actionNextSaveLabel | string |
保存并下一步 |
保存并下一步按钮文本 |
actionFinishLabel | string |
完成 |
完成按钮文本 |
className | string |
外层 CSS 类名 | |
actionClassName | string |
btn-sm btn-default |
按钮 CSS 类名 |
reload | string |
操作完后刷新目标对象。请填写目标组件设置的 name 值,如果填写为 window 则让当前页面整体刷新。 |
|
redirect | 模板 | 3000 |
操作完后跳转。 |
target | string |
false |
可以把数据提交给别的组件而不是自己保存。请填写目标组件设置的 name 值,如果填写为 window 则把数据同步到地址栏上,同时依赖这些数据的组件会自动重新刷新。 |
steps | Array<step> | 数组,配置步骤信息 | |
startStep | string |
1 |
起始默认值,从第几步开始。可支持模版,但是只有在组件创建时渲染模版并设置当前步数,在之后组件被刷新时,当前 step 不会根据 startStep 改变 |
step
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
title | string |
步骤标题 | |
mode | string |
展示默认,跟 Form 中的模式一样,选择: normal 、horizontal 或者inline 。 |
|
horizontal | Object |
当为水平模式时,用来控制左右占比 | |
horizontal.label | number |
左边 label 的宽度占比 | |
horizontal.right | number |
右边控制器的宽度占比。 | |
horizontal.offset | number |
当没有设置 label 时,右边控制器的偏移量 | |
api | API | 当前步骤保存接口,可以不配置。 | |
initApi | API | 当前步骤数据初始化接口。 | |
initFetch | boolean |
当前步骤数据初始化接口是否初始拉取。 | |
initFetchOn | 表达式 | 当前步骤数据初始化接口是否初始拉取,用表达式来决定。 | |
body | Array<FormItem> | 当前步骤的表单项集合,请参考 FormItem。 |
事件表
当前组件会对外派发以下事件,可以通过onEvent
来监听这些事件,并通过actions
来配置执行的动作,在actions
中可以通过${事件参数名}
来获取事件产生的数据,详细请查看事件动作。
[name]
为当前数据域中的字段名,例如:当前数据域为 {username: 'amis'},则可以通过${username}获取对应的值。
事件名称 | 事件参数 | 说明 |
---|---|---|
inited | event.data: object initApi 远程请求返回的初始化数据[name]: any 当前数据域中指定字段的值 |
远程初始化接口请求成功时触发 |
stepChange | step: number 步骤索引 |
切换步骤时触发 |
change | event.data: object 当前表单数据[name]: any 当前数据域中指定字段的值 |
表单值变化时触发 |
stepSubmitSucc | - | 单个步骤提交成功 |
stepSubmitFail | error: object 单个步骤 api 远程请求失败后返回的错误信息 |
单个步骤提交失败 |
finished | event.data: object 即将提交的表单数据[name]: any 当前数据域中指定字段的值 |
最终提交时触发 |
submitSucc | result: object api 远程请求成功后返回的结果数据 |
最终提交成功时触发 |
submitFail | error: object api 远程请求失败后返回的错误信息 |
最终提交失败时触发 |
动作表
当前组件对外暴露以下特性动作,其他组件可以通过指定actionType: 动作名称
、componentId: 该组件id
来触发这些动作,动作配置可以通过args: {动作配置项名称: xxx}
来配置具体的参数,详细请查看事件动作。
动作名称 | 动作配置 | 说明 |
---|---|---|
submit | - | 全部提交 |
step-submit | - | 分步提交 |
next | - | 下一步 |
prev | - | 上一步 |
goto-step | step: number 目标步骤 |
定位步骤 |
reload | - | 重新加载,调用 intiApi ,刷新数据域数据 |
setValue | value: object 更新的数据 |
更新数据 |