@gct-paas/excel 0.1.49 → 0.1.51-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-BujOt502.js → BaseComponent-BShN-6c8.js} +4 -3
  3. package/dist/{VueVideoPlayer-B8GR2HPo.js → VueVideoPlayer-DH8pXh28.js} +2 -2
  4. package/dist/{align-editor--BUxJjPg.js → align-editor-DJ859WQZ.js} +1 -1
  5. package/dist/{barcode-design-DGX6Ol4t.js → barcode-design-Gq8_VO9l.js} +3 -2
  6. package/dist/base/index.es.js +517 -222
  7. package/dist/{diagonal-design-oiPfvxr7.js → diagonal-design-C2Ybg80S.js} +3 -2
  8. package/dist/{dynamic-table-action-Bhkrp7KE.js → dynamic-table-action-B3QEu1gT.js} +452 -322
  9. package/dist/{dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-CidYX2eX.js → dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BY59Q_d_.js} +2296 -593
  10. package/dist/{edit.utils-CXmmCnxE-BXlWf2Zf.js → edit.utils-CXmmCnxE-wWPJuGRP.js} +1 -1
  11. package/dist/excel.css +614 -723
  12. package/dist/{exceljs.min-Ta0dJQqu.js → exceljs.min-D9sk8ogV.js} +2 -2
  13. package/dist/{font-editor-Dmj2hu7T.js → font-editor-CRxKpZ5w.js} +3 -3
  14. package/dist/{image-design-C3yJcthI.js → image-design-D6Mh4gmF.js} +3 -8
  15. package/dist/{index-C4SreE7Q.js → index-B10CES7y.js} +3 -2
  16. package/dist/{index-wKwGHLnP.js → index-BHaAq-DQ.js} +2 -1
  17. package/dist/{index-DMAuxwlt.js → index-BIks4AlA.js} +2 -1
  18. package/dist/{index-CMN1t7G7.js → index-BItsxlLG.js} +4 -3
  19. package/dist/{index-1kD3Vcrg.js → index-BLwPDGyh.js} +3 -2
  20. package/dist/{index-KQqw3i9h.js → index-BMBgoKQJ.js} +3 -2
  21. package/dist/{index-DF8n1Gru.js → index-Ba7SenEy.js} +4 -3
  22. package/dist/{index-DRKCOV3w.js → index-BaQxoGFV.js} +2 -1
  23. package/dist/{index-BDr7t7vL.js → index-BbNwGIpN.js} +2 -1
  24. package/dist/{index-DdOpcuy6.js → index-BdkVqSGZ.js} +8995 -3731
  25. package/dist/{index-GIYmXP7h.js → index-BfGKeHIi.js} +3 -2
  26. package/dist/{index-B0Qf1-mt.js → index-BkCygM2H.js} +4 -3
  27. package/dist/{index-CEYSrHod.js → index-Bkx2ZZxc.js} +3 -2
  28. package/dist/{index-OwTnsnnd.js → index-BzHOWFfJ.js} +3 -2
  29. package/dist/{index-CaLRSpkL.js → index-BzTGz-yp.js} +3 -2
  30. package/dist/{index-L7CRRS4N.js → index-C9oFT3gk.js} +3 -2
  31. package/dist/{index-C6WDE2xc.js → index-CCXIoitH.js} +2 -1
  32. package/dist/{index-IOqBW_eS.js → index-CfMaU3Cq.js} +7 -3
  33. package/dist/{index-D9lmC_sX.js → index-CkYFepvp.js} +4 -3
  34. package/dist/{index-B2VHOqo4.js → index-CqZOsGgU.js} +3 -2
  35. package/dist/{index-BOMuRlHQ.js → index-D8Pv4_xg.js} +3 -2
  36. package/dist/{index-BtAlyN0W.js → index-D925vhPg.js} +3 -2
  37. package/dist/{index-BEEhGWk7.js → index-DECfc3al.js} +3 -2
  38. package/dist/{index-CUTV5Yr2.js → index-DS1bbdtf.js} +5 -4
  39. package/dist/{index-DBSvao2o.js → index-DVloZxGE.js} +2 -1
  40. package/dist/{index-BlCF32GJ.js → index-DpPtXY8I.js} +4 -3
  41. package/dist/{index-UnwowxL3.js → index-DpQIy9xD.js} +2 -1
  42. package/dist/{index-DLTES9Zq.js → index-IY_wwSl8.js} +3 -2
  43. package/dist/{index-BwuwoFQQ.js → index-MWQxnJy_.js} +3 -2
  44. package/dist/{index-B4ZpSIPH.js → index-caGeDRoA.js} +4 -3
  45. package/dist/{index-Bd15pfRH.js → index-eHOXhn3S.js} +2 -1
  46. package/dist/{index-DQC7zJRO.js → index-emsDlrTV.js} +2 -1
  47. package/dist/{index-B4hIBKZ6.js → index-vrDKB2Af.js} +3 -2
  48. package/dist/{index-CZo7qVZK.js → index-xTI_Fqhb.js} +2 -1
  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-219qzsVL.js → online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-BftaGVRR.js} +27 -3
  51. package/dist/{pagination-design-CNML3qGx.js → pagination-design-BO_7vrQd.js} +3 -2
  52. package/dist/paper-widget-design-18uum1H9.js +4 -0
  53. package/dist/{print-runtime-instance-DKR1MX8-.js → print-runtime-instance-B1Q_Xc8x.js} +1 -1
  54. package/dist/{print-snapshot-renderer-BIWDQkSC.js → print-snapshot-renderer-wEKNMo0m.js} +3 -3
  55. package/dist/{qrcode-design-CUQ4gaJ0.js → qrcode-design-CeNvj_74.js} +1 -1
  56. package/dist/{revo-grid.entry-Be5Mx_h7.js → revo-grid.entry-iJpKwgs4.js} +1 -1
  57. package/dist/{revogr-attribution_7.entry-DmJFrubR.js → revogr-attribution_7.entry-C-cdTXU8.js} +3 -3
  58. package/dist/{revogr-clipboard_3.entry-COcvqK0w.js → revogr-clipboard_3.entry-BHJgHR9f.js} +2 -2
  59. package/dist/{revogr-data_4.entry-Dc4luGHv.js → revogr-data_4.entry-R_-ZZIdp.js} +2 -2
  60. package/dist/{revogr-filter-panel.entry-B1l-ouo-.js → revogr-filter-panel.entry-RU6Tewnq.js} +1 -1
  61. package/dist/seal-design-BnQkmNDo.js +4 -0
  62. package/dist/{serialnumber-design-hcI8TwmS.js → serialnumber-design-b0I5H8lq.js} +1 -1
  63. package/dist/shared/index.es.js +29 -28
  64. package/dist/{single-field-drop-CnuMgeEW.js → single-field-drop-Bj73o6Jt.js} +2 -3
  65. package/dist/{size-editor-D4ZNlV-c.js → size-editor-Bps566OT.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-Df_Z-LYK.js → sub-table-factory-CykoFqnP.js} +276 -89
  160. package/dist/{text-design-gySXbKUQ.js → text-design-kWxwqj3H.js} +3 -2
  161. package/dist/{throttle-Cpk1LoGk-DEDsjc1B.js → throttle-Cpk1LoGk-B3zgXjle.js} +1 -1
  162. package/dist/{timediff-design-BHLUYM_L.js → timediff-design-sh7-fMvN.js} +2 -1
  163. package/dist/{trace-like-wrapper-CD0q7Bpg.js → trace-like-wrapper-ByePbRT3.js} +3 -2
  164. package/dist/{value-editor.vue_vue_type_style_index_0_lang-Dp_NLPcS.js → value-editor.vue_vue_type_style_index_0_lang-BuGHTPEo.js} +3 -2
  165. package/dist/{widget-barcode-Dho-QBc4.js → widget-barcode-BP0WV4jM.js} +5 -4
  166. package/dist/{widget-diagonal-LOzS5LGZ.js → widget-diagonal-Cwfunmde.js} +4 -4
  167. package/dist/{widget-image-CE9y7lzB.js → widget-image-3xm-HfRy.js} +5 -7
  168. package/dist/{widget-line-DK-tRBi0.js → widget-line-B2Q3DwW6.js} +3 -2
  169. package/dist/{widget-pagination-JLrTk_QY.js → widget-pagination-CV9ShZXH.js} +6 -5
  170. package/dist/{widget-power-B136JrJ6.js → widget-power-Bc0Fv3R6.js} +4 -4
  171. package/dist/{widget-qrcode-CQ79eZwR.js → widget-qrcode-D_LkgIb2.js} +4 -3
  172. package/dist/{widget-rangelimit-DORQgXtz.js → widget-rangelimit-Db1rsnwU.js} +3 -4
  173. package/dist/{widget-serialnumber-BvhwTK5N.js → widget-serialnumber-BqZ3zJst.js} +1 -1
  174. package/dist/{widget-text-D6au0tli.js → widget-text-IJbtzWxl.js} +5 -5
  175. package/dist/{widget-timediff-C3SAIS2-.js → widget-timediff-Bp8U1rzO.js} +3 -2
  176. package/package.json +2 -6
  177. package/dist/AntdIcon-DCIaV352.js +0 -1108
  178. package/dist/index-B6csmYLK.js +0 -4353
  179. package/dist/mb-render-CQlqaMrC.js +0 -276
  180. package/dist/paper-widget-design-B8WyX87-.js +0 -4
  181. package/dist/seal-design-Q8W8Umib.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-CidYX2eX.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-BY59Q_d_.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-CQlqaMrC.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",
@@ -4323,10 +4249,7 @@ class RuntimeInstanceEventBus {
4323
4249
  class RuntimeInstanceRegistry {
4324
4250
  /** 当前渲染入口的加载状态,由工厂更新;PreviewContainer 直接读取,无需宿主额外传参。 */
4325
4251
  loadState = shallowReactive({ loading: false, error: void 0 });
4326
- /**
4327
- * 顶层对象使用浅响应式:实例新增、删除需要驱动 Vue 更新;record 内的服务类
4328
- * 不需要被 Vue 深度代理,各自内部负责自己的响应式状态和生命周期
4329
- */
4252
+ /** 顶层容器和记录都只做浅响应式;服务类仍保持原始引用。 */
4330
4253
  records = shallowReactive({});
4331
4254
  /**
4332
4255
  * 统一托管订阅、watch 和编译结果的取消函数
@@ -4368,8 +4291,9 @@ class RuntimeInstanceRegistry {
4368
4291
  events,
4369
4292
  validation
4370
4293
  };
4371
- this.records[context.uniqueId] = markRaw(record);
4372
- return record;
4294
+ const reactiveRecord = shallowReactive(record);
4295
+ this.records[context.uniqueId] = reactiveRecord;
4296
+ return reactiveRecord;
4373
4297
  }
4374
4298
  /**
4375
4299
  * 在页面回调准备完成后挂载实例控制器
@@ -4547,6 +4471,7 @@ class RuntimeInstanceRegistry {
4547
4471
  this.disposables.get(uniqueId)?.forEach((dispose) => dispose());
4548
4472
  this.disposables.delete(uniqueId);
4549
4473
  record.fieldInitializer?.dispose();
4474
+ record.defaultValueValidation?.dispose();
4550
4475
  record.ruleCompiler?.dispose();
4551
4476
  record.validation.dispose();
4552
4477
  record.scriptRunner?.dispose();
@@ -6010,8 +5935,6 @@ class MaterialConsumeTableController {
6010
5935
  initialDataPrepared = false;
6011
5936
  /** 最近一次同步需求数量时使用的数量依赖。 */
6012
5937
  syncedMaterialNoNum;
6013
- /** 多 Sheet / 同屏多实例下,弹层和异步交互使用该键隔离。 */
6014
- runtimeOwnerId = "";
6015
5938
  /** 表单是否已暂存或提交(已处理过则不再跑初始化) */
6016
5939
  get isDataProcessed() {
6017
5940
  return ["STASH", "SUBMIT"].includes(this.dataStatus ?? "");
@@ -6119,21 +6042,6 @@ class MaterialConsumeTableController {
6119
6042
  this.scanRuleProps = toParseRuleConfig(id);
6120
6043
  this.scanRuleInfo = await getParseRuleInfo({ id: this.scanRuleProps.parsingRuleId });
6121
6044
  }
6122
- /**
6123
- * 变更条码规则
6124
- */
6125
- async changeScanRule() {
6126
- const { id_, base_id_ } = this.scanRuleInfo ?? {};
6127
- const newConfig = await MaterialConsumeTableController.render.openChangeRuleModal({
6128
- config: this.scanRuleProps,
6129
- subModelKey: this.widget.props.modelKey,
6130
- formModelController: this.formModelController
6131
- });
6132
- if (newConfig) {
6133
- this.scanRuleProps = newConfig;
6134
- this.scanRuleInfo = await getParseRuleInfo({ id: this.scanRuleProps.parsingRuleId });
6135
- }
6136
- }
6137
6045
  /**
6138
6046
  * 是否人为指定物料
6139
6047
  * @readonly
@@ -6838,6 +6746,31 @@ class MaterialConsumeTableController {
6838
6746
  await this.applyUnitConversionRules(row);
6839
6747
  }
6840
6748
  }
6749
+ class MCRender {
6750
+ /**
6751
+ * 提示信息
6752
+ * @param opts
6753
+ */
6754
+ message(opts) {
6755
+ throw new Error("Function message not implemented.");
6756
+ }
6757
+ async openScanModal(opts) {
6758
+ throw new Error("Function openScanModal not implemented.");
6759
+ }
6760
+ /**
6761
+ * 扫码返回多条候选时,弹窗选择其中一条
6762
+ * 取消返回 undefined
6763
+ */
6764
+ async openMultiRowsModal(opts) {
6765
+ throw new Error("Function openMultiRowsModal not implemented.");
6766
+ }
6767
+ /**
6768
+ * 关闭当前页面的 form-base 弹层
6769
+ */
6770
+ destroyAllModals(_ownerId) {
6771
+ throw new Error("Function destroyAllModals not implemented.");
6772
+ }
6773
+ }
6841
6774
  var SubTableActionEnum = /* @__PURE__ */ ((SubTableActionEnum2) => {
6842
6775
  SubTableActionEnum2["QuickFillRowCurrent"] = "quickFillRowCurrent";
6843
6776
  SubTableActionEnum2["InsertRowBefore"] = "insertRowBefore";
@@ -6849,8 +6782,6 @@ var SubTableActionEnum = /* @__PURE__ */ ((SubTableActionEnum2) => {
6849
6782
  SubTableActionEnum2["ClearRowCurrent"] = "clearRowCurrent";
6850
6783
  SubTableActionEnum2["CONFIRM"] = "CONFIRM";
6851
6784
  SubTableActionEnum2["SCAN"] = "SCAN";
6852
- SubTableActionEnum2["VIEW_BOM"] = "VIEW_BOM";
6853
- SubTableActionEnum2["CHANGE_PARSE_RULE"] = "CHANGE_PARSE_RULE";
6854
6785
  SubTableActionEnum2["RowEdit"] = "rowEdit";
6855
6786
  SubTableActionEnum2["Insert1GroupAfter"] = "insert1GroupAfter";
6856
6787
  return SubTableActionEnum2;
@@ -6870,18 +6801,6 @@ function getMenuByAction(type4) {
6870
6801
  label: "条码扫描",
6871
6802
  icon: "size24 icon-saoma1"
6872
6803
  },
6873
- [SubTableActionEnum.VIEW_BOM]: {
6874
- type: SubTableActionMenuTypeEnum.ACTION,
6875
- key: SubTableActionEnum.VIEW_BOM,
6876
- label: "BOM查看",
6877
- icon: "size24 icon-a-bom11"
6878
- },
6879
- [SubTableActionEnum.CHANGE_PARSE_RULE]: {
6880
- type: SubTableActionMenuTypeEnum.ACTION,
6881
- key: SubTableActionEnum.CHANGE_PARSE_RULE,
6882
- label: "条码解析规则变更",
6883
- icon: "icon-tiaomajiexi"
6884
- },
6885
6804
  [SubTableActionEnum.QuickFillRowCurrent]: {
6886
6805
  type: SubTableActionMenuTypeEnum.ACTION,
6887
6806
  key: SubTableActionEnum.QuickFillRowCurrent,
@@ -7065,6 +6984,204 @@ class TdHandler {
7065
6984
  this.mergeTd({ cellWidget: { props: { newSpecificConfig: { customLoader } } } });
7066
6985
  }
7067
6986
  }
6987
+ class BaseFormModelFetcher {
6988
+ /** 默认接口 */
6989
+ apis = {
6990
+ getFieldMetaList: api.apaas.fieldMeta.getList,
6991
+ getModelMetaSubModelList: api.apaas.modelComprehensive.getSubModelList,
6992
+ getModelDetail2FieldList: api.apaas.modelMeta.getDetail
6993
+ };
6994
+ /**
6995
+ * 模型映射缓存
6996
+ */
6997
+ modelMetaMap = {};
6998
+ async load(opts) {
6999
+ const { model } = opts;
7000
+ this.modelMetaMap = {};
7001
+ await this.loadModelFields(model);
7002
+ await this.loadSubModelsFields(model);
7003
+ return Object.values(this.modelMetaMap);
7004
+ }
7005
+ /**
7006
+ * 补全字段信息
7007
+ * @param modelKey 字段所属的模型
7008
+ * @param [fields=[]]
7009
+ * @return {*}
7010
+ */
7011
+ completeFields(modelKey, fields = []) {
7012
+ return fields.map((field) => {
7013
+ if (!field.modelKey) {
7014
+ field.modelKey = modelKey;
7015
+ }
7016
+ return field;
7017
+ });
7018
+ }
7019
+ /**
7020
+ * 根据模型key加载模型字段
7021
+ *
7022
+ * @param [modelKey=this.model]
7023
+ * @return {*}
7024
+ */
7025
+ async loadModelFields(modelKey) {
7026
+ if (typeof this.apis.getFieldMetaList !== "function") {
7027
+ return;
7028
+ }
7029
+ const res = await this.apis.getFieldMetaList({
7030
+ modelKey
7031
+ });
7032
+ this.modelMetaMap[modelKey] = {
7033
+ key: modelKey,
7034
+ name: "",
7035
+ fields: this.completeFields(modelKey, res)
7036
+ };
7037
+ return res;
7038
+ }
7039
+ /**
7040
+ * 加载表单所有子表字段对应模型的字段信息集合
7041
+ */
7042
+ async loadSubModelsFields(modelKey) {
7043
+ const res = await this.apis.getModelMetaSubModelList({
7044
+ modelKey
7045
+ });
7046
+ (res ?? []).forEach((m) => {
7047
+ if (!this.modelMetaMap[m.key]) {
7048
+ this.modelMetaMap[m.key] = {
7049
+ key: m.key,
7050
+ name: m.name,
7051
+ subModel: m.subModel,
7052
+ fields: this.completeFields(m.key, m.fieldMetaList)
7053
+ };
7054
+ }
7055
+ });
7056
+ }
7057
+ }
7058
+ class FormModelController {
7059
+ /** 主模型的key */
7060
+ masterModelKey;
7061
+ /** 主模型的名称 */
7062
+ masterModelName;
7063
+ /** 模型请求器 */
7064
+ fetcher = new BaseFormModelFetcher();
7065
+ /** 模型映射缓存 */
7066
+ modelMetaMap = reactive({});
7067
+ /** 主模型信息 */
7068
+ get masterModel() {
7069
+ return this.modelMetaMap[this.masterModelKey];
7070
+ }
7071
+ /** 获取主模型字段集合 */
7072
+ get masterFields() {
7073
+ return this.masterModel?.fields;
7074
+ }
7075
+ /** 获取子模型 */
7076
+ getSubModel(subModelKey) {
7077
+ return this.modelMetaMap[subModelKey];
7078
+ }
7079
+ /** 获取子模型字段集合 */
7080
+ getSubModelFields(subModelKey) {
7081
+ return this.getSubModel(subModelKey)?.fields;
7082
+ }
7083
+ /**
7084
+ * 表单字段下拉选项(排除系统字段和子表字段)
7085
+ * value 格式为 modelKey.fieldKey,与字段映射存储格式一致
7086
+ */
7087
+ getFormFieldOptions(subModelKey) {
7088
+ const fields = subModelKey ? this.getSubModelFields(subModelKey) : this.masterModel?.fields;
7089
+ return (fields ?? []).filter(
7090
+ (field) => !this.isSystemField(field) && !this.isSubField(field) && !this.isObjectField(field)
7091
+ ).map((field) => ({
7092
+ ...field,
7093
+ label: `${field.name}`,
7094
+ value: `${field.modelKey}.${field.key}`
7095
+ }));
7096
+ }
7097
+ /**
7098
+ * 初始化
7099
+ *
7100
+ * @param opts
7101
+ * - model 主模型key
7102
+ * - name 主模型名称
7103
+ */
7104
+ async init(opts) {
7105
+ this.masterModelKey = opts.model;
7106
+ this.masterModelName = opts.name;
7107
+ await this.load();
7108
+ }
7109
+ /** 刷新数据 */
7110
+ async refresh() {
7111
+ await this.load();
7112
+ }
7113
+ /**
7114
+ * 加载数据并填充到modelMetaMap中
7115
+ * @protected
7116
+ * @return {*}
7117
+ */
7118
+ async load() {
7119
+ if (!this.masterModelKey) {
7120
+ console.error("缺少主模型的key");
7121
+ return;
7122
+ }
7123
+ const models = await this.fetcher.load({ model: this.masterModelKey });
7124
+ this.modelMetaMap = models.reduce((acc, cur) => {
7125
+ acc[cur.key] = cur;
7126
+ if (cur.key === this.masterModelKey) {
7127
+ cur.name = this.masterModelName;
7128
+ }
7129
+ return acc;
7130
+ }, {});
7131
+ }
7132
+ /** 是否是子模型字段 */
7133
+ isSubField(field) {
7134
+ return field.type === FIELD_TYPE.MASTERSLAVE && field.bindInfo;
7135
+ }
7136
+ /** 是否是预置字段,包括系统字段和业务内置字段 */
7137
+ isPresetField(field) {
7138
+ return [CreateType.BUILTIN, CreateType.SYSTEM].includes(field.createType);
7139
+ }
7140
+ /** 是否是系统字段 */
7141
+ isSystemField(field) {
7142
+ return field.createType === CreateType.SYSTEM;
7143
+ }
7144
+ /** 是否是对象字段类型 */
7145
+ isObjectField(field) {
7146
+ return field.type === FIELD_TYPE.OBJECT_TYPE;
7147
+ }
7148
+ /**
7149
+ * 获取主模型里子表字段对应的子模型key
7150
+ *
7151
+ * @param fieldKey 子表字段在主表里的字段key
7152
+ * @return {*}
7153
+ */
7154
+ getSubFieldModelKey(fieldKey) {
7155
+ return this.masterFields.find((field) => field.key === fieldKey)?.bindInfo;
7156
+ }
7157
+ /**
7158
+ * 获取字段信息
7159
+ * @param [modelKey=this.masterModelKey] 模型key
7160
+ * @param fieldKey 字段key
7161
+ * @return {*}
7162
+ */
7163
+ findField(modelKey = this.masterModelKey, fieldKey) {
7164
+ const model = this.modelMetaMap[modelKey];
7165
+ if (!model) {
7166
+ return;
7167
+ }
7168
+ return model.fields.find((field) => field.key === fieldKey);
7169
+ }
7170
+ }
7171
+ const FormModelControllerKey = "GctFormModelController";
7172
+ function useFormModel() {
7173
+ function provideController(c = new FormModelController()) {
7174
+ provide(FormModelControllerKey, c);
7175
+ return c;
7176
+ }
7177
+ function injectController() {
7178
+ return inject(FormModelControllerKey);
7179
+ }
7180
+ return {
7181
+ provideController,
7182
+ injectController
7183
+ };
7184
+ }
7068
7185
  const SCAN_ROW_META_KEYS = /* @__PURE__ */ new Set([FRONT_ROW_KEY, "id_", "id", "group_", "deleted_", "delete_"]);
7069
7186
  function hasRowId(row) {
7070
7187
  const id = row.id_ ?? row.id;
@@ -7298,8 +7415,6 @@ class SubTableCore {
7298
7415
  const { actionKey } = params;
7299
7416
  if (actionKey === SubTableActionEnum.SCAN) {
7300
7417
  this.openScanModal();
7301
- } else if (actionKey === SubTableActionEnum.CHANGE_PARSE_RULE) {
7302
- this.changeScanRule();
7303
7418
  }
7304
7419
  }
7305
7420
  /**
@@ -7346,9 +7461,9 @@ class SubTableCore {
7346
7461
  const result = {};
7347
7462
  const config = this.bizTableConfig;
7348
7463
  if (config?.dataLockControlField && params.field === config.dataLockControlField) {
7349
- result.readonly = isPersistedSignatureLockActive(config, params.rowData);
7464
+ result.readonly = !params.formChangeStatus && isPersistedSignatureLockActive(config, params.rowData);
7350
7465
  } else if (config?.dataLockControlField) {
7351
- result.disabled = isSignatureLockActive(config, params.rowData);
7466
+ result.disabled = !params.formChangeStatus && isSignatureLockActive(config, params.rowData);
7352
7467
  }
7353
7468
  return result;
7354
7469
  }
@@ -7401,20 +7516,6 @@ class SubTableCore {
7401
7516
  scanRuleInfo;
7402
7517
  /** 解析规则配置对象 */
7403
7518
  scanRuleProps;
7404
- /**
7405
- * 变更条码规则
7406
- */
7407
- async changeScanRule() {
7408
- const newConfig = await this.render.openChangeRuleModal({
7409
- config: this.scanRuleProps,
7410
- subModelKey: this.subModelKey,
7411
- formModelController: this.formModelController
7412
- });
7413
- if (newConfig) {
7414
- this.scanRuleProps = newConfig;
7415
- this.scanRuleInfo = await getParseRuleInfo({ id: newConfig.parsingRuleId });
7416
- }
7417
- }
7418
7519
  /**
7419
7520
  * 打开扫描弹窗
7420
7521
  * @param opts
@@ -7493,37 +7594,71 @@ class SubTableCore {
7493
7594
  console.log(this.ctx.widget.props.tableTitle, "处理表单按钮点击事件", params);
7494
7595
  }
7495
7596
  }
7496
- let currentParamsConfig = {
7497
- routingParamList: [],
7498
- inspectionParamList: []
7499
- };
7500
- function setFormulaParamsConfig(paramsConfig = {}) {
7501
- currentParamsConfig = paramsConfig ?? {};
7597
+ const STORAGE_KEY = "gct:formula:params:v1";
7598
+ const PARAMS_CHANGED_EVENT = "gct:formula-params-updated:v1";
7599
+ function emptyConfig() {
7600
+ return {
7601
+ routingParamList: [],
7602
+ inspectionParamList: [],
7603
+ deviceParamList: []
7604
+ };
7502
7605
  }
7503
- async function CALC_IS_QUALIFIED(key, value, paramList) {
7504
- if (!key || value == null) {
7505
- return null;
7606
+ function normalizeList(value) {
7607
+ if (!Array.isArray(value)) return [];
7608
+ return value.filter(
7609
+ (item) => item !== null && typeof item === "object" && typeof item.customFieldKey === "string"
7610
+ );
7611
+ }
7612
+ function normalizeConfig(value) {
7613
+ const data = value !== null && typeof value === "object" ? value : {};
7614
+ return {
7615
+ routingParamList: normalizeList(data.routingParamList),
7616
+ inspectionParamList: normalizeList(data.inspectionParamList),
7617
+ deviceParamList: normalizeList(data.deviceParamList)
7618
+ };
7619
+ }
7620
+ let lastRaw;
7621
+ let cachedConfig = emptyConfig();
7622
+ function readFormulaParamsConfig() {
7623
+ const raw = window.localStorage.getItem(STORAGE_KEY);
7624
+ if (raw !== lastRaw) {
7625
+ try {
7626
+ cachedConfig = normalizeConfig(raw ? JSON.parse(raw) : null);
7627
+ } catch {
7628
+ cachedConfig = emptyConfig();
7629
+ }
7630
+ lastRaw = raw;
7631
+ }
7632
+ return cachedConfig;
7633
+ }
7634
+ const currentParamsConfig = {
7635
+ get routingParamList() {
7636
+ return readFormulaParamsConfig().routingParamList;
7637
+ },
7638
+ get inspectionParamList() {
7639
+ return readFormulaParamsConfig().inspectionParamList;
7506
7640
  }
7507
- const config = paramList?.find((e) => e.customFieldKey === key);
7508
- if (!config) return null;
7509
- const { upperLimit, lowerLimit } = config;
7510
- if (lowerLimit == null || upperLimit == null) return null;
7511
- const actual = Number(value);
7512
- const min = Number(config.lowerLimit);
7513
- const max = Number(config.upperLimit);
7514
- if (![actual, min, max].every(Number.isFinite)) return null;
7515
- return actual >= min && actual <= max;
7516
- }
7517
- const FORMULA_FUNCS = {
7518
- RoutingParamCheck: (key, value) => CALC_IS_QUALIFIED(key, value, currentParamsConfig.routingParamList || []),
7519
- InspectionParamCheck: (key, value) => CALC_IS_QUALIFIED(key, value, currentParamsConfig.inspectionParamList || [])
7520
7641
  };
7521
- function registerFormulaFuncs() {
7522
- const register2 = window.NocodeAdapter.utils?.formulaRegister;
7523
- if (!register2) return;
7524
- Object.entries(FORMULA_FUNCS).forEach(([k, func]) => {
7525
- register2(k, func);
7642
+ function setFormulaParamsConfig(paramsConfig = {}) {
7643
+ const raw = JSON.stringify(normalizeConfig(paramsConfig));
7644
+ if (window.localStorage.getItem(STORAGE_KEY) === raw) return;
7645
+ window.localStorage.setItem(STORAGE_KEY, raw);
7646
+ window.dispatchEvent(new Event(PARAMS_CHANGED_EVENT));
7647
+ }
7648
+ const boundCalculators = /* @__PURE__ */ new WeakSet();
7649
+ function bindFormulaCacheInvalidation(value) {
7650
+ if (typeof value !== "function") return;
7651
+ const calculator = value;
7652
+ if (typeof calculator.clear !== "function" || boundCalculators.has(calculator)) return;
7653
+ boundCalculators.add(calculator);
7654
+ const clearCache = () => calculator.clear();
7655
+ window.addEventListener(PARAMS_CHANGED_EVENT, clearCache);
7656
+ window.addEventListener("storage", (event) => {
7657
+ if (event.storageArea === window.localStorage && (event.key === STORAGE_KEY || event.key === null)) {
7658
+ clearCache();
7659
+ }
7526
7660
  });
7661
+ clearCache();
7527
7662
  }
7528
7663
  function getGroupProductIds(entry) {
7529
7664
  const ids = [entry.product_id_];
@@ -7966,6 +8101,15 @@ function useNocodeFormWidget(props, emit) {
7966
8101
  ...colIndex !== void 0 ? { colIndex } : {}
7967
8102
  });
7968
8103
  }
8104
+ if (eventType === "onChange" && dataRelationShip?.renderModeType === RenderModeEnum.FormMode) {
8105
+ const keys = widget.props?.valueChangeDataSourceKeys;
8106
+ if (keys?.length) {
8107
+ const current = value.value;
8108
+ await instance.value?.dataSourceManager?.queryOnValueChange(keys, {
8109
+ cleared: current == null || current === "" || Array.isArray(current) && !current.length
8110
+ });
8111
+ }
8112
+ }
7969
8113
  if (eventType === "onBlur" && dataRelationShip?.renderModeType === RenderModeEnum.FormMode && !instance.value?.controller?.preparing) {
7970
8114
  instance.value?.validation.requestLive("blur", true);
7971
8115
  }
@@ -8048,6 +8192,7 @@ function useDependency(widget, props) {
8048
8192
  const { isFieldModel, subFieldKey } = widget.props;
8049
8193
  const fieldWidget = ref(cloneDeep(props.widget));
8050
8194
  const { instance, formStateStore } = useRuntimeInstanceServices();
8195
+ const basicInfo = inject(NCB_PROVIDE.DATA_RELATION_SHIP);
8051
8196
  const targetFieldId = getRuntimeDataFieldId(widget.props);
8052
8197
  const configDependency = widget.props.componentDependency?.configDependency || {};
8053
8198
  const controlledFormData = computed(() => {
@@ -8066,7 +8211,8 @@ function useDependency(widget, props) {
8066
8211
  props.widget.props,
8067
8212
  props.widget.id,
8068
8213
  row,
8069
- parent
8214
+ parent,
8215
+ basicInfo?.formChangeStatus
8070
8216
  );
8071
8217
  },
8072
8218
  (displayProps) => {
@@ -8653,6 +8799,15 @@ async function applyConsumeObjectTraceChange(opts) {
8653
8799
  }
8654
8800
  return {};
8655
8801
  }
8802
+ class MBRender {
8803
+ // 多 Sheet / 同屏场景用 ownerId 隔离实例;基类仅声明宿主需要实现的能力。
8804
+ async openConsumeModal(_ownerId, _data) {
8805
+ throw new Error("Function openConsumeModal not implemented.");
8806
+ }
8807
+ destoryConsumeModal(_ownerId) {
8808
+ throw new Error("Function destoryConsumeModal not implemented.");
8809
+ }
8810
+ }
8656
8811
  const _hoisted_1$5 = ["data-merge", "data-fill-direction"];
8657
8812
  const _hoisted_2$1 = {
8658
8813
  key: 0,
@@ -9069,6 +9224,7 @@ const DocumentSubTable = /* @__PURE__ */ defineComponent({
9069
9224
  const newRowsData = actionType === "copyRow" ? [cloneDeep(rowData)] : Array.from({
9070
9225
  length: rowNum
9071
9226
  }, (_, index2) => transformUtils.addSubTableRowItem({
9227
+ defaultValueOrigins: instance.value?.defaultValueValidation?.defaults,
9072
9228
  defaultData: currentFieldDefaultData.value,
9073
9229
  quickFillData: quickFillDatas?.[index2],
9074
9230
  subFieldId: field,
@@ -9474,8 +9630,6 @@ function waitDomStable(el, idle = 100, timeout = 2e3) {
9474
9630
  var MaterialConsumeActionType = /* @__PURE__ */ ((MaterialConsumeActionType2) => {
9475
9631
  MaterialConsumeActionType2["CONFIRM"] = "CONFIRM";
9476
9632
  MaterialConsumeActionType2["SCAN"] = "SCAN";
9477
- MaterialConsumeActionType2["VIEW_BOM"] = "VIEW_BOM";
9478
- MaterialConsumeActionType2["CHANGE_PARSE_RULE"] = "CHANGE_PARSE_RULE";
9479
9633
  return MaterialConsumeActionType2;
9480
9634
  })(MaterialConsumeActionType || {});
9481
9635
  const MaterialConsumeTable = /* @__PURE__ */ defineComponent({
@@ -9626,6 +9780,7 @@ const MaterialConsumeTable = /* @__PURE__ */ defineComponent({
9626
9780
  length: rowNum
9627
9781
  }, (_, i) => {
9628
9782
  const row = transformUtils.addSubTableRowItem({
9783
+ defaultValueOrigins: instance.value?.defaultValueValidation?.defaults,
9629
9784
  defaultData: currentFieldDefaultData.value,
9630
9785
  quickFillData: quickFillDatas?.[i],
9631
9786
  subFieldId: field,
@@ -9726,12 +9881,6 @@ const MaterialConsumeTable = /* @__PURE__ */ defineComponent({
9726
9881
  title: props.widget.props.tableTitle
9727
9882
  });
9728
9883
  break;
9729
- case MaterialConsumeActionType.VIEW_BOM:
9730
- tableController.openBomModal();
9731
- break;
9732
- case MaterialConsumeActionType.CHANGE_PARSE_RULE:
9733
- tableController.changeScanRule();
9734
- break;
9735
9884
  }
9736
9885
  };
9737
9886
  const getNewTdInfo = (tdInfo, rowData, rowIndex) => {
@@ -9909,10 +10058,6 @@ const MaterialConsumeTable = /* @__PURE__ */ defineComponent({
9909
10058
  label: "业务操作"
9910
10059
  },
9911
10060
  showScanBtn ? getMenuByAction(SubTableActionEnum.SCAN) : void 0,
9912
- // tableController.actualBomEntries?.length
9913
- // ? getMenuByAction(SubTableActionEnum.VIEW_BOM)
9914
- // : undefined,
9915
- // getMenuByAction(SubTableActionEnum.CHANGE_PARSE_RULE),
9916
10061
  {
9917
10062
  type: SubTableActionMenuTypeEnum.DIVIDER
9918
10063
  },
@@ -10198,7 +10343,6 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
10198
10343
  showInsertMultiple: { type: Boolean, default: false },
10199
10344
  showEditBtn: { type: Boolean, default: false },
10200
10345
  isMaterialConsume: { type: Boolean, default: false },
10201
- showBom: { type: Boolean, default: false },
10202
10346
  showScanBtn: { type: Boolean, default: false },
10203
10347
  showConfirmBtn: { type: Boolean, default: false },
10204
10348
  noPopover: { type: Boolean, default: false },
@@ -10222,19 +10366,6 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
10222
10366
  label: "条码扫描",
10223
10367
  icon: "size24 icon-saoma1"
10224
10368
  },
10225
- {
10226
- show: props.showBom,
10227
- type: "action",
10228
- key: SubTableActionEnum.VIEW_BOM,
10229
- label: "BOM查看",
10230
- icon: "size24 icon-a-bom11"
10231
- },
10232
- {
10233
- type: "action",
10234
- key: SubTableActionEnum.CHANGE_PARSE_RULE,
10235
- label: "条码解析规则变更",
10236
- icon: "icon-tiaomajiexi"
10237
- },
10238
10369
  {
10239
10370
  type: "divider"
10240
10371
  },
@@ -10461,7 +10592,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
10461
10592
  };
10462
10593
  }
10463
10594
  });
10464
- const SubTableAction = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-acff8196"]]);
10595
+ const SubTableAction = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-7047f1a3"]]);
10465
10596
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
10466
10597
  __name: "fixed-table-action",
10467
10598
  props: {
@@ -10991,7 +11122,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
10991
11122
  showInsertMultiple: { type: Boolean, default: true },
10992
11123
  showEditBtn: { type: Boolean },
10993
11124
  isMaterialConsume: { type: Boolean },
10994
- showBom: { type: Boolean },
10995
11125
  showScanBtn: { type: Boolean },
10996
11126
  showConfirmBtn: { type: Boolean },
10997
11127
  noPopover: { type: Boolean },
@@ -11048,7 +11178,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
11048
11178
  showDelBtn: __props.showDelBtn,
11049
11179
  showQuickFillBtn: __props.showQuickFillBtn,
11050
11180
  noPopover: __props.noPopover,
11051
- showBom: __props.showBom,
11052
11181
  showConfirmBtn: __props.showConfirmBtn,
11053
11182
  showEditBtn: __props.showEditBtn,
11054
11183
  showInsertMultiple: __props.showInsertMultiple,
@@ -11056,79 +11185,79 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
11056
11185
  isMaterialConsume: __props.isMaterialConsume,
11057
11186
  menus: __props.menus,
11058
11187
  onMenuClick
11059
- }, null, 8, ["showDelBtn", "showQuickFillBtn", "noPopover", "showBom", "showConfirmBtn", "showEditBtn", "showInsertMultiple", "showScanBtn", "isMaterialConsume", "menus"]);
11188
+ }, null, 8, ["showDelBtn", "showQuickFillBtn", "noPopover", "showConfirmBtn", "showEditBtn", "showInsertMultiple", "showScanBtn", "isMaterialConsume", "menus"]);
11060
11189
  };
11061
11190
  }
11062
11191
  });
11063
- const DynamicTableAction = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-53d7e66c"]]);
11192
+ const DynamicTableAction = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-8710052f"]]);
11064
11193
  export {
11065
- registerFormulaFuncs as $,
11066
- resolveObjectBomEntry as A,
11194
+ ScanParamType as $,
11195
+ MaterialConsumptionPatternEnum as A,
11067
11196
  BorderTD as B,
11068
- runWithFillProduct as C,
11197
+ validateObjectBomForScan as C,
11069
11198
  DEFAULT_BOOLEAN_FIELD_WIDTH as D,
11070
- useNocodeFormWidget as E,
11071
- applyConsumeObjectTraceChange as F,
11072
- getObjectBomProductQuery as G,
11073
- EMPTY_PRODUCT_VERSION_ID as H,
11074
- normalizeHistoricalAutofillRow as I,
11075
- readSealValue as J,
11076
- isSealStamped as K,
11077
- stampSealValue as L,
11199
+ resolveObjectBomEntry as E,
11200
+ FormModelController as F,
11201
+ runWithFillProduct as G,
11202
+ useNocodeFormWidget as H,
11203
+ applyConsumeObjectTraceChange as I,
11204
+ getObjectBomProductQuery as J,
11205
+ EMPTY_PRODUCT_VERSION_ID as K,
11206
+ normalizeHistoricalAutofillRow as L,
11078
11207
  MAX_RUNTIME_SHEETS as M,
11079
- NCB_PROVIDE as N,
11080
- isValidSealValue as O,
11081
- clearSealValue as P,
11082
- parseRuntimeFieldPath as Q,
11083
- calculateFormula as R,
11084
- useStyles as S,
11085
- useDependency as T,
11086
- useFieldPresentation as U,
11087
- useRuntimeEditorFlusher as V,
11088
- RuntimeFormStateStore as W,
11089
- createRuntimeInstanceContext as X,
11090
- RuntimeInstanceRegistry as Y,
11091
- ScanParamType as Z,
11092
- RequiredQtyCalcRule as _,
11208
+ readSealValue as N,
11209
+ isSealStamped as O,
11210
+ stampSealValue as P,
11211
+ isValidSealValue as Q,
11212
+ clearSealValue as R,
11213
+ NCB_PROVIDE as S,
11214
+ calculateFormula as T,
11215
+ useStyles as U,
11216
+ useDependency as V,
11217
+ useFieldPresentation as W,
11218
+ useRuntimeEditorFlusher as X,
11219
+ RuntimeFormStateStore as Y,
11220
+ createRuntimeInstanceContext as Z,
11221
+ RuntimeInstanceRegistry as _,
11093
11222
  MAX_RUNTIME_SHEET_TITLE_LENGTH as a,
11094
- getMenuByAction as a$,
11095
- moveSealValue as a0,
11096
- DocumentPaper as a1,
11097
- DynamicTableAction as a2,
11098
- _sfc_main$5 as a3,
11099
- getRuntimeDataFieldId as a4,
11100
- buildRuntimeFieldPath as a5,
11101
- resolveRuntimeFieldProps as a6,
11102
- resolveRuntimeFieldState as a7,
11103
- assembleRules as a8,
11104
- isAttachFieldActive as a9,
11105
- RuntimeDependencyService as aA,
11106
- RuntimeFieldRegistry as aB,
11107
- RuntimeInstanceEventBus as aC,
11108
- RuntimePersistenceCoordinator as aD,
11109
- RuntimeValidationService as aE,
11110
- SubTableCore as aF,
11111
- buildFormChangeDisplayRows as aG,
11112
- convertV1Runtime as aH,
11113
- detailsHaveFormChangeRowOps as aI,
11114
- extractFormChangeRowDetails as aJ,
11115
- getFormChangeRowKey as aK,
11116
- getFormChangeRowOp as aL,
11117
- getSubTableQuickFillInfo as aM,
11118
- isAnnLocationSelected as aN,
11119
- isBlank as aO,
11120
- isFormChangeGhostRow as aP,
11121
- normalizeHistoricalFieldConfig as aQ,
11122
- pickObjectFieldKeys as aR,
11123
- recordSubtableRowAdd as aS,
11124
- recordSubtableRowDelete as aT,
11125
- relocateDeletedRowsToEnd as aU,
11126
- resolveAnnotationFieldLocation as aV,
11127
- resolveFormChangeRowUi as aW,
11128
- resolveRowFormChangeMark as aX,
11129
- setSelectMobileTdId as aY,
11130
- stripLegacyFormConfigFromPaper as aZ,
11131
- SubTableActionMenuTypeEnum as a_,
11223
+ SubTableActionMenuTypeEnum as a$,
11224
+ RequiredQtyCalcRule as a0,
11225
+ MBRender as a1,
11226
+ MCRender as a2,
11227
+ moveSealValue as a3,
11228
+ DocumentPaper as a4,
11229
+ DynamicTableAction as a5,
11230
+ _sfc_main$5 as a6,
11231
+ resolveRuntimeFieldProps as a7,
11232
+ resolveRuntimeFieldState as a8,
11233
+ assembleRules as a9,
11234
+ RuntimeAsyncTaskCoordinator as aA,
11235
+ RuntimeDependencyService as aB,
11236
+ RuntimeFieldRegistry as aC,
11237
+ RuntimeInstanceEventBus as aD,
11238
+ RuntimePersistenceCoordinator as aE,
11239
+ RuntimeValidationService as aF,
11240
+ SubTableCore as aG,
11241
+ buildFormChangeDisplayRows as aH,
11242
+ convertV1Runtime as aI,
11243
+ detailsHaveFormChangeRowOps as aJ,
11244
+ extractFormChangeRowDetails as aK,
11245
+ getFormChangeRowKey as aL,
11246
+ getFormChangeRowOp as aM,
11247
+ getSubTableQuickFillInfo as aN,
11248
+ isAnnLocationSelected as aO,
11249
+ isBlank as aP,
11250
+ isFormChangeGhostRow as aQ,
11251
+ normalizeHistoricalFieldConfig as aR,
11252
+ pickObjectFieldKeys as aS,
11253
+ recordSubtableRowAdd as aT,
11254
+ recordSubtableRowDelete as aU,
11255
+ relocateDeletedRowsToEnd as aV,
11256
+ resolveAnnotationFieldLocation as aW,
11257
+ resolveFormChangeRowUi as aX,
11258
+ resolveRowFormChangeMark as aY,
11259
+ setSelectMobileTdId as aZ,
11260
+ stripLegacyFormConfigFromPaper as a_,
11132
11261
  getRuntimeDependencyOutputKey as aa,
11133
11262
  isRowAddedInCurrentFormChange as ab,
11134
11263
  resolveFormulaData as ac,
@@ -11144,53 +11273,54 @@ export {
11144
11273
  useMaterialBalance as am,
11145
11274
  collectFormChangeFieldLocations as an,
11146
11275
  nextFormChangeRowViewHistoryId as ao,
11147
- DeviceConnector as ap,
11148
- DocumentLoading as aq,
11149
- DynamicQuickFillModal as ar,
11150
- FixedQuickFillModal as as,
11151
- FormTmplConfigController as at,
11152
- LEGACY_RUNTIME_FORM_CONFIG_KEYS as au,
11153
- LEGACY_RUNTIME_SHEET_ID as av,
11154
- LEGACY_RUNTIME_SHEET_TITLE as aw,
11155
- MCDataUtil as ax,
11156
- OCR_MODEL_PRECISION_ENUM_KEY as ay,
11157
- RuntimeAsyncTaskCoordinator as az,
11158
- MULTI_SHEET_SCHEMA_VERSION as b,
11159
- SubTableActionEnum as b0,
11160
- resolveScanFillData as b1,
11161
- buildDefaultMapFromProfile as b2,
11162
- buildFieldStatusFromProfile as b3,
11163
- getRowHandlersForFieldChange as b4,
11164
- getInsertSubMenu as b5,
11165
- resolveScanAdjustType as b6,
11166
- resolveScanQty as b7,
11167
- toDateOnly as b8,
11168
- hasSubtableBusinessData as b9,
11169
- getCopySubMenu as ba,
11170
- resolveScanParsedValue as bb,
11171
- isProductBatchEmptyRow as bc,
11172
- normalizeGridColumnWidth as c,
11173
- getParseFormulaVarInfos as d,
11174
- createRuntimeDocumentV2 as e,
11175
- clampSealPosition as f,
11176
- getBusinessFieldKey as g,
11177
- normalizeSealDiameter as h,
11178
- normalizeFieldWidth as i,
11179
- isCellAutoLineBreak as j,
11180
- findFieldProfile as k,
11181
- normalizeHistoricalBusinessRow as l,
11182
- DeviceLinkTmplUtil as m,
11276
+ BaseFormModelFetcher as ap,
11277
+ DeviceConnector as aq,
11278
+ DocumentLoading as ar,
11279
+ DynamicQuickFillModal as as,
11280
+ FixedQuickFillModal as at,
11281
+ FormTmplConfigController as au,
11282
+ LEGACY_RUNTIME_FORM_CONFIG_KEYS as av,
11283
+ LEGACY_RUNTIME_SHEET_ID as aw,
11284
+ LEGACY_RUNTIME_SHEET_TITLE as ax,
11285
+ MCDataUtil as ay,
11286
+ OCR_MODEL_PRECISION_ENUM_KEY as az,
11287
+ bindFormulaCacheInvalidation as b,
11288
+ getMenuByAction as b0,
11289
+ SubTableActionEnum as b1,
11290
+ resolveScanFillData as b2,
11291
+ resolveScanParsedValue as b3,
11292
+ buildDefaultMapFromProfile as b4,
11293
+ buildFieldStatusFromProfile as b5,
11294
+ getRowHandlersForFieldChange as b6,
11295
+ getInsertSubMenu as b7,
11296
+ resolveScanAdjustType as b8,
11297
+ resolveScanQty as b9,
11298
+ toDateOnly as ba,
11299
+ hasSubtableBusinessData as bb,
11300
+ getCopySubMenu as bc,
11301
+ isProductBatchEmptyRow as bd,
11302
+ currentParamsConfig as c,
11303
+ MULTI_SHEET_SCHEMA_VERSION as d,
11304
+ normalizeGridColumnWidth as e,
11305
+ createRuntimeDocumentV2 as f,
11306
+ getParseFormulaVarInfos as g,
11307
+ clampSealPosition as h,
11308
+ normalizeSealDiameter as i,
11309
+ normalizeFieldWidth as j,
11310
+ isCellAutoLineBreak as k,
11311
+ useFormTmplConfig as l,
11312
+ findFieldProfile as m,
11183
11313
  normalizeFieldFontSize as n,
11184
- normalizeAIOcrTmpl as o,
11185
- useWidgetStaticAttrs as p,
11186
- useRuntimeInstanceServices as q,
11187
- setSelectAnnotationId as r,
11188
- setSelectValidatorId as s,
11189
- useRuntimeRowState as t,
11190
- useFormTmplConfig as u,
11191
- getObjectBomMaterialLotQuery as v,
11192
- buildObjectLotExtraQuery as w,
11193
- resolveObjectFieldKeys as x,
11194
- MaterialConsumptionPatternEnum as y,
11195
- validateObjectBomForScan as z
11314
+ normalizeHistoricalBusinessRow as o,
11315
+ DeviceLinkTmplUtil as p,
11316
+ normalizeAIOcrTmpl as q,
11317
+ useWidgetStaticAttrs as r,
11318
+ useRuntimeInstanceServices as s,
11319
+ setSelectValidatorId as t,
11320
+ useFormModel as u,
11321
+ setSelectAnnotationId as v,
11322
+ useRuntimeRowState as w,
11323
+ getObjectBomMaterialLotQuery as x,
11324
+ buildObjectLotExtraQuery as y,
11325
+ resolveObjectFieldKeys as z
11196
11326
  };