简体中文
form.submit.before
约 341 字大约 1 分钟
2025-12-15
- 校验数据并拦截提交动作
该钩子在对象表单提交数据之前。 表单提交前执行额外的业务动作,包含且不限于以下功能:
- 处理提交的数据
参数
| 参数 | 说明 | 类型 |
|---|---|---|
| 通用参数 | 详见 | -- |
| objApiName | 主对象apiName | String |
| recordType | 主对象业务类型 | String |
返回结果
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| parseParam | 开发人员可以通过实现该函数来处理提交的数据(示例) | Function | -- |
基础示例
处理提交数据
export default class Plugin {
apply() {
return [{
event: 'form.submit.before',
functional: this.formSubmitBefore.bind(this)
}]
}
//如果是vcrm项目的中台插件需要交互参数位置
//formSubmitBefore(plugin, context)
formSubmitBefore(context, plugin) {
return Promise.resolve({
parseParam: function(postData){
// 修改主对象数据
postData.object_data.name = 'test';
// 修改从对象数据
postData.details.object_K2z2d__c.forEach(item => {
item.xxx = 'test'
})
return postData;
}
})
}
}校验数据并拦截提交动作
export default class Plugin {
apply() {
return [{
event: 'form.submit.before',
functional: this.formSubmitBefore.bind(this)
}]
}
//如果是vcrm项目的中台插件需交互参数位置
//formSubmitBefore(plugin, context)
formSubmitBefore(context, plugin) {
return new Promise((resolve, reject) => {
const masterData = context.dataGetter.getMasterData();
if(masterData.name == '北京') {
//此处演示用的弹框,实际开发中替换为自己的confirm
confirm('你确定要提交数据吗', {
onConfirm() {
// 如果用户点击了确认 继续提交
resolve();
},
onCancel() {
// 如果用户点击了取消 阻断提交
reject()
}
})
}
})
}
}