@gct-paas/excel 0.1.40-beta.3 → 0.1.40-beta.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -4
- package/dist/{BaseComponent-B9o59n-h.js → BaseComponent-EzX32ZdY.js} +2 -2
- package/dist/{VueVideoPlayer-CAWYWBHi.js → VueVideoPlayer-BuuQaqyI.js} +2 -2
- package/dist/{align-editor-a4DQt4Un.js → align-editor-DWHHVeY1.js} +1 -1
- package/dist/{barcode-design-CBqUEPYu.js → barcode-design-B0WcJSEI.js} +2 -2
- package/dist/base/index.es.js +742 -306
- package/dist/{diagonal-design-u23896Ky.js → diagonal-design-D6uOJZmP.js} +2 -2
- package/dist/{dynamic-table-action-BWI4Gaqi.js → dynamic-table-action-D-ub6KoK.js} +1316 -502
- package/dist/{dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BvrrN6te.js → dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BCLE4joQ.js} +3076 -1680
- package/dist/{edit.utils-CXmmCnxE-XxpC8ALV.js → edit.utils-CXmmCnxE-CXdATd1V.js} +1 -1
- package/dist/excel.css +6292 -5112
- package/dist/{exceljs.min-DfbB110X.js → exceljs.min-BXhhaToT.js} +2 -2
- package/dist/{font-editor-BtSCLMrM.js → font-editor-_HTdKFX6.js} +3 -3
- package/dist/{image-design-CtE-Lw7N.js → image-design-4Ee8rZqa.js} +3 -8
- package/dist/{index-I1r5pfu5.js → index-7AmrbQlC.js} +2 -2
- package/dist/{index-IVc1dOet.js → index-8ZnBcx1k.js} +6 -5
- package/dist/{index-CYLAVQfT.js → index-B4LuUmbW.js} +2 -2
- package/dist/{index-BFg5eUdY.js → index-BCCIwSnM.js} +1 -1
- package/dist/{index-BMoz_QhA.js → index-BHJxBByd.js} +1 -1
- package/dist/{index-Bc61F6Hm.js → index-BLf1U1A9.js} +5 -7
- package/dist/{index-DVEe11uM.js → index-BYq7x5n6.js} +1 -1
- package/dist/{index-BfBuxgcp.js → index-B_DPnVrC.js} +2 -2
- package/dist/{index-CL9K9orM.js → index-Bbyb-owd.js} +6 -3
- package/dist/{index-3WwCV4xR.js → index-BlMiHVOC.js} +1 -1
- package/dist/{index-BKXb3VJc.js → index-BnOOLcX1.js} +2 -2
- package/dist/{index-B0cdcIWq.js → index-Bnt54Sc6.js} +2 -2
- package/dist/{index-Dyomjz3y.js → index-CH_C9ijO.js} +2 -2
- package/dist/{index-aNV9T6LI.js → index-CMdXdyvs.js} +2 -2
- package/dist/{index-CdHVHaxO.js → index-CQ0_Kx1_.js} +2 -2
- package/dist/{index-DdWefZMa.js → index-Cb7Fh_E2.js} +2 -2
- package/dist/{index-Bnb70qEi.js → index-CtVFTmHZ.js} +3 -3
- package/dist/{index-CPTGioxl.js → index-D3KiKYMR.js} +1 -1
- package/dist/{index-BRQkrFQ9.js → index-D87CVHA-.js} +2 -2
- package/dist/{index-BGAcYDx-.js → index-DM0OEvdI.js} +1 -1
- package/dist/{index-Ca9TLzUh.js → index-DPTR_QJn.js} +1 -1
- package/dist/{index-CAdDeEzJ.js → index-DVzaxa5k.js} +2 -2
- package/dist/{index-BP-LhXXV.js → index-DcXbL-0o.js} +6 -5
- package/dist/{index-CIa37rQm.js → index-Dn0qfALy.js} +3 -2
- package/dist/{index-CVsoaxTR.js → index-Dnz3YPDV.js} +2 -2
- package/dist/{index-BC8hQ4vo.js → index-DoWp9uDw.js} +2 -2
- package/dist/{index-CeEhYXl9.js → index-Dstr-PNj.js} +2 -2
- package/dist/{index-9S48hpoJ.js → index-DzqaKW6e.js} +2 -2
- package/dist/{index-ixQwAcB1.js → index-GoAXo3fT.js} +37707 -30077
- package/dist/{index-731OYkrc.js → index-Jy2tofdo.js} +3 -3
- package/dist/{index-7aS5L4ot.js → index-KRo2-iQv.js} +6 -3
- package/dist/{index-CpPk8P3L.js → index-KuhYPy5i.js} +1 -1
- package/dist/{index-DNj0vFvx.js → index-YlEOHde0.js} +1 -1
- package/dist/{index-51LtNdZ2.js → index-toqlO_-B.js} +1 -1
- package/dist/index.es.js +50 -46
- package/dist/{online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-CRyGHP7k.js → online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-DAAF0eOB.js} +33 -3
- package/dist/{pagination-design-CmbsdlMe.js → pagination-design-DANnqQdI.js} +2 -2
- package/dist/paper-widget-design-BrE7Bb4V.js +4 -0
- package/dist/{print-runtime-instance-DQysbz5n.js → print-runtime-instance-PabaORE2.js} +1 -1
- package/dist/{print-snapshot-renderer-DWHjMsOC.js → print-snapshot-renderer-DQr2G7Hv.js} +3 -3
- package/dist/{qrcode-design-CX0_2mLC.js → qrcode-design-BEA1JchI.js} +1 -1
- package/dist/{revo-grid.entry-DbmWFi7p.js → revo-grid.entry-Bj-4xHie.js} +1 -1
- package/dist/{revogr-attribution_7.entry-BWQDu7fq.js → revogr-attribution_7.entry-NvaozwYj.js} +3 -3
- package/dist/{revogr-clipboard_3.entry-BtTYHFZi.js → revogr-clipboard_3.entry-CkRbECsx.js} +2 -2
- package/dist/{revogr-data_4.entry-CWPXyZ7g.js → revogr-data_4.entry-Dbbd8Mpz.js} +2 -2
- package/dist/{revogr-filter-panel.entry-5gYct0XI.js → revogr-filter-panel.entry-lcMbXUNb.js} +1 -1
- package/dist/seal-design-CX-ZxOn3.js +4 -0
- package/dist/{serialnumber-design-aSqL4gX6.js → serialnumber-design-B608oYcy.js} +1 -1
- package/dist/shared/index.es.js +30 -27
- package/dist/{single-field-drop-C67wLHxK.js → single-field-drop-CkUP3H7u.js} +2 -3
- package/dist/{size-editor-BHGTPLir.js → size-editor-Bl-lUcdU.js} +1 -1
- package/dist/src/adapter/adapter.d.ts +1 -1
- package/dist/src/adapter/index.d.ts +2 -0
- package/dist/src/adapter/web/inventory-scan-columns.d.ts +6 -0
- package/dist/src/{nocode-web-render/src/render/sub-table/material-balance/mb-web-render.d.ts → adapter/web/material-balance-render.d.ts} +1 -1
- package/dist/src/{nocode-web-render/src/render/sub-table/material-balance → adapter/web}/material-consume-modal.vue.d.ts +1 -1
- package/dist/src/adapter/web/material-consume-render.d.ts +25 -0
- package/dist/src/{nocode-web-render/src/render/common → adapter/web}/open-util.d.ts +1 -1
- package/dist/src/{nocode-web-render/src/render/sub-table/stocktake/stocktake-web-render.d.ts → adapter/web/stocktake-render.d.ts} +2 -2
- package/dist/src/{nocode-web-render/src/render/sub-table/common → adapter/web}/sub-table-render.d.ts +2 -5
- package/dist/src/domain/document-business/business/product-release/profile.d.ts +2 -0
- package/dist/src/domain/document-business/business/product-release/service.d.ts +2 -0
- package/dist/src/domain/document-business/index.d.ts +2 -0
- package/dist/src/domain/document-business/registry.d.ts +2 -0
- package/dist/src/domain/document-business/runtime/field-query-runtime.d.ts +4 -0
- package/dist/src/domain/document-business/types.d.ts +24 -0
- package/dist/src/domain/field/number/product-release-qty-manifest.d.ts +2 -0
- package/dist/src/domain/field/query-filter.d.ts +15 -0
- package/dist/src/domain/table/business/material/material-balance/profile/fields.d.ts +2 -0
- package/dist/src/domain/table/business/material/material-consume/profile/fields.d.ts +2 -0
- package/dist/src/domain/table/business/material/material-substitution/profile/field-keys.d.ts +25 -10
- package/dist/src/domain/table/business/material/material-substitution/runtime/row-change-handlers.d.ts +4 -0
- package/dist/src/domain/table/business/material/material-substitution/runtime/select-loaders.d.ts +8 -0
- package/dist/src/domain/table/business/preprocess/pretreatment-list/profile/field-keys.d.ts +1 -7
- package/dist/src/domain/table/business/sterilize/entrust-steril-batch-list/profile/fields.d.ts +2 -0
- package/dist/src/domain/table/business/warehouse/shared/autofill-source-labels.d.ts +19 -0
- package/dist/src/domain/table/design/autofill-expander.d.ts +2 -0
- package/dist/src/domain/table/design/hooks/on-field-attach.d.ts +6 -0
- package/dist/src/domain/table/index.d.ts +1 -1
- package/dist/src/domain/table/types.d.ts +2 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/nocode-base/src/components/document-sub-table-action/dynamic-table-action.vue.d.ts +0 -2
- package/dist/src/nocode-base/src/components/document-sub-table-action/sub-table-action.vue.d.ts +0 -3
- package/dist/src/nocode-base/src/components/document-sub-table-action/type.d.ts +0 -4
- package/dist/src/nocode-base/src/components/material-consume/types.d.ts +1 -5
- package/dist/src/nocode-base/src/core/factory/sub-table-factory.d.ts +2 -0
- package/dist/src/nocode-base/src/core/sub-table/allocate-table-core.d.ts +2 -1
- package/dist/src/nocode-base/src/core/sub-table/profile-driven-sub-table-core.d.ts +3 -3
- package/dist/src/nocode-base/src/core/sub-table/sub-table-core.d.ts +2 -5
- package/dist/src/nocode-base/src/hooks/form-model/form-model-controller.d.ts +2 -0
- package/dist/src/nocode-base/src/hooks/inspection-module-qty.d.ts +4 -0
- package/dist/src/nocode-base/src/hooks/material-consume/bom-validator.d.ts +2 -2
- package/dist/src/nocode-base/src/hooks/material-consume/material-consume-table-controller.d.ts +18 -20
- package/dist/src/nocode-base/src/hooks/material-consume/mc-render.d.ts +1 -28
- package/dist/src/nocode-base/src/hooks/material-consume/tmpl-bom-controller.d.ts +20 -7
- package/dist/src/nocode-base/src/hooks/material-consume/types.d.ts +2 -0
- package/dist/src/nocode-base/src/hooks/material-consume-object/bom-validator.d.ts +4 -3
- package/dist/src/nocode-base/src/hooks/material-consume-object/initialize-autofill.d.ts +19 -0
- package/dist/src/nocode-base/src/hooks/material-consume-object/object-validation-controller.d.ts +24 -0
- package/dist/src/nocode-base/src/hooks/render-page/initialize-runtime.d.ts +9 -8
- package/dist/src/nocode-base/src/hooks/render-page/sterilization-date.d.ts +1 -1
- package/dist/src/nocode-base/src/hooks/render-page/types.d.ts +4 -1
- package/dist/src/nocode-base/src/hooks/useRenderPageFactory.d.ts +10 -6
- package/dist/src/nocode-base/src/hooks/validation/createValidateFactory.d.ts +1 -0
- package/dist/src/nocode-base/src/interface/ref-loader.d.ts +12 -1
- package/dist/src/nocode-base/src/interface/render.d.ts +4 -1
- package/dist/src/nocode-base/src/interface/transform.d.ts +17 -1
- package/dist/src/nocode-base/src/runtime/designer-default-values.d.ts +23 -0
- package/dist/src/nocode-base/src/runtime/formula-utils.d.ts +2 -0
- package/dist/src/nocode-base/src/runtime/multi-sheet-runtime.d.ts +3 -1
- package/dist/src/nocode-base/src/runtime/runtime-context.d.ts +4 -0
- package/dist/src/nocode-base/src/runtime/runtime-default-value-validation.d.ts +23 -0
- package/dist/src/nocode-base/src/runtime/runtime-field-initializer.d.ts +1 -0
- package/dist/src/nocode-base/src/runtime/runtime-form-state-store.d.ts +6 -2
- package/dist/src/nocode-base/src/runtime/runtime-instance-registry.d.ts +3 -0
- package/dist/src/nocode-base/src/runtime/table-row-identity.d.ts +2 -0
- package/dist/src/nocode-base/src/types/common/base.d.ts +6 -2
- package/dist/src/nocode-base/src/types/render/mc-render.d.ts +2 -15
- package/dist/src/nocode-base/src/types/render/sub-table-render.d.ts +5 -11
- package/dist/src/online-form/src/views/__cell_widgets__/cell-widget-design.vue.d.ts +2 -0
- package/dist/src/online-form/src/views/__cell_widgets__/common/default-value-rdo-editor/base-vxe-table.vue.d.ts +1 -1
- package/dist/src/online-form/src/views/__cell_widgets__/common/default-value-rdo-editor/default-value-rdo-editor.vue.d.ts +4 -4
- package/dist/src/online-form/src/views/__cell_widgets__/common/default-value-rdo-editor/rdo-table-dropdown.vue.d.ts +3 -3
- package/dist/src/online-form/src/views/__cell_widgets__/common/display-fields-editor/display-fields.util.d.ts +2 -2
- package/dist/src/online-form/src/views/__cell_widgets__/common/quick-search-editor/quick-search.util.d.ts +8 -0
- package/dist/src/online-form/src/views/__cell_widgets__/fake-field/fake-option-select.vue.d.ts +1 -0
- package/dist/src/online-form/src/views/designer/constants/index.d.ts +1 -0
- package/dist/src/online-form/src/views/designer/conversions/normalize-paper-grid.d.ts +3 -0
- package/dist/src/online-form/src/views/designer/hooks/useAllSpreadSheets.d.ts +23 -0
- package/dist/src/online-form/src/views/designer/hooks/useSpreadSheet.d.ts +11 -3
- package/dist/src/online-form/src/views/designer/modules/base/designer-wrapper.vue.d.ts +1 -0
- package/dist/src/{nocode-web-render/src/components/print-fill-background-selector.vue.d.ts → online-form/src/views/designer/modules/duplicate-field-notice.vue.d.ts} +1 -1
- package/dist/src/online-form/src/views/designer/modules/panel/panel-data-init-config/object-init/hooks/useObjectInit.d.ts +1 -0
- package/dist/src/{nocode-web-render/src/render/parse-rule → online-form/src/views/designer/modules/panel/sub-table/comps}/add-rule-btn.vue.d.ts +1 -1
- package/dist/src/online-form/src/views/designer/modules/panel/sub-table/comps/use-dynamic-sub-table-panel.d.ts +6 -0
- package/dist/src/online-form/src/views/designer/modules/panel/sub-table/panel-check-table/select-check-ds-modal.vue.d.ts +3 -3
- package/dist/src/{nocode-web-render/src/render/sub-table/material-consume/bom-modal.vue.d.ts → online-form/src/views/designer/modules/xlsx-import-summary.vue.d.ts} +7 -7
- package/dist/src/online-form/src/views/designer/types/index.d.ts +3 -1
- package/dist/src/online-form/src/views/designer/types/sheets.d.ts +2 -0
- package/dist/src/online-form/src/views/designer/utils/cell-field-placements.d.ts +12 -0
- package/dist/src/online-form/src/views/designer/utils/placed-fields.d.ts +9 -0
- package/dist/src/online-form/src/views/designer/utils/template-placed-fields.d.ts +7 -0
- package/dist/src/online-form/src/views/designer/utils/xlsx-parser.d.ts +9 -3
- package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-auto-complete.vue.d.ts +2 -2
- package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-date-picker.vue.d.ts +2 -2
- package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-text-input.vue.d.ts +2 -2
- package/dist/src/online-form/src/views/render/__components__/_field_/_base_/cell/cell-textarea.vue.d.ts +2 -2
- package/dist/src/online-form/src/views/render/__components__/_field_/seal/component/seal-floating-field.vue.d.ts +0 -1
- package/dist/src/online-form/src/views/render/__components__/_field_/seal/component/seal-runtime-layer.vue.d.ts +0 -1
- package/dist/src/online-form/src/views/render/__components__/_field_/seal/component/use-seal-stamp.d.ts +1 -4
- package/dist/src/online-form/src/views/render/__components__/_field_/trace/common/base-vxe-table.vue.d.ts +1 -1
- package/dist/src/online-form/src/views/render/__components__/_field_/trace/composables/useReferenceLabel.d.ts +4 -0
- package/dist/src/shared/components/ColorPicker/src/ColorPicker.vue.d.ts +1 -1
- package/dist/src/shared/components/Signature/logic/index.d.ts +14 -0
- package/dist/src/shared/enum/field-type.d.ts +10 -3
- package/dist/src/shared/enum/index.d.ts +2 -0
- package/dist/src/shared/enum/product-type.d.ts +9 -0
- package/dist/src/shared/enum/production-identification.d.ts +19 -0
- package/dist/src/{nocode-web-render/src → shared}/hooks/useWebUpload.d.ts +1 -1
- package/dist/src/shared/index.d.ts +1 -0
- package/dist/src/shared/types/index.d.ts +1 -0
- package/dist/src/shared/types/upload.d.ts +11 -0
- package/dist/src/shared/utils/cell-wrap.d.ts +9 -0
- package/dist/src/shared/utils/grid-size.d.ts +2 -0
- package/dist/src/shared/utils/lot2sn.d.ts +14 -1
- package/dist/src/shared/utils/query-filter.d.ts +24 -0
- package/dist/src/shared/utils/withRequestCache.d.ts +27 -0
- package/dist/{sub-table-factory-DTtDvr17.js → sub-table-factory-GzYKYE9t.js} +230 -156
- package/dist/{text-design-Dz0Qf2O3.js → text-design-V3TQuLps.js} +5 -4
- package/dist/{throttle-Cpk1LoGk-CgtsG2CV.js → throttle-Cpk1LoGk-CFMeLNb-.js} +1 -1
- package/dist/{timediff-design-D9JfNqH8.js → timediff-design-DRum3zZt.js} +1 -1
- package/dist/{trace-like-wrapper-BXgr0Uv3.js → trace-like-wrapper-D1Gzs1mF.js} +5 -2
- package/dist/{value-editor.vue_vue_type_style_index_0_lang-doohzADY.js → value-editor.vue_vue_type_style_index_0_lang-DoOuCca5.js} +2 -2
- package/dist/{widget-barcode-XF3nCU9v.js → widget-barcode-CNrl2NxY.js} +4 -4
- package/dist/{widget-diagonal-DSym7fks.js → widget-diagonal-CqjD1SwW.js} +3 -4
- package/dist/{widget-image-CmjwkVs7.js → widget-image-Xjl5W2Fp.js} +5 -7
- package/dist/{widget-line-BX64xVfU.js → widget-line-BUVVnwrU.js} +2 -2
- package/dist/{widget-pagination-BV89Lvjt.js → widget-pagination-DjMXWioI.js} +5 -5
- package/dist/{widget-power-DoSfQv92.js → widget-power-Dck9H8a9.js} +3 -4
- package/dist/{widget-qrcode-UGcRLC56.js → widget-qrcode-Cu8BwE24.js} +3 -3
- package/dist/{widget-rangelimit-CUHD__1H.js → widget-rangelimit-DLxebCKf.js} +3 -4
- package/dist/{widget-serialnumber-CAkZR5Xl.js → widget-serialnumber-DecFCGS0.js} +1 -1
- package/dist/{widget-text-DtYVTThu.js → widget-text-DV3yKKsx.js} +5 -5
- package/dist/{widget-timediff-DX_IoCMO.js → widget-timediff-BIwewJ39.js} +2 -2
- package/package.json +2 -6
- package/dist/AntdIcon-DCIaV352.js +0 -1108
- package/dist/index-DeHX7rte.js +0 -4306
- package/dist/mb-render-Bs9S9oFn.js +0 -270
- package/dist/paper-widget-design-DIhsk1I9.js +0 -4
- package/dist/seal-design-BhzgwVju.js +0 -4
- package/dist/src/nocode-web-render/src/hooks/index.d.ts +0 -2
- package/dist/src/nocode-web-render/src/hooks/userFormPrint.d.ts +0 -15
- package/dist/src/nocode-web-render/src/index.d.ts +0 -6
- package/dist/src/nocode-web-render/src/logic/index.d.ts +0 -1
- package/dist/src/nocode-web-render/src/render/common/index.d.ts +0 -2
- package/dist/src/nocode-web-render/src/render/common/modal-manager.d.ts +0 -20
- package/dist/src/nocode-web-render/src/render/index.d.ts +0 -10
- package/dist/src/nocode-web-render/src/render/parse-rule/index.d.ts +0 -3
- package/dist/src/nocode-web-render/src/render/parse-rule/parse-rule-modal.vue.d.ts +0 -15
- package/dist/src/nocode-web-render/src/render/sub-table/allocate/allocate-web-render.d.ts +0 -4
- package/dist/src/nocode-web-render/src/render/sub-table/allocate/index.d.ts +0 -1
- package/dist/src/nocode-web-render/src/render/sub-table/common/multi-rows-modal.vue.d.ts +0 -15
- package/dist/src/nocode-web-render/src/render/sub-table/common/scan-modal.vue.d.ts +0 -19
- package/dist/src/nocode-web-render/src/render/sub-table/index.d.ts +0 -3
- package/dist/src/nocode-web-render/src/render/sub-table/material-balance/index.d.ts +0 -1
- package/dist/src/nocode-web-render/src/render/sub-table/material-consume/index.d.ts +0 -4
- package/dist/src/nocode-web-render/src/render/sub-table/material-consume/mc-web-render.d.ts +0 -42
- package/dist/src/nocode-web-render/src/render/sub-table/stocktake/index.d.ts +0 -2
- package/dist/src/nocode-web-render/src/types/hooks/index.d.ts +0 -1
- package/dist/src/nocode-web-render/src/types/index.d.ts +0 -1
- package/dist/web-render/index.d.ts +0 -1
- package/dist/web-render/index.es.js +0 -596
- /package/dist/src/{nocode-web-render/src/adapter/index.d.ts → adapter/web/setup.d.ts} +0 -0
- /package/dist/src/{nocode-web-render/src/logic/utils.d.ts → adapter/web/upload.d.ts} +0 -0
package/dist/base/index.es.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { B as B2,
|
|
1
|
+
import { p as api, a4 as PlatformEnum, by as getRuntimeDataFieldId, F as FIELD_TYPE, bz as listRuntimeFieldRows, bm as getRowId, bn as findRuntimeTableRow, bl as parseRuntimeFieldPath, bA as buildRuntimeFieldPath, bo as RenderModeEnum, C as ComponentTypeEnum, aE as findFieldMain, c as getProfileByTableType, d as getBusinessProfileByRefModelType, b as isBusinessSubTableProfile, aA as RangeValidateMode, bB as isAttachFieldActive, aQ as Dependency_ENUM, aP as ASSIGNMENTSTRATEGY_ENUM, bC as fetchHistoryConsume, bD as isBomGranted, b3 as renderUtils, bx as uuid2, bE as parseFrontConfig, aT as CheckDsTypeEnum, aN as transformUtils, bF as DesignerDefaultValues, bG as baseDataUtils, a1 as FormTypeEnum, bH as normalizeToArray, M as getBusinessFieldKey, bI as safeParseArray, bJ as BpmnNodeTypeEnum, bK as mergeByMultiKey, ae as _export_sfc, bL as evaluateInspectionDecisionRule, bM as RuntimeDefaultValueValidation, bN as useNocodeEmitter, bO as commonUtils, aR as EntityModelCategoryEnum } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BCLE4joQ.js";
|
|
2
|
+
import { aW, aY, ba, a6, bP, bQ, B, bR, H, am, bS, bT, bU, bk, bV, a$, aF, aX, aU, aV, bW, an, ar, bX, bY, aO, a8, al, aG, aZ, a5, ap, L, bZ, b_, b$, O, t, P, ag, q, Y, K, c0, c1, aB, ab, a7, a9, aa, ac, h, c2, aq, au, ao, c3, c4, c5, c6, aJ, c7, c8, c9, ca, cb, cc, cd, ce, cf, cg, bp, ch, ci, b6, cj, bb, bc, ck, cl, cm, cn, co, cp, cq, cr, cs, ct, b5, cu, bd, aK, cv, cw, as, y, cx, a_, cy, cz, bq, b7 } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BCLE4joQ.js";
|
|
3
|
+
import { l as findFieldProfile, a6 as resolveRuntimeFieldProps, a7 as resolveRuntimeFieldState, a8 as assembleRules, S as calculateFormula, a9 as getRuntimeDependencyOutputKey, aa as isRowAddedInCurrentFormChange, ab as resolveFormulaData, g as getParseFormulaVarInfos, z as MaterialConsumptionPatternEnum, ac as MaterialConsumeTableController, ad as setFormulaParamsConfig, ae as normalizeRuntime, Y as createRuntimeInstanceContext, af as initializeSealFields, X as RuntimeFormStateStore, ag as RuntimeSheetService, ah as validateObjectBomQtyOnSubmit, ai as areValidationCommentsEqual, aj as closeValidatorPopovers, ak as enrichFormChangeRowDetails, R as NCB_PROVIDE, Z as RuntimeInstanceRegistry, al as useMaterialBalance, am as collectFormChangeFieldLocations, an as nextFormChangeRowViewHistoryId } from "../dynamic-table-action-D-ub6KoK.js";
|
|
4
|
+
import { ao as ao2, B as B2, ap as ap2, o, a5 as a52, aq as aq2, a3, ar as ar2, a4, J, as as as2, F, at, au as au2, av, aw, M, a, a0, ax, a1, d, ay, az, aA, aB as aB2, aC, aD, aE, aF as aF2, H as H2, aG as aG2, x, aH, e, aI, aJ as aJ2, aK as aK2, aL, w, I, aM, aN, aO as aO2, aP, p, K as K2, m, aQ, aR, aS, aT, aU as aU2, aV as aV2, aW as aW2, C, y as y2, aX as aX2, E, t as t2, aY as aY2, s, aZ as aZ2, U, V, u, k, G, W, r, v, T, q as q2, A } from "../dynamic-table-action-D-ub6KoK.js";
|
|
5
5
|
import { toRaw, watch, toRef, computed, defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, shallowRef, markRaw, ref, provide, onUnmounted, reactive, onBeforeUnmount } from "vue";
|
|
6
|
-
import { cloneDeep, defaults, isEmpty, merge, get } from "lodash-es";
|
|
6
|
+
import { isEqual, cloneDeep, defaults, isEmpty, merge, get } from "lodash-es";
|
|
7
7
|
import "dayjs";
|
|
8
|
-
import { S as SubTableCoreFactory, R as RuntimeInstanceController } from "../sub-table-factory-
|
|
9
|
-
import { A as A2, D, M as M2, a as
|
|
10
|
-
import { createDataSourceManager, getLegacyFieldFillTargets, createFieldFillRuntime, buildFieldFillRows, isFieldFillTargetProtected, getFieldFillColumn, buildDataSourceContext } from "@gct-paas/form-base";
|
|
11
|
-
import { B as B3, F as F2, M as M3, a as a11, u as u3 } from "../mb-render-Bs9S9oFn.js";
|
|
8
|
+
import { S as SubTableCoreFactory, R as RuntimeInstanceController } from "../sub-table-factory-GzYKYE9t.js";
|
|
9
|
+
import { A as A2, D, M as M2, a as a2, P as P2, b, c, d as d2, e as e2, W as W2, f, g, h as h2 } from "../sub-table-factory-GzYKYE9t.js";
|
|
10
|
+
import { createDataSourceManager, getLegacyFieldFillTargets, createFieldFillRuntime, buildFieldFillTableRows, buildFieldFillRows, isFieldFillTargetProtected, getFieldFillTable, getFieldFillColumn, buildDataSourceContext } from "@gct-paas/form-base";
|
|
12
11
|
const InstanceStatusValues = {
|
|
13
12
|
/** 作废状态 */
|
|
14
13
|
ABANDON: "ABANDON",
|
|
@@ -155,23 +154,31 @@ async function fetchOperationReceiveQty(paramsConfig) {
|
|
|
155
154
|
const num = Number(raw);
|
|
156
155
|
return Number.isNaN(num) ? void 0 : num;
|
|
157
156
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
157
|
+
const INSPECTION_MODULE_QTY_API = {
|
|
158
|
+
modelCategory: "entity",
|
|
159
|
+
modelKey: "em_inspection_list",
|
|
160
|
+
bsKey: "getById"
|
|
161
|
+
};
|
|
162
|
+
function isRecord(value) {
|
|
163
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
164
|
+
}
|
|
165
|
+
function parseInspectionModuleQty(res) {
|
|
166
|
+
if (!isRecord(res) || res.ok === false) return void 0;
|
|
167
|
+
const payload = isRecord(res.data) ? res.data : res;
|
|
168
|
+
const row = isRecord(payload.data) ? payload.data : payload;
|
|
169
|
+
const raw = row.inspection_number_;
|
|
170
|
+
if (typeof raw !== "number" && typeof raw !== "string") return void 0;
|
|
171
|
+
if (typeof raw === "string" && raw.trim() === "") return void 0;
|
|
172
|
+
const qty = Number(raw);
|
|
173
|
+
return Number.isFinite(qty) ? qty : void 0;
|
|
174
|
+
}
|
|
175
|
+
async function fetchInspectionModuleQty(txnInstId) {
|
|
176
|
+
if (txnInstId == null || txnInstId === "") return void 0;
|
|
177
|
+
const res = await api.apaas.modelComprehensive.getBizServiceModelCategoryModelKeyBsKey(
|
|
178
|
+
INSPECTION_MODULE_QTY_API,
|
|
179
|
+
{ id: txnInstId }
|
|
180
|
+
);
|
|
181
|
+
return parseInspectionModuleQty(res);
|
|
175
182
|
}
|
|
176
183
|
const isPresent = (value) => value !== void 0 && value !== null && value !== "";
|
|
177
184
|
class RuntimeFieldInitializer {
|
|
@@ -213,7 +220,7 @@ class RuntimeFieldInitializer {
|
|
|
213
220
|
for (const { widget, sheetId, referenceInfo } of this.record.fields.allWidgets()) {
|
|
214
221
|
const props = widget.props;
|
|
215
222
|
const fieldId = getRuntimeDataFieldId(props);
|
|
216
|
-
const kind = props.fieldType === FIELD_TYPE.UDI || props.bizType === FIELD_TYPE.UDI ? "udi" : props.bizType === FIELD_TYPE.OPERATION_RECEIVE_QTY ? "receive" : props.tmplId && [FIELD_TYPE.INTEGER, FIELD_TYPE.LONG].includes(props.fieldType) ? "count" : this.info.isMockReport && props.fieldType === FIELD_TYPE.RECORD_NO && props.newSpecificConfig?.newSnNo ? "recordNo" : void 0;
|
|
223
|
+
const kind = props.fieldType === FIELD_TYPE.UDI || props.bizType === FIELD_TYPE.UDI ? "udi" : props.bizType === FIELD_TYPE.OPERATION_RECEIVE_QTY ? "receive" : props.fieldType === FIELD_TYPE.INSPECTION_MODULE_QTY || props.bizType === FIELD_TYPE.INSPECTION_MODULE_QTY ? "inspection" : props.tmplId && [FIELD_TYPE.INTEGER, FIELD_TYPE.LONG].includes(props.fieldType) ? "count" : this.info.isMockReport && props.fieldType === FIELD_TYPE.RECORD_NO && props.newSpecificConfig?.newSnNo ? "recordNo" : void 0;
|
|
217
224
|
if (!kind || !fieldId || props.isFieldModel) continue;
|
|
218
225
|
for (const { row } of listRuntimeFieldRows(
|
|
219
226
|
this.record,
|
|
@@ -225,11 +232,13 @@ class RuntimeFieldInitializer {
|
|
|
225
232
|
if (this.initialized.get(key) === toRaw(row)) continue;
|
|
226
233
|
this.initialized.set(key, toRaw(row));
|
|
227
234
|
if (props.subFieldKey ? row.id_ : (this.info.instanceStatus ?? this.metadata.instanceStatus) !== InstanceStatusValues.UNFILLED) {
|
|
228
|
-
if (kind !== "recordNo") continue;
|
|
235
|
+
if (kind !== "recordNo" && kind !== "inspection") continue;
|
|
229
236
|
}
|
|
230
237
|
const previous = row[fieldId];
|
|
231
238
|
if (kind === "udi" && isPresent(previous)) continue;
|
|
232
239
|
const path = this.record.formState.getFieldPath(row, fieldId);
|
|
240
|
+
if (kind === "inspection" && (isPresent(previous) || this.record.formState.isUserModified(path)))
|
|
241
|
+
continue;
|
|
233
242
|
this.tasks.add(key);
|
|
234
243
|
const task = this.record.asyncTasks.run(
|
|
235
244
|
key,
|
|
@@ -251,7 +260,11 @@ class RuntimeFieldInitializer {
|
|
|
251
260
|
sheetId,
|
|
252
261
|
blockOnFailure: false
|
|
253
262
|
}
|
|
254
|
-
).finally(() =>
|
|
263
|
+
).finally(() => {
|
|
264
|
+
this.tasks.delete(key);
|
|
265
|
+
if (kind === "inspection" && this.initialized.get(key) === toRaw(row) && !isPresent(row[fieldId]))
|
|
266
|
+
this.initialized.delete(key);
|
|
267
|
+
});
|
|
255
268
|
pending.push(task);
|
|
256
269
|
}
|
|
257
270
|
}
|
|
@@ -263,18 +276,31 @@ class RuntimeFieldInitializer {
|
|
|
263
276
|
}
|
|
264
277
|
await Promise.allSettled(pending);
|
|
265
278
|
}
|
|
266
|
-
request(key, fetch) {
|
|
279
|
+
request(key, fetch, cacheResult = true) {
|
|
267
280
|
const existing = this.requests.get(key);
|
|
268
281
|
if (existing) return existing;
|
|
269
|
-
const task = fetch().
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
282
|
+
const task = fetch().then(
|
|
283
|
+
(value) => {
|
|
284
|
+
if (!cacheResult) this.requests.delete(key);
|
|
285
|
+
return value;
|
|
286
|
+
},
|
|
287
|
+
(error) => {
|
|
288
|
+
this.requests.delete(key);
|
|
289
|
+
throw error;
|
|
290
|
+
}
|
|
291
|
+
);
|
|
273
292
|
this.requests.set(key, task);
|
|
274
293
|
return task;
|
|
275
294
|
}
|
|
276
295
|
async readDefault(kind, props) {
|
|
277
296
|
if (kind === "recordNo") return props.newSpecificConfig.newSnNo;
|
|
297
|
+
if (kind === "inspection") {
|
|
298
|
+
return this.request(
|
|
299
|
+
`inspection:${this.metadata.txnInstId ?? ""}`,
|
|
300
|
+
() => fetchInspectionModuleQty(this.metadata.txnInstId),
|
|
301
|
+
false
|
|
302
|
+
);
|
|
303
|
+
}
|
|
278
304
|
if (kind === "count") {
|
|
279
305
|
const params = { ...JSON.parse(this.metadata.params || "{}"), ...this.info.paramsConfig };
|
|
280
306
|
const name = params.materialNo || this.metadata.materialNo;
|
|
@@ -386,7 +412,7 @@ function getSourceFields(record, expression, currentSubtable) {
|
|
|
386
412
|
});
|
|
387
413
|
}
|
|
388
414
|
function isEmptyValue(value) {
|
|
389
|
-
return value === void 0 || value === null || value === "";
|
|
415
|
+
return value === void 0 || value === null || typeof value === "string" && value.trim() === "" || Array.isArray(value) && value.length === 0;
|
|
390
416
|
}
|
|
391
417
|
function getRulePaths(record, props, targetFieldId, modelKey, scopeFieldId = targetFieldId) {
|
|
392
418
|
const subtableField = props.subFieldKey;
|
|
@@ -491,6 +517,13 @@ class RuntimeRuleCompiler {
|
|
|
491
517
|
const props = widget.props ?? {};
|
|
492
518
|
const targetFieldId = getRuntimeDataFieldId(props);
|
|
493
519
|
if (!targetFieldId) return;
|
|
520
|
+
const fieldMain = findFieldMain(props.bizType, props.fieldType);
|
|
521
|
+
const tableProfile = getProfileByTableType(props.subModelType) ?? getBusinessProfileByRefModelType(props.subModelType);
|
|
522
|
+
const tableProps = tableProfile && isBusinessSubTableProfile(tableProfile) ? findFieldProfile(tableProfile, props.field)?.defaultProps : void 0;
|
|
523
|
+
const numeric = fieldMain?.render === "rd:number" || fieldMain?.render === "rd:double";
|
|
524
|
+
const defaultMinValue = numeric && [tableProps, fieldMain?.defaultProps].some(
|
|
525
|
+
(defaults2) => defaults2?.enableRangeValidate === true && defaults2.minValidateMode === RangeValidateMode.Fixed_Number && defaults2.minValue === 0
|
|
526
|
+
) ? 0 : void 0;
|
|
494
527
|
getRulePaths(
|
|
495
528
|
this.record,
|
|
496
529
|
props,
|
|
@@ -510,6 +543,7 @@ class RuntimeRuleCompiler {
|
|
|
510
543
|
const rules = assembleRules({
|
|
511
544
|
showRequired: state.required,
|
|
512
545
|
fieldType: props.fieldType,
|
|
546
|
+
defaultMinValue,
|
|
513
547
|
validatorInfo: {
|
|
514
548
|
showModelName: props.newSpecificConfig?.newModelName,
|
|
515
549
|
showModelKey: props.modelKey ?? this.basicInfo.modelKey,
|
|
@@ -694,13 +728,30 @@ class RuntimeRuleCompiler {
|
|
|
694
728
|
const expression = assignment?.expression || props.formulaExpr;
|
|
695
729
|
if (!expression || !targetFieldId) return;
|
|
696
730
|
const strategy = assignment?.strategy ?? ASSIGNMENTSTRATEGY_ENUM.alwaysCover;
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
731
|
+
let assignmentStates = /* @__PURE__ */ new WeakMap();
|
|
732
|
+
const readInputs = (target) => cloneDeep(resolveFormulaData(expression, target.row, formState.state));
|
|
733
|
+
const rememberTarget = (target, inputs) => {
|
|
734
|
+
const row = props.isFieldModel ? target.row._OPCT : target.row;
|
|
735
|
+
const path = formState.getFieldPath(row ?? target.row, targetFieldId);
|
|
736
|
+
assignmentStates.set(toRaw(target.row), { inputs, path });
|
|
737
|
+
if (strategy === ASSIGNMENTSTRATEGY_ENUM.notCoveredForever && !isEmptyValue(row?.[targetFieldId]))
|
|
702
738
|
formState.markUserModified(path);
|
|
703
|
-
|
|
739
|
+
};
|
|
740
|
+
const resetAssignmentState = () => {
|
|
741
|
+
assignmentStates = /* @__PURE__ */ new WeakMap();
|
|
742
|
+
listRuntimeFieldRows(this.record, subFieldKey, scopeFieldId).forEach(
|
|
743
|
+
(target) => rememberTarget(target, readInputs(target))
|
|
744
|
+
);
|
|
745
|
+
};
|
|
746
|
+
if (!isLegacyFormula) {
|
|
747
|
+
resetAssignmentState();
|
|
748
|
+
this.unregisters.push(
|
|
749
|
+
formState.subscribe((change) => {
|
|
750
|
+
if (change.source !== "restore" || change.restoreScope === "fields" || change.paths.every((path) => path.endsWith("_lb_")))
|
|
751
|
+
return;
|
|
752
|
+
resetAssignmentState();
|
|
753
|
+
})
|
|
754
|
+
);
|
|
704
755
|
}
|
|
705
756
|
this.unregisters.push(
|
|
706
757
|
dependencies.register({
|
|
@@ -709,20 +760,42 @@ class RuntimeRuleCompiler {
|
|
|
709
760
|
sheetId,
|
|
710
761
|
sourceFields: getSourceFields(this.record, expression, subFieldKey),
|
|
711
762
|
structureFields,
|
|
712
|
-
run: async (
|
|
763
|
+
run: async (_change, execution) => {
|
|
713
764
|
if (this.disposed) return;
|
|
714
|
-
if (!isLegacyFormula && change.revision === 0 && change.source === "system") return;
|
|
715
765
|
if (!this.canWriteFormulas()) return;
|
|
716
766
|
const results = await Promise.all(
|
|
717
767
|
listRuntimeFieldRows(this.record, subFieldKey, scopeFieldId).map(async (target) => {
|
|
718
768
|
const row = this.getWritableRow(target.row, props);
|
|
719
769
|
const path = formState.getFieldPath(row, targetFieldId);
|
|
720
|
-
|
|
770
|
+
const inputs = isLegacyFormula ? void 0 : readInputs(target);
|
|
771
|
+
const previous = assignmentStates.get(toRaw(target.row));
|
|
772
|
+
if (!isLegacyFormula) {
|
|
773
|
+
if (!previous) rememberTarget(target);
|
|
774
|
+
else if (previous.path !== path && formState.isUserModified(previous.path)) {
|
|
775
|
+
formState.markUserModified(path);
|
|
776
|
+
formState.clearUserModified(previous.path);
|
|
777
|
+
}
|
|
778
|
+
}
|
|
779
|
+
if (!isLegacyFormula && strategy !== ASSIGNMENTSTRATEGY_ENUM.alwaysCover && formState.isUserModified(path)) {
|
|
780
|
+
assignmentStates.set(toRaw(target.row), { inputs, path });
|
|
721
781
|
return;
|
|
722
|
-
|
|
723
|
-
|
|
782
|
+
}
|
|
783
|
+
if (!isLegacyFormula && previous?.inputs && !previous.pending && isEqual(previous.inputs, inputs))
|
|
784
|
+
return;
|
|
785
|
+
if (!isLegacyFormula)
|
|
786
|
+
assignmentStates.set(toRaw(target.row), {
|
|
787
|
+
inputs: previous?.inputs,
|
|
788
|
+
path,
|
|
789
|
+
pending: true
|
|
790
|
+
});
|
|
791
|
+
const result = await calculateFormula(
|
|
792
|
+
expression,
|
|
793
|
+
isLegacyFormula ? row : target.row,
|
|
794
|
+
formState.state
|
|
795
|
+
);
|
|
796
|
+
const empty = isEmptyValue(result);
|
|
724
797
|
const value = isLegacyFormula ? empty ? null : Number(result) : formatDateCompliance(result, props.newSpecificConfig?.mappingType);
|
|
725
|
-
return { target, row, path, value };
|
|
798
|
+
return { target, row, path, value, inputs };
|
|
726
799
|
})
|
|
727
800
|
);
|
|
728
801
|
if (!this.canWriteFormulas() || !execution.isCurrent()) return;
|
|
@@ -730,7 +803,9 @@ class RuntimeRuleCompiler {
|
|
|
730
803
|
"formula",
|
|
731
804
|
() => results.forEach((result) => {
|
|
732
805
|
if (!result) return;
|
|
733
|
-
const { target, row, path, value } = result;
|
|
806
|
+
const { target, row, path, value, inputs } = result;
|
|
807
|
+
if (!isLegacyFormula)
|
|
808
|
+
assignmentStates.set(toRaw(target.row), { inputs, path });
|
|
734
809
|
if (!isLegacyFormula && strategy !== ASSIGNMENTSTRATEGY_ENUM.alwaysCover && formState.isUserModified(path))
|
|
735
810
|
return;
|
|
736
811
|
if (Object.is(row[targetFieldId], value)) return;
|
|
@@ -748,7 +823,12 @@ class RuntimeRuleCompiler {
|
|
|
748
823
|
}
|
|
749
824
|
getWritableRow(row, props) {
|
|
750
825
|
if (!props.isFieldModel) return row;
|
|
751
|
-
if (!row._OPCT)
|
|
826
|
+
if (!row._OPCT)
|
|
827
|
+
this.record.formState.transaction(
|
|
828
|
+
"restore",
|
|
829
|
+
() => this.record.formState.setObjectField(row, "_OPCT", { _DICT: {} }, "restore"),
|
|
830
|
+
{ restoreScope: "fields" }
|
|
831
|
+
);
|
|
752
832
|
return row._OPCT;
|
|
753
833
|
}
|
|
754
834
|
/** 公式变更记录也属于实例生命周期,未打开的 Sheet 不再漏记。 */
|
|
@@ -809,6 +889,10 @@ class FormTmplBomController {
|
|
|
809
889
|
field2TableMap = {};
|
|
810
890
|
/** 默认物料消耗模式 */
|
|
811
891
|
defaultMCPattern = MaterialConsumptionPatternEnum.RECORD;
|
|
892
|
+
/** 表单实例身份与 BOM 数据是否存在无关,模板展示也会创建完整控制器。 */
|
|
893
|
+
hasFormInstance = false;
|
|
894
|
+
/** 按页面中的表解析后的配置,页面与打印共用。 */
|
|
895
|
+
resolvedTmplBomList = [];
|
|
812
896
|
constructor() {
|
|
813
897
|
}
|
|
814
898
|
/**
|
|
@@ -826,7 +910,9 @@ class FormTmplBomController {
|
|
|
826
910
|
productQty: this.productQty,
|
|
827
911
|
historyData: this.historyData,
|
|
828
912
|
field2TableMap: this.field2TableMap,
|
|
829
|
-
defaultMCPattern: this.defaultMCPattern
|
|
913
|
+
defaultMCPattern: this.defaultMCPattern,
|
|
914
|
+
hasFormInstance: this.hasFormInstance,
|
|
915
|
+
resolvedTmplBomList: this.resolvedTmplBomList
|
|
830
916
|
})
|
|
831
917
|
);
|
|
832
918
|
(view.tmplBomList ?? []).forEach((config) => {
|
|
@@ -878,11 +964,11 @@ class FormTmplBomController {
|
|
|
878
964
|
* @readonly
|
|
879
965
|
*/
|
|
880
966
|
get bomEntries() {
|
|
881
|
-
return this.formInstBom?.bomEntries;
|
|
967
|
+
return this.formInstBom?.bomEntries ?? [];
|
|
882
968
|
}
|
|
883
969
|
/** 表单模板bom信息配置列表 */
|
|
884
970
|
get tmplBomList() {
|
|
885
|
-
return this.
|
|
971
|
+
return this.resolvedTmplBomList;
|
|
886
972
|
}
|
|
887
973
|
/**
|
|
888
974
|
* bom那边指定的当前工序的开关
|
|
@@ -891,30 +977,55 @@ class FormTmplBomController {
|
|
|
891
977
|
get enableSequenceLoading() {
|
|
892
978
|
return !!this.formInstBom?.sequenceEntries?.[0]?.enabled_;
|
|
893
979
|
}
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
980
|
+
createDefaultConfig(table) {
|
|
981
|
+
return {
|
|
982
|
+
table_key_: `${table.tableKey}:${table.masterSubField}`,
|
|
983
|
+
material_loading_model_enabled_: false,
|
|
984
|
+
material_consumption_pattern_: MaterialConsumptionPatternEnum.RECORD,
|
|
985
|
+
bom_init_enabled_: false,
|
|
986
|
+
personal_bom_enabled_: false,
|
|
987
|
+
sequence_loading_enabled_: false,
|
|
988
|
+
entries_: []
|
|
989
|
+
};
|
|
990
|
+
}
|
|
991
|
+
/** 有实例时读取实例配置,无实例时仅创建默认展示控制器。 */
|
|
897
992
|
async init(data) {
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
this.
|
|
902
|
-
this.
|
|
903
|
-
this.
|
|
904
|
-
this.
|
|
905
|
-
this.historyData = await fetchHistoryConsume({
|
|
906
|
-
production_identification_id_: this.formInstBom.productionIdentificationId,
|
|
907
|
-
routing_operation_id_: this.operationId
|
|
908
|
-
});
|
|
909
|
-
const isGranted = await isBomGranted();
|
|
910
|
-
this.defaultMCPattern = isGranted ? MaterialConsumptionPatternEnum.BOM : MaterialConsumptionPatternEnum.RECORD;
|
|
993
|
+
this.hasFormInstance = data.hasFormInstance;
|
|
994
|
+
this.operationId = data.operationId ?? "";
|
|
995
|
+
this.materialNo = data.materialNo ?? "";
|
|
996
|
+
this.formInstBom = this.hasFormInstance ? data.formInstBom ?? null : null;
|
|
997
|
+
this.productQty = this.formInstBom ? data.productQty ?? 0 : data.productQty;
|
|
998
|
+
this.historyData = [];
|
|
999
|
+
this.defaultMCPattern = MaterialConsumptionPatternEnum.RECORD;
|
|
911
1000
|
this.tableControllers = {};
|
|
912
|
-
this.
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
1001
|
+
this.field2TableMap = {};
|
|
1002
|
+
const instanceConfigs = new Map(
|
|
1003
|
+
(this.formInstBom?.formTmplBomList ?? []).filter((config) => !config.deleted_ && config.table_key_).map((config) => [config.table_key_, config])
|
|
1004
|
+
);
|
|
1005
|
+
this.resolvedTmplBomList = data.materialConsumeTableList.map((table) => {
|
|
1006
|
+
const key = `${table.tableKey}:${table.masterSubField}`;
|
|
1007
|
+
const source = instanceConfigs.get(key);
|
|
1008
|
+
if (!source) return this.createDefaultConfig(table);
|
|
1009
|
+
const config = cloneDeep(source);
|
|
1010
|
+
config.entries_ ??= [];
|
|
1011
|
+
return config;
|
|
1012
|
+
});
|
|
1013
|
+
if (this.formInstBom) {
|
|
1014
|
+
if (this.formInstBom.productionIdentificationId && this.operationId) {
|
|
1015
|
+
this.historyData = await fetchHistoryConsume({
|
|
1016
|
+
production_identification_id_: this.formInstBom.productionIdentificationId,
|
|
1017
|
+
routing_operation_id_: this.operationId
|
|
1018
|
+
});
|
|
1019
|
+
}
|
|
1020
|
+
const isGranted = await isBomGranted();
|
|
1021
|
+
this.defaultMCPattern = isGranted ? MaterialConsumptionPatternEnum.BOM : MaterialConsumptionPatternEnum.RECORD;
|
|
1022
|
+
}
|
|
1023
|
+
data.materialConsumeTableList.forEach((table, index) => {
|
|
1024
|
+
const config = this.resolvedTmplBomList[index];
|
|
1025
|
+
const controller = new MaterialConsumeTableController(this, config);
|
|
1026
|
+
this.tableControllers[table.tableKey] = controller;
|
|
1027
|
+
this.field2TableMap[table.masterSubField] = table.tableKey;
|
|
1028
|
+
});
|
|
918
1029
|
}
|
|
919
1030
|
/**
|
|
920
1031
|
* 根据字段key获取子表控制器
|
|
@@ -959,6 +1070,28 @@ class FormTmplBomController {
|
|
|
959
1070
|
});
|
|
960
1071
|
});
|
|
961
1072
|
}
|
|
1073
|
+
/** 全部 Sheet 的消耗表统一在 LOADED 前准备。 */
|
|
1074
|
+
initializeFormState(opts) {
|
|
1075
|
+
Object.entries(this.field2TableMap).forEach(([field, tableKey]) => {
|
|
1076
|
+
const controller = this.tableControllers[tableKey];
|
|
1077
|
+
if (!controller) return;
|
|
1078
|
+
controller.prepareInitialData({
|
|
1079
|
+
formState: opts.formState,
|
|
1080
|
+
field,
|
|
1081
|
+
dataStatus: opts.dataStatus,
|
|
1082
|
+
defaultRowData: renderUtils.getDefaultValueInfo({
|
|
1083
|
+
defaultDataMap: opts.defaultDataMap,
|
|
1084
|
+
key: field
|
|
1085
|
+
})
|
|
1086
|
+
});
|
|
1087
|
+
});
|
|
1088
|
+
}
|
|
1089
|
+
/** 钩子若修改数量依赖,在创建 Store 和分页前按原规则重算。 */
|
|
1090
|
+
finalizeInitialQuantities() {
|
|
1091
|
+
Object.values(this.tableControllers).forEach((controller) => {
|
|
1092
|
+
controller.syncQtyRequiredFromBomIfChanged();
|
|
1093
|
+
});
|
|
1094
|
+
}
|
|
962
1095
|
async submitValidate() {
|
|
963
1096
|
const results = await Promise.all(
|
|
964
1097
|
Object.values(this.tableControllers).map((c10) => c10.submitValidate())
|
|
@@ -975,6 +1108,79 @@ class FormTmplBomController {
|
|
|
975
1108
|
};
|
|
976
1109
|
}
|
|
977
1110
|
}
|
|
1111
|
+
async function prepareObjectProductDefaults({
|
|
1112
|
+
enabled,
|
|
1113
|
+
fields,
|
|
1114
|
+
objectInitialValues = [],
|
|
1115
|
+
onWarning
|
|
1116
|
+
}) {
|
|
1117
|
+
const defaults2 = /* @__PURE__ */ new WeakMap();
|
|
1118
|
+
if (!enabled) return defaults2;
|
|
1119
|
+
const requests = /* @__PURE__ */ new Map();
|
|
1120
|
+
const tasks = [];
|
|
1121
|
+
function fetchProduct(productId) {
|
|
1122
|
+
const existing = requests.get(productId);
|
|
1123
|
+
if (existing) return existing;
|
|
1124
|
+
const request = (async () => {
|
|
1125
|
+
const result = await api.apaas.modelComprehensive.getBizServiceModelCategoryModelKeyBsKey(
|
|
1126
|
+
{
|
|
1127
|
+
modelCategory: "entity",
|
|
1128
|
+
modelKey: "em_product",
|
|
1129
|
+
bsKey: "rdoGetVersionById"
|
|
1130
|
+
},
|
|
1131
|
+
// 沿用现有接口约定,传完整默认值,不拆分版本 ID。
|
|
1132
|
+
{ id: productId }
|
|
1133
|
+
);
|
|
1134
|
+
const product = result?.data;
|
|
1135
|
+
if (!product || typeof product !== "object" || Array.isArray(product) || Object.keys(product).length === 0) {
|
|
1136
|
+
return void 0;
|
|
1137
|
+
}
|
|
1138
|
+
return { ...product, _DICT: result?.dict ?? product._DICT };
|
|
1139
|
+
})();
|
|
1140
|
+
requests.set(productId, request);
|
|
1141
|
+
return request;
|
|
1142
|
+
}
|
|
1143
|
+
for (const entry of fields) {
|
|
1144
|
+
if (!entry || typeof entry !== "object") continue;
|
|
1145
|
+
const field = entry;
|
|
1146
|
+
if (typeof field.fieldId !== "string" || !field.belongingObject || field.fieldType !== FIELD_TYPE.PRODUCT || field.isFieldModel || field.subFieldKey || field.subModelKey) {
|
|
1147
|
+
continue;
|
|
1148
|
+
}
|
|
1149
|
+
const configured = objectInitialValues.find(
|
|
1150
|
+
(item) => item.objectField === field.belongingObject
|
|
1151
|
+
);
|
|
1152
|
+
if (!configured?.values || !Object.prototype.hasOwnProperty.call(configured.values, field.fieldId)) {
|
|
1153
|
+
continue;
|
|
1154
|
+
}
|
|
1155
|
+
const productDefault = {
|
|
1156
|
+
value: configured.values[field.fieldId]
|
|
1157
|
+
};
|
|
1158
|
+
defaults2.set(entry, productDefault);
|
|
1159
|
+
const productId = productDefault.value;
|
|
1160
|
+
const needsAutofill = field.enableAutofill !== false && field.autofillRules?.some((rule) => !!rule.toField);
|
|
1161
|
+
if (!needsAutofill || typeof productId !== "string" || productId === "") continue;
|
|
1162
|
+
tasks.push(
|
|
1163
|
+
fetchProduct(productId).then(
|
|
1164
|
+
(sourceData) => {
|
|
1165
|
+
if (!sourceData) {
|
|
1166
|
+
const objectName = configured.objectFieldName || field.belongingObject;
|
|
1167
|
+
onWarning?.(
|
|
1168
|
+
`「数据 → 对象初始化 → ${objectName} → 配置」中的默认物料未查到详情(字段 ${field.fieldId},物料 ${productId}),已跳过自动填充。`
|
|
1169
|
+
);
|
|
1170
|
+
return;
|
|
1171
|
+
}
|
|
1172
|
+
productDefault.sourceData = sourceData;
|
|
1173
|
+
},
|
|
1174
|
+
(error) => {
|
|
1175
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
1176
|
+
throw new Error(`对象初始化数据填充失败,字段 ${field.fieldId}:${reason}`);
|
|
1177
|
+
}
|
|
1178
|
+
)
|
|
1179
|
+
);
|
|
1180
|
+
}
|
|
1181
|
+
await Promise.all(tasks);
|
|
1182
|
+
return defaults2;
|
|
1183
|
+
}
|
|
978
1184
|
async function getModelQueries(opts) {
|
|
979
1185
|
const isEdhr = await isEdhrSuite();
|
|
980
1186
|
if (!isEdhr || !opts.mainMaterialNo) {
|
|
@@ -1017,11 +1223,13 @@ async function fillSterilizationDate(txnInstId, metadata, formState) {
|
|
|
1017
1223
|
const rows = formState[subFieldKey];
|
|
1018
1224
|
if (Array.isArray(rows)) {
|
|
1019
1225
|
rows.forEach((row) => {
|
|
1020
|
-
if (row && typeof row === "object"
|
|
1226
|
+
if (row && typeof row === "object" && !row[field]) {
|
|
1227
|
+
row[field] = date;
|
|
1228
|
+
}
|
|
1021
1229
|
});
|
|
1022
1230
|
}
|
|
1023
1231
|
} else {
|
|
1024
|
-
formState[field] = date;
|
|
1232
|
+
if (!formState[field]) formState[field] = date;
|
|
1025
1233
|
}
|
|
1026
1234
|
});
|
|
1027
1235
|
}
|
|
@@ -1140,7 +1348,7 @@ function assertUniqueSubTableOwnership(sheets) {
|
|
|
1140
1348
|
});
|
|
1141
1349
|
}
|
|
1142
1350
|
function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
|
|
1143
|
-
async function initializeRuntimeInstance(id, result) {
|
|
1351
|
+
async function initializeRuntimeInstance(id, result, options = {}) {
|
|
1144
1352
|
if (isEmpty(result)) return;
|
|
1145
1353
|
const { selfInfo, paramsConfig, fillModeType } = result || {};
|
|
1146
1354
|
setFormulaParamsConfig({
|
|
@@ -1151,13 +1359,14 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
|
|
|
1151
1359
|
let runtimeFormStateStore;
|
|
1152
1360
|
let scriptRunner;
|
|
1153
1361
|
try {
|
|
1154
|
-
const normalizedRuntime = normalizeRuntime(selfInfo?.runtimeJson || "{}");
|
|
1362
|
+
const normalizedRuntime = normalizeRuntime(selfInfo?.runtimeJson || "{}", selfInfo.formType);
|
|
1155
1363
|
const tid = result.tid;
|
|
1156
1364
|
const uniqueId = `${tid}_${uuid2(8)}`;
|
|
1157
1365
|
const runtimeContext = createRuntimeInstanceContext({
|
|
1158
1366
|
uniqueId,
|
|
1159
1367
|
instanceId: id,
|
|
1160
1368
|
templateId: tid,
|
|
1369
|
+
formType: selfInfo.formType,
|
|
1161
1370
|
runtime: normalizedRuntime,
|
|
1162
1371
|
defaultData: {}
|
|
1163
1372
|
});
|
|
@@ -1299,6 +1508,8 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
|
|
|
1299
1508
|
}
|
|
1300
1509
|
await tmplBomC.init({
|
|
1301
1510
|
formInstBom: selfInfo.formInstBom,
|
|
1511
|
+
materialConsumeTableList: businessIndex.materialConsumeTableList,
|
|
1512
|
+
hasFormInstance: isFormInstance,
|
|
1302
1513
|
operationId: paramsConfig?.routingOperationId,
|
|
1303
1514
|
materialNo,
|
|
1304
1515
|
productQty: paramsConfig?.productQty
|
|
@@ -1370,7 +1581,18 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
|
|
|
1370
1581
|
params: { id: paramsConfig?.warehouseId }
|
|
1371
1582
|
}
|
|
1372
1583
|
]);
|
|
1584
|
+
const objectProductDefaults = await prepareObjectProductDefaults({
|
|
1585
|
+
enabled: fillModeType === RenderModeEnum.FormMode && selfInfo.dataStatus !== "STASH" && selfInfo.dataStatus !== "SUBMIT",
|
|
1586
|
+
fields: fieldInfoMap.useDefaultValueFields,
|
|
1587
|
+
objectInitialValues: runtimeContext.formConfig.objectInitialValues,
|
|
1588
|
+
onWarning: (content) => {
|
|
1589
|
+
window.NocodeAdapter.openUtil?.message({ type: "warning", content, duration: 8 });
|
|
1590
|
+
}
|
|
1591
|
+
});
|
|
1592
|
+
const defaultValueOrigins = new DesignerDefaultValues();
|
|
1373
1593
|
const defaultDataMap = renderUtils.getDefaultValueMapByField({
|
|
1594
|
+
onDesignerDefault: (field, value) => defaultValueOrigins.add(field.subFieldKey, field.fieldId, value),
|
|
1595
|
+
objectProductDefaults,
|
|
1374
1596
|
defaultValueFields: fieldInfoMap.useDefaultValueFields,
|
|
1375
1597
|
mainMaterialNo: paramsConfig?.materialNo || selfInfo.materialNo,
|
|
1376
1598
|
mainRelatedLotNo: paramsConfig?.relatedLotNo,
|
|
@@ -1399,6 +1621,7 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
|
|
|
1399
1621
|
tmplBomC.handleDefaultMap(defaultDataMap);
|
|
1400
1622
|
runtimeContext.defaultData = defaultDataMap;
|
|
1401
1623
|
const defaultData = transformUtils.getDefaultData({
|
|
1624
|
+
defaultValueOrigins,
|
|
1402
1625
|
defaultDataMap,
|
|
1403
1626
|
subTableInfo,
|
|
1404
1627
|
viewMode: result.fillModeType,
|
|
@@ -1437,6 +1660,7 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
|
|
|
1437
1660
|
isMockReport: payload.isMockReport
|
|
1438
1661
|
});
|
|
1439
1662
|
const formState = transformUtils.conversionFormState({
|
|
1663
|
+
defaultValueOrigins,
|
|
1440
1664
|
defaultData,
|
|
1441
1665
|
paramData,
|
|
1442
1666
|
customData,
|
|
@@ -1454,7 +1678,7 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
|
|
|
1454
1678
|
]
|
|
1455
1679
|
});
|
|
1456
1680
|
if (fillModeType === RenderModeEnum.FormMode) {
|
|
1457
|
-
if (!payload.isMockReport) {
|
|
1681
|
+
if (options.initializeValues !== false && !payload.isMockReport) {
|
|
1458
1682
|
await fillSterilizationDate(selfInfo.txnInstId, fieldInfoMap.fieldMetadata, formState);
|
|
1459
1683
|
}
|
|
1460
1684
|
const floatingFields = sheetEntries.flatMap((entry) => {
|
|
@@ -1463,6 +1687,21 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
|
|
|
1463
1687
|
});
|
|
1464
1688
|
initializeSealFields(floatingFields, formState);
|
|
1465
1689
|
}
|
|
1690
|
+
tmplBomC.initializeFormState({
|
|
1691
|
+
formState,
|
|
1692
|
+
dataStatus: selfInfo.dataStatus,
|
|
1693
|
+
defaultDataMap
|
|
1694
|
+
});
|
|
1695
|
+
await transformUtils.getEventInitDataLoaded({
|
|
1696
|
+
formConfig: runtimeContext.formConfig,
|
|
1697
|
+
formState,
|
|
1698
|
+
viewMode: fillModeType,
|
|
1699
|
+
dataStatus: selfInfo.dataStatus,
|
|
1700
|
+
ofCtx: { formPrint: payload.formPrint, id: result.id }
|
|
1701
|
+
}).catch((error) => {
|
|
1702
|
+
console.error("Error in getEventInitDataLoaded:", error);
|
|
1703
|
+
});
|
|
1704
|
+
tmplBomC.finalizeInitialQuantities();
|
|
1466
1705
|
runtimeFormStateStore = new RuntimeFormStateStore(
|
|
1467
1706
|
formState,
|
|
1468
1707
|
// 子表信息覆盖普通/固定/检验表、二维关联列以及各类业务表;不能只依赖已放置字段。
|
|
@@ -1521,6 +1760,7 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
|
|
|
1521
1760
|
// 注册表显式接收初始化阶段创建的 Store,避免通过 context.services 中转。
|
|
1522
1761
|
runtimeFormStateStore,
|
|
1523
1762
|
runtimeFieldMetadata: fieldInfoMap.fieldMetadata,
|
|
1763
|
+
defaultValueOrigins,
|
|
1524
1764
|
// 与 Store 一起显式移交给实例记录,basicInfo 不再携带脚本服务。
|
|
1525
1765
|
scriptRunner,
|
|
1526
1766
|
basicInfo: {
|
|
@@ -1557,7 +1797,9 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
|
|
|
1557
1797
|
productSearchFields: payload?.deviceConfig?.defaultProductSearchFields ?? "",
|
|
1558
1798
|
showPrintFieldBg: paramsConfig?.showPrintFieldBg,
|
|
1559
1799
|
paramsConfig,
|
|
1560
|
-
|
|
1800
|
+
businessType: selfInfo.businessType,
|
|
1801
|
+
instanceStatus: selfInfo.instanceStatus,
|
|
1802
|
+
dataStatus: selfInfo.dataStatus
|
|
1561
1803
|
},
|
|
1562
1804
|
selfInfo: runtimeSelfInfo
|
|
1563
1805
|
};
|
|
@@ -1602,7 +1844,6 @@ function bindRuntimeBusinessServices(runtimeRegistry, record, dataStatus) {
|
|
|
1602
1844
|
if (!controller) continue;
|
|
1603
1845
|
const field = item.masterSubField;
|
|
1604
1846
|
controller.bindRuntime({
|
|
1605
|
-
ownerId: uniqueId,
|
|
1606
1847
|
tableDataRef: computed({
|
|
1607
1848
|
get: () => record.formState.state[field] ?? [],
|
|
1608
1849
|
set: (val) => {
|
|
@@ -1610,18 +1851,13 @@ function bindRuntimeBusinessServices(runtimeRegistry, record, dataStatus) {
|
|
|
1610
1851
|
}
|
|
1611
1852
|
}),
|
|
1612
1853
|
mainFormState: computed(() => record.formState.state),
|
|
1613
|
-
dataStatus
|
|
1614
|
-
defaultRowData: renderUtils.getDefaultValueInfo({
|
|
1615
|
-
defaultDataMap: record.context.defaultData,
|
|
1616
|
-
key: field
|
|
1617
|
-
})
|
|
1854
|
+
dataStatus
|
|
1618
1855
|
});
|
|
1619
1856
|
stops.push(
|
|
1620
1857
|
watch(
|
|
1621
1858
|
() => controller.materialNoNum,
|
|
1622
1859
|
() => {
|
|
1623
|
-
|
|
1624
|
-
controller.syncQtyRequiredFromBom();
|
|
1860
|
+
controller.syncQtyRequiredFromBomIfChanged();
|
|
1625
1861
|
},
|
|
1626
1862
|
{ immediate: true }
|
|
1627
1863
|
)
|
|
@@ -1889,7 +2125,13 @@ function createRuntimePersistenceAccess(runtimeRegistry, props, payload) {
|
|
|
1889
2125
|
const signatureKeys = (runtimeRecord.context.businessIndex.useSignatureFields || []).map(
|
|
1890
2126
|
(item) => item.fieldId
|
|
1891
2127
|
);
|
|
1892
|
-
const idsFormState = transformUtils.getFormDataIdsMap(
|
|
2128
|
+
const idsFormState = transformUtils.getFormDataIdsMap(
|
|
2129
|
+
newFormState,
|
|
2130
|
+
signatureKeys,
|
|
2131
|
+
(path) => runtimeRecord.fields.findByPath(path).some(
|
|
2132
|
+
({ widget, subFieldKey }) => subFieldKey !== path && [FIELD_TYPE.DATE, FIELD_TYPE.DATE_TIME].includes(widget?.props.fieldType)
|
|
2133
|
+
)
|
|
2134
|
+
);
|
|
1893
2135
|
if (saveToken ? !runtimeRecord.persistence.completeSave(saveToken) : requestedRevision !== runtimeRecord.formState.revision) {
|
|
1894
2136
|
return false;
|
|
1895
2137
|
}
|
|
@@ -1966,6 +2208,139 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1966
2208
|
}
|
|
1967
2209
|
});
|
|
1968
2210
|
const InspectionDecisionPromptModal = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-9c14035f"]]);
|
|
2211
|
+
function createMaterialConsumeObjectValidation(options) {
|
|
2212
|
+
const { record, getInfo, isCurrent, shouldSkip, applyComments } = options;
|
|
2213
|
+
let enabled = false;
|
|
2214
|
+
let disposed = false;
|
|
2215
|
+
let submitting = 0;
|
|
2216
|
+
let generation = 0;
|
|
2217
|
+
let lastRevision = -1;
|
|
2218
|
+
let timer;
|
|
2219
|
+
let paths = /* @__PURE__ */ new Set();
|
|
2220
|
+
const unlocated = /* @__PURE__ */ new Set();
|
|
2221
|
+
const alive = () => !disposed && isCurrent();
|
|
2222
|
+
function cancelLive() {
|
|
2223
|
+
generation++;
|
|
2224
|
+
if (timer !== void 0) clearTimeout(timer);
|
|
2225
|
+
timer = void 0;
|
|
2226
|
+
}
|
|
2227
|
+
function calcObjectError(error) {
|
|
2228
|
+
const info = getInfo();
|
|
2229
|
+
const modelKey = info?.modelKey || record.context.businessIndex.modelDisplay.key;
|
|
2230
|
+
const descriptor = record.fields.findField({ modelKey, fieldId: error.field });
|
|
2231
|
+
const props = descriptor?.widget?.props;
|
|
2232
|
+
if (!props?.field || descriptor?.subFieldKey || props.subFieldKey) {
|
|
2233
|
+
const key = modelKey + "." + error.field;
|
|
2234
|
+
if (!unlocated.has(key)) {
|
|
2235
|
+
unlocated.add(key);
|
|
2236
|
+
console.warn("物料消耗对象错误未定位到主表控件,保留在校验清单:", key);
|
|
2237
|
+
}
|
|
2238
|
+
return { error, path: void 0 };
|
|
2239
|
+
}
|
|
2240
|
+
const path = buildRuntimeFieldPath({
|
|
2241
|
+
...props,
|
|
2242
|
+
modelKey: props.modelKey ?? info?.modelKey,
|
|
2243
|
+
fieldId: props.field
|
|
2244
|
+
});
|
|
2245
|
+
return { error: { ...error, field: path }, path };
|
|
2246
|
+
}
|
|
2247
|
+
function replaceObjectFields(fields) {
|
|
2248
|
+
if (!alive()) return;
|
|
2249
|
+
const next = { ...getInfo()?.mcValidatorMessageMap ?? {} };
|
|
2250
|
+
paths.forEach((path) => delete next[path]);
|
|
2251
|
+
Object.assign(next, fields);
|
|
2252
|
+
paths = new Set(Object.keys(fields));
|
|
2253
|
+
applyComments(next);
|
|
2254
|
+
}
|
|
2255
|
+
function replaceTableFields(fields) {
|
|
2256
|
+
if (!alive()) return;
|
|
2257
|
+
const current = getInfo()?.mcValidatorMessageMap ?? {};
|
|
2258
|
+
const next = { ...fields ?? {} };
|
|
2259
|
+
paths.forEach((path) => {
|
|
2260
|
+
if (current[path]) {
|
|
2261
|
+
next[path] = [...next[path] ?? [], ...current[path]];
|
|
2262
|
+
}
|
|
2263
|
+
});
|
|
2264
|
+
applyComments(next);
|
|
2265
|
+
}
|
|
2266
|
+
function clear() {
|
|
2267
|
+
cancelLive();
|
|
2268
|
+
enabled = false;
|
|
2269
|
+
lastRevision = -1;
|
|
2270
|
+
replaceObjectFields({});
|
|
2271
|
+
}
|
|
2272
|
+
async function validate(live = false) {
|
|
2273
|
+
cancelLive();
|
|
2274
|
+
if (!alive()) return;
|
|
2275
|
+
if (shouldSkip()) {
|
|
2276
|
+
clear();
|
|
2277
|
+
return { isValid: true };
|
|
2278
|
+
}
|
|
2279
|
+
const ticket = generation;
|
|
2280
|
+
const revision = record.formState.revision;
|
|
2281
|
+
const info = getInfo();
|
|
2282
|
+
const display = record.context.businessIndex.modelDisplay;
|
|
2283
|
+
const errors = await validateObjectBomQtyOnSubmit({
|
|
2284
|
+
formState: record.formState.state,
|
|
2285
|
+
objectFieldList: record.context.formConfig.objectFieldList,
|
|
2286
|
+
formInstBom: record.context.services.tmplBomController?.formInstBom,
|
|
2287
|
+
showModelName: display.name,
|
|
2288
|
+
showModelKey: display.key || info?.modelKey || ""
|
|
2289
|
+
});
|
|
2290
|
+
if (!alive() || generation !== ticket || record.formState.revision !== revision || live && getInfo()?.renderModeType !== RenderModeEnum.FormMode)
|
|
2291
|
+
return;
|
|
2292
|
+
const fields = {};
|
|
2293
|
+
const comments = {};
|
|
2294
|
+
for (const source of errors) {
|
|
2295
|
+
const adapted = calcObjectError(source);
|
|
2296
|
+
(fields[adapted.error.field] ??= []).push(adapted.error);
|
|
2297
|
+
if (adapted.path) (comments[adapted.path] ??= []).push(adapted.error);
|
|
2298
|
+
}
|
|
2299
|
+
enabled = !!record.context.formConfig.objectFieldList?.length;
|
|
2300
|
+
lastRevision = revision;
|
|
2301
|
+
replaceObjectFields(comments);
|
|
2302
|
+
return { isValid: !errors.length, fields: Object.keys(fields).length ? fields : void 0 };
|
|
2303
|
+
}
|
|
2304
|
+
function requestLive() {
|
|
2305
|
+
cancelLive();
|
|
2306
|
+
if (!alive() || !enabled || submitting > 0 || getInfo()?.renderModeType !== RenderModeEnum.FormMode)
|
|
2307
|
+
return;
|
|
2308
|
+
const ticket = generation;
|
|
2309
|
+
timer = setTimeout(() => {
|
|
2310
|
+
timer = void 0;
|
|
2311
|
+
void (async () => {
|
|
2312
|
+
await record.controller?.waitUntilPrepared();
|
|
2313
|
+
await record.asyncTasks.waitForRequired();
|
|
2314
|
+
if (!alive() || generation !== ticket || submitting > 0 || getInfo()?.renderModeType !== RenderModeEnum.FormMode)
|
|
2315
|
+
return;
|
|
2316
|
+
await validate(true);
|
|
2317
|
+
})().catch((error) => {
|
|
2318
|
+
if (alive()) console.error("物料消耗对象实时校验失败", error);
|
|
2319
|
+
});
|
|
2320
|
+
}, 300);
|
|
2321
|
+
}
|
|
2322
|
+
return {
|
|
2323
|
+
validate,
|
|
2324
|
+
requestLive,
|
|
2325
|
+
replaceTableFields,
|
|
2326
|
+
clear,
|
|
2327
|
+
beginSubmit() {
|
|
2328
|
+
submitting++;
|
|
2329
|
+
cancelLive();
|
|
2330
|
+
},
|
|
2331
|
+
endSubmit() {
|
|
2332
|
+
submitting--;
|
|
2333
|
+
if (alive() && submitting === 0 && enabled && lastRevision !== record.formState.revision)
|
|
2334
|
+
requestLive();
|
|
2335
|
+
},
|
|
2336
|
+
dispose() {
|
|
2337
|
+
disposed = true;
|
|
2338
|
+
cancelLive();
|
|
2339
|
+
paths.clear();
|
|
2340
|
+
unlocated.clear();
|
|
2341
|
+
}
|
|
2342
|
+
};
|
|
2343
|
+
}
|
|
1969
2344
|
function applyValidationComments(info, comments, kind) {
|
|
1970
2345
|
if (!info) return;
|
|
1971
2346
|
const locationKey = kind === "field" ? "validatorLocationList" : "mcValidatorLocationList";
|
|
@@ -1983,6 +2358,29 @@ function applyValidationComments(info, comments, kind) {
|
|
|
1983
2358
|
info[messageKey] = map;
|
|
1984
2359
|
}
|
|
1985
2360
|
function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType) {
|
|
2361
|
+
const objectValidations = /* @__PURE__ */ new WeakMap();
|
|
2362
|
+
function getObjectValidation(record) {
|
|
2363
|
+
const existing = objectValidations.get(record);
|
|
2364
|
+
if (existing) return existing;
|
|
2365
|
+
const uniqueId = record.context.uniqueId;
|
|
2366
|
+
const validation = createMaterialConsumeObjectValidation({
|
|
2367
|
+
record,
|
|
2368
|
+
getInfo: () => getInfo(uniqueId),
|
|
2369
|
+
isCurrent: () => runtimeRegistry.get(uniqueId) === record,
|
|
2370
|
+
shouldSkip: () => {
|
|
2371
|
+
const skip = syncInspectionDecisionRule(uniqueId);
|
|
2372
|
+
if (skip) clearInspectionValidationState(uniqueId);
|
|
2373
|
+
return skip;
|
|
2374
|
+
},
|
|
2375
|
+
applyComments: (fields) => applyValidationComments(getInfo(uniqueId), fields, "material")
|
|
2376
|
+
});
|
|
2377
|
+
objectValidations.set(record, validation);
|
|
2378
|
+
runtimeRegistry.registerDisposable(uniqueId, () => {
|
|
2379
|
+
validation.dispose();
|
|
2380
|
+
objectValidations.delete(record);
|
|
2381
|
+
});
|
|
2382
|
+
return validation;
|
|
2383
|
+
}
|
|
1986
2384
|
const inspectionDecisionMatched = /* @__PURE__ */ new WeakMap();
|
|
1987
2385
|
const inspectionDecisionPrompting = /* @__PURE__ */ new WeakSet();
|
|
1988
2386
|
function openInspectionDecisionPrompt(uniqueId, content) {
|
|
@@ -2023,11 +2421,14 @@ function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType)
|
|
|
2023
2421
|
return matched;
|
|
2024
2422
|
}
|
|
2025
2423
|
function clearInspectionValidationState(uniqueId) {
|
|
2424
|
+
const record = runtimeRegistry.get(uniqueId);
|
|
2425
|
+
if (record) objectValidations.get(record)?.clear();
|
|
2026
2426
|
applyValidationComments(getInfo(uniqueId), null, "field");
|
|
2027
2427
|
applyValidationComments(getInfo(uniqueId), null, "material");
|
|
2028
2428
|
}
|
|
2029
2429
|
function bindFormValidationSync(uniqueId) {
|
|
2030
2430
|
const record = runtimeRegistry.require(uniqueId);
|
|
2431
|
+
const objects = getObjectValidation(record);
|
|
2031
2432
|
syncInspectionDecisionRule(uniqueId);
|
|
2032
2433
|
const stop = record.formState.subscribe(() => {
|
|
2033
2434
|
if (runtimeRegistry.get(uniqueId) !== record) return;
|
|
@@ -2038,6 +2439,7 @@ function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType)
|
|
|
2038
2439
|
uniqueId,
|
|
2039
2440
|
!suppressed && info.renderModeType === RenderModeEnum.FormMode
|
|
2040
2441
|
);
|
|
2442
|
+
objects.requestLive();
|
|
2041
2443
|
if (suppressed) return;
|
|
2042
2444
|
if (info.renderModeType === RenderModeEnum.FormMode) {
|
|
2043
2445
|
record.validation.requestLive("change");
|
|
@@ -2070,48 +2472,43 @@ function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType)
|
|
|
2070
2472
|
}
|
|
2071
2473
|
async function runSubmissionValidation(uniqueId) {
|
|
2072
2474
|
const record = runtimeRegistry.require(uniqueId);
|
|
2073
|
-
const
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
const res = await record.validation.validate();
|
|
2080
|
-
if (!res || runtimeRegistry.get(uniqueId) !== record) return;
|
|
2081
|
-
const revision = record.formState.revision;
|
|
2082
|
-
if (bomC) {
|
|
2083
|
-
const bomRes = await bomC.submitValidate();
|
|
2084
|
-
if (runtimeRegistry.get(uniqueId) !== record || record.formState.revision !== revision)
|
|
2085
|
-
return;
|
|
2086
|
-
applyValidationComments(getInfo(uniqueId), bomRes.fields ?? null, "material");
|
|
2087
|
-
if (!bomRes.isValid) {
|
|
2088
|
-
merge(res, bomRes);
|
|
2089
|
-
return res;
|
|
2475
|
+
const objects = getObjectValidation(record);
|
|
2476
|
+
objects.beginSubmit();
|
|
2477
|
+
try {
|
|
2478
|
+
if (syncInspectionDecisionRule(uniqueId)) {
|
|
2479
|
+
clearInspectionValidationState(uniqueId);
|
|
2480
|
+
return { isValid: true };
|
|
2090
2481
|
}
|
|
2091
|
-
const
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
const
|
|
2095
|
-
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
|
|
2104
|
-
const
|
|
2105
|
-
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
|
|
2482
|
+
const res = await record.validation.validate();
|
|
2483
|
+
if (!res || runtimeRegistry.get(uniqueId) !== record) return;
|
|
2484
|
+
const revision = record.formState.revision;
|
|
2485
|
+
const bomC = record.context.services.tmplBomController;
|
|
2486
|
+
if (bomC) {
|
|
2487
|
+
const bomRes = await bomC.submitValidate();
|
|
2488
|
+
if (runtimeRegistry.get(uniqueId) !== record || record.formState.revision !== revision)
|
|
2489
|
+
return;
|
|
2490
|
+
objects.replaceTableFields(bomRes.fields);
|
|
2491
|
+
if (!bomRes.isValid) {
|
|
2492
|
+
merge(res, bomRes);
|
|
2493
|
+
return res;
|
|
2494
|
+
}
|
|
2495
|
+
const objectRes = await objects.validate();
|
|
2496
|
+
if (!objectRes || runtimeRegistry.get(uniqueId) !== record || record.formState.revision !== revision)
|
|
2497
|
+
return;
|
|
2498
|
+
if (!objectRes.isValid) {
|
|
2499
|
+
const fields = { ...res.fields ?? {} };
|
|
2500
|
+
for (const [path, errors] of Object.entries(objectRes.fields ?? {})) {
|
|
2501
|
+
fields[path] = [...fields[path] ?? [], ...errors];
|
|
2502
|
+
}
|
|
2503
|
+
return { ...res, isValid: false, fields };
|
|
2504
|
+
}
|
|
2505
|
+
} else {
|
|
2506
|
+
objects.clear();
|
|
2112
2507
|
}
|
|
2508
|
+
return res;
|
|
2509
|
+
} finally {
|
|
2510
|
+
objects.endSubmit();
|
|
2113
2511
|
}
|
|
2114
|
-
return res;
|
|
2115
2512
|
}
|
|
2116
2513
|
function updateRenderModeType(uniqueId, mode, updateButton = false) {
|
|
2117
2514
|
const record = runtimeRegistry.require(uniqueId);
|
|
@@ -2146,6 +2543,7 @@ function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType)
|
|
|
2146
2543
|
);
|
|
2147
2544
|
if (!isCurrent() || runtimeRegistry.get(uniqueId) !== record) return;
|
|
2148
2545
|
syncInspectionDecisionRule(uniqueId);
|
|
2546
|
+
record.defaultValueValidation?.requestCheck();
|
|
2149
2547
|
await record.validation.validate("display");
|
|
2150
2548
|
});
|
|
2151
2549
|
await record.controller.waitUntilPrepared();
|
|
@@ -2230,6 +2628,16 @@ function createRuntimeDataSourceBinding(registry, payload) {
|
|
|
2230
2628
|
}
|
|
2231
2629
|
}
|
|
2232
2630
|
}
|
|
2631
|
+
const tableColumns = /* @__PURE__ */ new Map();
|
|
2632
|
+
for (const [key, target] of targets) {
|
|
2633
|
+
if (!target.table) continue;
|
|
2634
|
+
const columns = tableColumns.get(target.table) ?? /* @__PURE__ */ new Map();
|
|
2635
|
+
columns.set(key.slice(target.table.length + 1), target.isFieldModel ? `_OPCT.${target.field}` : target.field);
|
|
2636
|
+
tableColumns.set(target.table, columns);
|
|
2637
|
+
}
|
|
2638
|
+
for (const table of tableColumns.keys()) {
|
|
2639
|
+
targets.set(table, { field: table, isFieldModel: false });
|
|
2640
|
+
}
|
|
2233
2641
|
const fieldFillRuntime = markRaw(
|
|
2234
2642
|
createFieldFillRuntime({
|
|
2235
2643
|
preserveExistingValues: true,
|
|
@@ -2238,6 +2646,8 @@ function createRuntimeDataSourceBinding(registry, payload) {
|
|
|
2238
2646
|
getContext,
|
|
2239
2647
|
getForm: () => formState.state,
|
|
2240
2648
|
getFormField: (key) => {
|
|
2649
|
+
const columns = tableColumns.get(key);
|
|
2650
|
+
if (columns) return getFieldFillTable(formState.state[key], columns);
|
|
2241
2651
|
const target = targets.get(key);
|
|
2242
2652
|
if (target?.table)
|
|
2243
2653
|
return getFieldFillColumn(
|
|
@@ -2255,7 +2665,10 @@ function createRuntimeDataSourceBinding(registry, payload) {
|
|
|
2255
2665
|
setField: (key, value, collection) => {
|
|
2256
2666
|
if (registry.get(uniqueId) !== record) throw new Error(`字段填充实例已释放:${uniqueId}`);
|
|
2257
2667
|
const target = targets.get(key);
|
|
2258
|
-
|
|
2668
|
+
const columns = tableColumns.get(key);
|
|
2669
|
+
if (columns) {
|
|
2670
|
+
formState.setField(key, buildFieldFillTableRows(formState.state[key], value, columns), "async");
|
|
2671
|
+
} else if (target.table) {
|
|
2259
2672
|
const field = target.isFieldModel ? `_OPCT.${target.field}` : target.field;
|
|
2260
2673
|
formState.setField(
|
|
2261
2674
|
target.table,
|
|
@@ -2302,7 +2715,7 @@ function createRuntimeDataSourceBinding(registry, payload) {
|
|
|
2302
2715
|
record.dataSourceManager = void 0;
|
|
2303
2716
|
fieldFillRuntime?.dispose();
|
|
2304
2717
|
manager.dispose();
|
|
2305
|
-
const { [uniqueId]:
|
|
2718
|
+
const { [uniqueId]: _, ...rest } = dataSourceManagerMap.value;
|
|
2306
2719
|
dataSourceManagerMap.value = rest;
|
|
2307
2720
|
});
|
|
2308
2721
|
await initializeOnce();
|
|
@@ -2455,10 +2868,17 @@ function useRenderPageFactory(props, payload) {
|
|
|
2455
2868
|
payload,
|
|
2456
2869
|
getConsumeData
|
|
2457
2870
|
);
|
|
2871
|
+
const initializedInstanceIds = /* @__PURE__ */ new Set();
|
|
2872
|
+
let currentInstanceIdsKey;
|
|
2458
2873
|
const getInstanceData = createRuntimeRequestSource(props, payload);
|
|
2459
2874
|
const pipeline = createRuntimeLoadPipeline(runtimeRegistry.loadState, {
|
|
2460
2875
|
request: getInstanceData,
|
|
2461
|
-
prepare: (sources) => prepareRuntimeBatch(
|
|
2876
|
+
prepare: (sources) => prepareRuntimeBatch(
|
|
2877
|
+
sources,
|
|
2878
|
+
(id, source) => initializeRuntimeInstance(id, source, {
|
|
2879
|
+
initializeValues: !initializedInstanceIds.has(id)
|
|
2880
|
+
})
|
|
2881
|
+
),
|
|
2462
2882
|
install: async (prepared, isCurrent) => {
|
|
2463
2883
|
clear();
|
|
2464
2884
|
const installed = [];
|
|
@@ -2483,8 +2903,12 @@ function useRenderPageFactory(props, payload) {
|
|
|
2483
2903
|
onValidate: () => runSubmissionValidation(uniqueId),
|
|
2484
2904
|
onValidationFailed: (result) => record.sheetService.navigateFirstError(Object.keys(result.fields ?? {})),
|
|
2485
2905
|
onGetSubmitData: (formState) => {
|
|
2486
|
-
record.context.services.subTableCoreFactory
|
|
2487
|
-
|
|
2906
|
+
const subTableFactory = record.context.services.subTableCoreFactory;
|
|
2907
|
+
subTableFactory?.prepareSubmitFormState(formState);
|
|
2908
|
+
return transformUtils.getSubmitFormData(formState, {
|
|
2909
|
+
...record.context.businessIndex,
|
|
2910
|
+
businessTableFields: subTableFactory?.getBusinessTableFields() ?? []
|
|
2911
|
+
});
|
|
2488
2912
|
}
|
|
2489
2913
|
})
|
|
2490
2914
|
);
|
|
@@ -2498,6 +2922,9 @@ function useRenderPageFactory(props, payload) {
|
|
|
2498
2922
|
record.fieldInitializer = markRaw(
|
|
2499
2923
|
new RuntimeFieldInitializer(record, res.basicInfo, res.selfInfo)
|
|
2500
2924
|
);
|
|
2925
|
+
record.defaultValueValidation = markRaw(
|
|
2926
|
+
new RuntimeDefaultValueValidation(record, reactiveInfo, res.defaultValueOrigins)
|
|
2927
|
+
);
|
|
2501
2928
|
bindRuntimeBusinessServices(runtimeRegistry, record, res.selfInfo.dataStatus);
|
|
2502
2929
|
dataSourceBindings.push(bindDataSources(record, reactiveInfo, res.selfInfo));
|
|
2503
2930
|
}
|
|
@@ -2515,7 +2942,10 @@ function useRenderPageFactory(props, payload) {
|
|
|
2515
2942
|
record.formState.markClean();
|
|
2516
2943
|
payload.onFormStateReady?.(record.formState);
|
|
2517
2944
|
}
|
|
2518
|
-
if (isCurrent())
|
|
2945
|
+
if (isCurrent()) {
|
|
2946
|
+
prepared.forEach(({ basicInfo }) => initializedInstanceIds.add(basicInfo.key));
|
|
2947
|
+
finisher.value++;
|
|
2948
|
+
}
|
|
2519
2949
|
} catch (error) {
|
|
2520
2950
|
const failedIds = /* @__PURE__ */ new Set();
|
|
2521
2951
|
installed.forEach((record) => {
|
|
@@ -2540,6 +2970,11 @@ function useRenderPageFactory(props, payload) {
|
|
|
2540
2970
|
const ids = (Array.isArray(requestIds) ? requestIds : [requestIds]).filter(
|
|
2541
2971
|
(id) => typeof id === "string" && !!id
|
|
2542
2972
|
);
|
|
2973
|
+
const instanceIdsKey = JSON.stringify([...new Set(ids)].sort());
|
|
2974
|
+
if (instanceIdsKey !== currentInstanceIdsKey) {
|
|
2975
|
+
initializedInstanceIds.clear();
|
|
2976
|
+
currentInstanceIdsKey = instanceIdsKey;
|
|
2977
|
+
}
|
|
2543
2978
|
if (!ids.length) {
|
|
2544
2979
|
pipeline.invalidate();
|
|
2545
2980
|
clear();
|
|
@@ -2686,7 +3121,7 @@ function useEbrWikiFactoryV2(props, payload) {
|
|
|
2686
3121
|
}
|
|
2687
3122
|
watch(
|
|
2688
3123
|
[() => props.materialNo, () => edhrCounter.value],
|
|
2689
|
-
async ([newMaterialNo,
|
|
3124
|
+
async ([newMaterialNo, _]) => {
|
|
2690
3125
|
if (isEmpty(newMaterialNo)) return;
|
|
2691
3126
|
loading.value = true;
|
|
2692
3127
|
clear();
|
|
@@ -2865,7 +3300,7 @@ function useEbrWikiFactoryV2(props, payload) {
|
|
|
2865
3300
|
);
|
|
2866
3301
|
watch(
|
|
2867
3302
|
[() => selectSelfInfo.value, () => instanceCounter.value],
|
|
2868
|
-
([newSelectSelfInfo,
|
|
3303
|
+
([newSelectSelfInfo, _]) => {
|
|
2869
3304
|
if (newSelectSelfInfo && payload.pageType === "record-change") {
|
|
2870
3305
|
emitter.emit(EmitterEnum.__on_select_ebr_doc_instance_id, {
|
|
2871
3306
|
instanceId: newSelectSelfInfo.id
|
|
@@ -3270,250 +3705,251 @@ function filterAnnotationItemsUpToCurrent(items) {
|
|
|
3270
3705
|
});
|
|
3271
3706
|
}
|
|
3272
3707
|
export {
|
|
3273
|
-
|
|
3708
|
+
aW as AITooltips,
|
|
3274
3709
|
A2 as AllocateTableCore,
|
|
3275
|
-
|
|
3276
|
-
|
|
3277
|
-
|
|
3278
|
-
|
|
3710
|
+
ao2 as BaseFormModelFetcher,
|
|
3711
|
+
aY as BinarizeMethodOptions,
|
|
3712
|
+
ba as BindCmpStyleEnum,
|
|
3713
|
+
a6 as BooleanShowMode,
|
|
3279
3714
|
B2 as BorderTD,
|
|
3280
3715
|
BpmnNodeTypeEnum,
|
|
3281
|
-
|
|
3282
|
-
|
|
3716
|
+
bP as BpmnSignatureTypeEnum,
|
|
3717
|
+
bQ as ButtonTypeEnum,
|
|
3283
3718
|
B as BwipCodeType,
|
|
3284
|
-
|
|
3285
|
-
|
|
3286
|
-
|
|
3719
|
+
bR as CHECK_TABLE_MEDPRO_PROTOCOL_KEY,
|
|
3720
|
+
H as CellType,
|
|
3721
|
+
am as CellWidgetViewState,
|
|
3287
3722
|
CheckDsTypeEnum,
|
|
3288
|
-
|
|
3723
|
+
bS as CodeRunner,
|
|
3289
3724
|
ComponentTypeEnum,
|
|
3290
|
-
|
|
3291
|
-
|
|
3292
|
-
|
|
3293
|
-
|
|
3294
|
-
|
|
3295
|
-
|
|
3296
|
-
|
|
3297
|
-
|
|
3298
|
-
|
|
3299
|
-
|
|
3300
|
-
|
|
3725
|
+
bT as Config_Fields,
|
|
3726
|
+
bU as ControlStatusEnum,
|
|
3727
|
+
bk as DEVICE_GROUP_QUERY_KEY,
|
|
3728
|
+
bV as DEVICE_SEARCH_API,
|
|
3729
|
+
a$ as DateFormat,
|
|
3730
|
+
aF as DecimalDisplayMode,
|
|
3731
|
+
aX as DenoiseMethodOptions,
|
|
3732
|
+
ap2 as DeviceConnector,
|
|
3733
|
+
aU as DeviceLink,
|
|
3734
|
+
o as DeviceLinkTmplUtil,
|
|
3735
|
+
aV as DeviceParamsTypeTitle,
|
|
3301
3736
|
D as DevicePartConsumeTableCore,
|
|
3302
|
-
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
|
|
3306
|
-
|
|
3307
|
-
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
|
|
3737
|
+
bW as DeviceStatus,
|
|
3738
|
+
an as DiagonalDirection,
|
|
3739
|
+
ar as DiagonalVertex,
|
|
3740
|
+
a52 as DocumentLayout,
|
|
3741
|
+
aq2 as DocumentLoading,
|
|
3742
|
+
a3 as DocumentPaper,
|
|
3743
|
+
ar2 as DynamicQuickFillModal,
|
|
3744
|
+
a4 as DynamicTableAction,
|
|
3745
|
+
bX as EBR_PROVIDE_ENUM,
|
|
3746
|
+
bY as EFieldBizTypeEnum,
|
|
3747
|
+
J as EMPTY_PRODUCT_VERSION_ID,
|
|
3748
|
+
aO as EmptySymbol,
|
|
3749
|
+
a8 as FallbackSignTypeEnum,
|
|
3750
|
+
al as FieldSysVarDefaultValueEnum,
|
|
3316
3751
|
FillingTypeEnum,
|
|
3317
|
-
|
|
3752
|
+
as2 as FixedQuickFillModal,
|
|
3318
3753
|
FormAnnotationController,
|
|
3319
|
-
|
|
3754
|
+
F as FormModelController,
|
|
3320
3755
|
FormTmplBomController,
|
|
3321
|
-
|
|
3756
|
+
at as FormTmplConfigController,
|
|
3322
3757
|
FormTypeEnum,
|
|
3323
|
-
|
|
3758
|
+
aG as ImageDisplayModeEnum,
|
|
3324
3759
|
InstanceStatusValues,
|
|
3325
|
-
|
|
3326
|
-
|
|
3327
|
-
|
|
3328
|
-
|
|
3329
|
-
|
|
3330
|
-
|
|
3760
|
+
aZ as JoinModelTypeEum,
|
|
3761
|
+
au2 as LEGACY_RUNTIME_FORM_CONFIG_KEYS,
|
|
3762
|
+
av as LEGACY_RUNTIME_SHEET_ID,
|
|
3763
|
+
aw as LEGACY_RUNTIME_SHEET_TITLE,
|
|
3764
|
+
a5 as LabelPosition,
|
|
3765
|
+
ap as LineDirection,
|
|
3331
3766
|
L as LineType,
|
|
3332
|
-
|
|
3767
|
+
bZ as MAX_FRONT_ROW_KEY_LENGTH,
|
|
3333
3768
|
M as MAX_RUNTIME_SHEETS,
|
|
3334
3769
|
a as MAX_RUNTIME_SHEET_TITLE_LENGTH,
|
|
3335
|
-
|
|
3336
|
-
|
|
3337
|
-
|
|
3770
|
+
a0 as MBRender,
|
|
3771
|
+
ax as MCDataUtil,
|
|
3772
|
+
a1 as MCRender,
|
|
3338
3773
|
d as MULTI_SHEET_SCHEMA_VERSION,
|
|
3339
3774
|
MaterialConsumeTableController,
|
|
3340
3775
|
MaterialConsumptionPatternEnum,
|
|
3341
3776
|
M2 as MaterialRequisitionTableCore,
|
|
3342
3777
|
MaterialStatusEnum,
|
|
3343
|
-
|
|
3344
|
-
|
|
3778
|
+
a2 as MaterialSubstitutionTableCore,
|
|
3779
|
+
b_ as MobileFillTypeEnum,
|
|
3345
3780
|
NCB_PROVIDE,
|
|
3346
|
-
|
|
3347
|
-
|
|
3781
|
+
ay as OCR_MODEL_PRECISION_ENUM_KEY,
|
|
3782
|
+
b$ as OfficeTypeEnum,
|
|
3348
3783
|
O as Orientation,
|
|
3349
|
-
|
|
3784
|
+
t as PageSizeEnum,
|
|
3350
3785
|
P as PaginationFormat,
|
|
3351
|
-
|
|
3352
|
-
|
|
3353
|
-
|
|
3354
|
-
|
|
3355
|
-
|
|
3786
|
+
ag as PaperSizeMap,
|
|
3787
|
+
q as PaperWidgeType,
|
|
3788
|
+
Y as PaperWidgeValueType,
|
|
3789
|
+
K as ParamModelTypeEnum,
|
|
3790
|
+
P2 as PartStocktakeTableCore,
|
|
3356
3791
|
PlatformEnum,
|
|
3357
|
-
|
|
3792
|
+
c0 as PosEnum,
|
|
3358
3793
|
b as PretreatmentListTableCore,
|
|
3359
3794
|
c as ProfileDrivenSubTableCore,
|
|
3360
|
-
|
|
3361
|
-
|
|
3362
|
-
|
|
3795
|
+
c1 as RUNTIME_COLUMN_ROW_KEY,
|
|
3796
|
+
aB as RangeCompareOp,
|
|
3797
|
+
RangeValidateMode,
|
|
3363
3798
|
RenderModeEnum,
|
|
3364
|
-
|
|
3365
|
-
|
|
3366
|
-
|
|
3799
|
+
az as RuntimeAsyncTaskCoordinator,
|
|
3800
|
+
aA as RuntimeDependencyService,
|
|
3801
|
+
aB2 as RuntimeFieldRegistry,
|
|
3367
3802
|
RuntimeFormStateStore,
|
|
3368
3803
|
RuntimeInstanceController,
|
|
3369
|
-
|
|
3804
|
+
aC as RuntimeInstanceEventBus,
|
|
3370
3805
|
RuntimeInstanceRegistry,
|
|
3371
|
-
|
|
3806
|
+
aD as RuntimePersistenceCoordinator,
|
|
3372
3807
|
RuntimeRuleCompiler,
|
|
3373
3808
|
RuntimeSheetService,
|
|
3374
|
-
|
|
3375
|
-
|
|
3376
|
-
|
|
3377
|
-
|
|
3378
|
-
|
|
3379
|
-
|
|
3809
|
+
aE as RuntimeValidationService,
|
|
3810
|
+
ab as SignShowTypeEnum,
|
|
3811
|
+
a7 as SignatureImageDirectionEnum,
|
|
3812
|
+
a9 as SignatureNumberTypeEnum,
|
|
3813
|
+
aa as SignatureTimeTypeEnum,
|
|
3814
|
+
ac as SignatureTypeEnum,
|
|
3380
3815
|
d2 as SterilizeBatchTableCore,
|
|
3381
3816
|
e2 as StocktakeTableCore,
|
|
3382
|
-
|
|
3817
|
+
aF2 as SubTableCore,
|
|
3383
3818
|
SubTableCoreFactory,
|
|
3384
|
-
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
|
|
3388
|
-
|
|
3389
|
-
|
|
3819
|
+
h as SubTableType,
|
|
3820
|
+
c2 as SummaryApproveHisTypeEnum,
|
|
3821
|
+
aq as TimeDiffFormat,
|
|
3822
|
+
au as ViewTypeEnum,
|
|
3823
|
+
W2 as WarehouseInTableCore,
|
|
3824
|
+
f as WarehouseInboundTableCore,
|
|
3390
3825
|
g as WarehouseOutTableCore,
|
|
3391
3826
|
h2 as WarehouseOutboundTableCore,
|
|
3392
|
-
|
|
3393
|
-
|
|
3394
|
-
|
|
3395
|
-
|
|
3827
|
+
ao as WidgetImageSizeMode,
|
|
3828
|
+
c3 as applyCheckDsDataToRuntime,
|
|
3829
|
+
H2 as applyConsumeObjectTraceChange,
|
|
3830
|
+
c4 as applyMedProCheckDsDataToRuntime,
|
|
3396
3831
|
baseDataUtils,
|
|
3397
|
-
|
|
3398
|
-
|
|
3399
|
-
|
|
3400
|
-
|
|
3401
|
-
|
|
3832
|
+
c5 as bindRuntimeTableColumns,
|
|
3833
|
+
c6 as buildDeviceBaseQuery,
|
|
3834
|
+
aJ as buildDeviceFilterQuery,
|
|
3835
|
+
aG2 as buildFormChangeDisplayRows,
|
|
3836
|
+
x as buildObjectLotExtraQuery,
|
|
3402
3837
|
buildRuntimeFieldPath,
|
|
3403
|
-
|
|
3404
|
-
|
|
3838
|
+
c7 as calcFillData,
|
|
3839
|
+
c8 as calcUtils,
|
|
3405
3840
|
calculateFormula,
|
|
3406
3841
|
collectAnnotationItemsByLocation,
|
|
3407
3842
|
collectFormChangeFieldLocations,
|
|
3408
3843
|
commonUtils,
|
|
3409
3844
|
convertHistoricalAnnotationLocation,
|
|
3410
|
-
|
|
3845
|
+
aH as convertV1Runtime,
|
|
3411
3846
|
e as createRuntimeDocumentV2,
|
|
3412
3847
|
createRuntimeInstanceContext,
|
|
3413
|
-
|
|
3414
|
-
|
|
3415
|
-
|
|
3848
|
+
c9 as decodeTableCellRowKey,
|
|
3849
|
+
aI as detailsHaveFormChangeRowOps,
|
|
3850
|
+
ca as encodeTableCellRowKey,
|
|
3416
3851
|
enrichFormChangeRowDetails,
|
|
3417
|
-
|
|
3418
|
-
|
|
3419
|
-
|
|
3420
|
-
|
|
3421
|
-
|
|
3422
|
-
|
|
3852
|
+
cb as ensureFrontRowKey,
|
|
3853
|
+
cc as ensureTableRowKeys,
|
|
3854
|
+
aJ2 as extractFormChangeRowDetails,
|
|
3855
|
+
cd as extractKeywordFromQueryData,
|
|
3856
|
+
ce as fetchCheckDsDataForTable,
|
|
3857
|
+
cf as fetchCustomCheckDsData,
|
|
3423
3858
|
fetchHistoryConsume,
|
|
3424
|
-
|
|
3859
|
+
cg as fetchMedProCheckDsData,
|
|
3425
3860
|
fetchOperationReceiveQty,
|
|
3426
3861
|
fetchUdi,
|
|
3427
3862
|
filterAnnotationItemsUpToCurrent,
|
|
3428
|
-
|
|
3429
|
-
|
|
3863
|
+
bp as findRuntimeParentRow,
|
|
3864
|
+
ch as findRuntimeTableCell,
|
|
3430
3865
|
findRuntimeTableRow,
|
|
3431
3866
|
getAppInfo,
|
|
3432
3867
|
getBusinessFieldKey,
|
|
3433
|
-
|
|
3434
|
-
|
|
3435
|
-
|
|
3436
|
-
|
|
3437
|
-
|
|
3438
|
-
|
|
3868
|
+
ci as getCheckTableSnapshotKey,
|
|
3869
|
+
aK2 as getFormChangeRowKey,
|
|
3870
|
+
aL as getFormChangeRowOp,
|
|
3871
|
+
b6 as getLotLockedReason,
|
|
3872
|
+
w as getObjectBomMaterialLotQuery,
|
|
3873
|
+
I as getObjectBomProductQuery,
|
|
3439
3874
|
getParseFormulaVarInfos,
|
|
3440
|
-
|
|
3441
|
-
|
|
3442
|
-
|
|
3443
|
-
|
|
3444
|
-
|
|
3875
|
+
cj as getParseRuleConfig,
|
|
3876
|
+
bb as getParseRuleInfo,
|
|
3877
|
+
bc as getParseRuleValue,
|
|
3878
|
+
ck as getReinspectionDate,
|
|
3879
|
+
cl as getRenderedRuntimeTableCell,
|
|
3445
3880
|
getRuntimeDataFieldId,
|
|
3446
3881
|
getRuntimeDependencyOutputKey,
|
|
3447
|
-
|
|
3882
|
+
aM as getSubTableQuickFillInfo,
|
|
3448
3883
|
getSuiteKey,
|
|
3449
|
-
|
|
3450
|
-
|
|
3451
|
-
|
|
3452
|
-
|
|
3453
|
-
|
|
3454
|
-
|
|
3884
|
+
cm as handleOldConfig,
|
|
3885
|
+
cn as hasAnyCheckTableSnapshot,
|
|
3886
|
+
co as hasByTableCheckTableSnapshot,
|
|
3887
|
+
cp as hasSharedCheckTableSnapshot,
|
|
3888
|
+
aN as isAnnLocationSelected,
|
|
3889
|
+
aO2 as isBlank,
|
|
3455
3890
|
isBomGranted,
|
|
3456
3891
|
isEdhrSuite,
|
|
3457
3892
|
isEqmSuite,
|
|
3458
|
-
|
|
3459
|
-
|
|
3893
|
+
aP as isFormChangeGhostRow,
|
|
3894
|
+
cq as isMedProSuite,
|
|
3460
3895
|
isRowAddedInCurrentFormChange,
|
|
3461
|
-
|
|
3462
|
-
|
|
3463
|
-
|
|
3464
|
-
|
|
3465
|
-
|
|
3896
|
+
cr as isTableRowKeyMatch,
|
|
3897
|
+
cs as jsonSchemaUtils,
|
|
3898
|
+
ct as judgeUnique,
|
|
3899
|
+
b5 as materialCheck,
|
|
3900
|
+
cu as migrateDiagonalDirectionToVertex,
|
|
3466
3901
|
nextFormChangeRowViewHistoryId,
|
|
3467
|
-
|
|
3468
|
-
|
|
3469
|
-
|
|
3470
|
-
|
|
3471
|
-
|
|
3902
|
+
p as normalizeAIOcrTmpl,
|
|
3903
|
+
K2 as normalizeHistoricalAutofillRow,
|
|
3904
|
+
m as normalizeHistoricalBusinessRow,
|
|
3905
|
+
aQ as normalizeHistoricalFieldConfig,
|
|
3906
|
+
bd as normalizeRefLoaderResult,
|
|
3472
3907
|
normalizeRuntime,
|
|
3473
3908
|
parseFrontConfig,
|
|
3474
3909
|
parseRuntimeFieldPath,
|
|
3475
3910
|
parseUdi,
|
|
3476
|
-
|
|
3477
|
-
|
|
3478
|
-
|
|
3479
|
-
|
|
3480
|
-
|
|
3911
|
+
aR as pickObjectFieldKeys,
|
|
3912
|
+
aS as recordSubtableRowAdd,
|
|
3913
|
+
aT as recordSubtableRowDelete,
|
|
3914
|
+
aK as refUtils,
|
|
3915
|
+
aU2 as relocateDeletedRowsToEnd,
|
|
3481
3916
|
renderUtils,
|
|
3482
|
-
|
|
3483
|
-
|
|
3484
|
-
|
|
3485
|
-
|
|
3486
|
-
|
|
3487
|
-
|
|
3488
|
-
|
|
3489
|
-
|
|
3490
|
-
|
|
3917
|
+
cv as requestMedProCheckDsData,
|
|
3918
|
+
cw as requestNonMedProCheckDsData,
|
|
3919
|
+
aV2 as resolveAnnotationFieldLocation,
|
|
3920
|
+
as as resolveDiagonalVertex,
|
|
3921
|
+
y as resolveFieldRenderComponent,
|
|
3922
|
+
aW2 as resolveFormChangeRowUi,
|
|
3923
|
+
C as resolveObjectBomEntry,
|
|
3924
|
+
y2 as resolveObjectFieldKeys,
|
|
3925
|
+
aX2 as resolveRowFormChangeMark,
|
|
3491
3926
|
resolveUdiQuery,
|
|
3492
|
-
|
|
3493
|
-
|
|
3494
|
-
|
|
3927
|
+
E as runWithFillProduct,
|
|
3928
|
+
t2 as setSelectAnnotationId,
|
|
3929
|
+
aY2 as setSelectMobileTdId,
|
|
3495
3930
|
s as setSelectValidatorId,
|
|
3496
|
-
|
|
3497
|
-
|
|
3498
|
-
|
|
3931
|
+
cx as splitRuntimeDataPath,
|
|
3932
|
+
a_ as sqlUtils,
|
|
3933
|
+
cy as stockCheck,
|
|
3934
|
+
aZ2 as stripLegacyFormConfigFromPaper,
|
|
3499
3935
|
transformUtils,
|
|
3500
|
-
|
|
3936
|
+
U as useDependency,
|
|
3501
3937
|
useEbrWikiFactoryV2,
|
|
3502
|
-
|
|
3503
|
-
|
|
3504
|
-
|
|
3938
|
+
V as useFieldPresentation,
|
|
3939
|
+
u as useFormModel,
|
|
3940
|
+
k as useFormTmplConfig,
|
|
3505
3941
|
useMaterialBalance,
|
|
3506
3942
|
useNocodeEmitter,
|
|
3507
|
-
|
|
3508
|
-
|
|
3509
|
-
|
|
3943
|
+
G as useNocodeFormWidget,
|
|
3944
|
+
cz as useOnlineFormActionButton,
|
|
3945
|
+
bq as useOnlineFormTransformField2Component,
|
|
3510
3946
|
useRenderPageFactory,
|
|
3511
|
-
|
|
3512
|
-
|
|
3513
|
-
|
|
3514
|
-
|
|
3515
|
-
|
|
3516
|
-
|
|
3947
|
+
W as useRuntimeEditorFlusher,
|
|
3948
|
+
r as useRuntimeInstanceServices,
|
|
3949
|
+
v as useRuntimeRowState,
|
|
3950
|
+
T as useStyles,
|
|
3951
|
+
q2 as useWidgetStaticAttrs,
|
|
3952
|
+
A as validateObjectBomForScan,
|
|
3517
3953
|
validateObjectBomQtyOnSubmit,
|
|
3518
|
-
|
|
3954
|
+
b7 as validateReinspectionDate
|
|
3519
3955
|
};
|