Groovy代码示例
/**
* 产品列表页展示拓展组件
* @param arg 订单主对象objectData,从对象 details["SalesOrderProductObj",productList]
* @return 产品列表页拓展布局 productIdToExtendMap:
* [id1: [info:[文案内容集合],tip:[提示内容集合]],[id2:...]]]
*/
@Override
ProductsExtend.Result getProductsExtend(ProductsExtend.Arg arg) {
/*log.info("productsExtend Arg:" + arg)
//订单主对象
Map masterData = arg.objectData as Map
//details 从对象
List productList = arg.details["SalesOrderProductObj"] as List
Map resultMap = [:]
productList.each { item ->
String id = item["_id"] as String
List infoList = []
List tipList = []
infoList.add(["content": "infoContent2", "color": "#91959e"])
tipList.add(["title" : "titleContent", "content": "tipContent", "color": "#fc5857"])
Map tmpMap = ["info": infoList, "tip": tipList]
resultMap.put(id, tmpMap)
}
log.info("resultMap=" + resultMap)*/
return ProductsExtend.Result.builder().productIdToExtendMap(null).build()
}
/**
* 下单按钮处理主订单、订单产品数据
* @param arg 订单主对象objectData,从对象 details["SalesOrderProductObj",productList]
* @return
* 主订单 data,
* 从对象 details["SalesOrderProductObj",productList],
* 拆分订单集合 splitOrderDetail
*/
@Override
OrderDetails.Result commitOrderConfirm(OrderDetails.Arg arg) {
/*log.info("commitOrderConfirm Arg: " + arg)
//主订单对象
Map masterData = arg.objectData as Map
//从对象
Map details = arg.details as Map
List productList = details["SalesOrderProductObj"] as List
//如需要处理主订单、订单产品数据,处理后赋值在objectData、details中返回结果
//若拆分订单,拆分后的多个data、details组合,放splitOrders集合中
OrderDetails.SplitOrders splitOrders1 = OrderDetails.SplitOrders.builder()
.objectData(masterData)
.details(details)
.build()
OrderDetails.SplitOrders splitOrders2 = OrderDetails.SplitOrders.builder()
.objectData(masterData)
.details(details)
.build()
List splitOrders = [splitOrders1, splitOrders2]
OrderDetails.SplitOrderInfo splitinfo = OrderDetails.SplitOrderInfo.builder()
.groupField("") //按照什么维度去分组的apiname
.collectMasterFieldList([]) //需要在将主订单拆分后的每个订单上,独立展示的字段的APIName集合
.uiEventMasterFieldList([]) //提前在主订单布局上配置UI事件,返回的是触发UI事件的字段的APIName集合
.saveField("") //新增的自定义字段的APIName(多行文本),该字段由前端组装数据并存储,存储内容为collectMasterFieldList中要展示的字段数据
.build()
OrderDetails.SplitOrderDetailDTO splitOrderDetailDTO = OrderDetails.SplitOrderDetailDTO.builder()
.splitOrderInfo(splitinfo)
.orderList(splitOrders)
.build()*/
return OrderDetails.Result.builder()
.objectData(null)
.details(null)
.splitOrderDetail(null)
.build()
}
/**
* 处理是否跳过订单主对象信息页
* @param arg 客户Id:accountId 当前用户Id:userId 布局名字:orderLayout 展示的字段集合:showFields
* @return display true/false 显示/隐藏 objectData 写入订单主对象数据 (display=false时 生效)
* {"display" : true, "objectData" : {"field1" : "value1"}}
*/
@Override
CustomPageDisplay.Result customPageDisplayHandler(CustomPageDisplay.Arg arg) {
log.info("customPageDisplayHandler Arg: " + arg)
return CustomPageDisplay.Result.builder()
.display(true)
.objectData(null)
.build()
}