简体中文
triggerCal
约 383 字大约 1 分钟
2025-12-15
bizApi.triggerCal(param)
触发计算,推荐尽量使用triggerCalAndUIEvent
参数
| 参数 | 说明 | 类型 | 是否必填 |
|---|---|---|---|
| operateType | 计算类型:从数据编辑mdEdit|从数据复制mdCopy|从数据删除mdDel|从数据添加mdAdd|主对象数据编辑masterEdit | String | 是 |
| masterData | 主对象数据 | Object | 否 |
| objApiName | 当前发起计算的对象 | String | 是 |
| details | 从对象数据 | Object | 否 |
| parseParam | 发起计算之前可以拦截请求参数,再次进行修改 | Function | 否 |
| delDatas | 删除的从对象数据 | Array | 当发起的计算是因为删除了从对象数据,必填 |
| extraFields | 当底层分析出来的计算字段不满足业务,可通过它添加额外需要计算的字段:比如{SalesOrderObj: ['discount']} | Object | 否 |
| filterFields | 当需要对通用的计算字段进行过滤:比如{SalesOrderObj: ['discount']} | Object | 否 |
| changeFields | 此次计算是因为修改某些字段的值:比如['price','discount'] | Array | 当发起的计算是因为修改了某些字段的值,必填 |
| noRetry | 当计算失败时是否需要重试 | Boolean | 否 |
| loadingText | 计算过程中的提示文字 | String | 否 |
| noLoading | 计算过程中不显示loading,去掉可能会导致数据并发问题 | Boolean | 否 |
返回结果
Promise
基础示例
修改从数据
export default class Plugin {
apply() {
return [{
event: 'form.render.after',
functional: this.formRendereAfter.bind(this)
}]
}
formRendereAfter(context, plugin) {
return new Promise((resolve, reject) => {
context.triggerCal({operateType: 'mdEdit', changeFields: ['price', 'discount']}).then(rst => {
if(rst.statusCode) {//计算出现问题,说明当前添加的数据有问题
reject();
} else {//没有错误时正常更新数据
resolve();
}
})
})
}
}