@gct-paas/excel 0.1.28-beta.9 → 0.1.29

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 (347) hide show
  1. package/dist/{BaseComponent-yoXj5Q9c.js → BaseComponent-9YPaGJfR.js} +3 -1
  2. package/dist/{VueVideoPlayer-DnxMrbso.js → VueVideoPlayer-DDUZu4FR.js} +2 -2
  3. package/dist/{align-editor-B4gydK1M.js → align-editor-aEWznFoT.js} +1 -1
  4. package/dist/{barcode-design-Cid0MzDI.js → barcode-design-BxpkeU3s.js} +2 -2
  5. package/dist/base/index.es.js +718 -466
  6. package/dist/{diagonal-design-C1ZotzUS.js → diagonal-design-TclIHJPn.js} +2 -2
  7. package/dist/{dynamic-table-action-C1o2TjqX.js → dynamic-table-action-DmQ4nVdA.js} +825 -216
  8. package/dist/{dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-D8HQKSsX.js → dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BviS9x-o.js} +2457 -757
  9. package/dist/{edit.utils-CXmmCnxE-DEOcuCns.js → edit.utils-CXmmCnxE-pmY90xaE.js} +1 -1
  10. package/dist/excel.css +20939 -21654
  11. package/dist/{exceljs.min-DHw6Xo0Z.js → exceljs.min-DMs_Il25.js} +2 -2
  12. package/dist/{font-editor-BMzWHu2P.js → font-editor-Jk202Wfw.js} +3 -3
  13. package/dist/{image-design-Cv7Md3br.js → image-design-CV8ivT4U.js} +3 -2
  14. package/dist/index-56SEKe0q.js +56 -0
  15. package/dist/{index-ClwYjOaz.js → index-B94zjbXB.js} +2 -2
  16. package/dist/{index-DCyS2gPu.js → index-B9hn-Xpy.js} +62 -261
  17. package/dist/{index-CTfI5z2v.js → index-BI1w0HuA.js} +2 -2
  18. package/dist/{index-DYJ2NY6r.js → index-BIyoFjsu.js} +1 -1
  19. package/dist/{index-Cf0HUPLj.js → index-BNdFxtuu.js} +2 -2
  20. package/dist/index-BR3okRzi.js +26 -0
  21. package/dist/{index-B_rAitke.js → index-BVy2F-LZ.js} +2 -2
  22. package/dist/{index-CDLpl1vT.js → index-BWSh7ft6.js} +57467 -75573
  23. package/dist/{index-BQLH_u5E.js → index-BgUSwNSn.js} +1 -1
  24. package/dist/{index-DVknMcoI.js → index-BzNleuvF.js} +8 -5
  25. package/dist/{index-BC7ZPYu4.js → index-CJgeCzTz.js} +4 -7
  26. package/dist/{index-KJIuf63z.js → index-CM0bDadW.js} +3 -3
  27. package/dist/{index-DYPfKE_B.js → index-Co8dy8tY.js} +2 -2
  28. package/dist/{index-Ca8Vr4hp.js → index-CslB9Mj3.js} +3 -3
  29. package/dist/{index-B2oEU1dw.js → index-D3RlguP-.js} +2 -2
  30. package/dist/{index-De0lJXBW.js → index-DAokF2RK.js} +2 -2
  31. package/dist/{index-B_qNr-yz.js → index-DUomn6r4.js} +2 -2
  32. package/dist/{index-DGF9F0hk.js → index-DVBGDVN0.js} +2 -2
  33. package/dist/{index-DLhVj92F.js → index-DVCumM_5.js} +2 -2
  34. package/dist/{index-DHCfwj7L.js → index-DX2S50Jz.js} +1 -1
  35. package/dist/{index-b03O87gX.js → index-DXutPZQB.js} +1 -1
  36. package/dist/{index-BMaOAtO5.js → index-DXvugQoP.js} +2 -2
  37. package/dist/{index-t_DIs_9d.js → index-DmLngOvC.js} +2 -2
  38. package/dist/{index-EGCBxJ5U.js → index-Dxiaj_9W.js} +2 -2
  39. package/dist/{index-CB2KdECV.js → index-DzZ4dTHg.js} +2 -2
  40. package/dist/index-P-QlF0da.js +26 -0
  41. package/dist/{index-BNW93hpM.js → index-RHv1ncwn.js} +1 -1
  42. package/dist/{index-Bi8eFVNQ.js → index-eaPQQt2I.js} +1 -1
  43. package/dist/{index-DPHsObDL.js → index-iCBdHXeT.js} +2 -2
  44. package/dist/{index-D4SRGG7R.js → index-kZ3vhOMA.js} +2 -2
  45. package/dist/{index-yee5hcWj.js → index-q0gBBMoc.js} +2 -2
  46. package/dist/{index--m7aMhTe.js → index-s7YNVpgF.js} +1 -1
  47. package/dist/{index-DWd__rfX.js → index-zuExIXWU.js} +1 -1
  48. package/dist/index.es.js +49 -47
  49. package/dist/{mb-render-DNA0sAdk.js → mb-render-BBRR_byl.js} +3 -3
  50. package/dist/{version-select-Dt0iT2ZE.js → online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-BGrVMSEF.js} +418 -421
  51. package/dist/{pagination-design-a-8WGmGL.js → pagination-design-DWvn4UrB.js} +2 -2
  52. package/dist/paper-widget-design-DZ7tF6Rn.js +4 -0
  53. package/dist/{qrcode-design-CWa7ucIf.js → qrcode-design-yLHw_1Hb.js} +1 -1
  54. package/dist/{revo-grid.entry-D7L9YPVS.js → revo-grid.entry-DW8yYngF.js} +1 -1
  55. package/dist/{revogr-attribution_7.entry-Cp0OE2PX.js → revogr-attribution_7.entry-WnSOjAfL.js} +3 -3
  56. package/dist/{revogr-clipboard_3.entry-CcGTw0f4.js → revogr-clipboard_3.entry-5f1ZtJWy.js} +2 -2
  57. package/dist/{revogr-data_4.entry-Bh7oCpj9.js → revogr-data_4.entry-BwcXhOPY.js} +2 -2
  58. package/dist/{revogr-filter-panel.entry-OJyr7l1E.js → revogr-filter-panel.entry-CXpo_Btw.js} +1 -1
  59. package/dist/{serialnumber-design-BDTeHe2C.js → serialnumber-design-CYdELIDU.js} +1 -1
  60. package/dist/shared/index.es.js +25 -30
  61. package/dist/{single-field-drop-C-IeYaFA.js → single-field-drop-hAnlTOzR.js} +2 -2
  62. package/dist/{size-editor-Ibjf73lo.js → size-editor-Dr3sVcUl.js} +1 -1
  63. package/dist/src/adapter/adapter.d.ts +36 -0
  64. package/dist/src/adapter/setup.d.ts +18 -12
  65. package/dist/src/domain/field/auto-complete/material-container-manifest.d.ts +2 -0
  66. package/dist/src/domain/field/auto-complete/material-no-manifest.d.ts +2 -0
  67. package/dist/src/domain/field/auto-complete/related-lot-no-manifest.d.ts +2 -0
  68. package/dist/src/domain/field/auto-complete/scrap-material-no-manifest.d.ts +2 -0
  69. package/dist/src/domain/field/auto-complete/sterilization-container-manifest.d.ts +2 -0
  70. package/dist/src/domain/field/date/date-manifest.d.ts +2 -0
  71. package/dist/src/domain/field/date/date-time-manifest.d.ts +2 -0
  72. package/dist/src/domain/field/date/production-date-manifest.d.ts +2 -0
  73. package/dist/src/domain/field/date/re-inspection-date-manifest.d.ts +2 -0
  74. package/dist/src/domain/field/date/report-end-time-manifest.d.ts +2 -0
  75. package/dist/src/domain/field/date/report-start-time-manifest.d.ts +2 -0
  76. package/dist/src/domain/field/date/time-manifest.d.ts +2 -0
  77. package/dist/src/domain/field/date/trace-date-manifest.d.ts +2 -0
  78. package/dist/src/domain/field/date/validity-manifest.d.ts +2 -0
  79. package/dist/src/domain/field/date/warehouse-receipt-date-manifest.d.ts +2 -0
  80. package/dist/src/domain/field/index.d.ts +9 -0
  81. package/dist/src/domain/field/number/decimal-manifest.d.ts +2 -0
  82. package/dist/src/domain/field/number/destructive-test-qty-manifest.d.ts +2 -0
  83. package/dist/src/domain/field/number/double-manifest.d.ts +2 -0
  84. package/dist/src/domain/field/number/good-qty-manifest.d.ts +2 -0
  85. package/dist/src/domain/field/number/inspection-qty-manifest.d.ts +2 -0
  86. package/dist/src/domain/field/number/integer-manifest.d.ts +2 -0
  87. package/dist/src/domain/field/number/long-manifest.d.ts +2 -0
  88. package/dist/src/domain/field/number/material-check-qty-manifest.d.ts +2 -0
  89. package/dist/src/domain/field/number/not-good-qty-manifest.d.ts +2 -0
  90. package/dist/src/domain/field/number/of-inst-num-manifest.d.ts +2 -0
  91. package/dist/src/domain/field/number/operation-output-qty-manifest.d.ts +2 -0
  92. package/dist/src/domain/field/number/operation-receive-qty-manifest.d.ts +2 -0
  93. package/dist/src/domain/field/number/product-check-qty-manifest.d.ts +2 -0
  94. package/dist/src/domain/field/number/production-qty-manifest.d.ts +2 -0
  95. package/dist/src/domain/field/number/qty-consumed-manifest.d.ts +2 -0
  96. package/dist/src/domain/field/number/qty-manifest.d.ts +2 -0
  97. package/dist/src/domain/field/number/qty-required-manifest.d.ts +2 -0
  98. package/dist/src/domain/field/number/scrap-qty-manifest.d.ts +2 -0
  99. package/dist/src/domain/field/number/work-hours-manifest.d.ts +2 -0
  100. package/dist/src/domain/field/option/boolean-manifest.d.ts +2 -0
  101. package/dist/src/domain/field/option/enum-manifest.d.ts +2 -0
  102. package/dist/src/domain/field/option/enum-multi-manifest.d.ts +2 -0
  103. package/dist/src/domain/field/option/option-manifest.d.ts +2 -0
  104. package/dist/src/domain/field/option/option-multi-manifest.d.ts +2 -0
  105. package/dist/src/domain/field/rdo-select/e-sop-manifest.d.ts +2 -0
  106. package/dist/src/domain/field/rdo-select/product-manifest.d.ts +2 -0
  107. package/dist/src/domain/field/rdo-select/scrap-material-manifest.d.ts +2 -0
  108. package/dist/src/domain/field/select/device-manifest.d.ts +2 -0
  109. package/dist/src/domain/field/select/device-ref-manifest.d.ts +2 -0
  110. package/dist/src/domain/field/select/device-ref-multi-manifest.d.ts +2 -0
  111. package/dist/src/domain/field/select/location-manifest.d.ts +2 -0
  112. package/dist/src/domain/field/select/mfg-order-manifest.d.ts +2 -0
  113. package/dist/src/domain/field/select/model-relation-manifest.d.ts +2 -0
  114. package/dist/src/domain/field/select/not-good-group-manifest.d.ts +2 -0
  115. package/dist/src/domain/field/select/not-good-reason-manifest.d.ts +2 -0
  116. package/dist/src/domain/field/select/operation-manifest.d.ts +2 -0
  117. package/dist/src/domain/field/select/org-manifest.d.ts +2 -0
  118. package/dist/src/domain/field/select/org-multi-manifest.d.ts +2 -0
  119. package/dist/src/domain/field/select/production-container-manifest.d.ts +2 -0
  120. package/dist/src/domain/field/select/ref-manifest.d.ts +2 -0
  121. package/dist/src/domain/field/select/ref-multi-manifest.d.ts +2 -0
  122. package/dist/src/domain/field/select/routing-operation-manifest.d.ts +2 -0
  123. package/dist/src/domain/field/select/scrap-group-manifest.d.ts +2 -0
  124. package/dist/src/domain/field/select/scrap-reason-manifest.d.ts +2 -0
  125. package/dist/src/domain/field/select/shopfloor-manifest.d.ts +2 -0
  126. package/dist/src/domain/field/select/target-warehouse-manifest.d.ts +2 -0
  127. package/dist/src/domain/field/select/user-manifest.d.ts +2 -0
  128. package/dist/src/domain/field/select/user-multi-manifest.d.ts +2 -0
  129. package/dist/src/domain/field/select/warehouse-manifest.d.ts +2 -0
  130. package/dist/src/domain/field/text/e-sop-version-manifest.d.ts +2 -0
  131. package/dist/src/domain/field/text/external-reference-no-manifest.d.ts +2 -0
  132. package/dist/src/domain/field/text/long-text-manifest.d.ts +2 -0
  133. package/dist/src/domain/field/text/order-no-manifest.d.ts +2 -0
  134. package/dist/src/domain/field/text/record-no-manifest.d.ts +2 -0
  135. package/dist/src/domain/field/text/text-manifest.d.ts +2 -0
  136. package/dist/src/domain/field/text/warehouse-receipt-no-manifest.d.ts +2 -0
  137. package/dist/src/domain/field/types.d.ts +18 -0
  138. package/dist/src/domain/field/upload/attachment-manifest.d.ts +2 -0
  139. package/dist/src/domain/field/upload/image-manifest.d.ts +2 -0
  140. package/dist/src/domain/field/upload/reporter-manifest.d.ts +2 -0
  141. package/dist/src/domain/field/upload/signature-manifest.d.ts +2 -0
  142. package/dist/src/domain/field/upload/warehouse-manager-manifest.d.ts +2 -0
  143. package/dist/src/domain/index.d.ts +1 -0
  144. package/dist/src/domain/object/date-object/index.d.ts +5 -0
  145. package/dist/src/domain/object/date-object/profile/field-keys.d.ts +19 -0
  146. package/dist/src/domain/object/date-object/profile/fields.d.ts +2 -0
  147. package/dist/src/domain/object/date-object/profile/index.d.ts +3 -0
  148. package/dist/src/domain/object/date-object/runtime/date-object-context.d.ts +30 -0
  149. package/dist/src/domain/object/date-object/runtime/date-object-runtime.d.ts +43 -0
  150. package/dist/src/domain/object/date-object/runtime/fetch-records.d.ts +13 -0
  151. package/dist/src/domain/object/date-object/runtime/object-handlers.d.ts +4 -0
  152. package/dist/src/domain/object/date-object/runtime/re-inspection-date.d.ts +25 -0
  153. package/dist/src/domain/object/date-object/runtime/register-handlers.d.ts +1 -0
  154. package/dist/src/domain/object/date-object/runtime/row-change-handlers.d.ts +6 -0
  155. package/dist/src/domain/object/date-object/runtime/utils.d.ts +13 -0
  156. package/dist/src/domain/object/date-object/types.d.ts +53 -0
  157. package/dist/src/domain/object/index.d.ts +1 -0
  158. package/dist/src/domain/table/business/warehouse/device-part-consume/profile/field-keys.d.ts +14 -0
  159. package/dist/src/domain/table/business/warehouse/part-stocktake/profile/field-keys.d.ts +14 -0
  160. package/dist/src/domain/table/business/warehouse/shared/eqm-part-api.d.ts +13 -0
  161. package/dist/src/domain/table/business/warehouse/warehouse-in/profile/field-keys.d.ts +40 -3
  162. package/dist/src/domain/table/business/warehouse/warehouse-in/runtime/row-change-handlers.d.ts +9 -1
  163. package/dist/src/domain/table/business/warehouse/warehouse-inbound/profile/field-keys.d.ts +17 -0
  164. package/dist/src/domain/table/business/warehouse/warehouse-inventory/index.d.ts +3 -0
  165. package/dist/src/domain/table/business/warehouse/warehouse-inventory/profile/api.d.ts +14 -0
  166. package/dist/src/domain/table/business/warehouse/warehouse-inventory/profile/field-keys.d.ts +17 -34
  167. package/dist/src/domain/table/business/warehouse/warehouse-inventory/runtime/stocktake-dimension.d.ts +13 -0
  168. package/dist/src/domain/table/business/warehouse/warehouse-inventory/types.d.ts +20 -0
  169. package/dist/src/domain/table/business/warehouse/warehouse-outbound/profile/field-keys.d.ts +14 -0
  170. package/dist/src/domain/table/design/panel-features.d.ts +1 -0
  171. package/dist/src/index.d.ts +3 -0
  172. package/dist/src/nocode-base/src/components/document-quick-fill/fixed-quick-fill-modal.vue.d.ts +3 -1
  173. package/dist/src/nocode-base/src/components/document-sub-table-action/type.d.ts +2 -0
  174. package/dist/src/nocode-base/src/constant/index.d.ts +5 -1
  175. package/dist/src/nocode-base/src/core/sub-table/profile-driven-sub-table-core.d.ts +42 -2
  176. package/dist/src/nocode-base/src/core/sub-table/stocktake-table-core.d.ts +1 -1
  177. package/dist/src/nocode-base/src/core/sub-table/sub-table-core.d.ts +11 -0
  178. package/dist/src/nocode-base/src/core/sub-table/utils/scan/scan-helpers.d.ts +13 -0
  179. package/dist/src/nocode-base/src/core/sub-table/utils/stocktake/stocktake-calc.d.ts +3 -1
  180. package/dist/src/nocode-base/src/core/sub-table/warehouse-in-table-core.d.ts +15 -0
  181. package/dist/src/nocode-base/src/core/sub-table/warehouse-out-table-core.d.ts +1 -0
  182. package/dist/src/nocode-base/src/hooks/date-object/use-date-object.d.ts +2 -0
  183. package/dist/src/nocode-base/src/hooks/device-link/controller.d.ts +3 -4
  184. package/dist/src/nocode-base/src/hooks/device-link/types.d.ts +1 -1
  185. package/dist/src/nocode-base/src/hooks/index.d.ts +1 -0
  186. package/dist/src/nocode-base/src/hooks/material-consume/bom-validator.d.ts +20 -6
  187. package/dist/src/nocode-base/src/hooks/material-consume/material-consume-table-controller.d.ts +34 -19
  188. package/dist/src/nocode-base/src/hooks/material-consume/service.d.ts +12 -0
  189. package/dist/src/nocode-base/src/hooks/material-consume/tmpl-bom-controller.d.ts +1 -4
  190. package/dist/src/nocode-base/src/hooks/material-consume-object/bom-validator.d.ts +49 -8
  191. package/dist/src/nocode-base/src/hooks/material-consume-object/index.d.ts +1 -0
  192. package/dist/src/nocode-base/src/hooks/material-consume-object/product-lot-link.d.ts +35 -0
  193. package/dist/src/nocode-base/src/hooks/operation-receive-qty.d.ts +2 -0
  194. package/dist/src/nocode-base/src/hooks/useRenderPageFactory.d.ts +12 -0
  195. package/dist/src/nocode-base/src/hooks/useStyles.d.ts +2 -2
  196. package/dist/src/nocode-base/src/interface/device-query.d.ts +40 -0
  197. package/dist/src/nocode-base/src/interface/index.d.ts +2 -1
  198. package/dist/src/nocode-base/src/interface/render.d.ts +11 -0
  199. package/dist/src/nocode-base/src/interface/transform.d.ts +1 -1
  200. package/dist/src/nocode-base/src/types/business/index.d.ts +3 -1
  201. package/dist/src/nocode-base/src/types/business/pretreatment-list.d.ts +3 -1
  202. package/dist/src/nocode-base/src/types/business/sterilize-batch.d.ts +3 -1
  203. package/dist/src/nocode-base/src/types/business/stocktake.d.ts +5 -1
  204. package/dist/src/nocode-base/src/types/common/base.d.ts +8 -0
  205. package/dist/src/nocode-base/src/types/fields/i-select.d.ts +13 -1
  206. package/dist/src/nocode-base/src/types/fields/i-trace.d.ts +6 -6
  207. package/dist/src/nocode-base/src/types/widgets/i-paper.d.ts +4 -8
  208. package/dist/src/nocode-web-render/src/render/sub-table/stocktake/stocktake-web-render.d.ts +1 -1
  209. package/dist/src/online-form/src/views/__cell_widgets__/common/display-fields-editor/display-fields-editor.vue.d.ts +3 -3
  210. package/dist/src/online-form/src/views/__cell_widgets__/common/display-fields-editor/display-fields.util.d.ts +15 -0
  211. package/dist/src/online-form/src/views/__cell_widgets__/common/field-config-visibility.d.ts +2 -0
  212. package/dist/src/online-form/src/views/__cell_widgets__/common/quick-search-editor/quick-search-editor.vue.d.ts +1 -4
  213. package/dist/src/online-form/src/views/__cell_widgets__/common/quick-search-editor/quick-search.util.d.ts +12 -10
  214. package/dist/src/online-form/src/views/__cell_widgets__/common/ref-autofill-editor/autofill-field-utils.d.ts +10 -0
  215. package/dist/src/online-form/src/views/__cell_widgets__/fake-field/fake-input.vue.d.ts +13 -0
  216. package/dist/src/{nocode-web-render/src/render/sub-table/stocktake/scan-modal.vue.d.ts → online-form/src/views/__cell_widgets__/fake-field/fake-number-input.vue.d.ts} +7 -1
  217. package/dist/src/online-form/src/views/__cell_widgets__/fake-field/fake-option-select.vue.d.ts +11 -0
  218. package/dist/src/online-form/src/views/__cell_widgets__/fake-field/fake-select.vue.d.ts +11 -0
  219. package/dist/src/online-form/src/views/__cell_widgets__/fake-field/index.d.ts +4 -0
  220. package/dist/src/online-form/src/views/__cell_widgets__/field-design-components.d.ts +4 -0
  221. package/dist/src/online-form/src/views/__cell_widgets__/index.d.ts +0 -3
  222. package/dist/src/online-form/src/views/__cell_widgets__/widget-panel-map.d.ts +3 -0
  223. package/dist/src/online-form/src/views/designer/constants/index.d.ts +5 -6
  224. package/dist/src/online-form/src/views/designer/hooks/useAllSpreadSheets.d.ts +80 -0
  225. package/dist/src/online-form/src/views/designer/hooks/useSpreadSheet.d.ts +110 -3
  226. package/dist/src/online-form/src/views/designer/modules/base/drag-box.vue.d.ts +1 -1
  227. package/dist/src/online-form/src/views/designer/modules/panel/panel-data-init-config/object-init/hooks/useObjectInit.d.ts +1 -1
  228. package/dist/src/online-form/src/views/designer/modules/panel/panel-tmpl-config/ai-tmpl/ai-tmpl-editor-modal.vue.d.ts +30 -0
  229. package/dist/src/online-form/src/views/designer/modules/panel/panel-tmpl-config/ai-tmpl/ai-tmpl-editor.vue.d.ts +6 -17
  230. package/dist/src/online-form/src/views/designer/modules/panel/panel-tmpl-config/ai-tmpl/types.d.ts +20 -0
  231. package/dist/src/online-form/src/views/designer/modules/panel/sub-table/comps/use-dynamic-sub-table-panel.d.ts +58 -0
  232. package/dist/src/online-form/src/views/designer/modules/panel/sub-table/material-consumption/bom-entry-editor.vue.d.ts +2 -1
  233. package/dist/src/online-form/src/views/designer/modules/toolkit/model-field/add-field-btn.vue.d.ts +1 -3
  234. package/dist/src/online-form/src/views/designer/utils/cell-content-style.d.ts +30 -0
  235. package/dist/src/online-form/src/views/designer/utils/field-type-label.d.ts +1 -0
  236. package/dist/src/online-form/src/views/render/__components__/_common_/widget-component-visible.vue.d.ts +1 -0
  237. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-auto-complete.vue.d.ts +34 -0
  238. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-date-picker.vue.d.ts +23 -0
  239. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-media.d.ts +5 -0
  240. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-media.vue.d.ts +40 -0
  241. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-text-input.vue.d.ts +21 -0
  242. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-textarea.vue.d.ts +24 -0
  243. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/index.d.ts +9 -0
  244. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/use-select-list-height.d.ts +9 -0
  245. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/trace-like-wrapper.d.ts +26 -0
  246. package/dist/src/online-form/src/views/render/__components__/_field_/auto-complete/index.d.ts +14 -0
  247. package/dist/src/online-form/src/views/render/__components__/_field_/{trace → rdo-select}/index.d.ts +2 -2
  248. package/dist/src/online-form/src/views/render/__components__/_field_/trace/composables/usePopoverWrapperHeight.d.ts +11 -2
  249. package/dist/src/online-form/src/views/render/__components__/_field_/trace/utils/columns.d.ts +13 -0
  250. package/dist/src/online-form/src/views/render/__components__/_field_/trace/utils/use-rule-props.d.ts +3 -3
  251. package/dist/src/shared/components/FieldStateIcon/field-state-icon.vue.d.ts +17 -0
  252. package/dist/src/shared/components/FieldStateIcon/index.d.ts +3 -0
  253. package/dist/src/shared/components/Preview/src/Functional.vue.d.ts +1 -1
  254. package/dist/src/shared/components/Signature/index.d.ts +2 -1
  255. package/dist/src/shared/components/Signature/types/index.d.ts +4 -0
  256. package/dist/src/shared/components/Signature/ui/handwriting-signer.vue.d.ts +1 -0
  257. package/dist/src/shared/components/Signature/ui/password-signer.vue.d.ts +1 -0
  258. package/dist/src/shared/components/Signature/ui/sign-popover-content.vue.d.ts +122 -0
  259. package/dist/src/shared/components/Signature/ui/sign-switcher-modal.vue.d.ts +4 -0
  260. package/dist/src/shared/components/Signature/ui/sign-switcher.vue.d.ts +3 -0
  261. package/dist/src/shared/components/registerGlobComp.d.ts +5 -0
  262. package/dist/src/shared/enum/field-type.d.ts +39 -284
  263. package/dist/src/shared/enum/index.d.ts +1 -1
  264. package/dist/src/shared/utils/field-size.d.ts +3 -0
  265. package/dist/src/shared/utils/lot2sn.d.ts +22 -0
  266. package/dist/{text-design-B1eX7Rp1.js → text-design-B9BH6_VT.js} +2 -2
  267. package/dist/{throttle-Cpk1LoGk-kodOPzL5.js → throttle-Cpk1LoGk-Dkz6zJ8F.js} +1 -1
  268. package/dist/{timediff-design-CoDU15y8.js → timediff-design-INgy9LDa.js} +1 -1
  269. package/dist/trace-like-wrapper-B-PzUZAG.js +34 -0
  270. package/dist/{value-editor.vue_vue_type_style_index_0_lang-ey1VNCHV.js → value-editor.vue_vue_type_style_index_0_lang-BSGmjBMz.js} +2 -2
  271. package/dist/web-render/index.es.js +118 -17
  272. package/dist/{widget-barcode-DAxib6qS.js → widget-barcode-su16tQ64.js} +4 -4
  273. package/dist/{widget-diagonal-BLo6XT0t.js → widget-diagonal-Dl3D3MJK.js} +5 -7
  274. package/dist/{widget-image-D_1erLrE.js → widget-image-C3143nmQ.js} +6 -5
  275. package/dist/{widget-line-BwnSq4--.js → widget-line-B3FO96uu.js} +4 -4
  276. package/dist/{widget-pagination-DZMwe14i.js → widget-pagination-Su-wNAqe.js} +5 -5
  277. package/dist/{widget-power-DfV-8moi.js → widget-power-DLbxegjB.js} +3 -3
  278. package/dist/{widget-qrcode-C3yTAHOn.js → widget-qrcode-BC2Eyf9h.js} +3 -3
  279. package/dist/{widget-rangelimit-DK8hANd1.js → widget-rangelimit-iuZswyH3.js} +3 -3
  280. package/dist/{widget-serialnumber-B2pkh6KT.js → widget-serialnumber-BqZm6cQQ.js} +1 -1
  281. package/dist/{widget-text-98SaLOpt.js → widget-text-DSAv-liE.js} +5 -5
  282. package/dist/{widget-timediff-OD7HVoVr.js → widget-timediff-CD8Jrx8s.js} +2 -2
  283. package/package.json +16 -6
  284. package/dist/agg-design-BO3eBkol.js +0 -24
  285. package/dist/agg-props-DEXapyb8.js +0 -10
  286. package/dist/agg-style-CDLpFoBn.js +0 -33
  287. package/dist/attach-fields-editor-DXh9f5iy.js +0 -116
  288. package/dist/base-font-editor-Ccv90UWY.js +0 -179
  289. package/dist/boolean-design-D1BIjOGz.js +0 -124
  290. package/dist/boolean-props-Cqb1zZfy.js +0 -155
  291. package/dist/boolean-style-C2uaO_Ei.js +0 -108
  292. package/dist/cell-upload-xzz2ufK7.js +0 -35
  293. package/dist/date-range-editor-D0SCmmS0.js +0 -472
  294. package/dist/date-time-design-pv0mRSgV.js +0 -64
  295. package/dist/date-time-props-B0YQO-ig.js +0 -105
  296. package/dist/date-time-style-Dn4TErcH.js +0 -33
  297. package/dist/decimal-design-BMKikWwr.js +0 -29
  298. package/dist/decimal-display-mode-BLrn-r-H.js +0 -60
  299. package/dist/decimal-props-BXVnDByV.js +0 -313
  300. package/dist/decimal-style-C5hB5sv6.js +0 -33
  301. package/dist/default-value-editor.vue_vue_type_script_setup_true_name_default-value-editor_lang-LcZ8lvPF.js +0 -370
  302. package/dist/double-design-5yOxs5xB.js +0 -28
  303. package/dist/double-props-CQ9yBXNl.js +0 -91
  304. package/dist/double-style-C01aPXrT.js +0 -33
  305. package/dist/enum-design-DewhmfeF.js +0 -97
  306. package/dist/enum-props-0ECHvFUr.js +0 -734
  307. package/dist/enum-style-fm5Ap8eG.js +0 -76
  308. package/dist/expression-design-BY6oI5EW.js +0 -24
  309. package/dist/expression-props-3OvDgw-p.js +0 -10
  310. package/dist/expression-style-Hhv8wnAe.js +0 -33
  311. package/dist/file-design-QE5qUMix.js +0 -17
  312. package/dist/file-props-CEGee5yo.js +0 -201
  313. package/dist/file-style-65tfxL94.js +0 -9
  314. package/dist/image-design-BoQOLCEL.js +0 -23
  315. package/dist/image-props-GuHBNt9S.js +0 -16
  316. package/dist/image-style-BLQukPqV.js +0 -9
  317. package/dist/index-CBYXYocJ.js +0 -40
  318. package/dist/index-DI8vltuS.js +0 -68
  319. package/dist/integer-design-C8kRP1tV.js +0 -28
  320. package/dist/integer-props-XICS-8Qt.js +0 -162
  321. package/dist/integer-style-BstrlNJp.js +0 -33
  322. package/dist/number-input-ex-BjIp4mym.js +0 -69
  323. package/dist/org-design-DWZI8xev.js +0 -24
  324. package/dist/org-props-0CY6-hLS.js +0 -96
  325. package/dist/org-style-HDV7obSe.js +0 -33
  326. package/dist/paper-widget-design-CT80i7VR.js +0 -4
  327. package/dist/ref-autofill-editor-CObqr_xh.js +0 -2376
  328. package/dist/ref-design-BQ8o1gKm.js +0 -24
  329. package/dist/ref-props-xjVvnvGW.js +0 -348
  330. package/dist/ref-style-MZ52QRhu.js +0 -33
  331. package/dist/regex-editor-BctX8jdd.js +0 -823
  332. package/dist/select-render-type-editor.vue_vue_type_script_setup_true_lang-CONYLCmt.js +0 -159
  333. package/dist/signature-design-CFOFAaEu.js +0 -20
  334. package/dist/signature-props-N6ng9rqg.js +0 -346
  335. package/dist/signature-style-D2QQrgMT.js +0 -9
  336. package/dist/src/nocode-base/src/hooks/material-date/material-date.d.ts +0 -44
  337. package/dist/src/nocode-base/src/hooks/material-date/service.d.ts +0 -4
  338. package/dist/src/nocode-base/src/hooks/material-date/use-material-date.d.ts +0 -2
  339. package/dist/text-design-CCs-p8Y3.js +0 -39
  340. package/dist/text-props-C6-s7LBP.js +0 -447
  341. package/dist/text-style-OUxV8LDu.js +0 -33
  342. package/dist/trace-design-Bhg0EIyC.js +0 -77
  343. package/dist/trace-props-DVekq4wE.js +0 -624
  344. package/dist/trace-style-CfSu__TO.js +0 -33
  345. package/dist/user-design-fMF_h4IG.js +0 -24
  346. package/dist/user-props-BGjEpC4j.js +0 -103
  347. package/dist/user-style-RUHIGWFF.js +0 -33
@@ -1,11 +1,11 @@
1
- import { a_ as fetchHistoryConsume, a$ as isBomGranted, F as FIELD_TYPE, w as api, c as getProfileByTableType, b as isBusinessSubTableProfile, b0 as runRowHandler, b1 as F$1, b2 as INVENTORY_BASE_FIELDS, b3 as WAREHOUSE_IDENTITY_GROUP_KEYS, b4 as AUTO_LOAD_READONLY_SELECT_FIELDS, aL as getParseRuleInfo, b5 as FILL_FROM_INVENTORY_OPTION, b6 as calcFillData, aM as getParseRuleValue, b7 as F$2, b8 as FILL_FROM_INVENTORY_OPTION$1, b9 as extractKeywordFromQueryData, aJ as LOT_CONTAINER_ROLE, an as resolveLotDisplayLabel, ba as F$3, bb as isProductManuallyEditable, bc as applyFillFromMfgOrderOption, bd as applyFillFromOption$1, be as applyFillFromProductOption, bf as MATERIAL_CONTAINER_ID, bg as F$4, bh as F$5, bi as FILL_FROM_INVENTORY_OPTION$2, M as FormTypeEnum, bj as transformUtils, d as SubTableType, aF as NCB_PROVIDE, bk as settleAndValidateDisplay, bl as unregisterValidationContext, bm as clearFormRules, bn as registerValidationContext, m as ComponentTypeEnum, aR as RenderModeEnum, bo as requestFullValidation, bp as requestDisplayValidation, bq as closeValidatorPopovers, br as baseDataUtils, bs as getRawFormRuleMeta, bt as enrichFormChangeRowDetails, bu as settleAfterModeSwitch, bv as calcUtils, ao as CheckDsTypeEnum, aC as renderUtils, Q as PlatformEnum, bw as uuid2, bx as normalizeToArray, by as safeParseArray, bz as BpmnNodeTypeEnum, bA as mergeByMultiKey, aZ as useNocodeEmitter, bB as commonUtils, am as EntityModelCategoryEnum, bC as getRowId, bD as collectFormChangeFieldLocations, bE as nextFormChangeRowViewHistoryId } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-D8HQKSsX.js";
2
- import { ar, at, aD, T, bF, bG, B, bH, t, a1, bI, bJ, bK, aB, aE, as, ap, aq, a2, a6, bL, bM, af, bN, al, av, R, a4, L, bO, bP, O, j, P, Z, h, G, au, bQ, bR, aQ, X, V, W, Y, bS, a5, a9, a3, bT, bU, bV, bW, bX, bY, bZ, b_, b$, c0, c1, c2, c3, aP, c4, c5, c6, c7, c8, c9, ca, cb, cc, cd, ce, cf, cg, aO, ch, aG, ci, cj, ck, aI, cl, cm, cn, co, a7, cp, cq, az, cr, ay, aw, cs, H, aN, aS, aA, ct, u, ax } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-D8HQKSsX.js";
3
- import { M as MaterialConsumptionPatternEnum, f as MaterialConsumeTableController, h as SubTableCore, i as SubTableActionMenuTypeEnum, j as getMenuByAction, k as SubTableActionEnum, r as resolveScanAdjustType, l as resolveScanQty, t as toDateOnly, m as getCopySubMenu, n as getInsertSubMenu, o as resolveScanParsedValue, p as resolveScanFillData, q as useMaterialBalance, s as validate, w as validateObjectBomQtyOnSubmit } from "../dynamic-table-action-C1o2TjqX.js";
4
- import { B as B2, x, D, _, y, d, z, e, F, A, I, C, O as O2, g, u as u2, b, a, c, v } from "../dynamic-table-action-C1o2TjqX.js";
5
- import { ref, provide, watch, computed, onBeforeMount } from "vue";
1
+ import { bp as fetchHistoryConsume, bq as isBomGranted, F as FIELD_TYPE, z as api, br as F$1, bs as F$2, bt as runRowHandler, h as getProfileByTableType, f as isBusinessSubTableProfile, bu as F$3, bv as F$4, bw as FILL_FROM_INVENTORY_OPTION, bx as FILL_FROM_PART_OPTION, by as FILL_FROM_INVENTORY_OPTION$1, bz as TABLE_TYPE, bA as FILL_FROM_INVENTORY_OPTION$2, b5 as F$5, bB as INVENTORY_BASE_FIELDS, bC as resolveGroupByWarehouse, bD as AUTO_LOAD_READONLY_SELECT_FIELDS, b4 as STOCKTAKE_DIMENSION, b1 as getParseRuleInfo, bE as buildFillFromInventoryOption, bF as calcFillData, bG as resolveStocktakeInventoryApi, b2 as getParseRuleValue, bH as F$6, bI as FILL_FROM_INVENTORY_OPTION$3, bJ as extractKeywordFromQueryData, bK as composeProductionLotListQuery, aF as resolveLotDisplayLabel, bL as F$7, bM as isProductManuallyEditable, bN as applyFillFromMfgOrderOption, bO as applyFillFromOption$1, bP as applyFillFromProductOption, aT as LOT_CONTAINER_ROLE, bQ as MATERIAL_CONTAINER_ID, bR as F$8, bS as PRODUCT_QUICK_SEARCH_FIELDS, bT as PRODUCT_QUICK_SEARCH_EXP, bU as isProductManuallyEditable$1, bV as applyFillFromMaterialNoOption, bW as applyFillFromProductOption$1, bX as F$9, bY as FILL_FROM_INVENTORY_OPTION$4, V as FormTypeEnum, bb as transformUtils, l as SubTableType, aW as NCB_PROVIDE, bZ as settleAndValidateDisplay, b_ as unregisterValidationContext, b$ as clearFormRules, c0 as registerValidationContext, C as ComponentTypeEnum, bf as RenderModeEnum, c1 as requestFullValidation, c2 as requestDisplayValidation, aV as renderUtils, c3 as closeValidatorPopovers, c4 as baseDataUtils, c5 as getRawFormRuleMeta, c6 as enrichFormChangeRowDetails, c7 as settleAfterModeSwitch, c8 as calcUtils, aG as CheckDsTypeEnum, Z as PlatformEnum, c9 as uuid2, ca as normalizeToArray, cb as safeParseArray, cc as BpmnNodeTypeEnum, cd as mergeByMultiKey, bo as useNocodeEmitter, ce as commonUtils, aB as EntityModelCategoryEnum, cf as getRowId, cg as collectFormChangeFieldLocations, ch as nextFormChangeRowViewHistoryId } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BviS9x-o.js";
2
+ import { aJ, aL, b0, $, ci, cj, B, ck, x, ab, cl, cm, cn, bd, co, aS, au, aK, aH, aI, cp, ac, ag, cq, cr, aC, aa, av, aN, _, ae, L, cs, ct, O, o, P, a5, n, M, aM, cu, at, as, a2, a0, a1, a3, cv, af, aj, ad, cw, cx, cy, bc, cz, cA, cB, cC, cD, cE, cF, cG, cH, cI, cJ, aZ, cK, cL, cM, cN, cO, cP, cQ, cR, cS, cT, cU, cV, cW, cX, aY, cY, b7, cZ, c_, c$, ba, d0, d1, d2, d3, ah, q, d4, d5, aR, d6, aQ, aO, d7, N, b3, bg, a$, d8, be, aP, a_ } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BviS9x-o.js";
3
+ import { M as MaterialConsumptionPatternEnum, o as MaterialConsumeTableController, i as isEdhrSuite, p as SubTableCore, q as SubTableActionMenuTypeEnum, s as getMenuByAction, t as SubTableActionEnum, w as getInsertSubMenu, x as resolveScanAdjustType, y as resolveScanQty, z as toDateOnly, A as getCopySubMenu, C as resolveScanParsedValue, F as resolveScanFillData, G as isProductBatchEmptyRow, H as useMaterialBalance, J as validate, K as validateObjectBomQtyOnSubmit } from "../dynamic-table-action-DmQ4nVdA.js";
4
+ import { B as B2, L as L2, D, _ as _2, N as N2, l, O as O2, m, E, P as P2, Q, I, T, U, e, b, f, V, g, h, W, X, Y, Z, c, r, d, u, j, a, k, v } from "../dynamic-table-action-DmQ4nVdA.js";
5
+ import { ref, provide, watch, computed, onUnmounted, onBeforeMount } from "vue";
6
6
  import { defaults, has, merge, isEmpty, cloneDeep, debounce } from "lodash-es";
7
7
  import "dayjs";
8
- import { B as B3, F as F2, M, a as a8, u as u3 } from "../mb-render-DNA0sAdk.js";
8
+ import { B as B3, F, M as M2, a as a4, u as u2 } from "../mb-render-BBRR_byl.js";
9
9
  var MaterialStatusEnum = /* @__PURE__ */ ((MaterialStatusEnum2) => {
10
10
  MaterialStatusEnum2["LOT"] = "LOT";
11
11
  MaterialStatusEnum2["SN"] = "SN";
@@ -191,41 +191,21 @@ class FormTmplBomController {
191
191
  });
192
192
  }
193
193
  async submitValidate() {
194
- const results = await Promise.allSettled(
195
- Object.values(this.tableControllers).map((c10) => c10.submitValidate())
194
+ const results = await Promise.all(
195
+ Object.values(this.tableControllers).map((c2) => c2.submitValidate())
196
196
  );
197
- const successful = results.filter((result) => result.status === "fulfilled").map((result) => result.value);
198
- const fieldArr = successful.filter(Boolean);
199
- if (fieldArr.length) {
200
- const fields = fieldArr.reduce((acc, cur) => {
201
- acc[cur.field] = [cur];
202
- return acc;
203
- }, {});
204
- return {
205
- isValid: false,
206
- fields
207
- };
208
- }
197
+ const fields = {};
198
+ let isValid = true;
199
+ results.forEach((res) => {
200
+ if (!res?.isValid) isValid = false;
201
+ Object.assign(fields, res?.fields ?? {});
202
+ });
209
203
  return {
210
- isValid: true
204
+ isValid,
205
+ fields: Object.keys(fields).length ? fields : void 0
211
206
  };
212
207
  }
213
208
  }
214
- function getAppInfo() {
215
- return api.apaas.designerCommon.getGetApp();
216
- }
217
- async function getSuiteKey() {
218
- const appInfo = await getAppInfo();
219
- return appInfo?.suiteKey;
220
- }
221
- async function isEdhrSuite() {
222
- const suiteKey = await getSuiteKey();
223
- return suiteKey === "eDHR";
224
- }
225
- async function isEqmSuite() {
226
- const suiteKey = await getSuiteKey();
227
- return suiteKey === "EQM";
228
- }
229
209
  async function getModelQueries(opts) {
230
210
  const isEdhr = await isEdhrSuite();
231
211
  if (!isEdhr || !opts.mainMaterialNo) {
@@ -324,7 +304,7 @@ async function matchProductionIdentificationScanRecords(parsed) {
324
304
  );
325
305
  return unwrapBizServiceList(result);
326
306
  }
327
- function isBlank$2(value) {
307
+ function isBlank$4(value) {
328
308
  return value === void 0 || value === null || value === "";
329
309
  }
330
310
  function matchFieldKey(match, fieldKey) {
@@ -343,7 +323,7 @@ function buildDefaultMapFromProfile(profile, paramsConfig) {
343
323
  );
344
324
  for (const assignment of assignments) {
345
325
  const value = paramsConfig?.[assignment.paramKey];
346
- if (isBlank$2(value)) continue;
326
+ if (isBlank$4(value)) continue;
347
327
  result[assignment.fieldKey] = value;
348
328
  }
349
329
  return result;
@@ -414,13 +394,125 @@ class ProfileDrivenSubTableCore extends SubTableCore {
414
394
  super.handleChange(params);
415
395
  }
416
396
  }
397
+ function isBlank$3(value) {
398
+ return value === void 0 || value === null || value === "";
399
+ }
400
+ function resolveOptionRecord$1(option) {
401
+ if (!option) return void 0;
402
+ const nested = option._item;
403
+ if (nested && typeof nested === "object") {
404
+ return nested;
405
+ }
406
+ return option;
407
+ }
408
+ function applyOptionFill(rowData, option, mappings) {
409
+ const record = resolveOptionRecord$1(option) ?? option;
410
+ for (const { optionField, toField } of mappings) {
411
+ if (record[optionField] !== void 0) {
412
+ rowData[toField] = record[optionField];
413
+ }
414
+ }
415
+ }
416
+ function applyAllocatePartTd(params, partField, mode, inventoryBinding) {
417
+ const { field, tdHandler } = params;
418
+ if (field !== partField) return;
419
+ tdHandler.mergeTd({
420
+ cellWidget: {
421
+ props: {
422
+ customRenderTag: "allocatePart",
423
+ partSelectMode: mode,
424
+ inventoryBinding,
425
+ newSpecificConfig: {
426
+ newOptions: []
427
+ }
428
+ }
429
+ }
430
+ });
431
+ }
417
432
  class WarehouseInboundTableCore extends ProfileDrivenSubTableCore {
433
+ handleFieldTd = (params) => {
434
+ applyAllocatePartTd(params, F$3.part, "master");
435
+ super.handleFieldTd(params);
436
+ };
437
+ handleChange(params) {
438
+ super.handleChange(params);
439
+ const { field, value, option, rowData } = params;
440
+ if (field !== F$3.part || isBlank$3(value) || !option) return;
441
+ applyOptionFill(rowData, option, FILL_FROM_PART_OPTION);
442
+ }
418
443
  }
419
444
  class WarehouseOutboundTableCore extends ProfileDrivenSubTableCore {
445
+ get warehouseId() {
446
+ return this.factory.ctx.paramsConfig?.warehouseId;
447
+ }
448
+ handleFieldTd = (params) => {
449
+ applyAllocatePartTd(params, F$4.part, "inventory", {
450
+ formField: F$4.inventory,
451
+ optionField: "id_"
452
+ });
453
+ super.handleFieldTd(params);
454
+ };
455
+ calcFieldQuery = (params) => {
456
+ if (params.field === F$4.part) {
457
+ return { warehouse_id_: this.warehouseId };
458
+ }
459
+ };
460
+ handleChange(params) {
461
+ super.handleChange(params);
462
+ const { field, value, option, rowData } = params;
463
+ if (field !== F$4.part || isBlank$3(value) || !option) return;
464
+ applyOptionFill(rowData, option, FILL_FROM_INVENTORY_OPTION$1);
465
+ }
420
466
  }
421
467
  class PartStocktakeTableCore extends ProfileDrivenSubTableCore {
468
+ get warehouseId() {
469
+ return this.factory.ctx.paramsConfig?.warehouseId;
470
+ }
471
+ handleFieldTd = (params) => {
472
+ applyAllocatePartTd(params, F$2.part, "inventory", {
473
+ formField: F$2.inventory,
474
+ optionField: "id_"
475
+ });
476
+ super.handleFieldTd(params);
477
+ };
478
+ calcFieldQuery = (params) => {
479
+ if (params.field === F$2.part) {
480
+ return { warehouse_id_: this.warehouseId };
481
+ }
482
+ };
483
+ handleChange(params) {
484
+ super.handleChange(params);
485
+ const { field, value, option, rowData } = params;
486
+ if (field !== F$2.part || isBlank$3(value) || !option) return;
487
+ applyOptionFill(rowData, option, FILL_FROM_INVENTORY_OPTION);
488
+ runRowHandler(TABLE_TYPE, "stocktake-derived", {
489
+ rowData,
490
+ changedField: field
491
+ });
492
+ }
422
493
  }
423
494
  class DevicePartConsumeTableCore extends ProfileDrivenSubTableCore {
495
+ get warehouseId() {
496
+ return this.factory.ctx.paramsConfig?.warehouseId;
497
+ }
498
+ handleFieldTd = (params) => {
499
+ applyAllocatePartTd(params, F$1.part, "inventory", {
500
+ formField: F$1.inventory,
501
+ optionField: "id_"
502
+ });
503
+ super.handleFieldTd(params);
504
+ };
505
+ calcFieldQuery = (params) => {
506
+ if (params.field === F$1.part) {
507
+ return { warehouse_id_: this.warehouseId };
508
+ }
509
+ };
510
+ handleChange(params) {
511
+ super.handleChange(params);
512
+ const { field, value, option, rowData } = params;
513
+ if (field !== F$1.part || isBlank$3(value) || !option) return;
514
+ applyOptionFill(rowData, option, FILL_FROM_INVENTORY_OPTION$2);
515
+ }
424
516
  }
425
517
  class MaterialRequisitionTableCore extends ProfileDrivenSubTableCore {
426
518
  }
@@ -436,14 +528,11 @@ const STOCKTAKE_STATUS = {
436
528
  loss: "sys.edhr.stocktakeStatusEnum.loss",
437
529
  equals: "sys.edhr.stocktakeStatusEnum.equals"
438
530
  };
439
- function buildRowGroupKey(row, fieldKeys, separator = "|") {
440
- return fieldKeys.map((key) => String(row[key] ?? "")).join(separator);
441
- }
442
531
  function toNumber(value, fallback = 0) {
443
532
  const num = Number(value);
444
533
  return Number.isNaN(num) ? fallback : num;
445
534
  }
446
- function isBlank$1(value) {
535
+ function isBlank$2(value) {
447
536
  return value == null || value === "";
448
537
  }
449
538
  function pickInventoryBase(record) {
@@ -451,38 +540,25 @@ function pickInventoryBase(record) {
451
540
  INVENTORY_BASE_FIELDS.map((key) => [key, record[key]])
452
541
  );
453
542
  }
454
- function mapInventoryRecordToRow(record) {
543
+ function mapInventoryIdentity(record, warehouseSummary) {
544
+ if (!warehouseSummary) {
545
+ return { [F$5.inventory]: record.id_ };
546
+ }
455
547
  return {
456
- ...pickInventoryBase(record),
457
- [F$1.location]: record[F$1.location],
458
- [F$1.stock]: toNumber(record[F$1.stock])
548
+ [F$5.inventory]: record[F$5.inventory],
549
+ [F$5.frontId]: record.id_
459
550
  };
460
551
  }
461
- function mergeInventoryByWarehouse(items) {
462
- const [first] = items;
552
+ function mapInventoryRecordToRow(record, warehouseSummary) {
463
553
  return {
464
- ...pickInventoryBase(first),
465
- [F$1.stock]: items.reduce((sum, item) => sum + toNumber(item[F$1.stock]), 0)
554
+ ...pickInventoryBase(record),
555
+ ...mapInventoryIdentity(record, warehouseSummary),
556
+ [F$5.location]: record[F$5.location],
557
+ [F$5.stock]: toNumber(record[F$5.stock])
466
558
  };
467
559
  }
468
- function buildWarehouseGroupKey(record) {
469
- return buildRowGroupKey(record, WAREHOUSE_IDENTITY_GROUP_KEYS);
470
- }
471
- function groupByWarehouseIdentity(records) {
472
- const groups = /* @__PURE__ */ new Map();
473
- for (const record of records) {
474
- const key = buildWarehouseGroupKey(record);
475
- let bucket = groups.get(key);
476
- if (!bucket) {
477
- bucket = [];
478
- groups.set(key, bucket);
479
- }
480
- bucket.push(record);
481
- }
482
- return groups;
483
- }
484
560
  function getStocktakeDiff(stocktakeNum, stockNum) {
485
- if (isBlank$1(stocktakeNum)) {
561
+ if (isBlank$2(stocktakeNum)) {
486
562
  return void 0;
487
563
  }
488
564
  const stocktake = toNumber(stocktakeNum);
@@ -510,99 +586,107 @@ function buildStocktakeDerived(stocktakeNum, stockNum) {
510
586
  };
511
587
  }
512
588
  function applyScanQtyToStocktake(current, scanQty, type = "add") {
513
- if (isBlank$1(scanQty)) {
589
+ if (isBlank$2(scanQty)) {
514
590
  return current;
515
591
  }
516
592
  const qtyNum = toNumber(scanQty);
517
593
  if (Number.isNaN(qtyNum)) {
518
594
  return current;
519
595
  }
520
- const base = isBlank$1(current) ? 0 : toNumber(current);
596
+ const base = isBlank$2(current) ? 0 : toNumber(current);
521
597
  return base + (type === "minus" ? -qtyNum : qtyNum);
522
598
  }
523
599
  const MIN_STOCKTAKE_NUM = 0;
524
600
  function getScanQtyDeductionBlockReason(current, scanQty, type = "add") {
525
- if (type !== "minus" || isBlank$1(scanQty)) {
601
+ if (type !== "minus" || isBlank$2(scanQty)) {
526
602
  return void 0;
527
603
  }
528
604
  const qtyNum = Number(scanQty);
529
605
  if (Number.isNaN(qtyNum) || qtyNum <= 0) {
530
606
  return void 0;
531
607
  }
532
- const base = isBlank$1(current) ? 0 : toNumber(current);
608
+ const base = isBlank$2(current) ? 0 : toNumber(current);
533
609
  if (base - qtyNum >= MIN_STOCKTAKE_NUM) {
534
610
  return void 0;
535
611
  }
536
612
  return "当前实盘数量小于本次条码扫码数量,无法扣减";
537
613
  }
538
- function groupInventoryToStocktakeRows(records, groupByWarehouse) {
539
- if (!groupByWarehouse) {
540
- return records.map(mapInventoryRecordToRow);
541
- }
542
- return Array.from(groupByWarehouseIdentity(records).values()).map(mergeInventoryByWarehouse);
614
+ function groupInventoryToStocktakeRows(records, warehouseSummary) {
615
+ return records.map((r2) => mapInventoryRecordToRow(r2, warehouseSummary));
543
616
  }
544
617
  async function getStockData({
545
618
  warehouse_id_,
546
619
  material_no_,
547
620
  location_id_,
548
621
  product_code_,
549
- production_identification_id_
622
+ production_identification_id_,
623
+ stocktakeDimension
550
624
  }) {
625
+ const inventoryApi = resolveStocktakeInventoryApi({ stocktakeDimension });
626
+ const body = {
627
+ warehouse_id_,
628
+ material_no_,
629
+ location_id_,
630
+ product_code_,
631
+ production_identification_id_
632
+ };
633
+ if (inventoryApi.paginated) {
634
+ body.pageNo = 1;
635
+ body.pageSize = 9999;
636
+ }
551
637
  const res = await api.apaas.modelComprehensive.postBizServiceModelCategoryModelKeyBsKey(
552
638
  {
553
- modelCategory: "entity",
554
- bsKey: "biz_get_inventory_info",
555
- modelKey: "em_inventory"
639
+ modelCategory: inventoryApi.modelCategory,
640
+ bsKey: inventoryApi.bsKey,
641
+ modelKey: inventoryApi.modelKey
556
642
  },
557
643
  {},
558
- {
559
- warehouse_id_,
560
- material_no_,
561
- location_id_,
562
- product_code_,
563
- production_identification_id_
564
- }
644
+ body
565
645
  );
566
- return res || [];
646
+ if (Array.isArray(res)) return res;
647
+ if (Array.isArray(res?.data)) return res.data;
648
+ return [];
567
649
  }
568
650
  function isSameStocktakeIdentity(row, record, groupByWarehouse) {
569
- if (row[F$1.product] !== record.product_id_) return false;
570
- const rowBatch = row[F$1.batch];
651
+ if (row[F$5.product] !== record.product_id_) return false;
652
+ const rowBatch = row[F$5.batch];
571
653
  const recordBatch = record.production_identification_id_;
572
654
  if (rowBatch && recordBatch && rowBatch !== recordBatch) return false;
573
655
  if (!rowBatch || !recordBatch) {
574
- const rowNo = row[F$1.matno];
656
+ const rowNo = row[F$5.matno];
575
657
  const recordNo = record.material_no_ ?? record.name_;
576
658
  if (!(rowNo && recordNo && rowNo === recordNo)) return false;
577
659
  }
578
- if ((row[F$1.warehouse] ?? "") !== (record.warehouse_id_ ?? "")) return false;
660
+ if ((row[F$5.warehouse] ?? "") !== (record.warehouse_id_ ?? "")) return false;
579
661
  if (!groupByWarehouse) {
580
- if ((row[F$1.location] ?? "") !== (record.location_id_ ?? "")) return false;
662
+ if ((row[F$5.location] ?? "") !== (record.location_id_ ?? "")) return false;
581
663
  }
582
664
  return true;
583
665
  }
584
- function buildInventoryScanRow(record, parsed, fillData, stocktakeQty) {
666
+ function buildInventoryScanRow(record, parsed, fillData, stocktakeQty, warehouseSummary = false) {
585
667
  const row = {
586
- [F$1.inventory]: record.id_,
587
- [F$1.batch]: record.production_identification_id_,
588
- [F$1.product]: record.product_id_,
589
- [F$1.productName]: record.product_id_name_,
590
- [F$1.productCode]: record.product_id_code_ ?? record.product_code_,
591
- [F$1.productSpec]: record.product_id_spec_,
592
- [F$1.warehouse]: record.warehouse_id_,
593
- [F$1.location]: record.location_id_,
594
- [F$1.stock]: record.stock_num_,
595
- [F$1.matno]: record.material_no_ ?? record.name_,
596
- [F$1.reInspectionDate]: record.re_inspection_date_,
597
- [F$1.stocktake]: stocktakeQty,
598
- [F$1.rowSource]: "scan",
668
+ // 按仓库汇总时:inventory_id_ 来自接口字段,id_ 另存为 front_id_
669
+ [F$5.inventory]: warehouseSummary ? record[F$5.inventory] ?? record.id_ : record.id_,
670
+ ...warehouseSummary ? { [F$5.frontId]: record.id_ } : {},
671
+ [F$5.batch]: record.production_identification_id_,
672
+ [F$5.product]: record.product_id_,
673
+ [F$5.productName]: record.product_id_name_,
674
+ [F$5.productCode]: record.product_id_code_ ?? record.product_code_,
675
+ [F$5.productSpec]: record.product_id_spec_,
676
+ [F$5.warehouse]: record.warehouse_id_,
677
+ [F$5.location]: record.location_id_,
678
+ [F$5.stock]: record.stock_num_,
679
+ [F$5.matno]: record.material_no_ ?? record.name_,
680
+ [F$5.reInspectionDate]: record.re_inspection_date_,
681
+ [F$5.stocktake]: stocktakeQty,
682
+ [F$5.rowSource]: "scan",
599
683
  ...fillData
600
684
  };
601
685
  const validityFromRecord = record.validate_ ?? record.validity_;
602
686
  if (parsed.expiration) {
603
- row[F$1.validity] = toDateOnly(parsed.expiration);
687
+ row[F$5.validity] = toDateOnly(parsed.expiration);
604
688
  } else if (validityFromRecord != null) {
605
- row[F$1.validity] = toDateOnly(validityFromRecord);
689
+ row[F$5.validity] = toDateOnly(validityFromRecord);
606
690
  }
607
691
  return row;
608
692
  }
@@ -619,7 +703,10 @@ function calcRowData(rowData, stocktakeNum) {
619
703
  class StocktakeTableCore extends ProfileDrivenSubTableCore {
620
704
  initData = [];
621
705
  get isGroupByWarehouse() {
622
- return !!this.ctx.widget?.props?.isGroupByWarehouse;
706
+ return resolveGroupByWarehouse(
707
+ this.bizTableConfig,
708
+ !!this.ctx.widget?.props?.isGroupByWarehouse
709
+ );
623
710
  }
624
711
  get paramsWarehouseId() {
625
712
  return (this.pageCtx?.paramsConfig || {}).warehouseId;
@@ -639,10 +726,10 @@ class StocktakeTableCore extends ProfileDrivenSubTableCore {
639
726
  const result = super.calcFieldStatus(params);
640
727
  const { field, rowData } = params;
641
728
  const { row_source_: source } = rowData;
642
- if (field === F$1.stocktake) return result;
643
- if (!Object.values(F$1).includes(field)) return result;
729
+ if (field === F$5.stocktake) return result;
730
+ if (!Object.values(F$5).includes(field)) return result;
644
731
  if (source === WarehouseInventoryRowSource.SCAN) {
645
- result.disabled = F$1.location !== field;
732
+ result.disabled = F$5.location !== field;
646
733
  } else if (source === WarehouseInventoryRowSource.AUTO) {
647
734
  result.disabled = true;
648
735
  } else if (!source || source === WarehouseInventoryRowSource.MANUAL) {
@@ -654,12 +741,12 @@ class StocktakeTableCore extends ProfileDrivenSubTableCore {
654
741
  }
655
742
  calcFieldQuery = (params) => {
656
743
  const { field, rowData } = params;
657
- if (field === F$1.location && rowData[F$1.inventoryLocationIds]) {
744
+ if (field === F$5.location && rowData[F$5.inventoryLocationIds]) {
658
745
  return {
659
- "id_.in": rowData[F$1.inventoryLocationIds]
746
+ "id_.in": rowData[F$5.inventoryLocationIds]
660
747
  };
661
748
  }
662
- if (field === F$1.product) {
749
+ if (field === F$5.product) {
663
750
  return {
664
751
  warehouse_id_: this.paramsWarehouseId
665
752
  };
@@ -667,11 +754,12 @@ class StocktakeTableCore extends ProfileDrivenSubTableCore {
667
754
  };
668
755
  handleFieldTd = (params) => {
669
756
  const { field, tdHandler } = params;
670
- if (field === F$1.product) {
757
+ if (field === F$5.product) {
671
758
  tdHandler.mergeTd({
672
759
  cellWidget: {
673
760
  props: {
674
761
  customRenderTag: "allocateProduct",
762
+ stocktakeDimension: this.bizTableConfig?.stocktakeDimension ?? STOCKTAKE_DIMENSION.locationDetail,
675
763
  newSpecificConfig: {
676
764
  newOptions: []
677
765
  }
@@ -696,6 +784,7 @@ class StocktakeTableCore extends ProfileDrivenSubTableCore {
696
784
  label: $t("sys.edhr.editRow")
697
785
  },
698
786
  getMenuByAction(SubTableActionEnum.Insert1RowAfter),
787
+ getInsertSubMenu(),
699
788
  ...params.showDelBtn ? [
700
789
  {
701
790
  type: SubTableActionMenuTypeEnum.DIVIDER
@@ -707,13 +796,16 @@ class StocktakeTableCore extends ProfileDrivenSubTableCore {
707
796
  };
708
797
  async init() {
709
798
  const config = this.bizTableConfig || {};
710
- const { autoLoadStock, barcodeParsingRules } = config;
799
+ const { autoLoadStock, barcodeParsingRules, stocktakeDimension } = config;
711
800
  if (barcodeParsingRules) {
712
801
  this.scanRuleProps = barcodeParsingRules;
713
802
  this.scanRuleInfo = await getParseRuleInfo({ id: this.scanRuleProps.parsingRuleId });
714
803
  }
715
804
  if (this.isDataProcessed || !autoLoadStock || !this.paramsWarehouseId) return;
716
- const res = await getStockData({ warehouse_id_: this.paramsWarehouseId });
805
+ const res = await getStockData({
806
+ warehouse_id_: this.paramsWarehouseId,
807
+ stocktakeDimension
808
+ });
717
809
  this.initData = groupInventoryToStocktakeRows(res, this.isGroupByWarehouse).map((e2) => {
718
810
  calcRowData(e2);
719
811
  e2.row_source_ = "auto";
@@ -726,8 +818,10 @@ class StocktakeTableCore extends ProfileDrivenSubTableCore {
726
818
  handleChange(params) {
727
819
  super.handleChange(params);
728
820
  const { field, value, option, rowData } = params;
729
- if (field === F$1.product && option && value !== void 0 && value !== null && value !== "") {
730
- for (const { optionField, toField } of FILL_FROM_INVENTORY_OPTION) {
821
+ if (field === F$5.product && option && value !== void 0 && value !== null && value !== "") {
822
+ for (const { optionField, toField } of buildFillFromInventoryOption(
823
+ this.isGroupByWarehouse
824
+ )) {
731
825
  rowData[toField] = option[optionField];
732
826
  }
733
827
  calcRowData(rowData);
@@ -760,7 +854,7 @@ class StocktakeTableCore extends ProfileDrivenSubTableCore {
760
854
  if (existIndex >= 0) {
761
855
  const existRow = visibleRows[existIndex];
762
856
  const blockReason = getScanQtyDeductionBlockReason(
763
- existRow[F$1.stocktake],
857
+ existRow[F$5.stocktake],
764
858
  scanQty,
765
859
  scanAdjustType
766
860
  );
@@ -768,8 +862,8 @@ class StocktakeTableCore extends ProfileDrivenSubTableCore {
768
862
  this.error({ content: blockReason });
769
863
  return;
770
864
  }
771
- existRow[F$1.stocktake] = applyScanQtyToStocktake(
772
- existRow[F$1.stocktake],
865
+ existRow[F$5.stocktake] = applyScanQtyToStocktake(
866
+ existRow[F$5.stocktake],
773
867
  scanQty,
774
868
  scanAdjustType
775
869
  );
@@ -778,9 +872,15 @@ class StocktakeTableCore extends ProfileDrivenSubTableCore {
778
872
  return;
779
873
  }
780
874
  const stocktakeQty = applyScanQtyToStocktake(void 0, scanQty, scanAdjustType);
781
- const row = buildInventoryScanRow(selected, parsed, fillData, stocktakeQty);
875
+ const row = buildInventoryScanRow(
876
+ selected,
877
+ parsed,
878
+ fillData,
879
+ stocktakeQty,
880
+ this.isGroupByWarehouse
881
+ );
782
882
  calcRowData(row);
783
- this.tableData = [...visibleRows, row, ...deletedRows];
883
+ this.appendOrFillScanRow(row);
784
884
  }
785
885
  }
786
886
  function resolveScanParsedFromInput(input, rules) {
@@ -793,27 +893,27 @@ function resolveScanParsedFromInput(input, rules) {
793
893
  }
794
894
  function buildAllocateScanRow(record, parsed, fillData) {
795
895
  const row = {
796
- [F$2.inventory]: record.id_,
797
- [F$2.product]: record.product_id_,
798
- [F$2.productName]: record.product_id_name_,
799
- [F$2.productCode]: record.product_id_code_,
800
- [F$2.productSpec]: record.product_id_spec_,
801
- [F$2.batch]: record.production_identification_id_,
802
- [F$2.originLocation]: record.location_id_,
803
- [F$2.originWarehouse]: record.warehouse_id_,
804
- [F$2.stock]: record.stock_num_,
805
- [F$2.mfgOrder]: record.mfg_order_id_,
806
- [F$2.lotSn]: record.lot_sn_id_,
807
- [F$2.uniqueCode]: record.unique_code_,
808
- [F$2.reInspectionDate]: record.re_inspection_date_,
809
- [F$2.allocateNum]: resolveScanQty(parsed.qty, record.qty_),
896
+ [F$6.inventory]: record.id_,
897
+ [F$6.product]: record.product_id_,
898
+ [F$6.productName]: record.product_id_name_,
899
+ [F$6.productCode]: record.product_id_code_,
900
+ [F$6.productSpec]: record.product_id_spec_,
901
+ [F$6.batch]: record.production_identification_id_,
902
+ [F$6.originLocation]: record.location_id_,
903
+ [F$6.originWarehouse]: record.warehouse_id_,
904
+ [F$6.stock]: record.stock_num_,
905
+ [F$6.mfgOrder]: record.mfg_order_id_,
906
+ [F$6.lotSn]: record.lot_sn_id_,
907
+ [F$6.uniqueCode]: record.unique_code_,
908
+ [F$6.reInspectionDate]: record.re_inspection_date_,
909
+ [F$6.allocateNum]: resolveScanQty(parsed.qty, record.qty_),
810
910
  ...fillData
811
911
  };
812
912
  const validityFromRecord = record.validate_ ?? record.validity_;
813
913
  if (parsed.expiration) {
814
- row[F$2.validity] = toDateOnly(parsed.expiration);
914
+ row[F$6.validity] = toDateOnly(parsed.expiration);
815
915
  } else if (validityFromRecord != null) {
816
- row[F$2.validity] = toDateOnly(validityFromRecord);
916
+ row[F$6.validity] = toDateOnly(validityFromRecord);
817
917
  }
818
918
  return row;
819
919
  }
@@ -832,7 +932,7 @@ class AllocateTableCore extends ProfileDrivenSubTableCore {
832
932
  }
833
933
  handleFieldTd = (params) => {
834
934
  const { field, tdHandler } = params;
835
- if (field === F$2.product) {
935
+ if (field === F$6.product) {
836
936
  tdHandler.mergeTd({
837
937
  cellWidget: {
838
938
  props: {
@@ -848,17 +948,17 @@ class AllocateTableCore extends ProfileDrivenSubTableCore {
848
948
  };
849
949
  calcFieldQuery = (params) => {
850
950
  const { field, rowData } = params;
851
- if (field === F$2.location) {
951
+ if (field === F$6.location) {
852
952
  return {
853
- "warehouse_id_.eq": rowData[F$2.warehouse]
953
+ "warehouse_id_.eq": rowData[F$6.warehouse]
854
954
  };
855
955
  }
856
- if (field === F$2.originLocation) {
956
+ if (field === F$6.originLocation) {
857
957
  return {
858
- "warehouse_id_.eq": rowData[F$2.originWarehouse]
958
+ "warehouse_id_.eq": rowData[F$6.originWarehouse]
859
959
  };
860
960
  }
861
- if (field === F$2.product) {
961
+ if (field === F$6.product) {
862
962
  return {
863
963
  warehouse_id_: this.warehouseId
864
964
  };
@@ -893,10 +993,10 @@ class AllocateTableCore extends ProfileDrivenSubTableCore {
893
993
  handleChange(params) {
894
994
  super.handleChange(params);
895
995
  const { field, value, option, rowData } = params;
896
- if (field !== F$2.product || !option || value === void 0 || value === null || value === "") {
996
+ if (field !== F$6.product || !option || value === void 0 || value === null || value === "") {
897
997
  return;
898
998
  }
899
- for (const { optionField, toField } of FILL_FROM_INVENTORY_OPTION$1) {
999
+ for (const { optionField, toField } of FILL_FROM_INVENTORY_OPTION$3) {
900
1000
  rowData[toField] = option[optionField];
901
1001
  }
902
1002
  }
@@ -914,7 +1014,7 @@ class AllocateTableCore extends ProfileDrivenSubTableCore {
914
1014
  const selected = await this.pickScanRecord(records);
915
1015
  if (!selected) return;
916
1016
  const row = buildAllocateScanRow(selected, parsed, resolveScanFillData(input));
917
- this.tableData = [...this.showTableData, row];
1017
+ this.appendOrFillScanRow(row);
918
1018
  }
919
1019
  beforeBtnClick = async (params) => {
920
1020
  const { btn } = params;
@@ -934,7 +1034,7 @@ class AllocateTableCore extends ProfileDrivenSubTableCore {
934
1034
  }
935
1035
  };
936
1036
  }
937
- const F3 = {
1037
+ const F2 = {
938
1038
  /** 产品 */
939
1039
  product: "product_id_",
940
1040
  /** 产品标签 */
@@ -959,69 +1059,69 @@ const F3 = {
959
1059
  productionDate: "production_date_"
960
1060
  };
961
1061
  const STERILIZE_ALWAYS_DISABLED_FIELDS = [
962
- F3.product,
963
- F3.productCode,
964
- F3.productSpec,
965
- F3.productName,
966
- F3.mfgOrderCode,
967
- F3.mfgOrder
1062
+ F2.product,
1063
+ F2.productCode,
1064
+ F2.productSpec,
1065
+ F2.productName,
1066
+ F2.mfgOrderCode,
1067
+ F2.mfgOrder
968
1068
  ];
969
1069
  const CLEAR_ON_PROD_CONTAINER_EMPTY = [
970
- F3.product,
971
- F3.productLb,
972
- F3.productName,
973
- F3.productCode,
974
- F3.productSpec,
975
- F3.qty,
976
- F3.mfgOrderCode,
977
- F3.mfgOrder,
978
- F3.mfgOrderLb,
979
- F3.productionDate
1070
+ F2.product,
1071
+ F2.productLb,
1072
+ F2.productName,
1073
+ F2.productCode,
1074
+ F2.productSpec,
1075
+ F2.qty,
1076
+ F2.mfgOrderCode,
1077
+ F2.mfgOrder,
1078
+ F2.mfgOrderLb,
1079
+ F2.productionDate
980
1080
  ];
981
1081
  const fillFromOption = [
982
1082
  {
983
- optionField: F3.product,
984
- toField: F3.product
1083
+ optionField: F2.product,
1084
+ toField: F2.product
985
1085
  },
986
1086
  {
987
- optionField: F3.productName,
988
- toField: F3.productName
1087
+ optionField: F2.productName,
1088
+ toField: F2.productName
989
1089
  },
990
1090
  {
991
- optionField: F3.productCode,
992
- toField: F3.productCode
1091
+ optionField: F2.productCode,
1092
+ toField: F2.productCode
993
1093
  },
994
1094
  {
995
- optionField: F3.productSpec,
996
- toField: F3.productSpec
1095
+ optionField: F2.productSpec,
1096
+ toField: F2.productSpec
997
1097
  },
998
1098
  {
999
- optionField: F3.mfgOrder,
1000
- toField: F3.mfgOrder
1099
+ optionField: F2.mfgOrder,
1100
+ toField: F2.mfgOrder
1001
1101
  },
1002
1102
  {
1003
- optionField: F3.mfgOrderCode,
1103
+ optionField: F2.mfgOrderCode,
1004
1104
  //工单号
1005
- toField: F3.mfgOrderCode
1105
+ toField: F2.mfgOrderCode
1006
1106
  },
1007
1107
  {
1008
1108
  optionField: "real_start_date_",
1009
1109
  //生产日期
1010
- toField: F3.productionDate
1110
+ toField: F2.productionDate
1011
1111
  },
1012
1112
  {
1013
- optionField: F3.qty,
1014
- toField: F3.qty
1113
+ optionField: F2.qty,
1114
+ toField: F2.qty
1015
1115
  }
1016
1116
  ];
1017
- function applyFillFromOption(A2, B4) {
1018
- const writableA = A2;
1117
+ function applyFillFromOption(A, B4) {
1118
+ const writableA = A;
1019
1119
  fillFromOption.forEach(({ optionField, toField }) => {
1020
1120
  if (has(B4, optionField)) {
1021
1121
  writableA[toField] = B4[optionField];
1022
1122
  }
1023
1123
  });
1024
- return A2;
1124
+ return A;
1025
1125
  }
1026
1126
  function mapContainerRowsToOptions(data = []) {
1027
1127
  return data.map((item) => ({
@@ -1034,15 +1134,15 @@ function mapContainerRowsToOptions(data = []) {
1034
1134
  const SCAN_NOT_FOUND_MSG$1 = "扫描的物料批次不存在";
1035
1135
  function buildEntrustScanRow(record, parsed, fillData) {
1036
1136
  return {
1037
- [F3.productionContainer]: record.lot_sn_id_ ?? record.production_container_id_,
1038
- [F3.product]: record.product_id_,
1039
- [F3.productName]: record.product_id_name_,
1040
- [F3.productCode]: record.product_id_code_,
1041
- [F3.productSpec]: record.product_id_spec_,
1042
- [F3.mfgOrderCode]: record.mfg_order_code_,
1043
- [F3.mfgOrder]: record.mfg_order_id_,
1044
- [F3.qty]: parsed.qty ?? record.qty_,
1045
- [F3.productionDate]: toDateOnly(record.production_date_),
1137
+ [F2.productionContainer]: record.lot_sn_id_ ?? record.production_container_id_,
1138
+ [F2.product]: record.product_id_,
1139
+ [F2.productName]: record.product_id_name_,
1140
+ [F2.productCode]: record.product_id_code_,
1141
+ [F2.productSpec]: record.product_id_spec_,
1142
+ [F2.mfgOrderCode]: record.mfg_order_code_,
1143
+ [F2.mfgOrder]: record.mfg_order_id_,
1144
+ [F2.qty]: parsed.qty ?? record.qty_,
1145
+ [F2.productionDate]: toDateOnly(record.production_date_),
1046
1146
  ...fillData
1047
1147
  };
1048
1148
  }
@@ -1089,7 +1189,7 @@ class SterilizeBatchTableCore extends SubTableCore {
1089
1189
  };
1090
1190
  handleFieldTd = (params) => {
1091
1191
  const { field, tdHandler } = params;
1092
- if (field === F3.productionContainer) {
1192
+ if (field === F2.productionContainer) {
1093
1193
  tdHandler.mergeTd({
1094
1194
  cellWidget: {
1095
1195
  props: {
@@ -1111,31 +1211,13 @@ class SterilizeBatchTableCore extends SubTableCore {
1111
1211
  }
1112
1212
  calcFieldDataSource = (params) => {
1113
1213
  const { field } = params;
1114
- if (field !== F3.productionContainer) return;
1214
+ if (field !== F2.productionContainer) return;
1115
1215
  const loader = async (loaderParams) => {
1116
- const { mode, queryData = {}, exp, pageNo = 1, pageSize = 100, ids = [] } = loaderParams;
1117
- let resolvedExp = exp;
1118
- const query = {
1119
- ...queryData,
1120
- is_rework_: 0,
1121
- "production_identification_type_.in": ["LOT", "SN"],
1122
- "container_role_.ne": LOT_CONTAINER_ROLE.RELATED_PARENT
1123
- };
1216
+ const { mode, queryData = {}, pageNo = 1, pageSize = 100, ids = [] } = loaderParams;
1217
+ const keyword = mode === "byIds" ? "" : extractKeywordFromQueryData(queryData) || "";
1218
+ const { queryData: query, exp } = composeProductionLotListQuery(queryData, keyword);
1124
1219
  if (mode === "byIds" && ids.length) {
1125
1220
  query["id_.in"] = ids;
1126
- } else {
1127
- const keyword = extractKeywordFromQueryData(queryData);
1128
- if (keyword) {
1129
- if (!query["name_.like"] && !query["name_.iLike"]) {
1130
- query["name_.like"] = keyword;
1131
- }
1132
- if (!query["related_parent_name_.like"] && !query["related_parent_name_.iLike"]) {
1133
- query["related_parent_name_.like"] = keyword;
1134
- }
1135
- if (!resolvedExp && (query["name_.like"] || query["name_.iLike"]) && (query["related_parent_name_.like"] || query["related_parent_name_.iLike"])) {
1136
- resolvedExp = "OR(name_.like,related_parent_name_.like)";
1137
- }
1138
- }
1139
1221
  }
1140
1222
  const res = await api.apaas.modelComprehensive.postBizServiceModelCategoryModelKeyBsKey(
1141
1223
  {
@@ -1145,7 +1227,7 @@ class SterilizeBatchTableCore extends SubTableCore {
1145
1227
  },
1146
1228
  {},
1147
1229
  {
1148
- exp: resolvedExp,
1230
+ exp,
1149
1231
  query,
1150
1232
  pageNo,
1151
1233
  pageSize,
@@ -1179,7 +1261,7 @@ class SterilizeBatchTableCore extends SubTableCore {
1179
1261
  };
1180
1262
  handleChange = (params) => {
1181
1263
  const { field, option, value, rowData } = params;
1182
- if (field !== F3.productionContainer) return;
1264
+ if (field !== F2.productionContainer) return;
1183
1265
  if (option) {
1184
1266
  applyFillFromOption(rowData, option);
1185
1267
  return;
@@ -1204,7 +1286,7 @@ class SterilizeBatchTableCore extends SubTableCore {
1204
1286
  const selected = await this.pickScanRecord(records);
1205
1287
  if (!selected) return;
1206
1288
  const row = buildEntrustScanRow(selected, parsed, resolveScanFillData(input));
1207
- this.tableData = [...this.showTableData, row];
1289
+ this.appendOrFillScanRow(row);
1208
1290
  }
1209
1291
  }
1210
1292
  function mapRefRowsToOptions(data = [], labelKey = "name_", displayRelatedParent = false) {
@@ -1217,29 +1299,11 @@ function mapRefRowsToOptions(data = [], labelKey = "name_", displayRelatedParent
1217
1299
  }
1218
1300
  function createProductionContainerLoader() {
1219
1301
  return async (loaderParams) => {
1220
- const { mode, queryData = {}, exp, pageNo = 1, pageSize = 100, ids = [] } = loaderParams;
1221
- let resolvedExp = exp;
1222
- const query = {
1223
- ...queryData,
1224
- is_rework_: 0,
1225
- "production_identification_type_.in": ["LOT", "SN"],
1226
- "container_role_.ne": LOT_CONTAINER_ROLE.RELATED_PARENT
1227
- };
1302
+ const { mode, queryData = {}, pageNo = 1, pageSize = 100, ids = [] } = loaderParams;
1303
+ const keyword = mode === "byIds" ? "" : extractKeywordFromQueryData(queryData) || "";
1304
+ const { queryData: query, exp } = composeProductionLotListQuery(queryData, keyword);
1228
1305
  if (mode === "byIds" && ids.length) {
1229
1306
  query["id_.in"] = ids;
1230
- } else {
1231
- const keyword = extractKeywordFromQueryData(queryData);
1232
- if (keyword) {
1233
- if (!query["name_.like"] && !query["name_.iLike"]) {
1234
- query["name_.like"] = keyword;
1235
- }
1236
- if (!query["related_parent_name_.like"] && !query["related_parent_name_.iLike"]) {
1237
- query["related_parent_name_.like"] = keyword;
1238
- }
1239
- if (!resolvedExp && (query["name_.like"] || query["name_.iLike"]) && (query["related_parent_name_.like"] || query["related_parent_name_.iLike"])) {
1240
- resolvedExp = "OR(name_.like,related_parent_name_.like)";
1241
- }
1242
- }
1243
1307
  }
1244
1308
  const res = await api.apaas.modelComprehensive.postBizServiceModelCategoryModelKeyBsKey(
1245
1309
  {
@@ -1249,7 +1313,7 @@ function createProductionContainerLoader() {
1249
1313
  },
1250
1314
  {},
1251
1315
  {
1252
- exp: resolvedExp,
1316
+ exp,
1253
1317
  query,
1254
1318
  pageNo,
1255
1319
  pageSize,
@@ -1333,7 +1397,8 @@ function createMaterialContainerLoader() {
1333
1397
  const query = {
1334
1398
  ...queryData,
1335
1399
  "production_identification_type_.eq": "MATERIAL",
1336
- "production_identification_type_.isNull": null
1400
+ "production_identification_type_.isNull": null,
1401
+ "container_role_.ne": LOT_CONTAINER_ROLE.RELATED_PARENT
1337
1402
  };
1338
1403
  const keyword = query["material_no_.like"] ?? query["name_.like"];
1339
1404
  if (keyword) {
@@ -1351,7 +1416,7 @@ function createMaterialContainerLoader() {
1351
1416
  },
1352
1417
  {},
1353
1418
  {
1354
- exp: "OR(production_identification_type_.eq,production_identification_type_.isNull)",
1419
+ exp: "AND(OR(production_identification_type_.eq,production_identification_type_.isNull),container_role_.ne)",
1355
1420
  query,
1356
1421
  pageNo,
1357
1422
  pageSize
@@ -1379,7 +1444,7 @@ function createMaterialContainerLoader() {
1379
1444
  };
1380
1445
  };
1381
1446
  }
1382
- function isBlank(value) {
1447
+ function isBlank$1(value) {
1383
1448
  return value === void 0 || value === null || value === "";
1384
1449
  }
1385
1450
  const SCAN_NOT_FOUND_MSG = "扫描的批次/物料不存在";
@@ -1389,32 +1454,32 @@ function isProductionLotOrSn(record) {
1389
1454
  }
1390
1455
  function buildProductionContainerRow(record, parsed, fillData) {
1391
1456
  return {
1392
- [F$3.productionContainer]: record.lot_sn_id_ ?? record.production_container_id_,
1393
- [F$3.product]: record.product_id_,
1394
- [F$3.productName]: record.product_id_name_,
1395
- [F$3.productCode]: record.product_id_code_,
1396
- [F$3.productSpec]: record.product_id_spec_,
1397
- [F$3.mfgOrderCode]: record.mfg_order_code_,
1398
- [F$3.qty]: parsed.qty ?? record.qty_,
1399
- [F$3.productionDate]: toDateOnly(record.production_date_),
1400
- [F$3.materialContainerNo]: void 0,
1457
+ [F$7.productionContainer]: record.lot_sn_id_ ?? record.production_container_id_,
1458
+ [F$7.product]: record.product_id_,
1459
+ [F$7.productName]: record.product_id_name_,
1460
+ [F$7.productCode]: record.product_id_code_,
1461
+ [F$7.productSpec]: record.product_id_spec_,
1462
+ [F$7.mfgOrderCode]: record.mfg_order_code_,
1463
+ [F$7.qty]: parsed.qty ?? record.qty_,
1464
+ [F$7.productionDate]: toDateOnly(record.production_date_),
1465
+ [F$7.materialContainerNo]: void 0,
1401
1466
  [MATERIAL_CONTAINER_ID]: void 0,
1402
- [F$3.mfgOrder]: void 0,
1467
+ [F$7.mfgOrder]: void 0,
1403
1468
  ...fillData
1404
1469
  };
1405
1470
  }
1406
1471
  function buildMaterialContainerRow(record, parsed, fillData) {
1407
1472
  return {
1408
- [F$3.materialContainerNo]: record.material_no_,
1473
+ [F$7.materialContainerNo]: record.material_no_,
1409
1474
  [MATERIAL_CONTAINER_ID]: record.production_identification_id_,
1410
- [F$3.product]: record.product_id_,
1411
- [F$3.productName]: record.product_id_name_,
1412
- [F$3.productCode]: record.product_id_code_,
1413
- [F$3.productSpec]: record.product_id_spec_,
1414
- [F$3.mfgOrderCode]: record.mfg_order_code_,
1415
- [F$3.mfgOrder]: record.mfg_order_id_,
1416
- [F$3.qty]: parsed.qty ?? record.qty_,
1417
- [F$3.productionContainer]: void 0,
1475
+ [F$7.product]: record.product_id_,
1476
+ [F$7.productName]: record.product_id_name_,
1477
+ [F$7.productCode]: record.product_id_code_,
1478
+ [F$7.productSpec]: record.product_id_spec_,
1479
+ [F$7.mfgOrderCode]: record.mfg_order_code_,
1480
+ [F$7.mfgOrder]: record.mfg_order_id_,
1481
+ [F$7.qty]: parsed.qty ?? record.qty_,
1482
+ [F$7.productionContainer]: void 0,
1418
1483
  ...fillData
1419
1484
  };
1420
1485
  }
@@ -1462,31 +1527,31 @@ class PretreatmentListTableCore extends ProfileDrivenSubTableCore {
1462
1527
  calcFieldStatus(params) {
1463
1528
  const result = super.calcFieldStatus(params);
1464
1529
  const { field, rowData } = params;
1465
- if (field === F$3.product) {
1530
+ if (field === F$7.product) {
1466
1531
  result.disabled = !isProductManuallyEditable(rowData);
1467
1532
  }
1468
1533
  return result;
1469
1534
  }
1470
1535
  calcFieldDataSource = (params) => {
1471
1536
  const { field } = params;
1472
- if (field === F$3.productionContainer) return createProductionContainerLoader();
1473
- if (field === F$3.mfgOrder) return createMfgOrderLoader();
1474
- if (field === F$3.materialContainerNo) return createMaterialContainerLoader();
1537
+ if (field === F$7.productionContainer) return createProductionContainerLoader();
1538
+ if (field === F$7.mfgOrder) return createMfgOrderLoader();
1539
+ if (field === F$7.materialContainerNo) return createMaterialContainerLoader();
1475
1540
  };
1476
1541
  handleChange(params) {
1477
1542
  super.handleChange(params);
1478
1543
  const { field, option, value, rowData } = params;
1479
- if (!option || isBlank(value)) return;
1544
+ if (!option || isBlank$1(value)) return;
1480
1545
  const source = option._item ?? option;
1481
- if (field === F$3.mfgOrder) {
1546
+ if (field === F$7.mfgOrder) {
1482
1547
  applyFillFromMfgOrderOption(rowData, source);
1483
1548
  return;
1484
1549
  }
1485
- if (field === F$3.productionContainer || field === F$3.materialContainerNo) {
1550
+ if (field === F$7.productionContainer || field === F$7.materialContainerNo) {
1486
1551
  applyFillFromOption$1(rowData, source);
1487
1552
  return;
1488
1553
  }
1489
- if (field === F$3.product) {
1554
+ if (field === F$7.product) {
1490
1555
  applyFillFromProductOption(rowData, source);
1491
1556
  }
1492
1557
  }
@@ -1505,33 +1570,87 @@ class PretreatmentListTableCore extends ProfileDrivenSubTableCore {
1505
1570
  if (!selected) return;
1506
1571
  const fillData = resolveScanFillData(input);
1507
1572
  const row = isProductionLotOrSn(selected) ? buildProductionContainerRow(selected, parsed, fillData) : buildMaterialContainerRow(selected, parsed, fillData);
1508
- this.tableData = [...this.showTableData, row];
1573
+ this.appendOrFillScanRow(row);
1509
1574
  }
1510
1575
  }
1511
1576
  function buildWarehouseInScanRow(record, parsed, fillData) {
1512
1577
  const row = {
1513
- [F$4.product]: record.product_id_,
1514
- [F$4.productName]: record.product_id_name_,
1515
- [F$4.productCode]: record.product_id_code_,
1516
- [F$4.productSpec]: record.product_id_spec_,
1517
- [F$4.materialNo]: record.material_no_,
1518
- [F$4.materialNoId]: record.production_identification_id_,
1519
- [F$4.mfgOrder]: record.mfg_order_id_,
1520
- [F$4.lotSn]: record.lot_sn_id_,
1521
- [F$4.uniqueCode]: record.unique_code_,
1522
- [F$4.reInspectionDate]: record.re_inspection_date_,
1523
- [F$4.qty]: resolveScanQty(parsed.qty, record.qty_),
1578
+ [F$8.product]: record.product_id_,
1579
+ [F$8.productName]: record.product_id_name_,
1580
+ [F$8.productCode]: record.product_id_code_,
1581
+ [F$8.productSpec]: record.product_id_spec_,
1582
+ [F$8.materialNo]: record.material_no_,
1583
+ [F$8.materialNoId]: record.production_identification_id_,
1584
+ [F$8.mfgOrder]: record.mfg_order_id_,
1585
+ [F$8.lotSn]: record.lot_sn_id_,
1586
+ [F$8.uniqueCode]: record.unique_code_,
1587
+ [F$8.reInspectionDate]: record.re_inspection_date_,
1588
+ [F$8.qty]: resolveScanQty(parsed.qty, record.qty_),
1524
1589
  ...fillData
1525
1590
  };
1526
1591
  const validityFromRecord = record.validity_;
1527
- if (parsed.expiration && row[F$4.validity] == null) {
1528
- row[F$4.validity] = toDateOnly(parsed.expiration);
1529
- } else if (validityFromRecord != null && row[F$4.validity] == null) {
1530
- row[F$4.validity] = toDateOnly(validityFromRecord);
1592
+ if (parsed.expiration && row[F$8.validity] == null) {
1593
+ row[F$8.validity] = toDateOnly(parsed.expiration);
1594
+ } else if (validityFromRecord != null && row[F$8.validity] == null) {
1595
+ row[F$8.validity] = toDateOnly(validityFromRecord);
1531
1596
  }
1532
1597
  return row;
1533
1598
  }
1599
+ function isBlank(value) {
1600
+ return value === void 0 || value === null || value === "";
1601
+ }
1602
+ function resolveOptionRecord(option) {
1603
+ if (!option) return void 0;
1604
+ const nested = option._item;
1605
+ if (nested && typeof nested === "object") {
1606
+ return nested;
1607
+ }
1608
+ return option;
1609
+ }
1534
1610
  class WarehouseInTableCore extends ProfileDrivenSubTableCore {
1611
+ isEmptyScanRow(row) {
1612
+ return isProductBatchEmptyRow(row);
1613
+ }
1614
+ handleFieldTd = (params) => {
1615
+ const { field, tdHandler } = params;
1616
+ if (field === F$8.product) {
1617
+ const current = tdHandler.td.cellWidget?.props;
1618
+ const searchFields = current?.quickSearchField ?? PRODUCT_QUICK_SEARCH_FIELDS;
1619
+ tdHandler.mergeTd({
1620
+ cellWidget: {
1621
+ props: {
1622
+ quickSearchable: searchFields.length > 0,
1623
+ ...current?.quickSearchField !== void 0 ? {} : {
1624
+ quickSearchField: [...PRODUCT_QUICK_SEARCH_FIELDS],
1625
+ quickSearchExp: PRODUCT_QUICK_SEARCH_EXP
1626
+ }
1627
+ }
1628
+ }
1629
+ });
1630
+ }
1631
+ super.handleFieldTd(params);
1632
+ };
1633
+ calcFieldStatus(params) {
1634
+ const result = super.calcFieldStatus(params);
1635
+ if (params.field === F$8.product) {
1636
+ result.disabled = !isProductManuallyEditable$1(params.rowData);
1637
+ }
1638
+ return result;
1639
+ }
1640
+ handleChange(params) {
1641
+ super.handleChange(params);
1642
+ const { field, value, option, rowData } = params;
1643
+ if (isBlank(value) || !option) return;
1644
+ const source = resolveOptionRecord(option);
1645
+ if (!source) return;
1646
+ if (field === F$8.materialNo) {
1647
+ applyFillFromMaterialNoOption(rowData, source);
1648
+ return;
1649
+ }
1650
+ if (field === F$8.product) {
1651
+ applyFillFromProductOption$1(rowData, source);
1652
+ }
1653
+ }
1535
1654
  calcSubTableActionMenu = (params) => {
1536
1655
  const { showDelBtn } = params;
1537
1656
  return [
@@ -1572,41 +1691,41 @@ class WarehouseInTableCore extends ProfileDrivenSubTableCore {
1572
1691
  const selected = await this.pickScanRecord(records);
1573
1692
  if (!selected) return;
1574
1693
  const row = buildWarehouseInScanRow(selected, parsed, resolveScanFillData(input));
1575
- this.tableData = [...this.showTableData, row];
1694
+ this.appendOrFillScanRow(row);
1576
1695
  }
1577
1696
  }
1578
1697
  function isSameMaterialBatch(row, record) {
1579
- if (row[F$5.product] !== record.product_id_) return false;
1580
- const rowBatchId = row[F$5.materialNoId];
1698
+ if (row[F$9.product] !== record.product_id_) return false;
1699
+ const rowBatchId = row[F$9.materialNoId];
1581
1700
  const recordBatchId = record.production_identification_id_;
1582
1701
  if (rowBatchId && recordBatchId) return rowBatchId === recordBatchId;
1583
- const rowBatchNo = row[F$5.materialNo];
1702
+ const rowBatchNo = row[F$9.materialNo];
1584
1703
  const recordBatchNo = record.material_no_ ?? record.name_;
1585
1704
  return Boolean(rowBatchNo && recordBatchNo && rowBatchNo === recordBatchNo);
1586
1705
  }
1587
1706
  function buildWarehouseOutScanRow(record, parsed, fillData, qty) {
1588
1707
  const row = {
1589
- [F$5.inventory]: record.id_,
1590
- [F$5.product]: record.product_id_,
1591
- [F$5.productName]: record.product_id_name_,
1592
- [F$5.productCode]: record.product_id_code_,
1593
- [F$5.productSpec]: record.product_id_spec_,
1594
- [F$5.materialNo]: record.material_no_,
1595
- [F$5.materialNoId]: record.production_identification_id_,
1596
- [F$5.warehouse]: record.warehouse_id_,
1597
- [F$5.location]: record.location_id_,
1598
- [F$5.mfgOrder]: record.mfg_order_id_,
1599
- [F$5.lotSn]: record.lot_sn_id_,
1600
- [F$5.uniqueCode]: record.unique_code_,
1601
- [F$5.reInspectionDate]: record.re_inspection_date_,
1602
- [F$5.qty]: qty,
1708
+ [F$9.inventory]: record.id_,
1709
+ [F$9.product]: record.product_id_,
1710
+ [F$9.productName]: record.product_id_name_,
1711
+ [F$9.productCode]: record.product_id_code_,
1712
+ [F$9.productSpec]: record.product_id_spec_,
1713
+ [F$9.materialNo]: record.material_no_,
1714
+ [F$9.materialNoId]: record.production_identification_id_,
1715
+ [F$9.warehouse]: record.warehouse_id_,
1716
+ [F$9.location]: record.location_id_,
1717
+ [F$9.mfgOrder]: record.mfg_order_id_,
1718
+ [F$9.lotSn]: record.lot_sn_id_,
1719
+ [F$9.uniqueCode]: record.unique_code_,
1720
+ [F$9.reInspectionDate]: record.re_inspection_date_,
1721
+ [F$9.qty]: qty,
1603
1722
  ...fillData
1604
1723
  };
1605
1724
  const validityFromRecord = record.validate_ ?? record.validity_;
1606
1725
  if (parsed.expiration) {
1607
- row[F$5.validity] = toDateOnly(parsed.expiration);
1726
+ row[F$9.validity] = toDateOnly(parsed.expiration);
1608
1727
  } else if (validityFromRecord != null) {
1609
- row[F$5.validity] = toDateOnly(validityFromRecord);
1728
+ row[F$9.validity] = toDateOnly(validityFromRecord);
1610
1729
  }
1611
1730
  return row;
1612
1731
  }
@@ -1614,9 +1733,12 @@ class WarehouseOutTableCore extends ProfileDrivenSubTableCore {
1614
1733
  get warehouseId() {
1615
1734
  return this.factory.ctx.paramsConfig?.warehouseId;
1616
1735
  }
1736
+ isEmptyScanRow(row) {
1737
+ return isProductBatchEmptyRow(row);
1738
+ }
1617
1739
  handleFieldTd = (params) => {
1618
1740
  const { field, tdHandler } = params;
1619
- if (field === F$5.product) {
1741
+ if (field === F$9.product) {
1620
1742
  tdHandler.mergeTd({
1621
1743
  cellWidget: {
1622
1744
  props: {
@@ -1632,7 +1754,7 @@ class WarehouseOutTableCore extends ProfileDrivenSubTableCore {
1632
1754
  };
1633
1755
  calcFieldQuery = (params) => {
1634
1756
  const { field } = params;
1635
- if (field === F$5.product) {
1757
+ if (field === F$9.product) {
1636
1758
  return {
1637
1759
  warehouse_id_: this.warehouseId
1638
1760
  };
@@ -1667,10 +1789,10 @@ class WarehouseOutTableCore extends ProfileDrivenSubTableCore {
1667
1789
  handleChange(params) {
1668
1790
  super.handleChange(params);
1669
1791
  const { field, value, option, rowData } = params;
1670
- if (field !== F$5.product || !option || value === void 0 || value === null || value === "") {
1792
+ if (field !== F$9.product || !option || value === void 0 || value === null || value === "") {
1671
1793
  return;
1672
1794
  }
1673
- for (const { optionField, toField } of FILL_FROM_INVENTORY_OPTION$2) {
1795
+ for (const { optionField, toField } of FILL_FROM_INVENTORY_OPTION$4) {
1674
1796
  rowData[toField] = option[optionField];
1675
1797
  }
1676
1798
  }
@@ -1693,12 +1815,12 @@ class WarehouseOutTableCore extends ProfileDrivenSubTableCore {
1693
1815
  const existIndex = visibleRows.findIndex((row2) => isSameMaterialBatch(row2, selected));
1694
1816
  if (existIndex >= 0) {
1695
1817
  const existRow = visibleRows[existIndex];
1696
- existRow[F$5.qty] = Number(existRow[F$5.qty] ?? 0) + scanQty;
1818
+ existRow[F$9.qty] = Number(existRow[F$9.qty] ?? 0) + scanQty;
1697
1819
  this.tableData = [...visibleRows];
1698
1820
  return;
1699
1821
  }
1700
1822
  const row = buildWarehouseOutScanRow(selected, parsed, fillData, scanQty);
1701
- this.tableData = [...visibleRows, row];
1823
+ this.appendOrFillScanRow(row);
1702
1824
  }
1703
1825
  }
1704
1826
  function getClassByType(type) {
@@ -1829,6 +1951,20 @@ class SubTableCoreFactory {
1829
1951
  await Promise.all(Object.values(this.coreMap).map(async (core) => core.beforeBtnClick(params)));
1830
1952
  }
1831
1953
  }
1954
+ function pickMainModelDisplay(dataCenter, modelKey) {
1955
+ for (const item of Object.values(dataCenter || {})) {
1956
+ const props = item?.cellWidget?.props || item?.props;
1957
+ const name = props?.newSpecificConfig?.newModelName;
1958
+ if (!name) continue;
1959
+ if (props.subFieldKey) continue;
1960
+ if (modelKey && props.modelKey && props.modelKey !== modelKey) continue;
1961
+ return {
1962
+ showModelName: name,
1963
+ showModelKey: props.modelKey || modelKey || ""
1964
+ };
1965
+ }
1966
+ return { showModelName: "", showModelKey: modelKey || "" };
1967
+ }
1832
1968
  function useRenderPageFactory(props, payload) {
1833
1969
  const counter = ref(0);
1834
1970
  const finisher = ref(0);
@@ -1845,6 +1981,7 @@ function useRenderPageFactory(props, payload) {
1845
1981
  const { getConsumeData } = useMaterialBalance();
1846
1982
  const validationSyncStops = /* @__PURE__ */ new Map();
1847
1983
  const validationSuppressUntil = /* @__PURE__ */ new Map();
1984
+ const mcRuntimeStops = /* @__PURE__ */ new Map();
1848
1985
  function unbindFormValidationSync(uniqueId) {
1849
1986
  validationSyncStops.get(uniqueId)?.forEach((stop) => stop());
1850
1987
  validationSyncStops.delete(uniqueId);
@@ -1871,6 +2008,61 @@ function useRenderPageFactory(props, payload) {
1871
2008
  );
1872
2009
  validationSyncStops.set(uniqueId, stops);
1873
2010
  }
2011
+ function unbindMcRuntime(uniqueId) {
2012
+ const stops = mcRuntimeStops.get(uniqueId);
2013
+ if (!stops) return;
2014
+ stops.forEach((stop) => stop());
2015
+ mcRuntimeStops.delete(uniqueId);
2016
+ }
2017
+ function destroyMcModals() {
2018
+ MaterialConsumeTableController.render?.destroyAllModals();
2019
+ }
2020
+ function clearMcRuntime() {
2021
+ [...mcRuntimeStops.keys()].forEach(unbindMcRuntime);
2022
+ destroyMcModals();
2023
+ }
2024
+ function bindMcRuntime(uniqueId, dataStatus) {
2025
+ unbindMcRuntime(uniqueId);
2026
+ const paper = dataCenterMap.value[uniqueId]?.[ComponentTypeEnum.PAPER];
2027
+ const mcList = paper?.props?.materialConsumeTableList ?? [];
2028
+ if (!mcList.length) return;
2029
+ const tmplBomC = tmplBomCMap.value[uniqueId];
2030
+ if (!tmplBomC) return;
2031
+ const stops = [];
2032
+ for (const item of mcList) {
2033
+ const controller = tmplBomC.tableControllers[item.tableKey];
2034
+ if (!controller) continue;
2035
+ const field = item.masterSubField;
2036
+ controller.bindRuntime({
2037
+ tableDataRef: computed({
2038
+ get: () => formStateMap.value[uniqueId]?.[field] ?? [],
2039
+ set: (val) => {
2040
+ if (formStateMap.value[uniqueId]) {
2041
+ formStateMap.value[uniqueId][field] = val;
2042
+ }
2043
+ updatePageData(uniqueId);
2044
+ }
2045
+ }),
2046
+ mainFormState: computed(() => formStateMap.value[uniqueId] ?? {}),
2047
+ dataStatus,
2048
+ defaultRowData: renderUtils.getDefaultValueInfo({
2049
+ defaultDataMap: defaultDataMap.value[uniqueId],
2050
+ key: field
2051
+ })
2052
+ });
2053
+ stops.push(
2054
+ watch(
2055
+ () => controller.materialNoNum,
2056
+ () => {
2057
+ if (controller.dataStatus === "SUBMIT") return;
2058
+ controller.syncQtyRequiredFromBom();
2059
+ },
2060
+ { immediate: true }
2061
+ )
2062
+ );
2063
+ }
2064
+ if (stops.length) mcRuntimeStops.set(uniqueId, stops);
2065
+ }
1874
2066
  const callbackName = {
1875
2067
  template: requestTemplateInfo,
1876
2068
  instance: requestSelfInfo,
@@ -1886,7 +2078,7 @@ function useRenderPageFactory(props, payload) {
1886
2078
  });
1887
2079
  watch(
1888
2080
  [() => props.selfId, () => counter.value],
1889
- async ([newRequestId, _2]) => {
2081
+ async ([newRequestId, _3]) => {
1890
2082
  console.log("aaaaaaaaaa", newRequestId);
1891
2083
  if (isEmpty(newRequestId)) {
1892
2084
  invalidateFetch();
@@ -1912,6 +2104,7 @@ function useRenderPageFactory(props, payload) {
1912
2104
  selfInfoList.value.push(res.selfInfo);
1913
2105
  registerFormValidationContext(res.basicInfo.uniqueId);
1914
2106
  bindFormValidationSync(res.basicInfo.uniqueId);
2107
+ bindMcRuntime(res.basicInfo.uniqueId, res.selfInfo?.dataStatus);
1915
2108
  }
1916
2109
  });
1917
2110
  console.log(
@@ -1996,8 +2189,18 @@ function useRenderPageFactory(props, payload) {
1996
2189
  btnModelType = fillModeType;
1997
2190
  }
1998
2191
  }
2192
+ const rawTxnConfig = selfInfo?.txnConfig;
2193
+ let txnConfig = rawTxnConfig;
2194
+ if (typeof rawTxnConfig === "string") {
2195
+ try {
2196
+ txnConfig = JSON.parse(rawTxnConfig);
2197
+ } catch {
2198
+ txnConfig = void 0;
2199
+ }
2200
+ }
1999
2201
  const paramsConfig = {
2000
2202
  ...JSON.parse(selfInfo.params || "{}"),
2203
+ ...txnConfig == null ? {} : { txnConfig },
2001
2204
  ...payload.paramExtraProps || {}
2002
2205
  };
2003
2206
  if (paramsConfig?._gct_useDynRowHeight_) {
@@ -2404,6 +2607,8 @@ function useRenderPageFactory(props, payload) {
2404
2607
  annRowDetails: [],
2405
2608
  validatorLocationList: [],
2406
2609
  validatorMessageMap: {},
2610
+ mcValidatorLocationList: [],
2611
+ mcValidatorMessageMap: {},
2407
2612
  mobileTdIdGroups: fieldInfoMap.tdIdGroups,
2408
2613
  mobileSelectTdId: void 0,
2409
2614
  contentHighlight: paramsConfig?._gct_nocode_of_instance_id_ === props.selfId ? {
@@ -2412,7 +2617,9 @@ function useRenderPageFactory(props, payload) {
2412
2617
  )
2413
2618
  } : {},
2414
2619
  productSearchFields: payload?.deviceConfig?.defaultProductSearchFields,
2415
- showPrintFieldBg: paramsConfig?.showPrintFieldBg
2620
+ showPrintFieldBg: paramsConfig?.showPrintFieldBg,
2621
+ paramsConfig,
2622
+ instanceStatus: selfInfo.instanceStatus
2416
2623
  },
2417
2624
  selfInfo: {
2418
2625
  ...selfInfo,
@@ -2422,6 +2629,7 @@ function useRenderPageFactory(props, payload) {
2422
2629
  foreignFields: fieldInfoMap.foreignFields,
2423
2630
  subModelFields: fieldInfoMap.subModelFields,
2424
2631
  appendixFields: fieldInfoMap.useAppendixFields,
2632
+ signatureFields: fieldInfoMap.useSignatureFields,
2425
2633
  subTableInfo
2426
2634
  }
2427
2635
  }
@@ -2431,8 +2639,10 @@ function useRenderPageFactory(props, payload) {
2431
2639
  function clear() {
2432
2640
  basicInfoList.value.forEach((info) => {
2433
2641
  unbindFormValidationSync(info.uniqueId);
2642
+ unbindMcRuntime(info.uniqueId);
2434
2643
  unregisterValidationContext(info.uniqueId);
2435
2644
  });
2645
+ clearMcRuntime();
2436
2646
  clearFormRules();
2437
2647
  dataCenterMap.value = {};
2438
2648
  pageDataMap.value = {};
@@ -2452,11 +2662,11 @@ function useRenderPageFactory(props, payload) {
2452
2662
  if (info.uniqueId !== uniqueId) return;
2453
2663
  const prevLocations = info.validatorLocationList ?? [];
2454
2664
  const prevMap = info.validatorMessageMap ?? {};
2455
- const sameLocations = prevLocations.length === nextLocations.length && nextLocations.every((k, i) => k === prevLocations[i]);
2456
- const sameMessages = sameLocations && nextLocations.every((k) => {
2457
- const a10 = prevMap[k];
2458
- const b2 = map[k];
2459
- return JSON.stringify(a10) === JSON.stringify(b2);
2665
+ const sameLocations = prevLocations.length === nextLocations.length && nextLocations.every((k2, i) => k2 === prevLocations[i]);
2666
+ const sameMessages = sameLocations && nextLocations.every((k2) => {
2667
+ const a6 = prevMap[k2];
2668
+ const b2 = map[k2];
2669
+ return JSON.stringify(a6) === JSON.stringify(b2);
2460
2670
  });
2461
2671
  if (sameMessages) return;
2462
2672
  closeValidatorPopovers();
@@ -2464,6 +2674,25 @@ function useRenderPageFactory(props, payload) {
2464
2674
  info.validatorMessageMap = map;
2465
2675
  });
2466
2676
  }
2677
+ function applyMcValidatorComments(uniqueId, comments) {
2678
+ const map = comments && Object.keys(comments).length ? comments : {};
2679
+ const nextLocations = Object.keys(map);
2680
+ basicInfoList.value.forEach((info) => {
2681
+ if (info.uniqueId !== uniqueId) return;
2682
+ const prevLocations = info.mcValidatorLocationList ?? [];
2683
+ const prevMap = info.mcValidatorMessageMap ?? {};
2684
+ const sameLocations = prevLocations.length === nextLocations.length && nextLocations.every((k2, i) => k2 === prevLocations[i]);
2685
+ const sameMessages = sameLocations && nextLocations.every((k2) => {
2686
+ const a6 = prevMap[k2];
2687
+ const b2 = map[k2];
2688
+ return JSON.stringify(a6) === JSON.stringify(b2);
2689
+ });
2690
+ if (sameMessages) return;
2691
+ closeValidatorPopovers();
2692
+ info.mcValidatorLocationList = nextLocations;
2693
+ info.mcValidatorMessageMap = map;
2694
+ });
2695
+ }
2467
2696
  function registerFormValidationContext(uniqueId) {
2468
2697
  registerValidationContext({
2469
2698
  uniqueId,
@@ -2522,34 +2751,31 @@ function useRenderPageFactory(props, payload) {
2522
2751
  const res = await validate(formState, dataCenter[ComponentTypeEnum.PAPER], uniqueId);
2523
2752
  if (bomC) {
2524
2753
  const bomRes = await bomC.submitValidate();
2754
+ applyMcValidatorComments(uniqueId, bomRes.fields ?? null);
2525
2755
  if (!bomRes.isValid) {
2526
2756
  merge(res, bomRes);
2527
- const info = basicInfoList.value.find((item) => item.uniqueId === uniqueId);
2528
- const current = {
2529
- ...info?.validatorMessageMap ?? {},
2530
- ...bomRes.fields ?? {}
2531
- };
2532
- applyValidatorComments(uniqueId, Object.keys(current).length ? current : null);
2533
2757
  return res;
2534
2758
  }
2535
2759
  const paper = dataCenter?.[ComponentTypeEnum.PAPER];
2536
- const objErr = await validateObjectBomQtyOnSubmit({
2537
- formState,
2760
+ const info = basicInfoList.value.find((item) => item.uniqueId === uniqueId);
2761
+ const { showModelName, showModelKey } = pickMainModelDisplay(dataCenter, info?.modelKey);
2762
+ const objErrs = await validateObjectBomQtyOnSubmit({
2763
+ formState: formState ?? {},
2538
2764
  objectFieldList: paper?.props?.objectFieldList,
2539
- formInstBom: bomC.formInstBom
2765
+ formInstBom: bomC.formInstBom,
2766
+ showModelKey
2540
2767
  });
2541
- if (objErr) {
2542
- const objectBomRes = {
2543
- isValid: false,
2544
- fields: { [objErr.field]: [objErr] }
2545
- };
2768
+ if (objErrs.length) {
2769
+ const fields = {};
2770
+ objErrs.forEach((e2) => {
2771
+ (fields[e2.field] ??= []).push(e2);
2772
+ });
2773
+ const objectBomRes = { isValid: false, fields };
2546
2774
  merge(res, objectBomRes);
2547
- const info = basicInfoList.value.find((item) => item.uniqueId === uniqueId);
2548
- const current = {
2775
+ applyValidatorComments(uniqueId, {
2549
2776
  ...info?.validatorMessageMap ?? {},
2550
- ...objectBomRes.fields ?? {}
2551
- };
2552
- applyValidatorComments(uniqueId, Object.keys(current).length ? current : null);
2777
+ ...fields
2778
+ });
2553
2779
  return res;
2554
2780
  }
2555
2781
  }
@@ -2594,6 +2820,8 @@ function useRenderPageFactory(props, payload) {
2594
2820
  if (status) {
2595
2821
  info.validatorLocationList = [];
2596
2822
  info.validatorMessageMap = {};
2823
+ info.mcValidatorLocationList = [];
2824
+ info.mcValidatorMessageMap = {};
2597
2825
  closeValidatorPopovers();
2598
2826
  }
2599
2827
  }
@@ -2667,7 +2895,10 @@ function useRenderPageFactory(props, payload) {
2667
2895
  viewMode: RenderModeEnum.ViewMode,
2668
2896
  dataStatus: selfInfo.dataStatus
2669
2897
  });
2670
- const idsFormState = transformUtils.getFormDataIdsMap(newFormState);
2898
+ const signatureKeys = (currentSelfInfo.newBackupInfo.signatureFields || []).map(
2899
+ (item) => item.fieldId
2900
+ );
2901
+ const idsFormState = transformUtils.getFormDataIdsMap(newFormState, signatureKeys);
2671
2902
  merge(formStateMap.value?.[uniqueId], idsFormState);
2672
2903
  if (payload.afterProcessData && typeof payload.afterProcessData === "function") {
2673
2904
  payload.afterProcessData(formStateMap.value?.[uniqueId]);
@@ -2697,6 +2928,9 @@ function useRenderPageFactory(props, payload) {
2697
2928
  const modelValue = formState?.[fieldId];
2698
2929
  return modelValue ? modelValue.split(",") : [];
2699
2930
  };
2931
+ onUnmounted(() => {
2932
+ clearMcRuntime();
2933
+ });
2700
2934
  return {
2701
2935
  counter,
2702
2936
  finisher,
@@ -2821,7 +3055,7 @@ function useEbrWikiFactoryV2(props, payload) {
2821
3055
  }
2822
3056
  watch(
2823
3057
  [() => props.materialNo, () => edhrCounter.value],
2824
- async ([newMaterialNo, _2]) => {
3058
+ async ([newMaterialNo, _3]) => {
2825
3059
  if (isEmpty(newMaterialNo)) return;
2826
3060
  loading.value = true;
2827
3061
  clear();
@@ -3000,7 +3234,7 @@ function useEbrWikiFactoryV2(props, payload) {
3000
3234
  );
3001
3235
  watch(
3002
3236
  [() => selectSelfInfo.value, () => instanceCounter.value],
3003
- ([newSelectSelfInfo, _2]) => {
3237
+ ([newSelectSelfInfo, _3]) => {
3004
3238
  if (newSelectSelfInfo && payload.pageType === "record-change") {
3005
3239
  emitter.emit(EmitterEnum.__on_select_ebr_doc_instance_id, {
3006
3240
  instanceId: newSelectSelfInfo.id
@@ -3319,9 +3553,9 @@ function useFormulaExpWatcher(options) {
3319
3553
  }
3320
3554
  }
3321
3555
  const existingIds = new Set(arr.map(getRowId));
3322
- for (const r of Array.from(rowMap.keys())) {
3323
- if (!existingIds.has(r)) {
3324
- const rid = `${r}_${processed}`;
3556
+ for (const r2 of Array.from(rowMap.keys())) {
3557
+ if (!existingIds.has(r2)) {
3558
+ const rid = `${r2}_${processed}`;
3325
3559
  const s = rowMap.get(rid);
3326
3560
  s && s();
3327
3561
  rowMap.delete(rid);
@@ -3505,191 +3739,209 @@ function filterAnnotationItemsUpToCurrent(items) {
3505
3739
  });
3506
3740
  }
3507
3741
  export {
3508
- ar as AITooltips,
3742
+ aJ as AITooltips,
3509
3743
  AllocateTableCore,
3510
3744
  B3 as BaseFormModelFetcher,
3511
- at as BinarizeMethodOptions,
3512
- aD as BindCmpStyleEnum,
3513
- T as BooleanShowMode,
3745
+ aL as BinarizeMethodOptions,
3746
+ b0 as BindCmpStyleEnum,
3747
+ $ as BooleanShowMode,
3514
3748
  B2 as BorderTD,
3515
3749
  BpmnNodeTypeEnum,
3516
- bF as BpmnSignatureTypeEnum,
3517
- bG as ButtonTypeEnum,
3750
+ ci as BpmnSignatureTypeEnum,
3751
+ cj as ButtonTypeEnum,
3518
3752
  B as BwipCodeType,
3519
- bH as CHECK_TABLE_MEDPRO_PROTOCOL_KEY,
3520
- t as CellType,
3521
- a1 as CellWidgetViewState,
3753
+ ck as CHECK_TABLE_MEDPRO_PROTOCOL_KEY,
3754
+ x as CellType,
3755
+ ab as CellWidgetViewState,
3522
3756
  CheckDsTypeEnum,
3523
- bI as CodeRunner,
3757
+ cl as CodeRunner,
3524
3758
  ComponentTypeEnum,
3525
- bJ as Config_Fields,
3526
- bK as ControlStatusEnum,
3527
- aB as DateFormat,
3528
- aE as DecimalDisplayMode,
3529
- as as DenoiseMethodOptions,
3530
- x as DeviceConnector,
3531
- ap as DeviceLink,
3759
+ cm as Config_Fields,
3760
+ cn as ControlStatusEnum,
3761
+ bd as DEVICE_GROUP_QUERY_KEY,
3762
+ co as DEVICE_SEARCH_API,
3763
+ aS as DateFormat,
3764
+ au as DecimalDisplayMode,
3765
+ aK as DenoiseMethodOptions,
3766
+ L2 as DeviceConnector,
3767
+ aH as DeviceLink,
3532
3768
  D as DeviceLinkTmplUtil,
3533
- aq as DeviceParamsTypeTitle,
3769
+ aI as DeviceParamsTypeTitle,
3534
3770
  DevicePartConsumeTableCore,
3535
- a2 as DiagonalDirection,
3536
- a6 as DiagonalVertex,
3537
- _ as DocumentLayout,
3538
- y as DocumentLoading,
3539
- d as DocumentPaper,
3540
- z as DynamicQuickFillModal,
3541
- e as DynamicTableAction,
3542
- bL as EBR_PROVIDE_ENUM,
3543
- bM as EFieldBizTypeEnum,
3544
- af as EmptySymbol,
3545
- bN as FieldSysVarDefaultValueEnum,
3771
+ cp as DeviceStatus,
3772
+ ac as DiagonalDirection,
3773
+ ag as DiagonalVertex,
3774
+ _2 as DocumentLayout,
3775
+ N2 as DocumentLoading,
3776
+ l as DocumentPaper,
3777
+ O2 as DynamicQuickFillModal,
3778
+ m as DynamicTableAction,
3779
+ cq as EBR_PROVIDE_ENUM,
3780
+ cr as EFieldBizTypeEnum,
3781
+ E as EMPTY_PRODUCT_VERSION_ID,
3782
+ aC as EmptySymbol,
3783
+ aa as FieldSysVarDefaultValueEnum,
3546
3784
  FillingTypeEnum,
3547
- F as FixedQuickFillModal,
3785
+ P2 as FixedQuickFillModal,
3548
3786
  FormAnnotationController,
3549
- F2 as FormModelController,
3787
+ F as FormModelController,
3550
3788
  FormTmplBomController,
3551
- A as FormTmplConfigController,
3789
+ Q as FormTmplConfigController,
3552
3790
  FormTypeEnum,
3553
- al as ImageDisplayModeEnum,
3791
+ av as ImageDisplayModeEnum,
3554
3792
  I as InstanceStatusValues,
3555
- av as JoinModelTypeEum,
3556
- R as LabelPosition,
3557
- a4 as LineDirection,
3793
+ aN as JoinModelTypeEum,
3794
+ _ as LabelPosition,
3795
+ ae as LineDirection,
3558
3796
  L as LineType,
3559
- M as MBRender,
3560
- C as MCDataUtil,
3561
- a8 as MCRender,
3797
+ M2 as MBRender,
3798
+ T as MCDataUtil,
3799
+ a4 as MCRender,
3562
3800
  MaterialConsumeTableController,
3563
3801
  MaterialConsumptionPatternEnum,
3564
3802
  MaterialRequisitionTableCore,
3565
3803
  MaterialStatusEnum,
3566
- bO as MobileFillTypeEnum,
3804
+ cs as MobileFillTypeEnum,
3567
3805
  NCB_PROVIDE,
3568
- O2 as OCR_MODEL_PRECISION_ENUM_KEY,
3569
- bP as OfficeTypeEnum,
3806
+ U as OCR_MODEL_PRECISION_ENUM_KEY,
3807
+ ct as OfficeTypeEnum,
3570
3808
  O as Orientation,
3571
- j as PageSizeEnum,
3809
+ o as PageSizeEnum,
3572
3810
  P as PaginationFormat,
3573
- Z as PaperSizeMap,
3574
- h as PaperWidgeType,
3575
- G as PaperWidgeValueType,
3576
- au as ParamModelTypeEnum,
3811
+ a5 as PaperSizeMap,
3812
+ n as PaperWidgeType,
3813
+ M as PaperWidgeValueType,
3814
+ aM as ParamModelTypeEnum,
3577
3815
  PartStocktakeTableCore,
3578
3816
  PlatformEnum,
3579
- bQ as PosEnum,
3817
+ cu as PosEnum,
3580
3818
  PretreatmentListTableCore,
3581
3819
  ProfileDrivenSubTableCore,
3582
- bR as RangeCompareOp,
3583
- aQ as RangeValidateMode,
3820
+ at as RangeCompareOp,
3821
+ as as RangeValidateMode,
3584
3822
  RenderModeEnum,
3585
- X as SignShowTypeEnum,
3586
- V as SignatureNumberTypeEnum,
3587
- W as SignatureTimeTypeEnum,
3588
- Y as SignatureTypeEnum,
3823
+ a2 as SignShowTypeEnum,
3824
+ a0 as SignatureNumberTypeEnum,
3825
+ a1 as SignatureTimeTypeEnum,
3826
+ a3 as SignatureTypeEnum,
3589
3827
  SterilizeBatchTableCore,
3590
3828
  StocktakeTableCore,
3591
3829
  SubTableCore,
3592
3830
  SubTableCoreFactory,
3593
3831
  SubTableType,
3594
- bS as SummaryApproveHisTypeEnum,
3595
- a5 as TimeDiffFormat,
3596
- a9 as ViewTypeEnum,
3832
+ cv as SummaryApproveHisTypeEnum,
3833
+ af as TimeDiffFormat,
3834
+ aj as ViewTypeEnum,
3597
3835
  WarehouseInTableCore,
3598
3836
  WarehouseInboundTableCore,
3599
3837
  WarehouseOutTableCore,
3600
3838
  WarehouseOutboundTableCore,
3601
- a3 as WidgetImageSizeMode,
3602
- bT as applyCheckDsDataToRuntime,
3603
- bU as applyMedProCheckDsDataToRuntime,
3839
+ ad as WidgetImageSizeMode,
3840
+ cw as applyCheckDsDataToRuntime,
3841
+ e as applyConsumeObjectTraceChange,
3842
+ cx as applyMedProCheckDsDataToRuntime,
3604
3843
  baseDataUtils,
3605
- bV as buildFormChangeDisplayRows,
3606
- bW as buildStableFieldLocation,
3844
+ cy as buildDeviceBaseQuery,
3845
+ bc as buildDeviceFilterQuery,
3846
+ cz as buildFormChangeDisplayRows,
3847
+ b as buildObjectLotExtraQuery,
3848
+ cA as buildStableFieldLocation,
3607
3849
  calcFillData,
3608
3850
  calcUtils,
3609
3851
  clearFormRules,
3610
3852
  collectAnnotationItemsByLocation,
3611
3853
  collectFormChangeFieldLocations,
3612
3854
  commonUtils,
3613
- bX as deleteSubtableRow,
3614
- bY as detailsHaveFormChangeRowOps,
3855
+ cB as deleteSubtableRow,
3856
+ cC as detailsHaveFormChangeRowOps,
3615
3857
  enrichFormChangeRowDetails,
3616
- bZ as extractFormChangeRowDetails,
3858
+ cD as extractFormChangeRowDetails,
3617
3859
  extractKeywordFromQueryData,
3618
- b_ as fetchCheckDsDataForTable,
3619
- b$ as fetchCustomCheckDsData,
3860
+ cE as fetchCheckDsDataForTable,
3861
+ cF as fetchCustomCheckDsData,
3620
3862
  fetchHistoryConsume,
3621
- c0 as fetchMedProCheckDsData,
3863
+ cG as fetchMedProCheckDsData,
3864
+ f as fetchOperationReceiveQty,
3622
3865
  filterAnnotationItemsUpToCurrent,
3623
- getAppInfo,
3624
- c1 as getCheckTableSnapshotKey,
3625
- c2 as getFormChangeRowKey,
3626
- c3 as getFormChangeRowOp,
3627
- aP as getLotLockedReason,
3866
+ V as getAppInfo,
3867
+ cH as getCheckTableSnapshotKey,
3868
+ cI as getFormChangeRowKey,
3869
+ cJ as getFormChangeRowOp,
3870
+ aZ as getLotLockedReason,
3628
3871
  g as getObjectBomMaterialLotQuery,
3629
- c4 as getParseRuleConfig,
3872
+ h as getObjectBomProductQuery,
3873
+ cK as getParseRuleConfig,
3630
3874
  getParseRuleInfo,
3631
3875
  getParseRuleValue,
3632
- c5 as getSubTableQuickFillInfo,
3633
- getSuiteKey,
3634
- c6 as handleOldConfig,
3635
- c7 as hasAnyCheckTableSnapshot,
3636
- c8 as hasByTableCheckTableSnapshot,
3637
- c9 as hasSharedCheckTableSnapshot,
3638
- ca as insertSubtableRows,
3639
- cb as isAnnLocationSelected,
3876
+ cL as getReinspectionDate,
3877
+ cM as getSubTableQuickFillInfo,
3878
+ W as getSuiteKey,
3879
+ cN as handleOldConfig,
3880
+ cO as hasAnyCheckTableSnapshot,
3881
+ cP as hasByTableCheckTableSnapshot,
3882
+ cQ as hasSharedCheckTableSnapshot,
3883
+ cR as insertSubtableRows,
3884
+ cS as isAnnLocationSelected,
3885
+ X as isBlank,
3640
3886
  isBomGranted,
3641
3887
  isEdhrSuite,
3642
- isEqmSuite,
3643
- cc as isFormChangeGhostRow,
3644
- cd as isMedProSuite,
3645
- ce as isRowAddedInCurrentFormChange,
3646
- cf as jsonSchemaUtils,
3647
- cg as judgeUnique,
3648
- aO as materialCheck,
3649
- ch as migrateDiagonalDirectionToVertex,
3888
+ Y as isEqmSuite,
3889
+ cT as isFormChangeGhostRow,
3890
+ cU as isMedProSuite,
3891
+ cV as isRowAddedInCurrentFormChange,
3892
+ cW as jsonSchemaUtils,
3893
+ cX as judgeUnique,
3894
+ aY as materialCheck,
3895
+ cY as migrateDiagonalDirectionToVertex,
3650
3896
  nextFormChangeRowViewHistoryId,
3651
- aG as normalizeRefLoaderResult,
3652
- ci as parseFrontConfig,
3653
- cj as recordSubtableRowAdd,
3654
- ck as recordSubtableRowDelete,
3655
- aI as refUtils,
3897
+ b7 as normalizeRefLoaderResult,
3898
+ cZ as parseFrontConfig,
3899
+ Z as pickObjectFieldKeys,
3900
+ c_ as recordSubtableRowAdd,
3901
+ c$ as recordSubtableRowDelete,
3902
+ ba as refUtils,
3656
3903
  registerValidationContext,
3657
- cl as relocateDeletedRowsToEnd,
3904
+ d0 as relocateDeletedRowsToEnd,
3658
3905
  renderUtils,
3659
3906
  requestDisplayValidation,
3660
3907
  requestFullValidation,
3661
- cm as requestMedProCheckDsData,
3662
- cn as requestNonMedProCheckDsData,
3663
- co as resolveAnnotationFieldLocation,
3664
- a7 as resolveDiagonalVertex,
3665
- cp as resolveFormChangeRowUi,
3666
- cq as resolveRowFormChangeMark,
3667
- az as setSelectAnnotationId,
3668
- cr as setSelectMobileTdId,
3669
- ay as setSelectValidatorId,
3908
+ d1 as requestMedProCheckDsData,
3909
+ d2 as requestNonMedProCheckDsData,
3910
+ d3 as resolveAnnotationFieldLocation,
3911
+ ah as resolveDiagonalVertex,
3912
+ q as resolveFieldRenderComponent,
3913
+ d4 as resolveFormChangeRowUi,
3914
+ c as resolveObjectBomEntry,
3915
+ r as resolveObjectFieldKeys,
3916
+ d5 as resolveRowFormChangeMark,
3917
+ d as runWithFillProduct,
3918
+ aR as setSelectAnnotationId,
3919
+ d6 as setSelectMobileTdId,
3920
+ aQ as setSelectValidatorId,
3670
3921
  settleAndValidateDisplay,
3671
- aw as sqlUtils,
3672
- cs as stockCheck,
3922
+ aO as sqlUtils,
3923
+ d7 as stockCheck,
3673
3924
  transformUtils,
3674
3925
  unregisterValidationContext,
3675
- H as useCalculateFormula,
3676
- aN as useCurrentPageFormState,
3677
- aS as useDependency,
3926
+ N as useCalculateFormula,
3927
+ b3 as useCurrentPageFormState,
3928
+ bg as useDependency,
3678
3929
  useEbrWikiFactoryV2,
3679
- u3 as useFormModel,
3680
- u2 as useFormTmplConfig,
3930
+ u2 as useFormModel,
3931
+ u as useFormTmplConfig,
3681
3932
  useFormulaExpWatcher,
3682
3933
  useMaterialBalance,
3683
3934
  useNocodeEmitter,
3684
- aA as useNocodeFormWidget,
3685
- ct as useOnlineFormActionButton,
3686
- u as useOnlineFormTransformField2Component,
3935
+ a$ as useNocodeFormWidget,
3936
+ d8 as useOnlineFormActionButton,
3937
+ be as useOnlineFormTransformField2Component,
3687
3938
  useRenderPageFactory,
3688
- b as useStyles,
3939
+ j as useStyles,
3689
3940
  a as useTmplBom,
3690
- c as useValidator,
3691
- ax as useWidgetStaticAttrs,
3941
+ k as useValidator,
3942
+ aP as useWidgetStaticAttrs,
3692
3943
  validate,
3693
3944
  v as validateObjectBomForScan,
3694
- validateObjectBomQtyOnSubmit
3945
+ validateObjectBomQtyOnSubmit,
3946
+ a_ as validateReinspectionDate
3695
3947
  };