SPHP中按钮的数据结构全局统一,数据类型如下:
```
{
title:按钮标题,
flag:按钮标识,用于对按钮进一步操作时的唯一标识。
attr:按钮样式及属性,是一个键值对,具体结构:{
type:default|primary|success|info|warning|danger|text, // 按钮类型,默认 primary
round:true|false, // 按钮是否圆角,默认 false
plain:true|false, // 是否朴素按钮,默认 false
circle:true|false, // 是否圆形按钮,默认 false
icon, // 按钮图标,可选择的图标见icon表单项
flag: 按钮标记,用于对按钮进一步操作
disabled, // 是否禁用,默认 false
},
option:操作属性,用于控制按钮的操作逻辑,结构如下:{
type:操作类型:null-无操作,refresh-刷新页面,relist-重新获取列表(列表页中的按钮才有效),back-返回,link-跳转页面,pop-打开弹框,ajax-ajax请求,
url:按钮的操作地址,页面跳转为跳转地址,pop为弹窗地址,ajax为ajax请求地址。
target: 按钮链接跳转类型(linkType为link时有效, _blank表示新页面打开链接),
confirm: false|true|{title, tips, type:warning}, 按钮点击时是否需要确认框,
extra_data: 附加数据, 表单提交时会把附加数据提交,在列表项中支持'__字段名__'的方式传值,
batch: 是否批量操作(批量操作时会附带当前列表中选中的数据ID),列表页中的按钮才有效
}
}
```
操作类型分别为无操作、刷新页面、刷新列表数据、返回、跳转页面、打开弹框、ajax请求。
所有的操作均可设置是否在操作前进行弹框确认。
## ajax请求返回结果
> 一般情况下,ajax请求的处理结果直接使用控制器的success方法及error方法返回即可,参考[控制器]()一节。
ajax请求后基本都会有下一步的操作,下面介绍一下ajax请求后如何控制后续操作。
- 按钮的ajax请求返回的数据结构说明
```
{
code: 1-成功,非1失败,一般直接用0即可。
msg: 返回结果说明,
data: {
wait:操作等待时间,单位秒,默认为1秒,
type:操作类型:null-无操作,refresh-刷新页面,relist-重新获取列表(列表页中的按钮才有效),back-返回,link-跳转页面,pop-打开弹框,ajax-ajax请求,
url:按钮的操作地址,页面跳转为跳转地址,pop为弹窗地址,ajax为ajax请求地址。
target: 按钮链接跳转类型(linkType为link时有效, _blank表示新页面打开链接),
confirm: false|true|{title, tips, type:warning}, 按钮点击时是否需要确认框,
extra_data: 附加数据, 表单提交时会把附加数据提交,在列表项中支持'__字段名__'的方式传值,
batch: 是否批量操作(批量操作时会附带当前列表中选中的数据ID),列表页中的按钮才有效
}
}
```
> 其实返回的操作除了多了一个`wait`之外,其他结构与按钮的操作时完全一致的。
- type操作类型说明:
1. back:返回上一页
2. relist:重新加载数据列表
3. refresh:刷新页面
4. pop:打开弹框
5. link:打开连接
6. ajax:ajax请求
> 按钮操作思维导图:
![](https://box.kancloud.cn/ed6a41c971f8660fba8cf21d3b986540_743x674.png)