@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.
- package/dist/{BaseComponent-yoXj5Q9c.js → BaseComponent-9YPaGJfR.js} +3 -1
- package/dist/{VueVideoPlayer-DnxMrbso.js → VueVideoPlayer-DDUZu4FR.js} +2 -2
- package/dist/{align-editor-B4gydK1M.js → align-editor-aEWznFoT.js} +1 -1
- package/dist/{barcode-design-Cid0MzDI.js → barcode-design-BxpkeU3s.js} +2 -2
- package/dist/base/index.es.js +718 -466
- package/dist/{diagonal-design-C1ZotzUS.js → diagonal-design-TclIHJPn.js} +2 -2
- package/dist/{dynamic-table-action-C1o2TjqX.js → dynamic-table-action-DmQ4nVdA.js} +825 -216
- 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
- package/dist/{edit.utils-CXmmCnxE-DEOcuCns.js → edit.utils-CXmmCnxE-pmY90xaE.js} +1 -1
- package/dist/excel.css +20939 -21654
- package/dist/{exceljs.min-DHw6Xo0Z.js → exceljs.min-DMs_Il25.js} +2 -2
- package/dist/{font-editor-BMzWHu2P.js → font-editor-Jk202Wfw.js} +3 -3
- package/dist/{image-design-Cv7Md3br.js → image-design-CV8ivT4U.js} +3 -2
- package/dist/index-56SEKe0q.js +56 -0
- package/dist/{index-ClwYjOaz.js → index-B94zjbXB.js} +2 -2
- package/dist/{index-DCyS2gPu.js → index-B9hn-Xpy.js} +62 -261
- package/dist/{index-CTfI5z2v.js → index-BI1w0HuA.js} +2 -2
- package/dist/{index-DYJ2NY6r.js → index-BIyoFjsu.js} +1 -1
- package/dist/{index-Cf0HUPLj.js → index-BNdFxtuu.js} +2 -2
- package/dist/index-BR3okRzi.js +26 -0
- package/dist/{index-B_rAitke.js → index-BVy2F-LZ.js} +2 -2
- package/dist/{index-CDLpl1vT.js → index-BWSh7ft6.js} +57467 -75573
- package/dist/{index-BQLH_u5E.js → index-BgUSwNSn.js} +1 -1
- package/dist/{index-DVknMcoI.js → index-BzNleuvF.js} +8 -5
- package/dist/{index-BC7ZPYu4.js → index-CJgeCzTz.js} +4 -7
- package/dist/{index-KJIuf63z.js → index-CM0bDadW.js} +3 -3
- package/dist/{index-DYPfKE_B.js → index-Co8dy8tY.js} +2 -2
- package/dist/{index-Ca8Vr4hp.js → index-CslB9Mj3.js} +3 -3
- package/dist/{index-B2oEU1dw.js → index-D3RlguP-.js} +2 -2
- package/dist/{index-De0lJXBW.js → index-DAokF2RK.js} +2 -2
- package/dist/{index-B_qNr-yz.js → index-DUomn6r4.js} +2 -2
- package/dist/{index-DGF9F0hk.js → index-DVBGDVN0.js} +2 -2
- package/dist/{index-DLhVj92F.js → index-DVCumM_5.js} +2 -2
- package/dist/{index-DHCfwj7L.js → index-DX2S50Jz.js} +1 -1
- package/dist/{index-b03O87gX.js → index-DXutPZQB.js} +1 -1
- package/dist/{index-BMaOAtO5.js → index-DXvugQoP.js} +2 -2
- package/dist/{index-t_DIs_9d.js → index-DmLngOvC.js} +2 -2
- package/dist/{index-EGCBxJ5U.js → index-Dxiaj_9W.js} +2 -2
- package/dist/{index-CB2KdECV.js → index-DzZ4dTHg.js} +2 -2
- package/dist/index-P-QlF0da.js +26 -0
- package/dist/{index-BNW93hpM.js → index-RHv1ncwn.js} +1 -1
- package/dist/{index-Bi8eFVNQ.js → index-eaPQQt2I.js} +1 -1
- package/dist/{index-DPHsObDL.js → index-iCBdHXeT.js} +2 -2
- package/dist/{index-D4SRGG7R.js → index-kZ3vhOMA.js} +2 -2
- package/dist/{index-yee5hcWj.js → index-q0gBBMoc.js} +2 -2
- package/dist/{index--m7aMhTe.js → index-s7YNVpgF.js} +1 -1
- package/dist/{index-DWd__rfX.js → index-zuExIXWU.js} +1 -1
- package/dist/index.es.js +49 -47
- package/dist/{mb-render-DNA0sAdk.js → mb-render-BBRR_byl.js} +3 -3
- 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
- package/dist/{pagination-design-a-8WGmGL.js → pagination-design-DWvn4UrB.js} +2 -2
- package/dist/paper-widget-design-DZ7tF6Rn.js +4 -0
- package/dist/{qrcode-design-CWa7ucIf.js → qrcode-design-yLHw_1Hb.js} +1 -1
- package/dist/{revo-grid.entry-D7L9YPVS.js → revo-grid.entry-DW8yYngF.js} +1 -1
- package/dist/{revogr-attribution_7.entry-Cp0OE2PX.js → revogr-attribution_7.entry-WnSOjAfL.js} +3 -3
- package/dist/{revogr-clipboard_3.entry-CcGTw0f4.js → revogr-clipboard_3.entry-5f1ZtJWy.js} +2 -2
- package/dist/{revogr-data_4.entry-Bh7oCpj9.js → revogr-data_4.entry-BwcXhOPY.js} +2 -2
- package/dist/{revogr-filter-panel.entry-OJyr7l1E.js → revogr-filter-panel.entry-CXpo_Btw.js} +1 -1
- package/dist/{serialnumber-design-BDTeHe2C.js → serialnumber-design-CYdELIDU.js} +1 -1
- package/dist/shared/index.es.js +25 -30
- package/dist/{single-field-drop-C-IeYaFA.js → single-field-drop-hAnlTOzR.js} +2 -2
- package/dist/{size-editor-Ibjf73lo.js → size-editor-Dr3sVcUl.js} +1 -1
- package/dist/src/adapter/adapter.d.ts +36 -0
- package/dist/src/adapter/setup.d.ts +18 -12
- package/dist/src/domain/field/auto-complete/material-container-manifest.d.ts +2 -0
- package/dist/src/domain/field/auto-complete/material-no-manifest.d.ts +2 -0
- package/dist/src/domain/field/auto-complete/related-lot-no-manifest.d.ts +2 -0
- package/dist/src/domain/field/auto-complete/scrap-material-no-manifest.d.ts +2 -0
- package/dist/src/domain/field/auto-complete/sterilization-container-manifest.d.ts +2 -0
- package/dist/src/domain/field/date/date-manifest.d.ts +2 -0
- package/dist/src/domain/field/date/date-time-manifest.d.ts +2 -0
- package/dist/src/domain/field/date/production-date-manifest.d.ts +2 -0
- package/dist/src/domain/field/date/re-inspection-date-manifest.d.ts +2 -0
- package/dist/src/domain/field/date/report-end-time-manifest.d.ts +2 -0
- package/dist/src/domain/field/date/report-start-time-manifest.d.ts +2 -0
- package/dist/src/domain/field/date/time-manifest.d.ts +2 -0
- package/dist/src/domain/field/date/trace-date-manifest.d.ts +2 -0
- package/dist/src/domain/field/date/validity-manifest.d.ts +2 -0
- package/dist/src/domain/field/date/warehouse-receipt-date-manifest.d.ts +2 -0
- package/dist/src/domain/field/index.d.ts +9 -0
- package/dist/src/domain/field/number/decimal-manifest.d.ts +2 -0
- package/dist/src/domain/field/number/destructive-test-qty-manifest.d.ts +2 -0
- package/dist/src/domain/field/number/double-manifest.d.ts +2 -0
- package/dist/src/domain/field/number/good-qty-manifest.d.ts +2 -0
- package/dist/src/domain/field/number/inspection-qty-manifest.d.ts +2 -0
- package/dist/src/domain/field/number/integer-manifest.d.ts +2 -0
- package/dist/src/domain/field/number/long-manifest.d.ts +2 -0
- package/dist/src/domain/field/number/material-check-qty-manifest.d.ts +2 -0
- package/dist/src/domain/field/number/not-good-qty-manifest.d.ts +2 -0
- package/dist/src/domain/field/number/of-inst-num-manifest.d.ts +2 -0
- package/dist/src/domain/field/number/operation-output-qty-manifest.d.ts +2 -0
- package/dist/src/domain/field/number/operation-receive-qty-manifest.d.ts +2 -0
- package/dist/src/domain/field/number/product-check-qty-manifest.d.ts +2 -0
- package/dist/src/domain/field/number/production-qty-manifest.d.ts +2 -0
- package/dist/src/domain/field/number/qty-consumed-manifest.d.ts +2 -0
- package/dist/src/domain/field/number/qty-manifest.d.ts +2 -0
- package/dist/src/domain/field/number/qty-required-manifest.d.ts +2 -0
- package/dist/src/domain/field/number/scrap-qty-manifest.d.ts +2 -0
- package/dist/src/domain/field/number/work-hours-manifest.d.ts +2 -0
- package/dist/src/domain/field/option/boolean-manifest.d.ts +2 -0
- package/dist/src/domain/field/option/enum-manifest.d.ts +2 -0
- package/dist/src/domain/field/option/enum-multi-manifest.d.ts +2 -0
- package/dist/src/domain/field/option/option-manifest.d.ts +2 -0
- package/dist/src/domain/field/option/option-multi-manifest.d.ts +2 -0
- package/dist/src/domain/field/rdo-select/e-sop-manifest.d.ts +2 -0
- package/dist/src/domain/field/rdo-select/product-manifest.d.ts +2 -0
- package/dist/src/domain/field/rdo-select/scrap-material-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/device-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/device-ref-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/device-ref-multi-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/location-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/mfg-order-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/model-relation-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/not-good-group-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/not-good-reason-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/operation-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/org-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/org-multi-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/production-container-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/ref-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/ref-multi-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/routing-operation-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/scrap-group-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/scrap-reason-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/shopfloor-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/target-warehouse-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/user-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/user-multi-manifest.d.ts +2 -0
- package/dist/src/domain/field/select/warehouse-manifest.d.ts +2 -0
- package/dist/src/domain/field/text/e-sop-version-manifest.d.ts +2 -0
- package/dist/src/domain/field/text/external-reference-no-manifest.d.ts +2 -0
- package/dist/src/domain/field/text/long-text-manifest.d.ts +2 -0
- package/dist/src/domain/field/text/order-no-manifest.d.ts +2 -0
- package/dist/src/domain/field/text/record-no-manifest.d.ts +2 -0
- package/dist/src/domain/field/text/text-manifest.d.ts +2 -0
- package/dist/src/domain/field/text/warehouse-receipt-no-manifest.d.ts +2 -0
- package/dist/src/domain/field/types.d.ts +18 -0
- package/dist/src/domain/field/upload/attachment-manifest.d.ts +2 -0
- package/dist/src/domain/field/upload/image-manifest.d.ts +2 -0
- package/dist/src/domain/field/upload/reporter-manifest.d.ts +2 -0
- package/dist/src/domain/field/upload/signature-manifest.d.ts +2 -0
- package/dist/src/domain/field/upload/warehouse-manager-manifest.d.ts +2 -0
- package/dist/src/domain/index.d.ts +1 -0
- package/dist/src/domain/object/date-object/index.d.ts +5 -0
- package/dist/src/domain/object/date-object/profile/field-keys.d.ts +19 -0
- package/dist/src/domain/object/date-object/profile/fields.d.ts +2 -0
- package/dist/src/domain/object/date-object/profile/index.d.ts +3 -0
- package/dist/src/domain/object/date-object/runtime/date-object-context.d.ts +30 -0
- package/dist/src/domain/object/date-object/runtime/date-object-runtime.d.ts +43 -0
- package/dist/src/domain/object/date-object/runtime/fetch-records.d.ts +13 -0
- package/dist/src/domain/object/date-object/runtime/object-handlers.d.ts +4 -0
- package/dist/src/domain/object/date-object/runtime/re-inspection-date.d.ts +25 -0
- package/dist/src/domain/object/date-object/runtime/register-handlers.d.ts +1 -0
- package/dist/src/domain/object/date-object/runtime/row-change-handlers.d.ts +6 -0
- package/dist/src/domain/object/date-object/runtime/utils.d.ts +13 -0
- package/dist/src/domain/object/date-object/types.d.ts +53 -0
- package/dist/src/domain/object/index.d.ts +1 -0
- package/dist/src/domain/table/business/warehouse/device-part-consume/profile/field-keys.d.ts +14 -0
- package/dist/src/domain/table/business/warehouse/part-stocktake/profile/field-keys.d.ts +14 -0
- package/dist/src/domain/table/business/warehouse/shared/eqm-part-api.d.ts +13 -0
- package/dist/src/domain/table/business/warehouse/warehouse-in/profile/field-keys.d.ts +40 -3
- package/dist/src/domain/table/business/warehouse/warehouse-in/runtime/row-change-handlers.d.ts +9 -1
- package/dist/src/domain/table/business/warehouse/warehouse-inbound/profile/field-keys.d.ts +17 -0
- package/dist/src/domain/table/business/warehouse/warehouse-inventory/index.d.ts +3 -0
- package/dist/src/domain/table/business/warehouse/warehouse-inventory/profile/api.d.ts +14 -0
- package/dist/src/domain/table/business/warehouse/warehouse-inventory/profile/field-keys.d.ts +17 -34
- package/dist/src/domain/table/business/warehouse/warehouse-inventory/runtime/stocktake-dimension.d.ts +13 -0
- package/dist/src/domain/table/business/warehouse/warehouse-inventory/types.d.ts +20 -0
- package/dist/src/domain/table/business/warehouse/warehouse-outbound/profile/field-keys.d.ts +14 -0
- package/dist/src/domain/table/design/panel-features.d.ts +1 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/nocode-base/src/components/document-quick-fill/fixed-quick-fill-modal.vue.d.ts +3 -1
- package/dist/src/nocode-base/src/components/document-sub-table-action/type.d.ts +2 -0
- package/dist/src/nocode-base/src/constant/index.d.ts +5 -1
- package/dist/src/nocode-base/src/core/sub-table/profile-driven-sub-table-core.d.ts +42 -2
- package/dist/src/nocode-base/src/core/sub-table/stocktake-table-core.d.ts +1 -1
- package/dist/src/nocode-base/src/core/sub-table/sub-table-core.d.ts +11 -0
- package/dist/src/nocode-base/src/core/sub-table/utils/scan/scan-helpers.d.ts +13 -0
- package/dist/src/nocode-base/src/core/sub-table/utils/stocktake/stocktake-calc.d.ts +3 -1
- package/dist/src/nocode-base/src/core/sub-table/warehouse-in-table-core.d.ts +15 -0
- package/dist/src/nocode-base/src/core/sub-table/warehouse-out-table-core.d.ts +1 -0
- package/dist/src/nocode-base/src/hooks/date-object/use-date-object.d.ts +2 -0
- package/dist/src/nocode-base/src/hooks/device-link/controller.d.ts +3 -4
- package/dist/src/nocode-base/src/hooks/device-link/types.d.ts +1 -1
- package/dist/src/nocode-base/src/hooks/index.d.ts +1 -0
- package/dist/src/nocode-base/src/hooks/material-consume/bom-validator.d.ts +20 -6
- package/dist/src/nocode-base/src/hooks/material-consume/material-consume-table-controller.d.ts +34 -19
- package/dist/src/nocode-base/src/hooks/material-consume/service.d.ts +12 -0
- package/dist/src/nocode-base/src/hooks/material-consume/tmpl-bom-controller.d.ts +1 -4
- package/dist/src/nocode-base/src/hooks/material-consume-object/bom-validator.d.ts +49 -8
- package/dist/src/nocode-base/src/hooks/material-consume-object/index.d.ts +1 -0
- package/dist/src/nocode-base/src/hooks/material-consume-object/product-lot-link.d.ts +35 -0
- package/dist/src/nocode-base/src/hooks/operation-receive-qty.d.ts +2 -0
- package/dist/src/nocode-base/src/hooks/useRenderPageFactory.d.ts +12 -0
- package/dist/src/nocode-base/src/hooks/useStyles.d.ts +2 -2
- package/dist/src/nocode-base/src/interface/device-query.d.ts +40 -0
- package/dist/src/nocode-base/src/interface/index.d.ts +2 -1
- package/dist/src/nocode-base/src/interface/render.d.ts +11 -0
- package/dist/src/nocode-base/src/interface/transform.d.ts +1 -1
- package/dist/src/nocode-base/src/types/business/index.d.ts +3 -1
- package/dist/src/nocode-base/src/types/business/pretreatment-list.d.ts +3 -1
- package/dist/src/nocode-base/src/types/business/sterilize-batch.d.ts +3 -1
- package/dist/src/nocode-base/src/types/business/stocktake.d.ts +5 -1
- package/dist/src/nocode-base/src/types/common/base.d.ts +8 -0
- package/dist/src/nocode-base/src/types/fields/i-select.d.ts +13 -1
- package/dist/src/nocode-base/src/types/fields/i-trace.d.ts +6 -6
- package/dist/src/nocode-base/src/types/widgets/i-paper.d.ts +4 -8
- package/dist/src/nocode-web-render/src/render/sub-table/stocktake/stocktake-web-render.d.ts +1 -1
- package/dist/src/online-form/src/views/__cell_widgets__/common/display-fields-editor/display-fields-editor.vue.d.ts +3 -3
- package/dist/src/online-form/src/views/__cell_widgets__/common/display-fields-editor/display-fields.util.d.ts +15 -0
- package/dist/src/online-form/src/views/__cell_widgets__/common/field-config-visibility.d.ts +2 -0
- package/dist/src/online-form/src/views/__cell_widgets__/common/quick-search-editor/quick-search-editor.vue.d.ts +1 -4
- package/dist/src/online-form/src/views/__cell_widgets__/common/quick-search-editor/quick-search.util.d.ts +12 -10
- package/dist/src/online-form/src/views/__cell_widgets__/common/ref-autofill-editor/autofill-field-utils.d.ts +10 -0
- package/dist/src/online-form/src/views/__cell_widgets__/fake-field/fake-input.vue.d.ts +13 -0
- 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
- package/dist/src/online-form/src/views/__cell_widgets__/fake-field/fake-option-select.vue.d.ts +11 -0
- package/dist/src/online-form/src/views/__cell_widgets__/fake-field/fake-select.vue.d.ts +11 -0
- package/dist/src/online-form/src/views/__cell_widgets__/fake-field/index.d.ts +4 -0
- package/dist/src/online-form/src/views/__cell_widgets__/field-design-components.d.ts +4 -0
- package/dist/src/online-form/src/views/__cell_widgets__/index.d.ts +0 -3
- package/dist/src/online-form/src/views/__cell_widgets__/widget-panel-map.d.ts +3 -0
- package/dist/src/online-form/src/views/designer/constants/index.d.ts +5 -6
- package/dist/src/online-form/src/views/designer/hooks/useAllSpreadSheets.d.ts +80 -0
- package/dist/src/online-form/src/views/designer/hooks/useSpreadSheet.d.ts +110 -3
- package/dist/src/online-form/src/views/designer/modules/base/drag-box.vue.d.ts +1 -1
- package/dist/src/online-form/src/views/designer/modules/panel/panel-data-init-config/object-init/hooks/useObjectInit.d.ts +1 -1
- package/dist/src/online-form/src/views/designer/modules/panel/panel-tmpl-config/ai-tmpl/ai-tmpl-editor-modal.vue.d.ts +30 -0
- package/dist/src/online-form/src/views/designer/modules/panel/panel-tmpl-config/ai-tmpl/ai-tmpl-editor.vue.d.ts +6 -17
- package/dist/src/online-form/src/views/designer/modules/panel/panel-tmpl-config/ai-tmpl/types.d.ts +20 -0
- package/dist/src/online-form/src/views/designer/modules/panel/sub-table/comps/use-dynamic-sub-table-panel.d.ts +58 -0
- package/dist/src/online-form/src/views/designer/modules/panel/sub-table/material-consumption/bom-entry-editor.vue.d.ts +2 -1
- package/dist/src/online-form/src/views/designer/modules/toolkit/model-field/add-field-btn.vue.d.ts +1 -3
- package/dist/src/online-form/src/views/designer/utils/cell-content-style.d.ts +30 -0
- package/dist/src/online-form/src/views/designer/utils/field-type-label.d.ts +1 -0
- package/dist/src/online-form/src/views/render/__components__/_common_/widget-component-visible.vue.d.ts +1 -0
- package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-auto-complete.vue.d.ts +34 -0
- package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-date-picker.vue.d.ts +23 -0
- package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-media.d.ts +5 -0
- package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-media.vue.d.ts +40 -0
- package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-text-input.vue.d.ts +21 -0
- package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-textarea.vue.d.ts +24 -0
- package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/index.d.ts +9 -0
- package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/use-select-list-height.d.ts +9 -0
- package/dist/src/online-form/src/views/render/__components__/_field_/_base_/trace-like-wrapper.d.ts +26 -0
- package/dist/src/online-form/src/views/render/__components__/_field_/auto-complete/index.d.ts +14 -0
- package/dist/src/online-form/src/views/render/__components__/_field_/{trace → rdo-select}/index.d.ts +2 -2
- package/dist/src/online-form/src/views/render/__components__/_field_/trace/composables/usePopoverWrapperHeight.d.ts +11 -2
- package/dist/src/online-form/src/views/render/__components__/_field_/trace/utils/columns.d.ts +13 -0
- package/dist/src/online-form/src/views/render/__components__/_field_/trace/utils/use-rule-props.d.ts +3 -3
- package/dist/src/shared/components/FieldStateIcon/field-state-icon.vue.d.ts +17 -0
- package/dist/src/shared/components/FieldStateIcon/index.d.ts +3 -0
- package/dist/src/shared/components/Preview/src/Functional.vue.d.ts +1 -1
- package/dist/src/shared/components/Signature/index.d.ts +2 -1
- package/dist/src/shared/components/Signature/types/index.d.ts +4 -0
- package/dist/src/shared/components/Signature/ui/handwriting-signer.vue.d.ts +1 -0
- package/dist/src/shared/components/Signature/ui/password-signer.vue.d.ts +1 -0
- package/dist/src/shared/components/Signature/ui/sign-popover-content.vue.d.ts +122 -0
- package/dist/src/shared/components/Signature/ui/sign-switcher-modal.vue.d.ts +4 -0
- package/dist/src/shared/components/Signature/ui/sign-switcher.vue.d.ts +3 -0
- package/dist/src/shared/components/registerGlobComp.d.ts +5 -0
- package/dist/src/shared/enum/field-type.d.ts +39 -284
- package/dist/src/shared/enum/index.d.ts +1 -1
- package/dist/src/shared/utils/field-size.d.ts +3 -0
- package/dist/src/shared/utils/lot2sn.d.ts +22 -0
- package/dist/{text-design-B1eX7Rp1.js → text-design-B9BH6_VT.js} +2 -2
- package/dist/{throttle-Cpk1LoGk-kodOPzL5.js → throttle-Cpk1LoGk-Dkz6zJ8F.js} +1 -1
- package/dist/{timediff-design-CoDU15y8.js → timediff-design-INgy9LDa.js} +1 -1
- package/dist/trace-like-wrapper-B-PzUZAG.js +34 -0
- 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
- package/dist/web-render/index.es.js +118 -17
- package/dist/{widget-barcode-DAxib6qS.js → widget-barcode-su16tQ64.js} +4 -4
- package/dist/{widget-diagonal-BLo6XT0t.js → widget-diagonal-Dl3D3MJK.js} +5 -7
- package/dist/{widget-image-D_1erLrE.js → widget-image-C3143nmQ.js} +6 -5
- package/dist/{widget-line-BwnSq4--.js → widget-line-B3FO96uu.js} +4 -4
- package/dist/{widget-pagination-DZMwe14i.js → widget-pagination-Su-wNAqe.js} +5 -5
- package/dist/{widget-power-DfV-8moi.js → widget-power-DLbxegjB.js} +3 -3
- package/dist/{widget-qrcode-C3yTAHOn.js → widget-qrcode-BC2Eyf9h.js} +3 -3
- package/dist/{widget-rangelimit-DK8hANd1.js → widget-rangelimit-iuZswyH3.js} +3 -3
- package/dist/{widget-serialnumber-B2pkh6KT.js → widget-serialnumber-BqZm6cQQ.js} +1 -1
- package/dist/{widget-text-98SaLOpt.js → widget-text-DSAv-liE.js} +5 -5
- package/dist/{widget-timediff-OD7HVoVr.js → widget-timediff-CD8Jrx8s.js} +2 -2
- package/package.json +16 -6
- package/dist/agg-design-BO3eBkol.js +0 -24
- package/dist/agg-props-DEXapyb8.js +0 -10
- package/dist/agg-style-CDLpFoBn.js +0 -33
- package/dist/attach-fields-editor-DXh9f5iy.js +0 -116
- package/dist/base-font-editor-Ccv90UWY.js +0 -179
- package/dist/boolean-design-D1BIjOGz.js +0 -124
- package/dist/boolean-props-Cqb1zZfy.js +0 -155
- package/dist/boolean-style-C2uaO_Ei.js +0 -108
- package/dist/cell-upload-xzz2ufK7.js +0 -35
- package/dist/date-range-editor-D0SCmmS0.js +0 -472
- package/dist/date-time-design-pv0mRSgV.js +0 -64
- package/dist/date-time-props-B0YQO-ig.js +0 -105
- package/dist/date-time-style-Dn4TErcH.js +0 -33
- package/dist/decimal-design-BMKikWwr.js +0 -29
- package/dist/decimal-display-mode-BLrn-r-H.js +0 -60
- package/dist/decimal-props-BXVnDByV.js +0 -313
- package/dist/decimal-style-C5hB5sv6.js +0 -33
- package/dist/default-value-editor.vue_vue_type_script_setup_true_name_default-value-editor_lang-LcZ8lvPF.js +0 -370
- package/dist/double-design-5yOxs5xB.js +0 -28
- package/dist/double-props-CQ9yBXNl.js +0 -91
- package/dist/double-style-C01aPXrT.js +0 -33
- package/dist/enum-design-DewhmfeF.js +0 -97
- package/dist/enum-props-0ECHvFUr.js +0 -734
- package/dist/enum-style-fm5Ap8eG.js +0 -76
- package/dist/expression-design-BY6oI5EW.js +0 -24
- package/dist/expression-props-3OvDgw-p.js +0 -10
- package/dist/expression-style-Hhv8wnAe.js +0 -33
- package/dist/file-design-QE5qUMix.js +0 -17
- package/dist/file-props-CEGee5yo.js +0 -201
- package/dist/file-style-65tfxL94.js +0 -9
- package/dist/image-design-BoQOLCEL.js +0 -23
- package/dist/image-props-GuHBNt9S.js +0 -16
- package/dist/image-style-BLQukPqV.js +0 -9
- package/dist/index-CBYXYocJ.js +0 -40
- package/dist/index-DI8vltuS.js +0 -68
- package/dist/integer-design-C8kRP1tV.js +0 -28
- package/dist/integer-props-XICS-8Qt.js +0 -162
- package/dist/integer-style-BstrlNJp.js +0 -33
- package/dist/number-input-ex-BjIp4mym.js +0 -69
- package/dist/org-design-DWZI8xev.js +0 -24
- package/dist/org-props-0CY6-hLS.js +0 -96
- package/dist/org-style-HDV7obSe.js +0 -33
- package/dist/paper-widget-design-CT80i7VR.js +0 -4
- package/dist/ref-autofill-editor-CObqr_xh.js +0 -2376
- package/dist/ref-design-BQ8o1gKm.js +0 -24
- package/dist/ref-props-xjVvnvGW.js +0 -348
- package/dist/ref-style-MZ52QRhu.js +0 -33
- package/dist/regex-editor-BctX8jdd.js +0 -823
- package/dist/select-render-type-editor.vue_vue_type_script_setup_true_lang-CONYLCmt.js +0 -159
- package/dist/signature-design-CFOFAaEu.js +0 -20
- package/dist/signature-props-N6ng9rqg.js +0 -346
- package/dist/signature-style-D2QQrgMT.js +0 -9
- package/dist/src/nocode-base/src/hooks/material-date/material-date.d.ts +0 -44
- package/dist/src/nocode-base/src/hooks/material-date/service.d.ts +0 -4
- package/dist/src/nocode-base/src/hooks/material-date/use-material-date.d.ts +0 -2
- package/dist/text-design-CCs-p8Y3.js +0 -39
- package/dist/text-props-C6-s7LBP.js +0 -447
- package/dist/text-style-OUxV8LDu.js +0 -33
- package/dist/trace-design-Bhg0EIyC.js +0 -77
- package/dist/trace-props-DVekq4wE.js +0 -624
- package/dist/trace-style-CfSu__TO.js +0 -33
- package/dist/user-design-fMF_h4IG.js +0 -24
- package/dist/user-props-BGjEpC4j.js +0 -103
- package/dist/user-style-RUHIGWFF.js +0 -33
package/dist/base/index.es.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { M as MaterialConsumptionPatternEnum,
|
|
4
|
-
import { B as B2,
|
|
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
|
|
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.
|
|
195
|
-
Object.values(this.tableControllers).map((
|
|
194
|
+
const results = await Promise.all(
|
|
195
|
+
Object.values(this.tableControllers).map((c2) => c2.submitValidate())
|
|
196
196
|
);
|
|
197
|
-
const
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
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
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
|
543
|
+
function mapInventoryIdentity(record, warehouseSummary) {
|
|
544
|
+
if (!warehouseSummary) {
|
|
545
|
+
return { [F$5.inventory]: record.id_ };
|
|
546
|
+
}
|
|
455
547
|
return {
|
|
456
|
-
|
|
457
|
-
[F$
|
|
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
|
|
462
|
-
const [first] = items;
|
|
552
|
+
function mapInventoryRecordToRow(record, warehouseSummary) {
|
|
463
553
|
return {
|
|
464
|
-
...pickInventoryBase(
|
|
465
|
-
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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,
|
|
539
|
-
|
|
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:
|
|
554
|
-
bsKey:
|
|
555
|
-
modelKey:
|
|
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
|
-
|
|
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$
|
|
570
|
-
const rowBatch = row[F$
|
|
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$
|
|
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$
|
|
660
|
+
if ((row[F$5.warehouse] ?? "") !== (record.warehouse_id_ ?? "")) return false;
|
|
579
661
|
if (!groupByWarehouse) {
|
|
580
|
-
if ((row[F$
|
|
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
|
-
|
|
587
|
-
[F$
|
|
588
|
-
[F$
|
|
589
|
-
[F$
|
|
590
|
-
[F$
|
|
591
|
-
[F$
|
|
592
|
-
[F$
|
|
593
|
-
[F$
|
|
594
|
-
[F$
|
|
595
|
-
[F$
|
|
596
|
-
[F$
|
|
597
|
-
[F$
|
|
598
|
-
[F$
|
|
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$
|
|
687
|
+
row[F$5.validity] = toDateOnly(parsed.expiration);
|
|
604
688
|
} else if (validityFromRecord != null) {
|
|
605
|
-
row[F$
|
|
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
|
|
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$
|
|
643
|
-
if (!Object.values(F$
|
|
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$
|
|
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$
|
|
744
|
+
if (field === F$5.location && rowData[F$5.inventoryLocationIds]) {
|
|
658
745
|
return {
|
|
659
|
-
"id_.in": rowData[F$
|
|
746
|
+
"id_.in": rowData[F$5.inventoryLocationIds]
|
|
660
747
|
};
|
|
661
748
|
}
|
|
662
|
-
if (field === F$
|
|
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$
|
|
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({
|
|
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$
|
|
730
|
-
for (const { optionField, toField } of
|
|
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$
|
|
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$
|
|
772
|
-
existRow[F$
|
|
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(
|
|
875
|
+
const row = buildInventoryScanRow(
|
|
876
|
+
selected,
|
|
877
|
+
parsed,
|
|
878
|
+
fillData,
|
|
879
|
+
stocktakeQty,
|
|
880
|
+
this.isGroupByWarehouse
|
|
881
|
+
);
|
|
782
882
|
calcRowData(row);
|
|
783
|
-
this.
|
|
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$
|
|
797
|
-
[F$
|
|
798
|
-
[F$
|
|
799
|
-
[F$
|
|
800
|
-
[F$
|
|
801
|
-
[F$
|
|
802
|
-
[F$
|
|
803
|
-
[F$
|
|
804
|
-
[F$
|
|
805
|
-
[F$
|
|
806
|
-
[F$
|
|
807
|
-
[F$
|
|
808
|
-
[F$
|
|
809
|
-
[F$
|
|
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$
|
|
914
|
+
row[F$6.validity] = toDateOnly(parsed.expiration);
|
|
815
915
|
} else if (validityFromRecord != null) {
|
|
816
|
-
row[F$
|
|
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$
|
|
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$
|
|
951
|
+
if (field === F$6.location) {
|
|
852
952
|
return {
|
|
853
|
-
"warehouse_id_.eq": rowData[F$
|
|
953
|
+
"warehouse_id_.eq": rowData[F$6.warehouse]
|
|
854
954
|
};
|
|
855
955
|
}
|
|
856
|
-
if (field === F$
|
|
956
|
+
if (field === F$6.originLocation) {
|
|
857
957
|
return {
|
|
858
|
-
"warehouse_id_.eq": rowData[F$
|
|
958
|
+
"warehouse_id_.eq": rowData[F$6.originWarehouse]
|
|
859
959
|
};
|
|
860
960
|
}
|
|
861
|
-
if (field === F$
|
|
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$
|
|
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$
|
|
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.
|
|
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
|
|
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
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
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
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
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:
|
|
984
|
-
toField:
|
|
1083
|
+
optionField: F2.product,
|
|
1084
|
+
toField: F2.product
|
|
985
1085
|
},
|
|
986
1086
|
{
|
|
987
|
-
optionField:
|
|
988
|
-
toField:
|
|
1087
|
+
optionField: F2.productName,
|
|
1088
|
+
toField: F2.productName
|
|
989
1089
|
},
|
|
990
1090
|
{
|
|
991
|
-
optionField:
|
|
992
|
-
toField:
|
|
1091
|
+
optionField: F2.productCode,
|
|
1092
|
+
toField: F2.productCode
|
|
993
1093
|
},
|
|
994
1094
|
{
|
|
995
|
-
optionField:
|
|
996
|
-
toField:
|
|
1095
|
+
optionField: F2.productSpec,
|
|
1096
|
+
toField: F2.productSpec
|
|
997
1097
|
},
|
|
998
1098
|
{
|
|
999
|
-
optionField:
|
|
1000
|
-
toField:
|
|
1099
|
+
optionField: F2.mfgOrder,
|
|
1100
|
+
toField: F2.mfgOrder
|
|
1001
1101
|
},
|
|
1002
1102
|
{
|
|
1003
|
-
optionField:
|
|
1103
|
+
optionField: F2.mfgOrderCode,
|
|
1004
1104
|
//工单号
|
|
1005
|
-
toField:
|
|
1105
|
+
toField: F2.mfgOrderCode
|
|
1006
1106
|
},
|
|
1007
1107
|
{
|
|
1008
1108
|
optionField: "real_start_date_",
|
|
1009
1109
|
//生产日期
|
|
1010
|
-
toField:
|
|
1110
|
+
toField: F2.productionDate
|
|
1011
1111
|
},
|
|
1012
1112
|
{
|
|
1013
|
-
optionField:
|
|
1014
|
-
toField:
|
|
1113
|
+
optionField: F2.qty,
|
|
1114
|
+
toField: F2.qty
|
|
1015
1115
|
}
|
|
1016
1116
|
];
|
|
1017
|
-
function applyFillFromOption(
|
|
1018
|
-
const writableA =
|
|
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
|
|
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
|
-
[
|
|
1038
|
-
[
|
|
1039
|
-
[
|
|
1040
|
-
[
|
|
1041
|
-
[
|
|
1042
|
-
[
|
|
1043
|
-
[
|
|
1044
|
-
[
|
|
1045
|
-
[
|
|
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 ===
|
|
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 !==
|
|
1214
|
+
if (field !== F2.productionContainer) return;
|
|
1115
1215
|
const loader = async (loaderParams) => {
|
|
1116
|
-
const { mode, queryData = {},
|
|
1117
|
-
|
|
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
|
|
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 !==
|
|
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.
|
|
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 = {},
|
|
1221
|
-
|
|
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
|
|
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$
|
|
1393
|
-
[F$
|
|
1394
|
-
[F$
|
|
1395
|
-
[F$
|
|
1396
|
-
[F$
|
|
1397
|
-
[F$
|
|
1398
|
-
[F$
|
|
1399
|
-
[F$
|
|
1400
|
-
[F$
|
|
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$
|
|
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$
|
|
1473
|
+
[F$7.materialContainerNo]: record.material_no_,
|
|
1409
1474
|
[MATERIAL_CONTAINER_ID]: record.production_identification_id_,
|
|
1410
|
-
[F$
|
|
1411
|
-
[F$
|
|
1412
|
-
[F$
|
|
1413
|
-
[F$
|
|
1414
|
-
[F$
|
|
1415
|
-
[F$
|
|
1416
|
-
[F$
|
|
1417
|
-
[F$
|
|
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$
|
|
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$
|
|
1473
|
-
if (field === F$
|
|
1474
|
-
if (field === F$
|
|
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$
|
|
1546
|
+
if (field === F$7.mfgOrder) {
|
|
1482
1547
|
applyFillFromMfgOrderOption(rowData, source);
|
|
1483
1548
|
return;
|
|
1484
1549
|
}
|
|
1485
|
-
if (field === F$
|
|
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$
|
|
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.
|
|
1573
|
+
this.appendOrFillScanRow(row);
|
|
1509
1574
|
}
|
|
1510
1575
|
}
|
|
1511
1576
|
function buildWarehouseInScanRow(record, parsed, fillData) {
|
|
1512
1577
|
const row = {
|
|
1513
|
-
[F$
|
|
1514
|
-
[F$
|
|
1515
|
-
[F$
|
|
1516
|
-
[F$
|
|
1517
|
-
[F$
|
|
1518
|
-
[F$
|
|
1519
|
-
[F$
|
|
1520
|
-
[F$
|
|
1521
|
-
[F$
|
|
1522
|
-
[F$
|
|
1523
|
-
[F$
|
|
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$
|
|
1528
|
-
row[F$
|
|
1529
|
-
} else if (validityFromRecord != null && row[F$
|
|
1530
|
-
row[F$
|
|
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.
|
|
1694
|
+
this.appendOrFillScanRow(row);
|
|
1576
1695
|
}
|
|
1577
1696
|
}
|
|
1578
1697
|
function isSameMaterialBatch(row, record) {
|
|
1579
|
-
if (row[F$
|
|
1580
|
-
const rowBatchId = row[F$
|
|
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$
|
|
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$
|
|
1590
|
-
[F$
|
|
1591
|
-
[F$
|
|
1592
|
-
[F$
|
|
1593
|
-
[F$
|
|
1594
|
-
[F$
|
|
1595
|
-
[F$
|
|
1596
|
-
[F$
|
|
1597
|
-
[F$
|
|
1598
|
-
[F$
|
|
1599
|
-
[F$
|
|
1600
|
-
[F$
|
|
1601
|
-
[F$
|
|
1602
|
-
[F$
|
|
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$
|
|
1726
|
+
row[F$9.validity] = toDateOnly(parsed.expiration);
|
|
1608
1727
|
} else if (validityFromRecord != null) {
|
|
1609
|
-
row[F$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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.
|
|
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,
|
|
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((
|
|
2456
|
-
const sameMessages = sameLocations && nextLocations.every((
|
|
2457
|
-
const
|
|
2458
|
-
const b2 = map[
|
|
2459
|
-
return JSON.stringify(
|
|
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
|
|
2537
|
-
|
|
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 (
|
|
2542
|
-
const
|
|
2543
|
-
|
|
2544
|
-
fields
|
|
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
|
-
|
|
2548
|
-
const current = {
|
|
2775
|
+
applyValidatorComments(uniqueId, {
|
|
2549
2776
|
...info?.validatorMessageMap ?? {},
|
|
2550
|
-
...
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
3323
|
-
if (!existingIds.has(
|
|
3324
|
-
const rid = `${
|
|
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
|
-
|
|
3742
|
+
aJ as AITooltips,
|
|
3509
3743
|
AllocateTableCore,
|
|
3510
3744
|
B3 as BaseFormModelFetcher,
|
|
3511
|
-
|
|
3512
|
-
|
|
3513
|
-
|
|
3745
|
+
aL as BinarizeMethodOptions,
|
|
3746
|
+
b0 as BindCmpStyleEnum,
|
|
3747
|
+
$ as BooleanShowMode,
|
|
3514
3748
|
B2 as BorderTD,
|
|
3515
3749
|
BpmnNodeTypeEnum,
|
|
3516
|
-
|
|
3517
|
-
|
|
3750
|
+
ci as BpmnSignatureTypeEnum,
|
|
3751
|
+
cj as ButtonTypeEnum,
|
|
3518
3752
|
B as BwipCodeType,
|
|
3519
|
-
|
|
3520
|
-
|
|
3521
|
-
|
|
3753
|
+
ck as CHECK_TABLE_MEDPRO_PROTOCOL_KEY,
|
|
3754
|
+
x as CellType,
|
|
3755
|
+
ab as CellWidgetViewState,
|
|
3522
3756
|
CheckDsTypeEnum,
|
|
3523
|
-
|
|
3757
|
+
cl as CodeRunner,
|
|
3524
3758
|
ComponentTypeEnum,
|
|
3525
|
-
|
|
3526
|
-
|
|
3527
|
-
|
|
3528
|
-
|
|
3529
|
-
|
|
3530
|
-
|
|
3531
|
-
|
|
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
|
-
|
|
3769
|
+
aI as DeviceParamsTypeTitle,
|
|
3534
3770
|
DevicePartConsumeTableCore,
|
|
3535
|
-
|
|
3536
|
-
|
|
3537
|
-
|
|
3538
|
-
|
|
3539
|
-
|
|
3540
|
-
|
|
3541
|
-
|
|
3542
|
-
|
|
3543
|
-
|
|
3544
|
-
|
|
3545
|
-
|
|
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
|
-
|
|
3785
|
+
P2 as FixedQuickFillModal,
|
|
3548
3786
|
FormAnnotationController,
|
|
3549
|
-
|
|
3787
|
+
F as FormModelController,
|
|
3550
3788
|
FormTmplBomController,
|
|
3551
|
-
|
|
3789
|
+
Q as FormTmplConfigController,
|
|
3552
3790
|
FormTypeEnum,
|
|
3553
|
-
|
|
3791
|
+
av as ImageDisplayModeEnum,
|
|
3554
3792
|
I as InstanceStatusValues,
|
|
3555
|
-
|
|
3556
|
-
|
|
3557
|
-
|
|
3793
|
+
aN as JoinModelTypeEum,
|
|
3794
|
+
_ as LabelPosition,
|
|
3795
|
+
ae as LineDirection,
|
|
3558
3796
|
L as LineType,
|
|
3559
|
-
|
|
3560
|
-
|
|
3561
|
-
|
|
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
|
-
|
|
3804
|
+
cs as MobileFillTypeEnum,
|
|
3567
3805
|
NCB_PROVIDE,
|
|
3568
|
-
|
|
3569
|
-
|
|
3806
|
+
U as OCR_MODEL_PRECISION_ENUM_KEY,
|
|
3807
|
+
ct as OfficeTypeEnum,
|
|
3570
3808
|
O as Orientation,
|
|
3571
|
-
|
|
3809
|
+
o as PageSizeEnum,
|
|
3572
3810
|
P as PaginationFormat,
|
|
3573
|
-
|
|
3574
|
-
|
|
3575
|
-
|
|
3576
|
-
|
|
3811
|
+
a5 as PaperSizeMap,
|
|
3812
|
+
n as PaperWidgeType,
|
|
3813
|
+
M as PaperWidgeValueType,
|
|
3814
|
+
aM as ParamModelTypeEnum,
|
|
3577
3815
|
PartStocktakeTableCore,
|
|
3578
3816
|
PlatformEnum,
|
|
3579
|
-
|
|
3817
|
+
cu as PosEnum,
|
|
3580
3818
|
PretreatmentListTableCore,
|
|
3581
3819
|
ProfileDrivenSubTableCore,
|
|
3582
|
-
|
|
3583
|
-
|
|
3820
|
+
at as RangeCompareOp,
|
|
3821
|
+
as as RangeValidateMode,
|
|
3584
3822
|
RenderModeEnum,
|
|
3585
|
-
|
|
3586
|
-
|
|
3587
|
-
|
|
3588
|
-
|
|
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
|
-
|
|
3595
|
-
|
|
3596
|
-
|
|
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
|
-
|
|
3602
|
-
|
|
3603
|
-
|
|
3839
|
+
ad as WidgetImageSizeMode,
|
|
3840
|
+
cw as applyCheckDsDataToRuntime,
|
|
3841
|
+
e as applyConsumeObjectTraceChange,
|
|
3842
|
+
cx as applyMedProCheckDsDataToRuntime,
|
|
3604
3843
|
baseDataUtils,
|
|
3605
|
-
|
|
3606
|
-
|
|
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
|
-
|
|
3614
|
-
|
|
3855
|
+
cB as deleteSubtableRow,
|
|
3856
|
+
cC as detailsHaveFormChangeRowOps,
|
|
3615
3857
|
enrichFormChangeRowDetails,
|
|
3616
|
-
|
|
3858
|
+
cD as extractFormChangeRowDetails,
|
|
3617
3859
|
extractKeywordFromQueryData,
|
|
3618
|
-
|
|
3619
|
-
|
|
3860
|
+
cE as fetchCheckDsDataForTable,
|
|
3861
|
+
cF as fetchCustomCheckDsData,
|
|
3620
3862
|
fetchHistoryConsume,
|
|
3621
|
-
|
|
3863
|
+
cG as fetchMedProCheckDsData,
|
|
3864
|
+
f as fetchOperationReceiveQty,
|
|
3622
3865
|
filterAnnotationItemsUpToCurrent,
|
|
3623
|
-
getAppInfo,
|
|
3624
|
-
|
|
3625
|
-
|
|
3626
|
-
|
|
3627
|
-
|
|
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
|
-
|
|
3872
|
+
h as getObjectBomProductQuery,
|
|
3873
|
+
cK as getParseRuleConfig,
|
|
3630
3874
|
getParseRuleInfo,
|
|
3631
3875
|
getParseRuleValue,
|
|
3632
|
-
|
|
3633
|
-
|
|
3634
|
-
|
|
3635
|
-
|
|
3636
|
-
|
|
3637
|
-
|
|
3638
|
-
|
|
3639
|
-
|
|
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
|
-
|
|
3644
|
-
|
|
3645
|
-
|
|
3646
|
-
|
|
3647
|
-
|
|
3648
|
-
|
|
3649
|
-
|
|
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
|
-
|
|
3652
|
-
|
|
3653
|
-
|
|
3654
|
-
|
|
3655
|
-
|
|
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
|
-
|
|
3904
|
+
d0 as relocateDeletedRowsToEnd,
|
|
3658
3905
|
renderUtils,
|
|
3659
3906
|
requestDisplayValidation,
|
|
3660
3907
|
requestFullValidation,
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
|
|
3664
|
-
|
|
3665
|
-
|
|
3666
|
-
|
|
3667
|
-
|
|
3668
|
-
|
|
3669
|
-
|
|
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
|
-
|
|
3672
|
-
|
|
3922
|
+
aO as sqlUtils,
|
|
3923
|
+
d7 as stockCheck,
|
|
3673
3924
|
transformUtils,
|
|
3674
3925
|
unregisterValidationContext,
|
|
3675
|
-
|
|
3676
|
-
|
|
3677
|
-
|
|
3926
|
+
N as useCalculateFormula,
|
|
3927
|
+
b3 as useCurrentPageFormState,
|
|
3928
|
+
bg as useDependency,
|
|
3678
3929
|
useEbrWikiFactoryV2,
|
|
3679
|
-
|
|
3680
|
-
|
|
3930
|
+
u2 as useFormModel,
|
|
3931
|
+
u as useFormTmplConfig,
|
|
3681
3932
|
useFormulaExpWatcher,
|
|
3682
3933
|
useMaterialBalance,
|
|
3683
3934
|
useNocodeEmitter,
|
|
3684
|
-
|
|
3685
|
-
|
|
3686
|
-
|
|
3935
|
+
a$ as useNocodeFormWidget,
|
|
3936
|
+
d8 as useOnlineFormActionButton,
|
|
3937
|
+
be as useOnlineFormTransformField2Component,
|
|
3687
3938
|
useRenderPageFactory,
|
|
3688
|
-
|
|
3939
|
+
j as useStyles,
|
|
3689
3940
|
a as useTmplBom,
|
|
3690
|
-
|
|
3691
|
-
|
|
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
|
};
|