@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.
- package/dist/{BaseComponent-CC5rukQG.js → BaseComponent-CAe1GFCG.js} +1 -1
- package/dist/{VueVideoPlayer-h_ZG9FHq.js → VueVideoPlayer-BR4RbIhY.js} +2 -2
- package/dist/{align-editor-CnDiBeYX.js → align-editor-jvwZmJhi.js} +1 -1
- package/dist/{barcode-design-DKS1-ByA.js → barcode-design-D-RUtBUQ.js} +2 -2
- package/dist/base/index.es.js +594 -338
- package/dist/{diagonal-design-DsSAdTPc.js → diagonal-design-D0-8xfY9.js} +2 -2
- package/dist/{dynamic-table-action-C06Eolmw.js → dynamic-table-action-CuwejY0h.js} +260 -63
- 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
- package/dist/{edit.utils-CXmmCnxE-DgR7eBfx.js → edit.utils-CXmmCnxE-DsHacnTy.js} +1 -1
- package/dist/excel.css +2050 -1111
- package/dist/{exceljs.min-tTYbMh8Q.js → exceljs.min-Cq93OYx0.js} +2 -2
- package/dist/{font-editor-Dg4-mIar.js → font-editor-STIcKQS9.js} +3 -3
- package/dist/{image-design-DipYIW7J.js → image-design-BE0reQ2L.js} +2 -2
- package/dist/{index-BSDIqsy-.js → index-7fOfFIWA.js} +1 -1
- package/dist/{index-4oVjbEL5.js → index-B8UxP4I8.js} +2 -2
- package/dist/{index-Bbm1OZll.js → index-BDEROc8n.js} +2 -2
- package/dist/{index-D77cqI26.js → index-BHKYBIU4.js} +1 -1
- package/dist/{index-CRhFD2Ma.js → index-BR8jTu0U.js} +3 -3
- package/dist/{index-hdnCCYft.js → index-B_Vz06n5.js} +2 -2
- package/dist/{index-CxeNA6if.js → index-Boh-6KTf.js} +3 -3
- package/dist/{index-C2LjfZ8T.js → index-ByFo5Dnd.js} +2 -2
- package/dist/{index-B2uQ_Gpo.js → index-BzYqBsXt.js} +6 -3
- package/dist/{index-8yIbmmaT.js → index-C1qPKXtI.js} +2 -2
- package/dist/{index-ClPbkivx.js → index-CTtq3ytv.js} +2 -2
- package/dist/{index-CnD1HgLA.js → index-CZ_rns9z.js} +3 -3
- package/dist/{index-D7uEmsRJ.js → index-CZjv5O4w.js} +2 -2
- package/dist/{index-CoqaGOXy.js → index-CaAA6yTk.js} +2 -2
- package/dist/{index-CLijkm1b.js → index-CrlUK3mJ.js} +3 -3
- package/dist/{index-7uJnJBMV.js → index-CsE9ftfx.js} +9 -3
- package/dist/{index-BzWrm1H6.js → index-CxOH8cdl.js} +1 -1
- package/dist/{index-DtBIvDQH.js → index-CzZMgyTs.js} +1 -1
- package/dist/{index-DJS-Qycc.js → index-D1qAQzmB.js} +2 -2
- package/dist/{index-DyJk8rK7.js → index-D5ZIZcxA.js} +2 -2
- package/dist/{index-BX7fyebb.js → index-D5aim6xd.js} +1 -1
- package/dist/{index-DwCjfahr.js → index-D9JmIbUb.js} +1 -1
- package/dist/{index-MOgjK9eo.js → index-DcN-7DVw.js} +36526 -35225
- package/dist/{index-DkBu7mHZ.js → index-Dl5qzD_4.js} +2 -2
- package/dist/{index-BhReeJJg.js → index-DogAqNJV.js} +2 -2
- package/dist/{index-DWHpkDH4.js → index-DvbyBcoW.js} +3 -3
- package/dist/{index-Cl6vrDfE.js → index-DwQuEur6.js} +2 -2
- package/dist/{index-B_-itxOF.js → index-GZPHkfRf.js} +2 -2
- package/dist/{index-CSgBgTvS.js → index-Gqpg9XkM.js} +2 -2
- package/dist/{index-Cca1mHnO.js → index-OQIgIej5.js} +1 -1
- package/dist/{index-D6PLyjGU.js → index-TfrN14XT.js} +2 -2
- package/dist/{index-15gZRWSR.js → index-uyTvicTO.js} +1 -1
- package/dist/{index-DH7pin31.js → index-vCGSByW_.js} +2 -2
- package/dist/{index-BVyNEH4i.js → index-wGLH0bRh.js} +1 -1
- package/dist/index.es.js +2 -2
- package/dist/{mb-render-BVp5fqUK.js → mb-render-CtCYbeiE.js} +1 -1
- 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
- package/dist/{pagination-design-BugQ6_X1.js → pagination-design-Dww0Y1-3.js} +2 -2
- package/dist/paper-widget-design-D_mxf4dD.js +4 -0
- package/dist/{qrcode-design-BvcrdqjC.js → qrcode-design-D0aSeR4l.js} +1 -1
- package/dist/{revo-grid.entry-ByZf-Mkh.js → revo-grid.entry-DI2rNob_.js} +1 -1
- package/dist/{revogr-attribution_7.entry-Bkbb15P7.js → revogr-attribution_7.entry-CBbD7d-g.js} +3 -3
- package/dist/{revogr-clipboard_3.entry-BAsnJv1y.js → revogr-clipboard_3.entry-CLAxZ5jH.js} +2 -2
- package/dist/{revogr-data_4.entry-Cpmztqm8.js → revogr-data_4.entry-7VW0g6vl.js} +2 -2
- package/dist/{revogr-filter-panel.entry-CUJGzSbz.js → revogr-filter-panel.entry-DGHVS3a2.js} +1 -1
- package/dist/{serialnumber-design-CtnZEPSs.js → serialnumber-design-D37xioAJ.js} +1 -1
- package/dist/shared/index.es.js +31 -25
- package/dist/{single-field-drop-BKf3R6dR.js → single-field-drop-D5eogcuY.js} +2 -2
- package/dist/{size-editor-DbOpQm-C.js → size-editor-_oGc1_8M.js} +1 -1
- package/dist/src/assets/svgs/table/index.d.ts +1 -0
- package/dist/src/domain/field/text/udi-manifest.d.ts +2 -0
- package/dist/src/domain/table/business/device/maintenance/index.d.ts +1 -0
- package/dist/src/domain/table/business/device/maintenance/profile/field-keys.d.ts +9 -0
- package/dist/src/domain/table/business/device/maintenance/profile/fields.d.ts +2 -0
- package/dist/src/domain/table/business/device/maintenance/profile/index.d.ts +3 -0
- package/dist/src/domain/table/business/device/point-inspection/index.d.ts +1 -0
- package/dist/src/domain/table/business/device/point-inspection/profile/field-keys.d.ts +9 -0
- package/dist/src/domain/table/business/device/point-inspection/profile/fields.d.ts +2 -0
- package/dist/src/domain/table/business/device/point-inspection/profile/index.d.ts +3 -0
- package/dist/src/domain/table/business/device/signature-lock.d.ts +9 -0
- package/dist/src/domain/table/business/material/material-substitution/index.d.ts +2 -0
- package/dist/src/domain/table/business/material/material-substitution/profile/field-keys.d.ts +75 -0
- package/dist/src/domain/table/business/material/material-substitution/profile/fields.d.ts +2 -0
- package/dist/src/domain/table/business/material/material-substitution/profile/index.d.ts +4 -0
- package/dist/src/domain/table/business/material/material-substitution/runtime/register-handlers.d.ts +1 -0
- package/dist/src/domain/table/business/material/material-substitution/runtime/row-change-handlers.d.ts +6 -0
- package/dist/src/domain/table/design/create-subtable.d.ts +1 -1
- package/dist/src/domain/table/design/hooks/on-field-attach.d.ts +1 -1
- package/dist/src/domain/table/design/index.d.ts +1 -1
- package/dist/src/domain/table/design/sub-model-matcher.d.ts +1 -0
- package/dist/src/domain/table/index.d.ts +3 -2
- package/dist/src/domain/table/registry.d.ts +1 -0
- package/dist/src/domain/table/types.d.ts +8 -3
- package/dist/src/nocode-base/src/components/inspection-decision-prompt-modal.vue.d.ts +7 -0
- package/dist/src/nocode-base/src/constant/index.d.ts +17 -1
- package/dist/src/nocode-base/src/core/sub-table/profile-driven-sub-table-core.d.ts +22 -0
- package/dist/src/nocode-base/src/hooks/index.d.ts +2 -1
- package/dist/src/nocode-base/src/hooks/inspection-decision-rule/evaluator.d.ts +11 -0
- package/dist/src/nocode-base/src/hooks/material-consume/bom-validator.d.ts +10 -2
- package/dist/src/nocode-base/src/hooks/material-consume/material-consume-table-controller.d.ts +5 -0
- package/dist/src/nocode-base/src/hooks/udi.d.ts +5 -0
- package/dist/src/nocode-base/src/hooks/useValidator.d.ts +2 -2
- package/dist/src/nocode-base/src/hooks/validation/runValidation.d.ts +2 -0
- package/dist/src/nocode-base/src/hooks/validation/useFormValidator.d.ts +4 -0
- package/dist/src/nocode-base/src/types/business/index.d.ts +8 -1
- package/dist/src/nocode-base/src/types/common/base.d.ts +53 -1
- package/dist/src/nocode-base/src/types/fields/i-sign.d.ts +5 -1
- package/dist/src/nocode-base/src/types/index.d.ts +1 -1
- package/dist/src/nocode-base/src/types/widgets/i-paper.d.ts +3 -1
- package/dist/src/online-form/src/components/version-diff/index/types.d.ts +5 -1
- package/dist/src/online-form/src/views/designer/constants/index.d.ts +1 -0
- package/dist/src/online-form/src/views/designer/enums/index.d.ts +2 -1
- package/dist/src/online-form/src/views/designer/hooks/useAllSpreadSheets.d.ts +48 -0
- package/dist/src/online-form/src/views/designer/hooks/useSpreadSheet.d.ts +63 -0
- package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/decision-rule-condition.vue.d.ts +19 -0
- package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/decision-rule-group.vue.d.ts +16 -0
- package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/decision-rule.d.ts +54 -0
- package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/field-tree-node.vue.d.ts +24 -0
- package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/field-tree-select.vue.d.ts +30 -0
- package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/field-tree-utils.d.ts +12 -0
- package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/inspection-decision-modal.vue.d.ts +9 -0
- package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/panel-rule-config.vue.d.ts +18 -1
- package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/word-ui/gct-button.vue.d.ts +33 -0
- package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/word-ui/gct-icon.vue.d.ts +12 -0
- package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/word-ui/gct-input.vue.d.ts +23 -0
- package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/word-ui/gct-modal.vue.d.ts +36 -0
- package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/word-ui/gct-scrollbar.vue.d.ts +21 -0
- package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/word-ui/gct-select.vue.d.ts +30 -0
- package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/word-ui/gct-switch.vue.d.ts +17 -0
- package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/word-ui/gct-text-area.vue.d.ts +20 -0
- package/dist/src/online-form/src/views/designer/modules/panel/panel-rule-config/word-ui/index.d.ts +8 -0
- package/dist/src/online-form/src/views/designer/modules/panel/sub-table/comps/use-dynamic-sub-table-panel.d.ts +30 -0
- package/dist/src/online-form/src/views/designer/types/index.d.ts +4 -2
- package/dist/src/online-form/src/views/designer/utils/xlsx-parser.d.ts +3 -0
- package/dist/src/online-form/src/views/render/__components__/_field_/sign/component/sign-validation.d.ts +13 -0
- package/dist/src/shared/components/Signature/card-signer.vue.d.ts +2 -2
- package/dist/src/shared/components/Signature/index.d.ts +1 -2
- package/dist/src/shared/components/Signature/logic/index.d.ts +8 -23
- package/dist/src/shared/components/Signature/types/index.d.ts +4 -1
- package/dist/src/shared/components/Signature/ui/password-signer.vue.d.ts +2 -0
- package/dist/src/shared/components/Signature/ui/sign-popover-content.vue.d.ts +6 -2
- package/dist/src/shared/components/Signature/ui/sign-switcher.vue.d.ts +3 -1
- package/dist/src/shared/enum/field-type.d.ts +5 -0
- package/dist/src/shared/enum/online-form.d.ts +7 -1
- package/dist/{text-design-D9Qm-frB.js → text-design-CHoQtOBi.js} +2 -2
- package/dist/{throttle-Cpk1LoGk-CMDdqI7x.js → throttle-Cpk1LoGk-CEvaM6uf.js} +1 -1
- package/dist/{timediff-design-D9liVCTr.js → timediff-design-BxItKsBW.js} +1 -1
- package/dist/{trace-like-wrapper-DQqwOlxy.js → trace-like-wrapper-BNwwljhN.js} +2 -2
- 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
- package/dist/web-render/index.es.js +3 -3
- package/dist/{widget-barcode-CRnaA-B2.js → widget-barcode-CmzvEEWx.js} +4 -4
- package/dist/{widget-diagonal-5QDZqvMH.js → widget-diagonal-B6Mvq_Ck.js} +3 -3
- package/dist/{widget-image-CkLJ-5pC.js → widget-image-DPd6ZI2K.js} +5 -5
- package/dist/{widget-line-DEsmouIk.js → widget-line-BRgNGqLk.js} +2 -2
- package/dist/{widget-pagination-Ce7zEUJk.js → widget-pagination-Dn3BpM0I.js} +5 -5
- package/dist/{widget-power-CwQz7Uwf.js → widget-power-C6BzkxLE.js} +3 -3
- package/dist/{widget-qrcode-CHkKCBRy.js → widget-qrcode-_Fe3bqQy.js} +3 -3
- package/dist/{widget-rangelimit-Bki9XhUU.js → widget-rangelimit-Dlt83D9J.js} +3 -3
- package/dist/{widget-serialnumber-DI9hVJDB.js → widget-serialnumber-VA2ngpH9.js} +1 -1
- package/dist/{widget-text-BM9hrxw_.js → widget-text-CiwYrzt_.js} +5 -5
- package/dist/{widget-timediff-Ooda0sMm.js → widget-timediff-Ch3L6a1S.js} +2 -2
- package/package.json +1 -1
- package/dist/paper-widget-design-C4mfMuuG.js +0 -4
- package/dist/src/shared/components/Signature/ui/sign-editor.vue.d.ts +0 -29
- package/dist/src/shared/components/Signature/ui/sign-preview.vue.d.ts +0 -18
- package/dist/src/shared/components/Signature/ui/sign-switcher-modal.vue.d.ts +0 -116
package/dist/base/index.es.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { M as MaterialConsumptionPatternEnum,
|
|
4
|
-
import { B as B2,
|
|
5
|
-
import { ref, provide, watch, computed, 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
|
|
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$
|
|
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$
|
|
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$
|
|
450
|
-
formField: F$
|
|
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$
|
|
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$
|
|
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$
|
|
473
|
-
formField: F$
|
|
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$
|
|
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$
|
|
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$
|
|
696
|
+
return { [F$6.inventory]: record.id_ };
|
|
546
697
|
}
|
|
547
698
|
return {
|
|
548
|
-
[F$
|
|
549
|
-
[F$
|
|
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$
|
|
557
|
-
[F$
|
|
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$
|
|
652
|
-
const rowBatch = row[F$
|
|
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$
|
|
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$
|
|
811
|
+
if ((row[F$6.warehouse] ?? "") !== (record.warehouse_id_ ?? "")) return false;
|
|
661
812
|
if (!groupByWarehouse) {
|
|
662
|
-
if ((row[F$
|
|
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$
|
|
670
|
-
...warehouseSummary ? { [F$
|
|
671
|
-
[F$
|
|
672
|
-
[F$
|
|
673
|
-
[F$
|
|
674
|
-
[F$
|
|
675
|
-
[F$
|
|
676
|
-
[F$
|
|
677
|
-
[F$
|
|
678
|
-
[F$
|
|
679
|
-
[F$
|
|
680
|
-
[F$
|
|
681
|
-
[F$
|
|
682
|
-
[F$
|
|
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$
|
|
838
|
+
row[F$6.validity] = toDateOnly(parsed.expiration);
|
|
688
839
|
} else if (validityFromRecord != null) {
|
|
689
|
-
row[F$
|
|
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$
|
|
730
|
-
if (!Object.values(F$
|
|
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$
|
|
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$
|
|
895
|
+
if (field === F$6.location && rowData[F$6.inventoryLocationIds]) {
|
|
745
896
|
return {
|
|
746
|
-
"id_.in": rowData[F$
|
|
897
|
+
"id_.in": rowData[F$6.inventoryLocationIds]
|
|
747
898
|
};
|
|
748
899
|
}
|
|
749
|
-
if (field === F$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
866
|
-
existRow[F$
|
|
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$
|
|
897
|
-
[F$
|
|
898
|
-
[F$
|
|
899
|
-
[F$
|
|
900
|
-
[F$
|
|
901
|
-
[F$
|
|
902
|
-
[F$
|
|
903
|
-
[F$
|
|
904
|
-
[F$
|
|
905
|
-
[F$
|
|
906
|
-
[F$
|
|
907
|
-
[F$
|
|
908
|
-
[F$
|
|
909
|
-
[F$
|
|
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$
|
|
1065
|
+
row[F$7.validity] = toDateOnly(parsed.expiration);
|
|
915
1066
|
} else if (validityFromRecord != null) {
|
|
916
|
-
row[F$
|
|
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$
|
|
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$
|
|
1102
|
+
if (field === F$7.location) {
|
|
952
1103
|
return {
|
|
953
|
-
"warehouse_id_.eq": rowData[F$
|
|
1104
|
+
"warehouse_id_.eq": rowData[F$7.warehouse]
|
|
954
1105
|
};
|
|
955
1106
|
}
|
|
956
|
-
if (field === F$
|
|
1107
|
+
if (field === F$7.originLocation) {
|
|
957
1108
|
return {
|
|
958
|
-
"warehouse_id_.eq": rowData[F$
|
|
1109
|
+
"warehouse_id_.eq": rowData[F$7.originWarehouse]
|
|
959
1110
|
};
|
|
960
1111
|
}
|
|
961
|
-
if (field === F$
|
|
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$
|
|
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$
|
|
1458
|
-
[F$
|
|
1459
|
-
[F$
|
|
1460
|
-
[F$
|
|
1461
|
-
[F$
|
|
1462
|
-
[F$
|
|
1463
|
-
[F$
|
|
1464
|
-
[F$
|
|
1465
|
-
[F$
|
|
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$
|
|
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$
|
|
1624
|
+
[F$8.materialContainerNo]: record.material_no_,
|
|
1474
1625
|
[MATERIAL_CONTAINER_ID]: record.production_identification_id_,
|
|
1475
|
-
[F$
|
|
1476
|
-
[F$
|
|
1477
|
-
[F$
|
|
1478
|
-
[F$
|
|
1479
|
-
[F$
|
|
1480
|
-
[F$
|
|
1481
|
-
[F$
|
|
1482
|
-
[F$
|
|
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$
|
|
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$
|
|
1538
|
-
if (field === F$
|
|
1539
|
-
if (field === F$
|
|
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$
|
|
1697
|
+
if (field === F$8.mfgOrder) {
|
|
1547
1698
|
applyFillFromMfgOrderOption(rowData, source);
|
|
1548
1699
|
return;
|
|
1549
1700
|
}
|
|
1550
|
-
if (field === F$
|
|
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$
|
|
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$
|
|
1579
|
-
[F$
|
|
1580
|
-
[F$
|
|
1581
|
-
[F$
|
|
1582
|
-
[F$
|
|
1583
|
-
[F$
|
|
1584
|
-
[F$
|
|
1585
|
-
[F$
|
|
1586
|
-
[F$
|
|
1587
|
-
[F$
|
|
1588
|
-
[F$
|
|
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$
|
|
1593
|
-
row[F$
|
|
1594
|
-
} else if (validityFromRecord != null && row[F$
|
|
1595
|
-
row[F$
|
|
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$
|
|
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$
|
|
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$
|
|
1797
|
+
if (field === F$9.materialNo) {
|
|
1647
1798
|
applyFillFromMaterialNoOption(rowData, source);
|
|
1648
1799
|
return;
|
|
1649
1800
|
}
|
|
1650
|
-
if (field === F$
|
|
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$
|
|
1699
|
-
const rowBatchId = row[F$
|
|
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$
|
|
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$
|
|
1709
|
-
[F$
|
|
1710
|
-
[F$
|
|
1711
|
-
[F$
|
|
1712
|
-
[F$
|
|
1713
|
-
[F$
|
|
1714
|
-
[F$
|
|
1715
|
-
[F$
|
|
1716
|
-
[F$
|
|
1717
|
-
[F$
|
|
1718
|
-
[F$
|
|
1719
|
-
[F$
|
|
1720
|
-
[F$
|
|
1721
|
-
[F$
|
|
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$
|
|
1877
|
+
row[F$a.validity] = toDateOnly(parsed.expiration);
|
|
1727
1878
|
} else if (validityFromRecord != null) {
|
|
1728
|
-
row[F$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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,
|
|
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
|
|
2668
|
-
const
|
|
2669
|
-
return JSON.stringify(
|
|
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
|
|
2687
|
-
const
|
|
2688
|
-
return JSON.stringify(
|
|
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,
|
|
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,
|
|
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
|
|
3514
|
-
const { type, processed, hashValue } =
|
|
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
|
-
|
|
3990
|
+
aN as AITooltips,
|
|
3743
3991
|
AllocateTableCore,
|
|
3744
3992
|
B3 as BaseFormModelFetcher,
|
|
3745
|
-
|
|
3746
|
-
|
|
3747
|
-
|
|
3993
|
+
aP as BinarizeMethodOptions,
|
|
3994
|
+
b4 as BindCmpStyleEnum,
|
|
3995
|
+
a0 as BooleanShowMode,
|
|
3748
3996
|
B2 as BorderTD,
|
|
3749
3997
|
BpmnNodeTypeEnum,
|
|
3750
|
-
|
|
3751
|
-
|
|
3998
|
+
ct as BpmnSignatureTypeEnum,
|
|
3999
|
+
cu as ButtonTypeEnum,
|
|
3752
4000
|
B as BwipCodeType,
|
|
3753
|
-
|
|
3754
|
-
|
|
3755
|
-
|
|
4001
|
+
cv as CHECK_TABLE_MEDPRO_PROTOCOL_KEY,
|
|
4002
|
+
y as CellType,
|
|
4003
|
+
af as CellWidgetViewState,
|
|
3756
4004
|
CheckDsTypeEnum,
|
|
3757
|
-
|
|
4005
|
+
cw as CodeRunner,
|
|
3758
4006
|
ComponentTypeEnum,
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
|
|
3762
|
-
|
|
3763
|
-
|
|
3764
|
-
|
|
3765
|
-
|
|
3766
|
-
|
|
3767
|
-
|
|
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
|
-
|
|
4017
|
+
aM as DeviceParamsTypeTitle,
|
|
3770
4018
|
DevicePartConsumeTableCore,
|
|
3771
|
-
|
|
3772
|
-
|
|
3773
|
-
|
|
3774
|
-
|
|
3775
|
-
|
|
3776
|
-
|
|
3777
|
-
|
|
3778
|
-
|
|
3779
|
-
|
|
3780
|
-
|
|
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
|
-
|
|
3783
|
-
|
|
4030
|
+
aF as EmptySymbol,
|
|
4031
|
+
a2 as FallbackSignTypeEnum,
|
|
4032
|
+
ae as FieldSysVarDefaultValueEnum,
|
|
3784
4033
|
FillingTypeEnum,
|
|
3785
|
-
|
|
4034
|
+
Q2 as FixedQuickFillModal,
|
|
3786
4035
|
FormAnnotationController,
|
|
3787
4036
|
F as FormModelController,
|
|
3788
4037
|
FormTmplBomController,
|
|
3789
|
-
|
|
4038
|
+
T as FormTmplConfigController,
|
|
3790
4039
|
FormTypeEnum,
|
|
3791
|
-
|
|
4040
|
+
az as ImageDisplayModeEnum,
|
|
3792
4041
|
I as InstanceStatusValues,
|
|
3793
|
-
|
|
3794
|
-
|
|
3795
|
-
|
|
4042
|
+
aR as JoinModelTypeEum,
|
|
4043
|
+
$ as LabelPosition,
|
|
4044
|
+
ai as LineDirection,
|
|
3796
4045
|
L as LineType,
|
|
3797
|
-
|
|
3798
|
-
|
|
3799
|
-
|
|
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
|
-
|
|
4053
|
+
MaterialSubstitutionTableCore,
|
|
4054
|
+
cD as MobileFillTypeEnum,
|
|
3805
4055
|
NCB_PROVIDE,
|
|
3806
|
-
|
|
3807
|
-
|
|
4056
|
+
V as OCR_MODEL_PRECISION_ENUM_KEY,
|
|
4057
|
+
cE as OfficeTypeEnum,
|
|
3808
4058
|
O as Orientation,
|
|
3809
|
-
|
|
4059
|
+
p as PageSizeEnum,
|
|
3810
4060
|
P as PaginationFormat,
|
|
3811
|
-
|
|
3812
|
-
|
|
3813
|
-
|
|
3814
|
-
|
|
4061
|
+
a8 as PaperSizeMap,
|
|
4062
|
+
o as PaperWidgeType,
|
|
4063
|
+
N as PaperWidgeValueType,
|
|
4064
|
+
aQ as ParamModelTypeEnum,
|
|
3815
4065
|
PartStocktakeTableCore,
|
|
3816
4066
|
PlatformEnum,
|
|
3817
|
-
|
|
4067
|
+
cF as PosEnum,
|
|
3818
4068
|
PretreatmentListTableCore,
|
|
3819
4069
|
ProfileDrivenSubTableCore,
|
|
3820
|
-
|
|
3821
|
-
|
|
4070
|
+
ax as RangeCompareOp,
|
|
4071
|
+
aw as RangeValidateMode,
|
|
3822
4072
|
RenderModeEnum,
|
|
3823
|
-
|
|
3824
|
-
|
|
3825
|
-
|
|
3826
|
-
|
|
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
|
-
|
|
3833
|
-
|
|
3834
|
-
|
|
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
|
-
|
|
3840
|
-
|
|
4090
|
+
ah as WidgetImageSizeMode,
|
|
4091
|
+
cH as applyCheckDsDataToRuntime,
|
|
3841
4092
|
e as applyConsumeObjectTraceChange,
|
|
3842
|
-
|
|
4093
|
+
cI as applyMedProCheckDsDataToRuntime,
|
|
3843
4094
|
baseDataUtils,
|
|
3844
|
-
|
|
3845
|
-
|
|
3846
|
-
|
|
4095
|
+
cJ as buildDeviceBaseQuery,
|
|
4096
|
+
bg as buildDeviceFilterQuery,
|
|
4097
|
+
cK as buildFormChangeDisplayRows,
|
|
3847
4098
|
b as buildObjectLotExtraQuery,
|
|
3848
|
-
|
|
4099
|
+
cL as buildStableFieldLocation,
|
|
3849
4100
|
calcFillData,
|
|
3850
4101
|
calcUtils,
|
|
3851
4102
|
clearFormRules,
|
|
3852
4103
|
collectAnnotationItemsByLocation,
|
|
3853
4104
|
collectFormChangeFieldLocations,
|
|
3854
4105
|
commonUtils,
|
|
3855
|
-
|
|
3856
|
-
|
|
4106
|
+
cM as deleteSubtableRow,
|
|
4107
|
+
cN as detailsHaveFormChangeRowOps,
|
|
3857
4108
|
enrichFormChangeRowDetails,
|
|
3858
|
-
|
|
4109
|
+
cO as extractFormChangeRowDetails,
|
|
3859
4110
|
extractKeywordFromQueryData,
|
|
3860
|
-
|
|
3861
|
-
|
|
4111
|
+
cP as fetchCheckDsDataForTable,
|
|
4112
|
+
cQ as fetchCustomCheckDsData,
|
|
3862
4113
|
fetchHistoryConsume,
|
|
3863
|
-
|
|
3864
|
-
|
|
4114
|
+
cR as fetchMedProCheckDsData,
|
|
4115
|
+
h as fetchOperationReceiveQty,
|
|
4116
|
+
f as fetchUdi,
|
|
3865
4117
|
filterAnnotationItemsUpToCurrent,
|
|
3866
|
-
|
|
3867
|
-
|
|
3868
|
-
|
|
3869
|
-
|
|
3870
|
-
|
|
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
|
-
|
|
3873
|
-
|
|
4124
|
+
j as getObjectBomProductQuery,
|
|
4125
|
+
cV as getParseRuleConfig,
|
|
3874
4126
|
getParseRuleInfo,
|
|
3875
4127
|
getParseRuleValue,
|
|
3876
|
-
|
|
3877
|
-
|
|
3878
|
-
|
|
3879
|
-
|
|
3880
|
-
|
|
3881
|
-
|
|
3882
|
-
|
|
3883
|
-
|
|
3884
|
-
|
|
3885
|
-
|
|
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
|
-
|
|
3889
|
-
|
|
3890
|
-
|
|
3891
|
-
|
|
3892
|
-
|
|
3893
|
-
|
|
3894
|
-
|
|
3895
|
-
|
|
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
|
-
|
|
3898
|
-
|
|
3899
|
-
|
|
3900
|
-
|
|
3901
|
-
|
|
3902
|
-
|
|
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
|
-
|
|
4158
|
+
db as relocateDeletedRowsToEnd,
|
|
3905
4159
|
renderUtils,
|
|
3906
4160
|
requestDisplayValidation,
|
|
3907
4161
|
requestFullValidation,
|
|
3908
|
-
|
|
3909
|
-
|
|
3910
|
-
|
|
3911
|
-
|
|
3912
|
-
|
|
3913
|
-
|
|
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
|
-
|
|
4170
|
+
dg as resolveRowFormChangeMark,
|
|
4171
|
+
a12 as resolveUdiQuery,
|
|
3917
4172
|
d as runWithFillProduct,
|
|
3918
|
-
|
|
3919
|
-
|
|
3920
|
-
|
|
4173
|
+
aV as setSelectAnnotationId,
|
|
4174
|
+
dh as setSelectMobileTdId,
|
|
4175
|
+
aU as setSelectValidatorId,
|
|
3921
4176
|
settleAndValidateDisplay,
|
|
3922
|
-
|
|
3923
|
-
|
|
4177
|
+
aS as sqlUtils,
|
|
4178
|
+
di as stockCheck,
|
|
3924
4179
|
transformUtils,
|
|
3925
4180
|
unregisterValidationContext,
|
|
3926
|
-
|
|
3927
|
-
|
|
3928
|
-
|
|
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
|
-
|
|
3936
|
-
|
|
3937
|
-
|
|
4190
|
+
b3 as useNocodeFormWidget,
|
|
4191
|
+
dj as useOnlineFormActionButton,
|
|
4192
|
+
bk as useOnlineFormTransformField2Component,
|
|
3938
4193
|
useRenderPageFactory,
|
|
3939
|
-
|
|
4194
|
+
k as useStyles,
|
|
3940
4195
|
a as useTmplBom,
|
|
3941
|
-
|
|
3942
|
-
|
|
4196
|
+
l as useValidator,
|
|
4197
|
+
aT as useWidgetStaticAttrs,
|
|
3943
4198
|
validate,
|
|
4199
|
+
bj as validateFields,
|
|
3944
4200
|
v as validateObjectBomForScan,
|
|
3945
4201
|
validateObjectBomQtyOnSubmit,
|
|
3946
|
-
|
|
4202
|
+
b2 as validateReinspectionDate
|
|
3947
4203
|
};
|