@gct-paas/excel 0.1.39-beta.9 → 0.1.39
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-Dri2NRAY.js → BaseComponent-vcQYIdIV.js} +2 -2
- package/dist/{VueVideoPlayer-DPJyefX-.js → VueVideoPlayer-i-e8JA1p.js} +2 -2
- package/dist/{align-editor-BvGUsoz3.js → align-editor-BHe6RawU.js} +1 -1
- package/dist/{barcode-design-j7wyssrW.js → barcode-design-B2QebWCm.js} +2 -2
- package/dist/base/index.es.js +624 -264
- package/dist/{diagonal-design-BSZWkw3m.js → diagonal-design-Di8yoq2q.js} +2 -2
- package/dist/{dynamic-table-action-BQfJFJ4j.js → dynamic-table-action-ixEHBudI.js} +1041 -368
- package/dist/{dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-DZRtpBe8.js → dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-CKf2tZG7.js} +1039 -1409
- package/dist/{edit.utils-CXmmCnxE-CvJGxh2v.js → edit.utils-CXmmCnxE-Dq-jFR6z.js} +1 -1
- package/dist/excel.css +568 -369
- package/dist/{exceljs.min-S4WRZ454.js → exceljs.min-Biokosoj.js} +2 -2
- package/dist/{font-editor-DH2EtSpD.js → font-editor-B8l8oZMc.js} +3 -3
- package/dist/{image-design-A8_t4F3t.js → image-design-BI6ld3iT.js} +2 -2
- package/dist/{index-DFNVqlgA.js → index-0QNiqIDD.js} +1 -1
- package/dist/{index-Caygbi4F.js → index-4DBBFAz2.js} +2 -2
- package/dist/{index-DERot0lx.js → index-5-uaHPu2.js} +2 -2
- package/dist/{index-H2nF4SP8.js → index-849t15XD.js} +2 -2
- package/dist/{index-C3k8QiLF.js → index-ACzLWeSq.js} +2 -2
- package/dist/{index-DkwkBWEP.js → index-B-2uV1do.js} +2 -2
- package/dist/{index-bH6ERrWd.js → index-B-in7hrx.js} +2 -2
- package/dist/{index-B-Kwr44d.js → index-B1qdPPcT.js} +1 -1
- package/dist/{index-B_GyS-E2.js → index-B2-4fQY4.js} +1 -1
- package/dist/{index-BMgsVWb2.js → index-BC-WTGht.js} +6 -3
- package/dist/{index-CJdwj04Z.js → index-BWibgLgR.js} +1 -1
- package/dist/{index-DWVhXPb-.js → index-BY-gcezU.js} +2 -2
- package/dist/{index-BLmR9aiG.js → index-B_8k4BAM.js} +1 -1
- package/dist/{index-CTASuQPn.js → index-BaiFrPHF.js} +1 -1
- package/dist/{index-BULBrHtQ.js → index-BgCtUVN4.js} +2 -2
- package/dist/{index-CxQSyBZw.js → index-Boq5CJjh.js} +3 -3
- package/dist/{index-CfGLFrkj.js → index-BwN8dOzz.js} +1 -1
- package/dist/{index-DPNbUuwP.js → index-Bz-WrsTI.js} +6 -5
- package/dist/{index-DnykuPHF.js → index-C4P86Gyr.js} +2 -2
- package/dist/{index-CRloZ0HP.js → index-C68Ddx67.js} +2 -2
- package/dist/{index-afC-rHNa.js → index-CDYkiSAG.js} +2 -2
- package/dist/{index-DN9Y7054.js → index-CKQht60B.js} +6 -5
- package/dist/{index-BUK-p31i.js → index-CM549sqd.js} +3 -2
- package/dist/{index-DmBx27M9.js → index-CNNAdkvj.js} +2 -2
- package/dist/{index-Bs8Xs0bo.js → index-CTmqu_l0.js} +1 -1
- package/dist/{index-DY7Xkd8n.js → index-CbwfhoZc.js} +2 -2
- package/dist/{index-D9444n1O.js → index-CbzO_9_B.js} +2 -2
- package/dist/{index-BE-3UQG0.js → index-CqJMdCBq.js} +50 -3
- package/dist/{index-Bo_31wZD.js → index-DJWuge8D.js} +5 -7
- package/dist/{index-D9OUmbBs.js → index-DdeccRDL.js} +1 -1
- package/dist/{index-Cc6r9LJx.js → index-T4KiEmZK.js} +3 -3
- package/dist/{index-DsLZqLga.js → index-aGBVmmIs.js} +2 -2
- package/dist/{index-DrA9ZgS7.js → index-bLaVMu7L.js} +2442 -1956
- package/dist/{index-DPHGDezJ.js → index-n8fyvJSm.js} +1 -1
- package/dist/{index-D1jXU0ka.js → index-rMox9ntl.js} +2 -2
- package/dist/index.es.js +2 -2
- package/dist/{mb-render-DybPk-KF.js → mb-render-BhZlu6KQ.js} +8 -2
- package/dist/{online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-BEX02BrW.js → online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-1sgb8Alq.js} +8 -1
- package/dist/{pagination-design-0W-jGAyr.js → pagination-design-DvqAcQIp.js} +2 -2
- package/dist/paper-widget-design-D_kqGHiq.js +4 -0
- package/dist/{print-runtime-instance-DcjvavYI.js → print-runtime-instance-CmWFXzPQ.js} +1 -1
- package/dist/{print-snapshot-renderer-CsCyscta.js → print-snapshot-renderer-DsksM5OJ.js} +3 -3
- package/dist/{qrcode-design-bZWGrJtf.js → qrcode-design-CuDgywl1.js} +1 -1
- package/dist/{revo-grid.entry-EvEm_y2W.js → revo-grid.entry-BqAGRHgf.js} +1 -1
- package/dist/{revogr-attribution_7.entry-DgE6PR1L.js → revogr-attribution_7.entry-Dl-LcgkK.js} +3 -3
- package/dist/{revogr-clipboard_3.entry-CNDxeVhF.js → revogr-clipboard_3.entry-CT01IdhF.js} +2 -2
- package/dist/{revogr-data_4.entry-DKwV9DMF.js → revogr-data_4.entry-fH5V7Zgk.js} +2 -2
- package/dist/{revogr-filter-panel.entry-1SAhHHfl.js → revogr-filter-panel.entry-DiC81RU-.js} +1 -1
- package/dist/seal-design-CZ8RLM62.js +4 -0
- package/dist/{serialnumber-design-Cs3B0ZNE.js → serialnumber-design-CVO53aOV.js} +1 -1
- package/dist/shared/index.es.js +23 -21
- package/dist/{single-field-drop-p4d5y85m.js → single-field-drop-B51_f5z6.js} +2 -2
- package/dist/{size-editor-B2TfX4_r.js → size-editor-BeSNExEt.js} +1 -1
- package/dist/src/domain/table/business/material/material-balance/profile/fields.d.ts +2 -0
- package/dist/src/domain/table/business/preprocess/pretreatment-list/profile/field-keys.d.ts +1 -7
- package/dist/src/domain/table/business/sterilize/entrust-steril-batch-list/profile/fields.d.ts +2 -0
- package/dist/src/nocode-base/src/core/factory/sub-table-factory.d.ts +2 -0
- package/dist/src/nocode-base/src/core/sub-table/allocate-table-core.d.ts +2 -1
- package/dist/src/nocode-base/src/core/sub-table/sub-table-core.d.ts +2 -1
- package/dist/src/nocode-base/src/hooks/form-model/form-model-controller.d.ts +2 -0
- package/dist/src/nocode-base/src/hooks/material-consume/bom-validator.d.ts +9 -7
- package/dist/src/nocode-base/src/hooks/material-consume/material-consume-table-controller.d.ts +18 -14
- package/dist/src/nocode-base/src/hooks/material-consume/tmpl-bom-controller.d.ts +20 -7
- package/dist/src/nocode-base/src/hooks/material-consume/types.d.ts +6 -0
- package/dist/src/nocode-base/src/hooks/material-consume-object/bom-validator.d.ts +4 -3
- package/dist/src/nocode-base/src/hooks/material-consume-object/initialize-autofill.d.ts +19 -0
- package/dist/src/nocode-base/src/hooks/material-consume-object/object-validation-controller.d.ts +24 -0
- package/dist/src/nocode-base/src/interface/render.d.ts +3 -1
- package/dist/src/nocode-base/src/interface/transform.d.ts +14 -1
- package/dist/src/nocode-base/src/runtime/formula-utils.d.ts +2 -0
- package/dist/src/nocode-base/src/runtime/multi-sheet-runtime.d.ts +3 -1
- package/dist/src/nocode-base/src/runtime/runtime-context.d.ts +4 -0
- package/dist/src/nocode-base/src/runtime/runtime-form-state-store.d.ts +6 -2
- package/dist/src/nocode-base/src/runtime/table-row-identity.d.ts +2 -0
- package/dist/src/nocode-base/src/types/render/sub-table-render.d.ts +5 -1
- package/dist/src/nocode-web-render/src/render/sub-table/common/inventory-scan-columns.d.ts +6 -0
- package/dist/src/online-form/src/views/__cell_widgets__/cell-widget-design.vue.d.ts +2 -0
- package/dist/src/online-form/src/views/__cell_widgets__/common/display-fields-editor/display-fields.util.d.ts +2 -2
- package/dist/src/online-form/src/views/__cell_widgets__/common/quick-search-editor/quick-search.util.d.ts +8 -0
- package/dist/src/online-form/src/views/__cell_widgets__/fake-field/fake-option-select.vue.d.ts +1 -0
- package/dist/src/online-form/src/views/designer/conversions/normalize-paper-grid.d.ts +3 -0
- package/dist/src/online-form/src/views/designer/hooks/useAllSpreadSheets.d.ts +35 -0
- package/dist/src/online-form/src/views/designer/hooks/useSpreadSheet.d.ts +16 -1
- package/dist/src/online-form/src/views/designer/modules/base/designer-wrapper.vue.d.ts +1 -0
- package/dist/src/online-form/src/views/designer/modules/duplicate-field-notice.vue.d.ts +2 -0
- package/dist/src/online-form/src/views/designer/modules/panel/panel-data-init-config/object-init/hooks/useObjectInit.d.ts +2 -0
- package/dist/src/online-form/src/views/designer/modules/panel/sub-table/comps/use-dynamic-sub-table-panel.d.ts +12 -0
- package/dist/src/online-form/src/views/designer/modules/xlsx-import-summary.vue.d.ts +11 -0
- package/dist/src/online-form/src/views/designer/types/index.d.ts +2 -0
- package/dist/src/online-form/src/views/designer/types/sheets.d.ts +2 -0
- package/dist/src/online-form/src/views/designer/utils/cell-field-placements.d.ts +12 -0
- package/dist/src/online-form/src/views/designer/utils/xlsx-parser.d.ts +9 -3
- package/dist/src/online-form/src/views/render/__components__/_field_/trace/composables/useReferenceLabel.d.ts +4 -0
- package/dist/src/online-form/src/views/render/__components__/_field_/trace/utils/use-rule-props.d.ts +0 -3
- package/dist/src/shared/enum/field-type.d.ts +2 -0
- package/dist/src/shared/enum/index.d.ts +2 -0
- package/dist/src/shared/enum/product-type.d.ts +9 -0
- package/dist/src/shared/enum/production-identification.d.ts +19 -0
- package/dist/src/shared/utils/cell-wrap.d.ts +9 -0
- package/dist/src/shared/utils/grid-size.d.ts +2 -0
- package/dist/src/shared/utils/lot2sn.d.ts +14 -1
- package/dist/src/shared/utils/query-filter.d.ts +24 -0
- package/dist/{sub-table-factory-CNkIUJTC.js → sub-table-factory-sC8iCJWs.js} +38 -18
- package/dist/{text-design-CQh0wCUf.js → text-design-DK_QWoro.js} +5 -4
- package/dist/{throttle-Cpk1LoGk-Ch-cqj2G.js → throttle-Cpk1LoGk-BreMfOwP.js} +1 -1
- package/dist/{timediff-design-DASqeRcJ.js → timediff-design-Iwg0BNOb.js} +1 -1
- package/dist/{trace-like-wrapper-WHxVTEDg.js → trace-like-wrapper-D0pPaeII.js} +5 -2
- package/dist/{value-editor.vue_vue_type_style_index_0_lang-DpD-eicm.js → value-editor.vue_vue_type_style_index_0_lang-B4gIt1fw.js} +2 -2
- package/dist/web-render/index.es.js +3 -3
- package/dist/{widget-barcode-Bbxna1MX.js → widget-barcode-DSBywfHB.js} +4 -4
- package/dist/{widget-diagonal-Zm6RJ-dJ.js → widget-diagonal-DiBbiuEA.js} +3 -3
- package/dist/{widget-image-CnSS8iu3.js → widget-image-DUtfyekO.js} +5 -5
- package/dist/{widget-line-DLOrL-Ko.js → widget-line-6Ngl_4mJ.js} +2 -2
- package/dist/{widget-pagination-m6JH4QqC.js → widget-pagination-DXmnbvtx.js} +5 -5
- package/dist/{widget-power-Bavhllni.js → widget-power-DbsY-uwC.js} +3 -3
- package/dist/{widget-qrcode-DLXRIwk7.js → widget-qrcode-LsBgDKds.js} +3 -3
- package/dist/{widget-rangelimit-Cd-qdFTp.js → widget-rangelimit-DJ_5u-vA.js} +3 -3
- package/dist/{widget-serialnumber-CL8cIWsV.js → widget-serialnumber-TEVkPcgx.js} +1 -1
- package/dist/{widget-text-B-IJP4xb.js → widget-text-DD-xuVwh.js} +5 -5
- package/dist/{widget-timediff-CSd24naC.js → widget-timediff-DQV78xgH.js} +2 -2
- package/package.json +2 -2
- package/dist/paper-widget-design-DFXzTgYk.js +0 -4
- package/dist/seal-design-RaHNhk4V.js +0 -4
package/dist/base/index.es.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { E as api,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { B as B2,
|
|
1
|
+
import { E as api, _ as PlatformEnum, F as FIELD_TYPE, bc as getRowId, bd as findRuntimeTableRow, b5 as RenderModeEnum, C as ComponentTypeEnum, aF as Dependency_ENUM, aE as ASSIGNMENTSTRATEGY_ENUM, bn as fetchHistoryConsume, bo as isBomGranted, aT as renderUtils, bm as uuid2, bp as parseFrontConfig, aI as CheckDsTypeEnum, aC as transformUtils, bq as baseDataUtils, X as FormTypeEnum, br as normalizeToArray, bs as safeParseArray, bt as BpmnNodeTypeEnum, bu as mergeByMultiKey, a7 as _export_sfc, bv as evaluateInspectionDecisionRule, bw as useNocodeEmitter, bx as commonUtils, aG as EntityModelCategoryEnum } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-CKf2tZG7.js";
|
|
2
|
+
import { aL, aN, a_, a0, by, bz, B, bA, y, af, bB, bC, bD, bb, bE, aQ, av, aM, aJ, aK, bF, ag, ak, bG, bH, aD, a2, ae, aw, aO, $, ai, L, bI, bJ, bK, O, p, P, a9, o, Q, A, bL, bM, au, at, a5, a1, a3, a4, a6, f, bN, aj, an, ah, bO, bP, bQ, bR, ba, bS, bT, bU, bV, bW, bX, bY, bZ, b_, b$, be, c0, c1, aW, c2, a$, b0, c3, c4, c5, c6, c7, c8, c9, ca, cb, cc, aV, cd, b1, b8, ce, cf, al, t, cg, aP, ch, ci, bf, aX } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-CKf2tZG7.js";
|
|
3
|
+
import { a2 as getRuntimeDataFieldId, O as parseRuntimeFieldPath, a3 as buildRuntimeFieldPath, a4 as resolveRuntimeFieldProps, a5 as resolveRuntimeFieldState, a6 as assembleRules, a7 as isAttachFieldActive, P as calculateFormula, a8 as getRuntimeDependencyOutputKey, a9 as isRowAddedInCurrentFormChange, aa as resolveFormulaData, c as getParseFormulaVarInfos, w as MaterialConsumptionPatternEnum, ab as MaterialConsumeTableController, ac as setFormulaParamsConfig, ad as normalizeRuntime, V as createRuntimeInstanceContext, ae as initializeSealFields, U as RuntimeFormStateStore, af as RuntimeSheetService, g as getBusinessFieldKey, ag as validateObjectBomQtyOnSubmit, ah as areValidationCommentsEqual, ai as closeValidatorPopovers, aj as enrichFormChangeRowDetails, N as NCB_PROVIDE, W as RuntimeInstanceRegistry, ak as useMaterialBalance, al as collectFormChangeFieldLocations, am as nextFormChangeRowViewHistoryId } from "../dynamic-table-action-ixEHBudI.js";
|
|
4
|
+
import { B as B2, an as an2, k, a1 as a12, ao, $ as $2, ap, a0 as a02, F, aq, ar, as, at as at2, au as au2, M, a, av as av2, b, aw as aw2, ax, ay, az, aA, aB, aC, aD as aD2, C, aE, t as t2, aF, d, aG, aH, aI, aJ as aJ2, r, E, aK as aK2, aL as aL2, aM as aM2, aN as aN2, l, G, j, aO as aO2, aP as aP2, aQ as aQ2, aR, aS, aT, aU, y as y2, v, aV as aV2, z, p as p2, aW as aW2, s, aX as aX2, R, S, u, A as A2, T, o as o2, q, Q as Q2, m, x } from "../dynamic-table-action-ixEHBudI.js";
|
|
5
5
|
import { toRaw, watch, toRef, computed, defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, ref, provide, onUnmounted, markRaw, reactive, onBeforeUnmount } from "vue";
|
|
6
|
-
import { cloneDeep, defaults, isEmpty, merge } from "lodash-es";
|
|
6
|
+
import { isEqual, cloneDeep, defaults, isEmpty, merge } from "lodash-es";
|
|
7
7
|
import "dayjs";
|
|
8
|
-
import { S as SubTableCoreFactory, R as RuntimeInstanceController } from "../sub-table-factory-
|
|
9
|
-
import { A as A3, D, M as M2, a as
|
|
10
|
-
import { B as B3, F as F2, M as M3, a as
|
|
8
|
+
import { S as SubTableCoreFactory, R as RuntimeInstanceController } from "../sub-table-factory-sC8iCJWs.js";
|
|
9
|
+
import { A as A3, D, M as M2, a as a7, P as P2, b as b2, c, d as d2, e, W, f as f2, g, h } from "../sub-table-factory-sC8iCJWs.js";
|
|
10
|
+
import { B as B3, F as F2, M as M3, a as a8, u as u2 } from "../mb-render-BhZlu6KQ.js";
|
|
11
11
|
const InstanceStatusValues = {
|
|
12
12
|
/** 作废状态 */
|
|
13
13
|
ABANDON: "ABANDON",
|
|
@@ -385,7 +385,7 @@ function getSourceFields(record, expression, currentSubtable) {
|
|
|
385
385
|
});
|
|
386
386
|
}
|
|
387
387
|
function isEmptyValue(value) {
|
|
388
|
-
return value === void 0 || value === null || value === "";
|
|
388
|
+
return value === void 0 || value === null || typeof value === "string" && value.trim() === "" || Array.isArray(value) && value.length === 0;
|
|
389
389
|
}
|
|
390
390
|
function getRulePaths(record, props, targetFieldId, modelKey, scopeFieldId = targetFieldId) {
|
|
391
391
|
const subtableField = props.subFieldKey;
|
|
@@ -691,13 +691,30 @@ class RuntimeRuleCompiler {
|
|
|
691
691
|
const expression = assignment?.expression || props.formulaExpr;
|
|
692
692
|
if (!expression || !targetFieldId) return;
|
|
693
693
|
const strategy = assignment?.strategy ?? ASSIGNMENTSTRATEGY_ENUM.alwaysCover;
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
694
|
+
let assignmentStates = /* @__PURE__ */ new WeakMap();
|
|
695
|
+
const readInputs = (target) => cloneDeep(resolveFormulaData(expression, target.row, formState.state));
|
|
696
|
+
const rememberTarget = (target, inputs) => {
|
|
697
|
+
const row = props.isFieldModel ? target.row._OPCT : target.row;
|
|
698
|
+
const path = formState.getFieldPath(row ?? target.row, targetFieldId);
|
|
699
|
+
assignmentStates.set(toRaw(target.row), { inputs, path });
|
|
700
|
+
if (strategy === ASSIGNMENTSTRATEGY_ENUM.notCoveredForever && !isEmptyValue(row?.[targetFieldId]))
|
|
699
701
|
formState.markUserModified(path);
|
|
700
|
-
|
|
702
|
+
};
|
|
703
|
+
const resetAssignmentState = () => {
|
|
704
|
+
assignmentStates = /* @__PURE__ */ new WeakMap();
|
|
705
|
+
listRuntimeFieldRows(this.record, subFieldKey, scopeFieldId).forEach(
|
|
706
|
+
(target) => rememberTarget(target, readInputs(target))
|
|
707
|
+
);
|
|
708
|
+
};
|
|
709
|
+
if (!isLegacyFormula) {
|
|
710
|
+
resetAssignmentState();
|
|
711
|
+
this.unregisters.push(
|
|
712
|
+
formState.subscribe((change) => {
|
|
713
|
+
if (change.source !== "restore" || change.restoreScope === "fields" || change.paths.every((path) => path.endsWith("_lb_")))
|
|
714
|
+
return;
|
|
715
|
+
resetAssignmentState();
|
|
716
|
+
})
|
|
717
|
+
);
|
|
701
718
|
}
|
|
702
719
|
this.unregisters.push(
|
|
703
720
|
dependencies.register({
|
|
@@ -706,20 +723,42 @@ class RuntimeRuleCompiler {
|
|
|
706
723
|
sheetId,
|
|
707
724
|
sourceFields: getSourceFields(this.record, expression, subFieldKey),
|
|
708
725
|
structureFields,
|
|
709
|
-
run: async (
|
|
726
|
+
run: async (_change, execution) => {
|
|
710
727
|
if (this.disposed) return;
|
|
711
|
-
if (!isLegacyFormula && change.revision === 0 && change.source === "system") return;
|
|
712
728
|
if (!this.canWriteFormulas()) return;
|
|
713
729
|
const results = await Promise.all(
|
|
714
730
|
listRuntimeFieldRows(this.record, subFieldKey, scopeFieldId).map(async (target) => {
|
|
715
731
|
const row = this.getWritableRow(target.row, props);
|
|
716
732
|
const path = formState.getFieldPath(row, targetFieldId);
|
|
717
|
-
|
|
733
|
+
const inputs = isLegacyFormula ? void 0 : readInputs(target);
|
|
734
|
+
const previous = assignmentStates.get(toRaw(target.row));
|
|
735
|
+
if (!isLegacyFormula) {
|
|
736
|
+
if (!previous) rememberTarget(target);
|
|
737
|
+
else if (previous.path !== path && formState.isUserModified(previous.path)) {
|
|
738
|
+
formState.markUserModified(path);
|
|
739
|
+
formState.clearUserModified(previous.path);
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
if (!isLegacyFormula && strategy !== ASSIGNMENTSTRATEGY_ENUM.alwaysCover && formState.isUserModified(path)) {
|
|
743
|
+
assignmentStates.set(toRaw(target.row), { inputs, path });
|
|
718
744
|
return;
|
|
719
|
-
|
|
720
|
-
|
|
745
|
+
}
|
|
746
|
+
if (!isLegacyFormula && previous?.inputs && !previous.pending && isEqual(previous.inputs, inputs))
|
|
747
|
+
return;
|
|
748
|
+
if (!isLegacyFormula)
|
|
749
|
+
assignmentStates.set(toRaw(target.row), {
|
|
750
|
+
inputs: previous?.inputs,
|
|
751
|
+
path,
|
|
752
|
+
pending: true
|
|
753
|
+
});
|
|
754
|
+
const result = await calculateFormula(
|
|
755
|
+
expression,
|
|
756
|
+
isLegacyFormula ? row : target.row,
|
|
757
|
+
formState.state
|
|
758
|
+
);
|
|
759
|
+
const empty = isEmptyValue(result);
|
|
721
760
|
const value = isLegacyFormula ? empty ? null : Number(result) : formatDateCompliance(result, props.newSpecificConfig?.mappingType);
|
|
722
|
-
return { target, row, path, value };
|
|
761
|
+
return { target, row, path, value, inputs };
|
|
723
762
|
})
|
|
724
763
|
);
|
|
725
764
|
if (!this.canWriteFormulas() || !execution.isCurrent()) return;
|
|
@@ -727,7 +766,9 @@ class RuntimeRuleCompiler {
|
|
|
727
766
|
"formula",
|
|
728
767
|
() => results.forEach((result) => {
|
|
729
768
|
if (!result) return;
|
|
730
|
-
const { target, row, path, value } = result;
|
|
769
|
+
const { target, row, path, value, inputs } = result;
|
|
770
|
+
if (!isLegacyFormula)
|
|
771
|
+
assignmentStates.set(toRaw(target.row), { inputs, path });
|
|
731
772
|
if (!isLegacyFormula && strategy !== ASSIGNMENTSTRATEGY_ENUM.alwaysCover && formState.isUserModified(path))
|
|
732
773
|
return;
|
|
733
774
|
if (Object.is(row[targetFieldId], value)) return;
|
|
@@ -745,7 +786,12 @@ class RuntimeRuleCompiler {
|
|
|
745
786
|
}
|
|
746
787
|
getWritableRow(row, props) {
|
|
747
788
|
if (!props.isFieldModel) return row;
|
|
748
|
-
if (!row._OPCT)
|
|
789
|
+
if (!row._OPCT)
|
|
790
|
+
this.record.formState.transaction(
|
|
791
|
+
"restore",
|
|
792
|
+
() => this.record.formState.setObjectField(row, "_OPCT", { _DICT: {} }, "restore"),
|
|
793
|
+
{ restoreScope: "fields" }
|
|
794
|
+
);
|
|
749
795
|
return row._OPCT;
|
|
750
796
|
}
|
|
751
797
|
/** 公式变更记录也属于实例生命周期,未打开的 Sheet 不再漏记。 */
|
|
@@ -806,6 +852,10 @@ class FormTmplBomController {
|
|
|
806
852
|
field2TableMap = {};
|
|
807
853
|
/** 默认物料消耗模式 */
|
|
808
854
|
defaultMCPattern = MaterialConsumptionPatternEnum.RECORD;
|
|
855
|
+
/** 表单实例身份与 BOM 数据是否存在无关,模板展示也会创建完整控制器。 */
|
|
856
|
+
hasFormInstance = false;
|
|
857
|
+
/** 按页面中的表解析后的配置,页面与打印共用。 */
|
|
858
|
+
resolvedTmplBomList = [];
|
|
809
859
|
constructor() {
|
|
810
860
|
}
|
|
811
861
|
/**
|
|
@@ -823,7 +873,9 @@ class FormTmplBomController {
|
|
|
823
873
|
productQty: this.productQty,
|
|
824
874
|
historyData: this.historyData,
|
|
825
875
|
field2TableMap: this.field2TableMap,
|
|
826
|
-
defaultMCPattern: this.defaultMCPattern
|
|
876
|
+
defaultMCPattern: this.defaultMCPattern,
|
|
877
|
+
hasFormInstance: this.hasFormInstance,
|
|
878
|
+
resolvedTmplBomList: this.resolvedTmplBomList
|
|
827
879
|
})
|
|
828
880
|
);
|
|
829
881
|
(view.tmplBomList ?? []).forEach((config) => {
|
|
@@ -875,11 +927,11 @@ class FormTmplBomController {
|
|
|
875
927
|
* @readonly
|
|
876
928
|
*/
|
|
877
929
|
get bomEntries() {
|
|
878
|
-
return this.formInstBom?.bomEntries;
|
|
930
|
+
return this.formInstBom?.bomEntries ?? [];
|
|
879
931
|
}
|
|
880
932
|
/** 表单模板bom信息配置列表 */
|
|
881
933
|
get tmplBomList() {
|
|
882
|
-
return this.
|
|
934
|
+
return this.resolvedTmplBomList;
|
|
883
935
|
}
|
|
884
936
|
/**
|
|
885
937
|
* bom那边指定的当前工序的开关
|
|
@@ -888,30 +940,55 @@ class FormTmplBomController {
|
|
|
888
940
|
get enableSequenceLoading() {
|
|
889
941
|
return !!this.formInstBom?.sequenceEntries?.[0]?.enabled_;
|
|
890
942
|
}
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
943
|
+
createDefaultConfig(table) {
|
|
944
|
+
return {
|
|
945
|
+
table_key_: `${table.tableKey}:${table.masterSubField}`,
|
|
946
|
+
material_loading_model_enabled_: false,
|
|
947
|
+
material_consumption_pattern_: MaterialConsumptionPatternEnum.RECORD,
|
|
948
|
+
bom_init_enabled_: false,
|
|
949
|
+
personal_bom_enabled_: false,
|
|
950
|
+
sequence_loading_enabled_: false,
|
|
951
|
+
entries_: []
|
|
952
|
+
};
|
|
953
|
+
}
|
|
954
|
+
/** 有实例时读取实例配置,无实例时仅创建默认展示控制器。 */
|
|
894
955
|
async init(data) {
|
|
895
|
-
|
|
896
|
-
|
|
956
|
+
this.hasFormInstance = data.hasFormInstance;
|
|
957
|
+
this.operationId = data.operationId ?? "";
|
|
958
|
+
this.materialNo = data.materialNo ?? "";
|
|
959
|
+
this.formInstBom = this.hasFormInstance ? data.formInstBom ?? null : null;
|
|
960
|
+
this.productQty = this.formInstBom ? data.productQty ?? 0 : data.productQty;
|
|
961
|
+
this.historyData = [];
|
|
962
|
+
this.defaultMCPattern = MaterialConsumptionPatternEnum.RECORD;
|
|
963
|
+
this.tableControllers = {};
|
|
964
|
+
this.field2TableMap = {};
|
|
965
|
+
const instanceConfigs = new Map(
|
|
966
|
+
(this.formInstBom?.formTmplBomList ?? []).filter((config) => !config.deleted_ && config.table_key_).map((config) => [config.table_key_, config])
|
|
967
|
+
);
|
|
968
|
+
this.resolvedTmplBomList = data.materialConsumeTableList.map((table) => {
|
|
969
|
+
const key = `${table.tableKey}:${table.masterSubField}`;
|
|
970
|
+
const source = instanceConfigs.get(key);
|
|
971
|
+
if (!source) return this.createDefaultConfig(table);
|
|
972
|
+
const config = cloneDeep(source);
|
|
973
|
+
config.entries_ ??= [];
|
|
974
|
+
return config;
|
|
975
|
+
});
|
|
976
|
+
if (this.formInstBom) {
|
|
977
|
+
if (this.formInstBom.productionIdentificationId && this.operationId) {
|
|
978
|
+
this.historyData = await fetchHistoryConsume({
|
|
979
|
+
production_identification_id_: this.formInstBom.productionIdentificationId,
|
|
980
|
+
routing_operation_id_: this.operationId
|
|
981
|
+
});
|
|
982
|
+
}
|
|
983
|
+
const isGranted = await isBomGranted();
|
|
984
|
+
this.defaultMCPattern = isGranted ? MaterialConsumptionPatternEnum.BOM : MaterialConsumptionPatternEnum.RECORD;
|
|
897
985
|
}
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
production_identification_id_: this.formInstBom.productionIdentificationId,
|
|
904
|
-
routing_operation_id_: this.operationId
|
|
986
|
+
data.materialConsumeTableList.forEach((table, index) => {
|
|
987
|
+
const config = this.resolvedTmplBomList[index];
|
|
988
|
+
const controller = new MaterialConsumeTableController(this, config);
|
|
989
|
+
this.tableControllers[table.tableKey] = controller;
|
|
990
|
+
this.field2TableMap[table.masterSubField] = table.tableKey;
|
|
905
991
|
});
|
|
906
|
-
const isGranted = await isBomGranted();
|
|
907
|
-
this.defaultMCPattern = isGranted ? MaterialConsumptionPatternEnum.BOM : MaterialConsumptionPatternEnum.RECORD;
|
|
908
|
-
this.tableControllers = {};
|
|
909
|
-
this.tmplBomList.forEach((cur) => {
|
|
910
|
-
const controller = new MaterialConsumeTableController(this, cur);
|
|
911
|
-
const [tableKey, fieldKey] = cur.table_key_.split(":");
|
|
912
|
-
this.tableControllers[tableKey] = controller;
|
|
913
|
-
this.field2TableMap[fieldKey] = tableKey;
|
|
914
|
-
}, {});
|
|
915
992
|
}
|
|
916
993
|
/**
|
|
917
994
|
* 根据字段key获取子表控制器
|
|
@@ -956,9 +1033,31 @@ class FormTmplBomController {
|
|
|
956
1033
|
});
|
|
957
1034
|
});
|
|
958
1035
|
}
|
|
1036
|
+
/** 全部 Sheet 的消耗表统一在 LOADED 前准备。 */
|
|
1037
|
+
initializeFormState(opts) {
|
|
1038
|
+
Object.entries(this.field2TableMap).forEach(([field, tableKey]) => {
|
|
1039
|
+
const controller = this.tableControllers[tableKey];
|
|
1040
|
+
if (!controller) return;
|
|
1041
|
+
controller.prepareInitialData({
|
|
1042
|
+
formState: opts.formState,
|
|
1043
|
+
field,
|
|
1044
|
+
dataStatus: opts.dataStatus,
|
|
1045
|
+
defaultRowData: renderUtils.getDefaultValueInfo({
|
|
1046
|
+
defaultDataMap: opts.defaultDataMap,
|
|
1047
|
+
key: field
|
|
1048
|
+
})
|
|
1049
|
+
});
|
|
1050
|
+
});
|
|
1051
|
+
}
|
|
1052
|
+
/** 钩子若修改数量依赖,在创建 Store 和分页前按原规则重算。 */
|
|
1053
|
+
finalizeInitialQuantities() {
|
|
1054
|
+
Object.values(this.tableControllers).forEach((controller) => {
|
|
1055
|
+
controller.syncQtyRequiredFromBomIfChanged();
|
|
1056
|
+
});
|
|
1057
|
+
}
|
|
959
1058
|
async submitValidate() {
|
|
960
1059
|
const results = await Promise.all(
|
|
961
|
-
Object.values(this.tableControllers).map((
|
|
1060
|
+
Object.values(this.tableControllers).map((c10) => c10.submitValidate())
|
|
962
1061
|
);
|
|
963
1062
|
const fields = {};
|
|
964
1063
|
let isValid = true;
|
|
@@ -972,6 +1071,79 @@ class FormTmplBomController {
|
|
|
972
1071
|
};
|
|
973
1072
|
}
|
|
974
1073
|
}
|
|
1074
|
+
async function prepareObjectProductDefaults({
|
|
1075
|
+
enabled,
|
|
1076
|
+
fields,
|
|
1077
|
+
objectInitialValues = [],
|
|
1078
|
+
onWarning
|
|
1079
|
+
}) {
|
|
1080
|
+
const defaults2 = /* @__PURE__ */ new WeakMap();
|
|
1081
|
+
if (!enabled) return defaults2;
|
|
1082
|
+
const requests = /* @__PURE__ */ new Map();
|
|
1083
|
+
const tasks = [];
|
|
1084
|
+
function fetchProduct(productId) {
|
|
1085
|
+
const existing = requests.get(productId);
|
|
1086
|
+
if (existing) return existing;
|
|
1087
|
+
const request = (async () => {
|
|
1088
|
+
const result = await api.apaas.modelComprehensive.getBizServiceModelCategoryModelKeyBsKey(
|
|
1089
|
+
{
|
|
1090
|
+
modelCategory: "entity",
|
|
1091
|
+
modelKey: "em_product",
|
|
1092
|
+
bsKey: "rdoGetVersionById"
|
|
1093
|
+
},
|
|
1094
|
+
// 沿用现有接口约定,传完整默认值,不拆分版本 ID。
|
|
1095
|
+
{ id: productId }
|
|
1096
|
+
);
|
|
1097
|
+
const product = result?.data;
|
|
1098
|
+
if (!product || typeof product !== "object" || Array.isArray(product) || Object.keys(product).length === 0) {
|
|
1099
|
+
return void 0;
|
|
1100
|
+
}
|
|
1101
|
+
return { ...product, _DICT: result?.dict ?? product._DICT };
|
|
1102
|
+
})();
|
|
1103
|
+
requests.set(productId, request);
|
|
1104
|
+
return request;
|
|
1105
|
+
}
|
|
1106
|
+
for (const entry of fields) {
|
|
1107
|
+
if (!entry || typeof entry !== "object") continue;
|
|
1108
|
+
const field = entry;
|
|
1109
|
+
if (typeof field.fieldId !== "string" || !field.belongingObject || field.fieldType !== FIELD_TYPE.PRODUCT || field.isFieldModel || field.subFieldKey || field.subModelKey) {
|
|
1110
|
+
continue;
|
|
1111
|
+
}
|
|
1112
|
+
const configured = objectInitialValues.find(
|
|
1113
|
+
(item) => item.objectField === field.belongingObject
|
|
1114
|
+
);
|
|
1115
|
+
if (!configured?.values || !Object.prototype.hasOwnProperty.call(configured.values, field.fieldId)) {
|
|
1116
|
+
continue;
|
|
1117
|
+
}
|
|
1118
|
+
const productDefault = {
|
|
1119
|
+
value: configured.values[field.fieldId]
|
|
1120
|
+
};
|
|
1121
|
+
defaults2.set(entry, productDefault);
|
|
1122
|
+
const productId = productDefault.value;
|
|
1123
|
+
const needsAutofill = field.enableAutofill !== false && field.autofillRules?.some((rule) => !!rule.toField);
|
|
1124
|
+
if (!needsAutofill || typeof productId !== "string" || productId === "") continue;
|
|
1125
|
+
tasks.push(
|
|
1126
|
+
fetchProduct(productId).then(
|
|
1127
|
+
(sourceData) => {
|
|
1128
|
+
if (!sourceData) {
|
|
1129
|
+
const objectName = configured.objectFieldName || field.belongingObject;
|
|
1130
|
+
onWarning?.(
|
|
1131
|
+
`「数据 → 对象初始化 → ${objectName} → 配置」中的默认物料未查到详情(字段 ${field.fieldId},物料 ${productId}),已跳过自动填充。`
|
|
1132
|
+
);
|
|
1133
|
+
return;
|
|
1134
|
+
}
|
|
1135
|
+
productDefault.sourceData = sourceData;
|
|
1136
|
+
},
|
|
1137
|
+
(error) => {
|
|
1138
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
1139
|
+
throw new Error(`对象初始化数据填充失败,字段 ${field.fieldId}:${reason}`);
|
|
1140
|
+
}
|
|
1141
|
+
)
|
|
1142
|
+
);
|
|
1143
|
+
}
|
|
1144
|
+
await Promise.all(tasks);
|
|
1145
|
+
return defaults2;
|
|
1146
|
+
}
|
|
975
1147
|
async function getModelQueries(opts) {
|
|
976
1148
|
const isEdhr = await isEdhrSuite();
|
|
977
1149
|
if (!isEdhr || !opts.mainMaterialNo) {
|
|
@@ -1116,13 +1288,14 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
|
|
|
1116
1288
|
let runtimeFormStateStore;
|
|
1117
1289
|
let scriptRunner;
|
|
1118
1290
|
try {
|
|
1119
|
-
const normalizedRuntime = normalizeRuntime(selfInfo?.runtimeJson || "{}");
|
|
1291
|
+
const normalizedRuntime = normalizeRuntime(selfInfo?.runtimeJson || "{}", selfInfo.formType);
|
|
1120
1292
|
const tid = result.tid;
|
|
1121
1293
|
const uniqueId = `${tid}_${uuid2(8)}`;
|
|
1122
1294
|
const runtimeContext = createRuntimeInstanceContext({
|
|
1123
1295
|
uniqueId,
|
|
1124
1296
|
instanceId: id,
|
|
1125
1297
|
templateId: tid,
|
|
1298
|
+
formType: selfInfo.formType,
|
|
1126
1299
|
runtime: normalizedRuntime,
|
|
1127
1300
|
defaultData: {}
|
|
1128
1301
|
});
|
|
@@ -1264,6 +1437,8 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
|
|
|
1264
1437
|
}
|
|
1265
1438
|
await tmplBomC.init({
|
|
1266
1439
|
formInstBom: selfInfo.formInstBom,
|
|
1440
|
+
materialConsumeTableList: businessIndex.materialConsumeTableList,
|
|
1441
|
+
hasFormInstance: isFormInstance,
|
|
1267
1442
|
operationId: paramsConfig?.routingOperationId,
|
|
1268
1443
|
materialNo,
|
|
1269
1444
|
productQty: paramsConfig?.productQty
|
|
@@ -1335,7 +1510,16 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
|
|
|
1335
1510
|
params: { id: paramsConfig?.warehouseId }
|
|
1336
1511
|
}
|
|
1337
1512
|
]);
|
|
1513
|
+
const objectProductDefaults = await prepareObjectProductDefaults({
|
|
1514
|
+
enabled: fillModeType === RenderModeEnum.FormMode && selfInfo.dataStatus !== "STASH" && selfInfo.dataStatus !== "SUBMIT",
|
|
1515
|
+
fields: fieldInfoMap.useDefaultValueFields,
|
|
1516
|
+
objectInitialValues: runtimeContext.formConfig.objectInitialValues,
|
|
1517
|
+
onWarning: (content) => {
|
|
1518
|
+
window.NocodeAdapter.openUtil?.message({ type: "warning", content, duration: 8 });
|
|
1519
|
+
}
|
|
1520
|
+
});
|
|
1338
1521
|
const defaultDataMap = renderUtils.getDefaultValueMapByField({
|
|
1522
|
+
objectProductDefaults,
|
|
1339
1523
|
defaultValueFields: fieldInfoMap.useDefaultValueFields,
|
|
1340
1524
|
mainMaterialNo: paramsConfig?.materialNo || selfInfo.materialNo,
|
|
1341
1525
|
mainRelatedLotNo: paramsConfig?.relatedLotNo,
|
|
@@ -1425,6 +1609,21 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
|
|
|
1425
1609
|
});
|
|
1426
1610
|
initializeSealFields(floatingFields, formState);
|
|
1427
1611
|
}
|
|
1612
|
+
tmplBomC.initializeFormState({
|
|
1613
|
+
formState,
|
|
1614
|
+
dataStatus: selfInfo.dataStatus,
|
|
1615
|
+
defaultDataMap
|
|
1616
|
+
});
|
|
1617
|
+
await transformUtils.getEventInitDataLoaded({
|
|
1618
|
+
formConfig: runtimeContext.formConfig,
|
|
1619
|
+
formState,
|
|
1620
|
+
viewMode: fillModeType,
|
|
1621
|
+
dataStatus: selfInfo.dataStatus,
|
|
1622
|
+
ofCtx: { formPrint: payload.formPrint, id: result.id }
|
|
1623
|
+
}).catch((error) => {
|
|
1624
|
+
console.error("Error in getEventInitDataLoaded:", error);
|
|
1625
|
+
});
|
|
1626
|
+
tmplBomC.finalizeInitialQuantities();
|
|
1428
1627
|
runtimeFormStateStore = new RuntimeFormStateStore(
|
|
1429
1628
|
formState,
|
|
1430
1629
|
// 子表信息覆盖普通/固定/检验表、二维关联列以及各类业务表;不能只依赖已放置字段。
|
|
@@ -1572,18 +1771,13 @@ function bindRuntimeBusinessServices(runtimeRegistry, record, dataStatus) {
|
|
|
1572
1771
|
}
|
|
1573
1772
|
}),
|
|
1574
1773
|
mainFormState: computed(() => record.formState.state),
|
|
1575
|
-
dataStatus
|
|
1576
|
-
defaultRowData: renderUtils.getDefaultValueInfo({
|
|
1577
|
-
defaultDataMap: record.context.defaultData,
|
|
1578
|
-
key: field
|
|
1579
|
-
})
|
|
1774
|
+
dataStatus
|
|
1580
1775
|
});
|
|
1581
1776
|
stops.push(
|
|
1582
1777
|
watch(
|
|
1583
1778
|
() => controller.materialNoNum,
|
|
1584
1779
|
() => {
|
|
1585
|
-
|
|
1586
|
-
controller.syncQtyRequiredFromBom();
|
|
1780
|
+
controller.syncQtyRequiredFromBomIfChanged();
|
|
1587
1781
|
},
|
|
1588
1782
|
{ immediate: true }
|
|
1589
1783
|
)
|
|
@@ -1851,7 +2045,13 @@ function createRuntimePersistenceAccess(runtimeRegistry, props, payload) {
|
|
|
1851
2045
|
const signatureKeys = (runtimeRecord.context.businessIndex.useSignatureFields || []).map(
|
|
1852
2046
|
(item) => item.fieldId
|
|
1853
2047
|
);
|
|
1854
|
-
const idsFormState = transformUtils.getFormDataIdsMap(
|
|
2048
|
+
const idsFormState = transformUtils.getFormDataIdsMap(
|
|
2049
|
+
newFormState,
|
|
2050
|
+
signatureKeys,
|
|
2051
|
+
(path) => runtimeRecord.fields.findByPath(path).some(
|
|
2052
|
+
({ widget, subFieldKey }) => subFieldKey !== path && [FIELD_TYPE.DATE, FIELD_TYPE.DATE_TIME].includes(widget?.props.fieldType)
|
|
2053
|
+
)
|
|
2054
|
+
);
|
|
1855
2055
|
if (saveToken ? !runtimeRecord.persistence.completeSave(saveToken) : requestedRevision !== runtimeRecord.formState.revision) {
|
|
1856
2056
|
return false;
|
|
1857
2057
|
}
|
|
@@ -1928,6 +2128,139 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1928
2128
|
}
|
|
1929
2129
|
});
|
|
1930
2130
|
const InspectionDecisionPromptModal = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-9c14035f"]]);
|
|
2131
|
+
function createMaterialConsumeObjectValidation(options) {
|
|
2132
|
+
const { record, getInfo, isCurrent, shouldSkip, applyComments } = options;
|
|
2133
|
+
let enabled = false;
|
|
2134
|
+
let disposed = false;
|
|
2135
|
+
let submitting = 0;
|
|
2136
|
+
let generation = 0;
|
|
2137
|
+
let lastRevision = -1;
|
|
2138
|
+
let timer;
|
|
2139
|
+
let paths = /* @__PURE__ */ new Set();
|
|
2140
|
+
const unlocated = /* @__PURE__ */ new Set();
|
|
2141
|
+
const alive = () => !disposed && isCurrent();
|
|
2142
|
+
function cancelLive() {
|
|
2143
|
+
generation++;
|
|
2144
|
+
if (timer !== void 0) clearTimeout(timer);
|
|
2145
|
+
timer = void 0;
|
|
2146
|
+
}
|
|
2147
|
+
function calcObjectError(error) {
|
|
2148
|
+
const info = getInfo();
|
|
2149
|
+
const modelKey = info?.modelKey || record.context.businessIndex.modelDisplay.key;
|
|
2150
|
+
const descriptor = record.fields.findField({ modelKey, fieldId: error.field });
|
|
2151
|
+
const props = descriptor?.widget?.props;
|
|
2152
|
+
if (!props?.field || descriptor?.subFieldKey || props.subFieldKey) {
|
|
2153
|
+
const key = modelKey + "." + error.field;
|
|
2154
|
+
if (!unlocated.has(key)) {
|
|
2155
|
+
unlocated.add(key);
|
|
2156
|
+
console.warn("物料消耗对象错误未定位到主表控件,保留在校验清单:", key);
|
|
2157
|
+
}
|
|
2158
|
+
return { error, path: void 0 };
|
|
2159
|
+
}
|
|
2160
|
+
const path = buildRuntimeFieldPath({
|
|
2161
|
+
...props,
|
|
2162
|
+
modelKey: props.modelKey ?? info?.modelKey,
|
|
2163
|
+
fieldId: props.field
|
|
2164
|
+
});
|
|
2165
|
+
return { error: { ...error, field: path }, path };
|
|
2166
|
+
}
|
|
2167
|
+
function replaceObjectFields(fields) {
|
|
2168
|
+
if (!alive()) return;
|
|
2169
|
+
const next = { ...getInfo()?.mcValidatorMessageMap ?? {} };
|
|
2170
|
+
paths.forEach((path) => delete next[path]);
|
|
2171
|
+
Object.assign(next, fields);
|
|
2172
|
+
paths = new Set(Object.keys(fields));
|
|
2173
|
+
applyComments(next);
|
|
2174
|
+
}
|
|
2175
|
+
function replaceTableFields(fields) {
|
|
2176
|
+
if (!alive()) return;
|
|
2177
|
+
const current = getInfo()?.mcValidatorMessageMap ?? {};
|
|
2178
|
+
const next = { ...fields ?? {} };
|
|
2179
|
+
paths.forEach((path) => {
|
|
2180
|
+
if (current[path]) {
|
|
2181
|
+
next[path] = [...next[path] ?? [], ...current[path]];
|
|
2182
|
+
}
|
|
2183
|
+
});
|
|
2184
|
+
applyComments(next);
|
|
2185
|
+
}
|
|
2186
|
+
function clear() {
|
|
2187
|
+
cancelLive();
|
|
2188
|
+
enabled = false;
|
|
2189
|
+
lastRevision = -1;
|
|
2190
|
+
replaceObjectFields({});
|
|
2191
|
+
}
|
|
2192
|
+
async function validate(live = false) {
|
|
2193
|
+
cancelLive();
|
|
2194
|
+
if (!alive()) return;
|
|
2195
|
+
if (shouldSkip()) {
|
|
2196
|
+
clear();
|
|
2197
|
+
return { isValid: true };
|
|
2198
|
+
}
|
|
2199
|
+
const ticket = generation;
|
|
2200
|
+
const revision = record.formState.revision;
|
|
2201
|
+
const info = getInfo();
|
|
2202
|
+
const display = record.context.businessIndex.modelDisplay;
|
|
2203
|
+
const errors = await validateObjectBomQtyOnSubmit({
|
|
2204
|
+
formState: record.formState.state,
|
|
2205
|
+
objectFieldList: record.context.formConfig.objectFieldList,
|
|
2206
|
+
formInstBom: record.context.services.tmplBomController?.formInstBom,
|
|
2207
|
+
showModelName: display.name,
|
|
2208
|
+
showModelKey: display.key || info?.modelKey || ""
|
|
2209
|
+
});
|
|
2210
|
+
if (!alive() || generation !== ticket || record.formState.revision !== revision || live && getInfo()?.renderModeType !== RenderModeEnum.FormMode)
|
|
2211
|
+
return;
|
|
2212
|
+
const fields = {};
|
|
2213
|
+
const comments = {};
|
|
2214
|
+
for (const source of errors) {
|
|
2215
|
+
const adapted = calcObjectError(source);
|
|
2216
|
+
(fields[adapted.error.field] ??= []).push(adapted.error);
|
|
2217
|
+
if (adapted.path) (comments[adapted.path] ??= []).push(adapted.error);
|
|
2218
|
+
}
|
|
2219
|
+
enabled = !!record.context.formConfig.objectFieldList?.length;
|
|
2220
|
+
lastRevision = revision;
|
|
2221
|
+
replaceObjectFields(comments);
|
|
2222
|
+
return { isValid: !errors.length, fields: Object.keys(fields).length ? fields : void 0 };
|
|
2223
|
+
}
|
|
2224
|
+
function requestLive() {
|
|
2225
|
+
cancelLive();
|
|
2226
|
+
if (!alive() || !enabled || submitting > 0 || getInfo()?.renderModeType !== RenderModeEnum.FormMode)
|
|
2227
|
+
return;
|
|
2228
|
+
const ticket = generation;
|
|
2229
|
+
timer = setTimeout(() => {
|
|
2230
|
+
timer = void 0;
|
|
2231
|
+
void (async () => {
|
|
2232
|
+
await record.controller?.waitUntilPrepared();
|
|
2233
|
+
await record.asyncTasks.waitForRequired();
|
|
2234
|
+
if (!alive() || generation !== ticket || submitting > 0 || getInfo()?.renderModeType !== RenderModeEnum.FormMode)
|
|
2235
|
+
return;
|
|
2236
|
+
await validate(true);
|
|
2237
|
+
})().catch((error) => {
|
|
2238
|
+
if (alive()) console.error("物料消耗对象实时校验失败", error);
|
|
2239
|
+
});
|
|
2240
|
+
}, 300);
|
|
2241
|
+
}
|
|
2242
|
+
return {
|
|
2243
|
+
validate,
|
|
2244
|
+
requestLive,
|
|
2245
|
+
replaceTableFields,
|
|
2246
|
+
clear,
|
|
2247
|
+
beginSubmit() {
|
|
2248
|
+
submitting++;
|
|
2249
|
+
cancelLive();
|
|
2250
|
+
},
|
|
2251
|
+
endSubmit() {
|
|
2252
|
+
submitting--;
|
|
2253
|
+
if (alive() && submitting === 0 && enabled && lastRevision !== record.formState.revision)
|
|
2254
|
+
requestLive();
|
|
2255
|
+
},
|
|
2256
|
+
dispose() {
|
|
2257
|
+
disposed = true;
|
|
2258
|
+
cancelLive();
|
|
2259
|
+
paths.clear();
|
|
2260
|
+
unlocated.clear();
|
|
2261
|
+
}
|
|
2262
|
+
};
|
|
2263
|
+
}
|
|
1931
2264
|
function applyValidationComments(info, comments, kind) {
|
|
1932
2265
|
if (!info) return;
|
|
1933
2266
|
const locationKey = kind === "field" ? "validatorLocationList" : "mcValidatorLocationList";
|
|
@@ -1945,6 +2278,29 @@ function applyValidationComments(info, comments, kind) {
|
|
|
1945
2278
|
info[messageKey] = map;
|
|
1946
2279
|
}
|
|
1947
2280
|
function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType) {
|
|
2281
|
+
const objectValidations = /* @__PURE__ */ new WeakMap();
|
|
2282
|
+
function getObjectValidation(record) {
|
|
2283
|
+
const existing = objectValidations.get(record);
|
|
2284
|
+
if (existing) return existing;
|
|
2285
|
+
const uniqueId = record.context.uniqueId;
|
|
2286
|
+
const validation = createMaterialConsumeObjectValidation({
|
|
2287
|
+
record,
|
|
2288
|
+
getInfo: () => getInfo(uniqueId),
|
|
2289
|
+
isCurrent: () => runtimeRegistry.get(uniqueId) === record,
|
|
2290
|
+
shouldSkip: () => {
|
|
2291
|
+
const skip = syncInspectionDecisionRule(uniqueId);
|
|
2292
|
+
if (skip) clearInspectionValidationState(uniqueId);
|
|
2293
|
+
return skip;
|
|
2294
|
+
},
|
|
2295
|
+
applyComments: (fields) => applyValidationComments(getInfo(uniqueId), fields, "material")
|
|
2296
|
+
});
|
|
2297
|
+
objectValidations.set(record, validation);
|
|
2298
|
+
runtimeRegistry.registerDisposable(uniqueId, () => {
|
|
2299
|
+
validation.dispose();
|
|
2300
|
+
objectValidations.delete(record);
|
|
2301
|
+
});
|
|
2302
|
+
return validation;
|
|
2303
|
+
}
|
|
1948
2304
|
const inspectionDecisionMatched = /* @__PURE__ */ new WeakMap();
|
|
1949
2305
|
const inspectionDecisionPrompting = /* @__PURE__ */ new WeakSet();
|
|
1950
2306
|
function openInspectionDecisionPrompt(uniqueId, content) {
|
|
@@ -1985,11 +2341,14 @@ function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType)
|
|
|
1985
2341
|
return matched;
|
|
1986
2342
|
}
|
|
1987
2343
|
function clearInspectionValidationState(uniqueId) {
|
|
2344
|
+
const record = runtimeRegistry.get(uniqueId);
|
|
2345
|
+
if (record) objectValidations.get(record)?.clear();
|
|
1988
2346
|
applyValidationComments(getInfo(uniqueId), null, "field");
|
|
1989
2347
|
applyValidationComments(getInfo(uniqueId), null, "material");
|
|
1990
2348
|
}
|
|
1991
2349
|
function bindFormValidationSync(uniqueId) {
|
|
1992
2350
|
const record = runtimeRegistry.require(uniqueId);
|
|
2351
|
+
const objects = getObjectValidation(record);
|
|
1993
2352
|
syncInspectionDecisionRule(uniqueId);
|
|
1994
2353
|
const stop = record.formState.subscribe(() => {
|
|
1995
2354
|
if (runtimeRegistry.get(uniqueId) !== record) return;
|
|
@@ -2000,6 +2359,7 @@ function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType)
|
|
|
2000
2359
|
uniqueId,
|
|
2001
2360
|
!suppressed && info.renderModeType === RenderModeEnum.FormMode
|
|
2002
2361
|
);
|
|
2362
|
+
objects.requestLive();
|
|
2003
2363
|
if (suppressed) return;
|
|
2004
2364
|
if (info.renderModeType === RenderModeEnum.FormMode) {
|
|
2005
2365
|
record.validation.requestLive("change");
|
|
@@ -2032,48 +2392,43 @@ function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType)
|
|
|
2032
2392
|
}
|
|
2033
2393
|
async function runSubmissionValidation(uniqueId) {
|
|
2034
2394
|
const record = runtimeRegistry.require(uniqueId);
|
|
2035
|
-
const
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
const res = await record.validation.validate();
|
|
2042
|
-
if (!res || runtimeRegistry.get(uniqueId) !== record) return;
|
|
2043
|
-
const revision = record.formState.revision;
|
|
2044
|
-
if (bomC) {
|
|
2045
|
-
const bomRes = await bomC.submitValidate();
|
|
2046
|
-
if (runtimeRegistry.get(uniqueId) !== record || record.formState.revision !== revision)
|
|
2047
|
-
return;
|
|
2048
|
-
applyValidationComments(getInfo(uniqueId), bomRes.fields ?? null, "material");
|
|
2049
|
-
if (!bomRes.isValid) {
|
|
2050
|
-
merge(res, bomRes);
|
|
2051
|
-
return res;
|
|
2395
|
+
const objects = getObjectValidation(record);
|
|
2396
|
+
objects.beginSubmit();
|
|
2397
|
+
try {
|
|
2398
|
+
if (syncInspectionDecisionRule(uniqueId)) {
|
|
2399
|
+
clearInspectionValidationState(uniqueId);
|
|
2400
|
+
return { isValid: true };
|
|
2052
2401
|
}
|
|
2053
|
-
const
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
const
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
const
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2402
|
+
const res = await record.validation.validate();
|
|
2403
|
+
if (!res || runtimeRegistry.get(uniqueId) !== record) return;
|
|
2404
|
+
const revision = record.formState.revision;
|
|
2405
|
+
const bomC = record.context.services.tmplBomController;
|
|
2406
|
+
if (bomC) {
|
|
2407
|
+
const bomRes = await bomC.submitValidate();
|
|
2408
|
+
if (runtimeRegistry.get(uniqueId) !== record || record.formState.revision !== revision)
|
|
2409
|
+
return;
|
|
2410
|
+
objects.replaceTableFields(bomRes.fields);
|
|
2411
|
+
if (!bomRes.isValid) {
|
|
2412
|
+
merge(res, bomRes);
|
|
2413
|
+
return res;
|
|
2414
|
+
}
|
|
2415
|
+
const objectRes = await objects.validate();
|
|
2416
|
+
if (!objectRes || runtimeRegistry.get(uniqueId) !== record || record.formState.revision !== revision)
|
|
2417
|
+
return;
|
|
2418
|
+
if (!objectRes.isValid) {
|
|
2419
|
+
const fields = { ...res.fields ?? {} };
|
|
2420
|
+
for (const [path, errors] of Object.entries(objectRes.fields ?? {})) {
|
|
2421
|
+
fields[path] = [...fields[path] ?? [], ...errors];
|
|
2422
|
+
}
|
|
2423
|
+
return { ...res, isValid: false, fields };
|
|
2424
|
+
}
|
|
2425
|
+
} else {
|
|
2426
|
+
objects.clear();
|
|
2074
2427
|
}
|
|
2428
|
+
return res;
|
|
2429
|
+
} finally {
|
|
2430
|
+
objects.endSubmit();
|
|
2075
2431
|
}
|
|
2076
|
-
return res;
|
|
2077
2432
|
}
|
|
2078
2433
|
function updateRenderModeType(uniqueId, mode, updateButton = false) {
|
|
2079
2434
|
const record = runtimeRegistry.require(uniqueId);
|
|
@@ -2289,8 +2644,12 @@ function useRenderPageFactory(props, payload) {
|
|
|
2289
2644
|
onValidate: () => runSubmissionValidation(uniqueId),
|
|
2290
2645
|
onValidationFailed: (result) => record.sheetService.navigateFirstError(Object.keys(result.fields ?? {})),
|
|
2291
2646
|
onGetSubmitData: (formState) => {
|
|
2292
|
-
record.context.services.subTableCoreFactory
|
|
2293
|
-
|
|
2647
|
+
const subTableFactory = record.context.services.subTableCoreFactory;
|
|
2648
|
+
subTableFactory?.prepareSubmitFormState(formState);
|
|
2649
|
+
return transformUtils.getSubmitFormData(formState, {
|
|
2650
|
+
...record.context.businessIndex,
|
|
2651
|
+
businessTableFields: subTableFactory?.getBusinessTableFields() ?? []
|
|
2652
|
+
});
|
|
2294
2653
|
}
|
|
2295
2654
|
})
|
|
2296
2655
|
);
|
|
@@ -2487,7 +2846,7 @@ function useEbrWikiFactoryV2(props, payload) {
|
|
|
2487
2846
|
}
|
|
2488
2847
|
watch(
|
|
2489
2848
|
[() => props.materialNo, () => edhrCounter.value],
|
|
2490
|
-
async ([newMaterialNo,
|
|
2849
|
+
async ([newMaterialNo, _]) => {
|
|
2491
2850
|
if (isEmpty(newMaterialNo)) return;
|
|
2492
2851
|
loading.value = true;
|
|
2493
2852
|
clear();
|
|
@@ -2666,7 +3025,7 @@ function useEbrWikiFactoryV2(props, payload) {
|
|
|
2666
3025
|
);
|
|
2667
3026
|
watch(
|
|
2668
3027
|
[() => selectSelfInfo.value, () => instanceCounter.value],
|
|
2669
|
-
([newSelectSelfInfo,
|
|
3028
|
+
([newSelectSelfInfo, _]) => {
|
|
2670
3029
|
if (newSelectSelfInfo && payload.pageType === "record-change") {
|
|
2671
3030
|
emitter.emit(EmitterEnum.__on_select_ebr_doc_instance_id, {
|
|
2672
3031
|
instanceId: newSelectSelfInfo.id
|
|
@@ -3022,9 +3381,9 @@ class FormAnnotationController {
|
|
|
3022
3381
|
const items = this.normalizeAllResponse(res);
|
|
3023
3382
|
this.applyAnnotationItems(items, () => true);
|
|
3024
3383
|
return items;
|
|
3025
|
-
} catch (
|
|
3026
|
-
console.error("加载所有批注信息 error",
|
|
3027
|
-
throw
|
|
3384
|
+
} catch (e2) {
|
|
3385
|
+
console.error("加载所有批注信息 error", e2);
|
|
3386
|
+
throw e2;
|
|
3028
3387
|
}
|
|
3029
3388
|
};
|
|
3030
3389
|
handleOpenAnnotation = async () => {
|
|
@@ -3071,250 +3430,251 @@ function filterAnnotationItemsUpToCurrent(items) {
|
|
|
3071
3430
|
});
|
|
3072
3431
|
}
|
|
3073
3432
|
export {
|
|
3074
|
-
|
|
3433
|
+
aL as AITooltips,
|
|
3075
3434
|
A3 as AllocateTableCore,
|
|
3076
3435
|
B3 as BaseFormModelFetcher,
|
|
3077
|
-
|
|
3078
|
-
|
|
3079
|
-
|
|
3436
|
+
aN as BinarizeMethodOptions,
|
|
3437
|
+
a_ as BindCmpStyleEnum,
|
|
3438
|
+
a0 as BooleanShowMode,
|
|
3080
3439
|
B2 as BorderTD,
|
|
3081
3440
|
BpmnNodeTypeEnum,
|
|
3082
|
-
|
|
3083
|
-
|
|
3441
|
+
by as BpmnSignatureTypeEnum,
|
|
3442
|
+
bz as ButtonTypeEnum,
|
|
3084
3443
|
B as BwipCodeType,
|
|
3085
|
-
|
|
3444
|
+
bA as CHECK_TABLE_MEDPRO_PROTOCOL_KEY,
|
|
3086
3445
|
y as CellType,
|
|
3087
|
-
|
|
3446
|
+
af as CellWidgetViewState,
|
|
3088
3447
|
CheckDsTypeEnum,
|
|
3089
|
-
|
|
3448
|
+
bB as CodeRunner,
|
|
3090
3449
|
ComponentTypeEnum,
|
|
3091
|
-
|
|
3092
|
-
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
|
|
3096
|
-
|
|
3097
|
-
|
|
3098
|
-
|
|
3099
|
-
|
|
3100
|
-
|
|
3101
|
-
|
|
3450
|
+
bC as Config_Fields,
|
|
3451
|
+
bD as ControlStatusEnum,
|
|
3452
|
+
bb as DEVICE_GROUP_QUERY_KEY,
|
|
3453
|
+
bE as DEVICE_SEARCH_API,
|
|
3454
|
+
aQ as DateFormat,
|
|
3455
|
+
av as DecimalDisplayMode,
|
|
3456
|
+
aM as DenoiseMethodOptions,
|
|
3457
|
+
an2 as DeviceConnector,
|
|
3458
|
+
aJ as DeviceLink,
|
|
3459
|
+
k as DeviceLinkTmplUtil,
|
|
3460
|
+
aK as DeviceParamsTypeTitle,
|
|
3102
3461
|
D as DevicePartConsumeTableCore,
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
|
|
3109
|
-
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3462
|
+
bF as DeviceStatus,
|
|
3463
|
+
ag as DiagonalDirection,
|
|
3464
|
+
ak as DiagonalVertex,
|
|
3465
|
+
a12 as DocumentLayout,
|
|
3466
|
+
ao as DocumentLoading,
|
|
3467
|
+
$2 as DocumentPaper,
|
|
3468
|
+
ap as DynamicQuickFillModal,
|
|
3469
|
+
a02 as DynamicTableAction,
|
|
3470
|
+
bG as EBR_PROVIDE_ENUM,
|
|
3471
|
+
bH as EFieldBizTypeEnum,
|
|
3472
|
+
F as EMPTY_PRODUCT_VERSION_ID,
|
|
3473
|
+
aD as EmptySymbol,
|
|
3474
|
+
a2 as FallbackSignTypeEnum,
|
|
3475
|
+
ae as FieldSysVarDefaultValueEnum,
|
|
3117
3476
|
FillingTypeEnum,
|
|
3118
|
-
|
|
3477
|
+
aq as FixedQuickFillModal,
|
|
3119
3478
|
FormAnnotationController,
|
|
3120
3479
|
F2 as FormModelController,
|
|
3121
3480
|
FormTmplBomController,
|
|
3122
|
-
|
|
3481
|
+
ar as FormTmplConfigController,
|
|
3123
3482
|
FormTypeEnum,
|
|
3124
|
-
|
|
3483
|
+
aw as ImageDisplayModeEnum,
|
|
3125
3484
|
InstanceStatusValues,
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
|
|
3485
|
+
aO as JoinModelTypeEum,
|
|
3486
|
+
as as LEGACY_RUNTIME_FORM_CONFIG_KEYS,
|
|
3487
|
+
at2 as LEGACY_RUNTIME_SHEET_ID,
|
|
3488
|
+
au2 as LEGACY_RUNTIME_SHEET_TITLE,
|
|
3489
|
+
$ as LabelPosition,
|
|
3490
|
+
ai as LineDirection,
|
|
3132
3491
|
L as LineType,
|
|
3133
|
-
|
|
3492
|
+
bI as MAX_FRONT_ROW_KEY_LENGTH,
|
|
3134
3493
|
M as MAX_RUNTIME_SHEETS,
|
|
3135
3494
|
a as MAX_RUNTIME_SHEET_TITLE_LENGTH,
|
|
3136
3495
|
M3 as MBRender,
|
|
3137
|
-
|
|
3138
|
-
|
|
3496
|
+
av2 as MCDataUtil,
|
|
3497
|
+
a8 as MCRender,
|
|
3139
3498
|
b as MULTI_SHEET_SCHEMA_VERSION,
|
|
3140
3499
|
MaterialConsumeTableController,
|
|
3141
3500
|
MaterialConsumptionPatternEnum,
|
|
3142
3501
|
M2 as MaterialRequisitionTableCore,
|
|
3143
3502
|
MaterialStatusEnum,
|
|
3144
|
-
|
|
3145
|
-
|
|
3503
|
+
a7 as MaterialSubstitutionTableCore,
|
|
3504
|
+
bJ as MobileFillTypeEnum,
|
|
3146
3505
|
NCB_PROVIDE,
|
|
3147
|
-
|
|
3148
|
-
|
|
3506
|
+
aw2 as OCR_MODEL_PRECISION_ENUM_KEY,
|
|
3507
|
+
bK as OfficeTypeEnum,
|
|
3149
3508
|
O as Orientation,
|
|
3150
3509
|
p as PageSizeEnum,
|
|
3151
3510
|
P as PaginationFormat,
|
|
3152
|
-
|
|
3511
|
+
a9 as PaperSizeMap,
|
|
3153
3512
|
o as PaperWidgeType,
|
|
3154
3513
|
Q as PaperWidgeValueType,
|
|
3155
3514
|
A as ParamModelTypeEnum,
|
|
3156
3515
|
P2 as PartStocktakeTableCore,
|
|
3157
3516
|
PlatformEnum,
|
|
3158
|
-
|
|
3159
|
-
|
|
3160
|
-
|
|
3161
|
-
|
|
3162
|
-
|
|
3163
|
-
|
|
3517
|
+
bL as PosEnum,
|
|
3518
|
+
b2 as PretreatmentListTableCore,
|
|
3519
|
+
c as ProfileDrivenSubTableCore,
|
|
3520
|
+
bM as RUNTIME_COLUMN_ROW_KEY,
|
|
3521
|
+
au as RangeCompareOp,
|
|
3522
|
+
at as RangeValidateMode,
|
|
3164
3523
|
RenderModeEnum,
|
|
3165
|
-
|
|
3166
|
-
|
|
3167
|
-
|
|
3524
|
+
ax as RuntimeAsyncTaskCoordinator,
|
|
3525
|
+
ay as RuntimeDependencyService,
|
|
3526
|
+
az as RuntimeFieldRegistry,
|
|
3168
3527
|
RuntimeFormStateStore,
|
|
3169
3528
|
RuntimeInstanceController,
|
|
3170
|
-
|
|
3529
|
+
aA as RuntimeInstanceEventBus,
|
|
3171
3530
|
RuntimeInstanceRegistry,
|
|
3172
|
-
|
|
3531
|
+
aB as RuntimePersistenceCoordinator,
|
|
3173
3532
|
RuntimeRuleCompiler,
|
|
3174
3533
|
RuntimeSheetService,
|
|
3175
|
-
|
|
3176
|
-
|
|
3177
|
-
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3534
|
+
aC as RuntimeValidationService,
|
|
3535
|
+
a5 as SignShowTypeEnum,
|
|
3536
|
+
a1 as SignatureImageDirectionEnum,
|
|
3537
|
+
a3 as SignatureNumberTypeEnum,
|
|
3538
|
+
a4 as SignatureTimeTypeEnum,
|
|
3539
|
+
a6 as SignatureTypeEnum,
|
|
3181
3540
|
d2 as SterilizeBatchTableCore,
|
|
3182
|
-
|
|
3183
|
-
|
|
3541
|
+
e as StocktakeTableCore,
|
|
3542
|
+
aD2 as SubTableCore,
|
|
3184
3543
|
SubTableCoreFactory,
|
|
3185
3544
|
f as SubTableType,
|
|
3186
|
-
|
|
3187
|
-
|
|
3188
|
-
|
|
3545
|
+
bN as SummaryApproveHisTypeEnum,
|
|
3546
|
+
aj as TimeDiffFormat,
|
|
3547
|
+
an as ViewTypeEnum,
|
|
3189
3548
|
W as WarehouseInTableCore,
|
|
3190
|
-
|
|
3549
|
+
f2 as WarehouseInboundTableCore,
|
|
3191
3550
|
g as WarehouseOutTableCore,
|
|
3192
|
-
|
|
3193
|
-
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
|
|
3551
|
+
h as WarehouseOutboundTableCore,
|
|
3552
|
+
ah as WidgetImageSizeMode,
|
|
3553
|
+
bO as applyCheckDsDataToRuntime,
|
|
3554
|
+
C as applyConsumeObjectTraceChange,
|
|
3555
|
+
bP as applyMedProCheckDsDataToRuntime,
|
|
3197
3556
|
baseDataUtils,
|
|
3198
|
-
|
|
3199
|
-
|
|
3200
|
-
|
|
3201
|
-
|
|
3202
|
-
|
|
3557
|
+
bQ as bindRuntimeTableColumns,
|
|
3558
|
+
bR as buildDeviceBaseQuery,
|
|
3559
|
+
ba as buildDeviceFilterQuery,
|
|
3560
|
+
aE as buildFormChangeDisplayRows,
|
|
3561
|
+
t2 as buildObjectLotExtraQuery,
|
|
3203
3562
|
buildRuntimeFieldPath,
|
|
3204
|
-
|
|
3205
|
-
|
|
3563
|
+
bS as calcFillData,
|
|
3564
|
+
bT as calcUtils,
|
|
3206
3565
|
calculateFormula,
|
|
3207
3566
|
collectAnnotationItemsByLocation,
|
|
3208
3567
|
collectFormChangeFieldLocations,
|
|
3209
3568
|
commonUtils,
|
|
3210
3569
|
convertHistoricalAnnotationLocation,
|
|
3211
|
-
|
|
3212
|
-
|
|
3570
|
+
aF as convertV1Runtime,
|
|
3571
|
+
d as createRuntimeDocumentV2,
|
|
3213
3572
|
createRuntimeInstanceContext,
|
|
3214
|
-
|
|
3215
|
-
|
|
3216
|
-
|
|
3573
|
+
bU as decodeTableCellRowKey,
|
|
3574
|
+
aG as detailsHaveFormChangeRowOps,
|
|
3575
|
+
bV as encodeTableCellRowKey,
|
|
3217
3576
|
enrichFormChangeRowDetails,
|
|
3218
|
-
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
|
|
3222
|
-
|
|
3223
|
-
|
|
3577
|
+
bW as ensureFrontRowKey,
|
|
3578
|
+
bX as ensureTableRowKeys,
|
|
3579
|
+
aH as extractFormChangeRowDetails,
|
|
3580
|
+
bY as extractKeywordFromQueryData,
|
|
3581
|
+
bZ as fetchCheckDsDataForTable,
|
|
3582
|
+
b_ as fetchCustomCheckDsData,
|
|
3224
3583
|
fetchHistoryConsume,
|
|
3225
|
-
|
|
3584
|
+
b$ as fetchMedProCheckDsData,
|
|
3226
3585
|
fetchOperationReceiveQty,
|
|
3227
3586
|
fetchUdi,
|
|
3228
3587
|
filterAnnotationItemsUpToCurrent,
|
|
3229
|
-
|
|
3230
|
-
|
|
3588
|
+
be as findRuntimeParentRow,
|
|
3589
|
+
c0 as findRuntimeTableCell,
|
|
3231
3590
|
findRuntimeTableRow,
|
|
3232
3591
|
getAppInfo,
|
|
3233
3592
|
getBusinessFieldKey,
|
|
3234
|
-
|
|
3235
|
-
|
|
3236
|
-
|
|
3237
|
-
|
|
3238
|
-
|
|
3239
|
-
|
|
3593
|
+
c1 as getCheckTableSnapshotKey,
|
|
3594
|
+
aI as getFormChangeRowKey,
|
|
3595
|
+
aJ2 as getFormChangeRowOp,
|
|
3596
|
+
aW as getLotLockedReason,
|
|
3597
|
+
r as getObjectBomMaterialLotQuery,
|
|
3598
|
+
E as getObjectBomProductQuery,
|
|
3240
3599
|
getParseFormulaVarInfos,
|
|
3241
|
-
|
|
3242
|
-
|
|
3243
|
-
|
|
3244
|
-
|
|
3245
|
-
|
|
3600
|
+
c2 as getParseRuleConfig,
|
|
3601
|
+
a$ as getParseRuleInfo,
|
|
3602
|
+
b0 as getParseRuleValue,
|
|
3603
|
+
c3 as getReinspectionDate,
|
|
3604
|
+
c4 as getRenderedRuntimeTableCell,
|
|
3246
3605
|
getRuntimeDataFieldId,
|
|
3247
3606
|
getRuntimeDependencyOutputKey,
|
|
3248
|
-
|
|
3607
|
+
aK2 as getSubTableQuickFillInfo,
|
|
3249
3608
|
getSuiteKey,
|
|
3250
|
-
|
|
3251
|
-
|
|
3252
|
-
|
|
3253
|
-
|
|
3254
|
-
|
|
3255
|
-
|
|
3609
|
+
c5 as handleOldConfig,
|
|
3610
|
+
c6 as hasAnyCheckTableSnapshot,
|
|
3611
|
+
c7 as hasByTableCheckTableSnapshot,
|
|
3612
|
+
c8 as hasSharedCheckTableSnapshot,
|
|
3613
|
+
aL2 as isAnnLocationSelected,
|
|
3614
|
+
aM2 as isBlank,
|
|
3256
3615
|
isBomGranted,
|
|
3257
3616
|
isEdhrSuite,
|
|
3258
3617
|
isEqmSuite,
|
|
3259
|
-
|
|
3260
|
-
|
|
3618
|
+
aN2 as isFormChangeGhostRow,
|
|
3619
|
+
c9 as isMedProSuite,
|
|
3261
3620
|
isRowAddedInCurrentFormChange,
|
|
3262
|
-
|
|
3263
|
-
|
|
3264
|
-
|
|
3265
|
-
|
|
3266
|
-
|
|
3621
|
+
ca as isTableRowKeyMatch,
|
|
3622
|
+
cb as jsonSchemaUtils,
|
|
3623
|
+
cc as judgeUnique,
|
|
3624
|
+
aV as materialCheck,
|
|
3625
|
+
cd as migrateDiagonalDirectionToVertex,
|
|
3267
3626
|
nextFormChangeRowViewHistoryId,
|
|
3268
|
-
|
|
3269
|
-
|
|
3270
|
-
|
|
3271
|
-
|
|
3272
|
-
|
|
3627
|
+
l as normalizeAIOcrTmpl,
|
|
3628
|
+
G as normalizeHistoricalAutofillRow,
|
|
3629
|
+
j as normalizeHistoricalBusinessRow,
|
|
3630
|
+
aO2 as normalizeHistoricalFieldConfig,
|
|
3631
|
+
b1 as normalizeRefLoaderResult,
|
|
3273
3632
|
normalizeRuntime,
|
|
3274
3633
|
parseFrontConfig,
|
|
3275
3634
|
parseRuntimeFieldPath,
|
|
3276
3635
|
parseUdi,
|
|
3277
|
-
|
|
3278
|
-
|
|
3279
|
-
|
|
3280
|
-
|
|
3281
|
-
|
|
3636
|
+
aP2 as pickObjectFieldKeys,
|
|
3637
|
+
aQ2 as recordSubtableRowAdd,
|
|
3638
|
+
aR as recordSubtableRowDelete,
|
|
3639
|
+
b8 as refUtils,
|
|
3640
|
+
aS as relocateDeletedRowsToEnd,
|
|
3282
3641
|
renderUtils,
|
|
3283
|
-
|
|
3284
|
-
|
|
3285
|
-
|
|
3286
|
-
|
|
3642
|
+
ce as requestMedProCheckDsData,
|
|
3643
|
+
cf as requestNonMedProCheckDsData,
|
|
3644
|
+
aT as resolveAnnotationFieldLocation,
|
|
3645
|
+
al as resolveDiagonalVertex,
|
|
3287
3646
|
t as resolveFieldRenderComponent,
|
|
3288
|
-
|
|
3289
|
-
|
|
3290
|
-
|
|
3291
|
-
|
|
3647
|
+
aU as resolveFormChangeRowUi,
|
|
3648
|
+
y2 as resolveObjectBomEntry,
|
|
3649
|
+
v as resolveObjectFieldKeys,
|
|
3650
|
+
aV2 as resolveRowFormChangeMark,
|
|
3292
3651
|
resolveUdiQuery,
|
|
3293
|
-
|
|
3294
|
-
|
|
3295
|
-
|
|
3652
|
+
z as runWithFillProduct,
|
|
3653
|
+
p2 as setSelectAnnotationId,
|
|
3654
|
+
aW2 as setSelectMobileTdId,
|
|
3296
3655
|
s as setSelectValidatorId,
|
|
3297
|
-
|
|
3298
|
-
|
|
3299
|
-
|
|
3656
|
+
cg as splitRuntimeDataPath,
|
|
3657
|
+
aP as sqlUtils,
|
|
3658
|
+
ch as stockCheck,
|
|
3659
|
+
aX2 as stripLegacyFormConfigFromPaper,
|
|
3300
3660
|
transformUtils,
|
|
3301
|
-
|
|
3661
|
+
R as useDependency,
|
|
3302
3662
|
useEbrWikiFactoryV2,
|
|
3303
|
-
|
|
3663
|
+
S as useFieldPresentation,
|
|
3304
3664
|
u2 as useFormModel,
|
|
3305
3665
|
u as useFormTmplConfig,
|
|
3306
3666
|
useMaterialBalance,
|
|
3307
3667
|
useNocodeEmitter,
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
-
|
|
3668
|
+
A2 as useNocodeFormWidget,
|
|
3669
|
+
ci as useOnlineFormActionButton,
|
|
3670
|
+
bf as useOnlineFormTransformField2Component,
|
|
3311
3671
|
useRenderPageFactory,
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
|
|
3316
|
-
|
|
3317
|
-
|
|
3672
|
+
T as useRuntimeEditorFlusher,
|
|
3673
|
+
o2 as useRuntimeInstanceServices,
|
|
3674
|
+
q as useRuntimeRowState,
|
|
3675
|
+
Q2 as useStyles,
|
|
3676
|
+
m as useWidgetStaticAttrs,
|
|
3677
|
+
x as validateObjectBomForScan,
|
|
3318
3678
|
validateObjectBomQtyOnSubmit,
|
|
3319
|
-
|
|
3679
|
+
aX as validateReinspectionDate
|
|
3320
3680
|
};
|