场景一

image.png

  • 假设有两个组件,一个得分(数字输入框),一个自评等级(下拉选择框)
  • 自评等级 配置了默认值的数据联动,条件是 得分 触发联动出来的

image.png

  • 然后,得分这个组件的值是通过远程接口获取值,然后通过 JS 方式 numberField.setVal(79.5``); 赋值的
  • 最后,需要触发“自评等级”这个组件的默认值联动


操作

  1. 打开表单设计器的js动作面板,填入修复JS代码片段。
  1. const formFieldLinkageList = [
  2. 'numberField_khznwg2y',
  3. ];
  4. // 联动绑定逻辑
  5. function triggerFieldLinkage(ctx, fieldId) {
  6. const globalEvents = ctx.getGlobalEvents();
  7. const linkageMap = globalEvents[fieldId] || {};
  8. const linkageEvents = linkageMap['onChange'] || [];
  9. linkageEvents.forEach((event) => {
  10. ctx.params = {
  11. ...event.params,
  12. };
  13. typeof event.func === 'function' && event.func(ctx);
  14. });
  15. }
  16. // 页面节点加载渲染完毕
  17. export function didMount(ctx) {
  18. const numberField = ctx.store.get('numberField_khznwg2y');
  19. // 通过远程接口获取数据,并赋值给得分组件
  20. numberField.setVal(79.5);
  21. formFieldLinkageList.forEach(fieldId => triggerFieldLinkage(ctx, fieldId));
  22. }
  1. 配置需要再次触发联动的组件列表,替换组件的唯一标识,组件是作为条件的组件。

image.png

说明

目前手动通过 JS 赋值的方式,再触发联动还需要上面代码支持。