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.
- package/dist/commands/app.d.ts.map +1 -1
- package/dist/commands/app.js +259 -0
- package/dist/commands/app.js.map +1 -1
- package/dist/commands/form-add-detail-table.d.ts.map +1 -1
- package/dist/commands/form-add-detail-table.js +13 -2
- package/dist/commands/form-add-detail-table.js.map +1 -1
- package/dist/commands/form-button.d.ts.map +1 -1
- package/dist/commands/form-button.js +6 -4
- package/dist/commands/form-button.js.map +1 -1
- package/dist/commands/form-formula-linkage.d.ts.map +1 -1
- package/dist/commands/form-formula-linkage.js +4 -4
- package/dist/commands/form-formula-linkage.js.map +1 -1
- package/dist/commands/form-list-filter.d.ts +3 -0
- package/dist/commands/form-list-filter.d.ts.map +1 -1
- package/dist/commands/form-list-filter.js +88 -24
- package/dist/commands/form-list-filter.js.map +1 -1
- package/dist/commands/form-list-search-group.d.ts.map +1 -1
- package/dist/commands/form-list-search-group.js +54 -64
- package/dist/commands/form-list-search-group.js.map +1 -1
- package/dist/commands/form-list-stats.d.ts.map +1 -1
- package/dist/commands/form-list-stats.js +29 -4
- package/dist/commands/form-list-stats.js.map +1 -1
- package/dist/commands/form-list-utils.d.ts +46 -1
- package/dist/commands/form-list-utils.d.ts.map +1 -1
- package/dist/commands/form-list-utils.js +140 -47
- package/dist/commands/form-list-utils.js.map +1 -1
- package/dist/commands/form-list.d.ts.map +1 -1
- package/dist/commands/form-list.js +141 -71
- package/dist/commands/form-list.js.map +1 -1
- package/dist/commands/form-message.d.ts +3 -0
- package/dist/commands/form-message.d.ts.map +1 -0
- package/dist/commands/form-message.js +341 -0
- package/dist/commands/form-message.js.map +1 -0
- package/dist/commands/form-view.d.ts.map +1 -1
- package/dist/commands/form-view.js +31 -4
- package/dist/commands/form-view.js.map +1 -1
- package/dist/commands/matrix.d.ts.map +1 -1
- package/dist/commands/matrix.js +80 -42
- package/dist/commands/matrix.js.map +1 -1
- package/dist/commands/org.d.ts.map +1 -1
- package/dist/commands/org.js +61 -0
- package/dist/commands/org.js.map +1 -1
- package/dist/commands/role.d.ts.map +1 -1
- package/dist/commands/role.js +69 -9
- package/dist/commands/role.js.map +1 -1
- package/dist/commands/wf-form.d.ts.map +1 -1
- package/dist/commands/wf-form.js +5 -5
- package/dist/commands/wf-form.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/services/actionflow/context_preflight.d.ts +3 -3
- package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
- package/dist/services/actionflow/context_preflight.js +45 -24
- package/dist/services/actionflow/context_preflight.js.map +1 -1
- package/dist/services/actionflow/context_provider.d.ts +7 -0
- package/dist/services/actionflow/context_provider.d.ts.map +1 -1
- package/dist/services/actionflow/context_provider.js +13 -1
- package/dist/services/actionflow/context_provider.js.map +1 -1
- package/dist/services/actionflow/formula_service.d.ts +15 -0
- package/dist/services/actionflow/formula_service.d.ts.map +1 -1
- package/dist/services/actionflow/formula_service.js +401 -57
- package/dist/services/actionflow/formula_service.js.map +1 -1
- package/dist/services/actionflow/param_group_dto.d.ts.map +1 -1
- package/dist/services/actionflow/param_group_dto.js +17 -3
- package/dist/services/actionflow/param_group_dto.js.map +1 -1
- package/dist/services/actionflow/param_type.d.ts +14 -0
- package/dist/services/actionflow/param_type.d.ts.map +1 -0
- package/dist/services/actionflow/param_type.js +69 -0
- package/dist/services/actionflow/param_type.js.map +1 -0
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +59 -41
- package/dist/services/actionflow/preflight_service.js.map +1 -1
- package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/workflow_compiler.js +65 -29
- package/dist/services/actionflow/workflow_compiler.js.map +1 -1
- package/dist/services/app-publish.d.ts +227 -0
- package/dist/services/app-publish.d.ts.map +1 -0
- package/dist/services/app-publish.js +403 -0
- package/dist/services/app-publish.js.map +1 -0
- package/dist/services/form-button-position.d.ts.map +1 -1
- package/dist/services/form-button-position.js +7 -1
- package/dist/services/form-button-position.js.map +1 -1
- package/dist/services/form-field-drop.d.ts.map +1 -1
- package/dist/services/form-field-drop.js +7 -0
- package/dist/services/form-field-drop.js.map +1 -1
- package/dist/services/form-formula-linkage.d.ts +24 -3
- package/dist/services/form-formula-linkage.d.ts.map +1 -1
- package/dist/services/form-formula-linkage.js +24 -5
- package/dist/services/form-formula-linkage.js.map +1 -1
- package/dist/services/form-list-search-group.d.ts +89 -0
- package/dist/services/form-list-search-group.d.ts.map +1 -0
- package/dist/services/form-list-search-group.js +260 -0
- package/dist/services/form-list-search-group.js.map +1 -0
- package/dist/services/form-list-search.d.ts +110 -0
- package/dist/services/form-list-search.d.ts.map +1 -0
- package/dist/services/form-list-search.js +231 -0
- package/dist/services/form-list-search.js.map +1 -0
- package/dist/services/form-list-stats.d.ts +21 -1
- package/dist/services/form-list-stats.d.ts.map +1 -1
- package/dist/services/form-list-stats.js +86 -12
- package/dist/services/form-list-stats.js.map +1 -1
- package/dist/services/form-message.d.ts +273 -0
- package/dist/services/form-message.d.ts.map +1 -0
- package/dist/services/form-message.js +575 -0
- package/dist/services/form-message.js.map +1 -0
- package/dist/services/form-sub-detail.d.ts.map +1 -1
- package/dist/services/form-sub-detail.js +5 -1
- package/dist/services/form-sub-detail.js.map +1 -1
- package/dist/services/form-view.d.ts +34 -2
- package/dist/services/form-view.d.ts.map +1 -1
- package/dist/services/form-view.js +74 -8
- package/dist/services/form-view.js.map +1 -1
- package/dist/services/matrix-fields.d.ts +42 -0
- package/dist/services/matrix-fields.d.ts.map +1 -0
- package/dist/services/matrix-fields.js +102 -0
- package/dist/services/matrix-fields.js.map +1 -0
- package/dist/services/org-browser.d.ts +60 -0
- package/dist/services/org-browser.d.ts.map +1 -0
- package/dist/services/org-browser.js +62 -0
- package/dist/services/org-browser.js.map +1 -0
- package/dist/services/quick-date-range.d.ts +22 -0
- package/dist/services/quick-date-range.d.ts.map +1 -0
- package/dist/services/quick-date-range.js +134 -0
- package/dist/services/quick-date-range.js.map +1 -0
- package/dist/services/role-member.d.ts +73 -2
- package/dist/services/role-member.d.ts.map +1 -1
- package/dist/services/role-member.js +141 -9
- package/dist/services/role-member.js.map +1 -1
- package/package.json +1 -1
- package/skill-docs/SKILL.md +281 -278
- package/skill-docs/_catalog.md +3 -0
- package/skill-docs/actionflows/SKILL.md +2 -1
- package/skill-docs/actionflows/references/components/message/InnerMQSend.md +6 -0
- package/skill-docs/references/app/guide-app-publish.md +92 -0
- package/skill-docs/references/common/guide-plan-template.md +148 -252
- package/skill-docs/references/common/map.md +2 -1
- package/skill-docs/references/common/ref-cli-commands.md +27 -8
- package/skill-docs/references/form/guide-form-message.md +57 -0
- package/skill-docs/references/form/guide-form-view.md +7 -2
- package/skill-docs/references/form/guide-formula-linkage.md +1 -1
- package/skill-docs/references/form/guide-list-stats.md +55 -2
- 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
|
-
|
|
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
|
|
383
|
-
const
|
|
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:
|
|
386
|
-
fieldInfo: { paramKey: bvKey, tablePrimaryKey:
|
|
387
|
-
tableName:
|
|
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:
|
|
402
|
+
currentParamKey: basisPath, allParamKey: basisPath,
|
|
391
403
|
},
|
|
392
404
|
comId: srcId, newParentName: bvParent,
|
|
393
405
|
};
|
|
394
406
|
const bvf = {
|
|
395
|
-
frontId: normalizeNumericFrontId(
|
|
396
|
-
source: srcId, type: '3', value:
|
|
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
|
-
|
|
1314
|
-
|
|
1315
|
-
const
|
|
1316
|
-
const
|
|
1317
|
-
|
|
1318
|
-
|
|
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,
|
|
1329
|
-
|
|
1330
|
-
|
|
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
|
-
|
|
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:
|
|
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:
|
|
1405
|
+
currentParamKey: basisValuePath, allParamKey: basisValuePath,
|
|
1370
1406
|
},
|
|
1371
1407
|
comId: String(eventId),
|
|
1372
|
-
comType:
|
|
1408
|
+
comType: sourceComponent,
|
|
1373
1409
|
newParentName: parentName,
|
|
1374
1410
|
tableName: basisTableName,
|
|
1375
1411
|
fieldInfo: { paramKey: bvKey, tablePrimaryKey: basisContextRoot },
|