自定义联动

联动方式与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