简体中文
object_reference
约 408 字大约 1 分钟
2025-09-22
查找关联单选/多选字段在 field.edit.before 阶段触发,发生于唤起选对象控件之前。
- 在这个时机拦截添加动作
- 加工选对象控件入参
- 替换选对象控件
参数
| 参数 | 说明 | 类型 |
|---|---|---|
| fieldName | 触发事件的字段api_name | String |
| objApiName | 触发事件的对象api_name | String |
| dataIndex | 触发事件数据的dataIndex(适用于从对象数据) | String |
| selectObjectParams | 即将用于唤起选对象控件的入参,在插件内可以修改该参数 | Object |
selectObjectParams 关键属性说明
| 参数 | 说明 | 类型 |
|---|---|---|
| isSingle | true单选false多选 | Boolean |
| filters | 过滤条件 | Array |
| wheres | 过滤条件 | Array |
| disableAdd | true禁止从选对象列表新建 | Boolean |
返回结果
| 参数 | 说明 | 类型 |
|---|---|---|
| consumed | true不再继续执行后续逻辑 | Boolean |
| selectObjectParams | 即将用于唤起选对象控件的入参,在钩子内可以修改该参数 | Object |
| selectObject | 选对象方法(异步),插件处理选对象逻辑,返回选择的数据,支持多选async p=>{return {objectDataList:[{_id:'',name:'',...}]} | Function |
代码示例
过滤可选择的数据
{
event: "field.edit.before",
functional: function (pluginExecResult, options) {
let {selectObjectParams}=options;
//追加过滤条件,过滤出主属性包含“红色”的数据
selectObjectParams.filters = (selectObjectParams.filters||[]).push({
field_name:"name",
field_values:["红色"],
operator: "LIKE"
})
return {selectObjectParams}
}
}插件实现选择控件,替换掉默认选择控件
{
event: "field.edit.before",
functional: function (pluginExecResult, options) {
let selectObject = async function(params){
let objectDataList=[]
//唤起选择自定义控件,并接收选择的数据
//示例:objectDataList = await selectData(params)
return {objectDataList}//返回选择的数据
}
return {selectObject}
}
}注意
- 不适合在这个事件中调用
dataUpdater更新数据
