@gct-paas/excel 0.1.39-beta.5 → 0.1.39-beta.50
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-B8_qg2he.js → BaseComponent-BUJvWlGa.js} +2 -2
- package/dist/{VueVideoPlayer-B-X9Kvhp.js → VueVideoPlayer-D8FyMaIo.js} +2 -2
- package/dist/{align-editor-1IbAiPBg.js → align-editor-CnZd9SQ2.js} +1 -1
- package/dist/{barcode-design-DCm1U-OU.js → barcode-design-CZfYwt7_.js} +2 -2
- package/dist/base/index.es.js +644 -269
- package/dist/{diagonal-design-DBk2s8UD.js → diagonal-design-CIU8Y2yp.js} +2 -2
- package/dist/{dynamic-table-action-JSevwsex.js → dynamic-table-action-DD1zKzOS.js} +1069 -365
- package/dist/{dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-ClcBVLO0.js → dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-bwZ-XvGB.js} +1024 -1402
- package/dist/{edit.utils-CXmmCnxE-88-QvdIv.js → edit.utils-CXmmCnxE-B6M7wc9T.js} +1 -1
- package/dist/excel.css +612 -347
- package/dist/{exceljs.min-M28cAz_z.js → exceljs.min-CJ903Wl8.js} +2 -2
- package/dist/{font-editor-nCQk5D1K.js → font-editor-DelOsrtK.js} +3 -3
- package/dist/{image-design-B84grap7.js → image-design-Czp9FCg8.js} +2 -2
- package/dist/{index-XBuNXPu0.js → index-B1hntPs8.js} +2 -2
- package/dist/{index-ZEwe0MJj.js → index-B5oC3UEo.js} +2 -2
- package/dist/{index-CBiaZr1j.js → index-B6FNe4Vb.js} +2 -2
- package/dist/{index-CFjE5779.js → index-BB6faESW.js} +3 -2
- package/dist/{index-H_BLk7PI.js → index-BDNK7vET.js} +2 -2
- package/dist/{index-CX6LqGJP.js → index-BH6aCDNQ.js} +1 -1
- package/dist/{index-DkvjFyW6.js → index-BIkbXEXo.js} +2 -2
- package/dist/{index-jRA6sXVY.js → index-BN7tYGxz.js} +1 -1
- package/dist/{index-BrkoN2-J.js → index-BZEvR4RB.js} +6 -5
- package/dist/{index-Co1E4H0G.js → index-BfhXiBqt.js} +2 -2
- package/dist/{index-tZd-Us4e.js → index-Blh6hUMV.js} +2 -2
- package/dist/{index-D7IBmbmp.js → index-BliFxab-.js} +2 -2
- package/dist/{index-BSXafKJS.js → index-Bnf2-6c3.js} +2 -2
- package/dist/{index-Doz8Gf_5.js → index-BzEfeZ5q.js} +1 -1
- package/dist/{index-CGsTW2E9.js → index-C0lsZwMP.js} +2 -2
- package/dist/{index-bfXiwTE7.js → index-CHkRG7hP.js} +2487 -2004
- package/dist/{index-DHHyy4mL.js → index-CNHEKg4J.js} +1 -1
- package/dist/{index-I2HpU1BP.js → index-CR0hWIUT.js} +3 -3
- package/dist/{index-CCsNdL4I.js → index-CR7z2-EH.js} +2 -2
- package/dist/{index-B53fgzJo.js → index-CWdF0QHj.js} +2 -2
- package/dist/{index-wcY1RYL_.js → index-Cs5yHX4a.js} +2 -2
- package/dist/{index-UCNknVxk.js → index-D38XWtM-.js} +1 -1
- package/dist/{index-DCzL4GOP.js → index-D_0_rAZw.js} +53 -5
- package/dist/{index-CKWcaJGI.js → index-DlAvbYfP.js} +5 -7
- package/dist/{index-DEN3-esb.js → index-DlqmhUPR.js} +6 -3
- package/dist/{index-DT87VrvR.js → index-DlyYkAON.js} +2 -2
- package/dist/{index-MJFci9IB.js → index-DtNhXlsx.js} +1 -1
- package/dist/{index-BvJ7ZgvI.js → index-DxNCoSQy.js} +2 -2
- package/dist/{index-D0Q-6EtG.js → index-GEvNTYZs.js} +1 -1
- package/dist/{index-CCp6-NXH.js → index-YJomFrkE.js} +3 -3
- package/dist/{index-CUHfI8cg.js → index-d4mevitw.js} +1 -1
- package/dist/{index-_-ORWa-m.js → index-f3SdK5BU.js} +1 -1
- package/dist/{index-DEl0sxMk.js → index-o892WfU2.js} +6 -5
- package/dist/{index-DPOE78Jf.js → index-qoXtNC9W.js} +2 -2
- package/dist/{index-ChncMTkv.js → index-t6ehS00B.js} +1 -1
- package/dist/index.es.js +2 -2
- package/dist/{mb-render-BZDgmpm9.js → mb-render-xzFolqdN.js} +9 -3
- package/dist/{online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-Ciue53Ue.js → online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-CmqZAqu1.js} +8 -1
- package/dist/{pagination-design-BYqVZGdA.js → pagination-design-Dop8MV9G.js} +2 -2
- package/dist/paper-widget-design-08DdkPnA.js +4 -0
- package/dist/{print-runtime-instance-D3BJGzia.js → print-runtime-instance-Cua5hUF_.js} +1 -1
- package/dist/{print-snapshot-renderer-MzkjvlA8.js → print-snapshot-renderer-DhWN9RW4.js} +3 -3
- package/dist/{qrcode-design-B0YGEijA.js → qrcode-design-BCtXtAat.js} +1 -1
- package/dist/{revo-grid.entry-DdE6cuGJ.js → revo-grid.entry-CyW8Da8E.js} +1 -1
- package/dist/{revogr-attribution_7.entry-Er1fVrov.js → revogr-attribution_7.entry-BkB6U7q_.js} +3 -3
- package/dist/{revogr-clipboard_3.entry-COq2SN-B.js → revogr-clipboard_3.entry-Ddigm8oN.js} +2 -2
- package/dist/{revogr-data_4.entry--CfGDdVK.js → revogr-data_4.entry-CTpmK1ZW.js} +2 -2
- package/dist/{revogr-filter-panel.entry-DoNXkBy6.js → revogr-filter-panel.entry-bP4NeSP9.js} +1 -1
- package/dist/seal-design-BNxXxnUL.js +4 -0
- package/dist/{serialnumber-design-fMRSi9jn.js → serialnumber-design-kT8DU_Tq.js} +1 -1
- package/dist/shared/index.es.js +23 -21
- package/dist/{single-field-drop-BycxT2Kf.js → single-field-drop-YItPwvI8.js} +2 -2
- package/dist/{size-editor-BKJfYgbR.js → size-editor-Drr9F87G.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 +2 -2
- 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 +2 -0
- package/dist/src/nocode-base/src/hooks/material-consume-object/bom-validator.d.ts +4 -3
- package/dist/src/nocode-base/src/hooks/material-consume-object/initialize-autofill.d.ts +19 -0
- package/dist/src/nocode-base/src/hooks/material-consume-object/object-validation-controller.d.ts +24 -0
- package/dist/src/nocode-base/src/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/async-task-coordinator.d.ts +6 -2
- 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-field-initializer.d.ts +1 -1
- package/dist/src/nocode-base/src/runtime/runtime-form-state-store.d.ts +6 -2
- package/dist/src/nocode-base/src/runtime/runtime-validation-service.d.ts +1 -0
- package/dist/src/nocode-base/src/runtime/table-row-identity.d.ts +2 -0
- package/dist/src/nocode-base/src/types/render/mc-render.d.ts +1 -1
- 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/nocode-web-render/src/render/sub-table/material-consume/mc-web-render.d.ts +1 -1
- 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 +23 -0
- package/dist/src/online-form/src/views/designer/hooks/useSpreadSheet.d.ts +9 -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 +1 -0
- package/dist/src/online-form/src/views/designer/modules/panel/sub-table/comps/use-dynamic-sub-table-panel.d.ts +6 -0
- package/dist/src/online-form/src/views/designer/modules/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-BxG7QiiX.js → sub-table-factory-Bo2zXOND.js} +38 -18
- package/dist/{text-design-BQKYk7aD.js → text-design-gYIB2wsK.js} +5 -4
- package/dist/{throttle-Cpk1LoGk-BI0wP2Le.js → throttle-Cpk1LoGk-BR0FKbBO.js} +1 -1
- package/dist/{timediff-design-O1IfzLVD.js → timediff-design-D3K1m5ks.js} +1 -1
- package/dist/{trace-like-wrapper-CdKGpstE.js → trace-like-wrapper-BryJKIYo.js} +5 -2
- package/dist/{value-editor.vue_vue_type_style_index_0_lang-CCv0wmKI.js → value-editor.vue_vue_type_style_index_0_lang-CaA8tQLH.js} +2 -2
- package/dist/web-render/index.es.js +3 -3
- package/dist/{widget-barcode-CK68yjvd.js → widget-barcode-DhkLWypr.js} +4 -4
- package/dist/{widget-diagonal-9F-6feRM.js → widget-diagonal-BulDr3sI.js} +3 -3
- package/dist/{widget-image-2GcRCaIf.js → widget-image-ykQnNE7R.js} +5 -5
- package/dist/{widget-line-flwy9kew.js → widget-line-W6QxVu26.js} +2 -2
- package/dist/{widget-pagination-pxpEH1UB.js → widget-pagination-YZ4EqrKZ.js} +5 -5
- package/dist/{widget-power-pFQ7lwCW.js → widget-power-BNVlBaZt.js} +3 -3
- package/dist/{widget-qrcode-D_Ri0RG2.js → widget-qrcode-CNTsZ7Hc.js} +3 -3
- package/dist/{widget-rangelimit-DB97heRc.js → widget-rangelimit-CBD2VPdN.js} +3 -3
- package/dist/{widget-serialnumber-I35Sov0R.js → widget-serialnumber-D8pTdCZ_.js} +1 -1
- package/dist/{widget-text-C93W0WWM.js → widget-text-C7HTZj71.js} +5 -5
- package/dist/{widget-timediff-S4X81H7c.js → widget-timediff-plJKpQ66.js} +2 -2
- package/package.json +2 -2
- package/dist/paper-widget-design-BcSUNaAF.js +0 -4
- package/dist/seal-design-CHOawN-k.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-bwZ-XvGB.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-bwZ-XvGB.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-DD1zKzOS.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-DD1zKzOS.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-Bo2zXOND.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-Bo2zXOND.js";
|
|
10
|
+
import { B as B3, F as F2, M as M3, a as a8, u as u2 } from "../mb-render-xzFolqdN.js";
|
|
11
11
|
const InstanceStatusValues = {
|
|
12
12
|
/** 作废状态 */
|
|
13
13
|
ABANDON: "ABANDON",
|
|
@@ -190,7 +190,7 @@ class RuntimeFieldInitializer {
|
|
|
190
190
|
await Promise.resolve();
|
|
191
191
|
this.scheduled = false;
|
|
192
192
|
if (!signal.aborted && !this.disposed) await this.initialize();
|
|
193
|
-
}).catch((
|
|
193
|
+
}).catch(() => void 0).finally(() => this.tasks.delete("initialize:structure"));
|
|
194
194
|
});
|
|
195
195
|
}
|
|
196
196
|
record;
|
|
@@ -203,7 +203,7 @@ class RuntimeFieldInitializer {
|
|
|
203
203
|
disposed = false;
|
|
204
204
|
scheduled = false;
|
|
205
205
|
unsubscribe;
|
|
206
|
-
/**
|
|
206
|
+
/** 初次加载等待全部目标;默认值请求失败保留在任务中心供诊断,但不阻止提交。 */
|
|
207
207
|
async initialize() {
|
|
208
208
|
if (this.disposed || this.info.renderPurpose || this.info.platformType === PlatformEnum.INTEGRATION_PAAS_DP)
|
|
209
209
|
return;
|
|
@@ -247,7 +247,8 @@ class RuntimeFieldInitializer {
|
|
|
247
247
|
modelKey: props.modelKey,
|
|
248
248
|
subModelKey: props.subModelKey
|
|
249
249
|
},
|
|
250
|
-
sheetId
|
|
250
|
+
sheetId,
|
|
251
|
+
blockOnFailure: false
|
|
251
252
|
}
|
|
252
253
|
).finally(() => this.tasks.delete(key));
|
|
253
254
|
pending.push(task);
|
|
@@ -259,7 +260,7 @@ class RuntimeFieldInitializer {
|
|
|
259
260
|
this.record.asyncTasks.cancel(key);
|
|
260
261
|
this.tasks.delete(key);
|
|
261
262
|
}
|
|
262
|
-
await Promise.
|
|
263
|
+
await Promise.allSettled(pending);
|
|
263
264
|
}
|
|
264
265
|
request(key, fetch) {
|
|
265
266
|
const existing = this.requests.get(key);
|
|
@@ -384,7 +385,7 @@ function getSourceFields(record, expression, currentSubtable) {
|
|
|
384
385
|
});
|
|
385
386
|
}
|
|
386
387
|
function isEmptyValue(value) {
|
|
387
|
-
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;
|
|
388
389
|
}
|
|
389
390
|
function getRulePaths(record, props, targetFieldId, modelKey, scopeFieldId = targetFieldId) {
|
|
390
391
|
const subtableField = props.subFieldKey;
|
|
@@ -690,13 +691,30 @@ class RuntimeRuleCompiler {
|
|
|
690
691
|
const expression = assignment?.expression || props.formulaExpr;
|
|
691
692
|
if (!expression || !targetFieldId) return;
|
|
692
693
|
const strategy = assignment?.strategy ?? ASSIGNMENTSTRATEGY_ENUM.alwaysCover;
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
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]))
|
|
698
701
|
formState.markUserModified(path);
|
|
699
|
-
|
|
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
|
+
);
|
|
700
718
|
}
|
|
701
719
|
this.unregisters.push(
|
|
702
720
|
dependencies.register({
|
|
@@ -705,20 +723,42 @@ class RuntimeRuleCompiler {
|
|
|
705
723
|
sheetId,
|
|
706
724
|
sourceFields: getSourceFields(this.record, expression, subFieldKey),
|
|
707
725
|
structureFields,
|
|
708
|
-
run: async (
|
|
726
|
+
run: async (_change, execution) => {
|
|
709
727
|
if (this.disposed) return;
|
|
710
|
-
if (!isLegacyFormula && change.revision === 0 && change.source === "system") return;
|
|
711
728
|
if (!this.canWriteFormulas()) return;
|
|
712
729
|
const results = await Promise.all(
|
|
713
730
|
listRuntimeFieldRows(this.record, subFieldKey, scopeFieldId).map(async (target) => {
|
|
714
731
|
const row = this.getWritableRow(target.row, props);
|
|
715
732
|
const path = formState.getFieldPath(row, targetFieldId);
|
|
716
|
-
|
|
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 });
|
|
744
|
+
return;
|
|
745
|
+
}
|
|
746
|
+
if (!isLegacyFormula && previous?.inputs && !previous.pending && isEqual(previous.inputs, inputs))
|
|
717
747
|
return;
|
|
718
|
-
|
|
719
|
-
|
|
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);
|
|
720
760
|
const value = isLegacyFormula ? empty ? null : Number(result) : formatDateCompliance(result, props.newSpecificConfig?.mappingType);
|
|
721
|
-
return { target, row, path, value };
|
|
761
|
+
return { target, row, path, value, inputs };
|
|
722
762
|
})
|
|
723
763
|
);
|
|
724
764
|
if (!this.canWriteFormulas() || !execution.isCurrent()) return;
|
|
@@ -726,7 +766,9 @@ class RuntimeRuleCompiler {
|
|
|
726
766
|
"formula",
|
|
727
767
|
() => results.forEach((result) => {
|
|
728
768
|
if (!result) return;
|
|
729
|
-
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 });
|
|
730
772
|
if (!isLegacyFormula && strategy !== ASSIGNMENTSTRATEGY_ENUM.alwaysCover && formState.isUserModified(path))
|
|
731
773
|
return;
|
|
732
774
|
if (Object.is(row[targetFieldId], value)) return;
|
|
@@ -744,7 +786,12 @@ class RuntimeRuleCompiler {
|
|
|
744
786
|
}
|
|
745
787
|
getWritableRow(row, props) {
|
|
746
788
|
if (!props.isFieldModel) return row;
|
|
747
|
-
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
|
+
);
|
|
748
795
|
return row._OPCT;
|
|
749
796
|
}
|
|
750
797
|
/** 公式变更记录也属于实例生命周期,未打开的 Sheet 不再漏记。 */
|
|
@@ -805,6 +852,10 @@ class FormTmplBomController {
|
|
|
805
852
|
field2TableMap = {};
|
|
806
853
|
/** 默认物料消耗模式 */
|
|
807
854
|
defaultMCPattern = MaterialConsumptionPatternEnum.RECORD;
|
|
855
|
+
/** 表单实例身份与 BOM 数据是否存在无关,模板展示也会创建完整控制器。 */
|
|
856
|
+
hasFormInstance = false;
|
|
857
|
+
/** 按页面中的表解析后的配置,页面与打印共用。 */
|
|
858
|
+
resolvedTmplBomList = [];
|
|
808
859
|
constructor() {
|
|
809
860
|
}
|
|
810
861
|
/**
|
|
@@ -822,7 +873,9 @@ class FormTmplBomController {
|
|
|
822
873
|
productQty: this.productQty,
|
|
823
874
|
historyData: this.historyData,
|
|
824
875
|
field2TableMap: this.field2TableMap,
|
|
825
|
-
defaultMCPattern: this.defaultMCPattern
|
|
876
|
+
defaultMCPattern: this.defaultMCPattern,
|
|
877
|
+
hasFormInstance: this.hasFormInstance,
|
|
878
|
+
resolvedTmplBomList: this.resolvedTmplBomList
|
|
826
879
|
})
|
|
827
880
|
);
|
|
828
881
|
(view.tmplBomList ?? []).forEach((config) => {
|
|
@@ -874,11 +927,11 @@ class FormTmplBomController {
|
|
|
874
927
|
* @readonly
|
|
875
928
|
*/
|
|
876
929
|
get bomEntries() {
|
|
877
|
-
return this.formInstBom?.bomEntries;
|
|
930
|
+
return this.formInstBom?.bomEntries ?? [];
|
|
878
931
|
}
|
|
879
932
|
/** 表单模板bom信息配置列表 */
|
|
880
933
|
get tmplBomList() {
|
|
881
|
-
return this.
|
|
934
|
+
return this.resolvedTmplBomList;
|
|
882
935
|
}
|
|
883
936
|
/**
|
|
884
937
|
* bom那边指定的当前工序的开关
|
|
@@ -887,30 +940,55 @@ class FormTmplBomController {
|
|
|
887
940
|
get enableSequenceLoading() {
|
|
888
941
|
return !!this.formInstBom?.sequenceEntries?.[0]?.enabled_;
|
|
889
942
|
}
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
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
|
+
/** 有实例时读取实例配置,无实例时仅创建默认展示控制器。 */
|
|
893
955
|
async init(data) {
|
|
894
|
-
|
|
895
|
-
|
|
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;
|
|
896
985
|
}
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
production_identification_id_: this.formInstBom.productionIdentificationId,
|
|
903
|
-
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;
|
|
904
991
|
});
|
|
905
|
-
const isGranted = await isBomGranted();
|
|
906
|
-
this.defaultMCPattern = isGranted ? MaterialConsumptionPatternEnum.BOM : MaterialConsumptionPatternEnum.RECORD;
|
|
907
|
-
this.tableControllers = {};
|
|
908
|
-
this.tmplBomList.forEach((cur) => {
|
|
909
|
-
const controller = new MaterialConsumeTableController(this, cur);
|
|
910
|
-
const [tableKey, fieldKey] = cur.table_key_.split(":");
|
|
911
|
-
this.tableControllers[tableKey] = controller;
|
|
912
|
-
this.field2TableMap[fieldKey] = tableKey;
|
|
913
|
-
}, {});
|
|
914
992
|
}
|
|
915
993
|
/**
|
|
916
994
|
* 根据字段key获取子表控制器
|
|
@@ -955,9 +1033,31 @@ class FormTmplBomController {
|
|
|
955
1033
|
});
|
|
956
1034
|
});
|
|
957
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
|
+
}
|
|
958
1058
|
async submitValidate() {
|
|
959
1059
|
const results = await Promise.all(
|
|
960
|
-
Object.values(this.tableControllers).map((
|
|
1060
|
+
Object.values(this.tableControllers).map((c10) => c10.submitValidate())
|
|
961
1061
|
);
|
|
962
1062
|
const fields = {};
|
|
963
1063
|
let isValid = true;
|
|
@@ -971,6 +1071,79 @@ class FormTmplBomController {
|
|
|
971
1071
|
};
|
|
972
1072
|
}
|
|
973
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
|
+
}
|
|
974
1147
|
async function getModelQueries(opts) {
|
|
975
1148
|
const isEdhr = await isEdhrSuite();
|
|
976
1149
|
if (!isEdhr || !opts.mainMaterialNo) {
|
|
@@ -1115,13 +1288,14 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
|
|
|
1115
1288
|
let runtimeFormStateStore;
|
|
1116
1289
|
let scriptRunner;
|
|
1117
1290
|
try {
|
|
1118
|
-
const normalizedRuntime = normalizeRuntime(selfInfo?.runtimeJson || "{}");
|
|
1291
|
+
const normalizedRuntime = normalizeRuntime(selfInfo?.runtimeJson || "{}", selfInfo.formType);
|
|
1119
1292
|
const tid = result.tid;
|
|
1120
1293
|
const uniqueId = `${tid}_${uuid2(8)}`;
|
|
1121
1294
|
const runtimeContext = createRuntimeInstanceContext({
|
|
1122
1295
|
uniqueId,
|
|
1123
1296
|
instanceId: id,
|
|
1124
1297
|
templateId: tid,
|
|
1298
|
+
formType: selfInfo.formType,
|
|
1125
1299
|
runtime: normalizedRuntime,
|
|
1126
1300
|
defaultData: {}
|
|
1127
1301
|
});
|
|
@@ -1263,6 +1437,8 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
|
|
|
1263
1437
|
}
|
|
1264
1438
|
await tmplBomC.init({
|
|
1265
1439
|
formInstBom: selfInfo.formInstBom,
|
|
1440
|
+
materialConsumeTableList: businessIndex.materialConsumeTableList,
|
|
1441
|
+
hasFormInstance: isFormInstance,
|
|
1266
1442
|
operationId: paramsConfig?.routingOperationId,
|
|
1267
1443
|
materialNo,
|
|
1268
1444
|
productQty: paramsConfig?.productQty
|
|
@@ -1334,7 +1510,16 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
|
|
|
1334
1510
|
params: { id: paramsConfig?.warehouseId }
|
|
1335
1511
|
}
|
|
1336
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
|
+
});
|
|
1337
1521
|
const defaultDataMap = renderUtils.getDefaultValueMapByField({
|
|
1522
|
+
objectProductDefaults,
|
|
1338
1523
|
defaultValueFields: fieldInfoMap.useDefaultValueFields,
|
|
1339
1524
|
mainMaterialNo: paramsConfig?.materialNo || selfInfo.materialNo,
|
|
1340
1525
|
mainRelatedLotNo: paramsConfig?.relatedLotNo,
|
|
@@ -1424,6 +1609,21 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
|
|
|
1424
1609
|
});
|
|
1425
1610
|
initializeSealFields(floatingFields, formState);
|
|
1426
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();
|
|
1427
1627
|
runtimeFormStateStore = new RuntimeFormStateStore(
|
|
1428
1628
|
formState,
|
|
1429
1629
|
// 子表信息覆盖普通/固定/检验表、二维关联列以及各类业务表;不能只依赖已放置字段。
|
|
@@ -1542,6 +1742,18 @@ function bindRuntimeBusinessServices(runtimeRegistry, record, dataStatus) {
|
|
|
1542
1742
|
uniqueId,
|
|
1543
1743
|
() => MaterialConsumeTableController.render?.destroyAllModals(uniqueId)
|
|
1544
1744
|
);
|
|
1745
|
+
runtimeRegistry.registerDisposable(
|
|
1746
|
+
uniqueId,
|
|
1747
|
+
watch(
|
|
1748
|
+
() => record.context.activeSheetId,
|
|
1749
|
+
(next, previous) => {
|
|
1750
|
+
if (next !== previous) {
|
|
1751
|
+
MaterialConsumeTableController.render?.destroyAllModals(uniqueId);
|
|
1752
|
+
}
|
|
1753
|
+
},
|
|
1754
|
+
{ flush: "sync" }
|
|
1755
|
+
)
|
|
1756
|
+
);
|
|
1545
1757
|
if (!mcList.length) return;
|
|
1546
1758
|
const tmplBomC = record.context.services.tmplBomController;
|
|
1547
1759
|
if (!tmplBomC) return;
|
|
@@ -1559,18 +1771,13 @@ function bindRuntimeBusinessServices(runtimeRegistry, record, dataStatus) {
|
|
|
1559
1771
|
}
|
|
1560
1772
|
}),
|
|
1561
1773
|
mainFormState: computed(() => record.formState.state),
|
|
1562
|
-
dataStatus
|
|
1563
|
-
defaultRowData: renderUtils.getDefaultValueInfo({
|
|
1564
|
-
defaultDataMap: record.context.defaultData,
|
|
1565
|
-
key: field
|
|
1566
|
-
})
|
|
1774
|
+
dataStatus
|
|
1567
1775
|
});
|
|
1568
1776
|
stops.push(
|
|
1569
1777
|
watch(
|
|
1570
1778
|
() => controller.materialNoNum,
|
|
1571
1779
|
() => {
|
|
1572
|
-
|
|
1573
|
-
controller.syncQtyRequiredFromBom();
|
|
1780
|
+
controller.syncQtyRequiredFromBomIfChanged();
|
|
1574
1781
|
},
|
|
1575
1782
|
{ immediate: true }
|
|
1576
1783
|
)
|
|
@@ -1838,7 +2045,13 @@ function createRuntimePersistenceAccess(runtimeRegistry, props, payload) {
|
|
|
1838
2045
|
const signatureKeys = (runtimeRecord.context.businessIndex.useSignatureFields || []).map(
|
|
1839
2046
|
(item) => item.fieldId
|
|
1840
2047
|
);
|
|
1841
|
-
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
|
+
);
|
|
1842
2055
|
if (saveToken ? !runtimeRecord.persistence.completeSave(saveToken) : requestedRevision !== runtimeRecord.formState.revision) {
|
|
1843
2056
|
return false;
|
|
1844
2057
|
}
|
|
@@ -1915,6 +2128,139 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1915
2128
|
}
|
|
1916
2129
|
});
|
|
1917
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
|
+
}
|
|
1918
2264
|
function applyValidationComments(info, comments, kind) {
|
|
1919
2265
|
if (!info) return;
|
|
1920
2266
|
const locationKey = kind === "field" ? "validatorLocationList" : "mcValidatorLocationList";
|
|
@@ -1932,6 +2278,29 @@ function applyValidationComments(info, comments, kind) {
|
|
|
1932
2278
|
info[messageKey] = map;
|
|
1933
2279
|
}
|
|
1934
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
|
+
}
|
|
1935
2304
|
const inspectionDecisionMatched = /* @__PURE__ */ new WeakMap();
|
|
1936
2305
|
const inspectionDecisionPrompting = /* @__PURE__ */ new WeakSet();
|
|
1937
2306
|
function openInspectionDecisionPrompt(uniqueId, content) {
|
|
@@ -1972,11 +2341,14 @@ function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType)
|
|
|
1972
2341
|
return matched;
|
|
1973
2342
|
}
|
|
1974
2343
|
function clearInspectionValidationState(uniqueId) {
|
|
2344
|
+
const record = runtimeRegistry.get(uniqueId);
|
|
2345
|
+
if (record) objectValidations.get(record)?.clear();
|
|
1975
2346
|
applyValidationComments(getInfo(uniqueId), null, "field");
|
|
1976
2347
|
applyValidationComments(getInfo(uniqueId), null, "material");
|
|
1977
2348
|
}
|
|
1978
2349
|
function bindFormValidationSync(uniqueId) {
|
|
1979
2350
|
const record = runtimeRegistry.require(uniqueId);
|
|
2351
|
+
const objects = getObjectValidation(record);
|
|
1980
2352
|
syncInspectionDecisionRule(uniqueId);
|
|
1981
2353
|
const stop = record.formState.subscribe(() => {
|
|
1982
2354
|
if (runtimeRegistry.get(uniqueId) !== record) return;
|
|
@@ -1987,6 +2359,7 @@ function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType)
|
|
|
1987
2359
|
uniqueId,
|
|
1988
2360
|
!suppressed && info.renderModeType === RenderModeEnum.FormMode
|
|
1989
2361
|
);
|
|
2362
|
+
objects.requestLive();
|
|
1990
2363
|
if (suppressed) return;
|
|
1991
2364
|
if (info.renderModeType === RenderModeEnum.FormMode) {
|
|
1992
2365
|
record.validation.requestLive("change");
|
|
@@ -2019,48 +2392,43 @@ function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType)
|
|
|
2019
2392
|
}
|
|
2020
2393
|
async function runSubmissionValidation(uniqueId) {
|
|
2021
2394
|
const record = runtimeRegistry.require(uniqueId);
|
|
2022
|
-
const
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
const res = await record.validation.validate();
|
|
2029
|
-
if (!res || runtimeRegistry.get(uniqueId) !== record) return;
|
|
2030
|
-
const revision = record.formState.revision;
|
|
2031
|
-
if (bomC) {
|
|
2032
|
-
const bomRes = await bomC.submitValidate();
|
|
2033
|
-
if (runtimeRegistry.get(uniqueId) !== record || record.formState.revision !== revision)
|
|
2034
|
-
return;
|
|
2035
|
-
applyValidationComments(getInfo(uniqueId), bomRes.fields ?? null, "material");
|
|
2036
|
-
if (!bomRes.isValid) {
|
|
2037
|
-
merge(res, bomRes);
|
|
2038
|
-
return res;
|
|
2395
|
+
const objects = getObjectValidation(record);
|
|
2396
|
+
objects.beginSubmit();
|
|
2397
|
+
try {
|
|
2398
|
+
if (syncInspectionDecisionRule(uniqueId)) {
|
|
2399
|
+
clearInspectionValidationState(uniqueId);
|
|
2400
|
+
return { isValid: true };
|
|
2039
2401
|
}
|
|
2040
|
-
const
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
const
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
const
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
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();
|
|
2061
2427
|
}
|
|
2428
|
+
return res;
|
|
2429
|
+
} finally {
|
|
2430
|
+
objects.endSubmit();
|
|
2062
2431
|
}
|
|
2063
|
-
return res;
|
|
2064
2432
|
}
|
|
2065
2433
|
function updateRenderModeType(uniqueId, mode, updateButton = false) {
|
|
2066
2434
|
const record = runtimeRegistry.require(uniqueId);
|
|
@@ -2078,7 +2446,9 @@ function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType)
|
|
|
2078
2446
|
if (!isCurrent() || runtimeRegistry.get(uniqueId) !== record) return;
|
|
2079
2447
|
await record.validation.settleAfterModeSwitch(mode === RenderModeEnum.FormMode);
|
|
2080
2448
|
}).catch((error) => {
|
|
2081
|
-
if (runtimeRegistry.get(uniqueId)
|
|
2449
|
+
if (runtimeRegistry.get(uniqueId) !== record) return;
|
|
2450
|
+
if (error instanceof Error && error.message.startsWith("以下异步任务执行失败:")) return;
|
|
2451
|
+
console.error("表单模式准备失败", error);
|
|
2082
2452
|
});
|
|
2083
2453
|
}
|
|
2084
2454
|
async function prepareInitialView(record) {
|
|
@@ -2274,8 +2644,12 @@ function useRenderPageFactory(props, payload) {
|
|
|
2274
2644
|
onValidate: () => runSubmissionValidation(uniqueId),
|
|
2275
2645
|
onValidationFailed: (result) => record.sheetService.navigateFirstError(Object.keys(result.fields ?? {})),
|
|
2276
2646
|
onGetSubmitData: (formState) => {
|
|
2277
|
-
record.context.services.subTableCoreFactory
|
|
2278
|
-
|
|
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
|
+
});
|
|
2279
2653
|
}
|
|
2280
2654
|
})
|
|
2281
2655
|
);
|
|
@@ -2472,7 +2846,7 @@ function useEbrWikiFactoryV2(props, payload) {
|
|
|
2472
2846
|
}
|
|
2473
2847
|
watch(
|
|
2474
2848
|
[() => props.materialNo, () => edhrCounter.value],
|
|
2475
|
-
async ([newMaterialNo,
|
|
2849
|
+
async ([newMaterialNo, _]) => {
|
|
2476
2850
|
if (isEmpty(newMaterialNo)) return;
|
|
2477
2851
|
loading.value = true;
|
|
2478
2852
|
clear();
|
|
@@ -2651,7 +3025,7 @@ function useEbrWikiFactoryV2(props, payload) {
|
|
|
2651
3025
|
);
|
|
2652
3026
|
watch(
|
|
2653
3027
|
[() => selectSelfInfo.value, () => instanceCounter.value],
|
|
2654
|
-
([newSelectSelfInfo,
|
|
3028
|
+
([newSelectSelfInfo, _]) => {
|
|
2655
3029
|
if (newSelectSelfInfo && payload.pageType === "record-change") {
|
|
2656
3030
|
emitter.emit(EmitterEnum.__on_select_ebr_doc_instance_id, {
|
|
2657
3031
|
instanceId: newSelectSelfInfo.id
|
|
@@ -3007,9 +3381,9 @@ class FormAnnotationController {
|
|
|
3007
3381
|
const items = this.normalizeAllResponse(res);
|
|
3008
3382
|
this.applyAnnotationItems(items, () => true);
|
|
3009
3383
|
return items;
|
|
3010
|
-
} catch (
|
|
3011
|
-
console.error("加载所有批注信息 error",
|
|
3012
|
-
throw
|
|
3384
|
+
} catch (e2) {
|
|
3385
|
+
console.error("加载所有批注信息 error", e2);
|
|
3386
|
+
throw e2;
|
|
3013
3387
|
}
|
|
3014
3388
|
};
|
|
3015
3389
|
handleOpenAnnotation = async () => {
|
|
@@ -3056,250 +3430,251 @@ function filterAnnotationItemsUpToCurrent(items) {
|
|
|
3056
3430
|
});
|
|
3057
3431
|
}
|
|
3058
3432
|
export {
|
|
3059
|
-
|
|
3433
|
+
aL as AITooltips,
|
|
3060
3434
|
A3 as AllocateTableCore,
|
|
3061
3435
|
B3 as BaseFormModelFetcher,
|
|
3062
|
-
|
|
3063
|
-
|
|
3064
|
-
|
|
3436
|
+
aN as BinarizeMethodOptions,
|
|
3437
|
+
a_ as BindCmpStyleEnum,
|
|
3438
|
+
a0 as BooleanShowMode,
|
|
3065
3439
|
B2 as BorderTD,
|
|
3066
3440
|
BpmnNodeTypeEnum,
|
|
3067
|
-
|
|
3068
|
-
|
|
3441
|
+
by as BpmnSignatureTypeEnum,
|
|
3442
|
+
bz as ButtonTypeEnum,
|
|
3069
3443
|
B as BwipCodeType,
|
|
3070
|
-
|
|
3444
|
+
bA as CHECK_TABLE_MEDPRO_PROTOCOL_KEY,
|
|
3071
3445
|
y as CellType,
|
|
3072
|
-
|
|
3446
|
+
af as CellWidgetViewState,
|
|
3073
3447
|
CheckDsTypeEnum,
|
|
3074
|
-
|
|
3448
|
+
bB as CodeRunner,
|
|
3075
3449
|
ComponentTypeEnum,
|
|
3076
|
-
|
|
3077
|
-
|
|
3078
|
-
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
|
|
3082
|
-
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
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,
|
|
3087
3461
|
D as DevicePartConsumeTableCore,
|
|
3088
|
-
|
|
3089
|
-
|
|
3090
|
-
|
|
3091
|
-
|
|
3092
|
-
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
|
|
3096
|
-
|
|
3097
|
-
|
|
3098
|
-
|
|
3099
|
-
|
|
3100
|
-
|
|
3101
|
-
|
|
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,
|
|
3102
3476
|
FillingTypeEnum,
|
|
3103
|
-
|
|
3477
|
+
aq as FixedQuickFillModal,
|
|
3104
3478
|
FormAnnotationController,
|
|
3105
3479
|
F2 as FormModelController,
|
|
3106
3480
|
FormTmplBomController,
|
|
3107
|
-
|
|
3481
|
+
ar as FormTmplConfigController,
|
|
3108
3482
|
FormTypeEnum,
|
|
3109
|
-
|
|
3483
|
+
aw as ImageDisplayModeEnum,
|
|
3110
3484
|
InstanceStatusValues,
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
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,
|
|
3117
3491
|
L as LineType,
|
|
3118
|
-
|
|
3492
|
+
bI as MAX_FRONT_ROW_KEY_LENGTH,
|
|
3119
3493
|
M as MAX_RUNTIME_SHEETS,
|
|
3120
3494
|
a as MAX_RUNTIME_SHEET_TITLE_LENGTH,
|
|
3121
3495
|
M3 as MBRender,
|
|
3122
|
-
|
|
3123
|
-
|
|
3496
|
+
av2 as MCDataUtil,
|
|
3497
|
+
a8 as MCRender,
|
|
3124
3498
|
b as MULTI_SHEET_SCHEMA_VERSION,
|
|
3125
3499
|
MaterialConsumeTableController,
|
|
3126
3500
|
MaterialConsumptionPatternEnum,
|
|
3127
3501
|
M2 as MaterialRequisitionTableCore,
|
|
3128
3502
|
MaterialStatusEnum,
|
|
3129
|
-
|
|
3130
|
-
|
|
3503
|
+
a7 as MaterialSubstitutionTableCore,
|
|
3504
|
+
bJ as MobileFillTypeEnum,
|
|
3131
3505
|
NCB_PROVIDE,
|
|
3132
|
-
|
|
3133
|
-
|
|
3506
|
+
aw2 as OCR_MODEL_PRECISION_ENUM_KEY,
|
|
3507
|
+
bK as OfficeTypeEnum,
|
|
3134
3508
|
O as Orientation,
|
|
3135
3509
|
p as PageSizeEnum,
|
|
3136
3510
|
P as PaginationFormat,
|
|
3137
|
-
|
|
3511
|
+
a9 as PaperSizeMap,
|
|
3138
3512
|
o as PaperWidgeType,
|
|
3139
3513
|
Q as PaperWidgeValueType,
|
|
3140
3514
|
A as ParamModelTypeEnum,
|
|
3141
3515
|
P2 as PartStocktakeTableCore,
|
|
3142
3516
|
PlatformEnum,
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
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,
|
|
3149
3523
|
RenderModeEnum,
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3524
|
+
ax as RuntimeAsyncTaskCoordinator,
|
|
3525
|
+
ay as RuntimeDependencyService,
|
|
3526
|
+
az as RuntimeFieldRegistry,
|
|
3153
3527
|
RuntimeFormStateStore,
|
|
3154
3528
|
RuntimeInstanceController,
|
|
3155
|
-
|
|
3529
|
+
aA as RuntimeInstanceEventBus,
|
|
3156
3530
|
RuntimeInstanceRegistry,
|
|
3157
|
-
|
|
3531
|
+
aB as RuntimePersistenceCoordinator,
|
|
3158
3532
|
RuntimeRuleCompiler,
|
|
3159
3533
|
RuntimeSheetService,
|
|
3160
|
-
|
|
3161
|
-
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
|
|
3165
|
-
|
|
3534
|
+
aC as RuntimeValidationService,
|
|
3535
|
+
a5 as SignShowTypeEnum,
|
|
3536
|
+
a1 as SignatureImageDirectionEnum,
|
|
3537
|
+
a3 as SignatureNumberTypeEnum,
|
|
3538
|
+
a4 as SignatureTimeTypeEnum,
|
|
3539
|
+
a6 as SignatureTypeEnum,
|
|
3166
3540
|
d2 as SterilizeBatchTableCore,
|
|
3167
|
-
|
|
3168
|
-
|
|
3541
|
+
e as StocktakeTableCore,
|
|
3542
|
+
aD2 as SubTableCore,
|
|
3169
3543
|
SubTableCoreFactory,
|
|
3170
3544
|
f as SubTableType,
|
|
3171
|
-
|
|
3172
|
-
|
|
3173
|
-
|
|
3545
|
+
bN as SummaryApproveHisTypeEnum,
|
|
3546
|
+
aj as TimeDiffFormat,
|
|
3547
|
+
an as ViewTypeEnum,
|
|
3174
3548
|
W as WarehouseInTableCore,
|
|
3175
|
-
|
|
3549
|
+
f2 as WarehouseInboundTableCore,
|
|
3176
3550
|
g as WarehouseOutTableCore,
|
|
3177
|
-
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3181
|
-
|
|
3551
|
+
h as WarehouseOutboundTableCore,
|
|
3552
|
+
ah as WidgetImageSizeMode,
|
|
3553
|
+
bO as applyCheckDsDataToRuntime,
|
|
3554
|
+
C as applyConsumeObjectTraceChange,
|
|
3555
|
+
bP as applyMedProCheckDsDataToRuntime,
|
|
3182
3556
|
baseDataUtils,
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3186
|
-
|
|
3187
|
-
|
|
3557
|
+
bQ as bindRuntimeTableColumns,
|
|
3558
|
+
bR as buildDeviceBaseQuery,
|
|
3559
|
+
ba as buildDeviceFilterQuery,
|
|
3560
|
+
aE as buildFormChangeDisplayRows,
|
|
3561
|
+
t2 as buildObjectLotExtraQuery,
|
|
3188
3562
|
buildRuntimeFieldPath,
|
|
3189
|
-
|
|
3190
|
-
|
|
3563
|
+
bS as calcFillData,
|
|
3564
|
+
bT as calcUtils,
|
|
3191
3565
|
calculateFormula,
|
|
3192
3566
|
collectAnnotationItemsByLocation,
|
|
3193
3567
|
collectFormChangeFieldLocations,
|
|
3194
3568
|
commonUtils,
|
|
3195
3569
|
convertHistoricalAnnotationLocation,
|
|
3196
|
-
|
|
3197
|
-
|
|
3570
|
+
aF as convertV1Runtime,
|
|
3571
|
+
d as createRuntimeDocumentV2,
|
|
3198
3572
|
createRuntimeInstanceContext,
|
|
3199
|
-
|
|
3200
|
-
|
|
3201
|
-
|
|
3573
|
+
bU as decodeTableCellRowKey,
|
|
3574
|
+
aG as detailsHaveFormChangeRowOps,
|
|
3575
|
+
bV as encodeTableCellRowKey,
|
|
3202
3576
|
enrichFormChangeRowDetails,
|
|
3203
|
-
|
|
3204
|
-
|
|
3205
|
-
|
|
3206
|
-
|
|
3207
|
-
|
|
3208
|
-
|
|
3577
|
+
bW as ensureFrontRowKey,
|
|
3578
|
+
bX as ensureTableRowKeys,
|
|
3579
|
+
aH as extractFormChangeRowDetails,
|
|
3580
|
+
bY as extractKeywordFromQueryData,
|
|
3581
|
+
bZ as fetchCheckDsDataForTable,
|
|
3582
|
+
b_ as fetchCustomCheckDsData,
|
|
3209
3583
|
fetchHistoryConsume,
|
|
3210
|
-
|
|
3584
|
+
b$ as fetchMedProCheckDsData,
|
|
3211
3585
|
fetchOperationReceiveQty,
|
|
3212
3586
|
fetchUdi,
|
|
3213
3587
|
filterAnnotationItemsUpToCurrent,
|
|
3214
|
-
|
|
3215
|
-
|
|
3588
|
+
be as findRuntimeParentRow,
|
|
3589
|
+
c0 as findRuntimeTableCell,
|
|
3216
3590
|
findRuntimeTableRow,
|
|
3217
3591
|
getAppInfo,
|
|
3218
3592
|
getBusinessFieldKey,
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
|
|
3222
|
-
|
|
3223
|
-
|
|
3224
|
-
|
|
3593
|
+
c1 as getCheckTableSnapshotKey,
|
|
3594
|
+
aI as getFormChangeRowKey,
|
|
3595
|
+
aJ2 as getFormChangeRowOp,
|
|
3596
|
+
aW as getLotLockedReason,
|
|
3597
|
+
r as getObjectBomMaterialLotQuery,
|
|
3598
|
+
E as getObjectBomProductQuery,
|
|
3225
3599
|
getParseFormulaVarInfos,
|
|
3226
|
-
|
|
3227
|
-
|
|
3228
|
-
|
|
3229
|
-
|
|
3230
|
-
|
|
3600
|
+
c2 as getParseRuleConfig,
|
|
3601
|
+
a$ as getParseRuleInfo,
|
|
3602
|
+
b0 as getParseRuleValue,
|
|
3603
|
+
c3 as getReinspectionDate,
|
|
3604
|
+
c4 as getRenderedRuntimeTableCell,
|
|
3231
3605
|
getRuntimeDataFieldId,
|
|
3232
3606
|
getRuntimeDependencyOutputKey,
|
|
3233
|
-
|
|
3607
|
+
aK2 as getSubTableQuickFillInfo,
|
|
3234
3608
|
getSuiteKey,
|
|
3235
|
-
|
|
3236
|
-
|
|
3237
|
-
|
|
3238
|
-
|
|
3239
|
-
|
|
3240
|
-
|
|
3609
|
+
c5 as handleOldConfig,
|
|
3610
|
+
c6 as hasAnyCheckTableSnapshot,
|
|
3611
|
+
c7 as hasByTableCheckTableSnapshot,
|
|
3612
|
+
c8 as hasSharedCheckTableSnapshot,
|
|
3613
|
+
aL2 as isAnnLocationSelected,
|
|
3614
|
+
aM2 as isBlank,
|
|
3241
3615
|
isBomGranted,
|
|
3242
3616
|
isEdhrSuite,
|
|
3243
3617
|
isEqmSuite,
|
|
3244
|
-
|
|
3245
|
-
|
|
3618
|
+
aN2 as isFormChangeGhostRow,
|
|
3619
|
+
c9 as isMedProSuite,
|
|
3246
3620
|
isRowAddedInCurrentFormChange,
|
|
3247
|
-
|
|
3248
|
-
|
|
3249
|
-
|
|
3250
|
-
|
|
3251
|
-
|
|
3621
|
+
ca as isTableRowKeyMatch,
|
|
3622
|
+
cb as jsonSchemaUtils,
|
|
3623
|
+
cc as judgeUnique,
|
|
3624
|
+
aV as materialCheck,
|
|
3625
|
+
cd as migrateDiagonalDirectionToVertex,
|
|
3252
3626
|
nextFormChangeRowViewHistoryId,
|
|
3253
|
-
|
|
3254
|
-
|
|
3255
|
-
|
|
3256
|
-
|
|
3257
|
-
|
|
3627
|
+
l as normalizeAIOcrTmpl,
|
|
3628
|
+
G as normalizeHistoricalAutofillRow,
|
|
3629
|
+
j as normalizeHistoricalBusinessRow,
|
|
3630
|
+
aO2 as normalizeHistoricalFieldConfig,
|
|
3631
|
+
b1 as normalizeRefLoaderResult,
|
|
3258
3632
|
normalizeRuntime,
|
|
3259
3633
|
parseFrontConfig,
|
|
3260
3634
|
parseRuntimeFieldPath,
|
|
3261
3635
|
parseUdi,
|
|
3262
|
-
|
|
3263
|
-
|
|
3264
|
-
|
|
3265
|
-
|
|
3266
|
-
|
|
3636
|
+
aP2 as pickObjectFieldKeys,
|
|
3637
|
+
aQ2 as recordSubtableRowAdd,
|
|
3638
|
+
aR as recordSubtableRowDelete,
|
|
3639
|
+
b8 as refUtils,
|
|
3640
|
+
aS as relocateDeletedRowsToEnd,
|
|
3267
3641
|
renderUtils,
|
|
3268
|
-
|
|
3269
|
-
|
|
3270
|
-
|
|
3271
|
-
|
|
3642
|
+
ce as requestMedProCheckDsData,
|
|
3643
|
+
cf as requestNonMedProCheckDsData,
|
|
3644
|
+
aT as resolveAnnotationFieldLocation,
|
|
3645
|
+
al as resolveDiagonalVertex,
|
|
3272
3646
|
t as resolveFieldRenderComponent,
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
|
|
3276
|
-
|
|
3647
|
+
aU as resolveFormChangeRowUi,
|
|
3648
|
+
y2 as resolveObjectBomEntry,
|
|
3649
|
+
v as resolveObjectFieldKeys,
|
|
3650
|
+
aV2 as resolveRowFormChangeMark,
|
|
3277
3651
|
resolveUdiQuery,
|
|
3278
|
-
|
|
3279
|
-
|
|
3280
|
-
|
|
3652
|
+
z as runWithFillProduct,
|
|
3653
|
+
p2 as setSelectAnnotationId,
|
|
3654
|
+
aW2 as setSelectMobileTdId,
|
|
3281
3655
|
s as setSelectValidatorId,
|
|
3282
|
-
|
|
3283
|
-
|
|
3284
|
-
|
|
3656
|
+
cg as splitRuntimeDataPath,
|
|
3657
|
+
aP as sqlUtils,
|
|
3658
|
+
ch as stockCheck,
|
|
3659
|
+
aX2 as stripLegacyFormConfigFromPaper,
|
|
3285
3660
|
transformUtils,
|
|
3286
|
-
|
|
3661
|
+
R as useDependency,
|
|
3287
3662
|
useEbrWikiFactoryV2,
|
|
3288
|
-
|
|
3663
|
+
S as useFieldPresentation,
|
|
3289
3664
|
u2 as useFormModel,
|
|
3290
3665
|
u as useFormTmplConfig,
|
|
3291
3666
|
useMaterialBalance,
|
|
3292
3667
|
useNocodeEmitter,
|
|
3293
|
-
|
|
3294
|
-
|
|
3295
|
-
|
|
3668
|
+
A2 as useNocodeFormWidget,
|
|
3669
|
+
ci as useOnlineFormActionButton,
|
|
3670
|
+
bf as useOnlineFormTransformField2Component,
|
|
3296
3671
|
useRenderPageFactory,
|
|
3297
|
-
|
|
3298
|
-
|
|
3299
|
-
|
|
3300
|
-
|
|
3301
|
-
|
|
3302
|
-
|
|
3672
|
+
T as useRuntimeEditorFlusher,
|
|
3673
|
+
o2 as useRuntimeInstanceServices,
|
|
3674
|
+
q as useRuntimeRowState,
|
|
3675
|
+
Q2 as useStyles,
|
|
3676
|
+
m as useWidgetStaticAttrs,
|
|
3677
|
+
x as validateObjectBomForScan,
|
|
3303
3678
|
validateObjectBomQtyOnSubmit,
|
|
3304
|
-
|
|
3679
|
+
aX as validateReinspectionDate
|
|
3305
3680
|
};
|