简体中文
md.add.before
约 348 字大约 1 分钟
2025-12-15
该钩子发生在新建从对象数据之前。 新建从对象数据前执行额外的业务动作,包含且不限于以下功能:
- 拦截新建从对象数据
参数
| 参数 | 说明 | 类型 |
|---|---|---|
| 通用参数 | 详见 | -- |
| objApiName | 从对象apiName | String |
| recordType | 从对象业务类型 | String |
| newData | 新添加的从对象数据 | Object |
| newDataIndexs | 新添加的从对象数据的行ID | Array |
基础示例
拦截从对象新建
export default class Plugin {
apply() {
return [{
event: 'md.add.before',
functional: this.mdAddBefore.bind(this)
}]
}
//如果是vcrm项目的中台插件需要交互参数位置
//mdAddBefore(plugin, context)
mdAddBefore(context, plugin) {
return new Promise((resolve, reject) => {
let {newData} = context;
//如果想对添加的数据,修改一些字段值,直接修改newData
//newData.sex = 'xxx'
if(newData.name === 'xxx') {
reject();//拦截不让添加
} else {
resolve();//放行正常添加数据
}
})
}
}注意事项
1. 此钩子中变更的字段值也会参与后续的计算/UI事件等逻辑
在此钩子中修改数据后,后续的计算和UI事件将基于更新后的字段值进行处理。
2. 此钩子中通过上下文API获取到的从对象数据并不包含新建的数据
当此钩子被调用时,对象数据尚未创建完成,因此API无法在对象数据中找到新建的数据。
