@gct-paas/excel 0.1.32 → 0.1.33-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/dist/{BaseComponent-CC5rukQG.js → BaseComponent-CAe1GFCG.js} +1 -1
  2. package/dist/{VueVideoPlayer-h_ZG9FHq.js → VueVideoPlayer-BR4RbIhY.js} +2 -2
  3. package/dist/{align-editor-CnDiBeYX.js → align-editor-jvwZmJhi.js} +1 -1
  4. package/dist/{barcode-design-DKS1-ByA.js → barcode-design-D-RUtBUQ.js} +2 -2
  5. package/dist/base/index.es.js +594 -338
  6. package/dist/{diagonal-design-DsSAdTPc.js → diagonal-design-D0-8xfY9.js} +2 -2
  7. package/dist/{dynamic-table-action-C06Eolmw.js → dynamic-table-action-CuwejY0h.js} +260 -63
  8. package/dist/{dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-CeMxIrHD.js → dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-CFFrNEYh.js} +6784 -4914
  9. package/dist/{edit.utils-CXmmCnxE-DgR7eBfx.js → edit.utils-CXmmCnxE-DsHacnTy.js} +1 -1
  10. package/dist/excel.css +2050 -1111
  11. package/dist/{exceljs.min-tTYbMh8Q.js → exceljs.min-Cq93OYx0.js} +2 -2
  12. package/dist/{font-editor-Dg4-mIar.js → font-editor-STIcKQS9.js} +3 -3
  13. package/dist/{image-design-DipYIW7J.js → image-design-BE0reQ2L.js} +2 -2
  14. package/dist/{index-BSDIqsy-.js → index-7fOfFIWA.js} +1 -1
  15. package/dist/{index-4oVjbEL5.js → index-B8UxP4I8.js} +2 -2
  16. package/dist/{index-Bbm1OZll.js → index-BDEROc8n.js} +2 -2
  17. package/dist/{index-D77cqI26.js → index-BHKYBIU4.js} +1 -1
  18. package/dist/{index-CRhFD2Ma.js → index-BR8jTu0U.js} +3 -3
  19. package/dist/{index-hdnCCYft.js → index-B_Vz06n5.js} +2 -2
  20. package/dist/{index-CxeNA6if.js → index-Boh-6KTf.js} +3 -3
  21. package/dist/{index-C2LjfZ8T.js → index-ByFo5Dnd.js} +2 -2
  22. package/dist/{index-B2uQ_Gpo.js → index-BzYqBsXt.js} +6 -3
  23. package/dist/{index-8yIbmmaT.js → index-C1qPKXtI.js} +2 -2
  24. package/dist/{index-ClPbkivx.js → index-CTtq3ytv.js} +2 -2
  25. package/dist/{index-CnD1HgLA.js → index-CZ_rns9z.js} +3 -3
  26. package/dist/{index-D7uEmsRJ.js → index-CZjv5O4w.js} +2 -2
  27. package/dist/{index-CoqaGOXy.js → index-CaAA6yTk.js} +2 -2
  28. package/dist/{index-CLijkm1b.js → index-CrlUK3mJ.js} +3 -3
  29. package/dist/{index-7uJnJBMV.js → index-CsE9ftfx.js} +9 -3
  30. package/dist/{index-BzWrm1H6.js → index-CxOH8cdl.js} +1 -1
  31. package/dist/{index-DtBIvDQH.js → index-CzZMgyTs.js} +1 -1
  32. package/dist/{index-DJS-Qycc.js → index-D1qAQzmB.js} +2 -2
  33. package/dist/{index-DyJk8rK7.js → index-D5ZIZcxA.js} +2 -2
  34. package/dist/{index-BX7fyebb.js → index-D5aim6xd.js} +1 -1
  35. package/dist/{index-DwCjfahr.js → index-D9JmIbUb.js} +1 -1
  36. package/dist/{index-MOgjK9eo.js → index-DcN-7DVw.js} +36526 -35225
  37. package/dist/{index-DkBu7mHZ.js → index-Dl5qzD_4.js} +2 -2
  38. package/dist/{index-BhReeJJg.js → index-DogAqNJV.js} +2 -2
  39. package/dist/{index-DWHpkDH4.js → index-DvbyBcoW.js} +3 -3
  40. package/dist/{index-Cl6vrDfE.js → index-DwQuEur6.js} +2 -2
  41. package/dist/{index-B_-itxOF.js → index-GZPHkfRf.js} +2 -2
  42. package/dist/{index-CSgBgTvS.js → index-Gqpg9XkM.js} +2 -2
  43. package/dist/{index-Cca1mHnO.js → index-OQIgIej5.js} +1 -1
  44. package/dist/{index-D6PLyjGU.js → index-TfrN14XT.js} +2 -2
  45. package/dist/{index-15gZRWSR.js → index-uyTvicTO.js} +1 -1
  46. package/dist/{index-DH7pin31.js → index-vCGSByW_.js} +2 -2
  47. package/dist/{index-BVyNEH4i.js → index-wGLH0bRh.js} +1 -1
  48. package/dist/index.es.js +2 -2
  49. package/dist/{mb-render-BVp5fqUK.js → mb-render-CtCYbeiE.js} +1 -1
  50. package/dist/{online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-0eC-BT2j.js → online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-DhcW_QTf.js} +1 -8
  51. package/dist/{pagination-design-BugQ6_X1.js → pagination-design-Dww0Y1-3.js} +2 -2
  52. package/dist/paper-widget-design-D_mxf4dD.js +4 -0
  53. package/dist/{qrcode-design-BvcrdqjC.js → qrcode-design-D0aSeR4l.js} +1 -1
  54. package/dist/{revo-grid.entry-ByZf-Mkh.js → revo-grid.entry-DI2rNob_.js} +1 -1
  55. package/dist/{revogr-attribution_7.entry-Bkbb15P7.js → revogr-attribution_7.entry-CBbD7d-g.js} +3 -3
  56. package/dist/{revogr-clipboard_3.entry-BAsnJv1y.js → revogr-clipboard_3.entry-CLAxZ5jH.js} +2 -2
  57. package/dist/{revogr-data_4.entry-Cpmztqm8.js → revogr-data_4.entry-7VW0g6vl.js} +2 -2
  58. package/dist/{revogr-filter-panel.entry-CUJGzSbz.js → revogr-filter-panel.entry-DGHVS3a2.js} +1 -1
  59. package/dist/{serialnumber-design-CtnZEPSs.js → serialnumber-design-D37xioAJ.js} +1 -1
  60. package/dist/shared/index.es.js +31 -25
  61. package/dist/{single-field-drop-BKf3R6dR.js → single-field-drop-D5eogcuY.js} +2 -2
  62. package/dist/{size-editor-DbOpQm-C.js → size-editor-_oGc1_8M.js} +1 -1
  63. package/dist/src/assets/svgs/table/index.d.ts +1 -0
  64. package/dist/src/domain/field/text/udi-manifest.d.ts +2 -0
  65. package/dist/src/domain/table/business/device/maintenance/index.d.ts +1 -0
  66. package/dist/src/domain/table/business/device/maintenance/profile/field-keys.d.ts +9 -0
  67. package/dist/src/domain/table/business/device/maintenance/profile/fields.d.ts +2 -0
  68. package/dist/src/domain/table/business/device/maintenance/profile/index.d.ts +3 -0
  69. package/dist/src/domain/table/business/device/point-inspection/index.d.ts +1 -0
  70. package/dist/src/domain/table/business/device/point-inspection/profile/field-keys.d.ts +9 -0
  71. package/dist/src/domain/table/business/device/point-inspection/profile/fields.d.ts +2 -0
  72. package/dist/src/domain/table/business/device/point-inspection/profile/index.d.ts +3 -0
  73. package/dist/src/domain/table/business/device/signature-lock.d.ts +9 -0
  74. package/dist/src/domain/table/business/material/material-substitution/index.d.ts +2 -0
  75. package/dist/src/domain/table/business/material/material-substitution/profile/field-keys.d.ts +75 -0
  76. package/dist/src/domain/table/business/material/material-substitution/profile/fields.d.ts +2 -0
  77. package/dist/src/domain/table/business/material/material-substitution/profile/index.d.ts +4 -0
  78. package/dist/src/domain/table/business/material/material-substitution/runtime/register-handlers.d.ts +1 -0
  79. package/dist/src/domain/table/business/material/material-substitution/runtime/row-change-handlers.d.ts +6 -0
  80. package/dist/src/domain/table/design/create-subtable.d.ts +1 -1
  81. package/dist/src/domain/table/design/hooks/on-field-attach.d.ts +1 -1
  82. package/dist/src/domain/table/design/index.d.ts +1 -1
  83. package/dist/src/domain/table/design/sub-model-matcher.d.ts +1 -0
  84. package/dist/src/domain/table/index.d.ts +3 -2
  85. package/dist/src/domain/table/registry.d.ts +1 -0
  86. package/dist/src/domain/table/types.d.ts +8 -3
  87. package/dist/src/nocode-base/src/components/inspection-decision-prompt-modal.vue.d.ts +7 -0
  88. package/dist/src/nocode-base/src/constant/index.d.ts +17 -1
  89. package/dist/src/nocode-base/src/core/sub-table/profile-driven-sub-table-core.d.ts +22 -0
  90. package/dist/src/nocode-base/src/hooks/index.d.ts +2 -1
  91. package/dist/src/nocode-base/src/hooks/inspection-decision-rule/evaluator.d.ts +11 -0
  92. package/dist/src/nocode-base/src/hooks/material-consume/bom-validator.d.ts +10 -2
  93. package/dist/src/nocode-base/src/hooks/material-consume/material-consume-table-controller.d.ts +5 -0
  94. package/dist/src/nocode-base/src/hooks/udi.d.ts +5 -0
  95. package/dist/src/nocode-base/src/hooks/useValidator.d.ts +2 -2
  96. package/dist/src/nocode-base/src/hooks/validation/runValidation.d.ts +2 -0
  97. package/dist/src/nocode-base/src/hooks/validation/useFormValidator.d.ts +4 -0
  98. package/dist/src/nocode-base/src/types/business/index.d.ts +8 -1
  99. package/dist/src/nocode-base/src/types/common/base.d.ts +53 -1
  100. package/dist/src/nocode-base/src/types/fields/i-sign.d.ts +5 -1
  101. package/dist/src/nocode-base/src/types/index.d.ts +1 -1
  102. package/dist/src/nocode-base/src/types/widgets/i-paper.d.ts +3 -1
  103. package/dist/src/online-form/src/components/version-diff/index/types.d.ts +5 -1
  104. package/dist/src/online-form/src/views/designer/constants/index.d.ts +1 -0
  105. package/dist/src/online-form/src/views/designer/enums/index.d.ts +2 -1
  106. package/dist/src/online-form/src/views/designer/hooks/useAllSpreadSheets.d.ts +48 -0
  107. package/dist/src/online-form/src/views/designer/hooks/useSpreadSheet.d.ts +63 -0
  108. package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/decision-rule-condition.vue.d.ts +19 -0
  109. package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/decision-rule-group.vue.d.ts +16 -0
  110. package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/decision-rule.d.ts +54 -0
  111. package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/field-tree-node.vue.d.ts +24 -0
  112. package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/field-tree-select.vue.d.ts +30 -0
  113. package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/field-tree-utils.d.ts +12 -0
  114. package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/inspection-decision-modal.vue.d.ts +9 -0
  115. package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/panel-rule-config.vue.d.ts +18 -1
  116. package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/word-ui/gct-button.vue.d.ts +33 -0
  117. package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/word-ui/gct-icon.vue.d.ts +12 -0
  118. package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/word-ui/gct-input.vue.d.ts +23 -0
  119. package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/word-ui/gct-modal.vue.d.ts +36 -0
  120. package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/word-ui/gct-scrollbar.vue.d.ts +21 -0
  121. package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/word-ui/gct-select.vue.d.ts +30 -0
  122. package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/word-ui/gct-switch.vue.d.ts +17 -0
  123. package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/word-ui/gct-text-area.vue.d.ts +20 -0
  124. package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/word-ui/index.d.ts +8 -0
  125. package/dist/src/online-form/src/views/designer/modules/panel/sub-table/comps/use-dynamic-sub-table-panel.d.ts +30 -0
  126. package/dist/src/online-form/src/views/designer/types/index.d.ts +4 -2
  127. package/dist/src/online-form/src/views/designer/utils/xlsx-parser.d.ts +3 -0
  128. package/dist/src/online-form/src/views/render/__components__/_field_/sign/component/sign-validation.d.ts +13 -0
  129. package/dist/src/shared/components/Signature/card-signer.vue.d.ts +2 -2
  130. package/dist/src/shared/components/Signature/index.d.ts +1 -2
  131. package/dist/src/shared/components/Signature/logic/index.d.ts +8 -23
  132. package/dist/src/shared/components/Signature/types/index.d.ts +4 -1
  133. package/dist/src/shared/components/Signature/ui/password-signer.vue.d.ts +2 -0
  134. package/dist/src/shared/components/Signature/ui/sign-popover-content.vue.d.ts +6 -2
  135. package/dist/src/shared/components/Signature/ui/sign-switcher.vue.d.ts +3 -1
  136. package/dist/src/shared/enum/field-type.d.ts +5 -0
  137. package/dist/src/shared/enum/online-form.d.ts +7 -1
  138. package/dist/{text-design-D9Qm-frB.js → text-design-CHoQtOBi.js} +2 -2
  139. package/dist/{throttle-Cpk1LoGk-CMDdqI7x.js → throttle-Cpk1LoGk-CEvaM6uf.js} +1 -1
  140. package/dist/{timediff-design-D9liVCTr.js → timediff-design-BxItKsBW.js} +1 -1
  141. package/dist/{trace-like-wrapper-DQqwOlxy.js → trace-like-wrapper-BNwwljhN.js} +2 -2
  142. package/dist/{value-editor.vue_vue_type_style_index_0_lang-B-NZBJiV.js → value-editor.vue_vue_type_style_index_0_lang-WwOnevs0.js} +2 -2
  143. package/dist/web-render/index.es.js +3 -3
  144. package/dist/{widget-barcode-CRnaA-B2.js → widget-barcode-CmzvEEWx.js} +4 -4
  145. package/dist/{widget-diagonal-5QDZqvMH.js → widget-diagonal-B6Mvq_Ck.js} +3 -3
  146. package/dist/{widget-image-CkLJ-5pC.js → widget-image-DPd6ZI2K.js} +5 -5
  147. package/dist/{widget-line-DEsmouIk.js → widget-line-BRgNGqLk.js} +2 -2
  148. package/dist/{widget-pagination-Ce7zEUJk.js → widget-pagination-Dn3BpM0I.js} +5 -5
  149. package/dist/{widget-power-CwQz7Uwf.js → widget-power-C6BzkxLE.js} +3 -3
  150. package/dist/{widget-qrcode-CHkKCBRy.js → widget-qrcode-_Fe3bqQy.js} +3 -3
  151. package/dist/{widget-rangelimit-Bki9XhUU.js → widget-rangelimit-Dlt83D9J.js} +3 -3
  152. package/dist/{widget-serialnumber-DI9hVJDB.js → widget-serialnumber-VA2ngpH9.js} +1 -1
  153. package/dist/{widget-text-BM9hrxw_.js → widget-text-CiwYrzt_.js} +5 -5
  154. package/dist/{widget-timediff-Ooda0sMm.js → widget-timediff-Ch3L6a1S.js} +2 -2
  155. package/package.json +1 -1
  156. package/dist/paper-widget-design-C4mfMuuG.js +0 -4
  157. package/dist/src/shared/components/Signature/ui/sign-editor.vue.d.ts +0 -29
  158. package/dist/src/shared/components/Signature/ui/sign-preview.vue.d.ts +0 -18
  159. package/dist/src/shared/components/Signature/ui/sign-switcher-modal.vue.d.ts +0 -116
@@ -1,11 +1,11 @@
1
- import { bp as fetchHistoryConsume, bq as isBomGranted, F as FIELD_TYPE, z as api, br as F$1, bs as F$2, bt as runRowHandler, h as getProfileByTableType, f as isBusinessSubTableProfile, bu as F$3, bv as F$4, bw as FILL_FROM_INVENTORY_OPTION, bx as FILL_FROM_PART_OPTION, by as FILL_FROM_INVENTORY_OPTION$1, bz as TABLE_TYPE, bA as FILL_FROM_INVENTORY_OPTION$2, b5 as F$5, bB as INVENTORY_BASE_FIELDS, bC as resolveGroupByWarehouse, bD as AUTO_LOAD_READONLY_SELECT_FIELDS, b4 as STOCKTAKE_DIMENSION, b1 as getParseRuleInfo, bE as buildFillFromInventoryOption, bF as calcFillData, bG as resolveStocktakeInventoryApi, b2 as getParseRuleValue, bH as F$6, bI as FILL_FROM_INVENTORY_OPTION$3, bJ as extractKeywordFromQueryData, bK as composeProductionLotListQuery, aF as resolveLotDisplayLabel, bL as F$7, bM as isProductManuallyEditable, bN as applyFillFromMfgOrderOption, bO as applyFillFromOption$1, bP as applyFillFromProductOption, aT as LOT_CONTAINER_ROLE, bQ as MATERIAL_CONTAINER_ID, bR as F$8, bS as PRODUCT_QUICK_SEARCH_FIELDS, bT as PRODUCT_QUICK_SEARCH_EXP, bU as isProductManuallyEditable$1, bV as applyFillFromMaterialNoOption, bW as applyFillFromProductOption$1, bX as F$9, bY as FILL_FROM_INVENTORY_OPTION$4, V as FormTypeEnum, bb as transformUtils, l as SubTableType, aW as NCB_PROVIDE, bZ as settleAndValidateDisplay, b_ as unregisterValidationContext, b$ as clearFormRules, c0 as registerValidationContext, C as ComponentTypeEnum, bf as RenderModeEnum, c1 as requestFullValidation, c2 as requestDisplayValidation, aV as renderUtils, c3 as closeValidatorPopovers, c4 as baseDataUtils, c5 as getRawFormRuleMeta, c6 as enrichFormChangeRowDetails, c7 as settleAfterModeSwitch, c8 as calcUtils, aG as CheckDsTypeEnum, Z as PlatformEnum, c9 as uuid2, ca as normalizeToArray, cb as safeParseArray, cc as BpmnNodeTypeEnum, cd as mergeByMultiKey, bo as useNocodeEmitter, ce as commonUtils, aE as EntityModelCategoryEnum, cf as getRowId, cg as collectFormChangeFieldLocations, ch as nextFormChangeRowViewHistoryId } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-CeMxIrHD.js";
2
- import { aJ, aL, b0, $, ci, cj, B, ck, x, ab, cl, cm, cn, bd, co, aS, au, aK, aH, aI, cp, ac, ag, cq, cr, aB, aa, av, aN, _, ae, L, cs, ct, O, o, P, a5, n, M, aM, cu, at, as, a2, a0, a1, a3, cv, af, aj, ad, cw, cx, cy, bc, cz, cA, cB, cC, cD, cE, cF, cG, cH, cI, cJ, aZ, cK, cL, cM, cN, cO, cP, cQ, cR, cS, cT, cU, cV, cW, cX, aY, cY, b7, cZ, c_, c$, ba, d0, d1, d2, d3, ah, q, d4, d5, aR, d6, aQ, aO, d7, N, b3, bg, a$, d8, be, aP, a_ } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-CeMxIrHD.js";
3
- import { M as MaterialConsumptionPatternEnum, o as MaterialConsumeTableController, i as isEdhrSuite, p as SubTableCore, q as SubTableActionMenuTypeEnum, s as getMenuByAction, t as SubTableActionEnum, w as getInsertSubMenu, x as resolveScanAdjustType, y as resolveScanQty, z as toDateOnly, A as getCopySubMenu, C as resolveScanParsedValue, F as resolveScanFillData, G as isProductBatchEmptyRow, H as useMaterialBalance, J as validate, K as validateObjectBomQtyOnSubmit } from "../dynamic-table-action-C06Eolmw.js";
4
- import { B as B2, L as L2, D, _ as _2, N as N2, l, O as O2, m, E, P as P2, Q, I, T, U, e, b, f, V, g, h, W, X, Y, Z, c, r, d, u, j, a, k, v } from "../dynamic-table-action-C06Eolmw.js";
5
- import { ref, provide, watch, computed, onUnmounted, onBeforeMount } from "vue";
1
+ import { bv as fetchHistoryConsume, bw as isBomGranted, F as FIELD_TYPE, A as api, bx as F$1, by as SCAN_ROW_CONTENT_FIELDS, bz as F$2, bA as F$3, bB as runRowHandler, h as getProfileByTableType, f as isBusinessSubTableProfile, bC as F$4, bD as F$5, bE as FILL_FROM_SOURCE_PRODUCT_OPTION, bF as FILL_FROM_TARGET_MATERIAL_NO_OPTION, bG as FILL_FROM_INVENTORY_OPTION, bH as FILL_FROM_PART_OPTION, bI as FILL_FROM_INVENTORY_OPTION$1, bJ as TABLE_TYPE, bK as FILL_FROM_INVENTORY_OPTION$2, ba as F$6, bL as INVENTORY_BASE_FIELDS, bM as resolveGroupByWarehouse, bN as AUTO_LOAD_READONLY_SELECT_FIELDS, b9 as STOCKTAKE_DIMENSION, b5 as getParseRuleInfo, bO as buildFillFromInventoryOption, bP as calcFillData, bQ as resolveStocktakeInventoryApi, b6 as getParseRuleValue, bR as F$7, bS as FILL_FROM_INVENTORY_OPTION$3, bT as extractKeywordFromQueryData, bU as composeProductionLotListQuery, aJ as resolveLotDisplayLabel, bV as F$8, bW as isProductManuallyEditable, bX as applyFillFromMfgOrderOption, bY as applyFillFromOption$1, bZ as applyFillFromProductOption, aX as LOT_CONTAINER_ROLE, b_ as MATERIAL_CONTAINER_ID, b$ as F$9, c0 as PRODUCT_QUICK_SEARCH_FIELDS, c1 as PRODUCT_QUICK_SEARCH_EXP, c2 as isProductManuallyEditable$1, c3 as applyFillFromMaterialNoOption, c4 as applyFillFromProductOption$1, c5 as F$a, c6 as FILL_FROM_INVENTORY_OPTION$4, X as FormTypeEnum, bf as transformUtils, m as SubTableType, a7 as _export_sfc, a_ as NCB_PROVIDE, c7 as settleAndValidateDisplay, c8 as unregisterValidationContext, c9 as clearFormRules, ca as registerValidationContext, C as ComponentTypeEnum, bl as RenderModeEnum, cb as requestFullValidation, cc as requestDisplayValidation, aZ as renderUtils, cd as closeValidatorPopovers, ce as baseDataUtils, cf as getRawFormRuleMeta, cg as enrichFormChangeRowDetails, ch as settleAfterModeSwitch, ci as calcUtils, cj as evaluateInspectionDecisionRule, aK as CheckDsTypeEnum, _ as PlatformEnum, ck as uuid2, cl as normalizeToArray, cm as safeParseArray, cn as BpmnNodeTypeEnum, co as mergeByMultiKey, bu as useNocodeEmitter, cp as commonUtils, aI as EntityModelCategoryEnum, cq as getRowId, cr as collectFormChangeFieldLocations, cs as nextFormChangeRowViewHistoryId } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-CFFrNEYh.js";
2
+ import { aN, aP, b4, a0, ct, cu, B, cv, y, af, cw, cx, cy, bh, cz, aW, ay, aO, aL, aM, cA, ag, ak, cB, cC, aF, a2, ae, az, aR, $, ai, L, cD, cE, O, p, P, a8, o, N, aQ, cF, ax, aw, a5, a1, a3, a4, a6, cG, aj, an, ah, cH, cI, cJ, bg, cK, cL, cM, cN, cO, cP, cQ, cR, cS, cT, cU, b1, cV, cW, cX, bi, cY, cZ, c_, c$, d0, d1, d2, d3, d4, d5, d6, b0, d7, b8, d8, d9, da, be, db, dc, dd, de, al, t, df, dg, aV, dh, aU, aS, di, Q, b7, bm, b3, dj, bk, aT, bj, b2 } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-CFFrNEYh.js";
3
+ import { M as MaterialConsumptionPatternEnum, p as MaterialConsumeTableController, i as isEdhrSuite, q as SubTableActionMenuTypeEnum, s as getMenuByAction, t as SubTableActionEnum, w as resolveScanFillData, x as SubTableCore, y as getInsertSubMenu, z as resolveScanAdjustType, A as resolveScanQty, C as toDateOnly, F as getCopySubMenu, G as resolveScanParsedValue, H as isProductBatchEmptyRow, J as useMaterialBalance, K as validate, L as validateObjectBomQtyOnSubmit } from "../dynamic-table-action-CuwejY0h.js";
4
+ import { B as B2, N as N2, D, _, O as O2, m, P as P2, o as o2, E, Q as Q2, T, I, U, V, e, b, h, f, W, g, j, X, Y, Z, $ as $2, a0 as a02, c, r, a1 as a12, d, u, k, a, l, v } from "../dynamic-table-action-CuwejY0h.js";
5
+ import { ref, defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, provide, watch, computed, onUnmounted, onBeforeMount } from "vue";
6
6
  import { defaults, has, merge, isEmpty, cloneDeep, debounce } from "lodash-es";
7
7
  import "dayjs";
8
- import { B as B3, F, M as M2, a as a4, u as u2 } from "../mb-render-BVp5fqUK.js";
8
+ import { B as B3, F, M, a as a7, u as u2 } from "../mb-render-CtCYbeiE.js";
9
9
  var MaterialStatusEnum = /* @__PURE__ */ ((MaterialStatusEnum2) => {
10
10
  MaterialStatusEnum2["LOT"] = "LOT";
11
11
  MaterialStatusEnum2["SN"] = "SN";
@@ -24,6 +24,61 @@ var FillingTypeEnum = /* @__PURE__ */ ((FillingTypeEnum2) => {
24
24
  FillingTypeEnum2["COMPLETED"] = "COMPLETED";
25
25
  return FillingTypeEnum2;
26
26
  })(FillingTypeEnum || {});
27
+ function isBlank$4(value) {
28
+ return value === void 0 || value === null || value === "";
29
+ }
30
+ function matchFieldKey(match, fieldKey) {
31
+ if (!match.fieldKey) return false;
32
+ const keys = Array.isArray(match.fieldKey) ? match.fieldKey : [match.fieldKey];
33
+ return keys.includes(fieldKey);
34
+ }
35
+ function findFieldProfile(profile, fieldKey) {
36
+ return profile?.fields?.find((item) => matchFieldKey(item.match, fieldKey));
37
+ }
38
+ function buildDefaultMapFromProfile(profile, paramsConfig) {
39
+ const result = {};
40
+ if (!profile?.contextAssignments?.length) return result;
41
+ const assignments = profile.contextAssignments.filter(
42
+ (item) => item.when === "onRowInit"
43
+ );
44
+ for (const assignment of assignments) {
45
+ const value = paramsConfig?.[assignment.paramKey];
46
+ if (isBlank$4(value)) continue;
47
+ result[assignment.fieldKey] = value;
48
+ }
49
+ return result;
50
+ }
51
+ function buildFieldStatusFromProfile(params) {
52
+ const { profile, field } = params;
53
+ const result = {};
54
+ if (!profile) return result;
55
+ const fieldProfile = findFieldProfile(profile, field);
56
+ if (fieldProfile?.defaultProps) {
57
+ if (fieldProfile.defaultProps.disabled === true || fieldProfile.defaultProps.fieldDisabled === true) {
58
+ result.disabled = true;
59
+ }
60
+ if (fieldProfile.defaultProps.readonly === true || fieldProfile.defaultProps.fieldReadonly === true) {
61
+ result.readonly = true;
62
+ }
63
+ if (fieldProfile.defaultProps.required === false) {
64
+ result.required = false;
65
+ }
66
+ }
67
+ const rules = (profile.runtimeRules ?? []).filter(
68
+ (rule) => !rule.when || rule.when === "always" || rule.when === "onRowInit"
69
+ );
70
+ for (const rule of rules) {
71
+ if (!rule.fields.includes(field)) continue;
72
+ if (rule.effect.readonly) result.readonly = true;
73
+ if (rule.effect.disabled) result.disabled = true;
74
+ if (rule.effect.required !== void 0) result.required = rule.effect.required;
75
+ }
76
+ return result;
77
+ }
78
+ function getRowHandlersForFieldChange(profile, changedField) {
79
+ if (!profile?.rowHandlers?.length) return [];
80
+ return profile.rowHandlers.filter((item) => item.when === "onFieldChange").filter((item) => !item.watch?.length || item.watch.includes(changedField)).map((item) => item.handler);
81
+ }
27
82
  function useLatestRequest(execFn) {
28
83
  let lastReqId = 0;
29
84
  const loading = ref(false);
@@ -304,61 +359,6 @@ async function matchProductionIdentificationScanRecords(parsed) {
304
359
  );
305
360
  return unwrapBizServiceList(result);
306
361
  }
307
- function isBlank$4(value) {
308
- return value === void 0 || value === null || value === "";
309
- }
310
- function matchFieldKey(match, fieldKey) {
311
- if (!match.fieldKey) return false;
312
- const keys = Array.isArray(match.fieldKey) ? match.fieldKey : [match.fieldKey];
313
- return keys.includes(fieldKey);
314
- }
315
- function findFieldProfile(profile, fieldKey) {
316
- return profile?.fields?.find((item) => matchFieldKey(item.match, fieldKey));
317
- }
318
- function buildDefaultMapFromProfile(profile, paramsConfig) {
319
- const result = {};
320
- if (!profile?.contextAssignments?.length) return result;
321
- const assignments = profile.contextAssignments.filter(
322
- (item) => item.when === "onRowInit"
323
- );
324
- for (const assignment of assignments) {
325
- const value = paramsConfig?.[assignment.paramKey];
326
- if (isBlank$4(value)) continue;
327
- result[assignment.fieldKey] = value;
328
- }
329
- return result;
330
- }
331
- function buildFieldStatusFromProfile(params) {
332
- const { profile, field } = params;
333
- const result = {};
334
- if (!profile) return result;
335
- const fieldProfile = findFieldProfile(profile, field);
336
- if (fieldProfile?.defaultProps) {
337
- if (fieldProfile.defaultProps.disabled === true || fieldProfile.defaultProps.fieldDisabled === true) {
338
- result.disabled = true;
339
- }
340
- if (fieldProfile.defaultProps.readonly === true || fieldProfile.defaultProps.fieldReadonly === true) {
341
- result.readonly = true;
342
- }
343
- if (fieldProfile.defaultProps.required === false) {
344
- result.required = false;
345
- }
346
- }
347
- const rules = (profile.runtimeRules ?? []).filter(
348
- (rule) => !rule.when || rule.when === "always" || rule.when === "onRowInit"
349
- );
350
- for (const rule of rules) {
351
- if (!rule.fields.includes(field)) continue;
352
- if (rule.effect.readonly) result.readonly = true;
353
- if (rule.effect.disabled) result.disabled = true;
354
- if (rule.effect.required !== void 0) result.required = rule.effect.required;
355
- }
356
- return result;
357
- }
358
- function getRowHandlersForFieldChange(profile, changedField) {
359
- if (!profile?.rowHandlers?.length) return [];
360
- return profile.rowHandlers.filter((item) => item.when === "onFieldChange").filter((item) => !item.watch?.length || item.watch.includes(changedField)).map((item) => item.handler);
361
- }
362
362
  class ProfileDrivenSubTableCore extends SubTableCore {
363
363
  get profile() {
364
364
  const profile = getProfileByTableType(this.ctx.widget.props.tableType);
@@ -413,6 +413,71 @@ function applyOptionFill(rowData, option, mappings) {
413
413
  }
414
414
  }
415
415
  }
416
+ const MATERIAL_CONSUME_HISTORY_DISPLAY_FIELDS = [
417
+ { key: "product_id_.name_", name: "物料名称" },
418
+ { key: "product_id_.code_", name: "物料编码" },
419
+ { key: "product_id_.spec_", name: "物料规格" },
420
+ { key: "material_name_", name: "物料批号" },
421
+ { key: "qty_consumed_", name: "已消耗数量" }
422
+ ];
423
+ function getForeignProductValue(item, field) {
424
+ return item[field] ?? item._OPCT?.[field] ?? item.__FOREIGN__?.[field];
425
+ }
426
+ function flattenMaterialConsumeRecord(item) {
427
+ return {
428
+ ...item,
429
+ "product_id_.name_": getForeignProductValue(item, "product_id_.name_"),
430
+ "product_id_.code_": getForeignProductValue(item, "product_id_.code_"),
431
+ "product_id_.spec_": getForeignProductValue(item, "product_id_.spec_")
432
+ };
433
+ }
434
+ function hasQueryValue(value) {
435
+ if (Array.isArray(value)) return value.length > 0;
436
+ return !isBlank$3(value);
437
+ }
438
+ function createMaterialConsumeHistoryLoader() {
439
+ return async ({ mode, queryData = {}, pageNo = 1, pageSize = 20, ids = [] }) => {
440
+ const query = Object.fromEntries(
441
+ Object.entries(queryData).filter(([, value]) => hasQueryValue(value))
442
+ );
443
+ if (mode === "byIds" && ids.length) {
444
+ query["product_id_.in"] = ids;
445
+ }
446
+ const queryKeys = Object.keys(query);
447
+ const exp = queryKeys.length > 1 ? `AND(${queryKeys.join(",")})` : queryKeys.length === 1 ? queryKeys[0] : "";
448
+ const res = await api.apaas.modelComprehensive.postBizServiceModelCategoryModelKeyBsKey(
449
+ {
450
+ modelCategory: "entity",
451
+ modelKey: "em_material_consume",
452
+ bsKey: "listByPage"
453
+ },
454
+ {},
455
+ {
456
+ foreignFields: ["product_id_.spec_", "product_id_.code_", "product_id_.name_"],
457
+ query,
458
+ exp,
459
+ pageNo,
460
+ pageSize
461
+ }
462
+ );
463
+ const rows = (Array.isArray(res) ? res : res?.data ?? []).map(flattenMaterialConsumeRecord);
464
+ const totalCount = Number(res?.totalCount ?? rows.length);
465
+ const totalPage = Number(res?.totalPage ?? Math.max(1, Math.ceil(totalCount / pageSize)));
466
+ const options = rows.map((item) => ({
467
+ label: getForeignProductValue(item, "product_id_.name_") ?? item.material_name_ ?? String(item.product_id_ ?? ""),
468
+ value: item.product_id_,
469
+ disabled: !!item.deleted_,
470
+ _item: item
471
+ }));
472
+ return {
473
+ data: rows,
474
+ options,
475
+ finished: mode === "byIds" || pageNo >= totalPage,
476
+ totalCount,
477
+ totalPage
478
+ };
479
+ };
480
+ }
416
481
  function applyAllocatePartTd(params, partField, mode, inventoryBinding) {
417
482
  const { field, tdHandler } = params;
418
483
  if (field !== partField) return;
@@ -431,13 +496,13 @@ function applyAllocatePartTd(params, partField, mode, inventoryBinding) {
431
496
  }
432
497
  class WarehouseInboundTableCore extends ProfileDrivenSubTableCore {
433
498
  handleFieldTd = (params) => {
434
- applyAllocatePartTd(params, F$3.part, "master");
499
+ applyAllocatePartTd(params, F$4.part, "master");
435
500
  super.handleFieldTd(params);
436
501
  };
437
502
  handleChange(params) {
438
503
  super.handleChange(params);
439
504
  const { field, value, option, rowData } = params;
440
- if (field !== F$3.part || isBlank$3(value) || !option) return;
505
+ if (field !== F$4.part || isBlank$3(value) || !option) return;
441
506
  applyOptionFill(rowData, option, FILL_FROM_PART_OPTION);
442
507
  }
443
508
  }
@@ -446,21 +511,21 @@ class WarehouseOutboundTableCore extends ProfileDrivenSubTableCore {
446
511
  return this.factory.ctx.paramsConfig?.warehouseId;
447
512
  }
448
513
  handleFieldTd = (params) => {
449
- applyAllocatePartTd(params, F$4.part, "inventory", {
450
- formField: F$4.inventory,
514
+ applyAllocatePartTd(params, F$5.part, "inventory", {
515
+ formField: F$5.inventory,
451
516
  optionField: "id_"
452
517
  });
453
518
  super.handleFieldTd(params);
454
519
  };
455
520
  calcFieldQuery = (params) => {
456
- if (params.field === F$4.part) {
521
+ if (params.field === F$5.part) {
457
522
  return { warehouse_id_: this.warehouseId };
458
523
  }
459
524
  };
460
525
  handleChange(params) {
461
526
  super.handleChange(params);
462
527
  const { field, value, option, rowData } = params;
463
- if (field !== F$4.part || isBlank$3(value) || !option) return;
528
+ if (field !== F$5.part || isBlank$3(value) || !option) return;
464
529
  applyOptionFill(rowData, option, FILL_FROM_INVENTORY_OPTION$1);
465
530
  }
466
531
  }
@@ -469,21 +534,21 @@ class PartStocktakeTableCore extends ProfileDrivenSubTableCore {
469
534
  return this.factory.ctx.paramsConfig?.warehouseId;
470
535
  }
471
536
  handleFieldTd = (params) => {
472
- applyAllocatePartTd(params, F$2.part, "inventory", {
473
- formField: F$2.inventory,
537
+ applyAllocatePartTd(params, F$3.part, "inventory", {
538
+ formField: F$3.inventory,
474
539
  optionField: "id_"
475
540
  });
476
541
  super.handleFieldTd(params);
477
542
  };
478
543
  calcFieldQuery = (params) => {
479
- if (params.field === F$2.part) {
544
+ if (params.field === F$3.part) {
480
545
  return { warehouse_id_: this.warehouseId };
481
546
  }
482
547
  };
483
548
  handleChange(params) {
484
549
  super.handleChange(params);
485
550
  const { field, value, option, rowData } = params;
486
- if (field !== F$2.part || isBlank$3(value) || !option) return;
551
+ if (field !== F$3.part || isBlank$3(value) || !option) return;
487
552
  applyOptionFill(rowData, option, FILL_FROM_INVENTORY_OPTION);
488
553
  runRowHandler(TABLE_TYPE, "stocktake-derived", {
489
554
  rowData,
@@ -516,6 +581,92 @@ class DevicePartConsumeTableCore extends ProfileDrivenSubTableCore {
516
581
  }
517
582
  class MaterialRequisitionTableCore extends ProfileDrivenSubTableCore {
518
583
  }
584
+ class MaterialSubstitutionTableCore extends ProfileDrivenSubTableCore {
585
+ isEmptyScanRow(row) {
586
+ return SCAN_ROW_CONTENT_FIELDS.every((field) => isBlank$3(row[field]));
587
+ }
588
+ handleFieldTd = (params) => {
589
+ const { field, tdHandler } = params;
590
+ if (field === F$2.sourceProduct) {
591
+ tdHandler.mergeTd({
592
+ cellWidget: {
593
+ props: {
594
+ displayFields: MATERIAL_CONSUME_HISTORY_DISPLAY_FIELDS,
595
+ quickSearchable: true,
596
+ quickSearchField: ["material_name_.like"],
597
+ quickSearchExp: "OR(material_name_.like)",
598
+ customRefTableMode: "flat",
599
+ newSpecificConfig: { newOptions: [] }
600
+ }
601
+ }
602
+ });
603
+ }
604
+ super.handleFieldTd(params);
605
+ };
606
+ calcFieldQuery = ({ field, rowData }) => {
607
+ if (field !== F$2.sourceProduct) return;
608
+ const query = {};
609
+ if (!isBlank$3(rowData[F$2.productionContainer])) {
610
+ query["production_identification_id_.eq"] = rowData[F$2.productionContainer];
611
+ }
612
+ if (!isBlank$3(rowData[F$2.routingOperation])) {
613
+ query["routing_operation_id_.eq"] = rowData[F$2.routingOperation];
614
+ }
615
+ return query;
616
+ };
617
+ calcFieldDataSource = ({ field }) => {
618
+ if (field === F$2.sourceProduct) {
619
+ return createMaterialConsumeHistoryLoader();
620
+ }
621
+ };
622
+ handleChange(params) {
623
+ super.handleChange(params);
624
+ const { field, value, option, rowData } = params;
625
+ if (isBlank$3(value) || !option) return;
626
+ const source = resolveOptionRecord$1(option);
627
+ if (!source) return;
628
+ if (field === F$2.sourceProduct) {
629
+ applyOptionFill(
630
+ rowData,
631
+ flattenMaterialConsumeRecord(source),
632
+ FILL_FROM_SOURCE_PRODUCT_OPTION
633
+ );
634
+ return;
635
+ }
636
+ if (field === F$2.targetMaterialNo) {
637
+ applyOptionFill(rowData, source, FILL_FROM_TARGET_MATERIAL_NO_OPTION);
638
+ }
639
+ }
640
+ calcSubTableActionMenu = ({ showDelBtn }) => [
641
+ {
642
+ type: SubTableActionMenuTypeEnum.SUBTITLE,
643
+ label: $t("sys.edhr.bizOperation")
644
+ },
645
+ getMenuByAction(SubTableActionEnum.SCAN),
646
+ {
647
+ type: SubTableActionMenuTypeEnum.DIVIDER
648
+ },
649
+ {
650
+ type: SubTableActionMenuTypeEnum.SUBTITLE,
651
+ label: $t("sys.edhr.editRow")
652
+ },
653
+ getMenuByAction(SubTableActionEnum.Insert1RowAfter),
654
+ ...showDelBtn ? [
655
+ {
656
+ type: SubTableActionMenuTypeEnum.DIVIDER
657
+ },
658
+ getMenuByAction(SubTableActionEnum.DeleteRowCurrent)
659
+ ] : []
660
+ ];
661
+ async onScan(input) {
662
+ const fillData = resolveScanFillData(input);
663
+ if (!Object.keys(fillData).length) {
664
+ this.warning({ content: "未配置条码字段映射" });
665
+ return;
666
+ }
667
+ this.appendOrFillScanRow(fillData);
668
+ }
669
+ }
519
670
  var WarehouseInventoryRowSource = /* @__PURE__ */ ((WarehouseInventoryRowSource2) => {
520
671
  WarehouseInventoryRowSource2["MANUAL"] = "manual";
521
672
  WarehouseInventoryRowSource2["AUTO"] = "auto";
@@ -542,19 +693,19 @@ function pickInventoryBase(record) {
542
693
  }
543
694
  function mapInventoryIdentity(record, warehouseSummary) {
544
695
  if (!warehouseSummary) {
545
- return { [F$5.inventory]: record.id_ };
696
+ return { [F$6.inventory]: record.id_ };
546
697
  }
547
698
  return {
548
- [F$5.inventory]: record[F$5.inventory],
549
- [F$5.frontId]: record.id_
699
+ [F$6.inventory]: record[F$6.inventory],
700
+ [F$6.frontId]: record.id_
550
701
  };
551
702
  }
552
703
  function mapInventoryRecordToRow(record, warehouseSummary) {
553
704
  return {
554
705
  ...pickInventoryBase(record),
555
706
  ...mapInventoryIdentity(record, warehouseSummary),
556
- [F$5.location]: record[F$5.location],
557
- [F$5.stock]: toNumber(record[F$5.stock])
707
+ [F$6.location]: record[F$6.location],
708
+ [F$6.stock]: toNumber(record[F$6.stock])
558
709
  };
559
710
  }
560
711
  function getStocktakeDiff(stocktakeNum, stockNum) {
@@ -648,45 +799,45 @@ async function getStockData({
648
799
  return [];
649
800
  }
650
801
  function isSameStocktakeIdentity(row, record, groupByWarehouse) {
651
- if (row[F$5.product] !== record.product_id_) return false;
652
- const rowBatch = row[F$5.batch];
802
+ if (row[F$6.product] !== record.product_id_) return false;
803
+ const rowBatch = row[F$6.batch];
653
804
  const recordBatch = record.production_identification_id_;
654
805
  if (rowBatch && recordBatch && rowBatch !== recordBatch) return false;
655
806
  if (!rowBatch || !recordBatch) {
656
- const rowNo = row[F$5.matno];
807
+ const rowNo = row[F$6.matno];
657
808
  const recordNo = record.material_no_ ?? record.name_;
658
809
  if (!(rowNo && recordNo && rowNo === recordNo)) return false;
659
810
  }
660
- if ((row[F$5.warehouse] ?? "") !== (record.warehouse_id_ ?? "")) return false;
811
+ if ((row[F$6.warehouse] ?? "") !== (record.warehouse_id_ ?? "")) return false;
661
812
  if (!groupByWarehouse) {
662
- if ((row[F$5.location] ?? "") !== (record.location_id_ ?? "")) return false;
813
+ if ((row[F$6.location] ?? "") !== (record.location_id_ ?? "")) return false;
663
814
  }
664
815
  return true;
665
816
  }
666
817
  function buildInventoryScanRow(record, parsed, fillData, stocktakeQty, warehouseSummary = false) {
667
818
  const row = {
668
819
  // 按仓库汇总时:inventory_id_ 来自接口字段,id_ 另存为 front_id_
669
- [F$5.inventory]: warehouseSummary ? record[F$5.inventory] ?? record.id_ : record.id_,
670
- ...warehouseSummary ? { [F$5.frontId]: record.id_ } : {},
671
- [F$5.batch]: record.production_identification_id_,
672
- [F$5.product]: record.product_id_,
673
- [F$5.productName]: record.product_id_name_,
674
- [F$5.productCode]: record.product_id_code_ ?? record.product_code_,
675
- [F$5.productSpec]: record.product_id_spec_,
676
- [F$5.warehouse]: record.warehouse_id_,
677
- [F$5.location]: record.location_id_,
678
- [F$5.stock]: record.stock_num_,
679
- [F$5.matno]: record.material_no_ ?? record.name_,
680
- [F$5.reInspectionDate]: record.re_inspection_date_,
681
- [F$5.stocktake]: stocktakeQty,
682
- [F$5.rowSource]: "scan",
820
+ [F$6.inventory]: warehouseSummary ? record[F$6.inventory] ?? record.id_ : record.id_,
821
+ ...warehouseSummary ? { [F$6.frontId]: record.id_ } : {},
822
+ [F$6.batch]: record.production_identification_id_,
823
+ [F$6.product]: record.product_id_,
824
+ [F$6.productName]: record.product_id_name_,
825
+ [F$6.productCode]: record.product_id_code_ ?? record.product_code_,
826
+ [F$6.productSpec]: record.product_id_spec_,
827
+ [F$6.warehouse]: record.warehouse_id_,
828
+ [F$6.location]: record.location_id_,
829
+ [F$6.stock]: record.stock_num_,
830
+ [F$6.matno]: record.material_no_ ?? record.name_,
831
+ [F$6.reInspectionDate]: record.re_inspection_date_,
832
+ [F$6.stocktake]: stocktakeQty,
833
+ [F$6.rowSource]: "scan",
683
834
  ...fillData
684
835
  };
685
836
  const validityFromRecord = record.validate_ ?? record.validity_;
686
837
  if (parsed.expiration) {
687
- row[F$5.validity] = toDateOnly(parsed.expiration);
838
+ row[F$6.validity] = toDateOnly(parsed.expiration);
688
839
  } else if (validityFromRecord != null) {
689
- row[F$5.validity] = toDateOnly(validityFromRecord);
840
+ row[F$6.validity] = toDateOnly(validityFromRecord);
690
841
  }
691
842
  return row;
692
843
  }
@@ -726,10 +877,10 @@ class StocktakeTableCore extends ProfileDrivenSubTableCore {
726
877
  const result = super.calcFieldStatus(params);
727
878
  const { field, rowData } = params;
728
879
  const { row_source_: source } = rowData;
729
- if (field === F$5.stocktake) return result;
730
- if (!Object.values(F$5).includes(field)) return result;
880
+ if (field === F$6.stocktake) return result;
881
+ if (!Object.values(F$6).includes(field)) return result;
731
882
  if (source === WarehouseInventoryRowSource.SCAN) {
732
- result.disabled = F$5.location !== field;
883
+ result.disabled = F$6.location !== field;
733
884
  } else if (source === WarehouseInventoryRowSource.AUTO) {
734
885
  result.disabled = true;
735
886
  } else if (!source || source === WarehouseInventoryRowSource.MANUAL) {
@@ -741,12 +892,12 @@ class StocktakeTableCore extends ProfileDrivenSubTableCore {
741
892
  }
742
893
  calcFieldQuery = (params) => {
743
894
  const { field, rowData } = params;
744
- if (field === F$5.location && rowData[F$5.inventoryLocationIds]) {
895
+ if (field === F$6.location && rowData[F$6.inventoryLocationIds]) {
745
896
  return {
746
- "id_.in": rowData[F$5.inventoryLocationIds]
897
+ "id_.in": rowData[F$6.inventoryLocationIds]
747
898
  };
748
899
  }
749
- if (field === F$5.product) {
900
+ if (field === F$6.product) {
750
901
  return {
751
902
  warehouse_id_: this.paramsWarehouseId
752
903
  };
@@ -754,7 +905,7 @@ class StocktakeTableCore extends ProfileDrivenSubTableCore {
754
905
  };
755
906
  handleFieldTd = (params) => {
756
907
  const { field, tdHandler } = params;
757
- if (field === F$5.product) {
908
+ if (field === F$6.product) {
758
909
  tdHandler.mergeTd({
759
910
  cellWidget: {
760
911
  props: {
@@ -818,7 +969,7 @@ class StocktakeTableCore extends ProfileDrivenSubTableCore {
818
969
  handleChange(params) {
819
970
  super.handleChange(params);
820
971
  const { field, value, option, rowData } = params;
821
- if (field === F$5.product && option && value !== void 0 && value !== null && value !== "") {
972
+ if (field === F$6.product && option && value !== void 0 && value !== null && value !== "") {
822
973
  for (const { optionField, toField } of buildFillFromInventoryOption(
823
974
  this.isGroupByWarehouse
824
975
  )) {
@@ -854,7 +1005,7 @@ class StocktakeTableCore extends ProfileDrivenSubTableCore {
854
1005
  if (existIndex >= 0) {
855
1006
  const existRow = visibleRows[existIndex];
856
1007
  const blockReason = getScanQtyDeductionBlockReason(
857
- existRow[F$5.stocktake],
1008
+ existRow[F$6.stocktake],
858
1009
  scanQty,
859
1010
  scanAdjustType
860
1011
  );
@@ -862,8 +1013,8 @@ class StocktakeTableCore extends ProfileDrivenSubTableCore {
862
1013
  this.error({ content: blockReason });
863
1014
  return;
864
1015
  }
865
- existRow[F$5.stocktake] = applyScanQtyToStocktake(
866
- existRow[F$5.stocktake],
1016
+ existRow[F$6.stocktake] = applyScanQtyToStocktake(
1017
+ existRow[F$6.stocktake],
867
1018
  scanQty,
868
1019
  scanAdjustType
869
1020
  );
@@ -893,27 +1044,27 @@ function resolveScanParsedFromInput(input, rules) {
893
1044
  }
894
1045
  function buildAllocateScanRow(record, parsed, fillData) {
895
1046
  const row = {
896
- [F$6.inventory]: record.id_,
897
- [F$6.product]: record.product_id_,
898
- [F$6.productName]: record.product_id_name_,
899
- [F$6.productCode]: record.product_id_code_,
900
- [F$6.productSpec]: record.product_id_spec_,
901
- [F$6.batch]: record.production_identification_id_,
902
- [F$6.originLocation]: record.location_id_,
903
- [F$6.originWarehouse]: record.warehouse_id_,
904
- [F$6.stock]: record.stock_num_,
905
- [F$6.mfgOrder]: record.mfg_order_id_,
906
- [F$6.lotSn]: record.lot_sn_id_,
907
- [F$6.uniqueCode]: record.unique_code_,
908
- [F$6.reInspectionDate]: record.re_inspection_date_,
909
- [F$6.allocateNum]: resolveScanQty(parsed.qty, record.qty_),
1047
+ [F$7.inventory]: record.id_,
1048
+ [F$7.product]: record.product_id_,
1049
+ [F$7.productName]: record.product_id_name_,
1050
+ [F$7.productCode]: record.product_id_code_,
1051
+ [F$7.productSpec]: record.product_id_spec_,
1052
+ [F$7.batch]: record.production_identification_id_,
1053
+ [F$7.originLocation]: record.location_id_,
1054
+ [F$7.originWarehouse]: record.warehouse_id_,
1055
+ [F$7.stock]: record.stock_num_,
1056
+ [F$7.mfgOrder]: record.mfg_order_id_,
1057
+ [F$7.lotSn]: record.lot_sn_id_,
1058
+ [F$7.uniqueCode]: record.unique_code_,
1059
+ [F$7.reInspectionDate]: record.re_inspection_date_,
1060
+ [F$7.allocateNum]: resolveScanQty(parsed.qty, record.qty_),
910
1061
  ...fillData
911
1062
  };
912
1063
  const validityFromRecord = record.validate_ ?? record.validity_;
913
1064
  if (parsed.expiration) {
914
- row[F$6.validity] = toDateOnly(parsed.expiration);
1065
+ row[F$7.validity] = toDateOnly(parsed.expiration);
915
1066
  } else if (validityFromRecord != null) {
916
- row[F$6.validity] = toDateOnly(validityFromRecord);
1067
+ row[F$7.validity] = toDateOnly(validityFromRecord);
917
1068
  }
918
1069
  return row;
919
1070
  }
@@ -932,7 +1083,7 @@ class AllocateTableCore extends ProfileDrivenSubTableCore {
932
1083
  }
933
1084
  handleFieldTd = (params) => {
934
1085
  const { field, tdHandler } = params;
935
- if (field === F$6.product) {
1086
+ if (field === F$7.product) {
936
1087
  tdHandler.mergeTd({
937
1088
  cellWidget: {
938
1089
  props: {
@@ -948,17 +1099,17 @@ class AllocateTableCore extends ProfileDrivenSubTableCore {
948
1099
  };
949
1100
  calcFieldQuery = (params) => {
950
1101
  const { field, rowData } = params;
951
- if (field === F$6.location) {
1102
+ if (field === F$7.location) {
952
1103
  return {
953
- "warehouse_id_.eq": rowData[F$6.warehouse]
1104
+ "warehouse_id_.eq": rowData[F$7.warehouse]
954
1105
  };
955
1106
  }
956
- if (field === F$6.originLocation) {
1107
+ if (field === F$7.originLocation) {
957
1108
  return {
958
- "warehouse_id_.eq": rowData[F$6.originWarehouse]
1109
+ "warehouse_id_.eq": rowData[F$7.originWarehouse]
959
1110
  };
960
1111
  }
961
- if (field === F$6.product) {
1112
+ if (field === F$7.product) {
962
1113
  return {
963
1114
  warehouse_id_: this.warehouseId
964
1115
  };
@@ -993,7 +1144,7 @@ class AllocateTableCore extends ProfileDrivenSubTableCore {
993
1144
  handleChange(params) {
994
1145
  super.handleChange(params);
995
1146
  const { field, value, option, rowData } = params;
996
- if (field !== F$6.product || !option || value === void 0 || value === null || value === "") {
1147
+ if (field !== F$7.product || !option || value === void 0 || value === null || value === "") {
997
1148
  return;
998
1149
  }
999
1150
  for (const { optionField, toField } of FILL_FROM_INVENTORY_OPTION$3) {
@@ -1454,32 +1605,32 @@ function isProductionLotOrSn(record) {
1454
1605
  }
1455
1606
  function buildProductionContainerRow(record, parsed, fillData) {
1456
1607
  return {
1457
- [F$7.productionContainer]: record.lot_sn_id_ ?? record.production_container_id_,
1458
- [F$7.product]: record.product_id_,
1459
- [F$7.productName]: record.product_id_name_,
1460
- [F$7.productCode]: record.product_id_code_,
1461
- [F$7.productSpec]: record.product_id_spec_,
1462
- [F$7.mfgOrderCode]: record.mfg_order_code_,
1463
- [F$7.qty]: parsed.qty ?? record.qty_,
1464
- [F$7.productionDate]: toDateOnly(record.production_date_),
1465
- [F$7.materialContainerNo]: void 0,
1608
+ [F$8.productionContainer]: record.lot_sn_id_ ?? record.production_container_id_,
1609
+ [F$8.product]: record.product_id_,
1610
+ [F$8.productName]: record.product_id_name_,
1611
+ [F$8.productCode]: record.product_id_code_,
1612
+ [F$8.productSpec]: record.product_id_spec_,
1613
+ [F$8.mfgOrderCode]: record.mfg_order_code_,
1614
+ [F$8.qty]: parsed.qty ?? record.qty_,
1615
+ [F$8.productionDate]: toDateOnly(record.production_date_),
1616
+ [F$8.materialContainerNo]: void 0,
1466
1617
  [MATERIAL_CONTAINER_ID]: void 0,
1467
- [F$7.mfgOrder]: void 0,
1618
+ [F$8.mfgOrder]: void 0,
1468
1619
  ...fillData
1469
1620
  };
1470
1621
  }
1471
1622
  function buildMaterialContainerRow(record, parsed, fillData) {
1472
1623
  return {
1473
- [F$7.materialContainerNo]: record.material_no_,
1624
+ [F$8.materialContainerNo]: record.material_no_,
1474
1625
  [MATERIAL_CONTAINER_ID]: record.production_identification_id_,
1475
- [F$7.product]: record.product_id_,
1476
- [F$7.productName]: record.product_id_name_,
1477
- [F$7.productCode]: record.product_id_code_,
1478
- [F$7.productSpec]: record.product_id_spec_,
1479
- [F$7.mfgOrderCode]: record.mfg_order_code_,
1480
- [F$7.mfgOrder]: record.mfg_order_id_,
1481
- [F$7.qty]: parsed.qty ?? record.qty_,
1482
- [F$7.productionContainer]: void 0,
1626
+ [F$8.product]: record.product_id_,
1627
+ [F$8.productName]: record.product_id_name_,
1628
+ [F$8.productCode]: record.product_id_code_,
1629
+ [F$8.productSpec]: record.product_id_spec_,
1630
+ [F$8.mfgOrderCode]: record.mfg_order_code_,
1631
+ [F$8.mfgOrder]: record.mfg_order_id_,
1632
+ [F$8.qty]: parsed.qty ?? record.qty_,
1633
+ [F$8.productionContainer]: void 0,
1483
1634
  ...fillData
1484
1635
  };
1485
1636
  }
@@ -1527,31 +1678,31 @@ class PretreatmentListTableCore extends ProfileDrivenSubTableCore {
1527
1678
  calcFieldStatus(params) {
1528
1679
  const result = super.calcFieldStatus(params);
1529
1680
  const { field, rowData } = params;
1530
- if (field === F$7.product) {
1681
+ if (field === F$8.product) {
1531
1682
  result.disabled = !isProductManuallyEditable(rowData);
1532
1683
  }
1533
1684
  return result;
1534
1685
  }
1535
1686
  calcFieldDataSource = (params) => {
1536
1687
  const { field } = params;
1537
- if (field === F$7.productionContainer) return createProductionContainerLoader();
1538
- if (field === F$7.mfgOrder) return createMfgOrderLoader();
1539
- if (field === F$7.materialContainerNo) return createMaterialContainerLoader();
1688
+ if (field === F$8.productionContainer) return createProductionContainerLoader();
1689
+ if (field === F$8.mfgOrder) return createMfgOrderLoader();
1690
+ if (field === F$8.materialContainerNo) return createMaterialContainerLoader();
1540
1691
  };
1541
1692
  handleChange(params) {
1542
1693
  super.handleChange(params);
1543
1694
  const { field, option, value, rowData } = params;
1544
1695
  if (!option || isBlank$1(value)) return;
1545
1696
  const source = option._item ?? option;
1546
- if (field === F$7.mfgOrder) {
1697
+ if (field === F$8.mfgOrder) {
1547
1698
  applyFillFromMfgOrderOption(rowData, source);
1548
1699
  return;
1549
1700
  }
1550
- if (field === F$7.productionContainer || field === F$7.materialContainerNo) {
1701
+ if (field === F$8.productionContainer || field === F$8.materialContainerNo) {
1551
1702
  applyFillFromOption$1(rowData, source);
1552
1703
  return;
1553
1704
  }
1554
- if (field === F$7.product) {
1705
+ if (field === F$8.product) {
1555
1706
  applyFillFromProductOption(rowData, source);
1556
1707
  }
1557
1708
  }
@@ -1575,24 +1726,24 @@ class PretreatmentListTableCore extends ProfileDrivenSubTableCore {
1575
1726
  }
1576
1727
  function buildWarehouseInScanRow(record, parsed, fillData) {
1577
1728
  const row = {
1578
- [F$8.product]: record.product_id_,
1579
- [F$8.productName]: record.product_id_name_,
1580
- [F$8.productCode]: record.product_id_code_,
1581
- [F$8.productSpec]: record.product_id_spec_,
1582
- [F$8.materialNo]: record.material_no_,
1583
- [F$8.materialNoId]: record.production_identification_id_,
1584
- [F$8.mfgOrder]: record.mfg_order_id_,
1585
- [F$8.lotSn]: record.lot_sn_id_,
1586
- [F$8.uniqueCode]: record.unique_code_,
1587
- [F$8.reInspectionDate]: record.re_inspection_date_,
1588
- [F$8.qty]: resolveScanQty(parsed.qty, record.qty_),
1729
+ [F$9.product]: record.product_id_,
1730
+ [F$9.productName]: record.product_id_name_,
1731
+ [F$9.productCode]: record.product_id_code_,
1732
+ [F$9.productSpec]: record.product_id_spec_,
1733
+ [F$9.materialNo]: record.material_no_,
1734
+ [F$9.materialNoId]: record.production_identification_id_,
1735
+ [F$9.mfgOrder]: record.mfg_order_id_,
1736
+ [F$9.lotSn]: record.lot_sn_id_,
1737
+ [F$9.uniqueCode]: record.unique_code_,
1738
+ [F$9.reInspectionDate]: record.re_inspection_date_,
1739
+ [F$9.qty]: resolveScanQty(parsed.qty, record.qty_),
1589
1740
  ...fillData
1590
1741
  };
1591
1742
  const validityFromRecord = record.validity_;
1592
- if (parsed.expiration && row[F$8.validity] == null) {
1593
- row[F$8.validity] = toDateOnly(parsed.expiration);
1594
- } else if (validityFromRecord != null && row[F$8.validity] == null) {
1595
- row[F$8.validity] = toDateOnly(validityFromRecord);
1743
+ if (parsed.expiration && row[F$9.validity] == null) {
1744
+ row[F$9.validity] = toDateOnly(parsed.expiration);
1745
+ } else if (validityFromRecord != null && row[F$9.validity] == null) {
1746
+ row[F$9.validity] = toDateOnly(validityFromRecord);
1596
1747
  }
1597
1748
  return row;
1598
1749
  }
@@ -1613,7 +1764,7 @@ class WarehouseInTableCore extends ProfileDrivenSubTableCore {
1613
1764
  }
1614
1765
  handleFieldTd = (params) => {
1615
1766
  const { field, tdHandler } = params;
1616
- if (field === F$8.product) {
1767
+ if (field === F$9.product) {
1617
1768
  const current = tdHandler.td.cellWidget?.props;
1618
1769
  const searchFields = current?.quickSearchField ?? PRODUCT_QUICK_SEARCH_FIELDS;
1619
1770
  tdHandler.mergeTd({
@@ -1632,7 +1783,7 @@ class WarehouseInTableCore extends ProfileDrivenSubTableCore {
1632
1783
  };
1633
1784
  calcFieldStatus(params) {
1634
1785
  const result = super.calcFieldStatus(params);
1635
- if (params.field === F$8.product) {
1786
+ if (params.field === F$9.product) {
1636
1787
  result.disabled = !isProductManuallyEditable$1(params.rowData);
1637
1788
  }
1638
1789
  return result;
@@ -1643,11 +1794,11 @@ class WarehouseInTableCore extends ProfileDrivenSubTableCore {
1643
1794
  if (isBlank(value) || !option) return;
1644
1795
  const source = resolveOptionRecord(option);
1645
1796
  if (!source) return;
1646
- if (field === F$8.materialNo) {
1797
+ if (field === F$9.materialNo) {
1647
1798
  applyFillFromMaterialNoOption(rowData, source);
1648
1799
  return;
1649
1800
  }
1650
- if (field === F$8.product) {
1801
+ if (field === F$9.product) {
1651
1802
  applyFillFromProductOption$1(rowData, source);
1652
1803
  }
1653
1804
  }
@@ -1695,37 +1846,37 @@ class WarehouseInTableCore extends ProfileDrivenSubTableCore {
1695
1846
  }
1696
1847
  }
1697
1848
  function isSameMaterialBatch(row, record) {
1698
- if (row[F$9.product] !== record.product_id_) return false;
1699
- const rowBatchId = row[F$9.materialNoId];
1849
+ if (row[F$a.product] !== record.product_id_) return false;
1850
+ const rowBatchId = row[F$a.materialNoId];
1700
1851
  const recordBatchId = record.production_identification_id_;
1701
1852
  if (rowBatchId && recordBatchId) return rowBatchId === recordBatchId;
1702
- const rowBatchNo = row[F$9.materialNo];
1853
+ const rowBatchNo = row[F$a.materialNo];
1703
1854
  const recordBatchNo = record.material_no_ ?? record.name_;
1704
1855
  return Boolean(rowBatchNo && recordBatchNo && rowBatchNo === recordBatchNo);
1705
1856
  }
1706
1857
  function buildWarehouseOutScanRow(record, parsed, fillData, qty) {
1707
1858
  const row = {
1708
- [F$9.inventory]: record.id_,
1709
- [F$9.product]: record.product_id_,
1710
- [F$9.productName]: record.product_id_name_,
1711
- [F$9.productCode]: record.product_id_code_,
1712
- [F$9.productSpec]: record.product_id_spec_,
1713
- [F$9.materialNo]: record.material_no_,
1714
- [F$9.materialNoId]: record.production_identification_id_,
1715
- [F$9.warehouse]: record.warehouse_id_,
1716
- [F$9.location]: record.location_id_,
1717
- [F$9.mfgOrder]: record.mfg_order_id_,
1718
- [F$9.lotSn]: record.lot_sn_id_,
1719
- [F$9.uniqueCode]: record.unique_code_,
1720
- [F$9.reInspectionDate]: record.re_inspection_date_,
1721
- [F$9.qty]: qty,
1859
+ [F$a.inventory]: record.id_,
1860
+ [F$a.product]: record.product_id_,
1861
+ [F$a.productName]: record.product_id_name_,
1862
+ [F$a.productCode]: record.product_id_code_,
1863
+ [F$a.productSpec]: record.product_id_spec_,
1864
+ [F$a.materialNo]: record.material_no_,
1865
+ [F$a.materialNoId]: record.production_identification_id_,
1866
+ [F$a.warehouse]: record.warehouse_id_,
1867
+ [F$a.location]: record.location_id_,
1868
+ [F$a.mfgOrder]: record.mfg_order_id_,
1869
+ [F$a.lotSn]: record.lot_sn_id_,
1870
+ [F$a.uniqueCode]: record.unique_code_,
1871
+ [F$a.reInspectionDate]: record.re_inspection_date_,
1872
+ [F$a.qty]: qty,
1722
1873
  ...fillData
1723
1874
  };
1724
1875
  const validityFromRecord = record.validate_ ?? record.validity_;
1725
1876
  if (parsed.expiration) {
1726
- row[F$9.validity] = toDateOnly(parsed.expiration);
1877
+ row[F$a.validity] = toDateOnly(parsed.expiration);
1727
1878
  } else if (validityFromRecord != null) {
1728
- row[F$9.validity] = toDateOnly(validityFromRecord);
1879
+ row[F$a.validity] = toDateOnly(validityFromRecord);
1729
1880
  }
1730
1881
  return row;
1731
1882
  }
@@ -1738,7 +1889,7 @@ class WarehouseOutTableCore extends ProfileDrivenSubTableCore {
1738
1889
  }
1739
1890
  handleFieldTd = (params) => {
1740
1891
  const { field, tdHandler } = params;
1741
- if (field === F$9.product) {
1892
+ if (field === F$a.product) {
1742
1893
  tdHandler.mergeTd({
1743
1894
  cellWidget: {
1744
1895
  props: {
@@ -1754,7 +1905,7 @@ class WarehouseOutTableCore extends ProfileDrivenSubTableCore {
1754
1905
  };
1755
1906
  calcFieldQuery = (params) => {
1756
1907
  const { field } = params;
1757
- if (field === F$9.product) {
1908
+ if (field === F$a.product) {
1758
1909
  return {
1759
1910
  warehouse_id_: this.warehouseId
1760
1911
  };
@@ -1789,7 +1940,7 @@ class WarehouseOutTableCore extends ProfileDrivenSubTableCore {
1789
1940
  handleChange(params) {
1790
1941
  super.handleChange(params);
1791
1942
  const { field, value, option, rowData } = params;
1792
- if (field !== F$9.product || !option || value === void 0 || value === null || value === "") {
1943
+ if (field !== F$a.product || !option || value === void 0 || value === null || value === "") {
1793
1944
  return;
1794
1945
  }
1795
1946
  for (const { optionField, toField } of FILL_FROM_INVENTORY_OPTION$4) {
@@ -1815,7 +1966,7 @@ class WarehouseOutTableCore extends ProfileDrivenSubTableCore {
1815
1966
  const existIndex = visibleRows.findIndex((row2) => isSameMaterialBatch(row2, selected));
1816
1967
  if (existIndex >= 0) {
1817
1968
  const existRow = visibleRows[existIndex];
1818
- existRow[F$9.qty] = Number(existRow[F$9.qty] ?? 0) + scanQty;
1969
+ existRow[F$a.qty] = Number(existRow[F$a.qty] ?? 0) + scanQty;
1819
1970
  this.tableData = [...visibleRows];
1820
1971
  return;
1821
1972
  }
@@ -1847,6 +1998,8 @@ function getClassByType(type) {
1847
1998
  return DevicePartConsumeTableCore;
1848
1999
  case SubTableType.MATERIAL_REQUISITION:
1849
2000
  return MaterialRequisitionTableCore;
2001
+ case SubTableType.MATERIAL_SUBSTITUTION:
2002
+ return MaterialSubstitutionTableCore;
1850
2003
  // 出入库:渲染端暂走通用 SubTableCore,后续按 Profile 迁移
1851
2004
  default:
1852
2005
  return SubTableCore;
@@ -1951,6 +2104,49 @@ class SubTableCoreFactory {
1951
2104
  await Promise.all(Object.values(this.coreMap).map(async (core) => core.beforeBtnClick(params)));
1952
2105
  }
1953
2106
  }
2107
+ const _hoisted_1 = { class: "inspection-decision-prompt" };
2108
+ const _hoisted_2 = { class: "inspection-decision-prompt__body" };
2109
+ const _hoisted_3 = { class: "inspection-decision-prompt__heading" };
2110
+ const _hoisted_4 = { class: "inspection-decision-prompt__content" };
2111
+ const _hoisted_5 = { class: "inspection-decision-prompt__actions" };
2112
+ const _sfc_main = /* @__PURE__ */ defineComponent({
2113
+ __name: "inspection-decision-prompt-modal",
2114
+ props: {
2115
+ modal: {},
2116
+ content: {}
2117
+ },
2118
+ setup(__props) {
2119
+ const props = __props;
2120
+ function onAcknowledge() {
2121
+ void props.modal.dismiss({ ok: true });
2122
+ }
2123
+ return (_ctx, _cache) => {
2124
+ return openBlock(), createElementBlock("div", _hoisted_1, [
2125
+ createElementVNode("div", _hoisted_2, [
2126
+ createElementVNode("div", _hoisted_3, [
2127
+ _cache[0] || (_cache[0] = createElementVNode("svg", {
2128
+ class: "inspection-decision-prompt__icon",
2129
+ viewBox: "0 0 1024 1024",
2130
+ "aria-hidden": "true"
2131
+ }, [
2132
+ createElementVNode("path", { d: "M510.5 64.8C266 64.8 67.9 262.9 67.9 507.3S266 949.8 510.4 949.8s442.5-198.1 442.5-442.5c0.1-244.4-198-442.5-442.4-442.5z m-32.4 202.7c2.1-5.5 5.2-10.5 9.3-14.8s8.9-7.6 14.3-9.9c5.4-2.3 11.2-3.5 17.1-3.5 5.9 0 11.7 1.2 17.1 3.5 5.4 2.3 10.3 5.7 14.3 9.9s7.2 9.3 9.3 14.8c2.1 5.5 3 11.3 2.7 17.2L548.8 583c-0.3 7.7-3.7 15-9.2 20.4-5.6 5.3-13 8.3-20.8 8.3-7.7 0-15.2-3-20.7-8.4-5.6-5.3-8.9-12.6-9.3-20.4l-13.4-298.3c-0.3-5.7 0.6-11.6 2.7-17.1z m94.2 439c0.2 7-1.1 14-3.7 20.5s-6.6 12.4-11.6 17.3c-10.6 9.6-24.3 14.8-38.6 14.8-6.9 0.1-13.8-1.2-20.1-3.8s-12.2-6.5-17-11.5c-5.1-4.7-9.2-10.4-12-16.8-2.8-6.4-4.1-13.3-4-20.3-0.3-7 1-13.9 3.8-20.4 2.8-6.4 6.9-12.1 12.2-16.7 4.8-4.9 10.6-8.8 17-11.3 6.4-2.6 13.2-3.8 20.1-3.6 7.1-0.3 14.2 0.9 20.8 3.4 6.6 2.5 12.7 6.4 17.7 11.4 5.1 4.7 9.1 10.4 11.7 16.9 2.8 6.3 4 13.2 3.7 20.1z" })
2133
+ ], -1)),
2134
+ createElementVNode("span", null, toDisplayString(_ctx.$t("sys.onlineForm.inspectionDecisionRule.promptTitle")), 1)
2135
+ ]),
2136
+ createElementVNode("div", _hoisted_4, toDisplayString(__props.content), 1)
2137
+ ]),
2138
+ createElementVNode("div", _hoisted_5, [
2139
+ createElementVNode("button", {
2140
+ type: "button",
2141
+ class: "inspection-decision-prompt__button",
2142
+ onClick: onAcknowledge
2143
+ }, toDisplayString(_ctx.$t("sys.onlineForm.inspectionDecisionRule.acknowledge")), 1)
2144
+ ])
2145
+ ]);
2146
+ };
2147
+ }
2148
+ });
2149
+ const InspectionDecisionPromptModal = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-9c14035f"]]);
1954
2150
  function pickMainModelDisplay(dataCenter, modelKey) {
1955
2151
  for (const item of Object.values(dataCenter || {})) {
1956
2152
  const props = item?.cellWidget?.props || item?.props;
@@ -1982,22 +2178,70 @@ function useRenderPageFactory(props, payload) {
1982
2178
  const validationSyncStops = /* @__PURE__ */ new Map();
1983
2179
  const validationSuppressUntil = /* @__PURE__ */ new Map();
1984
2180
  const mcRuntimeStops = /* @__PURE__ */ new Map();
2181
+ const inspectionDecisionMatched = /* @__PURE__ */ new Map();
2182
+ const inspectionDecisionPrompting = /* @__PURE__ */ new Set();
2183
+ function openInspectionDecisionPrompt(uniqueId, content) {
2184
+ const overlay = window.NocodeAdapter.utils?.overlay;
2185
+ if (!overlay || inspectionDecisionPrompting.has(uniqueId)) return;
2186
+ inspectionDecisionPrompting.add(uniqueId);
2187
+ void overlay.modal(
2188
+ InspectionDecisionPromptModal,
2189
+ { content },
2190
+ {
2191
+ width: "368px",
2192
+ centered: true,
2193
+ showFooter: false,
2194
+ showCloseBtn: false,
2195
+ closable: false,
2196
+ canFullscreen: false,
2197
+ maskClosable: false,
2198
+ bodyStyle: { padding: 0 },
2199
+ wrapClassName: "inspection-decision-prompt-overlay"
2200
+ }
2201
+ ).finally(() => inspectionDecisionPrompting.delete(uniqueId));
2202
+ }
2203
+ function syncInspectionDecisionRule(uniqueId, allowPrompt = false) {
2204
+ const formState = formStateMap.value[uniqueId];
2205
+ const paper = dataCenterMap.value[uniqueId]?.[ComponentTypeEnum.PAPER];
2206
+ const rule = paper?.props?.inspectionDecisionRule;
2207
+ const matched = evaluateInspectionDecisionRule(rule, formState);
2208
+ const previous = inspectionDecisionMatched.get(uniqueId);
2209
+ inspectionDecisionMatched.set(uniqueId, matched);
2210
+ if (allowPrompt && previous === false && matched) {
2211
+ const content = rule?.prompt?.trim();
2212
+ if (content) {
2213
+ openInspectionDecisionPrompt(uniqueId, content);
2214
+ }
2215
+ }
2216
+ return matched;
2217
+ }
2218
+ function clearInspectionValidationState(uniqueId) {
2219
+ applyValidatorComments(uniqueId, null);
2220
+ applyMcValidatorComments(uniqueId, null);
2221
+ }
1985
2222
  function unbindFormValidationSync(uniqueId) {
1986
2223
  validationSyncStops.get(uniqueId)?.forEach((stop) => stop());
1987
2224
  validationSyncStops.delete(uniqueId);
1988
2225
  validationSuppressUntil.delete(uniqueId);
2226
+ inspectionDecisionMatched.delete(uniqueId);
1989
2227
  }
1990
2228
  function bindFormValidationSync(uniqueId) {
1991
2229
  unbindFormValidationSync(uniqueId);
1992
2230
  validationSuppressUntil.set(uniqueId, Date.now() + 5e3);
2231
+ syncInspectionDecisionRule(uniqueId);
1993
2232
  const stops = [];
1994
2233
  stops.push(
1995
2234
  watch(
1996
2235
  () => formStateMap.value[uniqueId],
1997
2236
  () => {
1998
- if ((validationSuppressUntil.get(uniqueId) ?? 0) > Date.now()) return;
1999
2237
  const info = basicInfoList.value.find((item) => item.uniqueId === uniqueId);
2000
2238
  if (!info) return;
2239
+ const suppressed = (validationSuppressUntil.get(uniqueId) ?? 0) > Date.now();
2240
+ syncInspectionDecisionRule(
2241
+ uniqueId,
2242
+ !suppressed && info.renderModeType === RenderModeEnum.FormMode
2243
+ );
2244
+ if (suppressed) return;
2001
2245
  if (info.renderModeType === RenderModeEnum.FormMode) {
2002
2246
  requestFullValidation(uniqueId, { trigger: "change" });
2003
2247
  }
@@ -2078,7 +2322,7 @@ function useRenderPageFactory(props, payload) {
2078
2322
  });
2079
2323
  watch(
2080
2324
  [() => props.selfId, () => counter.value],
2081
- async ([newRequestId, _3]) => {
2325
+ async ([newRequestId, _2]) => {
2082
2326
  console.log("aaaaaaaaaa", newRequestId);
2083
2327
  if (isEmpty(newRequestId)) {
2084
2328
  invalidateFetch();
@@ -2664,9 +2908,9 @@ function useRenderPageFactory(props, payload) {
2664
2908
  const prevMap = info.validatorMessageMap ?? {};
2665
2909
  const sameLocations = prevLocations.length === nextLocations.length && nextLocations.every((k2, i) => k2 === prevLocations[i]);
2666
2910
  const sameMessages = sameLocations && nextLocations.every((k2) => {
2667
- const a6 = prevMap[k2];
2668
- const b2 = map[k2];
2669
- return JSON.stringify(a6) === JSON.stringify(b2);
2911
+ const a9 = prevMap[k2];
2912
+ const b5 = map[k2];
2913
+ return JSON.stringify(a9) === JSON.stringify(b5);
2670
2914
  });
2671
2915
  if (sameMessages) return;
2672
2916
  closeValidatorPopovers();
@@ -2683,9 +2927,9 @@ function useRenderPageFactory(props, payload) {
2683
2927
  const prevMap = info.mcValidatorMessageMap ?? {};
2684
2928
  const sameLocations = prevLocations.length === nextLocations.length && nextLocations.every((k2, i) => k2 === prevLocations[i]);
2685
2929
  const sameMessages = sameLocations && nextLocations.every((k2) => {
2686
- const a6 = prevMap[k2];
2687
- const b2 = map[k2];
2688
- return JSON.stringify(a6) === JSON.stringify(b2);
2930
+ const a9 = prevMap[k2];
2931
+ const b5 = map[k2];
2932
+ return JSON.stringify(a9) === JSON.stringify(b5);
2689
2933
  });
2690
2934
  if (sameMessages) return;
2691
2935
  closeValidatorPopovers();
@@ -2748,6 +2992,10 @@ function useRenderPageFactory(props, payload) {
2748
2992
  const formState = formStateMap.value?.[uniqueId];
2749
2993
  const dataCenter = dataCenterMap.value?.[uniqueId];
2750
2994
  const bomC = tmplBomCMap.value?.[uniqueId];
2995
+ if (syncInspectionDecisionRule(uniqueId)) {
2996
+ clearInspectionValidationState(uniqueId);
2997
+ return { isValid: true };
2998
+ }
2751
2999
  const res = await validate(formState, dataCenter[ComponentTypeEnum.PAPER], uniqueId);
2752
3000
  if (bomC) {
2753
3001
  const bomRes = await bomC.submitValidate();
@@ -3055,7 +3303,7 @@ function useEbrWikiFactoryV2(props, payload) {
3055
3303
  }
3056
3304
  watch(
3057
3305
  [() => props.materialNo, () => edhrCounter.value],
3058
- async ([newMaterialNo, _3]) => {
3306
+ async ([newMaterialNo, _2]) => {
3059
3307
  if (isEmpty(newMaterialNo)) return;
3060
3308
  loading.value = true;
3061
3309
  clear();
@@ -3234,7 +3482,7 @@ function useEbrWikiFactoryV2(props, payload) {
3234
3482
  );
3235
3483
  watch(
3236
3484
  [() => selectSelfInfo.value, () => instanceCounter.value],
3237
- ([newSelectSelfInfo, _3]) => {
3485
+ ([newSelectSelfInfo, _2]) => {
3238
3486
  if (newSelectSelfInfo && payload.pageType === "record-change") {
3239
3487
  emitter.emit(EmitterEnum.__on_select_ebr_doc_instance_id, {
3240
3488
  instanceId: newSelectSelfInfo.id
@@ -3510,8 +3758,8 @@ function useFormulaExpWatcher(options) {
3510
3758
  debouncedCompute();
3511
3759
  return;
3512
3760
  }
3513
- for (const p of parseInfos) {
3514
- const { type, processed, hashValue } = p;
3761
+ for (const p2 of parseInfos) {
3762
+ const { type, processed, hashValue } = p2;
3515
3763
  if (type === "plain") {
3516
3764
  const stop2 = watch(
3517
3765
  () => currentPageFormState.value?.[processed],
@@ -3739,209 +3987,217 @@ function filterAnnotationItemsUpToCurrent(items) {
3739
3987
  });
3740
3988
  }
3741
3989
  export {
3742
- aJ as AITooltips,
3990
+ aN as AITooltips,
3743
3991
  AllocateTableCore,
3744
3992
  B3 as BaseFormModelFetcher,
3745
- aL as BinarizeMethodOptions,
3746
- b0 as BindCmpStyleEnum,
3747
- $ as BooleanShowMode,
3993
+ aP as BinarizeMethodOptions,
3994
+ b4 as BindCmpStyleEnum,
3995
+ a0 as BooleanShowMode,
3748
3996
  B2 as BorderTD,
3749
3997
  BpmnNodeTypeEnum,
3750
- ci as BpmnSignatureTypeEnum,
3751
- cj as ButtonTypeEnum,
3998
+ ct as BpmnSignatureTypeEnum,
3999
+ cu as ButtonTypeEnum,
3752
4000
  B as BwipCodeType,
3753
- ck as CHECK_TABLE_MEDPRO_PROTOCOL_KEY,
3754
- x as CellType,
3755
- ab as CellWidgetViewState,
4001
+ cv as CHECK_TABLE_MEDPRO_PROTOCOL_KEY,
4002
+ y as CellType,
4003
+ af as CellWidgetViewState,
3756
4004
  CheckDsTypeEnum,
3757
- cl as CodeRunner,
4005
+ cw as CodeRunner,
3758
4006
  ComponentTypeEnum,
3759
- cm as Config_Fields,
3760
- cn as ControlStatusEnum,
3761
- bd as DEVICE_GROUP_QUERY_KEY,
3762
- co as DEVICE_SEARCH_API,
3763
- aS as DateFormat,
3764
- au as DecimalDisplayMode,
3765
- aK as DenoiseMethodOptions,
3766
- L2 as DeviceConnector,
3767
- aH as DeviceLink,
4007
+ cx as Config_Fields,
4008
+ cy as ControlStatusEnum,
4009
+ bh as DEVICE_GROUP_QUERY_KEY,
4010
+ cz as DEVICE_SEARCH_API,
4011
+ aW as DateFormat,
4012
+ ay as DecimalDisplayMode,
4013
+ aO as DenoiseMethodOptions,
4014
+ N2 as DeviceConnector,
4015
+ aL as DeviceLink,
3768
4016
  D as DeviceLinkTmplUtil,
3769
- aI as DeviceParamsTypeTitle,
4017
+ aM as DeviceParamsTypeTitle,
3770
4018
  DevicePartConsumeTableCore,
3771
- cp as DeviceStatus,
3772
- ac as DiagonalDirection,
3773
- ag as DiagonalVertex,
3774
- _2 as DocumentLayout,
3775
- N2 as DocumentLoading,
3776
- l as DocumentPaper,
3777
- O2 as DynamicQuickFillModal,
3778
- m as DynamicTableAction,
3779
- cq as EBR_PROVIDE_ENUM,
3780
- cr as EFieldBizTypeEnum,
4019
+ cA as DeviceStatus,
4020
+ ag as DiagonalDirection,
4021
+ ak as DiagonalVertex,
4022
+ _ as DocumentLayout,
4023
+ O2 as DocumentLoading,
4024
+ m as DocumentPaper,
4025
+ P2 as DynamicQuickFillModal,
4026
+ o2 as DynamicTableAction,
4027
+ cB as EBR_PROVIDE_ENUM,
4028
+ cC as EFieldBizTypeEnum,
3781
4029
  E as EMPTY_PRODUCT_VERSION_ID,
3782
- aB as EmptySymbol,
3783
- aa as FieldSysVarDefaultValueEnum,
4030
+ aF as EmptySymbol,
4031
+ a2 as FallbackSignTypeEnum,
4032
+ ae as FieldSysVarDefaultValueEnum,
3784
4033
  FillingTypeEnum,
3785
- P2 as FixedQuickFillModal,
4034
+ Q2 as FixedQuickFillModal,
3786
4035
  FormAnnotationController,
3787
4036
  F as FormModelController,
3788
4037
  FormTmplBomController,
3789
- Q as FormTmplConfigController,
4038
+ T as FormTmplConfigController,
3790
4039
  FormTypeEnum,
3791
- av as ImageDisplayModeEnum,
4040
+ az as ImageDisplayModeEnum,
3792
4041
  I as InstanceStatusValues,
3793
- aN as JoinModelTypeEum,
3794
- _ as LabelPosition,
3795
- ae as LineDirection,
4042
+ aR as JoinModelTypeEum,
4043
+ $ as LabelPosition,
4044
+ ai as LineDirection,
3796
4045
  L as LineType,
3797
- M2 as MBRender,
3798
- T as MCDataUtil,
3799
- a4 as MCRender,
4046
+ M as MBRender,
4047
+ U as MCDataUtil,
4048
+ a7 as MCRender,
3800
4049
  MaterialConsumeTableController,
3801
4050
  MaterialConsumptionPatternEnum,
3802
4051
  MaterialRequisitionTableCore,
3803
4052
  MaterialStatusEnum,
3804
- cs as MobileFillTypeEnum,
4053
+ MaterialSubstitutionTableCore,
4054
+ cD as MobileFillTypeEnum,
3805
4055
  NCB_PROVIDE,
3806
- U as OCR_MODEL_PRECISION_ENUM_KEY,
3807
- ct as OfficeTypeEnum,
4056
+ V as OCR_MODEL_PRECISION_ENUM_KEY,
4057
+ cE as OfficeTypeEnum,
3808
4058
  O as Orientation,
3809
- o as PageSizeEnum,
4059
+ p as PageSizeEnum,
3810
4060
  P as PaginationFormat,
3811
- a5 as PaperSizeMap,
3812
- n as PaperWidgeType,
3813
- M as PaperWidgeValueType,
3814
- aM as ParamModelTypeEnum,
4061
+ a8 as PaperSizeMap,
4062
+ o as PaperWidgeType,
4063
+ N as PaperWidgeValueType,
4064
+ aQ as ParamModelTypeEnum,
3815
4065
  PartStocktakeTableCore,
3816
4066
  PlatformEnum,
3817
- cu as PosEnum,
4067
+ cF as PosEnum,
3818
4068
  PretreatmentListTableCore,
3819
4069
  ProfileDrivenSubTableCore,
3820
- at as RangeCompareOp,
3821
- as as RangeValidateMode,
4070
+ ax as RangeCompareOp,
4071
+ aw as RangeValidateMode,
3822
4072
  RenderModeEnum,
3823
- a2 as SignShowTypeEnum,
3824
- a0 as SignatureNumberTypeEnum,
3825
- a1 as SignatureTimeTypeEnum,
3826
- a3 as SignatureTypeEnum,
4073
+ a5 as SignShowTypeEnum,
4074
+ a1 as SignatureImageDirectionEnum,
4075
+ a3 as SignatureNumberTypeEnum,
4076
+ a4 as SignatureTimeTypeEnum,
4077
+ a6 as SignatureTypeEnum,
3827
4078
  SterilizeBatchTableCore,
3828
4079
  StocktakeTableCore,
3829
4080
  SubTableCore,
3830
4081
  SubTableCoreFactory,
3831
4082
  SubTableType,
3832
- cv as SummaryApproveHisTypeEnum,
3833
- af as TimeDiffFormat,
3834
- aj as ViewTypeEnum,
4083
+ cG as SummaryApproveHisTypeEnum,
4084
+ aj as TimeDiffFormat,
4085
+ an as ViewTypeEnum,
3835
4086
  WarehouseInTableCore,
3836
4087
  WarehouseInboundTableCore,
3837
4088
  WarehouseOutTableCore,
3838
4089
  WarehouseOutboundTableCore,
3839
- ad as WidgetImageSizeMode,
3840
- cw as applyCheckDsDataToRuntime,
4090
+ ah as WidgetImageSizeMode,
4091
+ cH as applyCheckDsDataToRuntime,
3841
4092
  e as applyConsumeObjectTraceChange,
3842
- cx as applyMedProCheckDsDataToRuntime,
4093
+ cI as applyMedProCheckDsDataToRuntime,
3843
4094
  baseDataUtils,
3844
- cy as buildDeviceBaseQuery,
3845
- bc as buildDeviceFilterQuery,
3846
- cz as buildFormChangeDisplayRows,
4095
+ cJ as buildDeviceBaseQuery,
4096
+ bg as buildDeviceFilterQuery,
4097
+ cK as buildFormChangeDisplayRows,
3847
4098
  b as buildObjectLotExtraQuery,
3848
- cA as buildStableFieldLocation,
4099
+ cL as buildStableFieldLocation,
3849
4100
  calcFillData,
3850
4101
  calcUtils,
3851
4102
  clearFormRules,
3852
4103
  collectAnnotationItemsByLocation,
3853
4104
  collectFormChangeFieldLocations,
3854
4105
  commonUtils,
3855
- cB as deleteSubtableRow,
3856
- cC as detailsHaveFormChangeRowOps,
4106
+ cM as deleteSubtableRow,
4107
+ cN as detailsHaveFormChangeRowOps,
3857
4108
  enrichFormChangeRowDetails,
3858
- cD as extractFormChangeRowDetails,
4109
+ cO as extractFormChangeRowDetails,
3859
4110
  extractKeywordFromQueryData,
3860
- cE as fetchCheckDsDataForTable,
3861
- cF as fetchCustomCheckDsData,
4111
+ cP as fetchCheckDsDataForTable,
4112
+ cQ as fetchCustomCheckDsData,
3862
4113
  fetchHistoryConsume,
3863
- cG as fetchMedProCheckDsData,
3864
- f as fetchOperationReceiveQty,
4114
+ cR as fetchMedProCheckDsData,
4115
+ h as fetchOperationReceiveQty,
4116
+ f as fetchUdi,
3865
4117
  filterAnnotationItemsUpToCurrent,
3866
- V as getAppInfo,
3867
- cH as getCheckTableSnapshotKey,
3868
- cI as getFormChangeRowKey,
3869
- cJ as getFormChangeRowOp,
3870
- aZ as getLotLockedReason,
4118
+ W as getAppInfo,
4119
+ cS as getCheckTableSnapshotKey,
4120
+ cT as getFormChangeRowKey,
4121
+ cU as getFormChangeRowOp,
4122
+ b1 as getLotLockedReason,
3871
4123
  g as getObjectBomMaterialLotQuery,
3872
- h as getObjectBomProductQuery,
3873
- cK as getParseRuleConfig,
4124
+ j as getObjectBomProductQuery,
4125
+ cV as getParseRuleConfig,
3874
4126
  getParseRuleInfo,
3875
4127
  getParseRuleValue,
3876
- cL as getReinspectionDate,
3877
- cM as getSubTableQuickFillInfo,
3878
- W as getSuiteKey,
3879
- cN as handleOldConfig,
3880
- cO as hasAnyCheckTableSnapshot,
3881
- cP as hasByTableCheckTableSnapshot,
3882
- cQ as hasSharedCheckTableSnapshot,
3883
- cR as insertSubtableRows,
3884
- cS as isAnnLocationSelected,
3885
- X as isBlank,
4128
+ cW as getReinspectionDate,
4129
+ cX as getSubTableQuickFillInfo,
4130
+ X as getSuiteKey,
4131
+ bi as getValidationRuleKeys,
4132
+ cY as handleOldConfig,
4133
+ cZ as hasAnyCheckTableSnapshot,
4134
+ c_ as hasByTableCheckTableSnapshot,
4135
+ c$ as hasSharedCheckTableSnapshot,
4136
+ d0 as insertSubtableRows,
4137
+ d1 as isAnnLocationSelected,
4138
+ Y as isBlank,
3886
4139
  isBomGranted,
3887
4140
  isEdhrSuite,
3888
- Y as isEqmSuite,
3889
- cT as isFormChangeGhostRow,
3890
- cU as isMedProSuite,
3891
- cV as isRowAddedInCurrentFormChange,
3892
- cW as jsonSchemaUtils,
3893
- cX as judgeUnique,
3894
- aY as materialCheck,
3895
- cY as migrateDiagonalDirectionToVertex,
4141
+ Z as isEqmSuite,
4142
+ d2 as isFormChangeGhostRow,
4143
+ d3 as isMedProSuite,
4144
+ d4 as isRowAddedInCurrentFormChange,
4145
+ d5 as jsonSchemaUtils,
4146
+ d6 as judgeUnique,
4147
+ b0 as materialCheck,
4148
+ d7 as migrateDiagonalDirectionToVertex,
3896
4149
  nextFormChangeRowViewHistoryId,
3897
- b7 as normalizeRefLoaderResult,
3898
- cZ as parseFrontConfig,
3899
- Z as pickObjectFieldKeys,
3900
- c_ as recordSubtableRowAdd,
3901
- c$ as recordSubtableRowDelete,
3902
- ba as refUtils,
4150
+ b8 as normalizeRefLoaderResult,
4151
+ d8 as parseFrontConfig,
4152
+ $2 as parseUdi,
4153
+ a02 as pickObjectFieldKeys,
4154
+ d9 as recordSubtableRowAdd,
4155
+ da as recordSubtableRowDelete,
4156
+ be as refUtils,
3903
4157
  registerValidationContext,
3904
- d0 as relocateDeletedRowsToEnd,
4158
+ db as relocateDeletedRowsToEnd,
3905
4159
  renderUtils,
3906
4160
  requestDisplayValidation,
3907
4161
  requestFullValidation,
3908
- d1 as requestMedProCheckDsData,
3909
- d2 as requestNonMedProCheckDsData,
3910
- d3 as resolveAnnotationFieldLocation,
3911
- ah as resolveDiagonalVertex,
3912
- q as resolveFieldRenderComponent,
3913
- d4 as resolveFormChangeRowUi,
4162
+ dc as requestMedProCheckDsData,
4163
+ dd as requestNonMedProCheckDsData,
4164
+ de as resolveAnnotationFieldLocation,
4165
+ al as resolveDiagonalVertex,
4166
+ t as resolveFieldRenderComponent,
4167
+ df as resolveFormChangeRowUi,
3914
4168
  c as resolveObjectBomEntry,
3915
4169
  r as resolveObjectFieldKeys,
3916
- d5 as resolveRowFormChangeMark,
4170
+ dg as resolveRowFormChangeMark,
4171
+ a12 as resolveUdiQuery,
3917
4172
  d as runWithFillProduct,
3918
- aR as setSelectAnnotationId,
3919
- d6 as setSelectMobileTdId,
3920
- aQ as setSelectValidatorId,
4173
+ aV as setSelectAnnotationId,
4174
+ dh as setSelectMobileTdId,
4175
+ aU as setSelectValidatorId,
3921
4176
  settleAndValidateDisplay,
3922
- aO as sqlUtils,
3923
- d7 as stockCheck,
4177
+ aS as sqlUtils,
4178
+ di as stockCheck,
3924
4179
  transformUtils,
3925
4180
  unregisterValidationContext,
3926
- N as useCalculateFormula,
3927
- b3 as useCurrentPageFormState,
3928
- bg as useDependency,
4181
+ Q as useCalculateFormula,
4182
+ b7 as useCurrentPageFormState,
4183
+ bm as useDependency,
3929
4184
  useEbrWikiFactoryV2,
3930
4185
  u2 as useFormModel,
3931
4186
  u as useFormTmplConfig,
3932
4187
  useFormulaExpWatcher,
3933
4188
  useMaterialBalance,
3934
4189
  useNocodeEmitter,
3935
- a$ as useNocodeFormWidget,
3936
- d8 as useOnlineFormActionButton,
3937
- be as useOnlineFormTransformField2Component,
4190
+ b3 as useNocodeFormWidget,
4191
+ dj as useOnlineFormActionButton,
4192
+ bk as useOnlineFormTransformField2Component,
3938
4193
  useRenderPageFactory,
3939
- j as useStyles,
4194
+ k as useStyles,
3940
4195
  a as useTmplBom,
3941
- k as useValidator,
3942
- aP as useWidgetStaticAttrs,
4196
+ l as useValidator,
4197
+ aT as useWidgetStaticAttrs,
3943
4198
  validate,
4199
+ bj as validateFields,
3944
4200
  v as validateObjectBomForScan,
3945
4201
  validateObjectBomQtyOnSubmit,
3946
- a_ as validateReinspectionDate
4202
+ b2 as validateReinspectionDate
3947
4203
  };