weaver-e10-builder 1.6.0 → 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.
Files changed (183) hide show
  1. package/dist/commands/actionflow.d.ts.map +1 -1
  2. package/dist/commands/actionflow.js +2 -0
  3. package/dist/commands/actionflow.js.map +1 -1
  4. package/dist/commands/check.d.ts.map +1 -1
  5. package/dist/commands/check.js +109 -51
  6. package/dist/commands/check.js.map +1 -1
  7. package/dist/commands/form-add-detail-table.js +3 -3
  8. package/dist/commands/form-add-detail-table.js.map +1 -1
  9. package/dist/commands/form-attachment-setting.d.ts +3 -0
  10. package/dist/commands/form-attachment-setting.d.ts.map +1 -0
  11. package/dist/commands/form-attachment-setting.js +422 -0
  12. package/dist/commands/form-attachment-setting.js.map +1 -0
  13. package/dist/commands/form-browser-definition.js +8 -8
  14. package/dist/commands/form-browser-definition.js.map +1 -1
  15. package/dist/commands/form-code.js +7 -7
  16. package/dist/commands/form-code.js.map +1 -1
  17. package/dist/commands/form-data.d.ts.map +1 -1
  18. package/dist/commands/form-data.js +50 -2
  19. package/dist/commands/form-data.js.map +1 -1
  20. package/dist/commands/form-ebuilder-scope.js +8 -8
  21. package/dist/commands/form-ebuilder-scope.js.map +1 -1
  22. package/dist/commands/form-engine-linkage.js +12 -12
  23. package/dist/commands/form-engine-linkage.js.map +1 -1
  24. package/dist/commands/form-field-linkage.d.ts +6 -1
  25. package/dist/commands/form-field-linkage.d.ts.map +1 -1
  26. package/dist/commands/form-field-linkage.js +138 -31
  27. package/dist/commands/form-field-linkage.js.map +1 -1
  28. package/dist/commands/form-layout-diff.js +1 -1
  29. package/dist/commands/form-layout-diff.js.map +1 -1
  30. package/dist/commands/form-layout-edit.js +1 -1
  31. package/dist/commands/form-layout-edit.js.map +1 -1
  32. package/dist/commands/form-layout-init-reviewed.js +1 -1
  33. package/dist/commands/form-layout-init-reviewed.js.map +1 -1
  34. package/dist/commands/form-layout-init.js +2 -2
  35. package/dist/commands/form-layout-init.js.map +1 -1
  36. package/dist/commands/form-layout-template-easy.js +1 -1
  37. package/dist/commands/form-layout-template-easy.js.map +1 -1
  38. package/dist/commands/form-layout.js +4 -4
  39. package/dist/commands/form-layout.js.map +1 -1
  40. package/dist/commands/form-view.d.ts.map +1 -1
  41. package/dist/commands/form-view.js +1 -2
  42. package/dist/commands/form-view.js.map +1 -1
  43. package/dist/commands/form.d.ts.map +1 -1
  44. package/dist/commands/form.js +50 -5
  45. package/dist/commands/form.js.map +1 -1
  46. package/dist/commands/project.d.ts.map +1 -1
  47. package/dist/commands/project.js +39 -6
  48. package/dist/commands/project.js.map +1 -1
  49. package/dist/commands/report-admin.js +1 -1
  50. package/dist/commands/report-admin.js.map +1 -1
  51. package/dist/commands/report-query.js +1 -1
  52. package/dist/commands/report-query.js.map +1 -1
  53. package/dist/commands/report.js +1 -1
  54. package/dist/commands/report.js.map +1 -1
  55. package/dist/commands/wf-form-layout-init-reviewed.d.ts +3 -0
  56. package/dist/commands/wf-form-layout-init-reviewed.d.ts.map +1 -0
  57. package/dist/commands/wf-form-layout-init-reviewed.js +71 -0
  58. package/dist/commands/wf-form-layout-init-reviewed.js.map +1 -0
  59. package/dist/commands/wf-form.d.ts +1 -0
  60. package/dist/commands/wf-form.d.ts.map +1 -1
  61. package/dist/commands/wf-form.js +16 -16
  62. package/dist/commands/wf-form.js.map +1 -1
  63. package/dist/commands/workflow-advanced.js +1 -1
  64. package/dist/commands/workflow-advanced.js.map +1 -1
  65. package/dist/commands/workflow-basic-info.js +4 -4
  66. package/dist/commands/workflow-basic-info.js.map +1 -1
  67. package/dist/commands/workflow.js +6 -6
  68. package/dist/commands/workflow.js.map +1 -1
  69. package/dist/index.js +22 -0
  70. package/dist/index.js.map +1 -1
  71. package/dist/services/actionflow/classified_protection_source.d.ts +10 -0
  72. package/dist/services/actionflow/classified_protection_source.d.ts.map +1 -0
  73. package/dist/services/actionflow/classified_protection_source.js +27 -0
  74. package/dist/services/actionflow/classified_protection_source.js.map +1 -0
  75. package/dist/services/actionflow/components/action_eb_add.d.ts.map +1 -1
  76. package/dist/services/actionflow/components/action_eb_add.js +4 -5
  77. package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
  78. package/dist/services/actionflow/components/action_eb_update.d.ts.map +1 -1
  79. package/dist/services/actionflow/components/action_eb_update.js +13 -1
  80. package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
  81. package/dist/services/actionflow/components/action_eb_update_compiler.d.ts +12 -0
  82. package/dist/services/actionflow/components/action_eb_update_compiler.d.ts.map +1 -1
  83. package/dist/services/actionflow/components/action_eb_update_compiler.js +88 -3
  84. package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -1
  85. package/dist/services/actionflow/components/approve_create.d.ts.map +1 -1
  86. package/dist/services/actionflow/components/approve_create.js +6 -10
  87. package/dist/services/actionflow/components/approve_create.js.map +1 -1
  88. package/dist/services/actionflow/components/condition.d.ts.map +1 -1
  89. package/dist/services/actionflow/components/condition.js +3 -2
  90. package/dist/services/actionflow/components/condition.js.map +1 -1
  91. package/dist/services/actionflow/components/eb_get_data_by_id.d.ts.map +1 -1
  92. package/dist/services/actionflow/components/eb_get_data_by_id.js +9 -1
  93. package/dist/services/actionflow/components/eb_get_data_by_id.js.map +1 -1
  94. package/dist/services/actionflow/components/send_message.js +1 -1
  95. package/dist/services/actionflow/components/send_message.js.map +1 -1
  96. package/dist/services/actionflow/components/workflow_actions.d.ts.map +1 -1
  97. package/dist/services/actionflow/components/workflow_actions.js +20 -11
  98. package/dist/services/actionflow/components/workflow_actions.js.map +1 -1
  99. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  100. package/dist/services/actionflow/context_preflight.js +9 -1
  101. package/dist/services/actionflow/context_preflight.js.map +1 -1
  102. package/dist/services/actionflow/design_client.d.ts +4 -0
  103. package/dist/services/actionflow/design_client.d.ts.map +1 -1
  104. package/dist/services/actionflow/design_client.js +65 -0
  105. package/dist/services/actionflow/design_client.js.map +1 -1
  106. package/dist/services/actionflow/form_source.d.ts +9 -2
  107. package/dist/services/actionflow/form_source.d.ts.map +1 -1
  108. package/dist/services/actionflow/form_source.js +21 -6
  109. package/dist/services/actionflow/form_source.js.map +1 -1
  110. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  111. package/dist/services/actionflow/formula_service.js +153 -37
  112. package/dist/services/actionflow/formula_service.js.map +1 -1
  113. package/dist/services/actionflow/preflight_service.d.ts +14 -3
  114. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  115. package/dist/services/actionflow/preflight_service.js +276 -42
  116. package/dist/services/actionflow/preflight_service.js.map +1 -1
  117. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  118. package/dist/services/actionflow/workflow_compiler.js +154 -23
  119. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  120. package/dist/services/form-attachment-settings.d.ts +110 -0
  121. package/dist/services/form-attachment-settings.d.ts.map +1 -0
  122. package/dist/services/form-attachment-settings.js +332 -0
  123. package/dist/services/form-attachment-settings.js.map +1 -0
  124. package/dist/services/form-attachment-upload.d.ts +30 -0
  125. package/dist/services/form-attachment-upload.d.ts.map +1 -0
  126. package/dist/services/form-attachment-upload.js +76 -0
  127. package/dist/services/form-attachment-upload.js.map +1 -0
  128. package/dist/services/form-data-openapi.d.ts +2 -0
  129. package/dist/services/form-data-openapi.d.ts.map +1 -1
  130. package/dist/services/form-data-openapi.js +1 -0
  131. package/dist/services/form-data-openapi.js.map +1 -1
  132. package/dist/services/workflow-layout-init-reviewed.d.ts +35 -0
  133. package/dist/services/workflow-layout-init-reviewed.d.ts.map +1 -0
  134. package/dist/services/workflow-layout-init-reviewed.js +120 -0
  135. package/dist/services/workflow-layout-init-reviewed.js.map +1 -0
  136. package/package.json +1 -1
  137. package/skill-docs/SKILL.md +163 -160
  138. package/skill-docs/_catalog.md +6 -4
  139. package/skill-docs/actionflows/SKILL.md +2 -0
  140. package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +2 -0
  141. package/skill-docs/actionflows/references/components/ebuilder/EventButton.md +1 -1
  142. package/skill-docs/actionflows/references/components/logic/Condition.md +2 -0
  143. package/skill-docs/actionflows/references/components/message/SendMessage.md +2 -2
  144. package/skill-docs/actionflows/references/components/workflow/ApproveCommit.md +17 -17
  145. package/skill-docs/actionflows/references/components/workflow/ApproveCreate.md +1 -1
  146. package/skill-docs/actionflows/references/components/workflow/ApproveSave.md +1 -1
  147. package/skill-docs/actionflows/references/components/workflow/ApproveSendBack.md +17 -17
  148. package/skill-docs/assets/sample/api/formApi.js +689 -510
  149. package/skill-docs/assets/sample/app/config.js +4 -0
  150. package/skill-docs/assets/sample/app/fields.js +25 -0
  151. package/skill-docs/assets/sample/entry.js +24 -22
  152. package/skill-docs/assets/sample/eslint.config.cjs +1 -0
  153. package/skill-docs/assets/sample/pages/Items.js +247 -0
  154. package/skill-docs/assets/sample/styles/prototypeStyles.js +137 -0
  155. package/skill-docs/references/coding/guide-edit-backfill.md +102 -150
  156. package/skill-docs/references/coding/guide-form-crud.md +195 -172
  157. package/skill-docs/references/coding/guide-html-to-react.md +250 -0
  158. package/skill-docs/references/coding/guide-page-code.md +194 -167
  159. package/skill-docs/references/coding/guide-page-export.md +27 -18
  160. package/skill-docs/references/coding/ref-compile-rules.md +7 -7
  161. package/skill-docs/references/common/map.md +2 -1
  162. package/skill-docs/references/common/ref-cli-commands.md +14 -6
  163. package/skill-docs/references/components/display-FilePreview.md +5 -4
  164. package/skill-docs/references/form/guide-browser-definition.md +73 -40
  165. package/skill-docs/references/form/guide-field-linkage.md +4 -1
  166. package/skill-docs/references/form/guide-form-attachment-setting.md +95 -0
  167. package/skill-docs/references/form/guide-form-data.md +22 -1
  168. package/skill-docs/references/form/layout/code-block/layout-css.md +41 -0
  169. package/skill-docs/references/form/layout/initialization.md +2 -0
  170. package/skill-docs/references/form/layout/layout-overview.md +8 -0
  171. package/skill-docs/references/form/layout/template/advanced.md +21 -0
  172. package/skill-docs/references/form/layout/template/easy.md +2 -0
  173. package/skill-docs/references/form/layout/template/flow.md +2 -0
  174. package/skill-docs/references/form/layout/template/template-guide.md +3 -1
  175. package/skill-docs/references/form/layout/workflow-layout.md +13 -1
  176. package/skill-docs/references/form/ref-form-fields.md +18 -4
  177. package/skill-docs/references/workflow/guide-workflow-odoc.md +1 -1
  178. package/skill-docs/assets/sample/config/config.js +0 -0
  179. package/skill-docs/assets/sample/config/configLoad.js +0 -0
  180. package/skill-docs/assets/sample/config/configLoad_default.js +0 -0
  181. package/skill-docs/assets/sample/config/config_default.js +0 -0
  182. package/skill-docs/assets/sample/memo.md +0 -0
  183. package/skill-docs/assets/sample/readme.js +0 -8
@@ -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
- const objType = String(receiver.type || 'user');
786
- if (objType === 'context' || objType === 'user_reference') {
787
- const key = String(receiver.key || receiver.paramKey || receiver.id || '');
788
- if (!key)
789
- return [];
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: String(eventId || genSfId()), permissionId: 'esb', permissionType: 1, objType: 'resource',
796
- user_type: '1', targetId: key, sourceType: 1, targetType: 1, id: genSfId(), obj_id: objIdFormula,
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 objtypeForDesigner = objType === 'user' ? 'resource' : objType;
800
- if (objType === 'all' || objType === 'allExternal') {
801
- return [{
802
- sourceId: String(eventId || genSfId()), permissionId: 'esb', permissionType: 1,
803
- objType: objtypeForDesigner, sourceType: 1, targetType: 1, id: genSfId(),
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
- const valueField = objType === 'user' ? 'obj_id' : `obj_id_${objType}`;
807
- let persons = receiver.persons;
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 = objType === 'role' ? String(receiver.roleLevel || '') : '';
820
- const positionLevel = objType === 'position' ? String(receiver.positionLevel || '') : '';
821
- const positionLevelSubcompany = objType === 'position' ? receiver.positionLevelSubcompany : null;
822
- const positionLevelDepartment = objType === 'position' ? receiver.positionLevelDepartment : null;
823
- const positionAttribute = objType === 'position' ? receiver.positionAttribute : null;
824
- const departmentAttribute = objType === 'department' || objType === 'subcompany' ? receiver.departmentAttribute : null;
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 pid = String(p.id ?? '').trim();
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 personObj = buildPersonObject(pid, pname);
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: String(eventId || genSfId()), permissionId: 'esb', permissionType: 1,
839
- objType: objtypeForDesigner, targetId: pid, sourceType: 1, targetType: 1, id: genSfId(),
928
+ sourceId, permissionId: 'esb', permissionType: 1,
929
+ objType: objectType, targetId, sourceType: 1, targetType: 1, id: genSfId(),
840
930
  };
841
- if (objType === 'user')
931
+ if (objectType === 'resource')
842
932
  entry.user_type = userType;
843
- entry[valueField] = objIdFormula;
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 上下文,