自定义按钮操作

    用于执行自定义按钮触发逻辑

    例:用户点击客户下的延期按钮,弹出界面,输入申请延期时间,触发审批,通过后,可以延迟相应的公海回收时间。

产品列表页

新建按钮

按钮函数的三种返回类型应用场景:

Map

返回值类型是 Map ,通常是和页面交互使用的 通常返回的信息需要包含 error : 是否出错 errorMessage : 出错后提示的错误信息 block : 提示异常信息后,是否阻塞保存

[ "error":true, "errorMessage":"如果失败了,提示的错误信息", "block":true ]

String

返回一个String类型,内容必须是一个有效的URL,点击按钮后页面跳转到该返回值对应的URL。

UIAction

按钮跳转到标准页面或者自定义组件的场景,需要配置返回类型为UIAction的按钮函数。

    UIAction 跳转到详情页自定义组件:

Groovy:

UIAction openDialogAction = OpenDialogAction.build{
  userData = [:] //传递给自定义组件的数据键值对list
  title = "title" //标题
  width = 123 //宽高
  maxHeight = 123 //最大高度

  component { //组件的apiName
    apiName = "comp_yuio8__c"
  }
}

return openDialogAction

函数的context.data、context.details会作为默认参数objectData、details传递给自定义组件。

    UIAction 跳转到列表页自定义组件:

Groovy:

UIAction openDialogAction = OpenDialogAction.build{
  userData = [:] //传递给自定义组件的数据键值对list
  title = "title" //标题
  width = 123 //宽高
  maxHeight = 123 //最大高度

  component { //组件的apiName
    apiName = "comp_yuio8__c"
  }
}

return openDialogAction

Java:

import java.util.List;
import java.util.Map;

public class ButtonJava implements IButtonUIAction {

  /**
   * UIAction 跳转到列表页自定义组件
   */
  @Override
  public UIAction execute(FunctionContext context, Map<String, Object> args) {
      OpenDialogAction.Builder builder = OpenDialogAction.Builder.create();

      OpenDialogAction.Component component = OpenDialogAction.Component.create();
      component.setApiName("comp_yuio8__c");

      Map paraMap = Maps.newHashMap();
      paraMap.put("a", 1);
      paraMap.put("b", 2);     
      builder.data = paraMap;//传递给自定义组件的数据键值对list
      builder.setTitle("title");//标题
      builder.setWidth("123");//宽高
      builder.setMaxHeight("123");//最大高度

      builder.component = component;//组件的apiName
      builder.toOpenDialogAction();
      return builder.toOpenDialogAction();

  }
}

函数的conext.dataList会作为默认参数objectIds传递给自定义组件。

    UIAction 跳转到标准组件:

Groovy:

//1 跳转打印模板
/**
 * data 打印时需要传递的参数
 */

Map data = [
    "validatePreAction":false,  //前验证必须是false
    "templateId":"5e994bbfa5083d97d6ae7afa",  //指定打印模板
    "dataId":"5d428ed922381800018d946c",      //数据的id
    "orientation":"Landscape",                //横向还是纵向
    "skipCheckButtonConditions":false         //是否跳过对象的按钮显示条件判断
]
WebAction action = WebAction.builder()
  .type('print')
  .data(data)
  .build()

return action

//2 跳转新建页面
Map data = [
  'apiname':'AccountObj',
  'record_type': 'default__c'
]

WebAction action = WebAction.builder()
  .type('form')
  .data(data)
  .build()

return action

//3 跳转新建页面并为新建页面字段设置默认值
Map recordData = [
  'field_62AcX__c': "6066ec21fe5dbf0024f67e02",  //为查找关联字段赋值
  'field_62AcX__c__r': "我的商品1",               //必须用此方法添加查找关联对象数据的主属性
  'name':'回填'
]
Map data = [
  'apiname':'object_qe3x1__c',
  'record_type': 'default__c',
  'data': recordData,
  'details':[:]
]
WebAction action = WebAction.builder()
  .type('form')
  .data(data)
  .build()
return action

//4 跳转到URL
UIAction uiAction = WebAction.builder()
  .type('url')
  .url('www.fxieoke.com')
  .build()
return uiAction

Java:

import java.util.List;
import java.util.Map;

public class UIActionPrint implements IButtonUIAction {

  /**
   * 跳转打印模板
   */
  @Override
  public UIAction execute(FunctionContext context, Map<String, Object> args) {
    Map data = Maps.newHashMap();                       //data为打印时需要传递的参数
    data.put("validatePreAction", false);               //前验证必须是false
    data.put("templateId", "5e994bbfa5083d97d6ae7afa"); //指定打印模板
    data.put("dataId", "5d428ed922381800018d946c");     //数据的id
    data.put("orientation", "Landscape");               //横向还是纵向打印
    data.put("skipCheckButtonConditions", false);       //是否跳过对象的按钮显示条件判断

    UIAction action = WebAction.builder()
      .type("print")   
      .data(data) 
      .build();
    return action;
  }
}
import java.util.List;
import java.util.Map;

public class UIActionJump implements IButtonUIAction {


  /**
   * 跳转到对象新建页面
   */
  @Override
  public UIAction execute(FunctionContext context, Map<String, Object> args) {

    Map data = Maps.newHashMap();          //data对象跳转参数
    data.put("apiname", "AccountObj");     //对象API名称
    data.put("record_type", "default__c"); //对象业务类型

    UIAction action = WebAction.builder()
      .type("form")
      .data(data) 
      .build();
    return action;
  }
}
import java.util.List;
import java.util.Map;

public class UIActionJumpDefault implements IButtonUIAction {

  /**
   * 跳转新建页面并为新建页面字段设置默认值
   */
  @Override
  public UIAction execute(FunctionContext context, Map<String, Object> args) {

    Map recordData = Maps.newHashMap();          
    recordData.put("field_62AcX__c", "6066ec21fe5dbf0024f67e02");     //为查找关联字段赋值
    recordData.put("field_62AcX__c__r", "我的商品1"); //必须用此方法添加查找关联对象数据的主属性

    Map detais = Maps.newHashMap();          

    Map data = Maps.newHashMap();          //data对象跳转参数
    data.put("apiname", "object_qe3x1__c");     //对象API名称
    data.put("record_type", "default__c"); //对象业务类型
    data.put("data", recordData); //对象业务类型
    data.put("detais", detais); //对象业务类型

    UIAction action = WebAction.builder()
      .type("form")                   
      .data(data) 
      .build();
    return action;
  }
}
import java.util.List;
import java.util.Map;

public class UIActionJumpURL implements IButtonUIAction {

  /**
   * 跳转到URL
   */
  @Override
  public UIAction execute(FunctionContext context, Map<String, Object> args) {

    UIAction action = WebAction.builder()
      .type("url")
      .url("www.fxieoke.com") 
      .build();
    return action;
  }
}

     UIAction 移动端返回弹窗信息:

Groovy:

AlertAction action = AlertAction.builder()
  .type('default')
  .text('提示的信息')
  .build()
return action
//提示信息不能为空,type 是为了预留后面多种弹框提示的样式的属性, 可以为空,为空或默认塞入 default

Java:

import java.util.List;
import java.util.Map;

public class UIActionMessage implements IButtonUIAction {

  /**
   *  移动端返回弹窗信息
   */
  @Override
  public UIAction execute(FunctionContext context, Map<String, Object> args) {
  //提示信息不能为空,type 是为了预留后面多种弹框提示的样式的属性, 可以为空,为空或默认塞入 default  
  AlertAction action = AlertAction.builder()
      .type("default")                  
      .text("提示的信息")  
      .build();
    return action;
  }
}

     UIAction 移动端跳转页面:

Groovy:

AppAction app = AppAction.builder()
  .url('https://www.baidu.com')
  .build()
return app

Java:

import java.util.List;
import java.util.Map;

public class UIActionPhoneJump implements IButtonUIAction {

  /**
   * 移动端跳转页面
   */
  @Override
  public UIAction execute(FunctionContext context, Map<String, Object> args) {
    AppAction action = AppAction.builder()
      .url("https://www.baidu.com") //跳转的 url 地址
      .build();
    return action;
  }
}

results matching ""

    No results matching ""