@gct-paas/excel 0.1.41 → 0.1.42-beta.0

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 (207) hide show
  1. package/README.md +3 -4
  2. package/dist/{BaseComponent-CD_dAL9D.js → BaseComponent-CuX5xLFK.js} +4 -3
  3. package/dist/{VueVideoPlayer-DQQlv_cp.js → VueVideoPlayer-CBBB12Hj.js} +2 -2
  4. package/dist/{align-editor-DchzBHaC.js → align-editor-Df9gS31T.js} +1 -1
  5. package/dist/{barcode-design-BBW5cG3v.js → barcode-design-B34-4xJ9.js} +3 -2
  6. package/dist/base/index.es.js +517 -222
  7. package/dist/{diagonal-design-CawGqmc7.js → diagonal-design-D0HXMI8w.js} +3 -2
  8. package/dist/{dynamic-table-action-Dw7AIthU.js → dynamic-table-action-9sxv3gW5.js} +452 -322
  9. package/dist/{dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-DEjLEs33.js → dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-YSIO0k9J.js} +2296 -593
  10. package/dist/{edit.utils-CXmmCnxE-B7lpVZjb.js → edit.utils-CXmmCnxE-0uJiCs33.js} +1 -1
  11. package/dist/excel.css +611 -723
  12. package/dist/{exceljs.min-DDPQIUli.js → exceljs.min-Doeyz39_.js} +2 -2
  13. package/dist/{font-editor-n8zk8Vt2.js → font-editor-B8A9tDhO.js} +3 -3
  14. package/dist/{image-design-D4mIDz9K.js → image-design-CVyCbbef.js} +3 -8
  15. package/dist/{index-DfFakGrF.js → index-7VROqGqR.js} +3 -2
  16. package/dist/{index-1klMDz7G.js → index-B3hu8heh.js} +3 -2
  17. package/dist/{index-C4t8sSlN.js → index-B7Yt5TSq.js} +2 -1
  18. package/dist/{index-B0u6FHDq.js → index-BLJdXkdZ.js} +5 -4
  19. package/dist/{index-TZy8JxSW.js → index-BOO2K9Vu.js} +4 -3
  20. package/dist/{index-DUztXGMj.js → index-Bb3Ugl3c.js} +3 -2
  21. package/dist/{index-Dh0_kanw.js → index-Bj2qRb0q.js} +2 -1
  22. package/dist/{index-BZ7bC20P.js → index-BwyHByzZ.js} +2 -1
  23. package/dist/{index-Do-QyvWW.js → index-CDObWZ7G.js} +3 -2
  24. package/dist/{index-Bm8wYtHB.js → index-CGU3uK4z.js} +2 -1
  25. package/dist/{index-BW95iBc7.js → index-CMmaJ4Ss.js} +3 -2
  26. package/dist/{index-CYSJt1Zc.js → index-CNmwpU3G.js} +7 -3
  27. package/dist/{index-BMsHMGap.js → index-CS1tP-l0.js} +3 -2
  28. package/dist/{index-4p1VXlOx.js → index-Cn_bmfoD.js} +2 -1
  29. package/dist/{index-C-NpFAft.js → index-CzztJ4fH.js} +4 -3
  30. package/dist/{index-CXnuud67.js → index-D0VBKmKt.js} +3 -2
  31. package/dist/{index-DiWzNeZJ.js → index-DA7GAWZ1.js} +4 -3
  32. package/dist/{index-Boy8--Ns.js → index-DKKIL32g.js} +3 -2
  33. package/dist/{index-DPf5_q0T.js → index-DMVIENZW.js} +4 -3
  34. package/dist/{index-r9t3crs-.js → index-DU4dWvY6.js} +2 -1
  35. package/dist/{index-BcHwRIXW.js → index-D_hAd0MQ.js} +4 -3
  36. package/dist/{index-Ch88zDje.js → index-DuuvFB0e.js} +3 -2
  37. package/dist/{index-CI6Hl1Ns.js → index-FCg2Jzvu.js} +2 -1
  38. package/dist/{index-r0yHBje3.js → index-PSQkEXxq.js} +3 -2
  39. package/dist/{index-CAc9drK5.js → index-R95URjcc.js} +2 -1
  40. package/dist/{index-gHOlYnAA.js → index-RG23XjoT.js} +2 -1
  41. package/dist/{index-S8Dj5ycu.js → index-TeozNhWH.js} +3 -2
  42. package/dist/{index--MetH_r4.js → index-Uy8bXkuC.js} +4 -3
  43. package/dist/{index-DiPWQwMU.js → index-VrLq9hAc.js} +8987 -3728
  44. package/dist/{index-DvMu7-8y.js → index-XE84LVO7.js} +2 -1
  45. package/dist/{index-CmjTSiUa.js → index-dUCz8OdV.js} +3 -2
  46. package/dist/{index-DgybKcgI.js → index-hDsTasdu.js} +3 -2
  47. package/dist/{index-H4f-e99t.js → index-ucaRXWE8.js} +3 -2
  48. package/dist/{index-BWoOPv6-.js → index-vEZ4Yr2u.js} +3 -2
  49. package/dist/index.es.js +52 -46
  50. package/dist/{online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-DDJetWQU.js → online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-ApLSXGFP.js} +27 -3
  51. package/dist/{pagination-design-lckCQWcK.js → pagination-design-B5DxwV5F.js} +3 -2
  52. package/dist/paper-widget-design-A55mbwYv.js +4 -0
  53. package/dist/{print-runtime-instance-Dckul2Bk.js → print-runtime-instance-BDM-anCd.js} +1 -1
  54. package/dist/{print-snapshot-renderer-lub7u9sp.js → print-snapshot-renderer-kB1Bw7A_.js} +3 -3
  55. package/dist/{qrcode-design-M0HzGVjM.js → qrcode-design-bN48s3rk.js} +1 -1
  56. package/dist/{revo-grid.entry-Dr4S1tgO.js → revo-grid.entry-BXEGtAbW.js} +1 -1
  57. package/dist/{revogr-attribution_7.entry-27u9hxgM.js → revogr-attribution_7.entry-CImeTxBl.js} +3 -3
  58. package/dist/{revogr-clipboard_3.entry-DxjljgJl.js → revogr-clipboard_3.entry-DqcrJ6zB.js} +2 -2
  59. package/dist/{revogr-data_4.entry-CnSalg4D.js → revogr-data_4.entry-Ccdsy3nO.js} +2 -2
  60. package/dist/{revogr-filter-panel.entry-CSsekbYc.js → revogr-filter-panel.entry-B2xM2jvB.js} +1 -1
  61. package/dist/seal-design-B3FBumLr.js +4 -0
  62. package/dist/{serialnumber-design-DUiLiTSj.js → serialnumber-design-BGTOIn2S.js} +1 -1
  63. package/dist/shared/index.es.js +29 -28
  64. package/dist/{single-field-drop-CF_r0dCX.js → single-field-drop-b2b71HAk.js} +2 -3
  65. package/dist/{size-editor-DNMqRicI.js → size-editor-DtX2f2CF.js} +1 -1
  66. package/dist/src/adapter/adapter.d.ts +1 -1
  67. package/dist/src/adapter/index.d.ts +2 -0
  68. package/dist/src/{nocode-web-render/src/render/sub-table/common → adapter/web}/inventory-scan-columns.d.ts +1 -1
  69. package/dist/src/{nocode-web-render/src/render/sub-table/material-balance/mb-web-render.d.ts → adapter/web/material-balance-render.d.ts} +1 -1
  70. package/dist/src/{nocode-web-render/src/render/sub-table/material-balance → adapter/web}/material-consume-modal.vue.d.ts +1 -1
  71. package/dist/src/adapter/web/material-consume-render.d.ts +25 -0
  72. package/dist/src/{nocode-web-render/src/render/common → adapter/web}/open-util.d.ts +1 -1
  73. package/dist/src/{nocode-web-render/src/render/sub-table/stocktake/stocktake-web-render.d.ts → adapter/web/stocktake-render.d.ts} +2 -2
  74. package/dist/src/{nocode-web-render/src/render/sub-table/common → adapter/web}/sub-table-render.d.ts +2 -5
  75. package/dist/src/domain/document-business/business/product-release/profile.d.ts +2 -0
  76. package/dist/src/domain/document-business/business/product-release/service.d.ts +2 -0
  77. package/dist/src/domain/document-business/index.d.ts +2 -0
  78. package/dist/src/domain/document-business/registry.d.ts +2 -0
  79. package/dist/src/domain/document-business/runtime/field-query-runtime.d.ts +4 -0
  80. package/dist/src/domain/document-business/types.d.ts +24 -0
  81. package/dist/src/domain/field/number/product-release-qty-manifest.d.ts +2 -0
  82. package/dist/src/domain/field/query-filter.d.ts +15 -0
  83. package/dist/src/domain/table/business/material/material-substitution/profile/field-keys.d.ts +37 -1
  84. package/dist/src/domain/table/business/material/material-substitution/runtime/row-change-handlers.d.ts +7 -0
  85. package/dist/src/domain/table/business/material/material-substitution/runtime/select-loaders.d.ts +12 -0
  86. package/dist/src/domain/table/business/sterilize/entrust-steril-batch-list/profile/field-keys.d.ts +2 -0
  87. package/dist/src/domain/table/business/warehouse/shared/autofill-source-labels.d.ts +19 -0
  88. package/dist/src/domain/table/design/autofill-expander.d.ts +2 -0
  89. package/dist/src/domain/table/design/hooks/on-field-attach.d.ts +6 -0
  90. package/dist/src/domain/table/index.d.ts +1 -1
  91. package/dist/src/domain/table/types.d.ts +2 -0
  92. package/dist/src/index.d.ts +8 -0
  93. package/dist/src/nocode-base/src/components/document-sub-table-action/dynamic-table-action.vue.d.ts +0 -2
  94. package/dist/src/nocode-base/src/components/document-sub-table-action/sub-table-action.vue.d.ts +0 -3
  95. package/dist/src/nocode-base/src/components/document-sub-table-action/type.d.ts +0 -4
  96. package/dist/src/nocode-base/src/components/material-consume/types.d.ts +1 -5
  97. package/dist/src/nocode-base/src/core/sub-table/profile-driven-sub-table-core.d.ts +4 -4
  98. package/dist/src/nocode-base/src/core/sub-table/sub-table-core.d.ts +1 -4
  99. package/dist/src/nocode-base/src/core/sub-table/utils/sterilize/field-keys.d.ts +1 -2
  100. package/dist/src/nocode-base/src/hooks/formula-params-cache.d.ts +15 -0
  101. package/dist/src/nocode-base/src/hooks/inspection-module-qty.d.ts +4 -0
  102. package/dist/src/nocode-base/src/hooks/material-consume/material-consume-table-controller.d.ts +0 -6
  103. package/dist/src/nocode-base/src/hooks/material-consume/mc-render.d.ts +1 -28
  104. package/dist/src/nocode-base/src/hooks/render-page/initial-value-data-sources.d.ts +3 -0
  105. package/dist/src/nocode-base/src/hooks/render-page/initialize-runtime.d.ts +9 -8
  106. package/dist/src/nocode-base/src/hooks/render-page/runtime-data-sources.d.ts +51 -0
  107. package/dist/src/nocode-base/src/hooks/render-page/sterilization-date.d.ts +3 -0
  108. package/dist/src/nocode-base/src/hooks/render-page/types.d.ts +7 -1
  109. package/dist/src/nocode-base/src/hooks/useCalcFunction.d.ts +8 -2
  110. package/dist/src/nocode-base/src/hooks/useRenderPageFactory.d.ts +55 -6
  111. package/dist/src/nocode-base/src/hooks/useRuntimeInstanceServices.d.ts +24 -0
  112. package/dist/src/nocode-base/src/interface/ref-loader.d.ts +12 -1
  113. package/dist/src/nocode-base/src/interface/render.d.ts +2 -1
  114. package/dist/src/nocode-base/src/interface/transform.d.ts +3 -0
  115. package/dist/src/nocode-base/src/runtime/conversions/v1-runtime.d.ts +1 -1
  116. package/dist/src/nocode-base/src/runtime/designer-default-values.d.ts +23 -0
  117. package/dist/src/nocode-base/src/runtime/runtime-default-value-validation.d.ts +23 -0
  118. package/dist/src/nocode-base/src/runtime/runtime-field-initializer.d.ts +1 -0
  119. package/dist/src/nocode-base/src/runtime/runtime-field-state.d.ts +5 -2
  120. package/dist/src/nocode-base/src/runtime/runtime-instance-registry.d.ts +8 -5
  121. package/dist/src/nocode-base/src/types/common/base.d.ts +8 -2
  122. package/dist/src/nocode-base/src/types/render/mc-render.d.ts +2 -15
  123. package/dist/src/nocode-base/src/types/render/sub-table-render.d.ts +0 -10
  124. package/dist/src/online-form/src/components/device/device-select.vue.d.ts +1 -1
  125. package/dist/src/online-form/src/views/__cell_widgets__/common/default-value-rdo-editor/base-vxe-table.vue.d.ts +1 -1
  126. package/dist/src/online-form/src/views/__cell_widgets__/common/default-value-rdo-editor/default-value-rdo-editor.vue.d.ts +4 -4
  127. package/dist/src/online-form/src/views/__cell_widgets__/common/default-value-rdo-editor/rdo-table-dropdown.vue.d.ts +3 -3
  128. package/dist/src/online-form/src/views/designer/constants/index.d.ts +1 -0
  129. package/dist/src/online-form/src/views/designer/hooks/useAllSpreadSheets.d.ts +144 -0
  130. package/dist/src/online-form/src/views/designer/hooks/useSpreadSheet.d.ts +87 -4
  131. package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/message-rule-config/rule-modal.vue.d.ts +32 -0
  132. package/dist/src/{nocode-web-render/src/render/parse-rule → online-form/src/views/designer/modules/panel/sub-table/comps}/add-rule-btn.vue.d.ts +1 -1
  133. package/dist/src/online-form/src/views/designer/modules/panel/sub-table/comps/use-dynamic-sub-table-panel.d.ts +6 -0
  134. package/dist/src/online-form/src/views/designer/modules/panel/sub-table/panel-check-table/select-check-ds-modal.vue.d.ts +3 -3
  135. package/dist/src/online-form/src/views/designer/types/index.d.ts +12 -1
  136. package/dist/src/online-form/src/views/designer/utils/placed-fields.d.ts +9 -0
  137. package/dist/src/online-form/src/views/designer/utils/template-placed-fields.d.ts +7 -0
  138. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-auto-complete.vue.d.ts +2 -2
  139. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-date-picker.vue.d.ts +2 -2
  140. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-media.vue.d.ts +1 -1
  141. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-text-input.vue.d.ts +2 -2
  142. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-textarea.vue.d.ts +2 -2
  143. package/dist/src/online-form/src/views/render/__components__/_field_/seal/component/seal-floating-field.vue.d.ts +0 -1
  144. package/dist/src/online-form/src/views/render/__components__/_field_/seal/component/seal-runtime-layer.vue.d.ts +0 -1
  145. package/dist/src/online-form/src/views/render/__components__/_field_/seal/component/use-seal-stamp.d.ts +1 -4
  146. package/dist/src/online-form/src/views/render/__components__/_field_/seal/index.d.ts +1 -0
  147. package/dist/src/online-form/src/views/render/__components__/_field_/trace/common/base-vxe-table.vue.d.ts +1 -1
  148. package/dist/src/shared/components/ColorPicker/src/ColorPicker.vue.d.ts +1 -1
  149. package/dist/src/shared/components/DoubleInput/double-input.vue.d.ts +162 -2
  150. package/dist/src/shared/components/LimitedNumberInput/limited-number-input.vue.d.ts +41 -0
  151. package/dist/src/shared/components/LimitedNumberInput/number-input-rules.d.ts +16 -0
  152. package/dist/src/shared/components/Signature/logic/index.d.ts +14 -0
  153. package/dist/src/shared/enum/field-type.d.ts +8 -3
  154. package/dist/src/{nocode-web-render/src → shared}/hooks/useWebUpload.d.ts +1 -1
  155. package/dist/src/shared/index.d.ts +1 -0
  156. package/dist/src/shared/types/index.d.ts +1 -0
  157. package/dist/src/shared/types/upload.d.ts +11 -0
  158. package/dist/src/shared/utils/withRequestCache.d.ts +27 -0
  159. package/dist/{sub-table-factory-D-GcNTOB.js → sub-table-factory-DoEvzrVN.js} +276 -89
  160. package/dist/{text-design-BfZf4B27.js → text-design-BQVBFcI0.js} +3 -2
  161. package/dist/{throttle-Cpk1LoGk-B4SDzSMU.js → throttle-Cpk1LoGk-DR_8z9qq.js} +1 -1
  162. package/dist/{timediff-design-BeO94tLR.js → timediff-design-DioTJEvx.js} +2 -1
  163. package/dist/{trace-like-wrapper-Xc4cr21n.js → trace-like-wrapper-CjxBkfYK.js} +3 -2
  164. package/dist/{value-editor.vue_vue_type_style_index_0_lang-CMpVHBLK.js → value-editor.vue_vue_type_style_index_0_lang-DpfdcyX_.js} +3 -2
  165. package/dist/{widget-barcode-CrfBj8iv.js → widget-barcode-CEn3AYG0.js} +5 -4
  166. package/dist/{widget-diagonal-C3Nho_Um.js → widget-diagonal-DbOhaNpW.js} +4 -4
  167. package/dist/{widget-image-CjsL9QW8.js → widget-image-BGP2w2mj.js} +5 -7
  168. package/dist/{widget-line-BtvpVv_s.js → widget-line-CkSPcw5A.js} +3 -2
  169. package/dist/{widget-pagination-DAUQo2nI.js → widget-pagination-BH0VtWHT.js} +6 -5
  170. package/dist/{widget-power-yUHZ4Hoc.js → widget-power-DuTIvdpR.js} +4 -4
  171. package/dist/{widget-qrcode-DJtT9NaM.js → widget-qrcode-CJJjPnwn.js} +4 -3
  172. package/dist/{widget-rangelimit-BhadVdCu.js → widget-rangelimit-828JH1wm.js} +3 -4
  173. package/dist/{widget-serialnumber-WMHB8nl6.js → widget-serialnumber-CIjY3I-t.js} +1 -1
  174. package/dist/{widget-text-C4dD9JF3.js → widget-text-C_Ja4yWN.js} +5 -5
  175. package/dist/{widget-timediff-C9d8_3hY.js → widget-timediff-CjmATkLS.js} +3 -2
  176. package/package.json +2 -6
  177. package/dist/AntdIcon-DCIaV352.js +0 -1108
  178. package/dist/index-_Ec5LAW9.js +0 -4353
  179. package/dist/mb-render-sgVmAe6_.js +0 -276
  180. package/dist/paper-widget-design-Nd5VjI7n.js +0 -4
  181. package/dist/seal-design-kuAsmNq1.js +0 -4
  182. package/dist/src/nocode-web-render/src/components/print-fill-background-selector.vue.d.ts +0 -2
  183. package/dist/src/nocode-web-render/src/hooks/index.d.ts +0 -2
  184. package/dist/src/nocode-web-render/src/hooks/userFormPrint.d.ts +0 -15
  185. package/dist/src/nocode-web-render/src/index.d.ts +0 -6
  186. package/dist/src/nocode-web-render/src/logic/index.d.ts +0 -1
  187. package/dist/src/nocode-web-render/src/render/common/index.d.ts +0 -2
  188. package/dist/src/nocode-web-render/src/render/common/modal-manager.d.ts +0 -20
  189. package/dist/src/nocode-web-render/src/render/index.d.ts +0 -10
  190. package/dist/src/nocode-web-render/src/render/parse-rule/index.d.ts +0 -3
  191. package/dist/src/nocode-web-render/src/render/parse-rule/parse-rule-modal.vue.d.ts +0 -15
  192. package/dist/src/nocode-web-render/src/render/sub-table/allocate/allocate-web-render.d.ts +0 -4
  193. package/dist/src/nocode-web-render/src/render/sub-table/allocate/index.d.ts +0 -1
  194. package/dist/src/nocode-web-render/src/render/sub-table/common/multi-rows-modal.vue.d.ts +0 -15
  195. package/dist/src/nocode-web-render/src/render/sub-table/common/scan-modal.vue.d.ts +0 -19
  196. package/dist/src/nocode-web-render/src/render/sub-table/index.d.ts +0 -3
  197. package/dist/src/nocode-web-render/src/render/sub-table/material-balance/index.d.ts +0 -1
  198. package/dist/src/nocode-web-render/src/render/sub-table/material-consume/bom-modal.vue.d.ts +0 -11
  199. package/dist/src/nocode-web-render/src/render/sub-table/material-consume/index.d.ts +0 -4
  200. package/dist/src/nocode-web-render/src/render/sub-table/material-consume/mc-web-render.d.ts +0 -42
  201. package/dist/src/nocode-web-render/src/render/sub-table/stocktake/index.d.ts +0 -2
  202. package/dist/src/nocode-web-render/src/types/hooks/index.d.ts +0 -1
  203. package/dist/src/nocode-web-render/src/types/index.d.ts +0 -1
  204. package/dist/web-render/index.d.ts +0 -1
  205. package/dist/web-render/index.es.js +0 -595
  206. /package/dist/src/{nocode-web-render/src/adapter/index.d.ts → adapter/web/setup.d.ts} +0 -0
  207. /package/dist/src/{nocode-web-render/src/logic/utils.d.ts → adapter/web/upload.d.ts} +0 -0
@@ -1,10 +1,9 @@
1
- import { reactive, toRaw, computed, watch, onScopeDispose, inject, h, shallowReactive, markRaw, ref, toRef, nextTick, provide, defineComponent, openBlock, createElementBlock, mergeProps, unref, createElementVNode, normalizeClass, renderSlot, createCommentVNode, createVNode, toDisplayString, Fragment, renderList, onUnmounted, isVNode, onMounted, onBeforeMount, resolveComponent, createBlock, withCtx, createTextVNode } from "vue";
2
- import { ch as splitRuntimeDataPath, af as CellWidgetViewState, F as FIELD_TYPE, b6 as RenderModeEnum, X as FormTypeEnum, bu as BpmnNodeTypeEnum, ck as getFieldPlaceholder, bK as MobileFillTypeEnum, C as ComponentTypeEnum, be as findRuntimeTableRow, aU as renderUtils, _ as PlatformEnum, E as api, bn as uuid2, bU as calcUtils, bY as ensureTableRowKeys, bR as bindRuntimeTableColumns, bd as getRowId, cl as FRONT_ROW_KEY, cb as isTableRowKeyMatch, au as RangeCompareOp, at as RangeValidateMode, bV as decodeTableCellRowKey, bX as ensureFrontRowKey, b0 as getParseRuleInfo, aD as transformUtils, aW as materialCheck, aX as getLotLockedReason, aY as validateReinspectionDate, bh as FormulaRuleFieldKeyEnum, f as SubTableType, b1 as getParseRuleValue, H as CreateType, bf as findRuntimeParentRow, aG as Dependency_ENUM, aF as ASSIGNMENTSTRATEGY_ENUM, by as commonUtils, aK as DeviceLink, a7 as _export_sfc, c5 as getRenderedRuntimeTableCell, y as CellType, cm as resetTableRowIdentity, J as useModal, cn as q, co as QUICK_FILL_ALLOWED_FIELDS, cp as groupFixedTableRows, cq as processQuickFillRows, cr as getIsGroupEmpty } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-DEjLEs33.js";
1
+ import { reactive, toRaw, computed, watch, onScopeDispose, inject, h, shallowReactive, markRaw, ref, toRef, provide, nextTick, defineComponent, openBlock, createElementBlock, mergeProps, unref, createElementVNode, normalizeClass, renderSlot, createCommentVNode, createVNode, toDisplayString, Fragment, renderList, onUnmounted, isVNode, onMounted, onBeforeMount, resolveComponent, createBlock, withCtx, createTextVNode } from "vue";
2
+ import { cx as splitRuntimeDataPath, am as CellWidgetViewState, F as FIELD_TYPE, bo as RenderModeEnum, a1 as FormTypeEnum, bJ as BpmnNodeTypeEnum, by as getRuntimeDataFieldId, cA as getFieldPlaceholder, b_ as MobileFillTypeEnum, C as ComponentTypeEnum, a4 as PlatformEnum, cB as isReferenceOptionActive, p as api, bx as uuid2, c8 as calcUtils, M as getBusinessFieldKey, bn as findRuntimeTableRow, cc as ensureTableRowKeys, c5 as bindRuntimeTableColumns, bm as getRowId, cC as FRONT_ROW_KEY, cr as isTableRowKeyMatch, aB as RangeCompareOp, aA as RangeValidateMode, cD as getCurrentFormData, bB as isAttachFieldActive, bl as parseRuntimeFieldPath, c9 as decodeTableCellRowKey, cb as ensureFrontRowKey, bb as getParseRuleInfo, aN as transformUtils, b5 as materialCheck, b6 as getLotLockedReason, b7 as validateReinspectionDate, br as FormulaRuleFieldKeyEnum, bA as buildRuntimeFieldPath, Q as CreateType, h as SubTableType, bc as getParseRuleValue, bp as findRuntimeParentRow, aQ as Dependency_ENUM, aP as ASSIGNMENTSTRATEGY_ENUM, bO as commonUtils, aU as DeviceLink, ad as useNamespace, ae as _export_sfc, I as Icon, cl as getRenderedRuntimeTableCell, H as CellType, cE as resetTableRowIdentity, U as useModal, cF as q, cG as QUICK_FILL_ALLOWED_FIELDS, cH as groupFixedTableRows, cI as processQuickFillRows, cJ as getIsGroupEmpty } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-YSIO0k9J.js";
3
3
  import dayjs from "dayjs";
4
4
  import { cloneDeep, isEmpty, isNil, pickBy, mergeWith, omit, last, pick, merge } from "lodash-es";
5
- import { a as useNamespace, I as Icon } from "./AntdIcon-DCIaV352.js";
5
+ import "@gct-paas/form-base";
6
6
  import { Modal, message } from "ant-design-vue";
7
- import { u as useFormModel } from "./mb-render-sgVmAe6_.js";
8
7
  var MaterialConsumptionPatternEnum = /* @__PURE__ */ ((MaterialConsumptionPatternEnum2) => {
9
8
  MaterialConsumptionPatternEnum2["RECORD"] = "record";
10
9
  MaterialConsumptionPatternEnum2["BOM"] = "bom";
@@ -279,7 +278,7 @@ class RuntimeDependencyService {
279
278
  await Promise.allSettled(jobs);
280
279
  }
281
280
  }
282
- function resolveRuntimeFieldProps(record, props, widgetId, row, parentRow) {
281
+ function resolveRuntimeFieldProps(record, props, widgetId, row, parentRow, formChangeStatus = false) {
283
282
  const result = { ...props };
284
283
  const { context } = record;
285
284
  const tableField = props.subFieldKey;
@@ -288,7 +287,11 @@ function resolveRuntimeFieldProps(record, props, widgetId, row, parentRow) {
288
287
  const core = Object.values(context.services.subTableCoreFactory?.coreMap ?? {}).find(
289
288
  (item) => item.subFieldKey === tableField
290
289
  );
291
- const status = core?.calcFieldStatus({ rowData: businessRow, field: props.field });
290
+ const status = core?.calcFieldStatus({
291
+ rowData: businessRow,
292
+ field: props.field,
293
+ formChangeStatus
294
+ });
292
295
  if (status?.disabled != null) result.fieldDisabled = status.disabled;
293
296
  if (status?.readonly != null) {
294
297
  result.field_readonly = status.readonly;
@@ -298,7 +301,7 @@ function resolveRuntimeFieldProps(record, props, widgetId, row, parentRow) {
298
301
  const config = context.businessIndex.fixedTables.find(
299
302
  (table) => table.field === tableField
300
303
  )?.bizTableConfig;
301
- if (config?.dataLockControlField) {
304
+ if (!formChangeStatus && config?.dataLockControlField) {
302
305
  if (props.field === config.dataLockControlField) {
303
306
  if (isPersistedSignatureLockActive(config, businessRow)) {
304
307
  result.field_readonly = true;
@@ -306,7 +309,7 @@ function resolveRuntimeFieldProps(record, props, widgetId, row, parentRow) {
306
309
  }
307
310
  } else if (isSignatureLockActive(config, businessRow)) result.fieldDisabled = true;
308
311
  }
309
- } else if (!tableField && !props.subModelKey) {
312
+ } else if (!formChangeStatus && !tableField && !props.subModelKey) {
310
313
  result.fieldDisabled ||= context.businessIndex.fixedTables.some(
311
314
  (table) => table.bizTableConfig?.mainFieldBindings?.includes(props.field) && (record.formState.state[table.field] ?? []).some(
312
315
  (item) => isSignatureLockActive(table.bizTableConfig, item)
@@ -369,51 +372,6 @@ function resolveRuntimeFieldState(props, info) {
369
372
  keepExceptionHighlight: typeof props.keepExceptionHighlight === "boolean" ? props.keepExceptionHighlight : void 0
370
373
  };
371
374
  }
372
- function getRuntimeDataFieldId(props = {}) {
373
- return props.field ? props.isFieldModel ? props.fieldLink ?? "" : props.field : "";
374
- }
375
- function getBusinessFieldKey(field) {
376
- return [field.subModelKey ?? field.modelKey ?? "", field.fieldId ?? ""].join(":");
377
- }
378
- const FIELD_POSITION_PREFIX = "runtime_field_";
379
- function buildRuntimeFieldPath(position) {
380
- if (!position.fieldId) throw new Error("运行时字段位置缺少 fieldId");
381
- if (position.subFieldKey && !position.rowKey) throw new Error("子表字段位置缺少 front_row_key_");
382
- const serialized = JSON.stringify([
383
- position.modelKey ?? "",
384
- position.subModelKey ?? "",
385
- position.subFieldKey ?? "",
386
- position.rowKey ?? "",
387
- position.fieldId
388
- ]);
389
- return FIELD_POSITION_PREFIX + btoa(
390
- Array.from(new TextEncoder().encode(serialized), (byte) => String.fromCharCode(byte)).join(
391
- ""
392
- )
393
- ).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
394
- }
395
- function parseRuntimeFieldPath(path) {
396
- if (!path.startsWith(FIELD_POSITION_PREFIX)) return void 0;
397
- try {
398
- const encoded = path.slice(FIELD_POSITION_PREFIX.length).replace(/-/g, "+").replace(/_/g, "/");
399
- const parts = JSON.parse(
400
- new TextDecoder().decode(Uint8Array.from(atob(encoded), (char) => char.charCodeAt(0)))
401
- );
402
- if (!Array.isArray(parts) || parts.length !== 5 || parts.some((part) => typeof part !== "string"))
403
- return void 0;
404
- const [modelKey, subModelKey, subFieldKey, rowKey, fieldId] = parts;
405
- if (!fieldId || subFieldKey && !rowKey) return void 0;
406
- return {
407
- modelKey: modelKey || void 0,
408
- subModelKey: subModelKey || void 0,
409
- subFieldKey: subFieldKey || void 0,
410
- rowKey: rowKey || void 0,
411
- fieldId
412
- };
413
- } catch {
414
- return void 0;
415
- }
416
- }
417
375
  function isCellAutoLineBreak(style) {
418
376
  const whiteSpace = style?.whiteSpace ?? style?.["white-space"];
419
377
  const wordBreak = style?.wordBreak ?? style?.["word-break"];
@@ -447,6 +405,8 @@ function useRuntimeInstanceServices(uniqueIdSource) {
447
405
  instance,
448
406
  /** 控制器负责 Sheet 切换、编辑器收口和提交;尚未挂载时为空。 */
449
407
  controller: computed(() => instance.value?.controller),
408
+ /** 全部 Sheet 共享的数源管理器,随实例注册与销毁。 */
409
+ dataSourceManager: computed(() => instance.value?.dataSourceManager),
450
410
  /** 表单级配置独立于 Sheet 的 paper;实例未注册时提供空配置。 */
451
411
  formConfig: computed(() => instance.value?.context.formConfig ?? {}),
452
412
  /** 实例切换时重新取对应 Store;读取数据使用 .value.state,写入使用 Store 方法。 */
@@ -532,7 +492,14 @@ function useWidgetStaticAttrs(widget) {
532
492
  const targetFieldId = getRuntimeDataFieldId(widget.props);
533
493
  const fieldState = computed(
534
494
  () => resolveRuntimeFieldState(
535
- resolveRuntimeFieldProps(instance.value, widget.props, widget.id),
495
+ resolveRuntimeFieldProps(
496
+ instance.value,
497
+ widget.props,
498
+ widget.id,
499
+ void 0,
500
+ void 0,
501
+ dataRelationShip?.formChangeStatus
502
+ ),
536
503
  dataRelationShip
537
504
  )
538
505
  );
@@ -780,49 +747,6 @@ function getSubTableQuickFillInfo(subTableFieldId, mobileTdIdGroups) {
780
747
  if (!subTableFieldId) return;
781
748
  return assignWidgetInfo(MobileFillTypeEnum.SUB_TABLE, { rowSubFieldKey: subTableFieldId });
782
749
  }
783
- function getCurrentFormData(_rule, options) {
784
- if (!_rule._subtableFieldId) return options?.formData;
785
- return findRuntimeTableRow(options?.formData?.[_rule._subtableFieldId], _rule._rowKey);
786
- }
787
- function isSameOptionValue(current, expected) {
788
- if (typeof expected === "boolean") {
789
- return renderUtils.getBoolValue(current) === expected;
790
- }
791
- if (current === void 0 || current === null || current === "") {
792
- return false;
793
- }
794
- return String(current) === String(expected);
795
- }
796
- function isAttachFieldActive(attach, formData) {
797
- if (attach?.parent && !isAttachFieldActive(attach.parent, formData)) return false;
798
- if (!attach?.belongFieldId || isNil(attach.optionValue)) {
799
- return true;
800
- }
801
- const row = attach.subtableFieldId ? findRuntimeTableRow(formData?.[attach.subtableFieldId], attach.rowKey) : formData;
802
- if (attach.subtableFieldId && (!attach.rowKey || !row || row === formData)) {
803
- return false;
804
- }
805
- const raw = row?.[attach.belongFieldId];
806
- if (attach.multiple) {
807
- const current = renderUtils.getValue(raw, true);
808
- if (!Array.isArray(current)) return false;
809
- return current.some((v) => isSameOptionValue(v, attach.optionValue));
810
- }
811
- return isSameOptionValue(raw, attach.optionValue);
812
- }
813
- function isReferenceOptionActive(referenceInfo, rowFormData) {
814
- if (!referenceInfo?.belongFieldId || isNil(referenceInfo.optionValue)) {
815
- return true;
816
- }
817
- return isAttachFieldActive(
818
- {
819
- belongFieldId: referenceInfo.belongFieldId,
820
- optionValue: referenceInfo.optionValue,
821
- multiple: referenceInfo.multiple
822
- },
823
- rowFormData
824
- );
825
- }
826
750
  function fieldChromeStyles(state) {
827
751
  const required4 = state === "required";
828
752
  const disabled = state === "disabled";
@@ -1026,6 +950,8 @@ const LEGACY_RUNTIME_FORM_CONFIG_KEYS = [
1026
950
  "unitConversionRules",
1027
951
  "inspectionDecisionRule",
1028
952
  "customDataSource",
953
+ "dataSources",
954
+ "fieldFills",
1029
955
  "objectInitialValues",
1030
956
  "javascript",
1031
957
  "checkSignatureConfig",
@@ -4300,10 +4226,7 @@ class RuntimeInstanceEventBus {
4300
4226
  class RuntimeInstanceRegistry {
4301
4227
  /** 当前渲染入口的加载状态,由工厂更新;PreviewContainer 直接读取,无需宿主额外传参。 */
4302
4228
  loadState = shallowReactive({ loading: false, error: void 0 });
4303
- /**
4304
- * 顶层对象使用浅响应式:实例新增、删除需要驱动 Vue 更新;record 内的服务类
4305
- * 不需要被 Vue 深度代理,各自内部负责自己的响应式状态和生命周期
4306
- */
4229
+ /** 顶层容器和记录都只做浅响应式;服务类仍保持原始引用。 */
4307
4230
  records = shallowReactive({});
4308
4231
  /**
4309
4232
  * 统一托管订阅、watch 和编译结果的取消函数
@@ -4345,8 +4268,9 @@ class RuntimeInstanceRegistry {
4345
4268
  events,
4346
4269
  validation
4347
4270
  };
4348
- this.records[context.uniqueId] = markRaw(record);
4349
- return record;
4271
+ const reactiveRecord = shallowReactive(record);
4272
+ this.records[context.uniqueId] = reactiveRecord;
4273
+ return reactiveRecord;
4350
4274
  }
4351
4275
  /**
4352
4276
  * 在页面回调准备完成后挂载实例控制器
@@ -4524,6 +4448,7 @@ class RuntimeInstanceRegistry {
4524
4448
  this.disposables.get(uniqueId)?.forEach((dispose) => dispose());
4525
4449
  this.disposables.delete(uniqueId);
4526
4450
  record.fieldInitializer?.dispose();
4451
+ record.defaultValueValidation?.dispose();
4527
4452
  record.ruleCompiler?.dispose();
4528
4453
  record.validation.dispose();
4529
4454
  record.scriptRunner?.dispose();
@@ -5987,8 +5912,6 @@ class MaterialConsumeTableController {
5987
5912
  initialDataPrepared = false;
5988
5913
  /** 最近一次同步需求数量时使用的数量依赖。 */
5989
5914
  syncedMaterialNoNum;
5990
- /** 多 Sheet / 同屏多实例下,弹层和异步交互使用该键隔离。 */
5991
- runtimeOwnerId = "";
5992
5915
  /** 表单是否已暂存或提交(已处理过则不再跑初始化) */
5993
5916
  get isDataProcessed() {
5994
5917
  return ["STASH", "SUBMIT"].includes(this.dataStatus ?? "");
@@ -6096,21 +6019,6 @@ class MaterialConsumeTableController {
6096
6019
  this.scanRuleProps = toParseRuleConfig(id);
6097
6020
  this.scanRuleInfo = await getParseRuleInfo({ id: this.scanRuleProps.parsingRuleId });
6098
6021
  }
6099
- /**
6100
- * 变更条码规则
6101
- */
6102
- async changeScanRule() {
6103
- const { id_, base_id_ } = this.scanRuleInfo ?? {};
6104
- const newConfig = await MaterialConsumeTableController.render.openChangeRuleModal({
6105
- config: this.scanRuleProps,
6106
- subModelKey: this.widget.props.modelKey,
6107
- formModelController: this.formModelController
6108
- });
6109
- if (newConfig) {
6110
- this.scanRuleProps = newConfig;
6111
- this.scanRuleInfo = await getParseRuleInfo({ id: this.scanRuleProps.parsingRuleId });
6112
- }
6113
- }
6114
6022
  /**
6115
6023
  * 是否人为指定物料
6116
6024
  * @readonly
@@ -6815,6 +6723,31 @@ class MaterialConsumeTableController {
6815
6723
  await this.applyUnitConversionRules(row);
6816
6724
  }
6817
6725
  }
6726
+ class MCRender {
6727
+ /**
6728
+ * 提示信息
6729
+ * @param opts
6730
+ */
6731
+ message(opts) {
6732
+ throw new Error("Function message not implemented.");
6733
+ }
6734
+ async openScanModal(opts) {
6735
+ throw new Error("Function openScanModal not implemented.");
6736
+ }
6737
+ /**
6738
+ * 扫码返回多条候选时,弹窗选择其中一条
6739
+ * 取消返回 undefined
6740
+ */
6741
+ async openMultiRowsModal(opts) {
6742
+ throw new Error("Function openMultiRowsModal not implemented.");
6743
+ }
6744
+ /**
6745
+ * 关闭当前页面的 form-base 弹层
6746
+ */
6747
+ destroyAllModals(_ownerId) {
6748
+ throw new Error("Function destroyAllModals not implemented.");
6749
+ }
6750
+ }
6818
6751
  var SubTableActionEnum = /* @__PURE__ */ ((SubTableActionEnum2) => {
6819
6752
  SubTableActionEnum2["QuickFillRowCurrent"] = "quickFillRowCurrent";
6820
6753
  SubTableActionEnum2["InsertRowBefore"] = "insertRowBefore";
@@ -6826,8 +6759,6 @@ var SubTableActionEnum = /* @__PURE__ */ ((SubTableActionEnum2) => {
6826
6759
  SubTableActionEnum2["ClearRowCurrent"] = "clearRowCurrent";
6827
6760
  SubTableActionEnum2["CONFIRM"] = "CONFIRM";
6828
6761
  SubTableActionEnum2["SCAN"] = "SCAN";
6829
- SubTableActionEnum2["VIEW_BOM"] = "VIEW_BOM";
6830
- SubTableActionEnum2["CHANGE_PARSE_RULE"] = "CHANGE_PARSE_RULE";
6831
6762
  SubTableActionEnum2["RowEdit"] = "rowEdit";
6832
6763
  SubTableActionEnum2["Insert1GroupAfter"] = "insert1GroupAfter";
6833
6764
  return SubTableActionEnum2;
@@ -6847,18 +6778,6 @@ function getMenuByAction(type4) {
6847
6778
  label: "条码扫描",
6848
6779
  icon: "size24 icon-saoma1"
6849
6780
  },
6850
- [SubTableActionEnum.VIEW_BOM]: {
6851
- type: SubTableActionMenuTypeEnum.ACTION,
6852
- key: SubTableActionEnum.VIEW_BOM,
6853
- label: "BOM查看",
6854
- icon: "size24 icon-a-bom11"
6855
- },
6856
- [SubTableActionEnum.CHANGE_PARSE_RULE]: {
6857
- type: SubTableActionMenuTypeEnum.ACTION,
6858
- key: SubTableActionEnum.CHANGE_PARSE_RULE,
6859
- label: "条码解析规则变更",
6860
- icon: "icon-tiaomajiexi"
6861
- },
6862
6781
  [SubTableActionEnum.QuickFillRowCurrent]: {
6863
6782
  type: SubTableActionMenuTypeEnum.ACTION,
6864
6783
  key: SubTableActionEnum.QuickFillRowCurrent,
@@ -7042,6 +6961,204 @@ class TdHandler {
7042
6961
  this.mergeTd({ cellWidget: { props: { newSpecificConfig: { customLoader } } } });
7043
6962
  }
7044
6963
  }
6964
+ class BaseFormModelFetcher {
6965
+ /** 默认接口 */
6966
+ apis = {
6967
+ getFieldMetaList: api.apaas.fieldMeta.getList,
6968
+ getModelMetaSubModelList: api.apaas.modelComprehensive.getSubModelList,
6969
+ getModelDetail2FieldList: api.apaas.modelMeta.getDetail
6970
+ };
6971
+ /**
6972
+ * 模型映射缓存
6973
+ */
6974
+ modelMetaMap = {};
6975
+ async load(opts) {
6976
+ const { model } = opts;
6977
+ this.modelMetaMap = {};
6978
+ await this.loadModelFields(model);
6979
+ await this.loadSubModelsFields(model);
6980
+ return Object.values(this.modelMetaMap);
6981
+ }
6982
+ /**
6983
+ * 补全字段信息
6984
+ * @param modelKey 字段所属的模型
6985
+ * @param [fields=[]]
6986
+ * @return {*}
6987
+ */
6988
+ completeFields(modelKey, fields = []) {
6989
+ return fields.map((field) => {
6990
+ if (!field.modelKey) {
6991
+ field.modelKey = modelKey;
6992
+ }
6993
+ return field;
6994
+ });
6995
+ }
6996
+ /**
6997
+ * 根据模型key加载模型字段
6998
+ *
6999
+ * @param [modelKey=this.model]
7000
+ * @return {*}
7001
+ */
7002
+ async loadModelFields(modelKey) {
7003
+ if (typeof this.apis.getFieldMetaList !== "function") {
7004
+ return;
7005
+ }
7006
+ const res = await this.apis.getFieldMetaList({
7007
+ modelKey
7008
+ });
7009
+ this.modelMetaMap[modelKey] = {
7010
+ key: modelKey,
7011
+ name: "",
7012
+ fields: this.completeFields(modelKey, res)
7013
+ };
7014
+ return res;
7015
+ }
7016
+ /**
7017
+ * 加载表单所有子表字段对应模型的字段信息集合
7018
+ */
7019
+ async loadSubModelsFields(modelKey) {
7020
+ const res = await this.apis.getModelMetaSubModelList({
7021
+ modelKey
7022
+ });
7023
+ (res ?? []).forEach((m) => {
7024
+ if (!this.modelMetaMap[m.key]) {
7025
+ this.modelMetaMap[m.key] = {
7026
+ key: m.key,
7027
+ name: m.name,
7028
+ subModel: m.subModel,
7029
+ fields: this.completeFields(m.key, m.fieldMetaList)
7030
+ };
7031
+ }
7032
+ });
7033
+ }
7034
+ }
7035
+ class FormModelController {
7036
+ /** 主模型的key */
7037
+ masterModelKey;
7038
+ /** 主模型的名称 */
7039
+ masterModelName;
7040
+ /** 模型请求器 */
7041
+ fetcher = new BaseFormModelFetcher();
7042
+ /** 模型映射缓存 */
7043
+ modelMetaMap = reactive({});
7044
+ /** 主模型信息 */
7045
+ get masterModel() {
7046
+ return this.modelMetaMap[this.masterModelKey];
7047
+ }
7048
+ /** 获取主模型字段集合 */
7049
+ get masterFields() {
7050
+ return this.masterModel?.fields;
7051
+ }
7052
+ /** 获取子模型 */
7053
+ getSubModel(subModelKey) {
7054
+ return this.modelMetaMap[subModelKey];
7055
+ }
7056
+ /** 获取子模型字段集合 */
7057
+ getSubModelFields(subModelKey) {
7058
+ return this.getSubModel(subModelKey)?.fields;
7059
+ }
7060
+ /**
7061
+ * 表单字段下拉选项(排除系统字段和子表字段)
7062
+ * value 格式为 modelKey.fieldKey,与字段映射存储格式一致
7063
+ */
7064
+ getFormFieldOptions(subModelKey) {
7065
+ const fields = subModelKey ? this.getSubModelFields(subModelKey) : this.masterModel?.fields;
7066
+ return (fields ?? []).filter(
7067
+ (field) => !this.isSystemField(field) && !this.isSubField(field) && !this.isObjectField(field)
7068
+ ).map((field) => ({
7069
+ ...field,
7070
+ label: `${field.name}`,
7071
+ value: `${field.modelKey}.${field.key}`
7072
+ }));
7073
+ }
7074
+ /**
7075
+ * 初始化
7076
+ *
7077
+ * @param opts
7078
+ * - model 主模型key
7079
+ * - name 主模型名称
7080
+ */
7081
+ async init(opts) {
7082
+ this.masterModelKey = opts.model;
7083
+ this.masterModelName = opts.name;
7084
+ await this.load();
7085
+ }
7086
+ /** 刷新数据 */
7087
+ async refresh() {
7088
+ await this.load();
7089
+ }
7090
+ /**
7091
+ * 加载数据并填充到modelMetaMap中
7092
+ * @protected
7093
+ * @return {*}
7094
+ */
7095
+ async load() {
7096
+ if (!this.masterModelKey) {
7097
+ console.error("缺少主模型的key");
7098
+ return;
7099
+ }
7100
+ const models = await this.fetcher.load({ model: this.masterModelKey });
7101
+ this.modelMetaMap = models.reduce((acc, cur) => {
7102
+ acc[cur.key] = cur;
7103
+ if (cur.key === this.masterModelKey) {
7104
+ cur.name = this.masterModelName;
7105
+ }
7106
+ return acc;
7107
+ }, {});
7108
+ }
7109
+ /** 是否是子模型字段 */
7110
+ isSubField(field) {
7111
+ return field.type === FIELD_TYPE.MASTERSLAVE && field.bindInfo;
7112
+ }
7113
+ /** 是否是预置字段,包括系统字段和业务内置字段 */
7114
+ isPresetField(field) {
7115
+ return [CreateType.BUILTIN, CreateType.SYSTEM].includes(field.createType);
7116
+ }
7117
+ /** 是否是系统字段 */
7118
+ isSystemField(field) {
7119
+ return field.createType === CreateType.SYSTEM;
7120
+ }
7121
+ /** 是否是对象字段类型 */
7122
+ isObjectField(field) {
7123
+ return field.type === FIELD_TYPE.OBJECT_TYPE;
7124
+ }
7125
+ /**
7126
+ * 获取主模型里子表字段对应的子模型key
7127
+ *
7128
+ * @param fieldKey 子表字段在主表里的字段key
7129
+ * @return {*}
7130
+ */
7131
+ getSubFieldModelKey(fieldKey) {
7132
+ return this.masterFields.find((field) => field.key === fieldKey)?.bindInfo;
7133
+ }
7134
+ /**
7135
+ * 获取字段信息
7136
+ * @param [modelKey=this.masterModelKey] 模型key
7137
+ * @param fieldKey 字段key
7138
+ * @return {*}
7139
+ */
7140
+ findField(modelKey = this.masterModelKey, fieldKey) {
7141
+ const model = this.modelMetaMap[modelKey];
7142
+ if (!model) {
7143
+ return;
7144
+ }
7145
+ return model.fields.find((field) => field.key === fieldKey);
7146
+ }
7147
+ }
7148
+ const FormModelControllerKey = "GctFormModelController";
7149
+ function useFormModel() {
7150
+ function provideController(c = new FormModelController()) {
7151
+ provide(FormModelControllerKey, c);
7152
+ return c;
7153
+ }
7154
+ function injectController() {
7155
+ return inject(FormModelControllerKey);
7156
+ }
7157
+ return {
7158
+ provideController,
7159
+ injectController
7160
+ };
7161
+ }
7045
7162
  const SCAN_ROW_META_KEYS = /* @__PURE__ */ new Set([FRONT_ROW_KEY, "id_", "id", "group_", "deleted_", "delete_"]);
7046
7163
  function hasRowId(row) {
7047
7164
  const id = row.id_ ?? row.id;
@@ -7275,8 +7392,6 @@ class SubTableCore {
7275
7392
  const { actionKey } = params;
7276
7393
  if (actionKey === SubTableActionEnum.SCAN) {
7277
7394
  this.openScanModal();
7278
- } else if (actionKey === SubTableActionEnum.CHANGE_PARSE_RULE) {
7279
- this.changeScanRule();
7280
7395
  }
7281
7396
  }
7282
7397
  /**
@@ -7323,9 +7438,9 @@ class SubTableCore {
7323
7438
  const result = {};
7324
7439
  const config = this.bizTableConfig;
7325
7440
  if (config?.dataLockControlField && params.field === config.dataLockControlField) {
7326
- result.readonly = isPersistedSignatureLockActive(config, params.rowData);
7441
+ result.readonly = !params.formChangeStatus && isPersistedSignatureLockActive(config, params.rowData);
7327
7442
  } else if (config?.dataLockControlField) {
7328
- result.disabled = isSignatureLockActive(config, params.rowData);
7443
+ result.disabled = !params.formChangeStatus && isSignatureLockActive(config, params.rowData);
7329
7444
  }
7330
7445
  return result;
7331
7446
  }
@@ -7378,20 +7493,6 @@ class SubTableCore {
7378
7493
  scanRuleInfo;
7379
7494
  /** 解析规则配置对象 */
7380
7495
  scanRuleProps;
7381
- /**
7382
- * 变更条码规则
7383
- */
7384
- async changeScanRule() {
7385
- const newConfig = await this.render.openChangeRuleModal({
7386
- config: this.scanRuleProps,
7387
- subModelKey: this.subModelKey,
7388
- formModelController: this.formModelController
7389
- });
7390
- if (newConfig) {
7391
- this.scanRuleProps = newConfig;
7392
- this.scanRuleInfo = await getParseRuleInfo({ id: newConfig.parsingRuleId });
7393
- }
7394
- }
7395
7496
  /**
7396
7497
  * 打开扫描弹窗
7397
7498
  * @param opts
@@ -7470,37 +7571,71 @@ class SubTableCore {
7470
7571
  console.log(this.ctx.widget.props.tableTitle, "处理表单按钮点击事件", params);
7471
7572
  }
7472
7573
  }
7473
- let currentParamsConfig = {
7474
- routingParamList: [],
7475
- inspectionParamList: []
7476
- };
7477
- function setFormulaParamsConfig(paramsConfig = {}) {
7478
- currentParamsConfig = paramsConfig ?? {};
7574
+ const STORAGE_KEY = "gct:formula:params:v1";
7575
+ const PARAMS_CHANGED_EVENT = "gct:formula-params-updated:v1";
7576
+ function emptyConfig() {
7577
+ return {
7578
+ routingParamList: [],
7579
+ inspectionParamList: [],
7580
+ deviceParamList: []
7581
+ };
7479
7582
  }
7480
- async function CALC_IS_QUALIFIED(key, value, paramList) {
7481
- if (!key || value == null) {
7482
- return null;
7583
+ function normalizeList(value) {
7584
+ if (!Array.isArray(value)) return [];
7585
+ return value.filter(
7586
+ (item) => item !== null && typeof item === "object" && typeof item.customFieldKey === "string"
7587
+ );
7588
+ }
7589
+ function normalizeConfig(value) {
7590
+ const data = value !== null && typeof value === "object" ? value : {};
7591
+ return {
7592
+ routingParamList: normalizeList(data.routingParamList),
7593
+ inspectionParamList: normalizeList(data.inspectionParamList),
7594
+ deviceParamList: normalizeList(data.deviceParamList)
7595
+ };
7596
+ }
7597
+ let lastRaw;
7598
+ let cachedConfig = emptyConfig();
7599
+ function readFormulaParamsConfig() {
7600
+ const raw = window.localStorage.getItem(STORAGE_KEY);
7601
+ if (raw !== lastRaw) {
7602
+ try {
7603
+ cachedConfig = normalizeConfig(raw ? JSON.parse(raw) : null);
7604
+ } catch {
7605
+ cachedConfig = emptyConfig();
7606
+ }
7607
+ lastRaw = raw;
7608
+ }
7609
+ return cachedConfig;
7610
+ }
7611
+ const currentParamsConfig = {
7612
+ get routingParamList() {
7613
+ return readFormulaParamsConfig().routingParamList;
7614
+ },
7615
+ get inspectionParamList() {
7616
+ return readFormulaParamsConfig().inspectionParamList;
7483
7617
  }
7484
- const config = paramList?.find((e) => e.customFieldKey === key);
7485
- if (!config) return null;
7486
- const { upperLimit, lowerLimit } = config;
7487
- if (lowerLimit == null || upperLimit == null) return null;
7488
- const actual = Number(value);
7489
- const min = Number(config.lowerLimit);
7490
- const max = Number(config.upperLimit);
7491
- if (![actual, min, max].every(Number.isFinite)) return null;
7492
- return actual >= min && actual <= max;
7493
- }
7494
- const FORMULA_FUNCS = {
7495
- RoutingParamCheck: (key, value) => CALC_IS_QUALIFIED(key, value, currentParamsConfig.routingParamList || []),
7496
- InspectionParamCheck: (key, value) => CALC_IS_QUALIFIED(key, value, currentParamsConfig.inspectionParamList || [])
7497
7618
  };
7498
- function registerFormulaFuncs() {
7499
- const register2 = window.NocodeAdapter.utils?.formulaRegister;
7500
- if (!register2) return;
7501
- Object.entries(FORMULA_FUNCS).forEach(([k, func]) => {
7502
- register2(k, func);
7619
+ function setFormulaParamsConfig(paramsConfig = {}) {
7620
+ const raw = JSON.stringify(normalizeConfig(paramsConfig));
7621
+ if (window.localStorage.getItem(STORAGE_KEY) === raw) return;
7622
+ window.localStorage.setItem(STORAGE_KEY, raw);
7623
+ window.dispatchEvent(new Event(PARAMS_CHANGED_EVENT));
7624
+ }
7625
+ const boundCalculators = /* @__PURE__ */ new WeakSet();
7626
+ function bindFormulaCacheInvalidation(value) {
7627
+ if (typeof value !== "function") return;
7628
+ const calculator = value;
7629
+ if (typeof calculator.clear !== "function" || boundCalculators.has(calculator)) return;
7630
+ boundCalculators.add(calculator);
7631
+ const clearCache = () => calculator.clear();
7632
+ window.addEventListener(PARAMS_CHANGED_EVENT, clearCache);
7633
+ window.addEventListener("storage", (event) => {
7634
+ if (event.storageArea === window.localStorage && (event.key === STORAGE_KEY || event.key === null)) {
7635
+ clearCache();
7636
+ }
7503
7637
  });
7638
+ clearCache();
7504
7639
  }
7505
7640
  function getGroupProductIds(entry) {
7506
7641
  const ids = [entry.product_id_];
@@ -7943,6 +8078,15 @@ function useNocodeFormWidget(props, emit) {
7943
8078
  ...colIndex !== void 0 ? { colIndex } : {}
7944
8079
  });
7945
8080
  }
8081
+ if (eventType === "onChange" && dataRelationShip?.renderModeType === RenderModeEnum.FormMode) {
8082
+ const keys = widget.props?.valueChangeDataSourceKeys;
8083
+ if (keys?.length) {
8084
+ const current = value.value;
8085
+ await instance.value?.dataSourceManager?.queryOnValueChange(keys, {
8086
+ cleared: current == null || current === "" || Array.isArray(current) && !current.length
8087
+ });
8088
+ }
8089
+ }
7946
8090
  if (eventType === "onBlur" && dataRelationShip?.renderModeType === RenderModeEnum.FormMode && !instance.value?.controller?.preparing) {
7947
8091
  instance.value?.validation.requestLive("blur", true);
7948
8092
  }
@@ -8025,6 +8169,7 @@ function useDependency(widget, props) {
8025
8169
  const { isFieldModel, subFieldKey } = widget.props;
8026
8170
  const fieldWidget = ref(cloneDeep(props.widget));
8027
8171
  const { instance, formStateStore } = useRuntimeInstanceServices();
8172
+ const basicInfo = inject(NCB_PROVIDE.DATA_RELATION_SHIP);
8028
8173
  const targetFieldId = getRuntimeDataFieldId(widget.props);
8029
8174
  const configDependency = widget.props.componentDependency?.configDependency || {};
8030
8175
  const controlledFormData = computed(() => {
@@ -8043,7 +8188,8 @@ function useDependency(widget, props) {
8043
8188
  props.widget.props,
8044
8189
  props.widget.id,
8045
8190
  row,
8046
- parent
8191
+ parent,
8192
+ basicInfo?.formChangeStatus
8047
8193
  );
8048
8194
  },
8049
8195
  (displayProps) => {
@@ -8630,6 +8776,15 @@ async function applyConsumeObjectTraceChange(opts) {
8630
8776
  }
8631
8777
  return {};
8632
8778
  }
8779
+ class MBRender {
8780
+ // 多 Sheet / 同屏场景用 ownerId 隔离实例;基类仅声明宿主需要实现的能力。
8781
+ async openConsumeModal(_ownerId, _data) {
8782
+ throw new Error("Function openConsumeModal not implemented.");
8783
+ }
8784
+ destoryConsumeModal(_ownerId) {
8785
+ throw new Error("Function destoryConsumeModal not implemented.");
8786
+ }
8787
+ }
8633
8788
  const _hoisted_1$5 = ["data-merge", "data-fill-direction"];
8634
8789
  const _hoisted_2$1 = {
8635
8790
  key: 0,
@@ -9046,6 +9201,7 @@ const DocumentSubTable = /* @__PURE__ */ defineComponent({
9046
9201
  const newRowsData = actionType === "copyRow" ? [cloneDeep(rowData)] : Array.from({
9047
9202
  length: rowNum
9048
9203
  }, (_, index2) => transformUtils.addSubTableRowItem({
9204
+ defaultValueOrigins: instance.value?.defaultValueValidation?.defaults,
9049
9205
  defaultData: currentFieldDefaultData.value,
9050
9206
  quickFillData: quickFillDatas?.[index2],
9051
9207
  subFieldId: field,
@@ -9451,8 +9607,6 @@ function waitDomStable(el, idle = 100, timeout = 2e3) {
9451
9607
  var MaterialConsumeActionType = /* @__PURE__ */ ((MaterialConsumeActionType2) => {
9452
9608
  MaterialConsumeActionType2["CONFIRM"] = "CONFIRM";
9453
9609
  MaterialConsumeActionType2["SCAN"] = "SCAN";
9454
- MaterialConsumeActionType2["VIEW_BOM"] = "VIEW_BOM";
9455
- MaterialConsumeActionType2["CHANGE_PARSE_RULE"] = "CHANGE_PARSE_RULE";
9456
9610
  return MaterialConsumeActionType2;
9457
9611
  })(MaterialConsumeActionType || {});
9458
9612
  const MaterialConsumeTable = /* @__PURE__ */ defineComponent({
@@ -9603,6 +9757,7 @@ const MaterialConsumeTable = /* @__PURE__ */ defineComponent({
9603
9757
  length: rowNum
9604
9758
  }, (_, i) => {
9605
9759
  const row = transformUtils.addSubTableRowItem({
9760
+ defaultValueOrigins: instance.value?.defaultValueValidation?.defaults,
9606
9761
  defaultData: currentFieldDefaultData.value,
9607
9762
  quickFillData: quickFillDatas?.[i],
9608
9763
  subFieldId: field,
@@ -9703,12 +9858,6 @@ const MaterialConsumeTable = /* @__PURE__ */ defineComponent({
9703
9858
  title: props.widget.props.tableTitle
9704
9859
  });
9705
9860
  break;
9706
- case MaterialConsumeActionType.VIEW_BOM:
9707
- tableController.openBomModal();
9708
- break;
9709
- case MaterialConsumeActionType.CHANGE_PARSE_RULE:
9710
- tableController.changeScanRule();
9711
- break;
9712
9861
  }
9713
9862
  };
9714
9863
  const getNewTdInfo = (tdInfo, rowData, rowIndex) => {
@@ -9886,10 +10035,6 @@ const MaterialConsumeTable = /* @__PURE__ */ defineComponent({
9886
10035
  label: "业务操作"
9887
10036
  },
9888
10037
  showScanBtn ? getMenuByAction(SubTableActionEnum.SCAN) : void 0,
9889
- // tableController.actualBomEntries?.length
9890
- // ? getMenuByAction(SubTableActionEnum.VIEW_BOM)
9891
- // : undefined,
9892
- // getMenuByAction(SubTableActionEnum.CHANGE_PARSE_RULE),
9893
10038
  {
9894
10039
  type: SubTableActionMenuTypeEnum.DIVIDER
9895
10040
  },
@@ -10175,7 +10320,6 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
10175
10320
  showInsertMultiple: { type: Boolean, default: false },
10176
10321
  showEditBtn: { type: Boolean, default: false },
10177
10322
  isMaterialConsume: { type: Boolean, default: false },
10178
- showBom: { type: Boolean, default: false },
10179
10323
  showScanBtn: { type: Boolean, default: false },
10180
10324
  showConfirmBtn: { type: Boolean, default: false },
10181
10325
  noPopover: { type: Boolean, default: false },
@@ -10199,19 +10343,6 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
10199
10343
  label: "条码扫描",
10200
10344
  icon: "size24 icon-saoma1"
10201
10345
  },
10202
- {
10203
- show: props.showBom,
10204
- type: "action",
10205
- key: SubTableActionEnum.VIEW_BOM,
10206
- label: "BOM查看",
10207
- icon: "size24 icon-a-bom11"
10208
- },
10209
- {
10210
- type: "action",
10211
- key: SubTableActionEnum.CHANGE_PARSE_RULE,
10212
- label: "条码解析规则变更",
10213
- icon: "icon-tiaomajiexi"
10214
- },
10215
10346
  {
10216
10347
  type: "divider"
10217
10348
  },
@@ -10438,7 +10569,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
10438
10569
  };
10439
10570
  }
10440
10571
  });
10441
- const SubTableAction = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-acff8196"]]);
10572
+ const SubTableAction = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-7047f1a3"]]);
10442
10573
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
10443
10574
  __name: "fixed-table-action",
10444
10575
  props: {
@@ -10968,7 +11099,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
10968
11099
  showInsertMultiple: { type: Boolean, default: true },
10969
11100
  showEditBtn: { type: Boolean },
10970
11101
  isMaterialConsume: { type: Boolean },
10971
- showBom: { type: Boolean },
10972
11102
  showScanBtn: { type: Boolean },
10973
11103
  showConfirmBtn: { type: Boolean },
10974
11104
  noPopover: { type: Boolean },
@@ -11025,7 +11155,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
11025
11155
  showDelBtn: __props.showDelBtn,
11026
11156
  showQuickFillBtn: __props.showQuickFillBtn,
11027
11157
  noPopover: __props.noPopover,
11028
- showBom: __props.showBom,
11029
11158
  showConfirmBtn: __props.showConfirmBtn,
11030
11159
  showEditBtn: __props.showEditBtn,
11031
11160
  showInsertMultiple: __props.showInsertMultiple,
@@ -11033,79 +11162,79 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
11033
11162
  isMaterialConsume: __props.isMaterialConsume,
11034
11163
  menus: __props.menus,
11035
11164
  onMenuClick
11036
- }, null, 8, ["showDelBtn", "showQuickFillBtn", "noPopover", "showBom", "showConfirmBtn", "showEditBtn", "showInsertMultiple", "showScanBtn", "isMaterialConsume", "menus"]);
11165
+ }, null, 8, ["showDelBtn", "showQuickFillBtn", "noPopover", "showConfirmBtn", "showEditBtn", "showInsertMultiple", "showScanBtn", "isMaterialConsume", "menus"]);
11037
11166
  };
11038
11167
  }
11039
11168
  });
11040
- const DynamicTableAction = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-53d7e66c"]]);
11169
+ const DynamicTableAction = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-8710052f"]]);
11041
11170
  export {
11042
- registerFormulaFuncs as $,
11043
- resolveObjectBomEntry as A,
11171
+ ScanParamType as $,
11172
+ MaterialConsumptionPatternEnum as A,
11044
11173
  BorderTD as B,
11045
- runWithFillProduct as C,
11174
+ validateObjectBomForScan as C,
11046
11175
  DEFAULT_BOOLEAN_FIELD_WIDTH as D,
11047
- useNocodeFormWidget as E,
11048
- applyConsumeObjectTraceChange as F,
11049
- getObjectBomProductQuery as G,
11050
- EMPTY_PRODUCT_VERSION_ID as H,
11051
- normalizeHistoricalAutofillRow as I,
11052
- readSealValue as J,
11053
- isSealStamped as K,
11054
- stampSealValue as L,
11176
+ resolveObjectBomEntry as E,
11177
+ FormModelController as F,
11178
+ runWithFillProduct as G,
11179
+ useNocodeFormWidget as H,
11180
+ applyConsumeObjectTraceChange as I,
11181
+ getObjectBomProductQuery as J,
11182
+ EMPTY_PRODUCT_VERSION_ID as K,
11183
+ normalizeHistoricalAutofillRow as L,
11055
11184
  MAX_RUNTIME_SHEETS as M,
11056
- NCB_PROVIDE as N,
11057
- isValidSealValue as O,
11058
- clearSealValue as P,
11059
- parseRuntimeFieldPath as Q,
11060
- calculateFormula as R,
11061
- useStyles as S,
11062
- useDependency as T,
11063
- useFieldPresentation as U,
11064
- useRuntimeEditorFlusher as V,
11065
- RuntimeFormStateStore as W,
11066
- createRuntimeInstanceContext as X,
11067
- RuntimeInstanceRegistry as Y,
11068
- ScanParamType as Z,
11069
- RequiredQtyCalcRule as _,
11185
+ readSealValue as N,
11186
+ isSealStamped as O,
11187
+ stampSealValue as P,
11188
+ isValidSealValue as Q,
11189
+ clearSealValue as R,
11190
+ NCB_PROVIDE as S,
11191
+ calculateFormula as T,
11192
+ useStyles as U,
11193
+ useDependency as V,
11194
+ useFieldPresentation as W,
11195
+ useRuntimeEditorFlusher as X,
11196
+ RuntimeFormStateStore as Y,
11197
+ createRuntimeInstanceContext as Z,
11198
+ RuntimeInstanceRegistry as _,
11070
11199
  MAX_RUNTIME_SHEET_TITLE_LENGTH as a,
11071
- getMenuByAction as a$,
11072
- moveSealValue as a0,
11073
- DocumentPaper as a1,
11074
- DynamicTableAction as a2,
11075
- _sfc_main$5 as a3,
11076
- getRuntimeDataFieldId as a4,
11077
- buildRuntimeFieldPath as a5,
11078
- resolveRuntimeFieldProps as a6,
11079
- resolveRuntimeFieldState as a7,
11080
- assembleRules as a8,
11081
- isAttachFieldActive as a9,
11082
- RuntimeDependencyService as aA,
11083
- RuntimeFieldRegistry as aB,
11084
- RuntimeInstanceEventBus as aC,
11085
- RuntimePersistenceCoordinator as aD,
11086
- RuntimeValidationService as aE,
11087
- SubTableCore as aF,
11088
- buildFormChangeDisplayRows as aG,
11089
- convertV1Runtime as aH,
11090
- detailsHaveFormChangeRowOps as aI,
11091
- extractFormChangeRowDetails as aJ,
11092
- getFormChangeRowKey as aK,
11093
- getFormChangeRowOp as aL,
11094
- getSubTableQuickFillInfo as aM,
11095
- isAnnLocationSelected as aN,
11096
- isBlank as aO,
11097
- isFormChangeGhostRow as aP,
11098
- normalizeHistoricalFieldConfig as aQ,
11099
- pickObjectFieldKeys as aR,
11100
- recordSubtableRowAdd as aS,
11101
- recordSubtableRowDelete as aT,
11102
- relocateDeletedRowsToEnd as aU,
11103
- resolveAnnotationFieldLocation as aV,
11104
- resolveFormChangeRowUi as aW,
11105
- resolveRowFormChangeMark as aX,
11106
- setSelectMobileTdId as aY,
11107
- stripLegacyFormConfigFromPaper as aZ,
11108
- SubTableActionMenuTypeEnum as a_,
11200
+ SubTableActionMenuTypeEnum as a$,
11201
+ RequiredQtyCalcRule as a0,
11202
+ MBRender as a1,
11203
+ MCRender as a2,
11204
+ moveSealValue as a3,
11205
+ DocumentPaper as a4,
11206
+ DynamicTableAction as a5,
11207
+ _sfc_main$5 as a6,
11208
+ resolveRuntimeFieldProps as a7,
11209
+ resolveRuntimeFieldState as a8,
11210
+ assembleRules as a9,
11211
+ RuntimeAsyncTaskCoordinator as aA,
11212
+ RuntimeDependencyService as aB,
11213
+ RuntimeFieldRegistry as aC,
11214
+ RuntimeInstanceEventBus as aD,
11215
+ RuntimePersistenceCoordinator as aE,
11216
+ RuntimeValidationService as aF,
11217
+ SubTableCore as aG,
11218
+ buildFormChangeDisplayRows as aH,
11219
+ convertV1Runtime as aI,
11220
+ detailsHaveFormChangeRowOps as aJ,
11221
+ extractFormChangeRowDetails as aK,
11222
+ getFormChangeRowKey as aL,
11223
+ getFormChangeRowOp as aM,
11224
+ getSubTableQuickFillInfo as aN,
11225
+ isAnnLocationSelected as aO,
11226
+ isBlank as aP,
11227
+ isFormChangeGhostRow as aQ,
11228
+ normalizeHistoricalFieldConfig as aR,
11229
+ pickObjectFieldKeys as aS,
11230
+ recordSubtableRowAdd as aT,
11231
+ recordSubtableRowDelete as aU,
11232
+ relocateDeletedRowsToEnd as aV,
11233
+ resolveAnnotationFieldLocation as aW,
11234
+ resolveFormChangeRowUi as aX,
11235
+ resolveRowFormChangeMark as aY,
11236
+ setSelectMobileTdId as aZ,
11237
+ stripLegacyFormConfigFromPaper as a_,
11109
11238
  getRuntimeDependencyOutputKey as aa,
11110
11239
  isRowAddedInCurrentFormChange as ab,
11111
11240
  resolveFormulaData as ac,
@@ -11121,53 +11250,54 @@ export {
11121
11250
  useMaterialBalance as am,
11122
11251
  collectFormChangeFieldLocations as an,
11123
11252
  nextFormChangeRowViewHistoryId as ao,
11124
- DeviceConnector as ap,
11125
- DocumentLoading as aq,
11126
- DynamicQuickFillModal as ar,
11127
- FixedQuickFillModal as as,
11128
- FormTmplConfigController as at,
11129
- LEGACY_RUNTIME_FORM_CONFIG_KEYS as au,
11130
- LEGACY_RUNTIME_SHEET_ID as av,
11131
- LEGACY_RUNTIME_SHEET_TITLE as aw,
11132
- MCDataUtil as ax,
11133
- OCR_MODEL_PRECISION_ENUM_KEY as ay,
11134
- RuntimeAsyncTaskCoordinator as az,
11135
- MULTI_SHEET_SCHEMA_VERSION as b,
11136
- SubTableActionEnum as b0,
11137
- resolveScanFillData as b1,
11138
- buildDefaultMapFromProfile as b2,
11139
- buildFieldStatusFromProfile as b3,
11140
- getRowHandlersForFieldChange as b4,
11141
- getInsertSubMenu as b5,
11142
- resolveScanAdjustType as b6,
11143
- resolveScanQty as b7,
11144
- toDateOnly as b8,
11145
- hasSubtableBusinessData as b9,
11146
- getCopySubMenu as ba,
11147
- resolveScanParsedValue as bb,
11148
- isProductBatchEmptyRow as bc,
11149
- normalizeGridColumnWidth as c,
11150
- getParseFormulaVarInfos as d,
11151
- createRuntimeDocumentV2 as e,
11152
- clampSealPosition as f,
11153
- getBusinessFieldKey as g,
11154
- normalizeSealDiameter as h,
11155
- normalizeFieldWidth as i,
11156
- isCellAutoLineBreak as j,
11157
- findFieldProfile as k,
11158
- normalizeHistoricalBusinessRow as l,
11159
- DeviceLinkTmplUtil as m,
11253
+ BaseFormModelFetcher as ap,
11254
+ DeviceConnector as aq,
11255
+ DocumentLoading as ar,
11256
+ DynamicQuickFillModal as as,
11257
+ FixedQuickFillModal as at,
11258
+ FormTmplConfigController as au,
11259
+ LEGACY_RUNTIME_FORM_CONFIG_KEYS as av,
11260
+ LEGACY_RUNTIME_SHEET_ID as aw,
11261
+ LEGACY_RUNTIME_SHEET_TITLE as ax,
11262
+ MCDataUtil as ay,
11263
+ OCR_MODEL_PRECISION_ENUM_KEY as az,
11264
+ bindFormulaCacheInvalidation as b,
11265
+ getMenuByAction as b0,
11266
+ SubTableActionEnum as b1,
11267
+ resolveScanFillData as b2,
11268
+ resolveScanParsedValue as b3,
11269
+ buildDefaultMapFromProfile as b4,
11270
+ buildFieldStatusFromProfile as b5,
11271
+ getRowHandlersForFieldChange as b6,
11272
+ getInsertSubMenu as b7,
11273
+ resolveScanAdjustType as b8,
11274
+ resolveScanQty as b9,
11275
+ toDateOnly as ba,
11276
+ hasSubtableBusinessData as bb,
11277
+ getCopySubMenu as bc,
11278
+ isProductBatchEmptyRow as bd,
11279
+ currentParamsConfig as c,
11280
+ MULTI_SHEET_SCHEMA_VERSION as d,
11281
+ normalizeGridColumnWidth as e,
11282
+ createRuntimeDocumentV2 as f,
11283
+ getParseFormulaVarInfos as g,
11284
+ clampSealPosition as h,
11285
+ normalizeSealDiameter as i,
11286
+ normalizeFieldWidth as j,
11287
+ isCellAutoLineBreak as k,
11288
+ useFormTmplConfig as l,
11289
+ findFieldProfile as m,
11160
11290
  normalizeFieldFontSize as n,
11161
- normalizeAIOcrTmpl as o,
11162
- useWidgetStaticAttrs as p,
11163
- useRuntimeInstanceServices as q,
11164
- setSelectAnnotationId as r,
11165
- setSelectValidatorId as s,
11166
- useRuntimeRowState as t,
11167
- useFormTmplConfig as u,
11168
- getObjectBomMaterialLotQuery as v,
11169
- buildObjectLotExtraQuery as w,
11170
- resolveObjectFieldKeys as x,
11171
- MaterialConsumptionPatternEnum as y,
11172
- validateObjectBomForScan as z
11291
+ normalizeHistoricalBusinessRow as o,
11292
+ DeviceLinkTmplUtil as p,
11293
+ normalizeAIOcrTmpl as q,
11294
+ useWidgetStaticAttrs as r,
11295
+ useRuntimeInstanceServices as s,
11296
+ setSelectValidatorId as t,
11297
+ useFormModel as u,
11298
+ setSelectAnnotationId as v,
11299
+ useRuntimeRowState as w,
11300
+ getObjectBomMaterialLotQuery as x,
11301
+ buildObjectLotExtraQuery as y,
11302
+ resolveObjectFieldKeys as z
11173
11303
  };