按钮的Js处理
- 按钮的图标使用返回的信息的iconPath来处理,排序依靠orderNum
- url是按钮的路径。依然需要判断?后的参数(强烈不推荐)。然后和paramVOS(按钮的定义中的paramVOS属性)组合到一起作为按钮的参数(url的优先级大于paramVOS)。格式如jsPath#methodName?param=aaa¶m1=bbb。
- url的说明
|参数名字|参数说明|使用场景|
|:--:|:--:|:--:|
|jsPath|按钮所属的Js的路径|如果在layui.js或者再vciAlias.js定义了映射,则使用简称,否则使用全路径|
|methodName|组件里的方法名字|如果在没有设置,则默认为doAction,即可能会配置为jsPath?param=aaa|
|param和param1|参数|按照http的url格式定义,参数可能为空|
- 前置和后置事件。分为js事件,b/s事件,服务端事件三种。
- 前后置事件的参数说明
|参数名字|参数说明|使用场景|
|:--:|:--:|:--:|
|beforeEvent|js的前置事件|经常用来做判断,比如能否发起流程,能否删除等等;它可能需要后台接口做配合;最好只是在js中判断时使用这个参数!!!切记不能在前置事件里不能表动数据库中数据,仅仅是查询和判断|
|afterEvent|js的后置事件|一般只是刷新组件。最好不要处理数据,因为可能会造成数据的不完整性。|
|beforeBSEvent|b/s的前置事件|作用与js的前置事件相同,但是可以不写js;一般对于复杂一些的判断,就建议使用这个。!!!如果是自定义的后台接口需要调用UIDataServiceI里的callPreEvent|
|afterBSEvent|b/s的后置事件|作用与js的后置事件相同,但是可以不写js;可以处理新的数据,但是需要保证数据完整性.!!!如果是自定义的后台接口需要调用UIDataServiceI里的callPostEvent|
|beforeServerEvent|服务端的前置事件|在主服务里处理的事件,有事务控制,可以随意操作数据.server端的前置事件需要加到主服务的运行环境中,一般不使用|
|afterServerEvent|服务端的后置时间|在主服务里处理的事件,一般是多个业务功能有公共的处理部分是使用|
|VciChangeDataBefore|b/s项目里的前置事件的注解,和beforeBSEvent的作用一样|不需要做配置,在这个注解所在的类上加VciChangeDataPlugin注解,这个方法的参数设置(BaseModelDTOList baseModelDTOList)即可|
|VciChangeDataAfter|b/s项目里的后置事件的注解,afterBSEvent|不需要做配置,在这个注解所在的类上加VciChangeDataPlugin注解,这个方法的参数设置(Collection cbos)即可|
- js里有前置事件和后置时间的情况下的处理
- 配置表达式。依然是遵循jsPath#methodName?param=aaa¶m1=bbb。如果是和按钮的js是一个,则jsPath可以设置为空,此时#和methodName不能为空.前置事件的默认方法为doBefore,后置事件的默认方法为doAfter
- 调用的方式。前置事件调用时,将按钮的执行方法作为callback参数传递进去,前置事件里需要处理完成后,判断callback是否存在,存在则调用。后置时间也是作为按钮执行方法的callback参数传递进去。即这三个都是按照异步方式处理
- 参数的说明
|参数名字|参数说明|使用场景|
|:--:|:--:|:--:|
|params|配置的参数|就是配置里的paramVOS对象加上路径里?后的内容|
|dataStore|选择的数据|当前组件中选择的数据,都一数组的形式传递|
|componentVO|组件的配置信息|按钮所在的组件的配置信息|
|thisUI|UI面板的对象|就是整个按钮所在的js的this指代对象|
|sourceData|组件的来源数据|就是按钮所在组件的来源数据,比如现在是中心区,这个就是西区的选择数据|
|thisButton|按钮的jquery用法的指代对象|在按钮的事件中获取的$(this)|
|callback|回调方法|回调方法中,需要把除了callback的参数都放入其中|
- js调用按钮的方式。传递的参数为options。其中包含以下的属性
|属性名字|属性说明|数据取值|
|:--:|:--:|:--:|
|params|配置的参数|就是配置里的paramVOS对象加上路径里?后的内容|
|dataStore|选择的数据|当前组件中选择的数据,都一数组的形式传递|
|componentVO|组件的配置信息|按钮所在的组件的配置信息|
|thisUI|UI面板的对象|就是整个按钮所在的js的this指代对象|
|sourceData|组件的来源数据|就是按钮所在组件的来源数据,比如现在是中心区,这个就是西区的选择数据|
|thisButton|按钮的jquery用法的指代对象|在按钮的事件中获取的$(this)|
- 按钮编写示例
```
this.doAction = function (options) {
if(!options){
$webUtil.showErrorMsg("按钮的传递信息不正确,请开发人员检查");
return false;
}
var that = this;
webUtil.copyConfig(that, that.moduleKey);
var params = $webUtil.paramLow(options.paramVOS);
// options
}
```