@gct-paas/excel 0.1.48-beta.0 → 0.1.49
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 +4 -3
- package/dist/AntdIcon-DCIaV352.js +1108 -0
- package/dist/{BaseComponent-CuX5xLFK.js → BaseComponent-BujOt502.js} +3 -4
- package/dist/{VueVideoPlayer-CBBB12Hj.js → VueVideoPlayer-B8GR2HPo.js} +2 -2
- package/dist/{align-editor-Df9gS31T.js → align-editor--BUxJjPg.js} +1 -1
- package/dist/{barcode-design-B34-4xJ9.js → barcode-design-DGX6Ol4t.js} +2 -3
- package/dist/base/index.es.js +228 -519
- package/dist/{diagonal-design-D0HXMI8w.js → diagonal-design-oiPfvxr7.js} +2 -3
- package/dist/{dynamic-table-action-9sxv3gW5.js → dynamic-table-action-Bhkrp7KE.js} +353 -460
- package/dist/{dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-YSIO0k9J.js → dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-CidYX2eX.js} +597 -2298
- package/dist/{edit.utils-CXmmCnxE-0uJiCs33.js → edit.utils-CXmmCnxE-BXlWf2Zf.js} +1 -1
- package/dist/excel.css +723 -611
- package/dist/{exceljs.min-Doeyz39_.js → exceljs.min-Ta0dJQqu.js} +2 -2
- package/dist/{font-editor-B8A9tDhO.js → font-editor-Dmj2hu7T.js} +3 -3
- package/dist/{image-design-CVyCbbef.js → image-design-C3yJcthI.js} +8 -3
- package/dist/{index-Bb3Ugl3c.js → index-1kD3Vcrg.js} +2 -3
- package/dist/{index-DA7GAWZ1.js → index-B0Qf1-mt.js} +3 -4
- package/dist/{index-ucaRXWE8.js → index-B2VHOqo4.js} +2 -3
- package/dist/{index-D_hAd0MQ.js → index-B4ZpSIPH.js} +3 -4
- package/dist/{index-CMmaJ4Ss.js → index-B4hIBKZ6.js} +2 -3
- package/dist/index-B6csmYLK.js +4353 -0
- package/dist/{index-R95URjcc.js → index-BDr7t7vL.js} +1 -2
- package/dist/{index-D0VBKmKt.js → index-BEEhGWk7.js} +2 -3
- package/dist/{index-CS1tP-l0.js → index-BOMuRlHQ.js} +2 -3
- package/dist/{index-FCg2Jzvu.js → index-Bd15pfRH.js} +1 -2
- package/dist/{index-Uy8bXkuC.js → index-BlCF32GJ.js} +3 -4
- package/dist/{index-hDsTasdu.js → index-BtAlyN0W.js} +2 -3
- package/dist/{index-CDObWZ7G.js → index-BwuwoFQQ.js} +2 -3
- package/dist/{index-TeozNhWH.js → index-C4SreE7Q.js} +2 -3
- package/dist/{index-B7Yt5TSq.js → index-C6WDE2xc.js} +1 -2
- package/dist/{index-dUCz8OdV.js → index-CEYSrHod.js} +2 -3
- package/dist/{index-CzztJ4fH.js → index-CMN1t7G7.js} +3 -4
- package/dist/{index-BLJdXkdZ.js → index-CUTV5Yr2.js} +4 -5
- package/dist/{index-BwyHByzZ.js → index-CZo7qVZK.js} +1 -2
- package/dist/{index-DKKIL32g.js → index-CaLRSpkL.js} +2 -3
- package/dist/{index-BOO2K9Vu.js → index-D9lmC_sX.js} +3 -4
- package/dist/{index-Bj2qRb0q.js → index-DBSvao2o.js} +1 -2
- package/dist/{index-DMVIENZW.js → index-DF8n1Gru.js} +3 -4
- package/dist/{index-DuuvFB0e.js → index-DLTES9Zq.js} +2 -3
- package/dist/{index-CGU3uK4z.js → index-DMAuxwlt.js} +1 -2
- package/dist/{index-XE84LVO7.js → index-DQC7zJRO.js} +1 -2
- package/dist/{index-RG23XjoT.js → index-DRKCOV3w.js} +1 -2
- package/dist/{index-VrLq9hAc.js → index-DdOpcuy6.js} +3736 -8994
- package/dist/{index-vEZ4Yr2u.js → index-GIYmXP7h.js} +2 -3
- package/dist/{index-CNmwpU3G.js → index-IOqBW_eS.js} +3 -7
- package/dist/{index-PSQkEXxq.js → index-KQqw3i9h.js} +2 -3
- package/dist/{index-7VROqGqR.js → index-L7CRRS4N.js} +2 -3
- package/dist/{index-B3hu8heh.js → index-OwTnsnnd.js} +2 -3
- package/dist/{index-Cn_bmfoD.js → index-UnwowxL3.js} +1 -2
- package/dist/{index-DU4dWvY6.js → index-wKwGHLnP.js} +1 -2
- package/dist/index.es.js +46 -52
- package/dist/mb-render-CQlqaMrC.js +276 -0
- package/dist/{online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-ApLSXGFP.js → online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-219qzsVL.js} +3 -27
- package/dist/{pagination-design-B5DxwV5F.js → pagination-design-CNML3qGx.js} +2 -3
- package/dist/paper-widget-design-B8WyX87-.js +4 -0
- package/dist/{print-runtime-instance-BDM-anCd.js → print-runtime-instance-DKR1MX8-.js} +1 -1
- package/dist/{print-snapshot-renderer-kB1Bw7A_.js → print-snapshot-renderer-BIWDQkSC.js} +3 -3
- package/dist/{qrcode-design-bN48s3rk.js → qrcode-design-CUQ4gaJ0.js} +1 -1
- package/dist/{revo-grid.entry-BXEGtAbW.js → revo-grid.entry-Be5Mx_h7.js} +1 -1
- package/dist/{revogr-attribution_7.entry-CImeTxBl.js → revogr-attribution_7.entry-DmJFrubR.js} +3 -3
- package/dist/{revogr-clipboard_3.entry-DqcrJ6zB.js → revogr-clipboard_3.entry-COcvqK0w.js} +2 -2
- package/dist/{revogr-data_4.entry-Ccdsy3nO.js → revogr-data_4.entry-Dc4luGHv.js} +2 -2
- package/dist/{revogr-filter-panel.entry-B2xM2jvB.js → revogr-filter-panel.entry-B1l-ouo-.js} +1 -1
- package/dist/seal-design-Q8W8Umib.js +4 -0
- package/dist/{serialnumber-design-BGTOIn2S.js → serialnumber-design-hcI8TwmS.js} +1 -1
- package/dist/shared/index.es.js +28 -29
- package/dist/{single-field-drop-b2b71HAk.js → single-field-drop-CnuMgeEW.js} +3 -2
- package/dist/{size-editor-DtX2f2CF.js → size-editor-D4ZNlV-c.js} +1 -1
- package/dist/src/adapter/adapter.d.ts +1 -1
- package/dist/src/adapter/index.d.ts +0 -2
- package/dist/src/domain/table/business/material/material-substitution/profile/field-keys.d.ts +1 -37
- package/dist/src/domain/table/business/material/material-substitution/runtime/row-change-handlers.d.ts +0 -7
- package/dist/src/domain/table/design/autofill-expander.d.ts +0 -2
- package/dist/src/domain/table/design/hooks/on-field-attach.d.ts +0 -6
- package/dist/src/domain/table/index.d.ts +1 -1
- package/dist/src/domain/table/types.d.ts +0 -2
- package/dist/src/index.d.ts +0 -8
- package/dist/src/nocode-base/src/components/document-sub-table-action/dynamic-table-action.vue.d.ts +2 -0
- package/dist/src/nocode-base/src/components/document-sub-table-action/sub-table-action.vue.d.ts +3 -0
- package/dist/src/nocode-base/src/components/document-sub-table-action/type.d.ts +4 -0
- package/dist/src/nocode-base/src/components/material-consume/types.d.ts +5 -1
- package/dist/src/nocode-base/src/core/sub-table/profile-driven-sub-table-core.d.ts +4 -4
- package/dist/src/nocode-base/src/core/sub-table/sub-table-core.d.ts +4 -1
- package/dist/src/nocode-base/src/core/sub-table/utils/sterilize/field-keys.d.ts +2 -1
- package/dist/src/nocode-base/src/hooks/material-consume/material-consume-table-controller.d.ts +6 -0
- package/dist/src/nocode-base/src/hooks/material-consume/mc-render.d.ts +28 -1
- package/dist/src/nocode-base/src/hooks/render-page/initialize-runtime.d.ts +8 -9
- package/dist/src/nocode-base/src/hooks/render-page/types.d.ts +1 -7
- package/dist/src/nocode-base/src/hooks/useCalcFunction.d.ts +2 -8
- package/dist/src/nocode-base/src/hooks/useRenderPageFactory.d.ts +6 -55
- package/dist/src/nocode-base/src/hooks/useRuntimeInstanceServices.d.ts +0 -24
- package/dist/src/nocode-base/src/interface/ref-loader.d.ts +1 -12
- package/dist/src/nocode-base/src/interface/render.d.ts +1 -2
- package/dist/src/nocode-base/src/interface/transform.d.ts +0 -3
- package/dist/src/nocode-base/src/runtime/conversions/v1-runtime.d.ts +1 -1
- package/dist/src/nocode-base/src/runtime/runtime-field-initializer.d.ts +0 -1
- package/dist/src/nocode-base/src/runtime/runtime-field-state.d.ts +2 -5
- package/dist/src/nocode-base/src/runtime/runtime-form-state-store.d.ts +2 -0
- package/dist/src/nocode-base/src/runtime/runtime-instance-registry.d.ts +5 -8
- package/dist/src/nocode-base/src/runtime/runtime-persistence-coordinator.d.ts +7 -2
- package/dist/src/nocode-base/src/types/common/base.d.ts +2 -8
- package/dist/src/nocode-base/src/types/render/mc-render.d.ts +15 -2
- package/dist/src/nocode-base/src/types/render/sub-table-render.d.ts +10 -0
- package/dist/src/nocode-web-render/src/components/print-fill-background-selector.vue.d.ts +2 -0
- package/dist/src/nocode-web-render/src/hooks/index.d.ts +2 -0
- package/dist/src/{shared → nocode-web-render/src}/hooks/useWebUpload.d.ts +1 -1
- package/dist/src/nocode-web-render/src/hooks/userFormPrint.d.ts +15 -0
- package/dist/src/nocode-web-render/src/index.d.ts +6 -0
- package/dist/src/nocode-web-render/src/logic/index.d.ts +1 -0
- package/dist/src/nocode-web-render/src/render/common/index.d.ts +2 -0
- package/dist/src/nocode-web-render/src/render/common/modal-manager.d.ts +20 -0
- package/dist/src/{adapter/web → nocode-web-render/src/render/common}/open-util.d.ts +1 -1
- package/dist/src/nocode-web-render/src/render/index.d.ts +10 -0
- package/dist/src/{online-form/src/views/designer/modules/panel/sub-table/comps → nocode-web-render/src/render/parse-rule}/add-rule-btn.vue.d.ts +1 -1
- package/dist/src/nocode-web-render/src/render/parse-rule/index.d.ts +3 -0
- package/dist/src/nocode-web-render/src/render/parse-rule/parse-rule-modal.vue.d.ts +15 -0
- package/dist/src/nocode-web-render/src/render/sub-table/allocate/allocate-web-render.d.ts +4 -0
- package/dist/src/nocode-web-render/src/render/sub-table/allocate/index.d.ts +1 -0
- package/dist/src/{adapter/web → nocode-web-render/src/render/sub-table/common}/inventory-scan-columns.d.ts +1 -1
- package/dist/src/nocode-web-render/src/render/sub-table/common/multi-rows-modal.vue.d.ts +15 -0
- package/dist/src/nocode-web-render/src/render/sub-table/common/scan-modal.vue.d.ts +19 -0
- package/dist/src/{adapter/web → nocode-web-render/src/render/sub-table/common}/sub-table-render.d.ts +5 -2
- package/dist/src/nocode-web-render/src/render/sub-table/index.d.ts +3 -0
- package/dist/src/nocode-web-render/src/render/sub-table/material-balance/index.d.ts +1 -0
- package/dist/src/{adapter/web → nocode-web-render/src/render/sub-table/material-balance}/material-consume-modal.vue.d.ts +1 -1
- package/dist/src/{adapter/web/material-balance-render.d.ts → nocode-web-render/src/render/sub-table/material-balance/mb-web-render.d.ts} +1 -1
- package/dist/src/nocode-web-render/src/render/sub-table/material-consume/bom-modal.vue.d.ts +11 -0
- package/dist/src/nocode-web-render/src/render/sub-table/material-consume/index.d.ts +4 -0
- package/dist/src/nocode-web-render/src/render/sub-table/material-consume/mc-web-render.d.ts +42 -0
- package/dist/src/nocode-web-render/src/render/sub-table/stocktake/index.d.ts +2 -0
- package/dist/src/{adapter/web/stocktake-render.d.ts → nocode-web-render/src/render/sub-table/stocktake/stocktake-web-render.d.ts} +2 -2
- package/dist/src/nocode-web-render/src/types/hooks/index.d.ts +1 -0
- package/dist/src/nocode-web-render/src/types/index.d.ts +1 -0
- package/dist/src/online-form/src/components/device/device-select.vue.d.ts +1 -1
- 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/designer/constants/index.d.ts +0 -1
- package/dist/src/online-form/src/views/designer/hooks/useAllSpreadSheets.d.ts +0 -144
- package/dist/src/online-form/src/views/designer/hooks/useSpreadSheet.d.ts +4 -87
- package/dist/src/online-form/src/views/designer/modules/panel/sub-table/comps/use-dynamic-sub-table-panel.d.ts +0 -6
- 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/online-form/src/views/designer/types/index.d.ts +1 -12
- 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-media.vue.d.ts +1 -1
- 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 +1 -0
- package/dist/src/online-form/src/views/render/__components__/_field_/seal/component/seal-runtime-layer.vue.d.ts +1 -0
- package/dist/src/online-form/src/views/render/__components__/_field_/seal/component/use-seal-stamp.d.ts +4 -1
- package/dist/src/online-form/src/views/render/__components__/_field_/seal/index.d.ts +0 -1
- package/dist/src/online-form/src/views/render/__components__/_field_/trace/common/base-vxe-table.vue.d.ts +1 -1
- package/dist/src/shared/components/ColorPicker/src/ColorPicker.vue.d.ts +1 -1
- package/dist/src/shared/components/DoubleInput/double-input.vue.d.ts +2 -162
- package/dist/src/shared/components/Signature/logic/index.d.ts +0 -14
- package/dist/src/shared/enum/field-type.d.ts +3 -8
- package/dist/src/shared/index.d.ts +0 -1
- package/dist/src/shared/types/index.d.ts +0 -1
- package/dist/{sub-table-factory-DoEvzrVN.js → sub-table-factory-Df_Z-LYK.js} +89 -276
- package/dist/{text-design-BQVBFcI0.js → text-design-gySXbKUQ.js} +2 -3
- package/dist/{throttle-Cpk1LoGk-DR_8z9qq.js → throttle-Cpk1LoGk-DEDsjc1B.js} +1 -1
- package/dist/{timediff-design-DioTJEvx.js → timediff-design-BHLUYM_L.js} +1 -2
- package/dist/{trace-like-wrapper-CjxBkfYK.js → trace-like-wrapper-CD0q7Bpg.js} +2 -3
- package/dist/{value-editor.vue_vue_type_style_index_0_lang-DpfdcyX_.js → value-editor.vue_vue_type_style_index_0_lang-Dp_NLPcS.js} +2 -3
- package/dist/web-render/index.d.ts +1 -0
- package/dist/web-render/index.es.js +595 -0
- package/dist/{widget-barcode-CEn3AYG0.js → widget-barcode-Dho-QBc4.js} +4 -5
- package/dist/{widget-diagonal-DbOhaNpW.js → widget-diagonal-LOzS5LGZ.js} +4 -4
- package/dist/{widget-image-BGP2w2mj.js → widget-image-CE9y7lzB.js} +7 -5
- package/dist/{widget-line-CkSPcw5A.js → widget-line-DK-tRBi0.js} +2 -3
- package/dist/{widget-pagination-BH0VtWHT.js → widget-pagination-JLrTk_QY.js} +5 -6
- package/dist/{widget-power-DuTIvdpR.js → widget-power-B136JrJ6.js} +4 -4
- package/dist/{widget-qrcode-CJJjPnwn.js → widget-qrcode-CQ79eZwR.js} +3 -4
- package/dist/{widget-rangelimit-828JH1wm.js → widget-rangelimit-DORQgXtz.js} +4 -3
- package/dist/{widget-serialnumber-CIjY3I-t.js → widget-serialnumber-BvhwTK5N.js} +1 -1
- package/dist/{widget-text-C_Ja4yWN.js → widget-text-D6au0tli.js} +5 -5
- package/dist/{widget-timediff-CjmATkLS.js → widget-timediff-C3SAIS2-.js} +2 -3
- package/package.json +6 -2
- package/dist/paper-widget-design-A55mbwYv.js +0 -4
- package/dist/seal-design-B3FBumLr.js +0 -4
- package/dist/src/adapter/web/material-consume-render.d.ts +0 -25
- package/dist/src/domain/document-business/business/product-release/profile.d.ts +0 -2
- package/dist/src/domain/document-business/business/product-release/service.d.ts +0 -2
- package/dist/src/domain/document-business/index.d.ts +0 -2
- package/dist/src/domain/document-business/registry.d.ts +0 -2
- package/dist/src/domain/document-business/runtime/field-query-runtime.d.ts +0 -4
- package/dist/src/domain/document-business/types.d.ts +0 -24
- package/dist/src/domain/field/number/product-release-qty-manifest.d.ts +0 -2
- package/dist/src/domain/field/query-filter.d.ts +0 -15
- package/dist/src/domain/table/business/material/material-substitution/runtime/select-loaders.d.ts +0 -12
- package/dist/src/domain/table/business/sterilize/entrust-steril-batch-list/profile/field-keys.d.ts +0 -2
- package/dist/src/domain/table/business/warehouse/shared/autofill-source-labels.d.ts +0 -19
- package/dist/src/nocode-base/src/hooks/formula-params-cache.d.ts +0 -15
- package/dist/src/nocode-base/src/hooks/inspection-module-qty.d.ts +0 -4
- package/dist/src/nocode-base/src/hooks/render-page/initial-value-data-sources.d.ts +0 -3
- package/dist/src/nocode-base/src/hooks/render-page/runtime-data-sources.d.ts +0 -51
- package/dist/src/nocode-base/src/hooks/render-page/sterilization-date.d.ts +0 -3
- package/dist/src/nocode-base/src/runtime/designer-default-values.d.ts +0 -23
- package/dist/src/nocode-base/src/runtime/runtime-default-value-validation.d.ts +0 -23
- package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/message-rule-config/rule-modal.vue.d.ts +0 -32
- package/dist/src/online-form/src/views/designer/utils/placed-fields.d.ts +0 -9
- package/dist/src/online-form/src/views/designer/utils/template-placed-fields.d.ts +0 -7
- package/dist/src/shared/components/LimitedNumberInput/limited-number-input.vue.d.ts +0 -41
- package/dist/src/shared/components/LimitedNumberInput/number-input-rules.d.ts +0 -16
- package/dist/src/shared/types/upload.d.ts +0 -11
- package/dist/src/shared/utils/withRequestCache.d.ts +0 -27
- /package/dist/src/{adapter/web/setup.d.ts → nocode-web-render/src/adapter/index.d.ts} +0 -0
- /package/dist/src/{adapter/web/upload.d.ts → nocode-web-render/src/logic/utils.d.ts} +0 -0
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { reactive, toRaw, computed, watch, onScopeDispose, inject, h, shallowReactive, markRaw, ref, toRef,
|
|
2
|
-
import {
|
|
1
|
+
import { reactive, toRaw, computed, watch, onScopeDispose, inject, h, shallowReactive, markRaw, ref, toRef, nextTick, provide, defineComponent, openBlock, createElementBlock, mergeProps, unref, createElementVNode, normalizeClass, renderSlot, createCommentVNode, createVNode, toDisplayString, Fragment, renderList, onUnmounted, isVNode, onMounted, onBeforeMount, resolveComponent, createBlock, withCtx, createTextVNode } from "vue";
|
|
2
|
+
import { ch as splitRuntimeDataPath, af as CellWidgetViewState, F as FIELD_TYPE, b6 as RenderModeEnum, X as FormTypeEnum, bu as BpmnNodeTypeEnum, ck as getFieldPlaceholder, bK as MobileFillTypeEnum, C as ComponentTypeEnum, be as findRuntimeTableRow, aU as renderUtils, _ as PlatformEnum, E as api, bn as uuid2, bU as calcUtils, bY as ensureTableRowKeys, bR as bindRuntimeTableColumns, bd as getRowId, cl as FRONT_ROW_KEY, cb as isTableRowKeyMatch, au as RangeCompareOp, at as RangeValidateMode, bV as decodeTableCellRowKey, bX as ensureFrontRowKey, b0 as getParseRuleInfo, aD as transformUtils, aW as materialCheck, aX as getLotLockedReason, aY as validateReinspectionDate, bh as FormulaRuleFieldKeyEnum, f as SubTableType, b1 as getParseRuleValue, H as CreateType, bf as findRuntimeParentRow, aG as Dependency_ENUM, aF as ASSIGNMENTSTRATEGY_ENUM, by as commonUtils, aK as DeviceLink, a7 as _export_sfc, c5 as getRenderedRuntimeTableCell, y as CellType, cm as resetTableRowIdentity, J as useModal, cn as q, co as QUICK_FILL_ALLOWED_FIELDS, cp as groupFixedTableRows, cq as processQuickFillRows, cr as getIsGroupEmpty } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-CidYX2eX.js";
|
|
3
3
|
import dayjs from "dayjs";
|
|
4
4
|
import { cloneDeep, isEmpty, isNil, pickBy, mergeWith, omit, last, pick, merge } from "lodash-es";
|
|
5
|
-
import "
|
|
5
|
+
import { a as useNamespace, I as Icon } from "./AntdIcon-DCIaV352.js";
|
|
6
6
|
import { Modal, message } from "ant-design-vue";
|
|
7
|
+
import { u as useFormModel } from "./mb-render-CQlqaMrC.js";
|
|
7
8
|
var MaterialConsumptionPatternEnum = /* @__PURE__ */ ((MaterialConsumptionPatternEnum2) => {
|
|
8
9
|
MaterialConsumptionPatternEnum2["RECORD"] = "record";
|
|
9
10
|
MaterialConsumptionPatternEnum2["BOM"] = "bom";
|
|
@@ -278,7 +279,7 @@ class RuntimeDependencyService {
|
|
|
278
279
|
await Promise.allSettled(jobs);
|
|
279
280
|
}
|
|
280
281
|
}
|
|
281
|
-
function resolveRuntimeFieldProps(record, props, widgetId, row, parentRow
|
|
282
|
+
function resolveRuntimeFieldProps(record, props, widgetId, row, parentRow) {
|
|
282
283
|
const result = { ...props };
|
|
283
284
|
const { context } = record;
|
|
284
285
|
const tableField = props.subFieldKey;
|
|
@@ -287,11 +288,7 @@ function resolveRuntimeFieldProps(record, props, widgetId, row, parentRow, formC
|
|
|
287
288
|
const core = Object.values(context.services.subTableCoreFactory?.coreMap ?? {}).find(
|
|
288
289
|
(item) => item.subFieldKey === tableField
|
|
289
290
|
);
|
|
290
|
-
const status = core?.calcFieldStatus({
|
|
291
|
-
rowData: businessRow,
|
|
292
|
-
field: props.field,
|
|
293
|
-
formChangeStatus
|
|
294
|
-
});
|
|
291
|
+
const status = core?.calcFieldStatus({ rowData: businessRow, field: props.field });
|
|
295
292
|
if (status?.disabled != null) result.fieldDisabled = status.disabled;
|
|
296
293
|
if (status?.readonly != null) {
|
|
297
294
|
result.field_readonly = status.readonly;
|
|
@@ -301,7 +298,7 @@ function resolveRuntimeFieldProps(record, props, widgetId, row, parentRow, formC
|
|
|
301
298
|
const config = context.businessIndex.fixedTables.find(
|
|
302
299
|
(table) => table.field === tableField
|
|
303
300
|
)?.bizTableConfig;
|
|
304
|
-
if (
|
|
301
|
+
if (config?.dataLockControlField) {
|
|
305
302
|
if (props.field === config.dataLockControlField) {
|
|
306
303
|
if (isPersistedSignatureLockActive(config, businessRow)) {
|
|
307
304
|
result.field_readonly = true;
|
|
@@ -309,7 +306,7 @@ function resolveRuntimeFieldProps(record, props, widgetId, row, parentRow, formC
|
|
|
309
306
|
}
|
|
310
307
|
} else if (isSignatureLockActive(config, businessRow)) result.fieldDisabled = true;
|
|
311
308
|
}
|
|
312
|
-
} else if (!
|
|
309
|
+
} else if (!tableField && !props.subModelKey) {
|
|
313
310
|
result.fieldDisabled ||= context.businessIndex.fixedTables.some(
|
|
314
311
|
(table) => table.bizTableConfig?.mainFieldBindings?.includes(props.field) && (record.formState.state[table.field] ?? []).some(
|
|
315
312
|
(item) => isSignatureLockActive(table.bizTableConfig, item)
|
|
@@ -372,6 +369,51 @@ function resolveRuntimeFieldState(props, info) {
|
|
|
372
369
|
keepExceptionHighlight: typeof props.keepExceptionHighlight === "boolean" ? props.keepExceptionHighlight : void 0
|
|
373
370
|
};
|
|
374
371
|
}
|
|
372
|
+
function getRuntimeDataFieldId(props = {}) {
|
|
373
|
+
return props.field ? props.isFieldModel ? props.fieldLink ?? "" : props.field : "";
|
|
374
|
+
}
|
|
375
|
+
function getBusinessFieldKey(field) {
|
|
376
|
+
return [field.subModelKey ?? field.modelKey ?? "", field.fieldId ?? ""].join(":");
|
|
377
|
+
}
|
|
378
|
+
const FIELD_POSITION_PREFIX = "runtime_field_";
|
|
379
|
+
function buildRuntimeFieldPath(position) {
|
|
380
|
+
if (!position.fieldId) throw new Error("运行时字段位置缺少 fieldId");
|
|
381
|
+
if (position.subFieldKey && !position.rowKey) throw new Error("子表字段位置缺少 front_row_key_");
|
|
382
|
+
const serialized = JSON.stringify([
|
|
383
|
+
position.modelKey ?? "",
|
|
384
|
+
position.subModelKey ?? "",
|
|
385
|
+
position.subFieldKey ?? "",
|
|
386
|
+
position.rowKey ?? "",
|
|
387
|
+
position.fieldId
|
|
388
|
+
]);
|
|
389
|
+
return FIELD_POSITION_PREFIX + btoa(
|
|
390
|
+
Array.from(new TextEncoder().encode(serialized), (byte) => String.fromCharCode(byte)).join(
|
|
391
|
+
""
|
|
392
|
+
)
|
|
393
|
+
).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
394
|
+
}
|
|
395
|
+
function parseRuntimeFieldPath(path) {
|
|
396
|
+
if (!path.startsWith(FIELD_POSITION_PREFIX)) return void 0;
|
|
397
|
+
try {
|
|
398
|
+
const encoded = path.slice(FIELD_POSITION_PREFIX.length).replace(/-/g, "+").replace(/_/g, "/");
|
|
399
|
+
const parts = JSON.parse(
|
|
400
|
+
new TextDecoder().decode(Uint8Array.from(atob(encoded), (char) => char.charCodeAt(0)))
|
|
401
|
+
);
|
|
402
|
+
if (!Array.isArray(parts) || parts.length !== 5 || parts.some((part) => typeof part !== "string"))
|
|
403
|
+
return void 0;
|
|
404
|
+
const [modelKey, subModelKey, subFieldKey, rowKey, fieldId] = parts;
|
|
405
|
+
if (!fieldId || subFieldKey && !rowKey) return void 0;
|
|
406
|
+
return {
|
|
407
|
+
modelKey: modelKey || void 0,
|
|
408
|
+
subModelKey: subModelKey || void 0,
|
|
409
|
+
subFieldKey: subFieldKey || void 0,
|
|
410
|
+
rowKey: rowKey || void 0,
|
|
411
|
+
fieldId
|
|
412
|
+
};
|
|
413
|
+
} catch {
|
|
414
|
+
return void 0;
|
|
415
|
+
}
|
|
416
|
+
}
|
|
375
417
|
function isCellAutoLineBreak(style) {
|
|
376
418
|
const whiteSpace = style?.whiteSpace ?? style?.["white-space"];
|
|
377
419
|
const wordBreak = style?.wordBreak ?? style?.["word-break"];
|
|
@@ -405,8 +447,6 @@ function useRuntimeInstanceServices(uniqueIdSource) {
|
|
|
405
447
|
instance,
|
|
406
448
|
/** 控制器负责 Sheet 切换、编辑器收口和提交;尚未挂载时为空。 */
|
|
407
449
|
controller: computed(() => instance.value?.controller),
|
|
408
|
-
/** 全部 Sheet 共享的数源管理器,随实例注册与销毁。 */
|
|
409
|
-
dataSourceManager: computed(() => instance.value?.dataSourceManager),
|
|
410
450
|
/** 表单级配置独立于 Sheet 的 paper;实例未注册时提供空配置。 */
|
|
411
451
|
formConfig: computed(() => instance.value?.context.formConfig ?? {}),
|
|
412
452
|
/** 实例切换时重新取对应 Store;读取数据使用 .value.state,写入使用 Store 方法。 */
|
|
@@ -492,14 +532,7 @@ function useWidgetStaticAttrs(widget) {
|
|
|
492
532
|
const targetFieldId = getRuntimeDataFieldId(widget.props);
|
|
493
533
|
const fieldState = computed(
|
|
494
534
|
() => resolveRuntimeFieldState(
|
|
495
|
-
resolveRuntimeFieldProps(
|
|
496
|
-
instance.value,
|
|
497
|
-
widget.props,
|
|
498
|
-
widget.id,
|
|
499
|
-
void 0,
|
|
500
|
-
void 0,
|
|
501
|
-
dataRelationShip?.formChangeStatus
|
|
502
|
-
),
|
|
535
|
+
resolveRuntimeFieldProps(instance.value, widget.props, widget.id),
|
|
503
536
|
dataRelationShip
|
|
504
537
|
)
|
|
505
538
|
);
|
|
@@ -747,6 +780,49 @@ function getSubTableQuickFillInfo(subTableFieldId, mobileTdIdGroups) {
|
|
|
747
780
|
if (!subTableFieldId) return;
|
|
748
781
|
return assignWidgetInfo(MobileFillTypeEnum.SUB_TABLE, { rowSubFieldKey: subTableFieldId });
|
|
749
782
|
}
|
|
783
|
+
function getCurrentFormData(_rule, options) {
|
|
784
|
+
if (!_rule._subtableFieldId) return options?.formData;
|
|
785
|
+
return findRuntimeTableRow(options?.formData?.[_rule._subtableFieldId], _rule._rowKey);
|
|
786
|
+
}
|
|
787
|
+
function isSameOptionValue(current, expected) {
|
|
788
|
+
if (typeof expected === "boolean") {
|
|
789
|
+
return renderUtils.getBoolValue(current) === expected;
|
|
790
|
+
}
|
|
791
|
+
if (current === void 0 || current === null || current === "") {
|
|
792
|
+
return false;
|
|
793
|
+
}
|
|
794
|
+
return String(current) === String(expected);
|
|
795
|
+
}
|
|
796
|
+
function isAttachFieldActive(attach, formData) {
|
|
797
|
+
if (attach?.parent && !isAttachFieldActive(attach.parent, formData)) return false;
|
|
798
|
+
if (!attach?.belongFieldId || isNil(attach.optionValue)) {
|
|
799
|
+
return true;
|
|
800
|
+
}
|
|
801
|
+
const row = attach.subtableFieldId ? findRuntimeTableRow(formData?.[attach.subtableFieldId], attach.rowKey) : formData;
|
|
802
|
+
if (attach.subtableFieldId && (!attach.rowKey || !row || row === formData)) {
|
|
803
|
+
return false;
|
|
804
|
+
}
|
|
805
|
+
const raw = row?.[attach.belongFieldId];
|
|
806
|
+
if (attach.multiple) {
|
|
807
|
+
const current = renderUtils.getValue(raw, true);
|
|
808
|
+
if (!Array.isArray(current)) return false;
|
|
809
|
+
return current.some((v) => isSameOptionValue(v, attach.optionValue));
|
|
810
|
+
}
|
|
811
|
+
return isSameOptionValue(raw, attach.optionValue);
|
|
812
|
+
}
|
|
813
|
+
function isReferenceOptionActive(referenceInfo, rowFormData) {
|
|
814
|
+
if (!referenceInfo?.belongFieldId || isNil(referenceInfo.optionValue)) {
|
|
815
|
+
return true;
|
|
816
|
+
}
|
|
817
|
+
return isAttachFieldActive(
|
|
818
|
+
{
|
|
819
|
+
belongFieldId: referenceInfo.belongFieldId,
|
|
820
|
+
optionValue: referenceInfo.optionValue,
|
|
821
|
+
multiple: referenceInfo.multiple
|
|
822
|
+
},
|
|
823
|
+
rowFormData
|
|
824
|
+
);
|
|
825
|
+
}
|
|
750
826
|
function fieldChromeStyles(state) {
|
|
751
827
|
const required4 = state === "required";
|
|
752
828
|
const disabled = state === "disabled";
|
|
@@ -950,8 +1026,6 @@ const LEGACY_RUNTIME_FORM_CONFIG_KEYS = [
|
|
|
950
1026
|
"unitConversionRules",
|
|
951
1027
|
"inspectionDecisionRule",
|
|
952
1028
|
"customDataSource",
|
|
953
|
-
"dataSources",
|
|
954
|
-
"fieldFills",
|
|
955
1029
|
"objectInitialValues",
|
|
956
1030
|
"javascript",
|
|
957
1031
|
"checkSignatureConfig",
|
|
@@ -1680,6 +1754,12 @@ class RuntimeFormStateStore {
|
|
|
1680
1754
|
restoreScope: "fields"
|
|
1681
1755
|
});
|
|
1682
1756
|
}
|
|
1757
|
+
/** 保存期间有新输入时只补齐已存在行的数据库 ID,不恢复已移除的行或覆盖业务值。 */
|
|
1758
|
+
patchSavedIdentity(values) {
|
|
1759
|
+
this.transaction("restore", () => this.mergeSavedMetadata(this.state, values, "", true), {
|
|
1760
|
+
restoreScope: "fields"
|
|
1761
|
+
});
|
|
1762
|
+
}
|
|
1683
1763
|
/**
|
|
1684
1764
|
* 用新对象整体替换实例数据,删除旧对象中多余的顶层字段。
|
|
1685
1765
|
* 草稿/接口恢复后会清空用户修改标记;restore 来源同时恢复为非脏状态。
|
|
@@ -1802,10 +1882,10 @@ class RuntimeFormStateStore {
|
|
|
1802
1882
|
target[key] = incoming;
|
|
1803
1883
|
});
|
|
1804
1884
|
}
|
|
1805
|
-
mergeSavedMetadata(target, incoming, path = "") {
|
|
1885
|
+
mergeSavedMetadata(target, incoming, path = "", identityOnly = false) {
|
|
1806
1886
|
if (Array.isArray(incoming)) {
|
|
1807
1887
|
const isTableRows = this.subtableFields.has(path) || path.endsWith("._2DTABLE_");
|
|
1808
|
-
if (!isTableRows || !Array.isArray(target)) return incoming;
|
|
1888
|
+
if (!isTableRows || !Array.isArray(target)) return identityOnly ? target : incoming;
|
|
1809
1889
|
incoming.forEach((savedRow) => {
|
|
1810
1890
|
const rowKey = savedRow?.[FRONT_ROW_KEY];
|
|
1811
1891
|
const savedId = savedRow?.id_;
|
|
@@ -1828,17 +1908,23 @@ class RuntimeFormStateStore {
|
|
|
1828
1908
|
this.mergeSavedMetadata(
|
|
1829
1909
|
currentRow,
|
|
1830
1910
|
matchedByGroup ? { ...savedRow, [FRONT_ROW_KEY]: currentRow[FRONT_ROW_KEY] } : savedRow,
|
|
1831
|
-
path
|
|
1911
|
+
path,
|
|
1912
|
+
identityOnly
|
|
1832
1913
|
);
|
|
1833
1914
|
}
|
|
1834
1915
|
});
|
|
1835
1916
|
return target;
|
|
1836
1917
|
}
|
|
1837
1918
|
if (!incoming || typeof incoming !== "object") return incoming;
|
|
1838
|
-
if (!target || typeof target !== "object" || Array.isArray(target))
|
|
1919
|
+
if (!target || typeof target !== "object" || Array.isArray(target))
|
|
1920
|
+
return identityOnly ? target : incoming;
|
|
1839
1921
|
Object.entries(incoming).forEach(([key, value]) => {
|
|
1922
|
+
if (identityOnly && (!value || typeof value !== "object")) {
|
|
1923
|
+
if (key !== "id_" || value == null || value === "") return;
|
|
1924
|
+
if (target.id_ != null && target.id_ !== "" && String(target.id_) !== String(value)) return;
|
|
1925
|
+
}
|
|
1840
1926
|
const childPath = path ? `${path}.${key}` : key;
|
|
1841
|
-
const merged = this.mergeSavedMetadata(target[key], value, childPath);
|
|
1927
|
+
const merged = this.mergeSavedMetadata(target[key], value, childPath, identityOnly);
|
|
1842
1928
|
this.setObjectField(target, key, merged, "restore");
|
|
1843
1929
|
});
|
|
1844
1930
|
return target;
|
|
@@ -4067,6 +4153,8 @@ class RuntimePersistenceCoordinator {
|
|
|
4067
4153
|
saveSequence = 0;
|
|
4068
4154
|
/** 同一实例的业务写请求串行发送,避免较早的暂存最后落库覆盖较新的提交。 */
|
|
4069
4155
|
saveTail = Promise.resolve();
|
|
4156
|
+
/** 请求抛错时写入结果可能未知;重试前只恢复身份,不能将旧查询值当成已保存的新输入。 */
|
|
4157
|
+
unconfirmedSaveSequence;
|
|
4070
4158
|
preparingSubmission;
|
|
4071
4159
|
disposed = false;
|
|
4072
4160
|
/** 导航等异步 UI 工作结束后,Controller 再确认返回快照仍属于当前数据版本。 */
|
|
@@ -4085,11 +4173,18 @@ class RuntimePersistenceCoordinator {
|
|
|
4085
4173
|
revision: this.formState.revision
|
|
4086
4174
|
});
|
|
4087
4175
|
}
|
|
4088
|
-
/**
|
|
4176
|
+
/** 行身份回填只检查实例及请求顺序;保存期间编辑不能丢失已落库行的 id_。 */
|
|
4177
|
+
isLatestSaveRequest(token) {
|
|
4178
|
+
return !this.disposed && token.coordinatorId === this.coordinatorId && token.sequence === this.saveSequence;
|
|
4179
|
+
}
|
|
4180
|
+
/** 清除脏标记和回填业务值还必须确认数据版本未变化。 */
|
|
4089
4181
|
isLatestSave(token) {
|
|
4090
|
-
return
|
|
4182
|
+
return this.isLatestSaveRequest(token) && token.revision === this.formState.revision;
|
|
4183
|
+
}
|
|
4184
|
+
needsSaveIdentityRecovery(token) {
|
|
4185
|
+
return this.isLatestSaveRequest(token) && token.sequence === this.unconfirmedSaveSequence;
|
|
4091
4186
|
}
|
|
4092
|
-
/**
|
|
4187
|
+
/** false 表示不能确认当前草稿或回填业务值;已落库行的身份仍可单独恢复。 */
|
|
4093
4188
|
completeSave(token) {
|
|
4094
4189
|
if (!this.isLatestSave(token)) return false;
|
|
4095
4190
|
return this.formState.markClean(token.revision);
|
|
@@ -4102,7 +4197,9 @@ class RuntimePersistenceCoordinator {
|
|
|
4102
4197
|
this.assertAlive();
|
|
4103
4198
|
const operation = this.saveTail.then(async () => {
|
|
4104
4199
|
if (!this.isLatestSave(token)) return false;
|
|
4200
|
+
this.unconfirmedSaveSequence = token.sequence;
|
|
4105
4201
|
await send();
|
|
4202
|
+
this.unconfirmedSaveSequence = void 0;
|
|
4106
4203
|
return this.completeSave(token);
|
|
4107
4204
|
});
|
|
4108
4205
|
this.saveTail = operation.catch(() => void 0);
|
|
@@ -4226,7 +4323,10 @@ class RuntimeInstanceEventBus {
|
|
|
4226
4323
|
class RuntimeInstanceRegistry {
|
|
4227
4324
|
/** 当前渲染入口的加载状态,由工厂更新;PreviewContainer 直接读取,无需宿主额外传参。 */
|
|
4228
4325
|
loadState = shallowReactive({ loading: false, error: void 0 });
|
|
4229
|
-
/**
|
|
4326
|
+
/**
|
|
4327
|
+
* 顶层对象使用浅响应式:实例新增、删除需要驱动 Vue 更新;record 内的服务类
|
|
4328
|
+
* 不需要被 Vue 深度代理,各自内部负责自己的响应式状态和生命周期
|
|
4329
|
+
*/
|
|
4230
4330
|
records = shallowReactive({});
|
|
4231
4331
|
/**
|
|
4232
4332
|
* 统一托管订阅、watch 和编译结果的取消函数
|
|
@@ -4268,9 +4368,8 @@ class RuntimeInstanceRegistry {
|
|
|
4268
4368
|
events,
|
|
4269
4369
|
validation
|
|
4270
4370
|
};
|
|
4271
|
-
|
|
4272
|
-
|
|
4273
|
-
return reactiveRecord;
|
|
4371
|
+
this.records[context.uniqueId] = markRaw(record);
|
|
4372
|
+
return record;
|
|
4274
4373
|
}
|
|
4275
4374
|
/**
|
|
4276
4375
|
* 在页面回调准备完成后挂载实例控制器
|
|
@@ -4448,7 +4547,6 @@ class RuntimeInstanceRegistry {
|
|
|
4448
4547
|
this.disposables.get(uniqueId)?.forEach((dispose) => dispose());
|
|
4449
4548
|
this.disposables.delete(uniqueId);
|
|
4450
4549
|
record.fieldInitializer?.dispose();
|
|
4451
|
-
record.defaultValueValidation?.dispose();
|
|
4452
4550
|
record.ruleCompiler?.dispose();
|
|
4453
4551
|
record.validation.dispose();
|
|
4454
4552
|
record.scriptRunner?.dispose();
|
|
@@ -5912,6 +6010,8 @@ class MaterialConsumeTableController {
|
|
|
5912
6010
|
initialDataPrepared = false;
|
|
5913
6011
|
/** 最近一次同步需求数量时使用的数量依赖。 */
|
|
5914
6012
|
syncedMaterialNoNum;
|
|
6013
|
+
/** 多 Sheet / 同屏多实例下,弹层和异步交互使用该键隔离。 */
|
|
6014
|
+
runtimeOwnerId = "";
|
|
5915
6015
|
/** 表单是否已暂存或提交(已处理过则不再跑初始化) */
|
|
5916
6016
|
get isDataProcessed() {
|
|
5917
6017
|
return ["STASH", "SUBMIT"].includes(this.dataStatus ?? "");
|
|
@@ -6019,6 +6119,21 @@ class MaterialConsumeTableController {
|
|
|
6019
6119
|
this.scanRuleProps = toParseRuleConfig(id);
|
|
6020
6120
|
this.scanRuleInfo = await getParseRuleInfo({ id: this.scanRuleProps.parsingRuleId });
|
|
6021
6121
|
}
|
|
6122
|
+
/**
|
|
6123
|
+
* 变更条码规则
|
|
6124
|
+
*/
|
|
6125
|
+
async changeScanRule() {
|
|
6126
|
+
const { id_, base_id_ } = this.scanRuleInfo ?? {};
|
|
6127
|
+
const newConfig = await MaterialConsumeTableController.render.openChangeRuleModal({
|
|
6128
|
+
config: this.scanRuleProps,
|
|
6129
|
+
subModelKey: this.widget.props.modelKey,
|
|
6130
|
+
formModelController: this.formModelController
|
|
6131
|
+
});
|
|
6132
|
+
if (newConfig) {
|
|
6133
|
+
this.scanRuleProps = newConfig;
|
|
6134
|
+
this.scanRuleInfo = await getParseRuleInfo({ id: this.scanRuleProps.parsingRuleId });
|
|
6135
|
+
}
|
|
6136
|
+
}
|
|
6022
6137
|
/**
|
|
6023
6138
|
* 是否人为指定物料
|
|
6024
6139
|
* @readonly
|
|
@@ -6723,31 +6838,6 @@ class MaterialConsumeTableController {
|
|
|
6723
6838
|
await this.applyUnitConversionRules(row);
|
|
6724
6839
|
}
|
|
6725
6840
|
}
|
|
6726
|
-
class MCRender {
|
|
6727
|
-
/**
|
|
6728
|
-
* 提示信息
|
|
6729
|
-
* @param opts
|
|
6730
|
-
*/
|
|
6731
|
-
message(opts) {
|
|
6732
|
-
throw new Error("Function message not implemented.");
|
|
6733
|
-
}
|
|
6734
|
-
async openScanModal(opts) {
|
|
6735
|
-
throw new Error("Function openScanModal not implemented.");
|
|
6736
|
-
}
|
|
6737
|
-
/**
|
|
6738
|
-
* 扫码返回多条候选时,弹窗选择其中一条
|
|
6739
|
-
* 取消返回 undefined
|
|
6740
|
-
*/
|
|
6741
|
-
async openMultiRowsModal(opts) {
|
|
6742
|
-
throw new Error("Function openMultiRowsModal not implemented.");
|
|
6743
|
-
}
|
|
6744
|
-
/**
|
|
6745
|
-
* 关闭当前页面的 form-base 弹层
|
|
6746
|
-
*/
|
|
6747
|
-
destroyAllModals(_ownerId) {
|
|
6748
|
-
throw new Error("Function destroyAllModals not implemented.");
|
|
6749
|
-
}
|
|
6750
|
-
}
|
|
6751
6841
|
var SubTableActionEnum = /* @__PURE__ */ ((SubTableActionEnum2) => {
|
|
6752
6842
|
SubTableActionEnum2["QuickFillRowCurrent"] = "quickFillRowCurrent";
|
|
6753
6843
|
SubTableActionEnum2["InsertRowBefore"] = "insertRowBefore";
|
|
@@ -6759,6 +6849,8 @@ var SubTableActionEnum = /* @__PURE__ */ ((SubTableActionEnum2) => {
|
|
|
6759
6849
|
SubTableActionEnum2["ClearRowCurrent"] = "clearRowCurrent";
|
|
6760
6850
|
SubTableActionEnum2["CONFIRM"] = "CONFIRM";
|
|
6761
6851
|
SubTableActionEnum2["SCAN"] = "SCAN";
|
|
6852
|
+
SubTableActionEnum2["VIEW_BOM"] = "VIEW_BOM";
|
|
6853
|
+
SubTableActionEnum2["CHANGE_PARSE_RULE"] = "CHANGE_PARSE_RULE";
|
|
6762
6854
|
SubTableActionEnum2["RowEdit"] = "rowEdit";
|
|
6763
6855
|
SubTableActionEnum2["Insert1GroupAfter"] = "insert1GroupAfter";
|
|
6764
6856
|
return SubTableActionEnum2;
|
|
@@ -6778,6 +6870,18 @@ function getMenuByAction(type4) {
|
|
|
6778
6870
|
label: "条码扫描",
|
|
6779
6871
|
icon: "size24 icon-saoma1"
|
|
6780
6872
|
},
|
|
6873
|
+
[SubTableActionEnum.VIEW_BOM]: {
|
|
6874
|
+
type: SubTableActionMenuTypeEnum.ACTION,
|
|
6875
|
+
key: SubTableActionEnum.VIEW_BOM,
|
|
6876
|
+
label: "BOM查看",
|
|
6877
|
+
icon: "size24 icon-a-bom11"
|
|
6878
|
+
},
|
|
6879
|
+
[SubTableActionEnum.CHANGE_PARSE_RULE]: {
|
|
6880
|
+
type: SubTableActionMenuTypeEnum.ACTION,
|
|
6881
|
+
key: SubTableActionEnum.CHANGE_PARSE_RULE,
|
|
6882
|
+
label: "条码解析规则变更",
|
|
6883
|
+
icon: "icon-tiaomajiexi"
|
|
6884
|
+
},
|
|
6781
6885
|
[SubTableActionEnum.QuickFillRowCurrent]: {
|
|
6782
6886
|
type: SubTableActionMenuTypeEnum.ACTION,
|
|
6783
6887
|
key: SubTableActionEnum.QuickFillRowCurrent,
|
|
@@ -6961,204 +7065,6 @@ class TdHandler {
|
|
|
6961
7065
|
this.mergeTd({ cellWidget: { props: { newSpecificConfig: { customLoader } } } });
|
|
6962
7066
|
}
|
|
6963
7067
|
}
|
|
6964
|
-
class BaseFormModelFetcher {
|
|
6965
|
-
/** 默认接口 */
|
|
6966
|
-
apis = {
|
|
6967
|
-
getFieldMetaList: api.apaas.fieldMeta.getList,
|
|
6968
|
-
getModelMetaSubModelList: api.apaas.modelComprehensive.getSubModelList,
|
|
6969
|
-
getModelDetail2FieldList: api.apaas.modelMeta.getDetail
|
|
6970
|
-
};
|
|
6971
|
-
/**
|
|
6972
|
-
* 模型映射缓存
|
|
6973
|
-
*/
|
|
6974
|
-
modelMetaMap = {};
|
|
6975
|
-
async load(opts) {
|
|
6976
|
-
const { model } = opts;
|
|
6977
|
-
this.modelMetaMap = {};
|
|
6978
|
-
await this.loadModelFields(model);
|
|
6979
|
-
await this.loadSubModelsFields(model);
|
|
6980
|
-
return Object.values(this.modelMetaMap);
|
|
6981
|
-
}
|
|
6982
|
-
/**
|
|
6983
|
-
* 补全字段信息
|
|
6984
|
-
* @param modelKey 字段所属的模型
|
|
6985
|
-
* @param [fields=[]]
|
|
6986
|
-
* @return {*}
|
|
6987
|
-
*/
|
|
6988
|
-
completeFields(modelKey, fields = []) {
|
|
6989
|
-
return fields.map((field) => {
|
|
6990
|
-
if (!field.modelKey) {
|
|
6991
|
-
field.modelKey = modelKey;
|
|
6992
|
-
}
|
|
6993
|
-
return field;
|
|
6994
|
-
});
|
|
6995
|
-
}
|
|
6996
|
-
/**
|
|
6997
|
-
* 根据模型key加载模型字段
|
|
6998
|
-
*
|
|
6999
|
-
* @param [modelKey=this.model]
|
|
7000
|
-
* @return {*}
|
|
7001
|
-
*/
|
|
7002
|
-
async loadModelFields(modelKey) {
|
|
7003
|
-
if (typeof this.apis.getFieldMetaList !== "function") {
|
|
7004
|
-
return;
|
|
7005
|
-
}
|
|
7006
|
-
const res = await this.apis.getFieldMetaList({
|
|
7007
|
-
modelKey
|
|
7008
|
-
});
|
|
7009
|
-
this.modelMetaMap[modelKey] = {
|
|
7010
|
-
key: modelKey,
|
|
7011
|
-
name: "",
|
|
7012
|
-
fields: this.completeFields(modelKey, res)
|
|
7013
|
-
};
|
|
7014
|
-
return res;
|
|
7015
|
-
}
|
|
7016
|
-
/**
|
|
7017
|
-
* 加载表单所有子表字段对应模型的字段信息集合
|
|
7018
|
-
*/
|
|
7019
|
-
async loadSubModelsFields(modelKey) {
|
|
7020
|
-
const res = await this.apis.getModelMetaSubModelList({
|
|
7021
|
-
modelKey
|
|
7022
|
-
});
|
|
7023
|
-
(res ?? []).forEach((m) => {
|
|
7024
|
-
if (!this.modelMetaMap[m.key]) {
|
|
7025
|
-
this.modelMetaMap[m.key] = {
|
|
7026
|
-
key: m.key,
|
|
7027
|
-
name: m.name,
|
|
7028
|
-
subModel: m.subModel,
|
|
7029
|
-
fields: this.completeFields(m.key, m.fieldMetaList)
|
|
7030
|
-
};
|
|
7031
|
-
}
|
|
7032
|
-
});
|
|
7033
|
-
}
|
|
7034
|
-
}
|
|
7035
|
-
class FormModelController {
|
|
7036
|
-
/** 主模型的key */
|
|
7037
|
-
masterModelKey;
|
|
7038
|
-
/** 主模型的名称 */
|
|
7039
|
-
masterModelName;
|
|
7040
|
-
/** 模型请求器 */
|
|
7041
|
-
fetcher = new BaseFormModelFetcher();
|
|
7042
|
-
/** 模型映射缓存 */
|
|
7043
|
-
modelMetaMap = reactive({});
|
|
7044
|
-
/** 主模型信息 */
|
|
7045
|
-
get masterModel() {
|
|
7046
|
-
return this.modelMetaMap[this.masterModelKey];
|
|
7047
|
-
}
|
|
7048
|
-
/** 获取主模型字段集合 */
|
|
7049
|
-
get masterFields() {
|
|
7050
|
-
return this.masterModel?.fields;
|
|
7051
|
-
}
|
|
7052
|
-
/** 获取子模型 */
|
|
7053
|
-
getSubModel(subModelKey) {
|
|
7054
|
-
return this.modelMetaMap[subModelKey];
|
|
7055
|
-
}
|
|
7056
|
-
/** 获取子模型字段集合 */
|
|
7057
|
-
getSubModelFields(subModelKey) {
|
|
7058
|
-
return this.getSubModel(subModelKey)?.fields;
|
|
7059
|
-
}
|
|
7060
|
-
/**
|
|
7061
|
-
* 表单字段下拉选项(排除系统字段和子表字段)
|
|
7062
|
-
* value 格式为 modelKey.fieldKey,与字段映射存储格式一致
|
|
7063
|
-
*/
|
|
7064
|
-
getFormFieldOptions(subModelKey) {
|
|
7065
|
-
const fields = subModelKey ? this.getSubModelFields(subModelKey) : this.masterModel?.fields;
|
|
7066
|
-
return (fields ?? []).filter(
|
|
7067
|
-
(field) => !this.isSystemField(field) && !this.isSubField(field) && !this.isObjectField(field)
|
|
7068
|
-
).map((field) => ({
|
|
7069
|
-
...field,
|
|
7070
|
-
label: `${field.name}`,
|
|
7071
|
-
value: `${field.modelKey}.${field.key}`
|
|
7072
|
-
}));
|
|
7073
|
-
}
|
|
7074
|
-
/**
|
|
7075
|
-
* 初始化
|
|
7076
|
-
*
|
|
7077
|
-
* @param opts
|
|
7078
|
-
* - model 主模型key
|
|
7079
|
-
* - name 主模型名称
|
|
7080
|
-
*/
|
|
7081
|
-
async init(opts) {
|
|
7082
|
-
this.masterModelKey = opts.model;
|
|
7083
|
-
this.masterModelName = opts.name;
|
|
7084
|
-
await this.load();
|
|
7085
|
-
}
|
|
7086
|
-
/** 刷新数据 */
|
|
7087
|
-
async refresh() {
|
|
7088
|
-
await this.load();
|
|
7089
|
-
}
|
|
7090
|
-
/**
|
|
7091
|
-
* 加载数据并填充到modelMetaMap中
|
|
7092
|
-
* @protected
|
|
7093
|
-
* @return {*}
|
|
7094
|
-
*/
|
|
7095
|
-
async load() {
|
|
7096
|
-
if (!this.masterModelKey) {
|
|
7097
|
-
console.error("缺少主模型的key");
|
|
7098
|
-
return;
|
|
7099
|
-
}
|
|
7100
|
-
const models = await this.fetcher.load({ model: this.masterModelKey });
|
|
7101
|
-
this.modelMetaMap = models.reduce((acc, cur) => {
|
|
7102
|
-
acc[cur.key] = cur;
|
|
7103
|
-
if (cur.key === this.masterModelKey) {
|
|
7104
|
-
cur.name = this.masterModelName;
|
|
7105
|
-
}
|
|
7106
|
-
return acc;
|
|
7107
|
-
}, {});
|
|
7108
|
-
}
|
|
7109
|
-
/** 是否是子模型字段 */
|
|
7110
|
-
isSubField(field) {
|
|
7111
|
-
return field.type === FIELD_TYPE.MASTERSLAVE && field.bindInfo;
|
|
7112
|
-
}
|
|
7113
|
-
/** 是否是预置字段,包括系统字段和业务内置字段 */
|
|
7114
|
-
isPresetField(field) {
|
|
7115
|
-
return [CreateType.BUILTIN, CreateType.SYSTEM].includes(field.createType);
|
|
7116
|
-
}
|
|
7117
|
-
/** 是否是系统字段 */
|
|
7118
|
-
isSystemField(field) {
|
|
7119
|
-
return field.createType === CreateType.SYSTEM;
|
|
7120
|
-
}
|
|
7121
|
-
/** 是否是对象字段类型 */
|
|
7122
|
-
isObjectField(field) {
|
|
7123
|
-
return field.type === FIELD_TYPE.OBJECT_TYPE;
|
|
7124
|
-
}
|
|
7125
|
-
/**
|
|
7126
|
-
* 获取主模型里子表字段对应的子模型key
|
|
7127
|
-
*
|
|
7128
|
-
* @param fieldKey 子表字段在主表里的字段key
|
|
7129
|
-
* @return {*}
|
|
7130
|
-
*/
|
|
7131
|
-
getSubFieldModelKey(fieldKey) {
|
|
7132
|
-
return this.masterFields.find((field) => field.key === fieldKey)?.bindInfo;
|
|
7133
|
-
}
|
|
7134
|
-
/**
|
|
7135
|
-
* 获取字段信息
|
|
7136
|
-
* @param [modelKey=this.masterModelKey] 模型key
|
|
7137
|
-
* @param fieldKey 字段key
|
|
7138
|
-
* @return {*}
|
|
7139
|
-
*/
|
|
7140
|
-
findField(modelKey = this.masterModelKey, fieldKey) {
|
|
7141
|
-
const model = this.modelMetaMap[modelKey];
|
|
7142
|
-
if (!model) {
|
|
7143
|
-
return;
|
|
7144
|
-
}
|
|
7145
|
-
return model.fields.find((field) => field.key === fieldKey);
|
|
7146
|
-
}
|
|
7147
|
-
}
|
|
7148
|
-
const FormModelControllerKey = "GctFormModelController";
|
|
7149
|
-
function useFormModel() {
|
|
7150
|
-
function provideController(c = new FormModelController()) {
|
|
7151
|
-
provide(FormModelControllerKey, c);
|
|
7152
|
-
return c;
|
|
7153
|
-
}
|
|
7154
|
-
function injectController() {
|
|
7155
|
-
return inject(FormModelControllerKey);
|
|
7156
|
-
}
|
|
7157
|
-
return {
|
|
7158
|
-
provideController,
|
|
7159
|
-
injectController
|
|
7160
|
-
};
|
|
7161
|
-
}
|
|
7162
7068
|
const SCAN_ROW_META_KEYS = /* @__PURE__ */ new Set([FRONT_ROW_KEY, "id_", "id", "group_", "deleted_", "delete_"]);
|
|
7163
7069
|
function hasRowId(row) {
|
|
7164
7070
|
const id = row.id_ ?? row.id;
|
|
@@ -7392,6 +7298,8 @@ class SubTableCore {
|
|
|
7392
7298
|
const { actionKey } = params;
|
|
7393
7299
|
if (actionKey === SubTableActionEnum.SCAN) {
|
|
7394
7300
|
this.openScanModal();
|
|
7301
|
+
} else if (actionKey === SubTableActionEnum.CHANGE_PARSE_RULE) {
|
|
7302
|
+
this.changeScanRule();
|
|
7395
7303
|
}
|
|
7396
7304
|
}
|
|
7397
7305
|
/**
|
|
@@ -7438,9 +7346,9 @@ class SubTableCore {
|
|
|
7438
7346
|
const result = {};
|
|
7439
7347
|
const config = this.bizTableConfig;
|
|
7440
7348
|
if (config?.dataLockControlField && params.field === config.dataLockControlField) {
|
|
7441
|
-
result.readonly =
|
|
7349
|
+
result.readonly = isPersistedSignatureLockActive(config, params.rowData);
|
|
7442
7350
|
} else if (config?.dataLockControlField) {
|
|
7443
|
-
result.disabled =
|
|
7351
|
+
result.disabled = isSignatureLockActive(config, params.rowData);
|
|
7444
7352
|
}
|
|
7445
7353
|
return result;
|
|
7446
7354
|
}
|
|
@@ -7493,6 +7401,20 @@ class SubTableCore {
|
|
|
7493
7401
|
scanRuleInfo;
|
|
7494
7402
|
/** 解析规则配置对象 */
|
|
7495
7403
|
scanRuleProps;
|
|
7404
|
+
/**
|
|
7405
|
+
* 变更条码规则
|
|
7406
|
+
*/
|
|
7407
|
+
async changeScanRule() {
|
|
7408
|
+
const newConfig = await this.render.openChangeRuleModal({
|
|
7409
|
+
config: this.scanRuleProps,
|
|
7410
|
+
subModelKey: this.subModelKey,
|
|
7411
|
+
formModelController: this.formModelController
|
|
7412
|
+
});
|
|
7413
|
+
if (newConfig) {
|
|
7414
|
+
this.scanRuleProps = newConfig;
|
|
7415
|
+
this.scanRuleInfo = await getParseRuleInfo({ id: newConfig.parsingRuleId });
|
|
7416
|
+
}
|
|
7417
|
+
}
|
|
7496
7418
|
/**
|
|
7497
7419
|
* 打开扫描弹窗
|
|
7498
7420
|
* @param opts
|
|
@@ -7571,71 +7493,37 @@ class SubTableCore {
|
|
|
7571
7493
|
console.log(this.ctx.widget.props.tableTitle, "处理表单按钮点击事件", params);
|
|
7572
7494
|
}
|
|
7573
7495
|
}
|
|
7574
|
-
|
|
7575
|
-
|
|
7576
|
-
|
|
7577
|
-
|
|
7578
|
-
|
|
7579
|
-
|
|
7580
|
-
deviceParamList: []
|
|
7581
|
-
};
|
|
7582
|
-
}
|
|
7583
|
-
function normalizeList(value) {
|
|
7584
|
-
if (!Array.isArray(value)) return [];
|
|
7585
|
-
return value.filter(
|
|
7586
|
-
(item) => item !== null && typeof item === "object" && typeof item.customFieldKey === "string"
|
|
7587
|
-
);
|
|
7588
|
-
}
|
|
7589
|
-
function normalizeConfig(value) {
|
|
7590
|
-
const data = value !== null && typeof value === "object" ? value : {};
|
|
7591
|
-
return {
|
|
7592
|
-
routingParamList: normalizeList(data.routingParamList),
|
|
7593
|
-
inspectionParamList: normalizeList(data.inspectionParamList),
|
|
7594
|
-
deviceParamList: normalizeList(data.deviceParamList)
|
|
7595
|
-
};
|
|
7596
|
-
}
|
|
7597
|
-
let lastRaw;
|
|
7598
|
-
let cachedConfig = emptyConfig();
|
|
7599
|
-
function readFormulaParamsConfig() {
|
|
7600
|
-
const raw = window.localStorage.getItem(STORAGE_KEY);
|
|
7601
|
-
if (raw !== lastRaw) {
|
|
7602
|
-
try {
|
|
7603
|
-
cachedConfig = normalizeConfig(raw ? JSON.parse(raw) : null);
|
|
7604
|
-
} catch {
|
|
7605
|
-
cachedConfig = emptyConfig();
|
|
7606
|
-
}
|
|
7607
|
-
lastRaw = raw;
|
|
7608
|
-
}
|
|
7609
|
-
return cachedConfig;
|
|
7496
|
+
let currentParamsConfig = {
|
|
7497
|
+
routingParamList: [],
|
|
7498
|
+
inspectionParamList: []
|
|
7499
|
+
};
|
|
7500
|
+
function setFormulaParamsConfig(paramsConfig = {}) {
|
|
7501
|
+
currentParamsConfig = paramsConfig ?? {};
|
|
7610
7502
|
}
|
|
7611
|
-
|
|
7612
|
-
|
|
7613
|
-
return
|
|
7614
|
-
},
|
|
7615
|
-
get inspectionParamList() {
|
|
7616
|
-
return readFormulaParamsConfig().inspectionParamList;
|
|
7503
|
+
async function CALC_IS_QUALIFIED(key, value, paramList) {
|
|
7504
|
+
if (!key || value == null) {
|
|
7505
|
+
return null;
|
|
7617
7506
|
}
|
|
7507
|
+
const config = paramList?.find((e) => e.customFieldKey === key);
|
|
7508
|
+
if (!config) return null;
|
|
7509
|
+
const { upperLimit, lowerLimit } = config;
|
|
7510
|
+
if (lowerLimit == null || upperLimit == null) return null;
|
|
7511
|
+
const actual = Number(value);
|
|
7512
|
+
const min = Number(config.lowerLimit);
|
|
7513
|
+
const max = Number(config.upperLimit);
|
|
7514
|
+
if (![actual, min, max].every(Number.isFinite)) return null;
|
|
7515
|
+
return actual >= min && actual <= max;
|
|
7516
|
+
}
|
|
7517
|
+
const FORMULA_FUNCS = {
|
|
7518
|
+
RoutingParamCheck: (key, value) => CALC_IS_QUALIFIED(key, value, currentParamsConfig.routingParamList || []),
|
|
7519
|
+
InspectionParamCheck: (key, value) => CALC_IS_QUALIFIED(key, value, currentParamsConfig.inspectionParamList || [])
|
|
7618
7520
|
};
|
|
7619
|
-
function
|
|
7620
|
-
const
|
|
7621
|
-
if (
|
|
7622
|
-
|
|
7623
|
-
|
|
7624
|
-
}
|
|
7625
|
-
const boundCalculators = /* @__PURE__ */ new WeakSet();
|
|
7626
|
-
function bindFormulaCacheInvalidation(value) {
|
|
7627
|
-
if (typeof value !== "function") return;
|
|
7628
|
-
const calculator = value;
|
|
7629
|
-
if (typeof calculator.clear !== "function" || boundCalculators.has(calculator)) return;
|
|
7630
|
-
boundCalculators.add(calculator);
|
|
7631
|
-
const clearCache = () => calculator.clear();
|
|
7632
|
-
window.addEventListener(PARAMS_CHANGED_EVENT, clearCache);
|
|
7633
|
-
window.addEventListener("storage", (event) => {
|
|
7634
|
-
if (event.storageArea === window.localStorage && (event.key === STORAGE_KEY || event.key === null)) {
|
|
7635
|
-
clearCache();
|
|
7636
|
-
}
|
|
7521
|
+
function registerFormulaFuncs() {
|
|
7522
|
+
const register2 = window.NocodeAdapter.utils?.formulaRegister;
|
|
7523
|
+
if (!register2) return;
|
|
7524
|
+
Object.entries(FORMULA_FUNCS).forEach(([k, func]) => {
|
|
7525
|
+
register2(k, func);
|
|
7637
7526
|
});
|
|
7638
|
-
clearCache();
|
|
7639
7527
|
}
|
|
7640
7528
|
function getGroupProductIds(entry) {
|
|
7641
7529
|
const ids = [entry.product_id_];
|
|
@@ -8078,15 +7966,6 @@ function useNocodeFormWidget(props, emit) {
|
|
|
8078
7966
|
...colIndex !== void 0 ? { colIndex } : {}
|
|
8079
7967
|
});
|
|
8080
7968
|
}
|
|
8081
|
-
if (eventType === "onChange" && dataRelationShip?.renderModeType === RenderModeEnum.FormMode) {
|
|
8082
|
-
const keys = widget.props?.valueChangeDataSourceKeys;
|
|
8083
|
-
if (keys?.length) {
|
|
8084
|
-
const current = value.value;
|
|
8085
|
-
await instance.value?.dataSourceManager?.queryOnValueChange(keys, {
|
|
8086
|
-
cleared: current == null || current === "" || Array.isArray(current) && !current.length
|
|
8087
|
-
});
|
|
8088
|
-
}
|
|
8089
|
-
}
|
|
8090
7969
|
if (eventType === "onBlur" && dataRelationShip?.renderModeType === RenderModeEnum.FormMode && !instance.value?.controller?.preparing) {
|
|
8091
7970
|
instance.value?.validation.requestLive("blur", true);
|
|
8092
7971
|
}
|
|
@@ -8169,7 +8048,6 @@ function useDependency(widget, props) {
|
|
|
8169
8048
|
const { isFieldModel, subFieldKey } = widget.props;
|
|
8170
8049
|
const fieldWidget = ref(cloneDeep(props.widget));
|
|
8171
8050
|
const { instance, formStateStore } = useRuntimeInstanceServices();
|
|
8172
|
-
const basicInfo = inject(NCB_PROVIDE.DATA_RELATION_SHIP);
|
|
8173
8051
|
const targetFieldId = getRuntimeDataFieldId(widget.props);
|
|
8174
8052
|
const configDependency = widget.props.componentDependency?.configDependency || {};
|
|
8175
8053
|
const controlledFormData = computed(() => {
|
|
@@ -8188,8 +8066,7 @@ function useDependency(widget, props) {
|
|
|
8188
8066
|
props.widget.props,
|
|
8189
8067
|
props.widget.id,
|
|
8190
8068
|
row,
|
|
8191
|
-
parent
|
|
8192
|
-
basicInfo?.formChangeStatus
|
|
8069
|
+
parent
|
|
8193
8070
|
);
|
|
8194
8071
|
},
|
|
8195
8072
|
(displayProps) => {
|
|
@@ -8776,15 +8653,6 @@ async function applyConsumeObjectTraceChange(opts) {
|
|
|
8776
8653
|
}
|
|
8777
8654
|
return {};
|
|
8778
8655
|
}
|
|
8779
|
-
class MBRender {
|
|
8780
|
-
// 多 Sheet / 同屏场景用 ownerId 隔离实例;基类仅声明宿主需要实现的能力。
|
|
8781
|
-
async openConsumeModal(_ownerId, _data) {
|
|
8782
|
-
throw new Error("Function openConsumeModal not implemented.");
|
|
8783
|
-
}
|
|
8784
|
-
destoryConsumeModal(_ownerId) {
|
|
8785
|
-
throw new Error("Function destoryConsumeModal not implemented.");
|
|
8786
|
-
}
|
|
8787
|
-
}
|
|
8788
8656
|
const _hoisted_1$5 = ["data-merge", "data-fill-direction"];
|
|
8789
8657
|
const _hoisted_2$1 = {
|
|
8790
8658
|
key: 0,
|
|
@@ -9201,7 +9069,6 @@ const DocumentSubTable = /* @__PURE__ */ defineComponent({
|
|
|
9201
9069
|
const newRowsData = actionType === "copyRow" ? [cloneDeep(rowData)] : Array.from({
|
|
9202
9070
|
length: rowNum
|
|
9203
9071
|
}, (_, index2) => transformUtils.addSubTableRowItem({
|
|
9204
|
-
defaultValueOrigins: instance.value?.defaultValueValidation?.defaults,
|
|
9205
9072
|
defaultData: currentFieldDefaultData.value,
|
|
9206
9073
|
quickFillData: quickFillDatas?.[index2],
|
|
9207
9074
|
subFieldId: field,
|
|
@@ -9607,6 +9474,8 @@ function waitDomStable(el, idle = 100, timeout = 2e3) {
|
|
|
9607
9474
|
var MaterialConsumeActionType = /* @__PURE__ */ ((MaterialConsumeActionType2) => {
|
|
9608
9475
|
MaterialConsumeActionType2["CONFIRM"] = "CONFIRM";
|
|
9609
9476
|
MaterialConsumeActionType2["SCAN"] = "SCAN";
|
|
9477
|
+
MaterialConsumeActionType2["VIEW_BOM"] = "VIEW_BOM";
|
|
9478
|
+
MaterialConsumeActionType2["CHANGE_PARSE_RULE"] = "CHANGE_PARSE_RULE";
|
|
9610
9479
|
return MaterialConsumeActionType2;
|
|
9611
9480
|
})(MaterialConsumeActionType || {});
|
|
9612
9481
|
const MaterialConsumeTable = /* @__PURE__ */ defineComponent({
|
|
@@ -9757,7 +9626,6 @@ const MaterialConsumeTable = /* @__PURE__ */ defineComponent({
|
|
|
9757
9626
|
length: rowNum
|
|
9758
9627
|
}, (_, i) => {
|
|
9759
9628
|
const row = transformUtils.addSubTableRowItem({
|
|
9760
|
-
defaultValueOrigins: instance.value?.defaultValueValidation?.defaults,
|
|
9761
9629
|
defaultData: currentFieldDefaultData.value,
|
|
9762
9630
|
quickFillData: quickFillDatas?.[i],
|
|
9763
9631
|
subFieldId: field,
|
|
@@ -9858,6 +9726,12 @@ const MaterialConsumeTable = /* @__PURE__ */ defineComponent({
|
|
|
9858
9726
|
title: props.widget.props.tableTitle
|
|
9859
9727
|
});
|
|
9860
9728
|
break;
|
|
9729
|
+
case MaterialConsumeActionType.VIEW_BOM:
|
|
9730
|
+
tableController.openBomModal();
|
|
9731
|
+
break;
|
|
9732
|
+
case MaterialConsumeActionType.CHANGE_PARSE_RULE:
|
|
9733
|
+
tableController.changeScanRule();
|
|
9734
|
+
break;
|
|
9861
9735
|
}
|
|
9862
9736
|
};
|
|
9863
9737
|
const getNewTdInfo = (tdInfo, rowData, rowIndex) => {
|
|
@@ -10035,6 +9909,10 @@ const MaterialConsumeTable = /* @__PURE__ */ defineComponent({
|
|
|
10035
9909
|
label: "业务操作"
|
|
10036
9910
|
},
|
|
10037
9911
|
showScanBtn ? getMenuByAction(SubTableActionEnum.SCAN) : void 0,
|
|
9912
|
+
// tableController.actualBomEntries?.length
|
|
9913
|
+
// ? getMenuByAction(SubTableActionEnum.VIEW_BOM)
|
|
9914
|
+
// : undefined,
|
|
9915
|
+
// getMenuByAction(SubTableActionEnum.CHANGE_PARSE_RULE),
|
|
10038
9916
|
{
|
|
10039
9917
|
type: SubTableActionMenuTypeEnum.DIVIDER
|
|
10040
9918
|
},
|
|
@@ -10320,6 +10198,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
10320
10198
|
showInsertMultiple: { type: Boolean, default: false },
|
|
10321
10199
|
showEditBtn: { type: Boolean, default: false },
|
|
10322
10200
|
isMaterialConsume: { type: Boolean, default: false },
|
|
10201
|
+
showBom: { type: Boolean, default: false },
|
|
10323
10202
|
showScanBtn: { type: Boolean, default: false },
|
|
10324
10203
|
showConfirmBtn: { type: Boolean, default: false },
|
|
10325
10204
|
noPopover: { type: Boolean, default: false },
|
|
@@ -10343,6 +10222,19 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
10343
10222
|
label: "条码扫描",
|
|
10344
10223
|
icon: "size24 icon-saoma1"
|
|
10345
10224
|
},
|
|
10225
|
+
{
|
|
10226
|
+
show: props.showBom,
|
|
10227
|
+
type: "action",
|
|
10228
|
+
key: SubTableActionEnum.VIEW_BOM,
|
|
10229
|
+
label: "BOM查看",
|
|
10230
|
+
icon: "size24 icon-a-bom11"
|
|
10231
|
+
},
|
|
10232
|
+
{
|
|
10233
|
+
type: "action",
|
|
10234
|
+
key: SubTableActionEnum.CHANGE_PARSE_RULE,
|
|
10235
|
+
label: "条码解析规则变更",
|
|
10236
|
+
icon: "icon-tiaomajiexi"
|
|
10237
|
+
},
|
|
10346
10238
|
{
|
|
10347
10239
|
type: "divider"
|
|
10348
10240
|
},
|
|
@@ -10569,7 +10461,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
10569
10461
|
};
|
|
10570
10462
|
}
|
|
10571
10463
|
});
|
|
10572
|
-
const SubTableAction = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-
|
|
10464
|
+
const SubTableAction = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-acff8196"]]);
|
|
10573
10465
|
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
10574
10466
|
__name: "fixed-table-action",
|
|
10575
10467
|
props: {
|
|
@@ -11099,6 +10991,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
11099
10991
|
showInsertMultiple: { type: Boolean, default: true },
|
|
11100
10992
|
showEditBtn: { type: Boolean },
|
|
11101
10993
|
isMaterialConsume: { type: Boolean },
|
|
10994
|
+
showBom: { type: Boolean },
|
|
11102
10995
|
showScanBtn: { type: Boolean },
|
|
11103
10996
|
showConfirmBtn: { type: Boolean },
|
|
11104
10997
|
noPopover: { type: Boolean },
|
|
@@ -11155,6 +11048,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
11155
11048
|
showDelBtn: __props.showDelBtn,
|
|
11156
11049
|
showQuickFillBtn: __props.showQuickFillBtn,
|
|
11157
11050
|
noPopover: __props.noPopover,
|
|
11051
|
+
showBom: __props.showBom,
|
|
11158
11052
|
showConfirmBtn: __props.showConfirmBtn,
|
|
11159
11053
|
showEditBtn: __props.showEditBtn,
|
|
11160
11054
|
showInsertMultiple: __props.showInsertMultiple,
|
|
@@ -11162,79 +11056,79 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
11162
11056
|
isMaterialConsume: __props.isMaterialConsume,
|
|
11163
11057
|
menus: __props.menus,
|
|
11164
11058
|
onMenuClick
|
|
11165
|
-
}, null, 8, ["showDelBtn", "showQuickFillBtn", "noPopover", "showConfirmBtn", "showEditBtn", "showInsertMultiple", "showScanBtn", "isMaterialConsume", "menus"]);
|
|
11059
|
+
}, null, 8, ["showDelBtn", "showQuickFillBtn", "noPopover", "showBom", "showConfirmBtn", "showEditBtn", "showInsertMultiple", "showScanBtn", "isMaterialConsume", "menus"]);
|
|
11166
11060
|
};
|
|
11167
11061
|
}
|
|
11168
11062
|
});
|
|
11169
|
-
const DynamicTableAction = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
11063
|
+
const DynamicTableAction = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-53d7e66c"]]);
|
|
11170
11064
|
export {
|
|
11171
|
-
|
|
11172
|
-
|
|
11065
|
+
registerFormulaFuncs as $,
|
|
11066
|
+
resolveObjectBomEntry as A,
|
|
11173
11067
|
BorderTD as B,
|
|
11174
|
-
|
|
11068
|
+
runWithFillProduct as C,
|
|
11175
11069
|
DEFAULT_BOOLEAN_FIELD_WIDTH as D,
|
|
11176
|
-
|
|
11177
|
-
|
|
11178
|
-
|
|
11179
|
-
|
|
11180
|
-
|
|
11181
|
-
|
|
11182
|
-
|
|
11183
|
-
|
|
11070
|
+
useNocodeFormWidget as E,
|
|
11071
|
+
applyConsumeObjectTraceChange as F,
|
|
11072
|
+
getObjectBomProductQuery as G,
|
|
11073
|
+
EMPTY_PRODUCT_VERSION_ID as H,
|
|
11074
|
+
normalizeHistoricalAutofillRow as I,
|
|
11075
|
+
readSealValue as J,
|
|
11076
|
+
isSealStamped as K,
|
|
11077
|
+
stampSealValue as L,
|
|
11184
11078
|
MAX_RUNTIME_SHEETS as M,
|
|
11185
|
-
|
|
11186
|
-
|
|
11187
|
-
|
|
11188
|
-
|
|
11189
|
-
|
|
11190
|
-
|
|
11191
|
-
|
|
11192
|
-
|
|
11193
|
-
|
|
11194
|
-
|
|
11195
|
-
|
|
11196
|
-
|
|
11197
|
-
|
|
11198
|
-
|
|
11079
|
+
NCB_PROVIDE as N,
|
|
11080
|
+
isValidSealValue as O,
|
|
11081
|
+
clearSealValue as P,
|
|
11082
|
+
parseRuntimeFieldPath as Q,
|
|
11083
|
+
calculateFormula as R,
|
|
11084
|
+
useStyles as S,
|
|
11085
|
+
useDependency as T,
|
|
11086
|
+
useFieldPresentation as U,
|
|
11087
|
+
useRuntimeEditorFlusher as V,
|
|
11088
|
+
RuntimeFormStateStore as W,
|
|
11089
|
+
createRuntimeInstanceContext as X,
|
|
11090
|
+
RuntimeInstanceRegistry as Y,
|
|
11091
|
+
ScanParamType as Z,
|
|
11092
|
+
RequiredQtyCalcRule as _,
|
|
11199
11093
|
MAX_RUNTIME_SHEET_TITLE_LENGTH as a,
|
|
11200
|
-
|
|
11201
|
-
|
|
11202
|
-
|
|
11203
|
-
|
|
11204
|
-
|
|
11205
|
-
|
|
11206
|
-
|
|
11207
|
-
|
|
11208
|
-
|
|
11209
|
-
|
|
11210
|
-
|
|
11211
|
-
|
|
11212
|
-
|
|
11213
|
-
|
|
11214
|
-
|
|
11215
|
-
|
|
11216
|
-
|
|
11217
|
-
|
|
11218
|
-
|
|
11219
|
-
|
|
11220
|
-
|
|
11221
|
-
|
|
11222
|
-
|
|
11223
|
-
|
|
11224
|
-
|
|
11225
|
-
|
|
11226
|
-
|
|
11227
|
-
|
|
11228
|
-
|
|
11229
|
-
|
|
11230
|
-
|
|
11231
|
-
|
|
11232
|
-
|
|
11233
|
-
|
|
11234
|
-
|
|
11235
|
-
|
|
11236
|
-
|
|
11237
|
-
|
|
11094
|
+
getMenuByAction as a$,
|
|
11095
|
+
moveSealValue as a0,
|
|
11096
|
+
DocumentPaper as a1,
|
|
11097
|
+
DynamicTableAction as a2,
|
|
11098
|
+
_sfc_main$5 as a3,
|
|
11099
|
+
getRuntimeDataFieldId as a4,
|
|
11100
|
+
buildRuntimeFieldPath as a5,
|
|
11101
|
+
resolveRuntimeFieldProps as a6,
|
|
11102
|
+
resolveRuntimeFieldState as a7,
|
|
11103
|
+
assembleRules as a8,
|
|
11104
|
+
isAttachFieldActive as a9,
|
|
11105
|
+
RuntimeDependencyService as aA,
|
|
11106
|
+
RuntimeFieldRegistry as aB,
|
|
11107
|
+
RuntimeInstanceEventBus as aC,
|
|
11108
|
+
RuntimePersistenceCoordinator as aD,
|
|
11109
|
+
RuntimeValidationService as aE,
|
|
11110
|
+
SubTableCore as aF,
|
|
11111
|
+
buildFormChangeDisplayRows as aG,
|
|
11112
|
+
convertV1Runtime as aH,
|
|
11113
|
+
detailsHaveFormChangeRowOps as aI,
|
|
11114
|
+
extractFormChangeRowDetails as aJ,
|
|
11115
|
+
getFormChangeRowKey as aK,
|
|
11116
|
+
getFormChangeRowOp as aL,
|
|
11117
|
+
getSubTableQuickFillInfo as aM,
|
|
11118
|
+
isAnnLocationSelected as aN,
|
|
11119
|
+
isBlank as aO,
|
|
11120
|
+
isFormChangeGhostRow as aP,
|
|
11121
|
+
normalizeHistoricalFieldConfig as aQ,
|
|
11122
|
+
pickObjectFieldKeys as aR,
|
|
11123
|
+
recordSubtableRowAdd as aS,
|
|
11124
|
+
recordSubtableRowDelete as aT,
|
|
11125
|
+
relocateDeletedRowsToEnd as aU,
|
|
11126
|
+
resolveAnnotationFieldLocation as aV,
|
|
11127
|
+
resolveFormChangeRowUi as aW,
|
|
11128
|
+
resolveRowFormChangeMark as aX,
|
|
11129
|
+
setSelectMobileTdId as aY,
|
|
11130
|
+
stripLegacyFormConfigFromPaper as aZ,
|
|
11131
|
+
SubTableActionMenuTypeEnum as a_,
|
|
11238
11132
|
getRuntimeDependencyOutputKey as aa,
|
|
11239
11133
|
isRowAddedInCurrentFormChange as ab,
|
|
11240
11134
|
resolveFormulaData as ac,
|
|
@@ -11250,54 +11144,53 @@ export {
|
|
|
11250
11144
|
useMaterialBalance as am,
|
|
11251
11145
|
collectFormChangeFieldLocations as an,
|
|
11252
11146
|
nextFormChangeRowViewHistoryId as ao,
|
|
11253
|
-
|
|
11254
|
-
|
|
11255
|
-
|
|
11256
|
-
|
|
11257
|
-
|
|
11258
|
-
|
|
11259
|
-
|
|
11260
|
-
|
|
11261
|
-
|
|
11262
|
-
|
|
11263
|
-
|
|
11264
|
-
|
|
11265
|
-
|
|
11266
|
-
|
|
11267
|
-
|
|
11268
|
-
|
|
11269
|
-
|
|
11270
|
-
|
|
11271
|
-
|
|
11272
|
-
|
|
11273
|
-
|
|
11274
|
-
|
|
11275
|
-
|
|
11276
|
-
|
|
11277
|
-
|
|
11278
|
-
|
|
11279
|
-
|
|
11280
|
-
|
|
11281
|
-
|
|
11282
|
-
|
|
11283
|
-
|
|
11284
|
-
|
|
11285
|
-
|
|
11286
|
-
|
|
11287
|
-
|
|
11288
|
-
|
|
11289
|
-
findFieldProfile as m,
|
|
11147
|
+
DeviceConnector as ap,
|
|
11148
|
+
DocumentLoading as aq,
|
|
11149
|
+
DynamicQuickFillModal as ar,
|
|
11150
|
+
FixedQuickFillModal as as,
|
|
11151
|
+
FormTmplConfigController as at,
|
|
11152
|
+
LEGACY_RUNTIME_FORM_CONFIG_KEYS as au,
|
|
11153
|
+
LEGACY_RUNTIME_SHEET_ID as av,
|
|
11154
|
+
LEGACY_RUNTIME_SHEET_TITLE as aw,
|
|
11155
|
+
MCDataUtil as ax,
|
|
11156
|
+
OCR_MODEL_PRECISION_ENUM_KEY as ay,
|
|
11157
|
+
RuntimeAsyncTaskCoordinator as az,
|
|
11158
|
+
MULTI_SHEET_SCHEMA_VERSION as b,
|
|
11159
|
+
SubTableActionEnum as b0,
|
|
11160
|
+
resolveScanFillData as b1,
|
|
11161
|
+
buildDefaultMapFromProfile as b2,
|
|
11162
|
+
buildFieldStatusFromProfile as b3,
|
|
11163
|
+
getRowHandlersForFieldChange as b4,
|
|
11164
|
+
getInsertSubMenu as b5,
|
|
11165
|
+
resolveScanAdjustType as b6,
|
|
11166
|
+
resolveScanQty as b7,
|
|
11167
|
+
toDateOnly as b8,
|
|
11168
|
+
hasSubtableBusinessData as b9,
|
|
11169
|
+
getCopySubMenu as ba,
|
|
11170
|
+
resolveScanParsedValue as bb,
|
|
11171
|
+
isProductBatchEmptyRow as bc,
|
|
11172
|
+
normalizeGridColumnWidth as c,
|
|
11173
|
+
getParseFormulaVarInfos as d,
|
|
11174
|
+
createRuntimeDocumentV2 as e,
|
|
11175
|
+
clampSealPosition as f,
|
|
11176
|
+
getBusinessFieldKey as g,
|
|
11177
|
+
normalizeSealDiameter as h,
|
|
11178
|
+
normalizeFieldWidth as i,
|
|
11179
|
+
isCellAutoLineBreak as j,
|
|
11180
|
+
findFieldProfile as k,
|
|
11181
|
+
normalizeHistoricalBusinessRow as l,
|
|
11182
|
+
DeviceLinkTmplUtil as m,
|
|
11290
11183
|
normalizeFieldFontSize as n,
|
|
11291
|
-
|
|
11292
|
-
|
|
11293
|
-
|
|
11294
|
-
|
|
11295
|
-
|
|
11296
|
-
|
|
11297
|
-
|
|
11298
|
-
|
|
11299
|
-
|
|
11300
|
-
|
|
11301
|
-
|
|
11302
|
-
|
|
11184
|
+
normalizeAIOcrTmpl as o,
|
|
11185
|
+
useWidgetStaticAttrs as p,
|
|
11186
|
+
useRuntimeInstanceServices as q,
|
|
11187
|
+
setSelectAnnotationId as r,
|
|
11188
|
+
setSelectValidatorId as s,
|
|
11189
|
+
useRuntimeRowState as t,
|
|
11190
|
+
useFormTmplConfig as u,
|
|
11191
|
+
getObjectBomMaterialLotQuery as v,
|
|
11192
|
+
buildObjectLotExtraQuery as w,
|
|
11193
|
+
resolveObjectFieldKeys as x,
|
|
11194
|
+
MaterialConsumptionPatternEnum as y,
|
|
11195
|
+
validateObjectBomForScan as z
|
|
11303
11196
|
};
|