weaver-e10-builder 1.7.0 → 1.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/assets/icon-names.txt +7438 -0
  2. package/dist/cli-register.d.ts.map +1 -1
  3. package/dist/cli-register.js +16 -3
  4. package/dist/cli-register.js.map +1 -1
  5. package/dist/commands/app-manager.d.ts +8 -0
  6. package/dist/commands/app-manager.d.ts.map +1 -0
  7. package/dist/commands/app-manager.js +330 -0
  8. package/dist/commands/app-manager.js.map +1 -0
  9. package/dist/commands/app-setting.d.ts +8 -0
  10. package/dist/commands/app-setting.d.ts.map +1 -0
  11. package/dist/commands/app-setting.js +170 -0
  12. package/dist/commands/app-setting.js.map +1 -0
  13. package/dist/commands/connector.d.ts +7 -0
  14. package/dist/commands/connector.d.ts.map +1 -0
  15. package/dist/commands/connector.js +163 -0
  16. package/dist/commands/connector.js.map +1 -0
  17. package/dist/commands/form-association-manage.d.ts.map +1 -1
  18. package/dist/commands/form-association-manage.js +57 -4
  19. package/dist/commands/form-association-manage.js.map +1 -1
  20. package/dist/commands/form-association.d.ts.map +1 -1
  21. package/dist/commands/form-association.js +4 -2
  22. package/dist/commands/form-association.js.map +1 -1
  23. package/dist/commands/form-button-actions-cmd.d.ts.map +1 -1
  24. package/dist/commands/form-button-actions-cmd.js +180 -18
  25. package/dist/commands/form-button-actions-cmd.js.map +1 -1
  26. package/dist/commands/form-button-props-cmd.d.ts.map +1 -1
  27. package/dist/commands/form-button-props-cmd.js +4 -0
  28. package/dist/commands/form-button-props-cmd.js.map +1 -1
  29. package/dist/commands/form-button.d.ts.map +1 -1
  30. package/dist/commands/form-button.js +11 -0
  31. package/dist/commands/form-button.js.map +1 -1
  32. package/dist/commands/form-permission.d.ts.map +1 -1
  33. package/dist/commands/form-permission.js +310 -84
  34. package/dist/commands/form-permission.js.map +1 -1
  35. package/dist/commands/icon.d.ts.map +1 -1
  36. package/dist/commands/icon.js +63 -1
  37. package/dist/commands/icon.js.map +1 -1
  38. package/dist/commands/menu-config.d.ts +3 -0
  39. package/dist/commands/menu-config.d.ts.map +1 -0
  40. package/dist/commands/menu-config.js +93 -0
  41. package/dist/commands/menu-config.js.map +1 -0
  42. package/dist/commands/menu-permission.d.ts.map +1 -1
  43. package/dist/commands/menu-permission.js +6 -7
  44. package/dist/commands/menu-permission.js.map +1 -1
  45. package/dist/commands/menu.d.ts.map +1 -1
  46. package/dist/commands/menu.js +2 -5
  47. package/dist/commands/menu.js.map +1 -1
  48. package/dist/services/actionflow/components/action_eb_add.js +1 -1
  49. package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
  50. package/dist/services/actionflow/components/date_trigger.js +1 -1
  51. package/dist/services/actionflow/components/date_trigger.js.map +1 -1
  52. package/dist/services/actionflow/components/enquiry_form.js +4 -4
  53. package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
  54. package/dist/services/actionflow/components/meeting_create.d.ts.map +1 -1
  55. package/dist/services/actionflow/components/meeting_create.js +2 -1
  56. package/dist/services/actionflow/components/meeting_create.js.map +1 -1
  57. package/dist/services/actionflow/components/output.d.ts.map +1 -1
  58. package/dist/services/actionflow/components/output.js +2 -0
  59. package/dist/services/actionflow/components/output.js.map +1 -1
  60. package/dist/services/actionflow/context_discovery.d.ts.map +1 -1
  61. package/dist/services/actionflow/context_discovery.js +3 -0
  62. package/dist/services/actionflow/context_discovery.js.map +1 -1
  63. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  64. package/dist/services/actionflow/context_preflight.js +0 -10
  65. package/dist/services/actionflow/context_preflight.js.map +1 -1
  66. package/dist/services/actionflow/date_trigger_field.d.ts +3 -0
  67. package/dist/services/actionflow/date_trigger_field.d.ts.map +1 -0
  68. package/dist/services/actionflow/date_trigger_field.js +23 -0
  69. package/dist/services/actionflow/date_trigger_field.js.map +1 -0
  70. package/dist/services/actionflow/form_source.d.ts +1 -1
  71. package/dist/services/actionflow/form_source.d.ts.map +1 -1
  72. package/dist/services/actionflow/form_source.js +9 -1
  73. package/dist/services/actionflow/form_source.js.map +1 -1
  74. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  75. package/dist/services/actionflow/formula_service.js +4 -12
  76. package/dist/services/actionflow/formula_service.js.map +1 -1
  77. package/dist/services/actionflow/generation_service.d.ts.map +1 -1
  78. package/dist/services/actionflow/generation_service.js +2 -1
  79. package/dist/services/actionflow/generation_service.js.map +1 -1
  80. package/dist/services/actionflow/loop_context.d.ts.map +1 -1
  81. package/dist/services/actionflow/loop_context.js +17 -0
  82. package/dist/services/actionflow/loop_context.js.map +1 -1
  83. package/dist/services/actionflow/meeting_secret_level.d.ts +5 -0
  84. package/dist/services/actionflow/meeting_secret_level.d.ts.map +1 -0
  85. package/dist/services/actionflow/meeting_secret_level.js +49 -0
  86. package/dist/services/actionflow/meeting_secret_level.js.map +1 -0
  87. package/dist/services/actionflow/preflight_service.d.ts +2 -0
  88. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  89. package/dist/services/actionflow/preflight_service.js +212 -4
  90. package/dist/services/actionflow/preflight_service.js.map +1 -1
  91. package/dist/services/actionflow/readback_verifier.d.ts.map +1 -1
  92. package/dist/services/actionflow/readback_verifier.js +22 -0
  93. package/dist/services/actionflow/readback_verifier.js.map +1 -1
  94. package/dist/services/actionflow/runtime_metadata.d.ts +2 -1
  95. package/dist/services/actionflow/runtime_metadata.d.ts.map +1 -1
  96. package/dist/services/actionflow/runtime_metadata.js +6 -1
  97. package/dist/services/actionflow/runtime_metadata.js.map +1 -1
  98. package/dist/services/actionflow/update_service.d.ts.map +1 -1
  99. package/dist/services/actionflow/update_service.js +42 -1
  100. package/dist/services/actionflow/update_service.js.map +1 -1
  101. package/dist/services/actionflow/webhook_response_context.d.ts +7 -0
  102. package/dist/services/actionflow/webhook_response_context.d.ts.map +1 -0
  103. package/dist/services/actionflow/webhook_response_context.js +82 -0
  104. package/dist/services/actionflow/webhook_response_context.js.map +1 -0
  105. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  106. package/dist/services/actionflow/workflow_compiler.js +67 -35
  107. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  108. package/dist/services/app-manager.d.ts +128 -0
  109. package/dist/services/app-manager.d.ts.map +1 -0
  110. package/dist/services/app-manager.js +420 -0
  111. package/dist/services/app-manager.js.map +1 -0
  112. package/dist/services/app-setting.d.ts +109 -0
  113. package/dist/services/app-setting.d.ts.map +1 -0
  114. package/dist/services/app-setting.js +410 -0
  115. package/dist/services/app-setting.js.map +1 -0
  116. package/dist/services/esb-interface/connector-lock.d.ts +42 -0
  117. package/dist/services/esb-interface/connector-lock.d.ts.map +1 -0
  118. package/dist/services/esb-interface/connector-lock.js +79 -0
  119. package/dist/services/esb-interface/connector-lock.js.map +1 -0
  120. package/dist/services/esb-interface/connector-update.d.ts +34 -0
  121. package/dist/services/esb-interface/connector-update.d.ts.map +1 -0
  122. package/dist/services/esb-interface/connector-update.js +58 -0
  123. package/dist/services/esb-interface/connector-update.js.map +1 -0
  124. package/dist/services/form-association.d.ts +28 -1
  125. package/dist/services/form-association.d.ts.map +1 -1
  126. package/dist/services/form-association.js +232 -2
  127. package/dist/services/form-association.js.map +1 -1
  128. package/dist/services/form-button-action.d.ts +48 -2
  129. package/dist/services/form-button-action.d.ts.map +1 -1
  130. package/dist/services/form-button-action.js +68 -2
  131. package/dist/services/form-button-action.js.map +1 -1
  132. package/dist/services/form-field-options.d.ts +45 -0
  133. package/dist/services/form-field-options.d.ts.map +1 -0
  134. package/dist/services/form-field-options.js +179 -0
  135. package/dist/services/form-field-options.js.map +1 -0
  136. package/dist/services/form-permission-archive.d.ts +1 -0
  137. package/dist/services/form-permission-archive.d.ts.map +1 -1
  138. package/dist/services/form-permission-archive.js +3 -3
  139. package/dist/services/form-permission-archive.js.map +1 -1
  140. package/dist/services/form-permission-edit.d.ts +36 -0
  141. package/dist/services/form-permission-edit.d.ts.map +1 -1
  142. package/dist/services/form-permission-edit.js +77 -1
  143. package/dist/services/form-permission-edit.js.map +1 -1
  144. package/dist/services/icon-catalog.d.ts +60 -0
  145. package/dist/services/icon-catalog.d.ts.map +1 -0
  146. package/dist/services/icon-catalog.js +175 -0
  147. package/dist/services/icon-catalog.js.map +1 -0
  148. package/dist/services/icon-path.d.ts +2 -0
  149. package/dist/services/icon-path.d.ts.map +1 -1
  150. package/dist/services/icon-path.js +4 -0
  151. package/dist/services/icon-path.js.map +1 -1
  152. package/dist/services/menu-config.d.ts +42 -0
  153. package/dist/services/menu-config.d.ts.map +1 -0
  154. package/dist/services/menu-config.js +174 -0
  155. package/dist/services/menu-config.js.map +1 -0
  156. package/dist/services/menu-permission-config.d.ts +47 -0
  157. package/dist/services/menu-permission-config.d.ts.map +1 -0
  158. package/dist/services/menu-permission-config.js +222 -0
  159. package/dist/services/menu-permission-config.js.map +1 -0
  160. package/package.json +1 -1
  161. package/skill-docs/SKILL.md +193 -188
  162. package/skill-docs/_catalog.md +5 -1
  163. package/skill-docs/actionflows/SKILL.md +195 -193
  164. package/skill-docs/actionflows/references/components/calendar/MeetingCreate.md +2 -0
  165. package/skill-docs/actionflows/references/components/ebuilder/ActionEbAdd.md +5 -1
  166. package/skill-docs/actionflows/references/components/ebuilder/ActionEbDelete.md +80 -80
  167. package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +75 -75
  168. package/skill-docs/actionflows/references/components/ebuilder/DateTrigger.md +2 -0
  169. package/skill-docs/actionflows/references/components/ebuilder/EnquiryForm.md +113 -111
  170. package/skill-docs/actionflows/references/components/trigger/WebHookTrigger.md +2 -0
  171. package/skill-docs/actionflows/references/condition_rules.md +100 -100
  172. package/skill-docs/references/app/guide-app-manager.md +93 -0
  173. package/skill-docs/references/app/guide-app-settings.md +93 -0
  174. package/skill-docs/references/common/guide-install.md +2 -0
  175. package/skill-docs/references/common/ref-cli-commands.md +22 -7
  176. package/skill-docs/references/form/guide-form-association.md +36 -0
  177. package/skill-docs/references/form/guide-form-button.md +22 -1
  178. package/skill-docs/references/form/guide-form-permission.md +17 -5
  179. package/skill-docs/references/menu/guide-menu-config.md +130 -0
  180. package/skill-docs/references/menu/guide-menu-permission.md +94 -0
@@ -0,0 +1,82 @@
1
+ function configOf(value) {
2
+ if (typeof value === 'string') {
3
+ try {
4
+ const parsed = JSON.parse(value);
5
+ return parsed && typeof parsed === 'object' && !Array.isArray(parsed) ? parsed : {};
6
+ }
7
+ catch {
8
+ throw new Error('Webhook 响应参数 FormulaBean.config 不是合法 JSON');
9
+ }
10
+ }
11
+ return value && typeof value === 'object' && !Array.isArray(value) ? value : {};
12
+ }
13
+ /** 参数表使用 config.esbAssign 定位所属的 Output 节点,不放在参数行上。 */
14
+ export function attachWebhookResponseEsbAssign(setting, outputNodeId) {
15
+ for (const table of setting?.tables || [])
16
+ for (const row of table?.tableData || []) {
17
+ const bean = row?.formulaData;
18
+ if (!bean || typeof bean !== 'object' || !['3', '4', '6', '8', '10'].includes(String(bean.type || '')))
19
+ continue;
20
+ if (!outputNodeId)
21
+ throw new Error('Webhook 响应参数缺少终止节点 ID,无法配置 esbAssign');
22
+ const config = configOf(bean.config);
23
+ config.esbAssign = { wId: String(outputNodeId), textarea: false, withoutDftNum: true };
24
+ bean.config = typeof bean.config === 'string' ? JSON.stringify(config) : config;
25
+ }
26
+ }
27
+ /** 按来源节点的 getComponentContext 返回值检查原生 FormulaBean 的字段身份。 */
28
+ export function validateWebhookResponseContext(setting, contexts) {
29
+ const errors = [];
30
+ const visit = (value, path) => {
31
+ if (Array.isArray(value)) {
32
+ value.forEach((child, index) => visit(child, `${path}[${index}]`));
33
+ return;
34
+ }
35
+ if (!value || typeof value !== 'object')
36
+ return;
37
+ if (String(value.type) === '3' && value.formulaType) {
38
+ let config;
39
+ try {
40
+ config = configOf(value.config);
41
+ }
42
+ catch (error) {
43
+ errors.push(`${path}: ${String(error.message || error)}`);
44
+ return;
45
+ }
46
+ const source = String(config.comId || value.source || '').trim();
47
+ const key = String(config.paramKey || '').trim();
48
+ const id = String(value.frontId ?? '').trim();
49
+ const context = contexts[source];
50
+ if (!context || !key || !id) {
51
+ errors.push(`${path}: 响应参数缺少已查询的来源组件、paramKey 或 frontId,请先查询来源组件上下文`);
52
+ return;
53
+ }
54
+ const candidates = [];
55
+ for (const group of Object.values(context)) {
56
+ if (group && typeof group === 'object' && group.type === 'context_group' && Array.isArray(group.fields)) {
57
+ for (const field of group.fields)
58
+ if (field && String(field.paramKey || '') === key)
59
+ candidates.push(field);
60
+ }
61
+ }
62
+ const ids = new Set(candidates.map((field) => String(field.id ?? '')).filter(Boolean));
63
+ if (!ids.has(id))
64
+ errors.push(`${path}: '${key}' / frontId '${id}' 不属于来源组件 '${source}' 返回的真实上下文字段,请重新选择`);
65
+ else if (config.fieldInfo && typeof config.fieldInfo === 'object' && !Array.isArray(config.fieldInfo)) {
66
+ // 仅在来源组件的实时上下文已确认字段身份后,同步内部字段键。
67
+ config.fieldInfo.paramKey = key;
68
+ value.config = typeof value.config === 'string' ? JSON.stringify(config) : config;
69
+ }
70
+ }
71
+ for (const [key, child] of Object.entries(value))
72
+ if (key !== 'config')
73
+ visit(child, `${path}.${key}`);
74
+ };
75
+ for (const [ti, table] of (setting?.tables || []).entries())
76
+ for (const [ri, row] of (table?.tableData || []).entries()) {
77
+ if (row?.formulaData)
78
+ visit(row.formulaData, `webhookCustomParamSetting.tables[${ti}].tableData[${ri}].formulaData`);
79
+ }
80
+ return errors;
81
+ }
82
+ //# sourceMappingURL=webhook_response_context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook_response_context.js","sourceRoot":"","sources":["../../../src/services/actionflow/webhook_response_context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflow_compiler.d.ts","sourceRoot":"","sources":["../../../src/services/actionflow/workflow_compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow_compiler.d.ts","sourceRoot":"","sources":["../../../src/services/actionflow/workflow_compiler.ts"],"names":[],"mappings":"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"}
@@ -361,7 +361,7 @@ function handleSpecial(draftKey, special, val, result, meta, appId, idx, eventId
361
361
  Object.assign(result[pendingKey], val);
362
362
  }
363
363
  else if (special === '_basisValue') {
364
- handleBasisValue(val, result, meta, appId, eventId);
364
+ handleBasisValue(val, result, meta, appId, eventId, componentType);
365
365
  }
366
366
  else if (special === '_setting_detail') {
367
367
  result._pending_detail ??= [];
@@ -441,7 +441,7 @@ function handleSpecial(draftKey, special, val, result, meta, appId, idx, eventId
441
441
  function basisSourceId(val, resolved, sourceComponent, eventId) {
442
442
  return resolveContextSource({ ...val, _resolvedContext: resolved }, eventId);
443
443
  }
444
- function handleBasisValue(val, result, meta, appId, eventId) {
444
+ function handleBasisValue(val, result, meta, appId, eventId, componentType) {
445
445
  if (!val || typeof val !== 'object')
446
446
  return;
447
447
  const resolved = val._resolvedContext && typeof val._resolvedContext === 'object' ? val._resolvedContext : {};
@@ -472,8 +472,10 @@ function handleBasisValue(val, result, meta, appId, eventId) {
472
472
  bvLabel = bvKey;
473
473
  if (bvKey) {
474
474
  const tail = bvKey.includes('.') ? bvKey.slice(bvKey.lastIndexOf('.') + 1).replace(/\[\]$/, '') : bvKey.replace(/\[\]$/, '');
475
+ const ebFormulaOwnedByServer = ['ActionEbAdd', 'ActionEbUpdate'].includes(componentType);
475
476
  const bvId = /^\d+$/.test(tail) ? tail : bvKey;
476
- result.basisValue = bvId;
477
+ if (!ebFormulaOwnedByServer)
478
+ result.basisValue = bvId;
477
479
  const fId = genSfId();
478
480
  const fBiz = genSfId();
479
481
  const srcId = basisSourceId(val, resolved, sourceComponent, eventId);
@@ -501,7 +503,7 @@ function handleBasisValue(val, result, meta, appId, eventId) {
501
503
  // 依据值公式同样需要 esbAssign.wId 指向当前数据动作节点(设计器动态赋值定位用)。
502
504
  attachEsbAssign(bvf, meta, srcId);
503
505
  result.basisValueFormula = bvf;
504
- result._pending_basis = { bassisValueId: bvId, bassisValue: JSON.parse(JSON.stringify(bvf)) };
506
+ result._pending_basis = { ...(ebFormulaOwnedByServer ? {} : { bassisValueId: bvId }), bassisValue: JSON.parse(JSON.stringify(bvf)) };
505
507
  }
506
508
  }
507
509
  function autoTargetForm(result, params, meta, appId) {
@@ -629,6 +631,12 @@ export function fillSetting(result, updates, mapping, constants, formula, meta,
629
631
  assignment.index = targetFieldId.index;
630
632
  if (targetFieldId.parentName !== undefined)
631
633
  assignment.parentName = targetFieldId.parentName;
634
+ const basisKey = String(result.basisValueFormula?.config?.paramKey || '');
635
+ const resolvedKey = String(assignment._resolvedContext?.paramKey || refKey);
636
+ if (componentType === 'ActionEbAdd' && basisKey && resolvedKey.startsWith(`${basisKey}.`)) {
637
+ assignment.basisParamKey = basisKey;
638
+ assignment.basisType = 'formSetting';
639
+ }
632
640
  if (refDetail)
633
641
  assignment.detailLabel = refDetail;
634
642
  assertCompatibleEnumContextMapping(refKey, raw, result, meta || {}, options.assignType);
@@ -636,7 +644,7 @@ export function fillSetting(result, updates, mapping, constants, formula, meta,
636
644
  const srcFt = resolveSourceFieldType(srcParamKey, meta);
637
645
  const targetMeta = lookupTargetFieldMeta(raw, result);
638
646
  const targetFt = String(targetMeta?.componentKey || targetMeta?.type || srcFt || 'Text');
639
- main[raw] = buildEsbFormField(raw, assignment, targetFt, meta, appId, String(eventId), operate, componentType, false, assignmentMode, options);
647
+ main[raw] = buildEsbFormField(raw, assignment, targetFt, meta, appId, String(eventId), operate, componentType, Boolean(assignment.basisParamKey), assignmentMode, options);
640
648
  }
641
649
  else {
642
650
  let raw = String(targetFieldId);
@@ -1575,37 +1583,61 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
1575
1583
  const explicitBasisId = resolved.fieldId || resolved.rawField?.id;
1576
1584
  const bvSubformId = explicitBasisId;
1577
1585
  const basisValuePath = `${basisContextRoot}.${bvKey}`;
1578
- ele.basisValue = {
1579
- frontId: requireContextFieldId(bvSubformId, '明细依据值 FormulaBean.frontId'),
1580
- formulaType: bvType,
1581
- name: bvLabel,
1582
- businessId: appId,
1583
- id: genSfId(),
1584
- source: sourceId,
1585
- type: '3',
1586
- value: basisValuePath,
1587
- childs: [],
1588
- config: {
1589
- paramKey: bvKey,
1590
- // 明细依据值的 AssignSwitch 默认赋值类型是 string;公式本身仍保留来源类型。
1591
- paramType: 'string',
1592
- isMultCom: Boolean(resolved.isMultCom || sourceComponent === 'MultipleExecution'),
1593
- switchType: 'assign',
1594
- parentName,
1595
- multName: '',
1596
- multKey: '',
1597
- multTypeObj: {
1598
- allName: parentName, currentName: parentName,
1599
- currentParamKey: basisValuePath, allParamKey: basisValuePath,
1586
+ const mainBasis = nodeData.basisValueFormula;
1587
+ const mainConfig = mainBasis?.config && typeof mainBasis.config === 'object' ? mainBasis.config : {};
1588
+ const mainKey = String(mainConfig.paramKey || '');
1589
+ const mainSource = String(mainConfig.comId || mainBasis?.source || '');
1590
+ const selectedSource = String(resolved.comId || bvVal.source || bvVal.comId || '');
1591
+ const isMainBasisChild = nodeType === 'ActionEbAdd' && nodeData.opType === 'batchInsert'
1592
+ && Boolean(mainKey && mainSource && selectedSource && mainSource === selectedSource)
1593
+ && bvKey.startsWith(`${mainKey}.`);
1594
+ if (isMainBasisChild) {
1595
+ const fieldId = requireContextFieldId(bvSubformId, '明细依据值下级 FormulaBean.config.frontId');
1596
+ const relativeKey = bvKey.slice(mainKey.length + 1);
1597
+ const mainToken = String(mainKey.split('.').pop() || '').replace(/\[\]$/, '');
1598
+ ele.basisValue = {
1599
+ id: genSfId(), name: bvLabel, type: '10', fieldType: bvType, formulaType: bvType,
1600
+ value: `mainBasis.${mainToken}.${relativeKey}`,
1601
+ config: {
1602
+ basisType: 'formSetting', paramKey: bvKey, parentName, frontId: fieldId,
1603
+ source: String(mainBasis.source || mainSource), value: basisContextRoot,
1604
+ config: { multKey: String(mainConfig.multKey || ''), comId: mainSource },
1605
+ fieldInfo: { paramKey: bvKey, tablePrimaryKey: basisContextRoot, baseType: 'mainBasis' },
1600
1606
  },
1601
- comId: sourceId,
1602
- comType: sourceComponent,
1603
- newParentName: parentName,
1604
- tableName: basisTableName,
1605
- fieldInfo: { paramKey: bvKey, tablePrimaryKey: basisContextRoot },
1606
- },
1607
- parentId: '0',
1608
- };
1607
+ };
1608
+ }
1609
+ else
1610
+ ele.basisValue = {
1611
+ frontId: requireContextFieldId(bvSubformId, '明细依据值 FormulaBean.frontId'),
1612
+ formulaType: bvType,
1613
+ name: bvLabel,
1614
+ businessId: appId,
1615
+ id: genSfId(),
1616
+ source: sourceId,
1617
+ type: '3',
1618
+ value: basisValuePath,
1619
+ childs: [],
1620
+ config: {
1621
+ paramKey: bvKey,
1622
+ // 明细依据值的 AssignSwitch 默认赋值类型是 string;公式本身仍保留来源类型。
1623
+ paramType: 'string',
1624
+ isMultCom: Boolean(resolved.isMultCom || sourceComponent === 'MultipleExecution'),
1625
+ switchType: 'assign',
1626
+ parentName,
1627
+ multName: '',
1628
+ multKey: '',
1629
+ multTypeObj: {
1630
+ allName: parentName, currentName: parentName,
1631
+ currentParamKey: basisValuePath, allParamKey: basisValuePath,
1632
+ },
1633
+ comId: sourceId,
1634
+ comType: sourceComponent,
1635
+ newParentName: parentName,
1636
+ tableName: basisTableName,
1637
+ fieldInfo: { paramKey: bvKey, tablePrimaryKey: basisContextRoot },
1638
+ },
1639
+ parentId: '0',
1640
+ };
1609
1641
  }
1610
1642
  }
1611
1643
  const mapping = item.mapping || {};