@gct-paas/excel 0.1.40-beta.3 → 0.1.40-beta.30

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 (228) hide show
  1. package/README.md +3 -4
  2. package/dist/{BaseComponent-B9o59n-h.js → BaseComponent-EzX32ZdY.js} +2 -2
  3. package/dist/{VueVideoPlayer-CAWYWBHi.js → VueVideoPlayer-BuuQaqyI.js} +2 -2
  4. package/dist/{align-editor-a4DQt4Un.js → align-editor-DWHHVeY1.js} +1 -1
  5. package/dist/{barcode-design-CBqUEPYu.js → barcode-design-B0WcJSEI.js} +2 -2
  6. package/dist/base/index.es.js +742 -306
  7. package/dist/{diagonal-design-u23896Ky.js → diagonal-design-D6uOJZmP.js} +2 -2
  8. package/dist/{dynamic-table-action-BWI4Gaqi.js → dynamic-table-action-D-ub6KoK.js} +1316 -502
  9. package/dist/{dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BvrrN6te.js → dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BCLE4joQ.js} +3076 -1680
  10. package/dist/{edit.utils-CXmmCnxE-XxpC8ALV.js → edit.utils-CXmmCnxE-CXdATd1V.js} +1 -1
  11. package/dist/excel.css +6292 -5112
  12. package/dist/{exceljs.min-DfbB110X.js → exceljs.min-BXhhaToT.js} +2 -2
  13. package/dist/{font-editor-BtSCLMrM.js → font-editor-_HTdKFX6.js} +3 -3
  14. package/dist/{image-design-CtE-Lw7N.js → image-design-4Ee8rZqa.js} +3 -8
  15. package/dist/{index-I1r5pfu5.js → index-7AmrbQlC.js} +2 -2
  16. package/dist/{index-IVc1dOet.js → index-8ZnBcx1k.js} +6 -5
  17. package/dist/{index-CYLAVQfT.js → index-B4LuUmbW.js} +2 -2
  18. package/dist/{index-BFg5eUdY.js → index-BCCIwSnM.js} +1 -1
  19. package/dist/{index-BMoz_QhA.js → index-BHJxBByd.js} +1 -1
  20. package/dist/{index-Bc61F6Hm.js → index-BLf1U1A9.js} +5 -7
  21. package/dist/{index-DVEe11uM.js → index-BYq7x5n6.js} +1 -1
  22. package/dist/{index-BfBuxgcp.js → index-B_DPnVrC.js} +2 -2
  23. package/dist/{index-CL9K9orM.js → index-Bbyb-owd.js} +6 -3
  24. package/dist/{index-3WwCV4xR.js → index-BlMiHVOC.js} +1 -1
  25. package/dist/{index-BKXb3VJc.js → index-BnOOLcX1.js} +2 -2
  26. package/dist/{index-B0cdcIWq.js → index-Bnt54Sc6.js} +2 -2
  27. package/dist/{index-Dyomjz3y.js → index-CH_C9ijO.js} +2 -2
  28. package/dist/{index-aNV9T6LI.js → index-CMdXdyvs.js} +2 -2
  29. package/dist/{index-CdHVHaxO.js → index-CQ0_Kx1_.js} +2 -2
  30. package/dist/{index-DdWefZMa.js → index-Cb7Fh_E2.js} +2 -2
  31. package/dist/{index-Bnb70qEi.js → index-CtVFTmHZ.js} +3 -3
  32. package/dist/{index-CPTGioxl.js → index-D3KiKYMR.js} +1 -1
  33. package/dist/{index-BRQkrFQ9.js → index-D87CVHA-.js} +2 -2
  34. package/dist/{index-BGAcYDx-.js → index-DM0OEvdI.js} +1 -1
  35. package/dist/{index-Ca9TLzUh.js → index-DPTR_QJn.js} +1 -1
  36. package/dist/{index-CAdDeEzJ.js → index-DVzaxa5k.js} +2 -2
  37. package/dist/{index-BP-LhXXV.js → index-DcXbL-0o.js} +6 -5
  38. package/dist/{index-CIa37rQm.js → index-Dn0qfALy.js} +3 -2
  39. package/dist/{index-CVsoaxTR.js → index-Dnz3YPDV.js} +2 -2
  40. package/dist/{index-BC8hQ4vo.js → index-DoWp9uDw.js} +2 -2
  41. package/dist/{index-CeEhYXl9.js → index-Dstr-PNj.js} +2 -2
  42. package/dist/{index-9S48hpoJ.js → index-DzqaKW6e.js} +2 -2
  43. package/dist/{index-ixQwAcB1.js → index-GoAXo3fT.js} +37707 -30077
  44. package/dist/{index-731OYkrc.js → index-Jy2tofdo.js} +3 -3
  45. package/dist/{index-7aS5L4ot.js → index-KRo2-iQv.js} +6 -3
  46. package/dist/{index-CpPk8P3L.js → index-KuhYPy5i.js} +1 -1
  47. package/dist/{index-DNj0vFvx.js → index-YlEOHde0.js} +1 -1
  48. package/dist/{index-51LtNdZ2.js → index-toqlO_-B.js} +1 -1
  49. package/dist/index.es.js +50 -46
  50. package/dist/{online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-CRyGHP7k.js → online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-DAAF0eOB.js} +33 -3
  51. package/dist/{pagination-design-CmbsdlMe.js → pagination-design-DANnqQdI.js} +2 -2
  52. package/dist/paper-widget-design-BrE7Bb4V.js +4 -0
  53. package/dist/{print-runtime-instance-DQysbz5n.js → print-runtime-instance-PabaORE2.js} +1 -1
  54. package/dist/{print-snapshot-renderer-DWHjMsOC.js → print-snapshot-renderer-DQr2G7Hv.js} +3 -3
  55. package/dist/{qrcode-design-CX0_2mLC.js → qrcode-design-BEA1JchI.js} +1 -1
  56. package/dist/{revo-grid.entry-DbmWFi7p.js → revo-grid.entry-Bj-4xHie.js} +1 -1
  57. package/dist/{revogr-attribution_7.entry-BWQDu7fq.js → revogr-attribution_7.entry-NvaozwYj.js} +3 -3
  58. package/dist/{revogr-clipboard_3.entry-BtTYHFZi.js → revogr-clipboard_3.entry-CkRbECsx.js} +2 -2
  59. package/dist/{revogr-data_4.entry-CWPXyZ7g.js → revogr-data_4.entry-Dbbd8Mpz.js} +2 -2
  60. package/dist/{revogr-filter-panel.entry-5gYct0XI.js → revogr-filter-panel.entry-lcMbXUNb.js} +1 -1
  61. package/dist/seal-design-CX-ZxOn3.js +4 -0
  62. package/dist/{serialnumber-design-aSqL4gX6.js → serialnumber-design-B608oYcy.js} +1 -1
  63. package/dist/shared/index.es.js +30 -27
  64. package/dist/{single-field-drop-C67wLHxK.js → single-field-drop-CkUP3H7u.js} +2 -3
  65. package/dist/{size-editor-BHGTPLir.js → size-editor-Bl-lUcdU.js} +1 -1
  66. package/dist/src/adapter/adapter.d.ts +1 -1
  67. package/dist/src/adapter/index.d.ts +2 -0
  68. package/dist/src/adapter/web/inventory-scan-columns.d.ts +6 -0
  69. package/dist/src/{nocode-web-render/src/render/sub-table/material-balance/mb-web-render.d.ts → adapter/web/material-balance-render.d.ts} +1 -1
  70. package/dist/src/{nocode-web-render/src/render/sub-table/material-balance → adapter/web}/material-consume-modal.vue.d.ts +1 -1
  71. package/dist/src/adapter/web/material-consume-render.d.ts +25 -0
  72. package/dist/src/{nocode-web-render/src/render/common → adapter/web}/open-util.d.ts +1 -1
  73. package/dist/src/{nocode-web-render/src/render/sub-table/stocktake/stocktake-web-render.d.ts → adapter/web/stocktake-render.d.ts} +2 -2
  74. package/dist/src/{nocode-web-render/src/render/sub-table/common → adapter/web}/sub-table-render.d.ts +2 -5
  75. package/dist/src/domain/document-business/business/product-release/profile.d.ts +2 -0
  76. package/dist/src/domain/document-business/business/product-release/service.d.ts +2 -0
  77. package/dist/src/domain/document-business/index.d.ts +2 -0
  78. package/dist/src/domain/document-business/registry.d.ts +2 -0
  79. package/dist/src/domain/document-business/runtime/field-query-runtime.d.ts +4 -0
  80. package/dist/src/domain/document-business/types.d.ts +24 -0
  81. package/dist/src/domain/field/number/product-release-qty-manifest.d.ts +2 -0
  82. package/dist/src/domain/field/query-filter.d.ts +15 -0
  83. package/dist/src/domain/table/business/material/material-balance/profile/fields.d.ts +2 -0
  84. package/dist/src/domain/table/business/material/material-consume/profile/fields.d.ts +2 -0
  85. package/dist/src/domain/table/business/material/material-substitution/profile/field-keys.d.ts +25 -10
  86. package/dist/src/domain/table/business/material/material-substitution/runtime/row-change-handlers.d.ts +4 -0
  87. package/dist/src/domain/table/business/material/material-substitution/runtime/select-loaders.d.ts +8 -0
  88. package/dist/src/domain/table/business/preprocess/pretreatment-list/profile/field-keys.d.ts +1 -7
  89. package/dist/src/domain/table/business/sterilize/entrust-steril-batch-list/profile/fields.d.ts +2 -0
  90. package/dist/src/domain/table/business/warehouse/shared/autofill-source-labels.d.ts +19 -0
  91. package/dist/src/domain/table/design/autofill-expander.d.ts +2 -0
  92. package/dist/src/domain/table/design/hooks/on-field-attach.d.ts +6 -0
  93. package/dist/src/domain/table/index.d.ts +1 -1
  94. package/dist/src/domain/table/types.d.ts +2 -0
  95. package/dist/src/index.d.ts +2 -0
  96. package/dist/src/nocode-base/src/components/document-sub-table-action/dynamic-table-action.vue.d.ts +0 -2
  97. package/dist/src/nocode-base/src/components/document-sub-table-action/sub-table-action.vue.d.ts +0 -3
  98. package/dist/src/nocode-base/src/components/document-sub-table-action/type.d.ts +0 -4
  99. package/dist/src/nocode-base/src/components/material-consume/types.d.ts +1 -5
  100. package/dist/src/nocode-base/src/core/factory/sub-table-factory.d.ts +2 -0
  101. package/dist/src/nocode-base/src/core/sub-table/allocate-table-core.d.ts +2 -1
  102. package/dist/src/nocode-base/src/core/sub-table/profile-driven-sub-table-core.d.ts +3 -3
  103. package/dist/src/nocode-base/src/core/sub-table/sub-table-core.d.ts +2 -5
  104. package/dist/src/nocode-base/src/hooks/form-model/form-model-controller.d.ts +2 -0
  105. package/dist/src/nocode-base/src/hooks/inspection-module-qty.d.ts +4 -0
  106. package/dist/src/nocode-base/src/hooks/material-consume/bom-validator.d.ts +2 -2
  107. package/dist/src/nocode-base/src/hooks/material-consume/material-consume-table-controller.d.ts +18 -20
  108. package/dist/src/nocode-base/src/hooks/material-consume/mc-render.d.ts +1 -28
  109. package/dist/src/nocode-base/src/hooks/material-consume/tmpl-bom-controller.d.ts +20 -7
  110. package/dist/src/nocode-base/src/hooks/material-consume/types.d.ts +2 -0
  111. package/dist/src/nocode-base/src/hooks/material-consume-object/bom-validator.d.ts +4 -3
  112. package/dist/src/nocode-base/src/hooks/material-consume-object/initialize-autofill.d.ts +19 -0
  113. package/dist/src/nocode-base/src/hooks/material-consume-object/object-validation-controller.d.ts +24 -0
  114. package/dist/src/nocode-base/src/hooks/render-page/initialize-runtime.d.ts +9 -8
  115. package/dist/src/nocode-base/src/hooks/render-page/sterilization-date.d.ts +1 -1
  116. package/dist/src/nocode-base/src/hooks/render-page/types.d.ts +4 -1
  117. package/dist/src/nocode-base/src/hooks/useRenderPageFactory.d.ts +10 -6
  118. package/dist/src/nocode-base/src/hooks/validation/createValidateFactory.d.ts +1 -0
  119. package/dist/src/nocode-base/src/interface/ref-loader.d.ts +12 -1
  120. package/dist/src/nocode-base/src/interface/render.d.ts +4 -1
  121. package/dist/src/nocode-base/src/interface/transform.d.ts +17 -1
  122. package/dist/src/nocode-base/src/runtime/designer-default-values.d.ts +23 -0
  123. package/dist/src/nocode-base/src/runtime/formula-utils.d.ts +2 -0
  124. package/dist/src/nocode-base/src/runtime/multi-sheet-runtime.d.ts +3 -1
  125. package/dist/src/nocode-base/src/runtime/runtime-context.d.ts +4 -0
  126. package/dist/src/nocode-base/src/runtime/runtime-default-value-validation.d.ts +23 -0
  127. package/dist/src/nocode-base/src/runtime/runtime-field-initializer.d.ts +1 -0
  128. package/dist/src/nocode-base/src/runtime/runtime-form-state-store.d.ts +6 -2
  129. package/dist/src/nocode-base/src/runtime/runtime-instance-registry.d.ts +3 -0
  130. package/dist/src/nocode-base/src/runtime/table-row-identity.d.ts +2 -0
  131. package/dist/src/nocode-base/src/types/common/base.d.ts +6 -2
  132. package/dist/src/nocode-base/src/types/render/mc-render.d.ts +2 -15
  133. package/dist/src/nocode-base/src/types/render/sub-table-render.d.ts +5 -11
  134. package/dist/src/online-form/src/views/__cell_widgets__/cell-widget-design.vue.d.ts +2 -0
  135. package/dist/src/online-form/src/views/__cell_widgets__/common/default-value-rdo-editor/base-vxe-table.vue.d.ts +1 -1
  136. package/dist/src/online-form/src/views/__cell_widgets__/common/default-value-rdo-editor/default-value-rdo-editor.vue.d.ts +4 -4
  137. package/dist/src/online-form/src/views/__cell_widgets__/common/default-value-rdo-editor/rdo-table-dropdown.vue.d.ts +3 -3
  138. package/dist/src/online-form/src/views/__cell_widgets__/common/display-fields-editor/display-fields.util.d.ts +2 -2
  139. package/dist/src/online-form/src/views/__cell_widgets__/common/quick-search-editor/quick-search.util.d.ts +8 -0
  140. package/dist/src/online-form/src/views/__cell_widgets__/fake-field/fake-option-select.vue.d.ts +1 -0
  141. package/dist/src/online-form/src/views/designer/constants/index.d.ts +1 -0
  142. package/dist/src/online-form/src/views/designer/conversions/normalize-paper-grid.d.ts +3 -0
  143. package/dist/src/online-form/src/views/designer/hooks/useAllSpreadSheets.d.ts +23 -0
  144. package/dist/src/online-form/src/views/designer/hooks/useSpreadSheet.d.ts +11 -3
  145. package/dist/src/online-form/src/views/designer/modules/base/designer-wrapper.vue.d.ts +1 -0
  146. package/dist/src/{nocode-web-render/src/components/print-fill-background-selector.vue.d.ts → online-form/src/views/designer/modules/duplicate-field-notice.vue.d.ts} +1 -1
  147. package/dist/src/online-form/src/views/designer/modules/panel/panel-data-init-config/object-init/hooks/useObjectInit.d.ts +1 -0
  148. package/dist/src/{nocode-web-render/src/render/parse-rule → online-form/src/views/designer/modules/panel/sub-table/comps}/add-rule-btn.vue.d.ts +1 -1
  149. package/dist/src/online-form/src/views/designer/modules/panel/sub-table/comps/use-dynamic-sub-table-panel.d.ts +6 -0
  150. package/dist/src/online-form/src/views/designer/modules/panel/sub-table/panel-check-table/select-check-ds-modal.vue.d.ts +3 -3
  151. package/dist/src/{nocode-web-render/src/render/sub-table/material-consume/bom-modal.vue.d.ts → online-form/src/views/designer/modules/xlsx-import-summary.vue.d.ts} +7 -7
  152. package/dist/src/online-form/src/views/designer/types/index.d.ts +3 -1
  153. package/dist/src/online-form/src/views/designer/types/sheets.d.ts +2 -0
  154. package/dist/src/online-form/src/views/designer/utils/cell-field-placements.d.ts +12 -0
  155. package/dist/src/online-form/src/views/designer/utils/placed-fields.d.ts +9 -0
  156. package/dist/src/online-form/src/views/designer/utils/template-placed-fields.d.ts +7 -0
  157. package/dist/src/online-form/src/views/designer/utils/xlsx-parser.d.ts +9 -3
  158. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-auto-complete.vue.d.ts +2 -2
  159. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-date-picker.vue.d.ts +2 -2
  160. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-text-input.vue.d.ts +2 -2
  161. package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-textarea.vue.d.ts +2 -2
  162. package/dist/src/online-form/src/views/render/__components__/_field_/seal/component/seal-floating-field.vue.d.ts +0 -1
  163. package/dist/src/online-form/src/views/render/__components__/_field_/seal/component/seal-runtime-layer.vue.d.ts +0 -1
  164. package/dist/src/online-form/src/views/render/__components__/_field_/seal/component/use-seal-stamp.d.ts +1 -4
  165. package/dist/src/online-form/src/views/render/__components__/_field_/trace/common/base-vxe-table.vue.d.ts +1 -1
  166. package/dist/src/online-form/src/views/render/__components__/_field_/trace/composables/useReferenceLabel.d.ts +4 -0
  167. package/dist/src/shared/components/ColorPicker/src/ColorPicker.vue.d.ts +1 -1
  168. package/dist/src/shared/components/Signature/logic/index.d.ts +14 -0
  169. package/dist/src/shared/enum/field-type.d.ts +10 -3
  170. package/dist/src/shared/enum/index.d.ts +2 -0
  171. package/dist/src/shared/enum/product-type.d.ts +9 -0
  172. package/dist/src/shared/enum/production-identification.d.ts +19 -0
  173. package/dist/src/{nocode-web-render/src → shared}/hooks/useWebUpload.d.ts +1 -1
  174. package/dist/src/shared/index.d.ts +1 -0
  175. package/dist/src/shared/types/index.d.ts +1 -0
  176. package/dist/src/shared/types/upload.d.ts +11 -0
  177. package/dist/src/shared/utils/cell-wrap.d.ts +9 -0
  178. package/dist/src/shared/utils/grid-size.d.ts +2 -0
  179. package/dist/src/shared/utils/lot2sn.d.ts +14 -1
  180. package/dist/src/shared/utils/query-filter.d.ts +24 -0
  181. package/dist/src/shared/utils/withRequestCache.d.ts +27 -0
  182. package/dist/{sub-table-factory-DTtDvr17.js → sub-table-factory-GzYKYE9t.js} +230 -156
  183. package/dist/{text-design-Dz0Qf2O3.js → text-design-V3TQuLps.js} +5 -4
  184. package/dist/{throttle-Cpk1LoGk-CgtsG2CV.js → throttle-Cpk1LoGk-CFMeLNb-.js} +1 -1
  185. package/dist/{timediff-design-D9JfNqH8.js → timediff-design-DRum3zZt.js} +1 -1
  186. package/dist/{trace-like-wrapper-BXgr0Uv3.js → trace-like-wrapper-D1Gzs1mF.js} +5 -2
  187. package/dist/{value-editor.vue_vue_type_style_index_0_lang-doohzADY.js → value-editor.vue_vue_type_style_index_0_lang-DoOuCca5.js} +2 -2
  188. package/dist/{widget-barcode-XF3nCU9v.js → widget-barcode-CNrl2NxY.js} +4 -4
  189. package/dist/{widget-diagonal-DSym7fks.js → widget-diagonal-CqjD1SwW.js} +3 -4
  190. package/dist/{widget-image-CmjwkVs7.js → widget-image-Xjl5W2Fp.js} +5 -7
  191. package/dist/{widget-line-BX64xVfU.js → widget-line-BUVVnwrU.js} +2 -2
  192. package/dist/{widget-pagination-BV89Lvjt.js → widget-pagination-DjMXWioI.js} +5 -5
  193. package/dist/{widget-power-DoSfQv92.js → widget-power-Dck9H8a9.js} +3 -4
  194. package/dist/{widget-qrcode-UGcRLC56.js → widget-qrcode-Cu8BwE24.js} +3 -3
  195. package/dist/{widget-rangelimit-CUHD__1H.js → widget-rangelimit-DLxebCKf.js} +3 -4
  196. package/dist/{widget-serialnumber-CAkZR5Xl.js → widget-serialnumber-DecFCGS0.js} +1 -1
  197. package/dist/{widget-text-DtYVTThu.js → widget-text-DV3yKKsx.js} +5 -5
  198. package/dist/{widget-timediff-DX_IoCMO.js → widget-timediff-BIwewJ39.js} +2 -2
  199. package/package.json +2 -6
  200. package/dist/AntdIcon-DCIaV352.js +0 -1108
  201. package/dist/index-DeHX7rte.js +0 -4306
  202. package/dist/mb-render-Bs9S9oFn.js +0 -270
  203. package/dist/paper-widget-design-DIhsk1I9.js +0 -4
  204. package/dist/seal-design-BhzgwVju.js +0 -4
  205. package/dist/src/nocode-web-render/src/hooks/index.d.ts +0 -2
  206. package/dist/src/nocode-web-render/src/hooks/userFormPrint.d.ts +0 -15
  207. package/dist/src/nocode-web-render/src/index.d.ts +0 -6
  208. package/dist/src/nocode-web-render/src/logic/index.d.ts +0 -1
  209. package/dist/src/nocode-web-render/src/render/common/index.d.ts +0 -2
  210. package/dist/src/nocode-web-render/src/render/common/modal-manager.d.ts +0 -20
  211. package/dist/src/nocode-web-render/src/render/index.d.ts +0 -10
  212. package/dist/src/nocode-web-render/src/render/parse-rule/index.d.ts +0 -3
  213. package/dist/src/nocode-web-render/src/render/parse-rule/parse-rule-modal.vue.d.ts +0 -15
  214. package/dist/src/nocode-web-render/src/render/sub-table/allocate/allocate-web-render.d.ts +0 -4
  215. package/dist/src/nocode-web-render/src/render/sub-table/allocate/index.d.ts +0 -1
  216. package/dist/src/nocode-web-render/src/render/sub-table/common/multi-rows-modal.vue.d.ts +0 -15
  217. package/dist/src/nocode-web-render/src/render/sub-table/common/scan-modal.vue.d.ts +0 -19
  218. package/dist/src/nocode-web-render/src/render/sub-table/index.d.ts +0 -3
  219. package/dist/src/nocode-web-render/src/render/sub-table/material-balance/index.d.ts +0 -1
  220. package/dist/src/nocode-web-render/src/render/sub-table/material-consume/index.d.ts +0 -4
  221. package/dist/src/nocode-web-render/src/render/sub-table/material-consume/mc-web-render.d.ts +0 -42
  222. package/dist/src/nocode-web-render/src/render/sub-table/stocktake/index.d.ts +0 -2
  223. package/dist/src/nocode-web-render/src/types/hooks/index.d.ts +0 -1
  224. package/dist/src/nocode-web-render/src/types/index.d.ts +0 -1
  225. package/dist/web-render/index.d.ts +0 -1
  226. package/dist/web-render/index.es.js +0 -596
  227. /package/dist/src/{nocode-web-render/src/adapter/index.d.ts → adapter/web/setup.d.ts} +0 -0
  228. /package/dist/src/{nocode-web-render/src/logic/utils.d.ts → adapter/web/upload.d.ts} +0 -0
@@ -0,0 +1,24 @@
1
+ import { FIELD_TYPE } from '../../shared/enum';
2
+ import { FieldQueryFilter } from '../field/query-filter';
3
+ /** detail 业务类型、实例参数与当前查询字段;业务规则无需依赖组件。 */
4
+ export interface BusinessFieldQueryContext {
5
+ businessType?: string;
6
+ paramsConfig: Readonly<Record<string, unknown>>;
7
+ fieldType?: string;
8
+ }
9
+ export interface BusinessFieldQueryRule {
10
+ id: string;
11
+ match: {
12
+ fieldType: FIELD_TYPE;
13
+ };
14
+ /** 声明结果缓存的依赖参数,由 Runtime 统一执行缓存和请求去重。 */
15
+ cache?: {
16
+ key: (context: BusinessFieldQueryContext) => unknown;
17
+ ttlMs?: number;
18
+ };
19
+ resolveFilters: (context: BusinessFieldQueryContext) => Promise<readonly FieldQueryFilter[]>;
20
+ }
21
+ export interface DocumentBusinessProfile {
22
+ businessType: string;
23
+ fieldQueries: readonly BusinessFieldQueryRule[];
24
+ }
@@ -0,0 +1,2 @@
1
+ import { FieldMainSetItem } from '../types';
2
+ export declare const manifest: FieldMainSetItem;
@@ -0,0 +1,15 @@
1
+ /** 下拉接口使用的查询结构,与渲染组件解耦。 */
2
+ export interface FieldQuery {
3
+ queryData?: Record<string, unknown>;
4
+ exp?: string;
5
+ }
6
+ /** 空 values 明确表示无候选,空条件列表表示不追加过滤。 */
7
+ export interface FieldQueryFilter {
8
+ field: string;
9
+ operator: 'in';
10
+ values: readonly string[];
11
+ }
12
+ /** 空 in 可能被接口视为不筛选,使用占位值表达无候选。 */
13
+ export declare const EMPTY_QUERY_VALUE = "__excel_no_matching_query_value__";
14
+ /** 附加条件统一按 AND 合并;同字段 IN 条件取交集,保留已有搜索表达式。 */
15
+ export declare function mergeQueryFilters(query: FieldQuery, filters: readonly FieldQueryFilter[]): FieldQuery;
@@ -0,0 +1,2 @@
1
+ import { BusinessFieldProfile } from '../../../../types';
2
+ export declare const fields: BusinessFieldProfile[];
@@ -0,0 +1,2 @@
1
+ import { BusinessFieldProfile } from '../../../../types';
2
+ export declare const fields: BusinessFieldProfile[];
@@ -30,6 +30,8 @@ export declare const F: {
30
30
  readonly targetMaterialNoLb: "target_material_no__lb_";
31
31
  /** 替换物料 */
32
32
  readonly targetProduct: "target_product_id_";
33
+ /** 替换物料展示值 */
34
+ readonly targetProductLb: "target_product_id__lb_";
33
35
  /** 替换物料名称 */
34
36
  readonly targetProductName: "target_product_id_name_";
35
37
  /** 替换物料编码 */
@@ -44,53 +46,66 @@ export type MaterialSubstitutionFieldKey = (typeof F)[keyof typeof F];
44
46
  export declare const DISABLED_INPUT_FIELDS: readonly ["source_material_no_", "source_product_id_name_", "source_product_id_code_", "source_product_id_spec_", "source_qty_consumed_", "target_product_id_name_", "target_product_id_code_", "target_product_id_spec_"];
45
47
  export declare const CLEAR_ON_SOURCE_PRODUCT_EMPTY: readonly ["source_material_no_", "source_material_no__lb_", "source_product_id__lb_", "source_product_id_name_", "source_product_id_code_", "source_product_id_spec_", "source_qty_consumed_"];
46
48
  /** 替换物料批号清空 / 手输时需清空的物料字段 */
47
- export declare const CLEAR_ON_TARGET_MATERIAL_NO_EMPTY: readonly ["target_product_id_name_", "target_product_id_code_", "target_product_id_spec_"];
49
+ export declare const CLEAR_ON_TARGET_MATERIAL_NO_EMPTY: readonly ["target_product_id_", "target_product_id__lb_", "target_product_id_name_", "target_product_id_code_", "target_product_id_spec_"];
48
50
  /** 历史消耗选项 → 被替换物料行字段 */
49
51
  export declare const FILL_FROM_SOURCE_PRODUCT_OPTION: readonly [{
50
52
  readonly optionField: "material_name_";
51
53
  readonly toField: "source_material_no_";
54
+ readonly name: "物料批号";
52
55
  }, {
53
56
  readonly optionField: "product_id_.name_";
54
57
  readonly toField: "source_product_id_name_";
58
+ readonly name: "物料名称";
55
59
  }, {
56
60
  readonly optionField: "product_id_.code_";
57
61
  readonly toField: "source_product_id_code_";
62
+ readonly name: "物料编码";
58
63
  }, {
59
64
  readonly optionField: "product_id_.spec_";
60
65
  readonly toField: "source_product_id_spec_";
66
+ readonly name: "物料规格";
61
67
  }, {
62
68
  readonly optionField: "qty_consumed_";
63
69
  readonly toField: "source_qty_consumed_";
70
+ readonly name: "已消耗数量";
64
71
  }];
65
72
  /** 替换物料批号选项 → 替换物料信息 */
66
73
  export declare const FILL_FROM_TARGET_MATERIAL_NO_OPTION: readonly [{
74
+ readonly optionField: "product_id_";
75
+ readonly toField: "target_product_id_";
76
+ readonly name: "物料";
77
+ }, {
67
78
  readonly optionField: "product_id_name_";
68
79
  readonly toField: "target_product_id_name_";
80
+ readonly name: "物料名称";
69
81
  }, {
70
82
  readonly optionField: "product_id_code_";
71
83
  readonly toField: "target_product_id_code_";
84
+ readonly name: "物料编码";
72
85
  }, {
73
86
  readonly optionField: "product_id_spec_";
74
87
  readonly toField: "target_product_id_spec_";
88
+ readonly name: "物料规格";
75
89
  }];
76
90
  /** SN / 工序不影响扫码结果能否复用当前空行。 */
77
91
  export declare const SCAN_ROW_CONTENT_FIELDS: readonly ["source_material_no_", "source_product_id_", "target_material_no_", "target_product_id_"];
78
- /** 历史消耗选项 → 替换物料行字段 */
92
+ /** LOT/SN 选项 → 替换物料行字段;替换数量保留用户输入。 */
79
93
  export declare const FILL_FROM_TARGET_PRODUCT_OPTION: readonly [{
80
- readonly optionField: "material_name_";
94
+ readonly optionField: "name_";
81
95
  readonly toField: "target_material_no_";
96
+ readonly name: "物料批号";
82
97
  }, {
83
- readonly optionField: "product_id_.name_";
98
+ readonly optionField: "product_id_name_";
84
99
  readonly toField: "target_product_id_name_";
100
+ readonly name: "物料名称";
85
101
  }, {
86
- readonly optionField: "product_id_.code_";
102
+ readonly optionField: "product_id_code_";
87
103
  readonly toField: "target_product_id_code_";
104
+ readonly name: "物料编码";
88
105
  }, {
89
- readonly optionField: "product_id_.spec_";
106
+ readonly optionField: "product_id_spec_";
90
107
  readonly toField: "target_product_id_spec_";
91
- }, {
92
- readonly optionField: "qty_consumed_";
93
- readonly toField: "target_qty_consumed_";
108
+ readonly name: "物料规格";
94
109
  }];
95
110
  /** 替换物料清空时同步清除批次、物料信息和数量。 */
96
- export declare const CLEAR_ON_TARGET_PRODUCT_EMPTY: readonly ["target_material_no_", "target_material_no__id_", "target_material_no__lb_", "target_product_id_name_", "target_product_id_code_", "target_product_id_spec_", "target_qty_consumed_"];
111
+ export declare const CLEAR_ON_TARGET_PRODUCT_EMPTY: readonly ["target_product_id__lb_", "target_material_no_", "target_material_no__id_", "target_material_no__lb_", "target_product_id_name_", "target_product_id_code_", "target_product_id_spec_", "target_qty_consumed_"];
@@ -1,3 +1,7 @@
1
+ /** 工序切换或清空后,原工序下选择的历史消耗信息失效。 */
2
+ export declare function handleRoutingOperationChange(ctx: {
3
+ rowData: Record<string, any>;
4
+ }): void;
1
5
  export declare function handleSourceProductChange(ctx: {
2
6
  rowData: Record<string, any>;
3
7
  }): void;
@@ -0,0 +1,8 @@
1
+ import { RefCustomLoader } from '../../../../../../nocode-base/src/interface/ref-loader';
2
+ export declare function flattenMaterialConsumeRecord(item: Record<string, any>): Record<string, any>;
3
+ /** 同一条选中记录的批次名称、ID 和展示名必须一起回填。 */
4
+ export declare function buildTargetMaterialSelectionPatch(record: Record<string, any>): Record<string, unknown>;
5
+ /** 历史消耗只使用当前行生产 SN,未选、LOT 或无法确认类型时阻断查询。 */
6
+ export declare function createMaterialConsumeHistoryLoader(rowData: Record<string, any>, fieldName?: string): RefCustomLoader;
7
+ /** 替换料从 LOT/SN 选择,保存产品 ID,批次身份由行内批号字段保存。 */
8
+ export declare function createTargetMaterialLoader(rowData: Record<string, any>): RefCustomLoader;
@@ -51,7 +51,7 @@ export declare const CLEAR_ON_MATERIAL_CONTAINER_SELECT: readonly ["production_c
51
51
  export declare const CLEAR_ON_PRODUCT_EMPTY: readonly ["product_id_name_", "product_id_code_", "product_id_spec_"];
52
52
  /** 相关字段变更时需重算物料禁用态 */
53
53
  export declare const PRODUCT_EDITABILITY_WATCH: readonly ["material_container_no_", "material_container_no__id_", "mfg_order_id_", "production_container_id_"];
54
- /** 生产批次 / 物料批 选项回填 */
54
+ /** 生产批次 / 物料批选项回填:仅带出工单号,工单选择项保持互斥 */
55
55
  export declare const FILL_FROM_CONTAINER_OPTION: readonly [{
56
56
  readonly optionField: "product_id_";
57
57
  readonly toField: "product_id_";
@@ -64,9 +64,6 @@ export declare const FILL_FROM_CONTAINER_OPTION: readonly [{
64
64
  }, {
65
65
  readonly optionField: "product_id_spec_";
66
66
  readonly toField: "product_id_spec_";
67
- }, {
68
- readonly optionField: "mfg_order_id_";
69
- readonly toField: "mfg_order_id_";
70
67
  }, {
71
68
  readonly optionField: "mfg_order_code_";
72
69
  readonly toField: "mfg_order_code_";
@@ -127,9 +124,6 @@ export declare const fillFromOption: readonly [{
127
124
  }, {
128
125
  readonly optionField: "product_id_spec_";
129
126
  readonly toField: "product_id_spec_";
130
- }, {
131
- readonly optionField: "mfg_order_id_";
132
- readonly toField: "mfg_order_id_";
133
127
  }, {
134
128
  readonly optionField: "mfg_order_code_";
135
129
  readonly toField: "mfg_order_code_";
@@ -0,0 +1,2 @@
1
+ import { BusinessFieldProfile } from '../../../../types';
2
+ export declare const fields: BusinessFieldProfile[];
@@ -0,0 +1,19 @@
1
+ /** 备件业务表的自定义选项字段不一定存在于关联模型元数据中。 */
2
+ export declare const PART_OPTION_FIELD_LABELS: {
3
+ readonly part_name_: "备件名称";
4
+ readonly part_code_: "备件编码";
5
+ readonly specification_: "备件规格";
6
+ readonly unit_: "数量单位";
7
+ };
8
+ export declare const INVENTORY_OPTION_FIELD_LABELS: {
9
+ readonly id_: "库存记录";
10
+ readonly part_id_name_: "备件名称";
11
+ readonly part_id_code_: "备件编码";
12
+ readonly part_id_spec_: "备件规格";
13
+ readonly warehouse_id_: "仓库";
14
+ readonly storage_zone_id_: "库区";
15
+ readonly location_id_: "库位";
16
+ readonly uom_id_: "数量单位";
17
+ readonly validate_: "有效期";
18
+ readonly stock_num_: "库存数量";
19
+ };
@@ -4,6 +4,8 @@ import { AutofillTemplate } from '../types';
4
4
  * @example product_id_ → product_id → product_id_name_
5
5
  */
6
6
  export declare function normalizeRefFieldKey(fieldKey: string): string;
7
+ /** 将 AutofillTemplate 中的 toField 解析为字符串 */
8
+ export declare function resolveAutofillToField(template: AutofillTemplate, sourceFieldKey: string): string;
7
9
  interface ExpandAutofillContext {
8
10
  /** 拖入的源字段 key,如 product_id_ */
9
11
  sourceFieldKey: string;
@@ -6,6 +6,12 @@ interface ApplyFieldProfileInput {
6
6
  /** 子表 SubTableType 或业务子模型 refModelType */
7
7
  subModelType?: string;
8
8
  }
9
+ /** 设计态展示用的内置填充映射,与拖入字段时写入的模板共用一份 Profile。 */
10
+ export declare function getBuiltInAutofillRules(field: ApplyFieldProfileInput): {
11
+ fromField: string;
12
+ toField: string;
13
+ fromFieldLabel: string | undefined;
14
+ }[];
9
15
  /**
10
16
  * 按子表类型 + 字段 key 应用 Profile,返回合并后的 widget 配置片段
11
17
  */
@@ -1,6 +1,6 @@
1
1
  export { getBusinessRibbonMenuGroups, getDataRibbonMenuItems } from './design/ribbon-options';
2
2
  export { resolveSubTableCreate, resolvePanelTypeByTableType } from './design/create-subtable';
3
- export { applyFieldProfileOnAttach } from './design/hooks/on-field-attach';
3
+ export { applyFieldProfileOnAttach, getBuiltInAutofillRules } from './design/hooks/on-field-attach';
4
4
  export { SUB_TABLE_PANEL_TYPE_NAME, isDynamicSubTablePanelType, isFixedSubTablePanelType, isRepeatingSubTablePanelType, } from './design/panel-type';
5
5
  export { resolveDesignPanelFeatures, BIZ_TABLE_CONFIG_SEED_TYPES } from './design/panel-features';
6
6
  export { resolveTableLabelKey } from './design/label';
@@ -44,6 +44,8 @@ export interface ContextAssignmentDef {
44
44
  /** 数据填充模板:拖入关联字段时展开为 autofillRules(设计态消费) */
45
45
  export interface AutofillTemplate {
46
46
  fromField: string;
47
+ /** 自定义选项数据源中的字段名称;设计态展示内置规则时使用 */
48
+ fromFieldLabel?: string;
47
49
  toField: string | ((ctx: {
48
50
  sourceFieldKey: string;
49
51
  }) => string);
@@ -19,6 +19,8 @@ export { calcUsedFields, isReverseModelingEnabled, FieldSceneType, scanField, }
19
19
  export { FIELD_TYPE_LABEL_MAP, FieldTypeToCellWidgetMap, } from './online-form/src/views/designer/constants';
20
20
  export { XlsxParser } from './online-form/src/views/designer/utils/xlsx-parser';
21
21
  export { DomParser } from './online-form/src/views/designer/utils/dom-parser';
22
+ export { getPlacedFieldsByType, getPlacedSealFields, } from './online-form/src/views/designer/utils/template-placed-fields';
23
+ export type { PlacedFormField } from './online-form/src/views/designer/utils/placed-fields';
22
24
  export { VersionSelect } from './shared/components/version-select';
23
25
  export { OnlineFormModelSelect, OnlineFormModelModal, } from './shared/components/online-form-model-select';
24
26
  export { openVersionDiff, VersionDiffPreviewRouter, } from './online-form/src/components/version-diff';
@@ -14,8 +14,6 @@ type __VLS_Props = {
14
14
  showEditBtn: boolean;
15
15
  /** 是否是物料消耗 */
16
16
  isMaterialConsume: boolean;
17
- /** 是否显示查看Bom */
18
- showBom?: boolean;
19
17
  /** 是否显示扫描 */
20
18
  showScanBtn?: boolean;
21
19
  /** 是否显示确认按钮 */
@@ -10,8 +10,6 @@ type __VLS_Props = {
10
10
  showEditBtn?: boolean;
11
11
  /** 是否是物料消耗 */
12
12
  isMaterialConsume?: boolean;
13
- /** 是否显示查看Bom */
14
- showBom?: boolean;
15
13
  /** 是否显示扫描 */
16
14
  showScanBtn?: boolean;
17
15
  /** 是否显示确认按钮 */
@@ -36,7 +34,6 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {
36
34
  showInsertMultiple: boolean;
37
35
  showEditBtn: boolean;
38
36
  isMaterialConsume: boolean;
39
- showBom: boolean;
40
37
  showScanBtn: boolean;
41
38
  showConfirmBtn: boolean;
42
39
  noPopover: boolean;
@@ -24,10 +24,6 @@ export declare enum SubTableActionEnum {
24
24
  CONFIRM = "CONFIRM",
25
25
  /** 条码扫描 */
26
26
  SCAN = "SCAN",
27
- /** 查看BOM信息 */
28
- VIEW_BOM = "VIEW_BOM",
29
- /** 变更解析规则 */
30
- CHANGE_PARSE_RULE = "CHANGE_PARSE_RULE",
31
27
  /** 行编辑 */
32
28
  RowEdit = "rowEdit",
33
29
  /** 加一组 */
@@ -7,9 +7,5 @@ export declare enum MaterialConsumeActionType {
7
7
  /** 确认 */
8
8
  CONFIRM = "CONFIRM",
9
9
  /** 条码扫描 */
10
- SCAN = "SCAN",
11
- /** 查看BOM信息 */
12
- VIEW_BOM = "VIEW_BOM",
13
- /** 变更解析规则 */
14
- CHANGE_PARSE_RULE = "CHANGE_PARSE_RULE"
10
+ SCAN = "SCAN"
15
11
  }
@@ -35,6 +35,8 @@ export declare class SubTableCoreFactory {
35
35
  initSubTableCore(context: RuntimePageCtx): void;
36
36
  /** 通过tid获取子表核心 */
37
37
  getSubCoreByTid(tid: string): SubTableCore | undefined;
38
+ /** 只按已注册的业务类型识别,普通数据表及未知类型不参与空行过滤。 */
39
+ getBusinessTableFields(): string[];
38
40
  /**
39
41
  * 初始化表单数据
40
42
  * @param params
@@ -5,13 +5,14 @@ import { ScanModalInput } from './utils/scan';
5
5
  * 库存调拨表 Core
6
6
  * - Profile:禁用字段 / 行默认值 / 物料清空
7
7
  * - 物料走库存选择(allocateProduct)+ FILL_FROM_INVENTORY_OPTION
8
- * - 扫码:库存匹配,连续扫码每次新增一行
8
+ * - 扫码:库存匹配,优先填充物料和批次均为空的行,否则新增一行
9
9
  */
10
10
  export declare class AllocateTableCore extends ProfileDrivenSubTableCore {
11
11
  /** 绘制UI相关工具 */
12
12
  get render(): import('../..').ISubTableRender;
13
13
  /** 指定的仓库id */
14
14
  get warehouseId(): any;
15
+ protected isEmptyScanRow(row: Record<string, unknown>): boolean;
15
16
  handleFieldTd: SubTableCore['handleFieldTd'];
16
17
  calcFieldQuery: SubTableCore['calcFieldQuery'];
17
18
  calcSubTableActionMenu: SubTableCore['calcSubTableActionMenu'];
@@ -80,9 +80,9 @@ export declare class MaterialRequisitionTableCore extends ProfileDrivenSubTableC
80
80
  }
81
81
  /**
82
82
  * 物料替换表 Core
83
- * - 原物料和替换料均从历史消耗中选择,并按当前 SN / 工序过滤
84
- * - 选择后回填对应批号、物料信息和消耗数量
85
- * - 替换物料批号回填替换物料信息
83
+ * - 被替换物料从当前行生产 SN 的历史消耗中选择,可按行内工序过滤
84
+ * - 替换物料从 LOT/SN 中选择,回填批次和物料信息,保留替换数量
85
+ * - 替换物料批号回填替换物料及其信息
86
86
  * - 条码映射结果优先填充空行,否则追加新行
87
87
  */
88
88
  export declare class MaterialSubstitutionTableCore extends ProfileDrivenSubTableCore {
@@ -3,6 +3,7 @@ import { SubTableActionEnum } from '../../components/document-sub-table-action';
3
3
  import { IDefaultValueMap, IFieldStatus, IRuntimeSubTableCtx } from '../types';
4
4
  import { TdHandler } from '../utils/td-handler';
5
5
  import { SubTableCoreFactory } from '../factory/sub-table-factory';
6
+ import { ScanRecordPickerOptions } from '../../types/render/sub-table-render';
6
7
  import { FormModelController } from '../../hooks/form-model';
7
8
  import { RefCustomLoader } from '../../interface/ref-loader';
8
9
  /**
@@ -165,10 +166,6 @@ export declare class SubTableCore {
165
166
  };
166
167
  /** 解析规则配置对象 */
167
168
  scanRuleProps: ParseRuleProps;
168
- /**
169
- * 变更条码规则
170
- */
171
- changeScanRule(): Promise<void>;
172
169
  /**
173
170
  * 打开扫描弹窗
174
171
  * @param opts
@@ -188,7 +185,7 @@ export declare class SubTableCore {
188
185
  /**
189
186
  * 扫码多条候选时选择一行(1 条自动选中)
190
187
  */
191
- protected pickScanRecord(records: Record<string, unknown>[]): Promise<Record<string, unknown> | undefined>;
188
+ protected pickScanRecord(records: Record<string, unknown>[], options?: ScanRecordPickerOptions): Promise<Record<string, unknown> | undefined>;
192
189
  /**
193
190
  * 处理扫码弹窗回调
194
191
  * 参数由扫码弹窗决定
@@ -53,6 +53,8 @@ export declare class FormModelController {
53
53
  isPresetField(field: FieldMetaDTO): boolean;
54
54
  /** 是否是系统字段 */
55
55
  isSystemField(field: FieldMetaDTO): boolean;
56
+ /** 是否是对象字段类型 */
57
+ isObjectField(field: FieldMetaDTO): boolean;
56
58
  /**
57
59
  * 获取主模型里子表字段对应的子模型key
58
60
  *
@@ -0,0 +1,4 @@
1
+ /** 检验数量只读取 inspection_number_,兼容原始记录、data 及 data.data 返回。 */
2
+ export declare function parseInspectionModuleQty(res: unknown): number | undefined;
3
+ /** 使用表单 detail 的交易实例 id;不能以表单 id 或 paramsConfig 中的 id 代替。 */
4
+ export declare function fetchInspectionModuleQty(txnInstId?: string): Promise<number | undefined>;
@@ -107,8 +107,8 @@ export declare class BomEntryValidator {
107
107
  * @return {*}
108
108
  */
109
109
  calcCustomNumberLimit(data: IMaterialConsumeData): Promise<{
110
- max: any;
111
- min: any;
110
+ max: number | undefined;
111
+ min: number | undefined;
112
112
  }>;
113
113
  /**
114
114
  * 通用校验 5:本组上料数量是否满足 qty_validation_rule_。
@@ -42,16 +42,17 @@ export declare class MaterialConsumeTableController {
42
42
  mainFormState: Ref<any>;
43
43
  /** 表单数据状态(由 factory bindRuntime 注入):未填报 / STASH / SUBMIT */
44
44
  dataStatus?: string;
45
- /** factory 是否已绑定过运行时(避免重复 initTableData) */
46
- private runtimeBound;
47
- /** 多 Sheet / 同屏多实例下,弹层和异步交互使用该键隔离。 */
48
- private runtimeOwnerId;
45
+ /** 实例数据只在 LOADED 前准备一次,运行时绑定不再重新生成行。 */
46
+ private initialDataPrepared;
47
+ /** 最近一次同步需求数量时使用的数量依赖。 */
48
+ private syncedMaterialNoNum;
49
49
  /** 表单是否已暂存或提交(已处理过则不再跑初始化) */
50
50
  get isDataProcessed(): boolean;
51
51
  /** 批次数量或生产数量 */
52
52
  get materialNoNum(): any;
53
53
  /** 物料消耗模式(自身没有配置的话取环境的默认值) */
54
54
  get mcPattern(): MaterialConsumptionPatternEnum;
55
+ get hasFormInstance(): boolean;
55
56
  /**
56
57
  * 解析规则数据对象
57
58
  */
@@ -97,10 +98,6 @@ export declare class MaterialConsumeTableController {
97
98
  * @param id (老数据是id,新数据是json对象字符串)
98
99
  */
99
100
  protected initScanRule(id: string): Promise<void>;
100
- /**
101
- * 变更条码规则
102
- */
103
- changeScanRule(): Promise<void>;
104
101
  /**
105
102
  * 是否人为指定物料
106
103
  * @readonly
@@ -171,21 +168,20 @@ export declare class MaterialConsumeTableController {
171
168
  openScanModal(opts: {
172
169
  title: string;
173
170
  }): Promise<void>;
174
- /**
175
- * 打开扫描弹窗
176
- * @param opts
177
- */
178
- openBomModal(): Promise<void>;
179
- /**
180
- * 表单加载时由 factory 调用:绑定稳定数据源并初始化行数据。
181
- * 不在分页组件 setup 中调用,避免跨页挂载重复 init。
182
- */
171
+ /** Store 创建前准备物料行和数量,全部 Sheet 的 LOADED 共用这份数据。 */
172
+ prepareInitialData(opts: {
173
+ formState: Record<string, any>;
174
+ field: string;
175
+ dataStatus?: string;
176
+ defaultRowData?: Record<string, any>;
177
+ }): void;
178
+ /** 数量依赖实际变化时才重算,避免首次绑定覆盖 LOADED 中的回填。 */
179
+ syncQtyRequiredFromBomIfChanged(): void;
180
+ /** 只绑定运行时 Store,不重新生成行或修改行内容。 */
183
181
  bindRuntime(opts: {
184
- ownerId: string;
185
182
  tableDataRef: Ref<any>;
186
183
  mainFormState?: Ref<any>;
187
184
  dataStatus?: string;
188
- defaultRowData?: Record<string, any>;
189
185
  }): void;
190
186
  /**
191
187
  * 消耗表组件挂载时调用:只同步视图依赖,不初始化数据、不注册 watch。
@@ -265,8 +261,10 @@ export declare class MaterialConsumeTableController {
265
261
  * qty 相关派生字段统一入口(改 qty_ / 扫码 / 删行 等都走这里)
266
262
  */
267
263
  updateDerivedQtyFields(): void;
264
+ /** 同步 BOM 主物料的需求数量单位,未关联 BOM 的行保留原单位。 */
265
+ private syncRequiredUomFromBom;
268
266
  /**
269
- * 设置默认值,如工序,需求数量/已消耗数量
267
+ * 设置默认值,如工序,需求数量/需求数量单位/已消耗数量
270
268
  * @param row
271
269
  */
272
270
  setDefaultValue(row: IMaterialConsumeData): void;
@@ -15,8 +15,6 @@ export declare class MCRender implements IMcRender {
15
15
  type: 'error' | 'warning';
16
16
  content: string;
17
17
  }): void;
18
- /** 每个表单实例独立维护 BOM 弹层参数。 */
19
- private readonly bomModalProps;
20
18
  openScanModal(opts: {
21
19
  title: string;
22
20
  subModelKey?: string;
@@ -30,31 +28,6 @@ export declare class MCRender implements IMcRender {
30
28
  transformedData?: any;
31
29
  }) => void;
32
30
  }): Promise<void>;
33
- /**
34
- * 实际打开UIModal的函数
35
- */
36
- protected _openBomModal(reactiveOpts: {
37
- ownerId: string;
38
- bomList: any[];
39
- onSubstitute: Function;
40
- }): Promise<void>;
41
- openBomModal(opts: {
42
- ownerId: string;
43
- bomList: any[];
44
- onSubstitute: Function;
45
- }): Promise<void>;
46
- /**
47
- * 打开修改条码解析规则的modal
48
- * 返回空或者修改后的规则字段id
49
- * @param opts \
50
- * - config 回显用的配置对象
51
- * @return {*}
52
- */
53
- openChangeRuleModal(opts: {
54
- config: ParseRuleProps;
55
- subModelKey?: string;
56
- formModelController: FormModelController;
57
- }): Promise<ParseRuleProps | undefined>;
58
31
  /**
59
32
  * 扫码返回多条候选时,弹窗选择其中一条
60
33
  * 取消返回 undefined
@@ -64,7 +37,7 @@ export declare class MCRender implements IMcRender {
64
37
  title?: string;
65
38
  }): Promise<any | undefined>;
66
39
  /**
67
- * 销毁所有固定的模态
40
+ * 关闭当前页面的 form-base 弹层
68
41
  */
69
42
  destroyAllModals(_ownerId: string): void;
70
43
  }
@@ -1,5 +1,5 @@
1
1
  import { IBomEntry, IFormTmplBom, IMaterialConsumeData } from './types';
2
- import { BaseCoreComponent } from '../../types';
2
+ import { BaseCoreComponent, IMaterialConsumeTableInfo } from '../../types';
3
3
  import { MaterialConsumeTableController } from './material-consume-table-controller';
4
4
  import { FormInstBomResponse } from '@gct-paas/api/apaas';
5
5
  import { MaterialConsumptionPatternEnum } from '../../constant';
@@ -25,6 +25,10 @@ export declare class FormTmplBomController {
25
25
  field2TableMap: Record<string, string>;
26
26
  /** 默认物料消耗模式 */
27
27
  defaultMCPattern: MaterialConsumptionPatternEnum;
28
+ /** 表单实例身份与 BOM 数据是否存在无关,模板展示也会创建完整控制器。 */
29
+ hasFormInstance: boolean;
30
+ /** 按页面中的表解析后的配置,页面与打印共用。 */
31
+ private resolvedTmplBomList;
28
32
  constructor();
29
33
  /**
30
34
  * 创建独立的打印展示控制器:不请求 BOM/历史消耗,不初始化或修正已填报行。
@@ -57,13 +61,14 @@ export declare class FormTmplBomController {
57
61
  * @readonly
58
62
  */
59
63
  get enableSequenceLoading(): boolean;
60
- /**
61
- * 初始化模板的物料消耗的配置
62
- */
64
+ private createDefaultConfig;
65
+ /** 有实例时读取实例配置,无实例时仅创建默认展示控制器。 */
63
66
  init(data: {
64
- formInstBom: FormInstBomResponse;
65
- operationId: string;
66
- materialNo: string;
67
+ formInstBom?: FormInstBomResponse | null;
68
+ materialConsumeTableList: IMaterialConsumeTableInfo[];
69
+ hasFormInstance: boolean;
70
+ operationId?: string;
71
+ materialNo?: string;
67
72
  productQty?: number;
68
73
  }): Promise<void>;
69
74
  /**
@@ -84,6 +89,14 @@ export declare class FormTmplBomController {
84
89
  * @param defaultMap
85
90
  */
86
91
  handleDefaultMap(defaultMap: Record<string, any>): void;
92
+ /** 全部 Sheet 的消耗表统一在 LOADED 前准备。 */
93
+ initializeFormState(opts: {
94
+ formState: Record<string, any>;
95
+ dataStatus?: string;
96
+ defaultDataMap: Record<string, any>;
97
+ }): void;
98
+ /** 钩子若修改数量依赖,在创建 Store 和分页前按原规则重算。 */
99
+ finalizeInitialQuantities(): void;
87
100
  submitValidate(): Promise<{
88
101
  isValid: boolean;
89
102
  fields: Record<string, any[]> | undefined;
@@ -18,6 +18,8 @@ export interface IBomEntry {
18
18
  product_spec_: string;
19
19
  /** 单位用量 */
20
20
  qty_required_: number;
21
+ /** 主物料配置的需求数量单位 */
22
+ uom_id_?: string;
21
23
  /** 删除标记 */
22
24
  deleted_?: boolean;
23
25
  /** 上料方式 */
@@ -62,9 +62,10 @@ export declare function getObjectBomMaterialLotQuery(opts: {
62
62
  } | null;
63
63
  /**
64
64
  * 表单提交:校验所有物料消耗对象(失败打在对应单元格,收集全部错误)
65
- * - 记录模式 / 人为指定 / 无配置:不校 BOM
66
- * - 未开人为指定:有物料则必须在实例 BOM 中
67
- * - 数量为空留给字段必填;有值且开了数量校验才校数量 vs 需求数量
65
+ * - 物料范围:无配置 / 人为指定 / 记录模式,不校验物料是否属于 BOM
66
+ * - 记录模式:仅开启人为指定时,继续执行数量校验
67
+ * - BOM 模式未开人为指定:有物料则必须在实例 BOM 中
68
+ * - 数量与需求数量均有值、非查看类型且开启数量校验时,执行数量规则
68
69
  * - 人为指定:用 objectBom.entries_[0];否则用 bomEntries 中与对象物料匹配的明细
69
70
  */
70
71
  export declare function validateObjectBomQtyOnSubmit(opts: {