自定义联动
联动方式与online写代码类似
但是这里没有response,也就是没有返回值
入参有:
- context:上下文
- extra:额外自定义的内容
- handler:刷新配置方法onChangeConfig,搜索方法
- trigger:触发这个联动的属性,有attrCode,formCode
- utils:工具类,有提示类,弹窗,请求,加载组件
- relationStore:已有的联动配置
- relation:联动引擎
组件
组件可以通过useImperativeHandle暴露更多的api,在自定义联动里调用组件api
自定义联动按钮例子
自定义联动新增一行
设计器上查看code
const { context } = configs;
// 获取组件ref。需要去设计器上看对应的formCode,attrCode,如果没有formCode比如明细表,则放空字符串
const ref = context.getCompRef({ formCode: '', attrCode: 'CODE_71C301E326FDF' });
// 获取整个表单的数据
const data = context.getFormData();
// 拿某个字段的值
const defaultData = data?.['BASE_116EA13C0B01C']
// ID是每行唯一,__add表明这一行是新增,BASE_5ED9081F88E14是需要设置默认值
const newLine = [{ ID: new Date().getTime(), __add: true, BASE_5ED9081F88E14: defaultData }];
// 调用明细组件方法addLine即可
ref?.addLine(newLine);
联动触发其他联动
const { context } = configs;
// 获取组件ref
const compRef = context?.getCompRef?.({ formCode: '目标属性的formCode', attrCode: '目标属性的attrCode' });
// 执行改变事件,第一个是改变的值,如果在明细表内,需要填上行id和第几行:index
compRef?.onChange?.('改变的值', {formCode: '目标属性的formCode', attrCode: '目标属性的attrCode', id: '', index: ''})
作者:黄允桢 创建时间:2022-07-11 11:38
最后编辑:黄允桢 更新时间:2024-12-11 10:09
最后编辑:黄允桢 更新时间:2024-12-11 10:09