weaver-e10-builder 1.2.3 → 1.2.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 (210) hide show
  1. package/dist/commands/actionflow.d.ts.map +1 -1
  2. package/dist/commands/actionflow.js +12 -25
  3. package/dist/commands/actionflow.js.map +1 -1
  4. package/dist/commands/designer-css.d.ts +15 -0
  5. package/dist/commands/designer-css.d.ts.map +1 -0
  6. package/dist/commands/designer-css.js +205 -0
  7. package/dist/commands/designer-css.js.map +1 -0
  8. package/dist/commands/form-field-lang.d.ts.map +1 -1
  9. package/dist/commands/form-field-lang.js +4 -39
  10. package/dist/commands/form-field-lang.js.map +1 -1
  11. package/dist/commands/form-layout-init.d.ts.map +1 -1
  12. package/dist/commands/form-layout-init.js +15 -10
  13. package/dist/commands/form-layout-init.js.map +1 -1
  14. package/dist/commands/form-layout.js +24 -21
  15. package/dist/commands/form-layout.js.map +1 -1
  16. package/dist/commands/form-native.d.ts.map +1 -1
  17. package/dist/commands/form-native.js +181 -0
  18. package/dist/commands/form-native.js.map +1 -1
  19. package/dist/commands/form-validate.d.ts.map +1 -1
  20. package/dist/commands/form-validate.js +11 -3
  21. package/dist/commands/form-validate.js.map +1 -1
  22. package/dist/commands/form.d.ts.map +1 -1
  23. package/dist/commands/form.js +76 -19
  24. package/dist/commands/form.js.map +1 -1
  25. package/dist/commands/menu.d.ts.map +1 -1
  26. package/dist/commands/menu.js +170 -23
  27. package/dist/commands/menu.js.map +1 -1
  28. package/dist/commands/wf-form.d.ts +1 -0
  29. package/dist/commands/wf-form.d.ts.map +1 -1
  30. package/dist/commands/wf-form.js +44 -13
  31. package/dist/commands/wf-form.js.map +1 -1
  32. package/dist/commands/workflow-node-assign-flow.d.ts.map +1 -1
  33. package/dist/commands/workflow-node-assign-flow.js +1 -2
  34. package/dist/commands/workflow-node-assign-flow.js.map +1 -1
  35. package/dist/commands/workflow-node.d.ts.map +1 -1
  36. package/dist/commands/workflow-node.js +147 -2
  37. package/dist/commands/workflow-node.js.map +1 -1
  38. package/dist/commands/workflow-odoc.d.ts.map +1 -1
  39. package/dist/commands/workflow-odoc.js +56 -56
  40. package/dist/commands/workflow-odoc.js.map +1 -1
  41. package/dist/commands/workflow-setting.d.ts.map +1 -1
  42. package/dist/commands/workflow-setting.js +77 -1
  43. package/dist/commands/workflow-setting.js.map +1 -1
  44. package/dist/commands/workflow.d.ts.map +1 -1
  45. package/dist/commands/workflow.js +36 -80
  46. package/dist/commands/workflow.js.map +1 -1
  47. package/dist/core/client.d.ts +14 -0
  48. package/dist/core/client.d.ts.map +1 -1
  49. package/dist/core/client.js +28 -12
  50. package/dist/core/client.js.map +1 -1
  51. package/dist/index.js +2 -0
  52. package/dist/index.js.map +1 -1
  53. package/dist/services/actionflow/command_output.d.ts +7 -0
  54. package/dist/services/actionflow/command_output.d.ts.map +1 -1
  55. package/dist/services/actionflow/command_output.js +46 -0
  56. package/dist/services/actionflow/command_output.js.map +1 -1
  57. package/dist/services/actionflow/components/action_eb_add.d.ts.map +1 -1
  58. package/dist/services/actionflow/components/action_eb_add.js +14 -4
  59. package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
  60. package/dist/services/actionflow/components/action_eb_add_compiler.d.ts.map +1 -1
  61. package/dist/services/actionflow/components/action_eb_add_compiler.js +29 -0
  62. package/dist/services/actionflow/components/action_eb_add_compiler.js.map +1 -1
  63. package/dist/services/actionflow/components/action_eb_update.d.ts.map +1 -1
  64. package/dist/services/actionflow/components/action_eb_update.js +23 -8
  65. package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
  66. package/dist/services/actionflow/components/action_eb_update_compiler.d.ts.map +1 -1
  67. package/dist/services/actionflow/components/action_eb_update_compiler.js +239 -6
  68. package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -1
  69. package/dist/services/actionflow/components/custom_set_form.d.ts +10 -0
  70. package/dist/services/actionflow/components/custom_set_form.d.ts.map +1 -0
  71. package/dist/services/actionflow/components/custom_set_form.js +65 -0
  72. package/dist/services/actionflow/components/custom_set_form.js.map +1 -0
  73. package/dist/services/actionflow/components/custom_trigger.d.ts +2 -2
  74. package/dist/services/actionflow/components/custom_trigger.d.ts.map +1 -1
  75. package/dist/services/actionflow/components/custom_trigger.js +7 -10
  76. package/dist/services/actionflow/components/custom_trigger.js.map +1 -1
  77. package/dist/services/actionflow/components/enquiry_form.js +1 -1
  78. package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
  79. package/dist/services/actionflow/components/output.d.ts.map +1 -1
  80. package/dist/services/actionflow/components/output.js +6 -1
  81. package/dist/services/actionflow/components/output.js.map +1 -1
  82. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  83. package/dist/services/actionflow/context_preflight.js +13 -6
  84. package/dist/services/actionflow/context_preflight.js.map +1 -1
  85. package/dist/services/actionflow/context_provider.d.ts.map +1 -1
  86. package/dist/services/actionflow/context_provider.js +3 -2
  87. package/dist/services/actionflow/context_provider.js.map +1 -1
  88. package/dist/services/actionflow/dynamic_resources.d.ts.map +1 -1
  89. package/dist/services/actionflow/dynamic_resources.js +1 -1
  90. package/dist/services/actionflow/dynamic_resources.js.map +1 -1
  91. package/dist/services/actionflow/ebuilder_source.d.ts +19 -0
  92. package/dist/services/actionflow/ebuilder_source.d.ts.map +1 -0
  93. package/dist/services/actionflow/ebuilder_source.js +78 -0
  94. package/dist/services/actionflow/ebuilder_source.js.map +1 -0
  95. package/dist/services/actionflow/form_source.d.ts +51 -10
  96. package/dist/services/actionflow/form_source.d.ts.map +1 -1
  97. package/dist/services/actionflow/form_source.js +173 -29
  98. package/dist/services/actionflow/form_source.js.map +1 -1
  99. package/dist/services/actionflow/formula_service.d.ts +4 -1
  100. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  101. package/dist/services/actionflow/formula_service.js +46 -22
  102. package/dist/services/actionflow/formula_service.js.map +1 -1
  103. package/dist/services/actionflow/preflight_service.d.ts +6 -0
  104. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  105. package/dist/services/actionflow/preflight_service.js +211 -3
  106. package/dist/services/actionflow/preflight_service.js.map +1 -1
  107. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  108. package/dist/services/actionflow/workflow_compiler.js +83 -15
  109. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  110. package/dist/services/designer-css.d.ts +89 -0
  111. package/dist/services/designer-css.d.ts.map +1 -0
  112. package/dist/services/designer-css.js +163 -0
  113. package/dist/services/designer-css.js.map +1 -0
  114. package/dist/services/dom-structure.d.ts +42 -0
  115. package/dist/services/dom-structure.d.ts.map +1 -0
  116. package/dist/services/dom-structure.js +251 -0
  117. package/dist/services/dom-structure.js.map +1 -0
  118. package/dist/services/form-field-patch.d.ts +22 -0
  119. package/dist/services/form-field-patch.d.ts.map +1 -1
  120. package/dist/services/form-field-patch.js +29 -0
  121. package/dist/services/form-field-patch.js.map +1 -1
  122. package/dist/services/form-i18n-label.d.ts +48 -0
  123. package/dist/services/form-i18n-label.d.ts.map +1 -0
  124. package/dist/services/form-i18n-label.js +91 -0
  125. package/dist/services/form-i18n-label.js.map +1 -0
  126. package/dist/services/form-style-template.d.ts +6 -2
  127. package/dist/services/form-style-template.d.ts.map +1 -1
  128. package/dist/services/form-style-template.js +8 -4
  129. package/dist/services/form-style-template.js.map +1 -1
  130. package/dist/services/menu-catalog.d.ts +84 -0
  131. package/dist/services/menu-catalog.d.ts.map +1 -0
  132. package/dist/services/menu-catalog.js +183 -0
  133. package/dist/services/menu-catalog.js.map +1 -0
  134. package/dist/services/workflow-add-step.d.ts +45 -0
  135. package/dist/services/workflow-add-step.d.ts.map +1 -0
  136. package/dist/services/workflow-add-step.js +122 -0
  137. package/dist/services/workflow-add-step.js.map +1 -0
  138. package/dist/services/workflow-assign-flow.d.ts +1 -6
  139. package/dist/services/workflow-assign-flow.d.ts.map +1 -1
  140. package/dist/services/workflow-assign-flow.js +3 -8
  141. package/dist/services/workflow-assign-flow.js.map +1 -1
  142. package/dist/services/workflow-drawback.d.ts +19 -0
  143. package/dist/services/workflow-drawback.d.ts.map +1 -0
  144. package/dist/services/workflow-drawback.js +59 -0
  145. package/dist/services/workflow-drawback.js.map +1 -0
  146. package/dist/services/workflow-links.d.ts +51 -0
  147. package/dist/services/workflow-links.d.ts.map +1 -0
  148. package/dist/services/workflow-links.js +162 -0
  149. package/dist/services/workflow-links.js.map +1 -0
  150. package/dist/services/workflow-node-layout.d.ts +45 -4
  151. package/dist/services/workflow-node-layout.d.ts.map +1 -1
  152. package/dist/services/workflow-node-layout.js +142 -41
  153. package/dist/services/workflow-node-layout.js.map +1 -1
  154. package/dist/services/workflow-odoc-setting.d.ts +43 -0
  155. package/dist/services/workflow-odoc-setting.d.ts.map +1 -0
  156. package/dist/services/workflow-odoc-setting.js +100 -0
  157. package/dist/services/workflow-odoc-setting.js.map +1 -0
  158. package/dist/services/workflow-tab-config.d.ts +54 -0
  159. package/dist/services/workflow-tab-config.d.ts.map +1 -0
  160. package/dist/services/workflow-tab-config.js +137 -0
  161. package/dist/services/workflow-tab-config.js.map +1 -0
  162. package/dist/types.d.ts +5 -1
  163. package/dist/types.d.ts.map +1 -1
  164. package/package.json +48 -48
  165. package/skill-docs/SKILL.md +7 -7
  166. package/skill-docs/_catalog.md +2 -0
  167. package/skill-docs/actionflows/SKILL.md +2 -0
  168. package/skill-docs/actionflows/references/components/ebuilder/ActionEbAdd.md +38 -1
  169. package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +42 -0
  170. package/skill-docs/actionflows/references/components/ebuilder/EventButton.md +1 -1
  171. package/skill-docs/actionflows/references/components/logic/Output.md +2 -0
  172. package/skill-docs/actionflows/references/components/trigger/CustomTrigger.md +16 -11
  173. package/skill-docs/assets/dom-structure/Bar.json +341 -0
  174. package/skill-docs/assets/dom-structure/BarStack.json +341 -0
  175. package/skill-docs/assets/dom-structure/Bubble.json +323 -0
  176. package/skill-docs/assets/dom-structure/Calendar.json +515 -0
  177. package/skill-docs/assets/dom-structure/Circular.json +337 -0
  178. package/skill-docs/assets/dom-structure/CollapsePanel.json +289 -0
  179. package/skill-docs/assets/dom-structure/Comment.json +617 -0
  180. package/skill-docs/assets/dom-structure/CountDown.json +755 -0
  181. package/skill-docs/assets/dom-structure/DigitalPanel.json +191 -0
  182. package/skill-docs/assets/dom-structure/EbButton.json +387 -0
  183. package/skill-docs/assets/dom-structure/FastCreate.json +242 -0
  184. package/skill-docs/assets/dom-structure/Gauge.json +282 -0
  185. package/skill-docs/assets/dom-structure/HBar.json +336 -0
  186. package/skill-docs/assets/dom-structure/HBarStack.json +337 -0
  187. package/skill-docs/assets/dom-structure/Line.json +341 -0
  188. package/skill-docs/assets/dom-structure/NList.json +712 -0
  189. package/skill-docs/assets/dom-structure/NavBar.json +274 -0
  190. package/skill-docs/assets/dom-structure/NavPanel.json +390 -0
  191. package/skill-docs/assets/dom-structure/NewTab.json +606 -0
  192. package/skill-docs/assets/dom-structure/Nightingale.json +336 -0
  193. package/skill-docs/assets/dom-structure/PageHeader.json +205 -0
  194. package/skill-docs/assets/dom-structure/Picture.json +209 -0
  195. package/skill-docs/assets/dom-structure/Pie.json +338 -0
  196. package/skill-docs/assets/dom-structure/ProgressChart.json +299 -0
  197. package/skill-docs/assets/dom-structure/SearchGlobal.json +628 -0
  198. package/skill-docs/assets/dom-structure/Slide.json +489 -0
  199. package/skill-docs/assets/dom-structure/Treemap.json +324 -0
  200. package/skill-docs/references/common/guide-plan-template.md +1 -1
  201. package/skill-docs/references/common/ref-cli-commands.md +21 -13
  202. package/skill-docs/references/ebuilder-designer/guide-designer-components.md +12 -1
  203. package/skill-docs/references/ebuilder-designer/guide-designer-css.md +127 -0
  204. package/skill-docs/references/ebuilder-designer/guide-designer.md +6 -5
  205. package/skill-docs/references/form/guide-create-form.md +1 -1
  206. package/skill-docs/references/form/guide-form-layout-planning.md +1 -1
  207. package/skill-docs/references/form/guide-form-linkage.md +28 -2
  208. package/skill-docs/references/menu/system-menus.md +12 -0
  209. package/skill-docs/references/workflow/guide-workflow-odoc.md +22 -2
  210. package/skill-docs/references/workflow/guide-workflow.md +18 -3
@@ -599,6 +599,7 @@ export function fillSetting(result, updates, mapping, constants, formula, meta,
599
599
  dataDrWithCalc: false,
600
600
  main,
601
601
  detail: [],
602
+ deleteMainFields: [],
602
603
  updateFieldCondition: { updateField: [] },
603
604
  };
604
605
  }
@@ -1244,6 +1245,32 @@ export function buildConditionDetail(condition, sourceId, meta = null) {
1244
1245
  };
1245
1246
  }
1246
1247
  // ── _build_setting_detail ───────────────────────────────────
1248
+ function buildDetailRowId(value, meta, appId, eventId, nodeType) {
1249
+ if (!value || typeof value !== 'object')
1250
+ throw new Error('明细 rowId 必须是固定值、上下文或其他动态赋值对象');
1251
+ const raw = value.assign ?? value.value ?? value;
1252
+ let assign;
1253
+ if (raw && typeof raw === 'object' && (raw.type || raw.formulaType) && !raw.kind)
1254
+ assign = { ...raw };
1255
+ else
1256
+ assign = buildFormulaReference(raw, { meta, appId, eventId, componentType: nodeType });
1257
+ attachEsbAssign(assign, meta, eventId);
1258
+ const assignId = String(value.assignId || assign.id || genSfId());
1259
+ const fieldId = value.id ?? value.primaryId ?? assignId;
1260
+ return {
1261
+ id: String(fieldId),
1262
+ primaryId: value.primaryId == null ? String(fieldId) : value.primaryId,
1263
+ original: false,
1264
+ assign,
1265
+ assignId,
1266
+ operate: value.operate || 'OPERATE_EQUAL',
1267
+ assignType: value.assignType || '',
1268
+ fieldType: value.fieldType || 'Text',
1269
+ switchType: value.switchType || (String(assign.type || assign.formulaType) === '1' ? 'fixvalue' : 'assign'),
1270
+ multiSelect: value.multiSelect === true,
1271
+ fieldKey: 'rowId',
1272
+ };
1273
+ }
1247
1274
  export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId, nodeType) {
1248
1275
  if (!Array.isArray(detailItems))
1249
1276
  return;
@@ -1251,6 +1278,13 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
1251
1278
  for (const item of detailItems) {
1252
1279
  if (!item || typeof item !== 'object' || !item.detailTableId)
1253
1280
  continue;
1281
+ if (nodeType === 'ActionEbAdd') {
1282
+ const strategyKeys = ['operateType', 'updateType', 'updateFieldCondition', 'updatePolicy', 'rowId'];
1283
+ const configured = strategyKeys.filter((key) => item[key] !== undefined && item[key] !== null && item[key] !== '');
1284
+ if (configured.length) {
1285
+ throw new Error(`ActionEbAdd.detail 明细策略固定为新增,不支持 ${configured.join('、')};请使用 ActionEbUpdate`);
1286
+ }
1287
+ }
1254
1288
  const ele = { detailTableId: String(item.detailTableId) };
1255
1289
  if (item.updateFieldCondition && typeof item.updateFieldCondition === 'object') {
1256
1290
  ele.updateFieldCondition = buildUpdateFieldCondition(item.updateFieldCondition, { meta, appId, eventId: String(eventId), componentType: nodeType });
@@ -1262,7 +1296,14 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
1262
1296
  // 明细项依据值:引用整个明细表,source=event 节点 id, frontId=明细表 id。
1263
1297
  if (item.basisValue && typeof item.basisValue === 'object') {
1264
1298
  const bvVal = item.basisValue;
1265
- const bvKey = String(bvVal.paramKey || bvVal.key || '').trim();
1299
+ let bvKey = String(bvVal.paramKey || bvVal.key || '').trim();
1300
+ if (bvKey && !bvKey.includes('[]')) {
1301
+ const wfId = String(meta?._workflow_id || '');
1302
+ const keyIndex = wfId ? getWorkflowContextFieldsByKey()[wfId] || {} : {};
1303
+ const arrayKey = `${bvKey}[]`;
1304
+ if (keyIndex[arrayKey] && !keyIndex[bvKey])
1305
+ bvKey = arrayKey;
1306
+ }
1266
1307
  const bvLabel = String(bvVal.label || bvVal.name || bvKey);
1267
1308
  if (bvKey) {
1268
1309
  const bvType = resolveSourceFieldType(bvKey, meta);
@@ -1278,6 +1319,7 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
1278
1319
  frontId: bvSubformId,
1279
1320
  formulaType: bvType,
1280
1321
  name: bvLabel,
1322
+ businessId: appId,
1281
1323
  id: genSfId(),
1282
1324
  source: String(eventId),
1283
1325
  type: '3',
@@ -1306,6 +1348,10 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
1306
1348
  }
1307
1349
  const mapping = item.mapping || {};
1308
1350
  const constants = item.constants || {};
1351
+ const detailTargetFormId = String((nodeData.targetForm || {}).id || '');
1352
+ const targetDetailFields = detailTargetFormId
1353
+ ? (getTargetDetailFields()[detailTargetFormId] || {})[String(item.detailTableId)] || {}
1354
+ : {};
1309
1355
  if (mapping && typeof mapping === 'object' && !Array.isArray(mapping)) {
1310
1356
  for (const [sourceKey, targetFieldIdRaw] of Object.entries(mapping)) {
1311
1357
  const targetFieldId = targetFieldIdRaw;
@@ -1326,10 +1372,16 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
1326
1372
  const refKey = String(targetFieldId.paramKey || sourceKey);
1327
1373
  const refLabel = String(targetFieldId.label || sourceKey);
1328
1374
  const refDetail = String(targetFieldId.detailLabel || '');
1329
- assignment = { kind: 'context', paramKey: refKey, label: refLabel };
1375
+ const declaredKind = String(targetFieldId.kind || targetFieldId.assignmentKind || 'context');
1376
+ assignment = {
1377
+ ...(targetFieldId.assignment && typeof targetFieldId.assignment === 'object' ? targetFieldId.assignment : {}),
1378
+ kind: declaredKind, paramKey: refKey, label: refLabel,
1379
+ };
1330
1380
  if (refDetail)
1331
1381
  assignment.detailLabel = refDetail;
1332
- eleData[raw] = buildSettingEntry(raw, assignment, 'Text', meta, appId, eventId, operate, nodeType, true, '');
1382
+ const targetMeta = targetDetailFields[raw] || {};
1383
+ const targetType = String(targetMeta.componentKey || targetMeta.type || 'Text');
1384
+ eleData[raw] = buildSettingEntry(raw, assignment, targetType, meta, appId, eventId, operate, nodeType, true, '');
1333
1385
  }
1334
1386
  else {
1335
1387
  let raw = String(targetFieldId);
@@ -1342,16 +1394,20 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
1342
1394
  raw = raw.slice(1);
1343
1395
  }
1344
1396
  assignment = { kind: 'context', paramKey: String(sourceKey), label: resolveSourceFieldLabel(String(sourceKey), meta, String(sourceKey)) };
1345
- eleData[raw] = buildSettingEntry(raw, assignment, 'Text', meta, appId, eventId, operate, nodeType, true, '');
1397
+ const targetMeta = targetDetailFields[raw] || {};
1398
+ const targetType = String(targetMeta.componentKey || targetMeta.type || 'Text');
1399
+ eleData[raw] = buildSettingEntry(raw, assignment, targetType, meta, appId, eventId, operate, nodeType, true, '');
1346
1400
  }
1347
1401
  }
1348
1402
  }
1349
1403
  if (constants && typeof constants === 'object' && !Array.isArray(constants)) {
1350
1404
  for (const [targetFieldIdRaw, valueRaw] of Object.entries(constants)) {
1351
1405
  const targetFieldId = String(targetFieldIdRaw);
1352
- const value = valueRaw;
1406
+ const targetMeta = targetDetailFields[targetFieldId] || {};
1407
+ const value = resolveEnumConstant(valueRaw, targetMeta);
1353
1408
  const [assignment, ft] = normalizeConstantAssignment(value, 'Text');
1354
- eleData[targetFieldId] = buildSettingEntry(targetFieldId, assignment, ft, meta, appId, eventId, 'OPERATE_EQUAL', nodeType, true, '');
1409
+ const targetType = String(targetMeta.componentKey || targetMeta.type || ft);
1410
+ eleData[targetFieldId] = buildSettingEntry(targetFieldId, assignment, targetType, meta, appId, eventId, 'OPERATE_EQUAL', nodeType, true, '');
1355
1411
  }
1356
1412
  }
1357
1413
  const formula = item.formula || {};
@@ -1372,14 +1428,22 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
1372
1428
  const targetFormId = String((nodeData.targetForm || {}).id || '');
1373
1429
  autoFillDetailMapping(eleData, item, targetFormId, meta, appId, eventId, nodeType);
1374
1430
  ele.data = eleData;
1375
- if (item.deleteFields)
1376
- ele.deleteFields = item.deleteFields;
1431
+ ele.deleteFields = Array.isArray(item.deleteFields) ? item.deleteFields : [];
1432
+ // EsbDetailForm 的明细操作值来自 ActionEbDlg:add/update/updateAdd/cover/delete/default。
1433
+ // ActionEbAdd 没有明细操作选择器,不能写入不存在的 "insert";缺省操作由 ADD
1434
+ // 组件按新增明细处理。ActionEbUpdate 则保留用户明确选择的策略。
1377
1435
  if (item.operateType)
1378
- ele.operateType = item.operateType;
1379
- else
1436
+ ele.operateType = String(item.operateType);
1437
+ else if (nodeType !== 'ActionEbAdd' && nodeType !== 'ActionEbUpdate')
1380
1438
  ele.operateType = 'insert';
1381
- if (item.updateFieldCondition && typeof item.updateFieldCondition === 'object')
1382
- ele.updateFieldCondition = item.updateFieldCondition;
1439
+ if (item.updateType)
1440
+ ele.updateType = String(item.updateType);
1441
+ if (item.updatePolicy !== undefined && item.updatePolicy !== null && item.updatePolicy !== '') {
1442
+ ele.updatePolicy = String(item.updatePolicy);
1443
+ }
1444
+ if (item.rowId !== undefined && item.rowId !== null && item.rowId !== '') {
1445
+ ele.rowId = buildDetailRowId(item.rowId, meta, appId, String(eventId), nodeType);
1446
+ }
1383
1447
  detailOut.push(ele);
1384
1448
  }
1385
1449
  if (detailOut.length)
@@ -1815,20 +1879,25 @@ export function convert(draft, appId = '', sceneId = '', metadataPath = '', leni
1815
1879
  meta = JSON.parse(fs.readFileSync(metadataPath, 'utf-8'));
1816
1880
  if (!meta || typeof meta !== 'object')
1817
1881
  meta = {};
1882
+ let draftEvent = draft.event || {};
1883
+ let draftActions = draft.actions || [];
1818
1884
  meta._scene_id = String(sceneId || '');
1819
1885
  meta._http_response_fields = collectHttpResponseFields(draft.actions || []);
1820
1886
  meta._componentOptions = draft._componentOptions && typeof draft._componentOptions === 'object'
1821
1887
  ? draft._componentOptions
1822
1888
  : {};
1823
1889
  meta._function_registry = Array.isArray(draft._functionRegistry) ? draft._functionRegistry : undefined;
1824
- let draftEvent = draft.event || {};
1825
- let draftActions = draft.actions || [];
1890
+ // 事件上下文来源对所有事件类型都有效;CustomTrigger 没有 workflowId,
1891
+ // 不能等到 workflowId 分支里再设置,否则其字段公式会被误判为 ApprovalData。
1826
1892
  const lenientWarnings = [];
1827
1893
  if ('resolvedPlan' in draft) {
1828
1894
  const rp = draft.resolvedPlan;
1829
1895
  draftEvent = rp.event || {};
1830
1896
  draftActions = rp.actions || [];
1831
1897
  }
1898
+ // 事件上下文来源对所有事件类型都有效;CustomTrigger 没有 workflowId,
1899
+ // 不能等到 workflowId 分支里再设置,否则其字段公式会被误判为 ApprovalData。
1900
+ meta._upstream_component_type = String(draftEvent?.type || 'ApproveTrigger');
1832
1901
  const eventNode = convertNode(draftEvent, true, meta, appId);
1833
1902
  const eventId = eventNode.id;
1834
1903
  const eventName = String(eventNode.attr?.componentName || eventNode.data?.typeName || eventNode.name || '流程触发');
@@ -1873,7 +1942,6 @@ export function convert(draft, appId = '', sceneId = '', metadataPath = '', leni
1873
1942
  eventFormId = workflowId;
1874
1943
  }
1875
1944
  meta._event_form_id = eventFormId;
1876
- meta._upstream_component_type = String(draftEvent?.type || 'ApproveTrigger');
1877
1945
  let wfName = '';
1878
1946
  if (Array.isArray(workflowPath) && workflowPath.length && workflowPath[0] && typeof workflowPath[0] === 'object')
1879
1947
  wfName = String(workflowPath[0].name || workflowPath[0].text || '');