weaver-e10-builder 1.5.7 → 1.5.9

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 (142) hide show
  1. package/dist/commands/app.d.ts.map +1 -1
  2. package/dist/commands/app.js +259 -0
  3. package/dist/commands/app.js.map +1 -1
  4. package/dist/commands/form-add-detail-table.d.ts.map +1 -1
  5. package/dist/commands/form-add-detail-table.js +13 -2
  6. package/dist/commands/form-add-detail-table.js.map +1 -1
  7. package/dist/commands/form-button.d.ts.map +1 -1
  8. package/dist/commands/form-button.js +6 -4
  9. package/dist/commands/form-button.js.map +1 -1
  10. package/dist/commands/form-formula-linkage.d.ts.map +1 -1
  11. package/dist/commands/form-formula-linkage.js +4 -4
  12. package/dist/commands/form-formula-linkage.js.map +1 -1
  13. package/dist/commands/form-list-filter.d.ts +3 -0
  14. package/dist/commands/form-list-filter.d.ts.map +1 -1
  15. package/dist/commands/form-list-filter.js +88 -24
  16. package/dist/commands/form-list-filter.js.map +1 -1
  17. package/dist/commands/form-list-search-group.d.ts.map +1 -1
  18. package/dist/commands/form-list-search-group.js +54 -64
  19. package/dist/commands/form-list-search-group.js.map +1 -1
  20. package/dist/commands/form-list-stats.d.ts.map +1 -1
  21. package/dist/commands/form-list-stats.js +29 -4
  22. package/dist/commands/form-list-stats.js.map +1 -1
  23. package/dist/commands/form-list-utils.d.ts +46 -1
  24. package/dist/commands/form-list-utils.d.ts.map +1 -1
  25. package/dist/commands/form-list-utils.js +140 -47
  26. package/dist/commands/form-list-utils.js.map +1 -1
  27. package/dist/commands/form-list.d.ts.map +1 -1
  28. package/dist/commands/form-list.js +141 -71
  29. package/dist/commands/form-list.js.map +1 -1
  30. package/dist/commands/form-message.d.ts +3 -0
  31. package/dist/commands/form-message.d.ts.map +1 -0
  32. package/dist/commands/form-message.js +341 -0
  33. package/dist/commands/form-message.js.map +1 -0
  34. package/dist/commands/form-view.d.ts.map +1 -1
  35. package/dist/commands/form-view.js +31 -4
  36. package/dist/commands/form-view.js.map +1 -1
  37. package/dist/commands/matrix.d.ts.map +1 -1
  38. package/dist/commands/matrix.js +80 -42
  39. package/dist/commands/matrix.js.map +1 -1
  40. package/dist/commands/org.d.ts.map +1 -1
  41. package/dist/commands/org.js +61 -0
  42. package/dist/commands/org.js.map +1 -1
  43. package/dist/commands/role.d.ts.map +1 -1
  44. package/dist/commands/role.js +69 -9
  45. package/dist/commands/role.js.map +1 -1
  46. package/dist/commands/wf-form.d.ts.map +1 -1
  47. package/dist/commands/wf-form.js +5 -5
  48. package/dist/commands/wf-form.js.map +1 -1
  49. package/dist/index.js +2 -0
  50. package/dist/index.js.map +1 -1
  51. package/dist/services/actionflow/context_preflight.d.ts +3 -3
  52. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  53. package/dist/services/actionflow/context_preflight.js +45 -24
  54. package/dist/services/actionflow/context_preflight.js.map +1 -1
  55. package/dist/services/actionflow/context_provider.d.ts +7 -0
  56. package/dist/services/actionflow/context_provider.d.ts.map +1 -1
  57. package/dist/services/actionflow/context_provider.js +13 -1
  58. package/dist/services/actionflow/context_provider.js.map +1 -1
  59. package/dist/services/actionflow/formula_service.d.ts +15 -0
  60. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  61. package/dist/services/actionflow/formula_service.js +401 -57
  62. package/dist/services/actionflow/formula_service.js.map +1 -1
  63. package/dist/services/actionflow/param_group_dto.d.ts.map +1 -1
  64. package/dist/services/actionflow/param_group_dto.js +17 -3
  65. package/dist/services/actionflow/param_group_dto.js.map +1 -1
  66. package/dist/services/actionflow/param_type.d.ts +14 -0
  67. package/dist/services/actionflow/param_type.d.ts.map +1 -0
  68. package/dist/services/actionflow/param_type.js +69 -0
  69. package/dist/services/actionflow/param_type.js.map +1 -0
  70. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  71. package/dist/services/actionflow/preflight_service.js +59 -41
  72. package/dist/services/actionflow/preflight_service.js.map +1 -1
  73. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  74. package/dist/services/actionflow/workflow_compiler.js +65 -29
  75. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  76. package/dist/services/app-publish.d.ts +227 -0
  77. package/dist/services/app-publish.d.ts.map +1 -0
  78. package/dist/services/app-publish.js +403 -0
  79. package/dist/services/app-publish.js.map +1 -0
  80. package/dist/services/form-button-position.d.ts.map +1 -1
  81. package/dist/services/form-button-position.js +7 -1
  82. package/dist/services/form-button-position.js.map +1 -1
  83. package/dist/services/form-field-drop.d.ts.map +1 -1
  84. package/dist/services/form-field-drop.js +7 -0
  85. package/dist/services/form-field-drop.js.map +1 -1
  86. package/dist/services/form-formula-linkage.d.ts +24 -3
  87. package/dist/services/form-formula-linkage.d.ts.map +1 -1
  88. package/dist/services/form-formula-linkage.js +24 -5
  89. package/dist/services/form-formula-linkage.js.map +1 -1
  90. package/dist/services/form-list-search-group.d.ts +89 -0
  91. package/dist/services/form-list-search-group.d.ts.map +1 -0
  92. package/dist/services/form-list-search-group.js +260 -0
  93. package/dist/services/form-list-search-group.js.map +1 -0
  94. package/dist/services/form-list-search.d.ts +110 -0
  95. package/dist/services/form-list-search.d.ts.map +1 -0
  96. package/dist/services/form-list-search.js +231 -0
  97. package/dist/services/form-list-search.js.map +1 -0
  98. package/dist/services/form-list-stats.d.ts +21 -1
  99. package/dist/services/form-list-stats.d.ts.map +1 -1
  100. package/dist/services/form-list-stats.js +86 -12
  101. package/dist/services/form-list-stats.js.map +1 -1
  102. package/dist/services/form-message.d.ts +273 -0
  103. package/dist/services/form-message.d.ts.map +1 -0
  104. package/dist/services/form-message.js +575 -0
  105. package/dist/services/form-message.js.map +1 -0
  106. package/dist/services/form-sub-detail.d.ts.map +1 -1
  107. package/dist/services/form-sub-detail.js +5 -1
  108. package/dist/services/form-sub-detail.js.map +1 -1
  109. package/dist/services/form-view.d.ts +34 -2
  110. package/dist/services/form-view.d.ts.map +1 -1
  111. package/dist/services/form-view.js +74 -8
  112. package/dist/services/form-view.js.map +1 -1
  113. package/dist/services/matrix-fields.d.ts +42 -0
  114. package/dist/services/matrix-fields.d.ts.map +1 -0
  115. package/dist/services/matrix-fields.js +102 -0
  116. package/dist/services/matrix-fields.js.map +1 -0
  117. package/dist/services/org-browser.d.ts +60 -0
  118. package/dist/services/org-browser.d.ts.map +1 -0
  119. package/dist/services/org-browser.js +62 -0
  120. package/dist/services/org-browser.js.map +1 -0
  121. package/dist/services/quick-date-range.d.ts +22 -0
  122. package/dist/services/quick-date-range.d.ts.map +1 -0
  123. package/dist/services/quick-date-range.js +134 -0
  124. package/dist/services/quick-date-range.js.map +1 -0
  125. package/dist/services/role-member.d.ts +73 -2
  126. package/dist/services/role-member.d.ts.map +1 -1
  127. package/dist/services/role-member.js +141 -9
  128. package/dist/services/role-member.js.map +1 -1
  129. package/package.json +1 -1
  130. package/skill-docs/SKILL.md +281 -278
  131. package/skill-docs/_catalog.md +3 -0
  132. package/skill-docs/actionflows/SKILL.md +2 -1
  133. package/skill-docs/actionflows/references/components/message/InnerMQSend.md +6 -0
  134. package/skill-docs/references/app/guide-app-publish.md +92 -0
  135. package/skill-docs/references/common/guide-plan-template.md +148 -252
  136. package/skill-docs/references/common/map.md +2 -1
  137. package/skill-docs/references/common/ref-cli-commands.md +27 -8
  138. package/skill-docs/references/form/guide-form-message.md +57 -0
  139. package/skill-docs/references/form/guide-form-view.md +7 -2
  140. package/skill-docs/references/form/guide-formula-linkage.md +1 -1
  141. package/skill-docs/references/form/guide-list-stats.md +55 -2
  142. package/skill-docs/references/hrm/guide-matrix.md +30 -2
@@ -8,7 +8,7 @@ import fs from 'node:fs';
8
8
  import { get, getCompiler, getNodePost } from './components/index.js';
9
9
  import { buildEsbFormDataDto, buildEsbFormField } from './components/form_data_builder.js';
10
10
  import { findInMetadata, getTargetFormFields, getWorkflowDetailNames, getTargetDetailFields, getWorkflowDetailFields, getWorkflowFieldIds, workflowFieldId, getWorkflowContextFields, getWorkflowContextFieldsByKey } from './runtime_metadata.js';
11
- import { buildPersonFormula, buildAssignBean, attachEsbAssign, resolveEnumConstant, resolveParamKey, resolveSourceFieldLabel, resolveSourceFieldType, normalizeConstantAssignment, lookupTargetFieldMeta, formulaFixedForAssignSwitch, formulaSystemVar, formulaContext, assignFlatContextDirect, getFormulaFn, formulaFunction, contextRootForComponent, contextTableNameForRoot, normalizeContextParamKey, } from './formula_service.js';
11
+ import { buildPersonFormula, buildAssignBean, attachEsbAssign, resolveEnumConstant, resolveParamKey, resolveSourceFieldLabel, resolveSourceFieldType, normalizeConstantAssignment, lookupTargetFieldMeta, formulaFixedForAssignSwitch, formulaSystemVar, formulaContext, assignFlatContextDirect, getFormulaFn, formulaFunction, contextRootForComponent, contextTableNameForRoot, normalizeContextParamKey, resolveFormSettingBasisParentName, contextMetaForReference, resolvedContextRoot, protocolParamKey, } from './formula_service.js';
12
12
  import { buildFormulaReference, buildUpdateFieldCondition } from './components/action_eb_update_compiler.js';
13
13
  import { resolveCustomTriggerDtoId } from './custom_trigger_context.js';
14
14
  import { resolveSystemParameter, isDateSystemParameter } from './system_params.js';
@@ -350,7 +350,10 @@ function handleSpecial(draftKey, special, val, result, meta, appId, idx, eventId
350
350
  function handleBasisValue(val, result, meta, appId, eventId) {
351
351
  if (!val || typeof val !== 'object')
352
352
  return;
353
- let bvKey = String(val.paramKey || val.key || val.value || '').trim();
353
+ const resolved = val._resolvedContext && typeof val._resolvedContext === 'object' ? val._resolvedContext : {};
354
+ const sourceComponent = String(resolved.componentType || meta?._context_component_type || meta?._upstream_component_type || 'ApproveTrigger');
355
+ const sourceMeta = contextMetaForReference(meta, val, sourceComponent);
356
+ let bvKey = String(val.paramKey || val.key || val.value || resolved.paramKey || '').trim();
354
357
  let bvLabel = String(val.label || val.name || '');
355
358
  // 明细表依据值 paramKey 必须带 [](早期正确产物 FormData.{wfId}.{明细表id}[])。
356
359
  // plan 允许省略 [],编译器检测上下文存在数组版本时自动补齐(真机验证 2026-08-19:漏 [] 前端定位不到明细表标红)。
@@ -361,6 +364,8 @@ function handleBasisValue(val, result, meta, appId, eventId) {
361
364
  if (keyIndex[arrKey] && !keyIndex[bvKey])
362
365
  bvKey = arrKey;
363
366
  }
367
+ const basisRoot = resolvedContextRoot(resolved, sourceComponent, sourceComponent === 'CustomTrigger' ? contextRootForComponent('CustomTrigger') : 'FormData');
368
+ bvKey = protocolParamKey(sourceComponent === 'CustomTrigger' ? normalizeContextParamKey(bvKey, sourceComponent) : bvKey, basisRoot, sourceComponent);
364
369
  if (bvKey) {
365
370
  const idx = bvKey.lastIndexOf('.');
366
371
  const bkHead = idx >= 0 ? bvKey.slice(0, idx) : '';
@@ -379,21 +384,28 @@ function handleBasisValue(val, result, meta, appId, eventId) {
379
384
  const fBiz = genSfId();
380
385
  const srcId = eventId || String(meta?._upstream_node_id || '');
381
386
  const wnBv = String(meta?._upstream_workflow_name || '');
382
- const bvParent = wnBv ? `${wnBv}.${bvLabel}[]` : `${bvLabel}[]`;
383
- const bvfType = resolveSourceFieldType(bvKey, meta);
387
+ const resolvedParentName = String(resolved.parentName || '').replace(/^(?:FormData|ApprovalData|SelectParams)\./, '');
388
+ const bvParent = resolvedParentName || (wnBv ? `${wnBv}.${bvLabel}[]` : `${bvLabel}[]`);
389
+ const bvfType = String(resolved.fieldType || resolveSourceFieldType(bvKey, sourceMeta));
390
+ const basisPath = `${basisRoot}.${bvKey}`;
391
+ const explicitId = String(resolved.fieldId || val.frontId || val.fieldId || '').trim();
392
+ const legacyId = /^\d+$/.test(tail) ? tail : bvKey;
393
+ const basisId = sourceComponent === 'CustomTrigger'
394
+ ? resolveCustomTriggerDtoId(bvKey, meta?._custom_trigger_data, String(resolved.dimension || 'table'))
395
+ : (sourceComponent === 'WebHookTrigger' && /^\d+$/.test(explicitId) ? explicitId : legacyId);
384
396
  const bvfConfig = {
385
- paramKey: bvKey, isMultCom: false, comType: 'ApproveTrigger', switchType: 'assign', parentComId: 0, formulaVersion: 'V1',
386
- fieldInfo: { paramKey: bvKey, tablePrimaryKey: 'FormData' },
387
- tableName: '表单数据', paramType: bvfType, parentName: bvParent, multName: '', multKey: '',
397
+ paramKey: bvKey, isMultCom: Boolean(resolved.isMultCom), comType: sourceComponent, switchType: 'assign', parentComId: 0, formulaVersion: 'V1',
398
+ fieldInfo: { paramKey: bvKey, tablePrimaryKey: basisRoot },
399
+ tableName: String(resolved.tableName || contextTableNameForRoot(basisRoot)), paramType: bvfType, parentName: bvParent, multName: '', multKey: '',
388
400
  multTypeObj: {
389
401
  allName: bvParent, currentName: bvParent,
390
- currentParamKey: `FormData.${bvKey}`, allParamKey: `FormData.${bvKey}`,
402
+ currentParamKey: basisPath, allParamKey: basisPath,
391
403
  },
392
404
  comId: srcId, newParentName: bvParent,
393
405
  };
394
406
  const bvf = {
395
- frontId: normalizeNumericFrontId(bvId, '依据值 FormulaBean.frontId'), formulaType: bvfType, name: bvLabel, businessId: fBiz, id: fId,
396
- source: srcId, type: '3', value: `FormData.${bvKey}`, childs: [], config: bvfConfig, parentId: '0',
407
+ frontId: normalizeNumericFrontId(basisId, '依据值 FormulaBean.frontId'), formulaType: bvfType, name: bvLabel, businessId: fBiz, id: fId,
408
+ source: srcId, type: '3', value: basisPath, childs: [], config: bvfConfig, parentId: '0',
397
409
  };
398
410
  // 依据值公式同样需要 esbAssign.wId 指向当前数据动作节点(设计器动态赋值定位用)。
399
411
  attachEsbAssign(bvf, meta, srcId);
@@ -490,6 +502,19 @@ export function fillSetting(result, updates, mapping, constants, formula, meta,
490
502
  if (targetFieldId[key] !== undefined)
491
503
  assignment[key] = targetFieldId[key];
492
504
  }
505
+ // 参数设置组件的字段身份来自用户实际选中的 ParamBean。
506
+ // 预检会把该行的真实 id 写入 _resolvedContext.fieldId;映射编译时
507
+ // 必须把这个 id 继续带到 FormulaBean.frontId,不能让
508
+ // assignFlatContextDirect 退回 paramKey/paramName 尾段。
509
+ const selectedParamId = targetFieldId._resolvedContext?.fieldId
510
+ || targetFieldId.frontId
511
+ || targetFieldId.fieldId;
512
+ if (selectedParamId !== undefined && selectedParamId !== null && String(selectedParamId).trim() !== '') {
513
+ assignment.frontId = String(selectedParamId);
514
+ }
515
+ if (targetFieldId._resolvedContext && typeof targetFieldId._resolvedContext === 'object') {
516
+ assignment._resolvedContext = { ...targetFieldId._resolvedContext };
517
+ }
493
518
  if (targetFieldId.source !== undefined)
494
519
  assignment.source = targetFieldId.source;
495
520
  if (targetFieldId.comId !== undefined)
@@ -1310,12 +1335,15 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
1310
1335
  // 明细项依据值:引用整个明细表,source=event 节点 id, frontId=明细表 id。
1311
1336
  if (item.basisValue && typeof item.basisValue === 'object') {
1312
1337
  const bvVal = item.basisValue;
1313
- let bvKey = String(bvVal.paramKey || bvVal.key || '').trim();
1314
- const isCustomTriggerSource = String(meta?._context_component_type || meta?._upstream_component_type || '') === 'CustomTrigger';
1315
- const basisContextRoot = isCustomTriggerSource ? contextRootForComponent('CustomTrigger') : 'FormData';
1316
- const basisTableName = contextTableNameForRoot(basisContextRoot);
1317
- if (isCustomTriggerSource)
1318
- bvKey = normalizeContextParamKey(bvKey, 'CustomTrigger');
1338
+ const resolved = bvVal._resolvedContext && typeof bvVal._resolvedContext === 'object'
1339
+ ? bvVal._resolvedContext : {};
1340
+ const sourceComponent = String(resolved.componentType || meta?._context_component_type || meta?._upstream_component_type || 'ApproveTrigger');
1341
+ const sourceMeta = contextMetaForReference(meta, bvVal, sourceComponent);
1342
+ let bvKey = String(bvVal.paramKey || bvVal.key || resolved.paramKey || '').trim();
1343
+ const isCustomTriggerSource = sourceComponent === 'CustomTrigger';
1344
+ const basisContextRoot = resolvedContextRoot(resolved, sourceComponent, isCustomTriggerSource ? contextRootForComponent('CustomTrigger') : 'FormData');
1345
+ const basisTableName = String(resolved.tableName || contextTableNameForRoot(basisContextRoot));
1346
+ bvKey = protocolParamKey(isCustomTriggerSource ? normalizeContextParamKey(bvKey, 'CustomTrigger') : bvKey, basisContextRoot, sourceComponent);
1319
1347
  if (bvKey && !bvKey.includes('[]')) {
1320
1348
  const wfId = String(meta?._workflow_id || '');
1321
1349
  const keyIndex = wfId ? getWorkflowContextFieldsByKey()[wfId] || {} : {};
@@ -1325,18 +1353,13 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
1325
1353
  }
1326
1354
  const bvLabel = String(bvVal.label || bvVal.name || bvKey);
1327
1355
  if (bvKey) {
1328
- const bvType = resolveSourceFieldType(bvKey, meta);
1329
- let prefix = '';
1330
- if (meta && typeof meta === 'object') {
1331
- prefix = String(meta._upstream_workflow_name || '');
1332
- if (!prefix)
1333
- prefix = String(meta._upstream_form_name || '');
1334
- }
1335
- const parentName = prefix ? `${prefix}.${bvLabel}[]` : `${bvLabel}[]`;
1356
+ const bvType = String(resolved.fieldType || resolveSourceFieldType(bvKey, sourceMeta));
1357
+ const resolvedParentName = String(resolved.parentName || '').replace(/^(?:FormData|ApprovalData|SelectParams)\./, '');
1358
+ const parentName = resolvedParentName || resolveFormSettingBasisParentName(bvKey, bvLabel, sourceMeta);
1336
1359
  // CustomTrigger 的明细依据值也是表维度上下文,frontId 必须取
1337
1360
  // CustFormTableDto.id,不能把 detail1 这类 paramKey 尾段直接当成 ID。
1338
1361
  const customTriggerTableId = isCustomTriggerSource
1339
- ? resolveCustomTriggerDtoId(bvKey, meta?._custom_trigger_data, 'table')
1362
+ ? resolveCustomTriggerDtoId(bvKey, meta?._custom_trigger_data, String(resolved.dimension || 'table'))
1340
1363
  : '';
1341
1364
  const legacyBvSubformId = bvKey.includes('[]')
1342
1365
  ? bvKey.split('[]')[0].includes('.')
@@ -1345,7 +1368,20 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
1345
1368
  : bvKey;
1346
1369
  // CustomTrigger 无法定位 DTO 表对象时按统一规则留空;不能回退到
1347
1370
  // detail1 这类业务 paramKey,否则既不是真实 ID,也会触发数字校验。
1348
- const bvSubformId = isCustomTriggerSource ? customTriggerTableId : legacyBvSubformId;
1371
+ // WebHook 的明细依据值来自 ParamGroupSettingBean 的父参数行。
1372
+ // 这里必须使用该行的真实 id;不能把 detailOne/detailTwo 这种
1373
+ // paramKey 尾段误当作 FormulaBean.frontId。
1374
+ const explicitBasisId = String(resolved.fieldId
1375
+ || bvVal.frontId
1376
+ || bvVal.fieldId
1377
+ || '').trim();
1378
+ const isWebhookSource = sourceComponent === 'WebHookTrigger';
1379
+ const bvSubformId = isCustomTriggerSource
1380
+ ? customTriggerTableId
1381
+ : isWebhookSource && /^\d+$/.test(explicitBasisId)
1382
+ ? explicitBasisId
1383
+ : legacyBvSubformId;
1384
+ const basisValuePath = `${basisContextRoot}.${bvKey}`;
1349
1385
  ele.basisValue = {
1350
1386
  frontId: normalizeNumericFrontId(bvSubformId, '明细依据值 FormulaBean.frontId'),
1351
1387
  formulaType: bvType,
@@ -1354,7 +1390,7 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
1354
1390
  id: genSfId(),
1355
1391
  source: String(eventId),
1356
1392
  type: '3',
1357
- value: `${basisContextRoot}.${bvKey}`,
1393
+ value: basisValuePath,
1358
1394
  childs: [],
1359
1395
  config: {
1360
1396
  paramKey: bvKey,
@@ -1366,10 +1402,10 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
1366
1402
  multKey: '',
1367
1403
  multTypeObj: {
1368
1404
  allName: parentName, currentName: parentName,
1369
- currentParamKey: `${basisContextRoot}.${bvKey}`, allParamKey: `${basisContextRoot}.${bvKey}`,
1405
+ currentParamKey: basisValuePath, allParamKey: basisValuePath,
1370
1406
  },
1371
1407
  comId: String(eventId),
1372
- comType: isCustomTriggerSource ? 'CustomTrigger' : 'ApproveTrigger',
1408
+ comType: sourceComponent,
1373
1409
  newParentName: parentName,
1374
1410
  tableName: basisTableName,
1375
1411
  fieldInfo: { paramKey: bvKey, tablePrimaryKey: basisContextRoot },