获取自定义函数所绑定的对象及当前页面的信息, context.pageParams
属性名 | 说明 |
---|
objectKey | 触发当前事件的对象key,主从时为主对象 |
dataId | 当前数据id,无则为null |
triggerFieldKey | 触发字段key,从对象事件的【新增】【删除】为null |
triggerSlaveObjectKey | 如果是从对象事件,触发字段所属从对象key |
triggerRowIndex | 如果是从对象编辑事件,为触发字段所在行索引;如果为从对象事件的【新增】【删除】为数据所在行索引;索引从0开始 |
form | 表单数据,结构参见Form |
属性名 | 说明 | 案例 |
---|
fieldMap | 主对象的数据结构 | 如下 |
{
fieldMap:
{
owner: '6009131820263261358',
department: '10',
name: '目光',
field_J7VJS__c: '7a5da9f4be2e4eaf97c92748e58f9322',
field_bkJc0__c: 'cb51a4060a204ed78843d993b35473be',
field_ns0I3__c: null,
field_V7NFP__c: null,
field_zf1vA__c: 0,
id: null
}
}
{
slaveMap: {
object_ECdTe__c: [
{
fieldMap: {
name: "光1001",
field_sx1ir__c: "df0fb6456b8041f6ae4ff59b709b5c4a",
id: null,
field_lktqa__c: null,
owner: "6009131820263261358"
},
rowIndex: 0,
object_key: "object_ECdTe__c"
},
{
fieldMap: {
name: "光6228",
field_sx1ir__c: "df0fb6456b8041f6ae4ff59b709b5c4a",
id: null,
field_lktqa__c: null,
owner: "6009131820263261358"
},
rowIndex: 1,
object_key: "object_ECdTe__c"
}
]
}
}
方法名 | 参数类型 | 参数举例 | 参数说明 | 备注 |
---|
initialValues | (Map) | 参数举例如下 | 结构同Form;fieldMap: 字段数据Map,主从对象一条数据的结构一致;slaveMap: 从对象数据集;object_key: 字段数据Map所属对象;rowIndex: 代表从对象数据集中当前所处位置索引,从0开始。 | 字段变更事件时,设置初始值不生效 |
Map initialData = [
"fieldMap": [
"field_master__c": "初始值"
],
"object_key": 'object_master_key',
"slaveMap": [
"object_slave__c": [
[
"rowIndex": 0,
"fieldMap": [
"field_slave__c": "单行文本"
],
"object_key": "object_slave__c"
]
]
]
]
optionHidden | (Map) | 参数举例如下 | rowIndex: 代表从对象数据集中当前所处位置索引,从0开始 | |
Map optionResult = [
object_master_key: [
field_master__c: ["option3", "option4"]
],
object_slave_key: [
[
rowIndex: 2,
field_slave__c: ["option1", "option3"]
]
]
]
visible | (Map) | 参数举例如下 | | show与hidden存在同一字段时,hidden优先级更高,show将失效 |
Map visibleResult = [
object_master_key: [
hidden: ["field_master_key1", "field_master_key2"],
show: ["field_master_key1", "field_master_key11"]
],
object_slave_key: [
[
rowIndex: 1,
hidden: ["field_slave_key1", "field_slave_key2"],
show: ["field_slave_key3"]
]
]
]
values | (Map) | 参数举例如下 | 结构同Form | 页面初始化事件中,设置表单值不生效,请使用initialValues |
Map valueResult = [
fieldMap: [
field_field1__c: 'option1',
field_field2__c: '6378030218049702609'
],
object_key: 'object_master_key',
slaveMap: [
object_slave_key: [
[
rowIndex: 3,
fieldMap: [
[
field_slaveField1__c: 'option1',
field_slaveField2__c: '6378030218049702609'
]
],
object_key: "object_slave_key",
]
]
]
]
参考事例:
def params = context.pageParams;
def masterData = params.form.fieldMap; // 主对象数据
def slaveData = params.form.slaveMap.object_slave__c; // 从对象数据
def size = slaveData.size(); // object_slave__c对象数据个数
def objectKey = params.objectKey; // 当前的对象,存在主从时为主对象
def triggerSlaveObjectKey = params.slaveObjectKey; // 从对象事件中如果是从对象事件,触发字段所属从对象;如果为主对象的字段触发,则无该属性
def triggerFieldKey = params.triggerFieldKey; // 触发字段,如果为从对象事件的【新增】【删除】,则无该属性
def triggerRowIndex = params.triggerRowIndex; // 如果是从对象编辑事件,为触发字段所在行索引;如果为从对象事件的【新增】【删除】为数据所在行索引;索引从0开始
PageEvent event;
Map optionResult;
Map visibleResult;
Map valueResult;
/*
处理逻辑
*/
// 过滤单多选选项
optionResult = [
object_master_key: [
field_master__c: ["option3", "option4"]
],
object_slave_key: [
[
rowIndex: triggerRowIndex,
field_slave__c: ["option1", "option3"]
]
]
]
// 控制字段显隐
// show与hidden存在同一字段时,hidden优先级更高,show将失效
visibleResult = [
object_master_key: [
hidden: ["field_master_key1", "field_master_key2"],
show: ["field_master_key1", "field_master_key11"]
],
object_slave_key: [
[
rowIndex: 1,
hidden: ["field_slave_key1", "field_slave_key2"],
show: ["field_slave_key3"]
]
]
]
// 变更其他字段数据
valueResult = [
fieldMap: [
field_field1__c: 'option1',
field_field2__c: '6378030218049702609'
],
object_key: 'object_master_key',
slaveMap: [
object_slave_key: [
[
rowIndex: 3,
fieldMap: [
[
field_slaveField1__c: 'option1',
field_slaveField2__c: '6378030218049702609'
]
],
object_key: "object_slave_key",
]
]
]
]
event.builder()
// .initialValues(initialData) // 字段变更事件,设置初始值不生效
.optionHidden(optionResult)
.visible(visibleResult)
.values(valueResult)
.build();
return event;
注:
在字段变更中,对于从对象的value,若rowIndex匹配不上则认为是新增数据(超出从对象个数限制则忽略超出部分);若仅有rowIndex认为是删除数据。
def params = context.pageParams;
def slaveData = params.form.slaveMap.object_slave__c; // 从对象数据
def triggerFieldKey = params.triggerFieldKey; // 触发字段
def triggerRowIndex = params.triggerRowIndex;
def record = slaveData.get(triggerRowIndex)
def price = record.field_price__c;
def discount = record.field_discount__c;
def expextedPrice = record.field_expextedPrice__c;
/* 输入折扣,自动算出预期单价;输入预期单价,自动算出折扣 */
PageEvent event;
Map fieldMap = [];
// 单价 * 折扣 = 预期单价
if (triggerFieldKey == 'field_price__c') {
// 公式计算
expextedPrice = price * discount;
fieldMap = [
field_expextedPrice__c: expextedPrice
]
} else if (triggerFieldKey == 'field_expextedPrice__c') {
// 公式计算
discount = expextedPrice / price;
fieldMap = [
field_discount__c: discount
]
}
Map valueResult = [
slaveMap: [
object_slave_key: [
[
rowIndex: triggerRowIndex,
fieldMap: fieldMap,
object_key: "object_slave_key",
]
]
]
];
event = PageEvent.builder()
.values(valueResult)
.build();
return event
def params = context.pageParams;
def slaveData = context.data.slave.object_slave__c; // 从对象数据
def size = slaveData.size(); // object_slave__c对象数据个数
PageEvent event;
Map initialData = [
"fieldMap": [
"field_master__c": "6378030218049702609"
],
"object_key": 'object_master_key',
"slaveMap": [
"object_slave__c": [
[
"rowIndex": size - 1, // 仅设置该从对象最后一条数据的初始值
"fieldMap": [
"field_slave__c": "单行文本"
],
"object_key": "object_slave__c"
]
]
]
]
event = PageEvent.builder()
.initialValues(initialData)
.build();
return event;