编辑 | blame | 历史 | 原始文档

按钮的Js处理

  1. 按钮的图标使用返回的信息的iconPath来处理,排序依靠orderNum
  2. url是按钮的路径。依然需要判断?后的参数(强烈不推荐)。然后和paramVOS(按钮的定义中的paramVOS属性)组合到一起作为按钮的参数(url的优先级大于paramVOS)。格式如jsPath#methodName?param=aaa&param1=bbb。
  • url的说明
    |参数名字|参数说明|使用场景|
    |:--:|:--:|:--:|
    |jsPath|按钮所属的Js的路径|如果在layui.js或者再vciAlias.js定义了映射,则使用简称,否则使用全路径|
    |methodName|组件里的方法名字|如果在没有设置,则默认为doAction,即可能会配置为jsPath?param=aaa|
    |param和param1|参数|按照http的url格式定义,参数可能为空|
  1. 前置和后置事件。分为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)即可|
  2. js里有前置事件和后置时间的情况下的处理
    • 配置表达式。依然是遵循jsPath#methodName?param=aaa&param1=bbb。如果是和按钮的js是一个,则jsPath可以设置为空,此时#和methodName不能为空.前置事件的默认方法为doBefore,后置事件的默认方法为doAfter
    • 调用的方式。前置事件调用时,将按钮的执行方法作为callback参数传递进去,前置事件里需要处理完成后,判断callback是否存在,存在则调用。后置时间也是作为按钮执行方法的callback参数传递进去。即这三个都是按照异步方式处理
    • 参数的说明
      |参数名字|参数说明|使用场景|
      |:--:|:--:|:--:|
      |params|配置的参数|就是配置里的paramVOS对象加上路径里?后的内容|
      |dataStore|选择的数据|当前组件中选择的数据,都一数组的形式传递|
      |componentVO|组件的配置信息|按钮所在的组件的配置信息|
      |thisUI|UI面板的对象|就是整个按钮所在的js的this指代对象|
      |sourceData|组件的来源数据|就是按钮所在组件的来源数据,比如现在是中心区,这个就是西区的选择数据|
      |thisButton|按钮的jquery用法的指代对象|在按钮的事件中获取的$(this)|
      |callback|回调方法|回调方法中,需要把除了callback的参数都放入其中|
  3. js调用按钮的方式。传递的参数为options。其中包含以下的属性
    |属性名字|属性说明|数据取值|
    |:--:|:--:|:--:|
    |params|配置的参数|就是配置里的paramVOS对象加上路径里?后的内容|
    |dataStore|选择的数据|当前组件中选择的数据,都一数组的形式传递|
    |componentVO|组件的配置信息|按钮所在的组件的配置信息|
    |thisUI|UI面板的对象|就是整个按钮所在的js的this指代对象|
    |sourceData|组件的来源数据|就是按钮所在组件的来源数据,比如现在是中心区,这个就是西区的选择数据|
    |thisButton|按钮的jquery用法的指代对象|在按钮的事件中获取的$(this)|
  4. 按钮编写示例
    ```
    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
    }

```