@gct-paas/excel 0.1.39-beta.4 → 0.1.39-beta.41

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 (128) hide show
  1. package/dist/{BaseComponent-B8_qg2he.js → BaseComponent-hWfUDepU.js} +2 -2
  2. package/dist/{VueVideoPlayer-B-X9Kvhp.js → VueVideoPlayer-CTtss6-e.js} +2 -2
  3. package/dist/{align-editor-1IbAiPBg.js → align-editor-0EJDQ9xk.js} +1 -1
  4. package/dist/{barcode-design-DCm1U-OU.js → barcode-design-CH7C0nTV.js} +2 -2
  5. package/dist/base/index.es.js +545 -244
  6. package/dist/{diagonal-design-DBk2s8UD.js → diagonal-design-CKLfmzt9.js} +2 -2
  7. package/dist/{dynamic-table-action-JSevwsex.js → dynamic-table-action-Dhx1ZQSa.js} +948 -303
  8. package/dist/{dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-ClcBVLO0.js → dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-vRTNdchM.js} +636 -1140
  9. package/dist/{edit.utils-CXmmCnxE-88-QvdIv.js → edit.utils-CXmmCnxE-Cj0XviBc.js} +1 -1
  10. package/dist/excel.css +589 -338
  11. package/dist/{exceljs.min-M28cAz_z.js → exceljs.min-BNsMIPFn.js} +2 -2
  12. package/dist/{font-editor-nCQk5D1K.js → font-editor-CHZPtUHX.js} +3 -3
  13. package/dist/{image-design-B84grap7.js → image-design-AOi1nT_M.js} +2 -2
  14. package/dist/{index-jRA6sXVY.js → index-2SyQ6xAT.js} +1 -1
  15. package/dist/{index-UCNknVxk.js → index-B1JboJFx.js} +1 -1
  16. package/dist/{index-DEl0sxMk.js → index-B863k7Jl.js} +6 -5
  17. package/dist/{index-_-ORWa-m.js → index-BFhX3ACB.js} +1 -1
  18. package/dist/{index-CGsTW2E9.js → index-BNKKUueq.js} +2 -2
  19. package/dist/{index-ZEwe0MJj.js → index-BTr11l_g.js} +2 -2
  20. package/dist/{index-DPOE78Jf.js → index-BVSnhxY1.js} +2 -2
  21. package/dist/{index-I2HpU1BP.js → index-BZPA_AiO.js} +3 -3
  22. package/dist/{index-ChncMTkv.js → index-BeFJ_RCt.js} +1 -1
  23. package/dist/{index-DEN3-esb.js → index-BfIS3NOa.js} +6 -3
  24. package/dist/{index-BSXafKJS.js → index-BgV92L3Y.js} +2 -2
  25. package/dist/{index-CCsNdL4I.js → index-Bj3c4vZy.js} +2 -2
  26. package/dist/{index-CBiaZr1j.js → index-Bua1ArJ5.js} +2 -2
  27. package/dist/{index-BrkoN2-J.js → index-CDRNOYDd.js} +6 -5
  28. package/dist/{index-D0Q-6EtG.js → index-CDhZoiEf.js} +1 -1
  29. package/dist/{index-CCp6-NXH.js → index-C__SKZMl.js} +3 -3
  30. package/dist/{index-tZd-Us4e.js → index-Ca0fy776.js} +2 -2
  31. package/dist/{index-CKWcaJGI.js → index-CbXJ1XDJ.js} +5 -7
  32. package/dist/{index-CUHfI8cg.js → index-Cfe2Q-hG.js} +1 -1
  33. package/dist/{index-H_BLk7PI.js → index-CfvZdYSY.js} +2 -2
  34. package/dist/{index-Co1E4H0G.js → index-CiqInN9G.js} +2 -2
  35. package/dist/{index-CX6LqGJP.js → index-Cld2wf77.js} +1 -1
  36. package/dist/{index-D7IBmbmp.js → index-Cy4bHDfG.js} +2 -2
  37. package/dist/{index-bfXiwTE7.js → index-D1bE-oJR.js} +2047 -1745
  38. package/dist/{index-DT87VrvR.js → index-D7kir0tU.js} +2 -2
  39. package/dist/{index-B53fgzJo.js → index-DR6T7C4O.js} +2 -2
  40. package/dist/{index-DCzL4GOP.js → index-DThgFjEo.js} +53 -5
  41. package/dist/{index-BvJ7ZgvI.js → index-DnM4LcB4.js} +2 -2
  42. package/dist/{index-DkvjFyW6.js → index-DnOwWeey.js} +2 -2
  43. package/dist/{index-wcY1RYL_.js → index-ICNCCzD2.js} +2 -2
  44. package/dist/{index-CFjE5779.js → index-LVofttI7.js} +3 -2
  45. package/dist/{index-Doz8Gf_5.js → index-SXIZsVts.js} +1 -1
  46. package/dist/{index-XBuNXPu0.js → index-cnZ4ogvg.js} +2 -2
  47. package/dist/{index-DHHyy4mL.js → index-n97S5YRD.js} +1 -1
  48. package/dist/{index-MJFci9IB.js → index-nl7I1bLi.js} +1 -1
  49. package/dist/index.es.js +2 -2
  50. package/dist/{mb-render-BZDgmpm9.js → mb-render-FUO_-FXR.js} +9 -3
  51. package/dist/{online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-Ciue53Ue.js → online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-DOYhOffQ.js} +8 -1
  52. package/dist/{pagination-design-BYqVZGdA.js → pagination-design-BjxLbj93.js} +2 -2
  53. package/dist/paper-widget-design-Cy2MxlCk.js +4 -0
  54. package/dist/{print-runtime-instance-D3BJGzia.js → print-runtime-instance-THb92xUW.js} +1 -1
  55. package/dist/{print-snapshot-renderer-MzkjvlA8.js → print-snapshot-renderer-4jQFaAjJ.js} +3 -3
  56. package/dist/{qrcode-design-B0YGEijA.js → qrcode-design-DM9kEawx.js} +1 -1
  57. package/dist/{revo-grid.entry-DdE6cuGJ.js → revo-grid.entry-DKvA7bUR.js} +1 -1
  58. package/dist/{revogr-attribution_7.entry-Er1fVrov.js → revogr-attribution_7.entry-C2PtJ_Tj.js} +3 -3
  59. package/dist/{revogr-clipboard_3.entry-COq2SN-B.js → revogr-clipboard_3.entry-BM7_JY0U.js} +2 -2
  60. package/dist/{revogr-data_4.entry--CfGDdVK.js → revogr-data_4.entry-CdMQPL7I.js} +2 -2
  61. package/dist/{revogr-filter-panel.entry-DoNXkBy6.js → revogr-filter-panel.entry-BJiGVhcw.js} +1 -1
  62. package/dist/seal-design-C5P3oQIa.js +4 -0
  63. package/dist/{serialnumber-design-fMRSi9jn.js → serialnumber-design-QaDIsxYT.js} +1 -1
  64. package/dist/shared/index.es.js +23 -21
  65. package/dist/{single-field-drop-BycxT2Kf.js → single-field-drop-BAiIyb2u.js} +2 -2
  66. package/dist/{size-editor-BKJfYgbR.js → size-editor-BV0KrQ37.js} +1 -1
  67. package/dist/src/domain/table/business/material/material-balance/profile/fields.d.ts +2 -0
  68. package/dist/src/domain/table/business/preprocess/pretreatment-list/profile/field-keys.d.ts +1 -7
  69. package/dist/src/domain/table/business/sterilize/entrust-steril-batch-list/profile/fields.d.ts +2 -0
  70. package/dist/src/nocode-base/src/core/sub-table/allocate-table-core.d.ts +2 -1
  71. package/dist/src/nocode-base/src/core/sub-table/sub-table-core.d.ts +2 -1
  72. package/dist/src/nocode-base/src/hooks/form-model/form-model-controller.d.ts +2 -0
  73. package/dist/src/nocode-base/src/hooks/material-consume/material-consume-table-controller.d.ts +1 -0
  74. package/dist/src/nocode-base/src/hooks/material-consume/tmpl-bom-controller.d.ts +12 -7
  75. package/dist/src/nocode-base/src/hooks/material-consume-object/bom-validator.d.ts +4 -3
  76. package/dist/src/nocode-base/src/hooks/material-consume-object/initialize-autofill.d.ts +19 -0
  77. package/dist/src/nocode-base/src/hooks/material-consume-object/object-validation-controller.d.ts +24 -0
  78. package/dist/src/nocode-base/src/interface/render.d.ts +3 -1
  79. package/dist/src/nocode-base/src/interface/transform.d.ts +9 -1
  80. package/dist/src/nocode-base/src/runtime/async-task-coordinator.d.ts +6 -2
  81. package/dist/src/nocode-base/src/runtime/multi-sheet-runtime.d.ts +3 -1
  82. package/dist/src/nocode-base/src/runtime/runtime-context.d.ts +4 -0
  83. package/dist/src/nocode-base/src/runtime/runtime-field-initializer.d.ts +1 -1
  84. package/dist/src/nocode-base/src/runtime/runtime-validation-service.d.ts +1 -0
  85. package/dist/src/nocode-base/src/types/render/mc-render.d.ts +1 -1
  86. package/dist/src/nocode-base/src/types/render/sub-table-render.d.ts +5 -1
  87. package/dist/src/nocode-web-render/src/render/sub-table/common/inventory-scan-columns.d.ts +6 -0
  88. package/dist/src/nocode-web-render/src/render/sub-table/material-consume/mc-web-render.d.ts +1 -1
  89. package/dist/src/online-form/src/views/__cell_widgets__/cell-widget-design.vue.d.ts +1 -0
  90. package/dist/src/online-form/src/views/__cell_widgets__/common/display-fields-editor/display-fields.util.d.ts +2 -2
  91. package/dist/src/online-form/src/views/__cell_widgets__/common/quick-search-editor/quick-search.util.d.ts +8 -0
  92. package/dist/src/online-form/src/views/__cell_widgets__/fake-field/fake-option-select.vue.d.ts +1 -0
  93. package/dist/src/online-form/src/views/designer/conversions/normalize-paper-grid.d.ts +3 -0
  94. package/dist/src/online-form/src/views/designer/hooks/useAllSpreadSheets.d.ts +11 -0
  95. package/dist/src/online-form/src/views/designer/modules/base/designer-wrapper.vue.d.ts +1 -0
  96. package/dist/src/online-form/src/views/designer/modules/duplicate-field-notice.vue.d.ts +2 -0
  97. package/dist/src/online-form/src/views/designer/modules/xlsx-import-summary.vue.d.ts +11 -0
  98. package/dist/src/online-form/src/views/designer/types/sheets.d.ts +2 -0
  99. package/dist/src/online-form/src/views/designer/utils/cell-field-placements.d.ts +12 -0
  100. package/dist/src/online-form/src/views/designer/utils/xlsx-parser.d.ts +9 -3
  101. package/dist/src/online-form/src/views/render/__components__/_field_/trace/utils/use-rule-props.d.ts +0 -3
  102. package/dist/src/shared/enum/field-type.d.ts +2 -0
  103. package/dist/src/shared/enum/index.d.ts +2 -0
  104. package/dist/src/shared/enum/product-type.d.ts +9 -0
  105. package/dist/src/shared/enum/production-identification.d.ts +19 -0
  106. package/dist/src/shared/utils/cell-wrap.d.ts +9 -0
  107. package/dist/src/shared/utils/grid-size.d.ts +2 -0
  108. package/dist/{sub-table-factory-BxG7QiiX.js → sub-table-factory-_mm1iwau.js} +19 -7
  109. package/dist/{text-design-BQKYk7aD.js → text-design-DfdH_3_b.js} +5 -4
  110. package/dist/{throttle-Cpk1LoGk-BI0wP2Le.js → throttle-Cpk1LoGk-HQvkISS4.js} +1 -1
  111. package/dist/{timediff-design-O1IfzLVD.js → timediff-design-CKjl56qS.js} +1 -1
  112. package/dist/{trace-like-wrapper-CdKGpstE.js → trace-like-wrapper-D6lJ8e-H.js} +5 -2
  113. package/dist/{value-editor.vue_vue_type_style_index_0_lang-CCv0wmKI.js → value-editor.vue_vue_type_style_index_0_lang-BmQGrlz8.js} +2 -2
  114. package/dist/web-render/index.es.js +3 -3
  115. package/dist/{widget-barcode-CK68yjvd.js → widget-barcode-By9P2d-R.js} +4 -4
  116. package/dist/{widget-diagonal-9F-6feRM.js → widget-diagonal-DMNfA-Tt.js} +3 -3
  117. package/dist/{widget-image-2GcRCaIf.js → widget-image-YM9YaMb-.js} +5 -5
  118. package/dist/{widget-line-flwy9kew.js → widget-line-Dl3TIfBO.js} +2 -2
  119. package/dist/{widget-pagination-pxpEH1UB.js → widget-pagination-9XxvQDIw.js} +5 -5
  120. package/dist/{widget-power-pFQ7lwCW.js → widget-power-A96VVJDG.js} +3 -3
  121. package/dist/{widget-qrcode-D_Ri0RG2.js → widget-qrcode-DWseHVIM.js} +3 -3
  122. package/dist/{widget-rangelimit-DB97heRc.js → widget-rangelimit-DK8oOmC_.js} +3 -3
  123. package/dist/{widget-serialnumber-I35Sov0R.js → widget-serialnumber-pue8WfA9.js} +1 -1
  124. package/dist/{widget-text-C93W0WWM.js → widget-text-B9O9UYK7.js} +5 -5
  125. package/dist/{widget-timediff-S4X81H7c.js → widget-timediff-PwNxXBrF.js} +2 -2
  126. package/package.json +2 -2
  127. package/dist/paper-widget-design-BcSUNaAF.js +0 -4
  128. package/dist/seal-design-CHOawN-k.js +0 -4
@@ -1,13 +1,13 @@
1
- import { E as api, $ as PlatformEnum, F as FIELD_TYPE, bi as getRowId, bj as findRuntimeTableRow, b8 as RenderModeEnum, C as ComponentTypeEnum, bv as assembleRules, bw as isAttachFieldActive, aI as Dependency_ENUM, bk as calculateFormula, aH as ASSIGNMENTSTRATEGY_ENUM, R as getParseFormulaVarInfos, bx as fetchHistoryConsume, by as isBomGranted, aW as renderUtils, bu as uuid2, bz as parseFrontConfig, aL as CheckDsTypeEnum, aF as transformUtils, bA as baseDataUtils, bB as initializeSealFields, Y as FormTypeEnum, bC as normalizeToArray, bD as safeParseArray, bE as BpmnNodeTypeEnum, bF as mergeByMultiKey, a8 as _export_sfc, bG as evaluateInspectionDecisionRule, bH as areValidationCommentsEqual, bI as useNocodeEmitter, bJ as commonUtils, aJ as EntityModelCategoryEnum } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-ClcBVLO0.js";
2
- import { aO, aQ, a$, a1, bK, bL, B, bM, y, ai, bN, bO, bP, bh, bQ, aT, ay, aP, aM, aN, bR, aj, an, bS, bT, aG, a3, ah, az, aR, a0, al, L, bU, bV, bW, O, p, P, aa, o, Q, A, bX, bY, ax, aw, a6, a2, a4, a5, a7, f, bZ, am, aq, ak, b_, b$, c0, c1, bg, c2, c3, c4, c5, c6, c7, c8, c9, ca, cb, bl, cc, cd, aZ, ce, b0, b1, cf, cg, ch, ci, cj, ck, cl, cm, cn, co, aY, cp, b2, be, cq, cr, cs, ao, t, aS, ct, cu, bm, a_ } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-ClcBVLO0.js";
3
- import { P as getRuntimeDataFieldId, z as parseRuntimeFieldPath, Q as buildRuntimeFieldPath, T as resolveRuntimeFieldProps, U as resolveRuntimeFieldState, V as getRuntimeDependencyOutputKey, W as isRowAddedInCurrentFormChange, o as MaterialConsumptionPatternEnum, X as MaterialConsumeTableController, Y as setFormulaParamsConfig, Z as normalizeRuntime, H as createRuntimeInstanceContext, R as RuntimeFormStateStore, $ as RuntimeSheetService, g as getBusinessFieldKey, a0 as validateObjectBomQtyOnSubmit, a1 as closeValidatorPopovers, a2 as enrichFormChangeRowDetails, N as NCB_PROVIDE, I as RuntimeInstanceRegistry, a3 as useMaterialBalance, a4 as collectFormChangeFieldLocations, a5 as nextFormChangeRowViewHistoryId } from "../dynamic-table-action-JSevwsex.js";
4
- import { B as B2, a6 as a62, e, _, a7 as a72, L as L2, a8, O as O2, E, a9, aa as aa2, ab, ac, ad, M, a, ae, b, af, ag, ah as ah2, ai as ai2, aj as aj2, ak as ak2, al as al2, am as am2, w, an as an2, m, ao as ao2, c, ap, aq as aq2, ar, as, l, x, at, au, av, aw as aw2, f as f2, y as y2, d, ax as ax2, ay as ay2, az as az2, aA, aB, aC, p as p2, r, aD, q, j, aE, s, aF, C, F, u, t as t2, G, i, k, A as A2, h, v } from "../dynamic-table-action-JSevwsex.js";
1
+ import { E as api, _ as PlatformEnum, F as FIELD_TYPE, bb as getRowId, bc as findRuntimeTableRow, b4 as RenderModeEnum, C as ComponentTypeEnum, aF as Dependency_ENUM, aE as ASSIGNMENTSTRATEGY_ENUM, bm as fetchHistoryConsume, bn as isBomGranted, aT as renderUtils, bl as uuid2, bo as parseFrontConfig, aI as CheckDsTypeEnum, aC as transformUtils, bp as baseDataUtils, X as FormTypeEnum, bq as normalizeToArray, br as safeParseArray, bs as BpmnNodeTypeEnum, bt as mergeByMultiKey, a7 as _export_sfc, bu as evaluateInspectionDecisionRule, bv as useNocodeEmitter, bw as commonUtils, aG as EntityModelCategoryEnum } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-vRTNdchM.js";
2
+ import { aL, aN, aZ, a0, bx, by, B, bz, y, af, bA, bB, bC, ba, bD, aQ, av, aM, aJ, aK, bE, ag, ak, bF, bG, aD, a2, ae, aw, aO, $, ai, L, bH, bI, bJ, O, p, P, a9, o, Q, A, bK, bL, au, at, a5, a1, a3, a4, a6, f, bM, aj, an, ah, bN, bO, bP, bQ, b9, bR, bS, bT, bU, bV, bW, bX, bY, bZ, b_, bd, b$, c0, aW, c1, a_, a$, c2, c3, c4, c5, c6, c7, c8, c9, ca, cb, aV, cc, b0, b7, cd, ce, al, t, aP, cf, cg, be, aX } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-vRTNdchM.js";
3
+ import { a2 as getRuntimeDataFieldId, O as parseRuntimeFieldPath, a3 as buildRuntimeFieldPath, a4 as resolveRuntimeFieldProps, a5 as resolveRuntimeFieldState, a6 as assembleRules, a7 as isAttachFieldActive, P as calculateFormula, a8 as getRuntimeDependencyOutputKey, a9 as isRowAddedInCurrentFormChange, c as getParseFormulaVarInfos, w as MaterialConsumptionPatternEnum, aa as MaterialConsumeTableController, ab as setFormulaParamsConfig, ac as normalizeRuntime, V as createRuntimeInstanceContext, ad as initializeSealFields, U as RuntimeFormStateStore, ae as RuntimeSheetService, g as getBusinessFieldKey, af as validateObjectBomQtyOnSubmit, ag as areValidationCommentsEqual, ah as closeValidatorPopovers, ai as enrichFormChangeRowDetails, N as NCB_PROVIDE, W as RuntimeInstanceRegistry, aj as useMaterialBalance, ak as collectFormChangeFieldLocations, al as nextFormChangeRowViewHistoryId } from "../dynamic-table-action-Dhx1ZQSa.js";
4
+ import { B as B2, am, k, a1 as a12, an as an2, $ as $2, ao, a0 as a02, F, ap, aq, ar, as, at as at2, M, a, au as au2, b, av as av2, aw as aw2, ax, ay, az, aA, aB, aC, C, aD as aD2, t as t2, aE, d, aF, aG, aH, aI, r, E, aJ as aJ2, aK as aK2, aL as aL2, aM as aM2, l, G, j, aN as aN2, aO as aO2, aP as aP2, aQ as aQ2, aR, aS, aT, y as y2, v, aU, z, p as p2, aV as aV2, s, aW as aW2, R, S, u, A as A2, T, o as o2, q, Q as Q2, m, x } from "../dynamic-table-action-Dhx1ZQSa.js";
5
5
  import { toRaw, watch, toRef, computed, defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, ref, provide, onUnmounted, markRaw, reactive, onBeforeUnmount } from "vue";
6
6
  import { cloneDeep, defaults, isEmpty, merge } from "lodash-es";
7
7
  import "dayjs";
8
- import { S as SubTableCoreFactory, R as RuntimeInstanceController } from "../sub-table-factory-BxG7QiiX.js";
9
- import { A as A3, D, M as M2, a as a10, P as P2, b as b3, c as c10, d as d2, e as e2, W, f as f3, g, h as h2 } from "../sub-table-factory-BxG7QiiX.js";
10
- import { B as B3, F as F2, M as M3, a as a11, u as u2 } from "../mb-render-BZDgmpm9.js";
8
+ import { S as SubTableCoreFactory, R as RuntimeInstanceController } from "../sub-table-factory-_mm1iwau.js";
9
+ import { A as A3, D, M as M2, a as a7, P as P2, b as b2, c, d as d2, e, W, f as f2, g, h } from "../sub-table-factory-_mm1iwau.js";
10
+ import { B as B3, F as F2, M as M3, a as a8, u as u2 } from "../mb-render-FUO_-FXR.js";
11
11
  const InstanceStatusValues = {
12
12
  /** 作废状态 */
13
13
  ABANDON: "ABANDON",
@@ -190,7 +190,7 @@ class RuntimeFieldInitializer {
190
190
  await Promise.resolve();
191
191
  this.scheduled = false;
192
192
  if (!signal.aborted && !this.disposed) await this.initialize();
193
- }).catch((error) => console.error("业务字段初始化失败", error)).finally(() => this.tasks.delete("initialize:structure"));
193
+ }).catch(() => void 0).finally(() => this.tasks.delete("initialize:structure"));
194
194
  });
195
195
  }
196
196
  record;
@@ -203,7 +203,7 @@ class RuntimeFieldInitializer {
203
203
  disposed = false;
204
204
  scheduled = false;
205
205
  unsubscribe;
206
- /** 初次加载等待全部目标;失败保留在任务中心,不能把未完成的默认值当成可提交数据。 */
206
+ /** 初次加载等待全部目标;默认值请求失败保留在任务中心供诊断,但不阻止提交。 */
207
207
  async initialize() {
208
208
  if (this.disposed || this.info.renderPurpose || this.info.platformType === PlatformEnum.INTEGRATION_PAAS_DP)
209
209
  return;
@@ -247,7 +247,8 @@ class RuntimeFieldInitializer {
247
247
  modelKey: props.modelKey,
248
248
  subModelKey: props.subModelKey
249
249
  },
250
- sheetId
250
+ sheetId,
251
+ blockOnFailure: false
251
252
  }
252
253
  ).finally(() => this.tasks.delete(key));
253
254
  pending.push(task);
@@ -259,7 +260,7 @@ class RuntimeFieldInitializer {
259
260
  this.record.asyncTasks.cancel(key);
260
261
  this.tasks.delete(key);
261
262
  }
262
- await Promise.all(pending);
263
+ await Promise.allSettled(pending);
263
264
  }
264
265
  request(key, fetch) {
265
266
  const existing = this.requests.get(key);
@@ -805,6 +806,10 @@ class FormTmplBomController {
805
806
  field2TableMap = {};
806
807
  /** 默认物料消耗模式 */
807
808
  defaultMCPattern = MaterialConsumptionPatternEnum.RECORD;
809
+ /** 表单实例身份与 BOM 数据是否存在无关,模板展示也会创建完整控制器。 */
810
+ hasFormInstance = false;
811
+ /** 按页面中的表解析后的配置,页面与打印共用。 */
812
+ resolvedTmplBomList = [];
808
813
  constructor() {
809
814
  }
810
815
  /**
@@ -822,7 +827,9 @@ class FormTmplBomController {
822
827
  productQty: this.productQty,
823
828
  historyData: this.historyData,
824
829
  field2TableMap: this.field2TableMap,
825
- defaultMCPattern: this.defaultMCPattern
830
+ defaultMCPattern: this.defaultMCPattern,
831
+ hasFormInstance: this.hasFormInstance,
832
+ resolvedTmplBomList: this.resolvedTmplBomList
826
833
  })
827
834
  );
828
835
  (view.tmplBomList ?? []).forEach((config) => {
@@ -874,11 +881,11 @@ class FormTmplBomController {
874
881
  * @readonly
875
882
  */
876
883
  get bomEntries() {
877
- return this.formInstBom?.bomEntries;
884
+ return this.formInstBom?.bomEntries ?? [];
878
885
  }
879
886
  /** 表单模板bom信息配置列表 */
880
887
  get tmplBomList() {
881
- return this.formInstBom?.formTmplBomList;
888
+ return this.resolvedTmplBomList;
882
889
  }
883
890
  /**
884
891
  * bom那边指定的当前工序的开关
@@ -887,30 +894,55 @@ class FormTmplBomController {
887
894
  get enableSequenceLoading() {
888
895
  return !!this.formInstBom?.sequenceEntries?.[0]?.enabled_;
889
896
  }
890
- /**
891
- * 初始化模板的物料消耗的配置
892
- */
897
+ createDefaultConfig(table) {
898
+ return {
899
+ table_key_: `${table.tableKey}:${table.masterSubField}`,
900
+ material_loading_model_enabled_: false,
901
+ material_consumption_pattern_: MaterialConsumptionPatternEnum.RECORD,
902
+ bom_init_enabled_: false,
903
+ personal_bom_enabled_: false,
904
+ sequence_loading_enabled_: false,
905
+ entries_: []
906
+ };
907
+ }
908
+ /** 有实例时读取实例配置,无实例时仅创建默认展示控制器。 */
893
909
  async init(data) {
894
- if (!data.formInstBom) {
895
- return;
910
+ this.hasFormInstance = data.hasFormInstance;
911
+ this.operationId = data.operationId ?? "";
912
+ this.materialNo = data.materialNo ?? "";
913
+ this.formInstBom = this.hasFormInstance ? data.formInstBom ?? null : null;
914
+ this.productQty = this.formInstBom ? data.productQty ?? 0 : data.productQty;
915
+ this.historyData = [];
916
+ this.defaultMCPattern = MaterialConsumptionPatternEnum.RECORD;
917
+ this.tableControllers = {};
918
+ this.field2TableMap = {};
919
+ const instanceConfigs = new Map(
920
+ (this.formInstBom?.formTmplBomList ?? []).filter((config) => !config.deleted_ && config.table_key_).map((config) => [config.table_key_, config])
921
+ );
922
+ this.resolvedTmplBomList = data.materialConsumeTableList.map((table) => {
923
+ const key = `${table.tableKey}:${table.masterSubField}`;
924
+ const source = instanceConfigs.get(key);
925
+ if (!source) return this.createDefaultConfig(table);
926
+ const config = cloneDeep(source);
927
+ config.entries_ ??= [];
928
+ return config;
929
+ });
930
+ if (this.formInstBom) {
931
+ if (this.formInstBom.productionIdentificationId && this.operationId) {
932
+ this.historyData = await fetchHistoryConsume({
933
+ production_identification_id_: this.formInstBom.productionIdentificationId,
934
+ routing_operation_id_: this.operationId
935
+ });
936
+ }
937
+ const isGranted = await isBomGranted();
938
+ this.defaultMCPattern = isGranted ? MaterialConsumptionPatternEnum.BOM : MaterialConsumptionPatternEnum.RECORD;
896
939
  }
897
- this.operationId = data.operationId;
898
- this.materialNo = data.materialNo;
899
- this.formInstBom = data.formInstBom;
900
- this.productQty = data.productQty ?? 0;
901
- this.historyData = await fetchHistoryConsume({
902
- production_identification_id_: this.formInstBom.productionIdentificationId,
903
- routing_operation_id_: this.operationId
940
+ data.materialConsumeTableList.forEach((table, index) => {
941
+ const config = this.resolvedTmplBomList[index];
942
+ const controller = new MaterialConsumeTableController(this, config);
943
+ this.tableControllers[table.tableKey] = controller;
944
+ this.field2TableMap[table.masterSubField] = table.tableKey;
904
945
  });
905
- const isGranted = await isBomGranted();
906
- this.defaultMCPattern = isGranted ? MaterialConsumptionPatternEnum.BOM : MaterialConsumptionPatternEnum.RECORD;
907
- this.tableControllers = {};
908
- this.tmplBomList.forEach((cur) => {
909
- const controller = new MaterialConsumeTableController(this, cur);
910
- const [tableKey, fieldKey] = cur.table_key_.split(":");
911
- this.tableControllers[tableKey] = controller;
912
- this.field2TableMap[fieldKey] = tableKey;
913
- }, {});
914
946
  }
915
947
  /**
916
948
  * 根据字段key获取子表控制器
@@ -957,7 +989,7 @@ class FormTmplBomController {
957
989
  }
958
990
  async submitValidate() {
959
991
  const results = await Promise.all(
960
- Object.values(this.tableControllers).map((c11) => c11.submitValidate())
992
+ Object.values(this.tableControllers).map((c10) => c10.submitValidate())
961
993
  );
962
994
  const fields = {};
963
995
  let isValid = true;
@@ -971,6 +1003,79 @@ class FormTmplBomController {
971
1003
  };
972
1004
  }
973
1005
  }
1006
+ async function prepareObjectProductDefaults({
1007
+ enabled,
1008
+ fields,
1009
+ objectInitialValues = [],
1010
+ onWarning
1011
+ }) {
1012
+ const defaults2 = /* @__PURE__ */ new WeakMap();
1013
+ if (!enabled) return defaults2;
1014
+ const requests = /* @__PURE__ */ new Map();
1015
+ const tasks = [];
1016
+ function fetchProduct(productId) {
1017
+ const existing = requests.get(productId);
1018
+ if (existing) return existing;
1019
+ const request = (async () => {
1020
+ const result = await api.apaas.modelComprehensive.getBizServiceModelCategoryModelKeyBsKey(
1021
+ {
1022
+ modelCategory: "entity",
1023
+ modelKey: "em_product",
1024
+ bsKey: "rdoGetVersionById"
1025
+ },
1026
+ // 沿用现有接口约定,传完整默认值,不拆分版本 ID。
1027
+ { id: productId }
1028
+ );
1029
+ const product = result?.data;
1030
+ if (!product || typeof product !== "object" || Array.isArray(product) || Object.keys(product).length === 0) {
1031
+ return void 0;
1032
+ }
1033
+ return { ...product, _DICT: result?.dict ?? product._DICT };
1034
+ })();
1035
+ requests.set(productId, request);
1036
+ return request;
1037
+ }
1038
+ for (const entry of fields) {
1039
+ if (!entry || typeof entry !== "object") continue;
1040
+ const field = entry;
1041
+ if (typeof field.fieldId !== "string" || !field.belongingObject || field.fieldType !== FIELD_TYPE.PRODUCT || field.isFieldModel || field.subFieldKey || field.subModelKey) {
1042
+ continue;
1043
+ }
1044
+ const configured = objectInitialValues.find(
1045
+ (item) => item.objectField === field.belongingObject
1046
+ );
1047
+ if (!configured?.values || !Object.prototype.hasOwnProperty.call(configured.values, field.fieldId)) {
1048
+ continue;
1049
+ }
1050
+ const productDefault = {
1051
+ value: configured.values[field.fieldId]
1052
+ };
1053
+ defaults2.set(entry, productDefault);
1054
+ const productId = productDefault.value;
1055
+ const needsAutofill = field.enableAutofill !== false && field.autofillRules?.some((rule) => !!rule.toField);
1056
+ if (!needsAutofill || typeof productId !== "string" || productId === "") continue;
1057
+ tasks.push(
1058
+ fetchProduct(productId).then(
1059
+ (sourceData) => {
1060
+ if (!sourceData) {
1061
+ const objectName = configured.objectFieldName || field.belongingObject;
1062
+ onWarning?.(
1063
+ `「数据 → 对象初始化 → ${objectName} → 配置」中的默认物料未查到详情(字段 ${field.fieldId},物料 ${productId}),已跳过自动填充。`
1064
+ );
1065
+ return;
1066
+ }
1067
+ productDefault.sourceData = sourceData;
1068
+ },
1069
+ (error) => {
1070
+ const reason = error instanceof Error ? error.message : String(error);
1071
+ throw new Error(`对象初始化数据填充失败,字段 ${field.fieldId}:${reason}`);
1072
+ }
1073
+ )
1074
+ );
1075
+ }
1076
+ await Promise.all(tasks);
1077
+ return defaults2;
1078
+ }
974
1079
  async function getModelQueries(opts) {
975
1080
  const isEdhr = await isEdhrSuite();
976
1081
  if (!isEdhr || !opts.mainMaterialNo) {
@@ -1115,13 +1220,14 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
1115
1220
  let runtimeFormStateStore;
1116
1221
  let scriptRunner;
1117
1222
  try {
1118
- const normalizedRuntime = normalizeRuntime(selfInfo?.runtimeJson || "{}");
1223
+ const normalizedRuntime = normalizeRuntime(selfInfo?.runtimeJson || "{}", selfInfo.formType);
1119
1224
  const tid = result.tid;
1120
1225
  const uniqueId = `${tid}_${uuid2(8)}`;
1121
1226
  const runtimeContext = createRuntimeInstanceContext({
1122
1227
  uniqueId,
1123
1228
  instanceId: id,
1124
1229
  templateId: tid,
1230
+ formType: selfInfo.formType,
1125
1231
  runtime: normalizedRuntime,
1126
1232
  defaultData: {}
1127
1233
  });
@@ -1263,6 +1369,8 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
1263
1369
  }
1264
1370
  await tmplBomC.init({
1265
1371
  formInstBom: selfInfo.formInstBom,
1372
+ materialConsumeTableList: businessIndex.materialConsumeTableList,
1373
+ hasFormInstance: isFormInstance,
1266
1374
  operationId: paramsConfig?.routingOperationId,
1267
1375
  materialNo,
1268
1376
  productQty: paramsConfig?.productQty
@@ -1334,7 +1442,16 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
1334
1442
  params: { id: paramsConfig?.warehouseId }
1335
1443
  }
1336
1444
  ]);
1445
+ const objectProductDefaults = await prepareObjectProductDefaults({
1446
+ enabled: fillModeType === RenderModeEnum.FormMode && selfInfo.dataStatus !== "STASH" && selfInfo.dataStatus !== "SUBMIT",
1447
+ fields: fieldInfoMap.useDefaultValueFields,
1448
+ objectInitialValues: runtimeContext.formConfig.objectInitialValues,
1449
+ onWarning: (content) => {
1450
+ window.NocodeAdapter.openUtil?.message({ type: "warning", content, duration: 8 });
1451
+ }
1452
+ });
1337
1453
  const defaultDataMap = renderUtils.getDefaultValueMapByField({
1454
+ objectProductDefaults,
1338
1455
  defaultValueFields: fieldInfoMap.useDefaultValueFields,
1339
1456
  mainMaterialNo: paramsConfig?.materialNo || selfInfo.materialNo,
1340
1457
  mainRelatedLotNo: paramsConfig?.relatedLotNo,
@@ -1424,6 +1541,15 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
1424
1541
  });
1425
1542
  initializeSealFields(floatingFields, formState);
1426
1543
  }
1544
+ await transformUtils.getEventInitDataLoaded({
1545
+ formConfig: runtimeContext.formConfig,
1546
+ formState,
1547
+ viewMode: fillModeType,
1548
+ dataStatus: selfInfo.dataStatus,
1549
+ ofCtx: { formPrint: payload.formPrint, id: result.id }
1550
+ }).catch((error) => {
1551
+ console.error("Error in getEventInitDataLoaded:", error);
1552
+ });
1427
1553
  runtimeFormStateStore = new RuntimeFormStateStore(
1428
1554
  formState,
1429
1555
  // 子表信息覆盖普通/固定/检验表、二维关联列以及各类业务表;不能只依赖已放置字段。
@@ -1542,6 +1668,18 @@ function bindRuntimeBusinessServices(runtimeRegistry, record, dataStatus) {
1542
1668
  uniqueId,
1543
1669
  () => MaterialConsumeTableController.render?.destroyAllModals(uniqueId)
1544
1670
  );
1671
+ runtimeRegistry.registerDisposable(
1672
+ uniqueId,
1673
+ watch(
1674
+ () => record.context.activeSheetId,
1675
+ (next, previous) => {
1676
+ if (next !== previous) {
1677
+ MaterialConsumeTableController.render?.destroyAllModals(uniqueId);
1678
+ }
1679
+ },
1680
+ { flush: "sync" }
1681
+ )
1682
+ );
1545
1683
  if (!mcList.length) return;
1546
1684
  const tmplBomC = record.context.services.tmplBomController;
1547
1685
  if (!tmplBomC) return;
@@ -1838,7 +1976,13 @@ function createRuntimePersistenceAccess(runtimeRegistry, props, payload) {
1838
1976
  const signatureKeys = (runtimeRecord.context.businessIndex.useSignatureFields || []).map(
1839
1977
  (item) => item.fieldId
1840
1978
  );
1841
- const idsFormState = transformUtils.getFormDataIdsMap(newFormState, signatureKeys);
1979
+ const idsFormState = transformUtils.getFormDataIdsMap(
1980
+ newFormState,
1981
+ signatureKeys,
1982
+ (path) => runtimeRecord.fields.findByPath(path).some(
1983
+ ({ widget, subFieldKey }) => subFieldKey !== path && [FIELD_TYPE.DATE, FIELD_TYPE.DATE_TIME].includes(widget?.props.fieldType)
1984
+ )
1985
+ );
1842
1986
  if (saveToken ? !runtimeRecord.persistence.completeSave(saveToken) : requestedRevision !== runtimeRecord.formState.revision) {
1843
1987
  return false;
1844
1988
  }
@@ -1915,6 +2059,139 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1915
2059
  }
1916
2060
  });
1917
2061
  const InspectionDecisionPromptModal = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-9c14035f"]]);
2062
+ function createMaterialConsumeObjectValidation(options) {
2063
+ const { record, getInfo, isCurrent, shouldSkip, applyComments } = options;
2064
+ let enabled = false;
2065
+ let disposed = false;
2066
+ let submitting = 0;
2067
+ let generation = 0;
2068
+ let lastRevision = -1;
2069
+ let timer;
2070
+ let paths = /* @__PURE__ */ new Set();
2071
+ const unlocated = /* @__PURE__ */ new Set();
2072
+ const alive = () => !disposed && isCurrent();
2073
+ function cancelLive() {
2074
+ generation++;
2075
+ if (timer !== void 0) clearTimeout(timer);
2076
+ timer = void 0;
2077
+ }
2078
+ function calcObjectError(error) {
2079
+ const info = getInfo();
2080
+ const modelKey = info?.modelKey || record.context.businessIndex.modelDisplay.key;
2081
+ const descriptor = record.fields.findField({ modelKey, fieldId: error.field });
2082
+ const props = descriptor?.widget?.props;
2083
+ if (!props?.field || descriptor?.subFieldKey || props.subFieldKey) {
2084
+ const key = modelKey + "." + error.field;
2085
+ if (!unlocated.has(key)) {
2086
+ unlocated.add(key);
2087
+ console.warn("物料消耗对象错误未定位到主表控件,保留在校验清单:", key);
2088
+ }
2089
+ return { error, path: void 0 };
2090
+ }
2091
+ const path = buildRuntimeFieldPath({
2092
+ ...props,
2093
+ modelKey: props.modelKey ?? info?.modelKey,
2094
+ fieldId: props.field
2095
+ });
2096
+ return { error: { ...error, field: path }, path };
2097
+ }
2098
+ function replaceObjectFields(fields) {
2099
+ if (!alive()) return;
2100
+ const next = { ...getInfo()?.mcValidatorMessageMap ?? {} };
2101
+ paths.forEach((path) => delete next[path]);
2102
+ Object.assign(next, fields);
2103
+ paths = new Set(Object.keys(fields));
2104
+ applyComments(next);
2105
+ }
2106
+ function replaceTableFields(fields) {
2107
+ if (!alive()) return;
2108
+ const current = getInfo()?.mcValidatorMessageMap ?? {};
2109
+ const next = { ...fields ?? {} };
2110
+ paths.forEach((path) => {
2111
+ if (current[path]) {
2112
+ next[path] = [...next[path] ?? [], ...current[path]];
2113
+ }
2114
+ });
2115
+ applyComments(next);
2116
+ }
2117
+ function clear() {
2118
+ cancelLive();
2119
+ enabled = false;
2120
+ lastRevision = -1;
2121
+ replaceObjectFields({});
2122
+ }
2123
+ async function validate(live = false) {
2124
+ cancelLive();
2125
+ if (!alive()) return;
2126
+ if (shouldSkip()) {
2127
+ clear();
2128
+ return { isValid: true };
2129
+ }
2130
+ const ticket = generation;
2131
+ const revision = record.formState.revision;
2132
+ const info = getInfo();
2133
+ const display = record.context.businessIndex.modelDisplay;
2134
+ const errors = await validateObjectBomQtyOnSubmit({
2135
+ formState: record.formState.state,
2136
+ objectFieldList: record.context.formConfig.objectFieldList,
2137
+ formInstBom: record.context.services.tmplBomController?.formInstBom,
2138
+ showModelName: display.name,
2139
+ showModelKey: display.key || info?.modelKey || ""
2140
+ });
2141
+ if (!alive() || generation !== ticket || record.formState.revision !== revision || live && getInfo()?.renderModeType !== RenderModeEnum.FormMode)
2142
+ return;
2143
+ const fields = {};
2144
+ const comments = {};
2145
+ for (const source of errors) {
2146
+ const adapted = calcObjectError(source);
2147
+ (fields[adapted.error.field] ??= []).push(adapted.error);
2148
+ if (adapted.path) (comments[adapted.path] ??= []).push(adapted.error);
2149
+ }
2150
+ enabled = !!record.context.formConfig.objectFieldList?.length;
2151
+ lastRevision = revision;
2152
+ replaceObjectFields(comments);
2153
+ return { isValid: !errors.length, fields: Object.keys(fields).length ? fields : void 0 };
2154
+ }
2155
+ function requestLive() {
2156
+ cancelLive();
2157
+ if (!alive() || !enabled || submitting > 0 || getInfo()?.renderModeType !== RenderModeEnum.FormMode)
2158
+ return;
2159
+ const ticket = generation;
2160
+ timer = setTimeout(() => {
2161
+ timer = void 0;
2162
+ void (async () => {
2163
+ await record.controller?.waitUntilPrepared();
2164
+ await record.asyncTasks.waitForRequired();
2165
+ if (!alive() || generation !== ticket || submitting > 0 || getInfo()?.renderModeType !== RenderModeEnum.FormMode)
2166
+ return;
2167
+ await validate(true);
2168
+ })().catch((error) => {
2169
+ if (alive()) console.error("物料消耗对象实时校验失败", error);
2170
+ });
2171
+ }, 300);
2172
+ }
2173
+ return {
2174
+ validate,
2175
+ requestLive,
2176
+ replaceTableFields,
2177
+ clear,
2178
+ beginSubmit() {
2179
+ submitting++;
2180
+ cancelLive();
2181
+ },
2182
+ endSubmit() {
2183
+ submitting--;
2184
+ if (alive() && submitting === 0 && enabled && lastRevision !== record.formState.revision)
2185
+ requestLive();
2186
+ },
2187
+ dispose() {
2188
+ disposed = true;
2189
+ cancelLive();
2190
+ paths.clear();
2191
+ unlocated.clear();
2192
+ }
2193
+ };
2194
+ }
1918
2195
  function applyValidationComments(info, comments, kind) {
1919
2196
  if (!info) return;
1920
2197
  const locationKey = kind === "field" ? "validatorLocationList" : "mcValidatorLocationList";
@@ -1932,6 +2209,29 @@ function applyValidationComments(info, comments, kind) {
1932
2209
  info[messageKey] = map;
1933
2210
  }
1934
2211
  function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType) {
2212
+ const objectValidations = /* @__PURE__ */ new WeakMap();
2213
+ function getObjectValidation(record) {
2214
+ const existing = objectValidations.get(record);
2215
+ if (existing) return existing;
2216
+ const uniqueId = record.context.uniqueId;
2217
+ const validation = createMaterialConsumeObjectValidation({
2218
+ record,
2219
+ getInfo: () => getInfo(uniqueId),
2220
+ isCurrent: () => runtimeRegistry.get(uniqueId) === record,
2221
+ shouldSkip: () => {
2222
+ const skip = syncInspectionDecisionRule(uniqueId);
2223
+ if (skip) clearInspectionValidationState(uniqueId);
2224
+ return skip;
2225
+ },
2226
+ applyComments: (fields) => applyValidationComments(getInfo(uniqueId), fields, "material")
2227
+ });
2228
+ objectValidations.set(record, validation);
2229
+ runtimeRegistry.registerDisposable(uniqueId, () => {
2230
+ validation.dispose();
2231
+ objectValidations.delete(record);
2232
+ });
2233
+ return validation;
2234
+ }
1935
2235
  const inspectionDecisionMatched = /* @__PURE__ */ new WeakMap();
1936
2236
  const inspectionDecisionPrompting = /* @__PURE__ */ new WeakSet();
1937
2237
  function openInspectionDecisionPrompt(uniqueId, content) {
@@ -1972,11 +2272,14 @@ function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType)
1972
2272
  return matched;
1973
2273
  }
1974
2274
  function clearInspectionValidationState(uniqueId) {
2275
+ const record = runtimeRegistry.get(uniqueId);
2276
+ if (record) objectValidations.get(record)?.clear();
1975
2277
  applyValidationComments(getInfo(uniqueId), null, "field");
1976
2278
  applyValidationComments(getInfo(uniqueId), null, "material");
1977
2279
  }
1978
2280
  function bindFormValidationSync(uniqueId) {
1979
2281
  const record = runtimeRegistry.require(uniqueId);
2282
+ const objects = getObjectValidation(record);
1980
2283
  syncInspectionDecisionRule(uniqueId);
1981
2284
  const stop = record.formState.subscribe(() => {
1982
2285
  if (runtimeRegistry.get(uniqueId) !== record) return;
@@ -1987,6 +2290,7 @@ function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType)
1987
2290
  uniqueId,
1988
2291
  !suppressed && info.renderModeType === RenderModeEnum.FormMode
1989
2292
  );
2293
+ objects.requestLive();
1990
2294
  if (suppressed) return;
1991
2295
  if (info.renderModeType === RenderModeEnum.FormMode) {
1992
2296
  record.validation.requestLive("change");
@@ -2019,48 +2323,43 @@ function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType)
2019
2323
  }
2020
2324
  async function runSubmissionValidation(uniqueId) {
2021
2325
  const record = runtimeRegistry.require(uniqueId);
2022
- const formState = record.formState.state;
2023
- const bomC = record.context.services.tmplBomController;
2024
- if (syncInspectionDecisionRule(uniqueId)) {
2025
- clearInspectionValidationState(uniqueId);
2026
- return { isValid: true };
2027
- }
2028
- const res = await record.validation.validate();
2029
- if (!res || runtimeRegistry.get(uniqueId) !== record) return;
2030
- const revision = record.formState.revision;
2031
- if (bomC) {
2032
- const bomRes = await bomC.submitValidate();
2033
- if (runtimeRegistry.get(uniqueId) !== record || record.formState.revision !== revision)
2034
- return;
2035
- applyValidationComments(getInfo(uniqueId), bomRes.fields ?? null, "material");
2036
- if (!bomRes.isValid) {
2037
- merge(res, bomRes);
2038
- return res;
2326
+ const objects = getObjectValidation(record);
2327
+ objects.beginSubmit();
2328
+ try {
2329
+ if (syncInspectionDecisionRule(uniqueId)) {
2330
+ clearInspectionValidationState(uniqueId);
2331
+ return { isValid: true };
2039
2332
  }
2040
- const info = getInfo(uniqueId);
2041
- const display = record.context.businessIndex.modelDisplay;
2042
- display.name;
2043
- const showModelKey = display.key || info?.modelKey || "";
2044
- const objErrs = await validateObjectBomQtyOnSubmit({
2045
- formState: formState ?? {},
2046
- objectFieldList: record.context.formConfig.objectFieldList,
2047
- formInstBom: bomC.formInstBom,
2048
- showModelKey
2049
- });
2050
- if (runtimeRegistry.get(uniqueId) !== record || record.formState.revision !== revision)
2051
- return;
2052
- if (objErrs.length) {
2053
- const fields = {};
2054
- objErrs.forEach((e3) => {
2055
- (fields[e3.field] ??= []).push(e3);
2056
- });
2057
- const objectBomRes = { isValid: false, fields };
2058
- merge(res, objectBomRes);
2059
- applyValidationComments(info, { ...info?.validatorMessageMap ?? {}, ...fields }, "field");
2060
- return res;
2333
+ const res = await record.validation.validate();
2334
+ if (!res || runtimeRegistry.get(uniqueId) !== record) return;
2335
+ const revision = record.formState.revision;
2336
+ const bomC = record.context.services.tmplBomController;
2337
+ if (bomC) {
2338
+ const bomRes = await bomC.submitValidate();
2339
+ if (runtimeRegistry.get(uniqueId) !== record || record.formState.revision !== revision)
2340
+ return;
2341
+ objects.replaceTableFields(bomRes.fields);
2342
+ if (!bomRes.isValid) {
2343
+ merge(res, bomRes);
2344
+ return res;
2345
+ }
2346
+ const objectRes = await objects.validate();
2347
+ if (!objectRes || runtimeRegistry.get(uniqueId) !== record || record.formState.revision !== revision)
2348
+ return;
2349
+ if (!objectRes.isValid) {
2350
+ const fields = { ...res.fields ?? {} };
2351
+ for (const [path, errors] of Object.entries(objectRes.fields ?? {})) {
2352
+ fields[path] = [...fields[path] ?? [], ...errors];
2353
+ }
2354
+ return { ...res, isValid: false, fields };
2355
+ }
2356
+ } else {
2357
+ objects.clear();
2061
2358
  }
2359
+ return res;
2360
+ } finally {
2361
+ objects.endSubmit();
2062
2362
  }
2063
- return res;
2064
2363
  }
2065
2364
  function updateRenderModeType(uniqueId, mode, updateButton = false) {
2066
2365
  const record = runtimeRegistry.require(uniqueId);
@@ -2078,7 +2377,9 @@ function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType)
2078
2377
  if (!isCurrent() || runtimeRegistry.get(uniqueId) !== record) return;
2079
2378
  await record.validation.settleAfterModeSwitch(mode === RenderModeEnum.FormMode);
2080
2379
  }).catch((error) => {
2081
- if (runtimeRegistry.get(uniqueId) === record) console.error("表单模式准备失败", error);
2380
+ if (runtimeRegistry.get(uniqueId) !== record) return;
2381
+ if (error instanceof Error && error.message.startsWith("以下异步任务执行失败:")) return;
2382
+ console.error("表单模式准备失败", error);
2082
2383
  });
2083
2384
  }
2084
2385
  async function prepareInitialView(record) {
@@ -2472,7 +2773,7 @@ function useEbrWikiFactoryV2(props, payload) {
2472
2773
  }
2473
2774
  watch(
2474
2775
  [() => props.materialNo, () => edhrCounter.value],
2475
- async ([newMaterialNo, _2]) => {
2776
+ async ([newMaterialNo, _]) => {
2476
2777
  if (isEmpty(newMaterialNo)) return;
2477
2778
  loading.value = true;
2478
2779
  clear();
@@ -2651,7 +2952,7 @@ function useEbrWikiFactoryV2(props, payload) {
2651
2952
  );
2652
2953
  watch(
2653
2954
  [() => selectSelfInfo.value, () => instanceCounter.value],
2654
- ([newSelectSelfInfo, _2]) => {
2955
+ ([newSelectSelfInfo, _]) => {
2655
2956
  if (newSelectSelfInfo && payload.pageType === "record-change") {
2656
2957
  emitter.emit(EmitterEnum.__on_select_ebr_doc_instance_id, {
2657
2958
  instanceId: newSelectSelfInfo.id
@@ -3007,9 +3308,9 @@ class FormAnnotationController {
3007
3308
  const items = this.normalizeAllResponse(res);
3008
3309
  this.applyAnnotationItems(items, () => true);
3009
3310
  return items;
3010
- } catch (e3) {
3011
- console.error("加载所有批注信息 error", e3);
3012
- throw e3;
3311
+ } catch (e2) {
3312
+ console.error("加载所有批注信息 error", e2);
3313
+ throw e2;
3013
3314
  }
3014
3315
  };
3015
3316
  handleOpenAnnotation = async () => {
@@ -3056,250 +3357,250 @@ function filterAnnotationItemsUpToCurrent(items) {
3056
3357
  });
3057
3358
  }
3058
3359
  export {
3059
- aO as AITooltips,
3360
+ aL as AITooltips,
3060
3361
  A3 as AllocateTableCore,
3061
3362
  B3 as BaseFormModelFetcher,
3062
- aQ as BinarizeMethodOptions,
3063
- a$ as BindCmpStyleEnum,
3064
- a1 as BooleanShowMode,
3363
+ aN as BinarizeMethodOptions,
3364
+ aZ as BindCmpStyleEnum,
3365
+ a0 as BooleanShowMode,
3065
3366
  B2 as BorderTD,
3066
3367
  BpmnNodeTypeEnum,
3067
- bK as BpmnSignatureTypeEnum,
3068
- bL as ButtonTypeEnum,
3368
+ bx as BpmnSignatureTypeEnum,
3369
+ by as ButtonTypeEnum,
3069
3370
  B as BwipCodeType,
3070
- bM as CHECK_TABLE_MEDPRO_PROTOCOL_KEY,
3371
+ bz as CHECK_TABLE_MEDPRO_PROTOCOL_KEY,
3071
3372
  y as CellType,
3072
- ai as CellWidgetViewState,
3373
+ af as CellWidgetViewState,
3073
3374
  CheckDsTypeEnum,
3074
- bN as CodeRunner,
3375
+ bA as CodeRunner,
3075
3376
  ComponentTypeEnum,
3076
- bO as Config_Fields,
3077
- bP as ControlStatusEnum,
3078
- bh as DEVICE_GROUP_QUERY_KEY,
3079
- bQ as DEVICE_SEARCH_API,
3080
- aT as DateFormat,
3081
- ay as DecimalDisplayMode,
3082
- aP as DenoiseMethodOptions,
3083
- a62 as DeviceConnector,
3084
- aM as DeviceLink,
3085
- e as DeviceLinkTmplUtil,
3086
- aN as DeviceParamsTypeTitle,
3377
+ bB as Config_Fields,
3378
+ bC as ControlStatusEnum,
3379
+ ba as DEVICE_GROUP_QUERY_KEY,
3380
+ bD as DEVICE_SEARCH_API,
3381
+ aQ as DateFormat,
3382
+ av as DecimalDisplayMode,
3383
+ aM as DenoiseMethodOptions,
3384
+ am as DeviceConnector,
3385
+ aJ as DeviceLink,
3386
+ k as DeviceLinkTmplUtil,
3387
+ aK as DeviceParamsTypeTitle,
3087
3388
  D as DevicePartConsumeTableCore,
3088
- bR as DeviceStatus,
3089
- aj as DiagonalDirection,
3090
- an as DiagonalVertex,
3091
- _ as DocumentLayout,
3092
- a72 as DocumentLoading,
3093
- L2 as DocumentPaper,
3094
- a8 as DynamicQuickFillModal,
3095
- O2 as DynamicTableAction,
3096
- bS as EBR_PROVIDE_ENUM,
3097
- bT as EFieldBizTypeEnum,
3098
- E as EMPTY_PRODUCT_VERSION_ID,
3099
- aG as EmptySymbol,
3100
- a3 as FallbackSignTypeEnum,
3101
- ah as FieldSysVarDefaultValueEnum,
3389
+ bE as DeviceStatus,
3390
+ ag as DiagonalDirection,
3391
+ ak as DiagonalVertex,
3392
+ a12 as DocumentLayout,
3393
+ an2 as DocumentLoading,
3394
+ $2 as DocumentPaper,
3395
+ ao as DynamicQuickFillModal,
3396
+ a02 as DynamicTableAction,
3397
+ bF as EBR_PROVIDE_ENUM,
3398
+ bG as EFieldBizTypeEnum,
3399
+ F as EMPTY_PRODUCT_VERSION_ID,
3400
+ aD as EmptySymbol,
3401
+ a2 as FallbackSignTypeEnum,
3402
+ ae as FieldSysVarDefaultValueEnum,
3102
3403
  FillingTypeEnum,
3103
- a9 as FixedQuickFillModal,
3404
+ ap as FixedQuickFillModal,
3104
3405
  FormAnnotationController,
3105
3406
  F2 as FormModelController,
3106
3407
  FormTmplBomController,
3107
- aa2 as FormTmplConfigController,
3408
+ aq as FormTmplConfigController,
3108
3409
  FormTypeEnum,
3109
- az as ImageDisplayModeEnum,
3410
+ aw as ImageDisplayModeEnum,
3110
3411
  InstanceStatusValues,
3111
- aR as JoinModelTypeEum,
3112
- ab as LEGACY_RUNTIME_FORM_CONFIG_KEYS,
3113
- ac as LEGACY_RUNTIME_SHEET_ID,
3114
- ad as LEGACY_RUNTIME_SHEET_TITLE,
3115
- a0 as LabelPosition,
3116
- al as LineDirection,
3412
+ aO as JoinModelTypeEum,
3413
+ ar as LEGACY_RUNTIME_FORM_CONFIG_KEYS,
3414
+ as as LEGACY_RUNTIME_SHEET_ID,
3415
+ at2 as LEGACY_RUNTIME_SHEET_TITLE,
3416
+ $ as LabelPosition,
3417
+ ai as LineDirection,
3117
3418
  L as LineType,
3118
- bU as MAX_FRONT_ROW_KEY_LENGTH,
3419
+ bH as MAX_FRONT_ROW_KEY_LENGTH,
3119
3420
  M as MAX_RUNTIME_SHEETS,
3120
3421
  a as MAX_RUNTIME_SHEET_TITLE_LENGTH,
3121
3422
  M3 as MBRender,
3122
- ae as MCDataUtil,
3123
- a11 as MCRender,
3423
+ au2 as MCDataUtil,
3424
+ a8 as MCRender,
3124
3425
  b as MULTI_SHEET_SCHEMA_VERSION,
3125
3426
  MaterialConsumeTableController,
3126
3427
  MaterialConsumptionPatternEnum,
3127
3428
  M2 as MaterialRequisitionTableCore,
3128
3429
  MaterialStatusEnum,
3129
- a10 as MaterialSubstitutionTableCore,
3130
- bV as MobileFillTypeEnum,
3430
+ a7 as MaterialSubstitutionTableCore,
3431
+ bI as MobileFillTypeEnum,
3131
3432
  NCB_PROVIDE,
3132
- af as OCR_MODEL_PRECISION_ENUM_KEY,
3133
- bW as OfficeTypeEnum,
3433
+ av2 as OCR_MODEL_PRECISION_ENUM_KEY,
3434
+ bJ as OfficeTypeEnum,
3134
3435
  O as Orientation,
3135
3436
  p as PageSizeEnum,
3136
3437
  P as PaginationFormat,
3137
- aa as PaperSizeMap,
3438
+ a9 as PaperSizeMap,
3138
3439
  o as PaperWidgeType,
3139
3440
  Q as PaperWidgeValueType,
3140
3441
  A as ParamModelTypeEnum,
3141
3442
  P2 as PartStocktakeTableCore,
3142
3443
  PlatformEnum,
3143
- bX as PosEnum,
3144
- b3 as PretreatmentListTableCore,
3145
- c10 as ProfileDrivenSubTableCore,
3146
- bY as RUNTIME_COLUMN_ROW_KEY,
3147
- ax as RangeCompareOp,
3148
- aw as RangeValidateMode,
3444
+ bK as PosEnum,
3445
+ b2 as PretreatmentListTableCore,
3446
+ c as ProfileDrivenSubTableCore,
3447
+ bL as RUNTIME_COLUMN_ROW_KEY,
3448
+ au as RangeCompareOp,
3449
+ at as RangeValidateMode,
3149
3450
  RenderModeEnum,
3150
- ag as RuntimeAsyncTaskCoordinator,
3151
- ah2 as RuntimeDependencyService,
3152
- ai2 as RuntimeFieldRegistry,
3451
+ aw2 as RuntimeAsyncTaskCoordinator,
3452
+ ax as RuntimeDependencyService,
3453
+ ay as RuntimeFieldRegistry,
3153
3454
  RuntimeFormStateStore,
3154
3455
  RuntimeInstanceController,
3155
- aj2 as RuntimeInstanceEventBus,
3456
+ az as RuntimeInstanceEventBus,
3156
3457
  RuntimeInstanceRegistry,
3157
- ak2 as RuntimePersistenceCoordinator,
3458
+ aA as RuntimePersistenceCoordinator,
3158
3459
  RuntimeRuleCompiler,
3159
3460
  RuntimeSheetService,
3160
- al2 as RuntimeValidationService,
3161
- a6 as SignShowTypeEnum,
3162
- a2 as SignatureImageDirectionEnum,
3163
- a4 as SignatureNumberTypeEnum,
3164
- a5 as SignatureTimeTypeEnum,
3165
- a7 as SignatureTypeEnum,
3461
+ aB as RuntimeValidationService,
3462
+ a5 as SignShowTypeEnum,
3463
+ a1 as SignatureImageDirectionEnum,
3464
+ a3 as SignatureNumberTypeEnum,
3465
+ a4 as SignatureTimeTypeEnum,
3466
+ a6 as SignatureTypeEnum,
3166
3467
  d2 as SterilizeBatchTableCore,
3167
- e2 as StocktakeTableCore,
3168
- am2 as SubTableCore,
3468
+ e as StocktakeTableCore,
3469
+ aC as SubTableCore,
3169
3470
  SubTableCoreFactory,
3170
3471
  f as SubTableType,
3171
- bZ as SummaryApproveHisTypeEnum,
3172
- am as TimeDiffFormat,
3173
- aq as ViewTypeEnum,
3472
+ bM as SummaryApproveHisTypeEnum,
3473
+ aj as TimeDiffFormat,
3474
+ an as ViewTypeEnum,
3174
3475
  W as WarehouseInTableCore,
3175
- f3 as WarehouseInboundTableCore,
3476
+ f2 as WarehouseInboundTableCore,
3176
3477
  g as WarehouseOutTableCore,
3177
- h2 as WarehouseOutboundTableCore,
3178
- ak as WidgetImageSizeMode,
3179
- b_ as applyCheckDsDataToRuntime,
3180
- w as applyConsumeObjectTraceChange,
3181
- b$ as applyMedProCheckDsDataToRuntime,
3478
+ h as WarehouseOutboundTableCore,
3479
+ ah as WidgetImageSizeMode,
3480
+ bN as applyCheckDsDataToRuntime,
3481
+ C as applyConsumeObjectTraceChange,
3482
+ bO as applyMedProCheckDsDataToRuntime,
3182
3483
  baseDataUtils,
3183
- c0 as bindRuntimeTableColumns,
3184
- c1 as buildDeviceBaseQuery,
3185
- bg as buildDeviceFilterQuery,
3186
- an2 as buildFormChangeDisplayRows,
3187
- m as buildObjectLotExtraQuery,
3484
+ bP as bindRuntimeTableColumns,
3485
+ bQ as buildDeviceBaseQuery,
3486
+ b9 as buildDeviceFilterQuery,
3487
+ aD2 as buildFormChangeDisplayRows,
3488
+ t2 as buildObjectLotExtraQuery,
3188
3489
  buildRuntimeFieldPath,
3189
- c2 as calcFillData,
3190
- c3 as calcUtils,
3490
+ bR as calcFillData,
3491
+ bS as calcUtils,
3191
3492
  calculateFormula,
3192
3493
  collectAnnotationItemsByLocation,
3193
3494
  collectFormChangeFieldLocations,
3194
3495
  commonUtils,
3195
3496
  convertHistoricalAnnotationLocation,
3196
- ao2 as convertV1Runtime,
3197
- c as createRuntimeDocumentV2,
3497
+ aE as convertV1Runtime,
3498
+ d as createRuntimeDocumentV2,
3198
3499
  createRuntimeInstanceContext,
3199
- c4 as decodeTableCellRowKey,
3200
- ap as detailsHaveFormChangeRowOps,
3201
- c5 as encodeTableCellRowKey,
3500
+ bT as decodeTableCellRowKey,
3501
+ aF as detailsHaveFormChangeRowOps,
3502
+ bU as encodeTableCellRowKey,
3202
3503
  enrichFormChangeRowDetails,
3203
- c6 as ensureFrontRowKey,
3204
- c7 as ensureTableRowKeys,
3205
- aq2 as extractFormChangeRowDetails,
3206
- c8 as extractKeywordFromQueryData,
3207
- c9 as fetchCheckDsDataForTable,
3208
- ca as fetchCustomCheckDsData,
3504
+ bV as ensureFrontRowKey,
3505
+ bW as ensureTableRowKeys,
3506
+ aG as extractFormChangeRowDetails,
3507
+ bX as extractKeywordFromQueryData,
3508
+ bY as fetchCheckDsDataForTable,
3509
+ bZ as fetchCustomCheckDsData,
3209
3510
  fetchHistoryConsume,
3210
- cb as fetchMedProCheckDsData,
3511
+ b_ as fetchMedProCheckDsData,
3211
3512
  fetchOperationReceiveQty,
3212
3513
  fetchUdi,
3213
3514
  filterAnnotationItemsUpToCurrent,
3214
- bl as findRuntimeParentRow,
3215
- cc as findRuntimeTableCell,
3515
+ bd as findRuntimeParentRow,
3516
+ b$ as findRuntimeTableCell,
3216
3517
  findRuntimeTableRow,
3217
3518
  getAppInfo,
3218
3519
  getBusinessFieldKey,
3219
- cd as getCheckTableSnapshotKey,
3220
- ar as getFormChangeRowKey,
3221
- as as getFormChangeRowOp,
3222
- aZ as getLotLockedReason,
3223
- l as getObjectBomMaterialLotQuery,
3224
- x as getObjectBomProductQuery,
3520
+ c0 as getCheckTableSnapshotKey,
3521
+ aH as getFormChangeRowKey,
3522
+ aI as getFormChangeRowOp,
3523
+ aW as getLotLockedReason,
3524
+ r as getObjectBomMaterialLotQuery,
3525
+ E as getObjectBomProductQuery,
3225
3526
  getParseFormulaVarInfos,
3226
- ce as getParseRuleConfig,
3227
- b0 as getParseRuleInfo,
3228
- b1 as getParseRuleValue,
3229
- cf as getReinspectionDate,
3230
- cg as getRenderedRuntimeTableCell,
3527
+ c1 as getParseRuleConfig,
3528
+ a_ as getParseRuleInfo,
3529
+ a$ as getParseRuleValue,
3530
+ c2 as getReinspectionDate,
3531
+ c3 as getRenderedRuntimeTableCell,
3231
3532
  getRuntimeDataFieldId,
3232
3533
  getRuntimeDependencyOutputKey,
3233
- at as getSubTableQuickFillInfo,
3534
+ aJ2 as getSubTableQuickFillInfo,
3234
3535
  getSuiteKey,
3235
- ch as handleOldConfig,
3236
- ci as hasAnyCheckTableSnapshot,
3237
- cj as hasByTableCheckTableSnapshot,
3238
- ck as hasSharedCheckTableSnapshot,
3239
- au as isAnnLocationSelected,
3240
- av as isBlank,
3536
+ c4 as handleOldConfig,
3537
+ c5 as hasAnyCheckTableSnapshot,
3538
+ c6 as hasByTableCheckTableSnapshot,
3539
+ c7 as hasSharedCheckTableSnapshot,
3540
+ aK2 as isAnnLocationSelected,
3541
+ aL2 as isBlank,
3241
3542
  isBomGranted,
3242
3543
  isEdhrSuite,
3243
3544
  isEqmSuite,
3244
- aw2 as isFormChangeGhostRow,
3245
- cl as isMedProSuite,
3545
+ aM2 as isFormChangeGhostRow,
3546
+ c8 as isMedProSuite,
3246
3547
  isRowAddedInCurrentFormChange,
3247
- cm as isTableRowKeyMatch,
3248
- cn as jsonSchemaUtils,
3249
- co as judgeUnique,
3250
- aY as materialCheck,
3251
- cp as migrateDiagonalDirectionToVertex,
3548
+ c9 as isTableRowKeyMatch,
3549
+ ca as jsonSchemaUtils,
3550
+ cb as judgeUnique,
3551
+ aV as materialCheck,
3552
+ cc as migrateDiagonalDirectionToVertex,
3252
3553
  nextFormChangeRowViewHistoryId,
3253
- f2 as normalizeAIOcrTmpl,
3254
- y2 as normalizeHistoricalAutofillRow,
3255
- d as normalizeHistoricalBusinessRow,
3256
- ax2 as normalizeHistoricalFieldConfig,
3257
- b2 as normalizeRefLoaderResult,
3554
+ l as normalizeAIOcrTmpl,
3555
+ G as normalizeHistoricalAutofillRow,
3556
+ j as normalizeHistoricalBusinessRow,
3557
+ aN2 as normalizeHistoricalFieldConfig,
3558
+ b0 as normalizeRefLoaderResult,
3258
3559
  normalizeRuntime,
3259
3560
  parseFrontConfig,
3260
3561
  parseRuntimeFieldPath,
3261
3562
  parseUdi,
3262
- ay2 as pickObjectFieldKeys,
3263
- az2 as recordSubtableRowAdd,
3264
- aA as recordSubtableRowDelete,
3265
- be as refUtils,
3266
- cq as relocateDeletedRowsToEnd,
3563
+ aO2 as pickObjectFieldKeys,
3564
+ aP2 as recordSubtableRowAdd,
3565
+ aQ2 as recordSubtableRowDelete,
3566
+ b7 as refUtils,
3567
+ aR as relocateDeletedRowsToEnd,
3267
3568
  renderUtils,
3268
- cr as requestMedProCheckDsData,
3269
- cs as requestNonMedProCheckDsData,
3270
- aB as resolveAnnotationFieldLocation,
3271
- ao as resolveDiagonalVertex,
3569
+ cd as requestMedProCheckDsData,
3570
+ ce as requestNonMedProCheckDsData,
3571
+ aS as resolveAnnotationFieldLocation,
3572
+ al as resolveDiagonalVertex,
3272
3573
  t as resolveFieldRenderComponent,
3273
- aC as resolveFormChangeRowUi,
3274
- p2 as resolveObjectBomEntry,
3275
- r as resolveObjectFieldKeys,
3276
- aD as resolveRowFormChangeMark,
3574
+ aT as resolveFormChangeRowUi,
3575
+ y2 as resolveObjectBomEntry,
3576
+ v as resolveObjectFieldKeys,
3577
+ aU as resolveRowFormChangeMark,
3277
3578
  resolveUdiQuery,
3278
- q as runWithFillProduct,
3279
- j as setSelectAnnotationId,
3280
- aE as setSelectMobileTdId,
3579
+ z as runWithFillProduct,
3580
+ p2 as setSelectAnnotationId,
3581
+ aV2 as setSelectMobileTdId,
3281
3582
  s as setSelectValidatorId,
3282
- aS as sqlUtils,
3283
- ct as stockCheck,
3284
- aF as stripLegacyFormConfigFromPaper,
3583
+ aP as sqlUtils,
3584
+ cf as stockCheck,
3585
+ aW2 as stripLegacyFormConfigFromPaper,
3285
3586
  transformUtils,
3286
- C as useDependency,
3587
+ R as useDependency,
3287
3588
  useEbrWikiFactoryV2,
3288
- F as useFieldPresentation,
3589
+ S as useFieldPresentation,
3289
3590
  u2 as useFormModel,
3290
3591
  u as useFormTmplConfig,
3291
3592
  useMaterialBalance,
3292
3593
  useNocodeEmitter,
3293
- t2 as useNocodeFormWidget,
3294
- cu as useOnlineFormActionButton,
3295
- bm as useOnlineFormTransformField2Component,
3594
+ A2 as useNocodeFormWidget,
3595
+ cg as useOnlineFormActionButton,
3596
+ be as useOnlineFormTransformField2Component,
3296
3597
  useRenderPageFactory,
3297
- G as useRuntimeEditorFlusher,
3298
- i as useRuntimeInstanceServices,
3299
- k as useRuntimeRowState,
3300
- A2 as useStyles,
3301
- h as useWidgetStaticAttrs,
3302
- v as validateObjectBomForScan,
3598
+ T as useRuntimeEditorFlusher,
3599
+ o2 as useRuntimeInstanceServices,
3600
+ q as useRuntimeRowState,
3601
+ Q2 as useStyles,
3602
+ m as useWidgetStaticAttrs,
3603
+ x as validateObjectBomForScan,
3303
3604
  validateObjectBomQtyOnSubmit,
3304
- a_ as validateReinspectionDate
3605
+ aX as validateReinspectionDate
3305
3606
  };