weaver-e10-builder 1.6.4 → 1.6.5
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/actionflow.d.ts.map +1 -1
- package/dist/commands/actionflow.js +2 -0
- package/dist/commands/actionflow.js.map +1 -1
- package/dist/commands/form-add-detail-table.js +3 -3
- package/dist/commands/form-add-detail-table.js.map +1 -1
- package/dist/commands/form-browser-definition.js +8 -8
- package/dist/commands/form-browser-definition.js.map +1 -1
- package/dist/commands/form-code.js +7 -7
- package/dist/commands/form-code.js.map +1 -1
- package/dist/commands/form-data.js +1 -1
- package/dist/commands/form-data.js.map +1 -1
- package/dist/commands/form-ebuilder-scope.js +8 -8
- package/dist/commands/form-ebuilder-scope.js.map +1 -1
- package/dist/commands/form-engine-linkage.js +12 -12
- package/dist/commands/form-engine-linkage.js.map +1 -1
- package/dist/commands/form-layout-diff.js +1 -1
- package/dist/commands/form-layout-diff.js.map +1 -1
- package/dist/commands/form-layout-edit.js +1 -1
- package/dist/commands/form-layout-edit.js.map +1 -1
- package/dist/commands/form-layout-init-reviewed.js +1 -1
- package/dist/commands/form-layout-init-reviewed.js.map +1 -1
- package/dist/commands/form-layout-init.js +2 -2
- package/dist/commands/form-layout-init.js.map +1 -1
- package/dist/commands/form-layout-template-easy.js +1 -1
- package/dist/commands/form-layout-template-easy.js.map +1 -1
- package/dist/commands/form-layout.js +4 -4
- package/dist/commands/form-layout.js.map +1 -1
- package/dist/commands/form-view.d.ts.map +1 -1
- package/dist/commands/form-view.js +1 -2
- package/dist/commands/form-view.js.map +1 -1
- package/dist/commands/form.js +3 -3
- package/dist/commands/form.js.map +1 -1
- package/dist/commands/report-admin.js +1 -1
- package/dist/commands/report-admin.js.map +1 -1
- package/dist/commands/report-query.js +1 -1
- package/dist/commands/report-query.js.map +1 -1
- package/dist/commands/report.js +1 -1
- package/dist/commands/report.js.map +1 -1
- package/dist/commands/wf-form-layout-init-reviewed.d.ts +3 -0
- package/dist/commands/wf-form-layout-init-reviewed.d.ts.map +1 -0
- package/dist/commands/wf-form-layout-init-reviewed.js +71 -0
- package/dist/commands/wf-form-layout-init-reviewed.js.map +1 -0
- package/dist/commands/wf-form.d.ts +1 -0
- package/dist/commands/wf-form.d.ts.map +1 -1
- package/dist/commands/wf-form.js +16 -16
- package/dist/commands/wf-form.js.map +1 -1
- package/dist/commands/workflow-advanced.js +1 -1
- package/dist/commands/workflow-advanced.js.map +1 -1
- package/dist/commands/workflow-basic-info.js +4 -4
- package/dist/commands/workflow-basic-info.js.map +1 -1
- package/dist/commands/workflow.js +6 -6
- package/dist/commands/workflow.js.map +1 -1
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -1
- package/dist/services/actionflow/classified_protection_source.d.ts +10 -0
- package/dist/services/actionflow/classified_protection_source.d.ts.map +1 -0
- package/dist/services/actionflow/classified_protection_source.js +27 -0
- package/dist/services/actionflow/classified_protection_source.js.map +1 -0
- package/dist/services/actionflow/components/action_eb_add.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_add.js +4 -5
- package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_update.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_update.js +13 -1
- package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_update_compiler.d.ts +12 -0
- package/dist/services/actionflow/components/action_eb_update_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_update_compiler.js +88 -3
- package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -1
- package/dist/services/actionflow/components/approve_create.d.ts.map +1 -1
- package/dist/services/actionflow/components/approve_create.js +6 -10
- package/dist/services/actionflow/components/approve_create.js.map +1 -1
- package/dist/services/actionflow/components/condition.d.ts.map +1 -1
- package/dist/services/actionflow/components/condition.js +3 -2
- package/dist/services/actionflow/components/condition.js.map +1 -1
- package/dist/services/actionflow/components/eb_get_data_by_id.d.ts.map +1 -1
- package/dist/services/actionflow/components/eb_get_data_by_id.js +9 -1
- package/dist/services/actionflow/components/eb_get_data_by_id.js.map +1 -1
- package/dist/services/actionflow/components/send_message.js +1 -1
- package/dist/services/actionflow/components/send_message.js.map +1 -1
- package/dist/services/actionflow/components/workflow_actions.d.ts.map +1 -1
- package/dist/services/actionflow/components/workflow_actions.js +20 -11
- package/dist/services/actionflow/components/workflow_actions.js.map +1 -1
- package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
- package/dist/services/actionflow/context_preflight.js +9 -1
- package/dist/services/actionflow/context_preflight.js.map +1 -1
- package/dist/services/actionflow/design_client.d.ts +4 -0
- package/dist/services/actionflow/design_client.d.ts.map +1 -1
- package/dist/services/actionflow/design_client.js +65 -0
- package/dist/services/actionflow/design_client.js.map +1 -1
- package/dist/services/actionflow/form_source.d.ts +9 -2
- package/dist/services/actionflow/form_source.d.ts.map +1 -1
- package/dist/services/actionflow/form_source.js +21 -6
- package/dist/services/actionflow/form_source.js.map +1 -1
- package/dist/services/actionflow/formula_service.d.ts.map +1 -1
- package/dist/services/actionflow/formula_service.js +153 -37
- package/dist/services/actionflow/formula_service.js.map +1 -1
- package/dist/services/actionflow/preflight_service.d.ts +14 -3
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +276 -42
- 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 +154 -23
- package/dist/services/actionflow/workflow_compiler.js.map +1 -1
- package/dist/services/workflow-layout-init-reviewed.d.ts +35 -0
- package/dist/services/workflow-layout-init-reviewed.d.ts.map +1 -0
- package/dist/services/workflow-layout-init-reviewed.js +120 -0
- package/dist/services/workflow-layout-init-reviewed.js.map +1 -0
- package/package.json +1 -1
- package/skill-docs/SKILL.md +4 -4
- package/skill-docs/actionflows/SKILL.md +2 -0
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +2 -0
- package/skill-docs/actionflows/references/components/ebuilder/EventButton.md +1 -1
- package/skill-docs/actionflows/references/components/logic/Condition.md +2 -0
- package/skill-docs/actionflows/references/components/message/SendMessage.md +2 -2
- package/skill-docs/actionflows/references/components/workflow/ApproveCommit.md +17 -17
- package/skill-docs/actionflows/references/components/workflow/ApproveCreate.md +1 -1
- package/skill-docs/actionflows/references/components/workflow/ApproveSave.md +1 -1
- package/skill-docs/actionflows/references/components/workflow/ApproveSendBack.md +17 -17
- package/skill-docs/references/common/ref-cli-commands.md +1 -0
- package/skill-docs/references/form/guide-browser-definition.md +73 -40
- package/skill-docs/references/form/layout/code-block/layout-css.md +41 -0
- package/skill-docs/references/form/layout/initialization.md +2 -0
- package/skill-docs/references/form/layout/layout-overview.md +8 -0
- package/skill-docs/references/form/layout/template/advanced.md +21 -0
- package/skill-docs/references/form/layout/template/easy.md +2 -0
- package/skill-docs/references/form/layout/template/flow.md +2 -0
- package/skill-docs/references/form/layout/template/template-guide.md +3 -1
- package/skill-docs/references/form/layout/workflow-layout.md +13 -1
- package/skill-docs/references/form/ref-form-fields.md +18 -4
- package/skill-docs/references/workflow/guide-workflow-odoc.md +1 -1
|
@@ -779,68 +779,158 @@ export function buildPersonObject(personId, personName) {
|
|
|
779
779
|
name: pname, id: pid, position: '', department: '', mainId: pid, cid: '', statusCode: 'normal',
|
|
780
780
|
};
|
|
781
781
|
}
|
|
782
|
+
const SEND_MESSAGE_OBJECT_TYPE_ALIASES = {
|
|
783
|
+
user: 'resource', personnel: 'resource', person: 'resource', resource: 'resource',
|
|
784
|
+
dept: 'department', department: 'department',
|
|
785
|
+
company: 'subcompany', subcompany: 'subcompany',
|
|
786
|
+
role: 'role', group: 'group', position: 'position',
|
|
787
|
+
employeescope: 'employeeScope', employee_scope: 'employeeScope',
|
|
788
|
+
employeeshare: 'employeeShare', employee_share: 'employeeShare',
|
|
789
|
+
employeeorganization: 'employeeOrganization', employee_organization: 'employeeOrganization',
|
|
790
|
+
external: 'external', all: 'all', allexternal: 'allExternal', all_external: 'allExternal',
|
|
791
|
+
};
|
|
792
|
+
const SEND_MESSAGE_OBJECT_TYPES = new Set([
|
|
793
|
+
'resource', 'department', 'subcompany', 'role', 'group', 'position',
|
|
794
|
+
'employeeScope', 'employeeShare', 'employeeOrganization', 'external', 'all', 'allExternal',
|
|
795
|
+
]);
|
|
796
|
+
function normalizeSendMessageObjectType(receiver) {
|
|
797
|
+
const declaredType = String(receiver.type || '').toLowerCase();
|
|
798
|
+
const rawType = String(receiver.objectType || receiver.targetType
|
|
799
|
+
|| (declaredType === 'context' || declaredType === 'reference' || declaredType === 'user_reference' ? 'resource' : receiver.type)
|
|
800
|
+
|| 'user');
|
|
801
|
+
const normalized = SEND_MESSAGE_OBJECT_TYPE_ALIASES[rawType.toLowerCase()] || rawType;
|
|
802
|
+
if (!SEND_MESSAGE_OBJECT_TYPES.has(normalized)) {
|
|
803
|
+
throw new Error(`SendMessage.receiver.type 不支持对象类型:${rawType}`);
|
|
804
|
+
}
|
|
805
|
+
return normalized;
|
|
806
|
+
}
|
|
807
|
+
function sendMessageObjectValueField(objectType) {
|
|
808
|
+
return objectType === 'resource' ? 'obj_id' : `obj_id_${objectType}`;
|
|
809
|
+
}
|
|
810
|
+
function sendMessageObjectOrigin(objectType, item, id, name) {
|
|
811
|
+
const supplied = item.originValue ?? item.browserValue ?? item.browserObject ?? item.raw;
|
|
812
|
+
if (supplied && typeof supplied === 'object' && !Array.isArray(supplied))
|
|
813
|
+
return supplied;
|
|
814
|
+
if (objectType === 'resource' || objectType === 'external')
|
|
815
|
+
return buildPersonObject(id, name);
|
|
816
|
+
// 固定值只提供 id/name 时,补齐各类 Browser 至少需要的通用展示字段;
|
|
817
|
+
// 如果调用方传了真实 Browser 对象,上面的 supplied 分支会完整保留它。
|
|
818
|
+
return {
|
|
819
|
+
id, name, content: name, title: name, contentDesc: name,
|
|
820
|
+
isLeaf: true, leaf: true, stopDepartment: false,
|
|
821
|
+
...(objectType === 'department' || objectType === 'subcompany' ? { departmentId: id } : {}),
|
|
822
|
+
...(objectType === 'position' ? { position: name } : {}),
|
|
823
|
+
};
|
|
824
|
+
}
|
|
825
|
+
function sendMessageObjectFormula(objectType, item, appId) {
|
|
826
|
+
const supplied = item.formula || item.formulaData || item.objectFormula;
|
|
827
|
+
if (supplied && typeof supplied === 'object' && !Array.isArray(supplied))
|
|
828
|
+
return supplied;
|
|
829
|
+
if (item.formulaType || (item.type && item.config && Object.prototype.hasOwnProperty.call(item, 'value'))) {
|
|
830
|
+
return item;
|
|
831
|
+
}
|
|
832
|
+
const id = String(item.id ?? item.value ?? '').trim();
|
|
833
|
+
const name = String(item.name ?? item.label ?? item.content ?? id).trim();
|
|
834
|
+
if (!id)
|
|
835
|
+
return {};
|
|
836
|
+
return {
|
|
837
|
+
formulaType: 'string', name: id, id: genSfId(), position: genSfId(), type: '1',
|
|
838
|
+
applicationId: String(appId), value: id, fieldType: 'string',
|
|
839
|
+
config: { switchType: 'fixvalue', originValue: [sendMessageObjectOrigin(objectType, item, id, name)] },
|
|
840
|
+
};
|
|
841
|
+
}
|
|
842
|
+
function sendMessageDynamicObjectFormula(receiver, objectType, meta, appId, sourceId) {
|
|
843
|
+
const kind = String(receiver.kind || receiver.assignmentKind || '').toLowerCase();
|
|
844
|
+
const rawType = String(receiver.type || '').toLowerCase();
|
|
845
|
+
const dynamicKind = kind || (rawType === 'context' || rawType === 'reference' || rawType === 'user_reference' ? rawType : '');
|
|
846
|
+
if (!dynamicKind || dynamicKind === 'fixed')
|
|
847
|
+
return null;
|
|
848
|
+
const key = String(receiver.paramKey || receiver.key
|
|
849
|
+
|| (dynamicKind === 'context' || dynamicKind === 'reference' || dynamicKind === 'user_reference' ? receiver.id : '')
|
|
850
|
+
|| '').trim();
|
|
851
|
+
if (!key)
|
|
852
|
+
return null;
|
|
853
|
+
const label = String(receiver.label || receiver.name || key);
|
|
854
|
+
const formula = dynamicKind === 'system_variable'
|
|
855
|
+
? formulaSystemVar(key)
|
|
856
|
+
: buildAssignBean({ kind: dynamicKind === 'reference' || dynamicKind === 'user_reference' ? 'context' : dynamicKind, paramKey: key, label, ...receiver }, key, 'string', meta, appId, sourceId);
|
|
857
|
+
return { formula, targetId: key };
|
|
858
|
+
}
|
|
782
859
|
export function buildShareList(receiver, meta, appId = '', eventId = '') {
|
|
783
860
|
if (!receiver || typeof receiver !== 'object')
|
|
784
861
|
return [];
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
const label = String(receiver.label || receiver.name || key);
|
|
791
|
-
// 接收人同样属于动态赋值:必须保留真实触发组件、字段 id 和参数路径,
|
|
792
|
-
// 不能复用默认 ApproveTrigger 壳,否则定时/表单触发器会在设计器中被误判。
|
|
793
|
-
const objIdFormula = buildAssignBean({ kind: 'context', paramKey: key, label }, key, 'string', meta, appId, String(eventId || genSfId()));
|
|
862
|
+
// 前端 authDataParam.sourceId 是提醒对象所属来源的独立 ID,不是画布触发节点 ID。
|
|
863
|
+
const sourceId = String(receiver.sourceId || genSfId());
|
|
864
|
+
const objectType = normalizeSendMessageObjectType(receiver);
|
|
865
|
+
if (objectType === 'all' || objectType === 'allExternal') {
|
|
866
|
+
const targetType = objectType === 'all' ? 11 : 1101;
|
|
794
867
|
return [{
|
|
795
|
-
sourceId
|
|
796
|
-
user_type: '1'
|
|
868
|
+
sourceId, permissionId: 'esb', permissionType: 1,
|
|
869
|
+
user_type: String(receiver.userType || '1'),
|
|
870
|
+
targetId: 0,
|
|
871
|
+
sourceType: 1, targetType, id: genSfId(), objType: objectType,
|
|
872
|
+
...(receiver.seclevel && typeof receiver.seclevel === 'object'
|
|
873
|
+
? { seclevel: receiver.seclevel }
|
|
874
|
+
: objectType === 'all' ? { seclevel: { min: 0, max: 100 } } : {}),
|
|
797
875
|
}];
|
|
798
876
|
}
|
|
799
|
-
const
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
877
|
+
const valueField = sendMessageObjectValueField(objectType);
|
|
878
|
+
const dynamic = sendMessageDynamicObjectFormula(receiver, objectType, meta, appId, sourceId);
|
|
879
|
+
if (dynamic) {
|
|
880
|
+
const entry = {
|
|
881
|
+
sourceId, permissionId: 'esb', permissionType: 1, objType: objectType,
|
|
882
|
+
targetId: dynamic.targetId, sourceType: 1, targetType: 1, id: genSfId(),
|
|
883
|
+
[valueField]: dynamic.formula,
|
|
884
|
+
};
|
|
885
|
+
if (objectType === 'resource')
|
|
886
|
+
entry.user_type = String(receiver.userType || '1');
|
|
887
|
+
return [entry];
|
|
805
888
|
}
|
|
806
|
-
|
|
807
|
-
|
|
889
|
+
// 前端 transMultData 会把 type=8 多选公式拆成多条 shareList;CLI 也支持
|
|
890
|
+
// 直接传 formula/formulaData,避免把前端 multipleSelect 容器原样塞进单条记录。
|
|
891
|
+
const container = receiver.formula || receiver.formulaData || receiver.objectFormula;
|
|
892
|
+
const containerChildren = container && String(container.type) === '8' && Array.isArray(container.childs)
|
|
893
|
+
? container.childs : [];
|
|
894
|
+
const singleFormula = container && String(container.type) !== '8' && typeof container === 'object'
|
|
895
|
+
? container : null;
|
|
896
|
+
let persons = receiver.persons || receiver.values || receiver.items || receiver.objects;
|
|
808
897
|
if (!Array.isArray(persons)) {
|
|
809
898
|
const pid = String(receiver.id ?? '').trim();
|
|
810
899
|
const pname = String(receiver.name ?? receiver.label ?? '').trim();
|
|
811
900
|
persons = pid ? [{ id: pid, name: pname }] : [];
|
|
812
901
|
}
|
|
902
|
+
if (!persons.length && containerChildren.length)
|
|
903
|
+
persons = containerChildren.map((formula) => ({ formula }));
|
|
904
|
+
if (!persons.length && singleFormula)
|
|
905
|
+
persons = [{ formula: singleFormula }];
|
|
813
906
|
if (!persons.length)
|
|
814
907
|
return [];
|
|
815
908
|
const userType = String(receiver.userType || '1');
|
|
816
909
|
let seclevel = receiver.seclevel;
|
|
817
910
|
if (Array.isArray(seclevel) && seclevel.length === 2)
|
|
818
911
|
seclevel = { min: parseInt(String(seclevel[0]), 10), max: parseInt(String(seclevel[1]), 10) };
|
|
819
|
-
const roleLevel =
|
|
820
|
-
const positionLevel =
|
|
821
|
-
const positionLevelSubcompany =
|
|
822
|
-
const positionLevelDepartment =
|
|
823
|
-
const positionAttribute =
|
|
824
|
-
const departmentAttribute =
|
|
912
|
+
const roleLevel = objectType === 'role' ? String(receiver.roleLevel ?? receiver.role_level ?? '') : '';
|
|
913
|
+
const positionLevel = objectType === 'position' ? String(receiver.positionLevel ?? receiver.position_level ?? '') : '';
|
|
914
|
+
const positionLevelSubcompany = objectType === 'position' ? (receiver.positionLevelSubcompany ?? receiver.position_level_subcompany) : null;
|
|
915
|
+
const positionLevelDepartment = objectType === 'position' ? (receiver.positionLevelDepartment ?? receiver.position_level_department) : null;
|
|
916
|
+
const positionAttribute = objectType === 'position' ? (receiver.positionAttribute ?? receiver.position_attribute) : null;
|
|
917
|
+
const departmentAttribute = objectType === 'department' || objectType === 'subcompany'
|
|
918
|
+
? (receiver.departmentAttribute ?? receiver.department_attribute) : null;
|
|
825
919
|
const shareList = [];
|
|
826
920
|
for (const p of persons) {
|
|
827
|
-
const
|
|
921
|
+
const formula = sendMessageObjectFormula(objectType, p, appId);
|
|
922
|
+
const pid = String(p.id ?? p.value ?? formula.value ?? '').trim();
|
|
828
923
|
const pname = String(p.name ?? p.label ?? pid).trim();
|
|
829
|
-
if (!pid)
|
|
924
|
+
if (!pid && !formula.value)
|
|
830
925
|
continue;
|
|
831
|
-
const
|
|
832
|
-
const objIdFormula = {
|
|
833
|
-
formulaType: 'string', name: pid, id: genSfId(), position: genSfId(), type: '1',
|
|
834
|
-
applicationId: String(appId), value: pid, fieldType: 'string',
|
|
835
|
-
config: { switchType: 'fixvalue', originValue: [personObj] },
|
|
836
|
-
};
|
|
926
|
+
const targetId = pid || String(formula.value || '');
|
|
837
927
|
const entry = {
|
|
838
|
-
sourceId
|
|
839
|
-
objType:
|
|
928
|
+
sourceId, permissionId: 'esb', permissionType: 1,
|
|
929
|
+
objType: objectType, targetId, sourceType: 1, targetType: 1, id: genSfId(),
|
|
840
930
|
};
|
|
841
|
-
if (
|
|
931
|
+
if (objectType === 'resource')
|
|
842
932
|
entry.user_type = userType;
|
|
843
|
-
entry[valueField] =
|
|
933
|
+
entry[valueField] = formula;
|
|
844
934
|
if (seclevel && typeof seclevel === 'object')
|
|
845
935
|
entry.seclevel = seclevel;
|
|
846
936
|
if (roleLevel)
|
|
@@ -855,6 +945,11 @@ export function buildShareList(receiver, meta, appId = '', eventId = '') {
|
|
|
855
945
|
entry.position_attribute = positionAttribute;
|
|
856
946
|
if (Array.isArray(departmentAttribute) && departmentAttribute.length)
|
|
857
947
|
entry.department_attribute = departmentAttribute;
|
|
948
|
+
if (objectType === 'employeeOrganization') {
|
|
949
|
+
const fixValueType = p.fixValueType ?? p.originTargetType ?? p.entityType ?? receiver.fixValueType;
|
|
950
|
+
if (fixValueType)
|
|
951
|
+
entry.fixValueType = String(fixValueType);
|
|
952
|
+
}
|
|
858
953
|
shareList.push(entry);
|
|
859
954
|
}
|
|
860
955
|
return shareList;
|
|
@@ -2074,6 +2169,27 @@ export function buildSettingEntry(fieldId, assignment, fieldType = 'Text', meta
|
|
|
2074
2169
|
? ref._resolvedContext : {};
|
|
2075
2170
|
const resolvedComponentType = String(resolvedContext.componentType || sourceComponent || '').trim();
|
|
2076
2171
|
const resolvedTableRoot = String(resolvedContext.tablePrimaryKey || '').trim();
|
|
2172
|
+
const basisParamKey = String(ref?.basisParamKey || ref?.basisValue?.paramKey || '').trim();
|
|
2173
|
+
const basisType = String(ref?.basisType || ref?.config?.basisType || 'formSetting');
|
|
2174
|
+
const isBasisDescendant = Boolean(basisParamKey && (String(key) === basisParamKey
|
|
2175
|
+
|| String(key).startsWith(`${basisParamKey}.`)));
|
|
2176
|
+
if (detailMode && isBasisDescendant && String(key).includes('[].')) {
|
|
2177
|
+
const pkeyFull = String(resolvedContext.paramKey || key);
|
|
2178
|
+
const detailParent = String(resolvedContext.parentName || '').trim();
|
|
2179
|
+
const detailLabel = detailParent.includes('[]')
|
|
2180
|
+
? detailParent.slice(0, detailParent.indexOf('[]') + 2)
|
|
2181
|
+
: (basisParamKey.split('[]')[0].split('.').pop() || basisParamKey);
|
|
2182
|
+
flat = assignFlatEsbChild(pkeyFull, String(label || key), String(src), appId, ft, undefined, detailLabel, String(meta._upstream_workflow_name || ''), resolvedComponentType || sourceComponent, contextMetaForReference(meta, ref, resolvedComponentType || sourceComponent), resolvedContext, basisParamKey, basisType);
|
|
2183
|
+
switchT = 'sub';
|
|
2184
|
+
attachEsbAssign(flat, meta, String(src));
|
|
2185
|
+
return {
|
|
2186
|
+
formFieldKey: '',
|
|
2187
|
+
value: {
|
|
2188
|
+
original: false, operate, switchType: 'sub', fieldKey: fieldId, assignType: '',
|
|
2189
|
+
fieldType, assignId: String(flat.id || ''), assign: flat, multiSelect: false,
|
|
2190
|
+
},
|
|
2191
|
+
};
|
|
2192
|
+
}
|
|
2077
2193
|
// 只有平台明确返回“表单/流程上下文 + 表单触发组件”时,才走
|
|
2078
2194
|
// EsbFormDataDto 的明细子字段协议。数组形状本身不能证明它是表单明细;
|
|
2079
2195
|
// 例如 GetDocumentInfo 的 attachmentInfos[].id 仍是 Response 上下文,
|