@gct-paas/excel 0.1.40-beta.1 → 0.1.40-beta.4
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-DXIDs5gk.js → BaseComponent-BcxRArl9.js} +2 -2
- package/dist/{VueVideoPlayer-DhyIm-g1.js → VueVideoPlayer-DjIr6Duj.js} +2 -2
- package/dist/{align-editor-BcbgVXRp.js → align-editor-99-Qs6Pu.js} +1 -1
- package/dist/{barcode-design-BiCt0aS7.js → barcode-design-BSkeINVU.js} +2 -2
- package/dist/base/index.es.js +308 -194
- package/dist/{diagonal-design-DmvWALIE.js → diagonal-design-CR7fiPt_.js} +2 -2
- package/dist/{dynamic-table-action-fDIIzS2J.js → dynamic-table-action-D8JTGNuH.js} +292 -138
- package/dist/{dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-DhWpxyhm.js → dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-CxqmyuOf.js} +577 -344
- package/dist/{edit.utils-CXmmCnxE-DxArFSxZ.js → edit.utils-CXmmCnxE-5YnG7Mod.js} +1 -1
- package/dist/excel.css +3294 -4159
- package/dist/{exceljs.min-CjKNZPlo.js → exceljs.min-Ckn1GGo5.js} +2 -2
- package/dist/{font-editor-DseGyVgB.js → font-editor-CIv2e95b.js} +3 -3
- package/dist/{image-design-Dr-L9AdG.js → image-design-Bg1m0JLl.js} +2 -2
- package/dist/{index-C6dFliaf.js → index-0kZW-sd4.js} +1 -1
- package/dist/{index-D5IrgJyh.js → index-6wZ6Y0W3.js} +2 -2
- package/dist/{index-r4MF8_-h.js → index-B4XMnrfl.js} +2 -2
- package/dist/{index-BctQMMgh.js → index-BA_C4l6u.js} +2 -2
- package/dist/{index-DKf57IGi.js → index-BIraya7K.js} +1 -1
- package/dist/{index-BdJ4ouEl.js → index-BZQrpoEw.js} +1 -1
- package/dist/{index-iRameN0x.js → index-BunphFuS.js} +2 -2
- package/dist/{index-C8OPhJhI.js → index-BzdZIihy.js} +1 -1
- package/dist/{index-BPgCZjqV.js → index-C7oAVon1.js} +1 -1
- package/dist/{index-lwjRRvDn.js → index-C8H-5Adw.js} +2 -2
- package/dist/{index-C4tVTc9U.js → index-CRLydLMf.js} +2 -2
- package/dist/{index-DKRpaNo1.js → index-CTyszA6m.js} +1 -1
- package/dist/{index-DrmR7WIs.js → index-CUPuw1ng.js} +2 -2
- package/dist/{index-CScWLXnC.js → index-CYb8lY4k.js} +2 -2
- package/dist/{index-BY7RGawr.js → index-CeCk3V8r.js} +2 -2
- package/dist/{index-CAdGL3Vp.js → index-CeMM7qev.js} +2 -2
- package/dist/{index-JkPJqZ_5.js → index-Cjor8DKp.js} +2 -2
- package/dist/{index-Nytm1-X9.js → index-CsIKJvLT.js} +53 -5
- package/dist/{index-B34ZIwqL.js → index-CzgWwoNs.js} +2 -2
- package/dist/{index-CJ9CrORT.js → index-D7DYLntD.js} +3 -3
- package/dist/{index-DcjOJuDw.js → index-DFJ19IKk.js} +2 -2
- package/dist/{index-DsCTXMxB.js → index-DG8I3apA.js} +1 -1
- package/dist/{index-BjI7JCne.js → index-DHvbmtBs.js} +4 -4
- package/dist/{index-C70T1sVm.js → index-DLZKDd1x.js} +26308 -28538
- package/dist/{index-BxZ3M7eP.js → index-DN83FHdO.js} +1 -1
- package/dist/{index-CXh-4yX8.js → index-DZxTtwzU.js} +3 -3
- package/dist/{index-CewKz2Ro.js → index-DbXQsLWI.js} +1 -1
- package/dist/{index-CX_eR36M.js → index-DgRCrbjc.js} +2 -2
- package/dist/{index-4acBM2Lp.js → index-Do1A3RoM.js} +2 -2
- package/dist/{index-CEmRRPE7.js → index-DprbnBOa.js} +2 -2
- package/dist/{index-hcCJUBne.js → index-DtwSR71M.js} +1 -1
- package/dist/{index-DNC5VG8P.js → index-OHHmkknK.js} +2 -2
- package/dist/{index-0W-MEvEf.js → index-k_OAhCop.js} +2 -2
- package/dist/{index-DqLVW6ej.js → index-mxtsA6kq.js} +3 -3
- package/dist/{index-B29_mID7.js → index-rYGo3i42.js} +3 -3
- package/dist/index.es.js +12 -10
- package/dist/{mb-render-BdRsSczc.js → mb-render-BW27j2qa.js} +2 -2
- package/dist/{online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-D32c_U8J.js → online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-JuGFe7ao.js} +1 -1
- package/dist/{pagination-design-9Z_iRIKM.js → pagination-design-C59mi1du.js} +2 -2
- package/dist/paper-widget-design-BNmIT8FC.js +4 -0
- package/dist/{print-runtime-instance-BBOww4jg.js → print-runtime-instance-CT3EaCDJ.js} +1 -1
- package/dist/{print-snapshot-renderer-DGt44saz.js → print-snapshot-renderer-Bm-fpHUt.js} +3 -3
- package/dist/{qrcode-design-qbUjPX-B.js → qrcode-design-Brx73IFy.js} +1 -1
- package/dist/{revo-grid.entry-RzymRzb0.js → revo-grid.entry-CREHbVNI.js} +1 -1
- package/dist/{revogr-attribution_7.entry-CxTEXm8Q.js → revogr-attribution_7.entry-CBUFDouS.js} +3 -3
- package/dist/{revogr-clipboard_3.entry-DQEid83u.js → revogr-clipboard_3.entry-C9D5KQdr.js} +2 -2
- package/dist/{revogr-data_4.entry-ASovYZWH.js → revogr-data_4.entry-DpskbAdh.js} +2 -2
- package/dist/{revogr-filter-panel.entry-j_V74kgz.js → revogr-filter-panel.entry-CqdNtCzb.js} +1 -1
- package/dist/seal-design-XhQfBjxE.js +4 -0
- package/dist/{serialnumber-design-DXKTYOY7.js → serialnumber-design-CJM0MP9w.js} +1 -1
- package/dist/shared/index.es.js +22 -22
- package/dist/{single-field-drop-CLjaHjL-.js → single-field-drop-B82L3Pe3.js} +2 -2
- package/dist/{size-editor-C62H_eRP.js → size-editor-CybxvVWn.js} +1 -1
- package/dist/src/domain/table/business/material/material-balance/profile/fields.d.ts +2 -0
- package/dist/src/domain/table/business/material/material-consume/profile/fields.d.ts +2 -0
- package/dist/src/domain/table/business/material/material-substitution/profile/field-keys.d.ts +13 -0
- package/dist/src/domain/table/business/warehouse/shared/autofill-source-labels.d.ts +19 -0
- package/dist/src/domain/table/design/autofill-expander.d.ts +2 -0
- package/dist/src/domain/table/design/hooks/on-field-attach.d.ts +6 -0
- package/dist/src/domain/table/index.d.ts +1 -1
- package/dist/src/domain/table/types.d.ts +2 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/nocode-base/src/core/sub-table/pretreatment-list-table-core.d.ts +1 -0
- package/dist/src/nocode-base/src/core/sub-table/sub-table-core.d.ts +2 -1
- package/dist/src/nocode-base/src/hooks/formula-params-cache.d.ts +15 -0
- package/dist/src/nocode-base/src/hooks/material-consume/material-consume-table-controller.d.ts +1 -0
- package/dist/src/nocode-base/src/hooks/material-consume/tmpl-bom-controller.d.ts +12 -7
- package/dist/src/nocode-base/src/hooks/render-page/sterilization-date.d.ts +3 -0
- package/dist/src/nocode-base/src/hooks/useCalcFunction.d.ts +8 -2
- package/dist/src/nocode-base/src/hooks/validation/createValidateFactory.d.ts +1 -0
- package/dist/src/nocode-base/src/runtime/async-task-coordinator.d.ts +6 -2
- package/dist/src/nocode-base/src/runtime/multi-sheet-runtime.d.ts +2 -0
- package/dist/src/nocode-base/src/runtime/runtime-field-initializer.d.ts +1 -1
- package/dist/src/nocode-base/src/runtime/runtime-validation-service.d.ts +1 -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/designer/conversions/normalize-paper-grid.d.ts +3 -0
- package/dist/src/online-form/src/views/designer/utils/placed-fields.d.ts +9 -0
- package/dist/src/online-form/src/views/designer/utils/template-placed-fields.d.ts +7 -0
- package/dist/src/online-form/src/views/render/__components__/_field_/trace/utils/use-rule-props.d.ts +0 -3
- package/dist/src/online-form/src/views/render/sheet-tab-bar.vue.d.ts +5 -3
- package/dist/src/shared/components/Signature/logic/index.d.ts +14 -0
- package/dist/{sub-table-factory-sn1Ek1c9.js → sub-table-factory-BrwMeqWM.js} +29 -65
- package/dist/{text-design-CwHfwel0.js → text-design-Qem3wirw.js} +2 -2
- package/dist/{throttle-Cpk1LoGk-BHDq1lM3.js → throttle-Cpk1LoGk-Bm1w1voP.js} +1 -1
- package/dist/{timediff-design-8kCO3aXz.js → timediff-design-CiGukjs9.js} +1 -1
- package/dist/{trace-like-wrapper-CxPz9Trr.js → trace-like-wrapper-DrUDJDgX.js} +2 -2
- package/dist/{value-editor.vue_vue_type_style_index_0_lang-CzEZ0CY7.js → value-editor.vue_vue_type_style_index_0_lang-DXBstCLM.js} +2 -2
- package/dist/web-render/index.es.js +3 -3
- package/dist/{widget-barcode-CRxh3tC2.js → widget-barcode-DH30z4yi.js} +4 -4
- package/dist/{widget-diagonal-CO586oV2.js → widget-diagonal-Bv-Eb2Fi.js} +3 -3
- package/dist/{widget-image-CE6kVnu5.js → widget-image-67Q9gRCG.js} +5 -5
- package/dist/{widget-line-Br4oIssb.js → widget-line-DP3dKXNd.js} +2 -2
- package/dist/{widget-pagination-BHwjrBV5.js → widget-pagination-B66PcWXU.js} +5 -5
- package/dist/{widget-power-BySYsE15.js → widget-power-yRy8897o.js} +3 -3
- package/dist/{widget-qrcode-D6b0T_Qa.js → widget-qrcode-DN3R8N41.js} +3 -3
- package/dist/{widget-rangelimit-DTH7nrqC.js → widget-rangelimit-zWZZMPvn.js} +3 -3
- package/dist/{widget-serialnumber-DVtxhNC3.js → widget-serialnumber-p7wB7-Bz.js} +1 -1
- package/dist/{widget-text-gBGybAXk.js → widget-text-BQO0Rf5A.js} +5 -5
- package/dist/{widget-timediff-aY-maVkE.js → widget-timediff-C1VxWKle.js} +2 -2
- package/package.json +2 -2
- package/dist/paper-widget-design-BGotQsIf.js +0 -4
- package/dist/seal-design-DP1XaAY8.js +0 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent, computed, openBlock, createBlock } from "vue";
|
|
2
|
-
import { h as useModelFields, D as Diagonal } from "./index-
|
|
3
|
-
import {
|
|
2
|
+
import { h as useModelFields, D as Diagonal } from "./index-DLZKDd1x.js";
|
|
3
|
+
import { ap as resolveDiagonalVertex, a9 as _export_sfc } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-CxqmyuOf.js";
|
|
4
4
|
import "lodash-es";
|
|
5
5
|
import "dayjs";
|
|
6
6
|
import "@gct-paas/form-base";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { reactive, toRaw, computed, watch, onScopeDispose, inject, h, shallowReactive, markRaw, ref, nextTick, toRef, provide, defineComponent, openBlock, createElementBlock, mergeProps, unref, createElementVNode, normalizeClass, renderSlot, createCommentVNode, createVNode, toDisplayString, Fragment, renderList, onUnmounted, isVNode, onMounted, onBeforeMount, resolveComponent, createBlock, withCtx, createTextVNode } from "vue";
|
|
2
|
-
import {
|
|
2
|
+
import { aj as CellWidgetViewState, F as FIELD_TYPE, b8 as RenderModeEnum, Z as FormTypeEnum, bE as BpmnNodeTypeEnum, cx as getFieldPlaceholder, bW as MobileFillTypeEnum, C as ComponentTypeEnum, a0 as PlatformEnum, cy as isReferenceOptionActive, p as api, bu as uuid2, c4 as calcUtils, bj as findRuntimeTableRow, c8 as ensureTableRowKeys, c1 as bindRuntimeTableColumns, bi as getRowId, cz as FRONT_ROW_KEY, cn as isTableRowKeyMatch, bw as isAttachFieldActive, cA as filterRulesByTrigger, cB as isEmptyValue$1, c5 as decodeTableCellRowKey, c7 as ensureFrontRowKey, b0 as getParseRuleInfo, aH as transformUtils, aY as materialCheck, aZ as getLotLockedReason, a_ as validateReinspectionDate, bn as FormulaRuleFieldKeyEnum, h as SubTableType, b1 as getParseRuleValue, cC as buildError, I as CreateType, bl as findRuntimeParentRow, aK as Dependency_ENUM, aJ as ASSIGNMENTSTRATEGY_ENUM, bJ as commonUtils, aO as DeviceLink, a9 as _export_sfc, ch as getRenderedRuntimeTableCell, A as CellType, cr as relocateDeletedRowsToEnd, cD as resetTableRowIdentity, K as useModal, cE as q, cF as QUICK_FILL_ALLOWED_FIELDS, cG as groupFixedTableRows, cH as processQuickFillRows, cI as getIsGroupEmpty } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-CxqmyuOf.js";
|
|
3
3
|
import { cloneDeep, isEmpty, has, pickBy, isNil, mergeWith, omit, last, pick, merge } from "lodash-es";
|
|
4
4
|
import dayjs from "dayjs";
|
|
5
5
|
import { a as useNamespace, I as Icon } from "./AntdIcon-DCIaV352.js";
|
|
6
6
|
import "@gct-paas/form-base";
|
|
7
7
|
import { Modal, message } from "ant-design-vue";
|
|
8
|
-
import { u as useFormModel } from "./mb-render-
|
|
8
|
+
import { u as useFormModel } from "./mb-render-BW27j2qa.js";
|
|
9
9
|
var MaterialConsumptionPatternEnum = /* @__PURE__ */ ((MaterialConsumptionPatternEnum2) => {
|
|
10
10
|
MaterialConsumptionPatternEnum2["RECORD"] = "record";
|
|
11
11
|
MaterialConsumptionPatternEnum2["BOM"] = "bom";
|
|
@@ -18,6 +18,61 @@ function normalizeFieldWidth(value, fallback = DEFAULT_FIELD_WIDTH) {
|
|
|
18
18
|
const width = Number(value);
|
|
19
19
|
return Number.isFinite(width) && width >= 0 ? width : fallback;
|
|
20
20
|
}
|
|
21
|
+
function isBlank$1(value) {
|
|
22
|
+
return value === void 0 || value === null || value === "";
|
|
23
|
+
}
|
|
24
|
+
function matchFieldKey(match, fieldKey) {
|
|
25
|
+
if (!match.fieldKey) return false;
|
|
26
|
+
const keys = Array.isArray(match.fieldKey) ? match.fieldKey : [match.fieldKey];
|
|
27
|
+
return keys.includes(fieldKey);
|
|
28
|
+
}
|
|
29
|
+
function findFieldProfile(profile, fieldKey) {
|
|
30
|
+
return profile?.fields?.find((item) => matchFieldKey(item.match, fieldKey));
|
|
31
|
+
}
|
|
32
|
+
function buildDefaultMapFromProfile(profile, paramsConfig) {
|
|
33
|
+
const result = {};
|
|
34
|
+
if (!profile?.contextAssignments?.length) return result;
|
|
35
|
+
const assignments = profile.contextAssignments.filter(
|
|
36
|
+
(item) => item.when === "onRowInit"
|
|
37
|
+
);
|
|
38
|
+
for (const assignment of assignments) {
|
|
39
|
+
const value = paramsConfig?.[assignment.paramKey];
|
|
40
|
+
if (isBlank$1(value)) continue;
|
|
41
|
+
result[assignment.fieldKey] = value;
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
function buildFieldStatusFromProfile(params) {
|
|
46
|
+
const { profile, field } = params;
|
|
47
|
+
const result = {};
|
|
48
|
+
if (!profile) return result;
|
|
49
|
+
const fieldProfile = findFieldProfile(profile, field);
|
|
50
|
+
if (fieldProfile?.defaultProps) {
|
|
51
|
+
if (fieldProfile.defaultProps.disabled === true || fieldProfile.defaultProps.fieldDisabled === true) {
|
|
52
|
+
result.disabled = true;
|
|
53
|
+
}
|
|
54
|
+
if (fieldProfile.defaultProps.readonly === true || fieldProfile.defaultProps.fieldReadonly === true) {
|
|
55
|
+
result.readonly = true;
|
|
56
|
+
}
|
|
57
|
+
if (fieldProfile.defaultProps.required === false) {
|
|
58
|
+
result.required = false;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const rules2 = (profile.runtimeRules ?? []).filter(
|
|
62
|
+
(rule) => !rule.when || rule.when === "always" || rule.when === "onRowInit"
|
|
63
|
+
);
|
|
64
|
+
for (const rule of rules2) {
|
|
65
|
+
if (!rule.fields.includes(field)) continue;
|
|
66
|
+
if (rule.effect.readonly) result.readonly = true;
|
|
67
|
+
if (rule.effect.disabled) result.disabled = true;
|
|
68
|
+
if (rule.effect.required !== void 0) result.required = rule.effect.required;
|
|
69
|
+
}
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
function getRowHandlersForFieldChange(profile, changedField) {
|
|
73
|
+
if (!profile?.rowHandlers?.length) return [];
|
|
74
|
+
return profile.rowHandlers.filter((item) => item.when === "onFieldChange").filter((item) => !item.watch?.length || item.watch.includes(changedField)).map((item) => item.handler);
|
|
75
|
+
}
|
|
21
76
|
function hasSignatureValue(value) {
|
|
22
77
|
if (value === void 0 || value === null) return false;
|
|
23
78
|
if (typeof value !== "string") {
|
|
@@ -958,6 +1013,8 @@ function convertV1Runtime(runtime) {
|
|
|
958
1013
|
return { schemaVersion: 1, formConfig, sheets: [sheet] };
|
|
959
1014
|
}
|
|
960
1015
|
const MULTI_SHEET_SCHEMA_VERSION = 2;
|
|
1016
|
+
const MAX_RUNTIME_SHEETS = 100;
|
|
1017
|
+
const MAX_RUNTIME_SHEET_TITLE_LENGTH = 255;
|
|
961
1018
|
function assertObject(value, message2) {
|
|
962
1019
|
if (!value || typeof value !== "object" || Array.isArray(value)) throw new Error(message2);
|
|
963
1020
|
}
|
|
@@ -1023,7 +1080,9 @@ function normalizeRuntime(runtime) {
|
|
|
1023
1080
|
if (!Array.isArray(runtime.sheets) || runtime.sheets.length === 0) {
|
|
1024
1081
|
throw new Error("多 Sheet 运行时至少需要一个工作表");
|
|
1025
1082
|
}
|
|
1026
|
-
if (runtime.sheets.length >
|
|
1083
|
+
if (runtime.sheets.length > MAX_RUNTIME_SHEETS) {
|
|
1084
|
+
throw new Error(`每份表单最多支持 ${MAX_RUNTIME_SHEETS} 个工作表`);
|
|
1085
|
+
}
|
|
1027
1086
|
const formConfig = runtime.formConfig ?? {};
|
|
1028
1087
|
assertObject(formConfig, "多 Sheet 运行时的 formConfig 格式无效");
|
|
1029
1088
|
const ids = /* @__PURE__ */ new Set();
|
|
@@ -1034,7 +1093,9 @@ function normalizeRuntime(runtime) {
|
|
|
1034
1093
|
const sheetId = String(rawSheet.sheetId ?? "").trim();
|
|
1035
1094
|
const title = String(rawSheet.title ?? "").trim();
|
|
1036
1095
|
if (!sheetId) throw new Error(`第 ${index + 1} 个工作表缺少 sheetId`);
|
|
1037
|
-
if (!title || title.length >
|
|
1096
|
+
if (!title || title.length > MAX_RUNTIME_SHEET_TITLE_LENGTH) {
|
|
1097
|
+
throw new Error(`工作表名称必须为 1 到 ${MAX_RUNTIME_SHEET_TITLE_LENGTH} 个字符:${title}`);
|
|
1098
|
+
}
|
|
1038
1099
|
if (ids.has(sheetId)) throw new Error(`重复的 sheetId:${sheetId}`);
|
|
1039
1100
|
if (titles.has(title)) throw new Error(`重复的工作表名称:${title}`);
|
|
1040
1101
|
ids.add(sheetId);
|
|
@@ -1731,12 +1792,28 @@ class RuntimeFormStateStore {
|
|
|
1731
1792
|
incoming.forEach((savedRow) => {
|
|
1732
1793
|
const rowKey = savedRow?.[FRONT_ROW_KEY];
|
|
1733
1794
|
const savedId = savedRow?.id_;
|
|
1734
|
-
|
|
1795
|
+
let currentRow = target.find((row) => {
|
|
1735
1796
|
if (!row || typeof row !== "object") return false;
|
|
1736
1797
|
if (rowKey != null && isTableRowKeyMatch(rowKey, row[FRONT_ROW_KEY])) return true;
|
|
1737
1798
|
return savedId != null && row.id_ != null && String(row.id_) === String(savedId);
|
|
1738
1799
|
});
|
|
1739
|
-
|
|
1800
|
+
let matchedByGroup = false;
|
|
1801
|
+
if (!currentRow && Array.isArray(savedRow?._2DTABLE_) && savedRow.group_ != null && String(savedRow.group_).trim() !== "") {
|
|
1802
|
+
const matchingGroups = target.filter(
|
|
1803
|
+
(row) => Array.isArray(row?._2DTABLE_) && row.group_ != null && String(row.group_) === String(savedRow.group_)
|
|
1804
|
+
);
|
|
1805
|
+
if (matchingGroups.length === 1) {
|
|
1806
|
+
currentRow = matchingGroups[0];
|
|
1807
|
+
matchedByGroup = true;
|
|
1808
|
+
}
|
|
1809
|
+
}
|
|
1810
|
+
if (currentRow) {
|
|
1811
|
+
this.mergeSavedMetadata(
|
|
1812
|
+
currentRow,
|
|
1813
|
+
matchedByGroup ? { ...savedRow, [FRONT_ROW_KEY]: currentRow[FRONT_ROW_KEY] } : savedRow,
|
|
1814
|
+
path
|
|
1815
|
+
);
|
|
1816
|
+
}
|
|
1740
1817
|
});
|
|
1741
1818
|
return target;
|
|
1742
1819
|
}
|
|
@@ -1832,6 +1909,7 @@ class RuntimeAsyncTaskCoordinator {
|
|
|
1832
1909
|
fieldIdentity: options.fieldIdentity,
|
|
1833
1910
|
sheetId: options.sheetId,
|
|
1834
1911
|
required: options.required !== false,
|
|
1912
|
+
blockOnFailure: options.blockOnFailure !== false,
|
|
1835
1913
|
status: "pending",
|
|
1836
1914
|
sequence,
|
|
1837
1915
|
promise: task,
|
|
@@ -1875,7 +1953,7 @@ class RuntimeAsyncTaskCoordinator {
|
|
|
1875
1953
|
* 等待全部 required 任务达到稳定状态。
|
|
1876
1954
|
*
|
|
1877
1955
|
* 一轮任务完成后的字段回填可能触发新的公式或远程任务,因此这里循环读取任务表,直到
|
|
1878
|
-
* 没有新的 pending required
|
|
1956
|
+
* 没有新的 pending required 任务。稳定后只检查需要阻断提交的失败项。
|
|
1879
1957
|
*/
|
|
1880
1958
|
async waitForRequired(keyPrefix) {
|
|
1881
1959
|
const matches = (task) => task.required && (!keyPrefix || task.key.startsWith(keyPrefix));
|
|
@@ -1887,7 +1965,7 @@ class RuntimeAsyncTaskCoordinator {
|
|
|
1887
1965
|
await Promise.allSettled(pending.map((task) => task.promise));
|
|
1888
1966
|
}
|
|
1889
1967
|
const failed = Array.from(this.tasks.values()).filter(
|
|
1890
|
-
(task) => matches(task) && task.status === "rejected"
|
|
1968
|
+
(task) => matches(task) && task.blockOnFailure && task.status === "rejected"
|
|
1891
1969
|
);
|
|
1892
1970
|
if (failed.length) {
|
|
1893
1971
|
const details = failed.map((task) => {
|
|
@@ -3233,11 +3311,12 @@ class RuntimeValidationService {
|
|
|
3233
3311
|
this.pendingLive = this.pendingLive === "blur" ? "blur" : trigger;
|
|
3234
3312
|
if (this.liveTimer) clearTimeout(this.liveTimer);
|
|
3235
3313
|
this.liveTimer = void 0;
|
|
3236
|
-
if (immediate)
|
|
3314
|
+
if (immediate)
|
|
3315
|
+
void this.flushLive().catch((error) => this.logBackgroundError("字段校验失败", error));
|
|
3237
3316
|
else
|
|
3238
3317
|
this.liveTimer = setTimeout(() => {
|
|
3239
3318
|
this.liveTimer = void 0;
|
|
3240
|
-
void this.flushLive().catch((error) =>
|
|
3319
|
+
void this.flushLive().catch((error) => this.logBackgroundError("字段校验失败", error));
|
|
3241
3320
|
}, 300);
|
|
3242
3321
|
}
|
|
3243
3322
|
async flushLive() {
|
|
@@ -3259,11 +3338,17 @@ class RuntimeValidationService {
|
|
|
3259
3338
|
this.displayTimer = void 0;
|
|
3260
3339
|
const run = () => {
|
|
3261
3340
|
this.displayTimer = void 0;
|
|
3262
|
-
void this.validate("display").catch(
|
|
3341
|
+
void this.validate("display").catch(
|
|
3342
|
+
(error) => this.logBackgroundError("字段展示校验失败", error)
|
|
3343
|
+
);
|
|
3263
3344
|
};
|
|
3264
3345
|
if (immediate) run();
|
|
3265
3346
|
else this.displayTimer = setTimeout(run, 320);
|
|
3266
3347
|
}
|
|
3348
|
+
logBackgroundError(label, error) {
|
|
3349
|
+
if (error instanceof Error && error.message.startsWith("以下异步任务执行失败:")) return;
|
|
3350
|
+
console.error(label, error);
|
|
3351
|
+
}
|
|
3267
3352
|
pruneComments() {
|
|
3268
3353
|
if (!this.binding || this.disposed) return;
|
|
3269
3354
|
this.binding.applyComments(
|
|
@@ -4596,7 +4681,16 @@ class BomEntriesValidator {
|
|
|
4596
4681
|
memberIndexes.push(idx);
|
|
4597
4682
|
if (byLot && !row.material_no_) emptyLotIndexes.push(idx);
|
|
4598
4683
|
});
|
|
4599
|
-
const
|
|
4684
|
+
const targetExists = this.groupExistsInTable(arr, target);
|
|
4685
|
+
if (!targetExists) {
|
|
4686
|
+
const index = arr.findIndex((row2) => !row2.deleted_);
|
|
4687
|
+
const row = arr[index];
|
|
4688
|
+
const canReuse = row && !row.product_id_ && !row.bom_entry_id_ && !row.is_confirmed_ && arr.every((item, idx) => item.deleted_ || idx === index);
|
|
4689
|
+
if (canReuse) {
|
|
4690
|
+
emptyProductIndexes.push(index);
|
|
4691
|
+
}
|
|
4692
|
+
}
|
|
4693
|
+
const needInsert = !targetExists && emptyProductIndexes.length === 0;
|
|
4600
4694
|
const last2 = memberIndexes[memberIndexes.length - 1];
|
|
4601
4695
|
let groupInsertIndex = -1;
|
|
4602
4696
|
if (needInsert) {
|
|
@@ -5221,7 +5315,8 @@ class MaterialConsumeTableController {
|
|
|
5221
5315
|
constructor(tmplBomController, tmplBom, options = {}) {
|
|
5222
5316
|
this.tmplBomController = tmplBomController;
|
|
5223
5317
|
this.tmplBom = tmplBom;
|
|
5224
|
-
if (!options.printOnly
|
|
5318
|
+
if (!options.printOnly && this.hasFormInstance)
|
|
5319
|
+
this.initScanRule(this.tmplBom.barcode_parsing_rules_id_);
|
|
5225
5320
|
this.scanParamType = this.tmplBom.scan_param_type_;
|
|
5226
5321
|
markRaw(this);
|
|
5227
5322
|
this.bomEntriesValidator = new BomEntriesValidator(
|
|
@@ -5284,6 +5379,9 @@ class MaterialConsumeTableController {
|
|
|
5284
5379
|
get mcPattern() {
|
|
5285
5380
|
return this.tmplBom.material_consumption_pattern_ ?? this.tmplBomController.defaultMCPattern;
|
|
5286
5381
|
}
|
|
5382
|
+
get hasFormInstance() {
|
|
5383
|
+
return this.tmplBomController.hasFormInstance;
|
|
5384
|
+
}
|
|
5287
5385
|
/**
|
|
5288
5386
|
* 解析规则数据对象
|
|
5289
5387
|
*/
|
|
@@ -5536,6 +5634,10 @@ class MaterialConsumeTableController {
|
|
|
5536
5634
|
}
|
|
5537
5635
|
const isRecordPattern = this.mcPattern === MaterialConsumptionPatternEnum.RECORD && !this.tmplBom.personal_bom_enabled_;
|
|
5538
5636
|
console.log("parseScanStr", data);
|
|
5637
|
+
if (!data.lot && !data.uniqueCode) {
|
|
5638
|
+
this.error($t("sys.edhr.mcTable.lotOrUniqueCodeRequired"));
|
|
5639
|
+
return;
|
|
5640
|
+
}
|
|
5539
5641
|
const arr = await materialCheck({
|
|
5540
5642
|
material_no_: data.materialCode,
|
|
5541
5643
|
production_identification_name_: data.lot,
|
|
@@ -6030,7 +6132,16 @@ class MaterialConsumeTableController {
|
|
|
6030
6132
|
this.error(msg);
|
|
6031
6133
|
return;
|
|
6032
6134
|
}
|
|
6033
|
-
if (!value)
|
|
6135
|
+
if (!value) {
|
|
6136
|
+
if (row.product_id_ && !this.isCustomRequiredQty) {
|
|
6137
|
+
const util = this.bomEntriesValidator.findUtilByProductId(row.product_id_);
|
|
6138
|
+
if (util) {
|
|
6139
|
+
row.qty_required_ = util.total;
|
|
6140
|
+
}
|
|
6141
|
+
}
|
|
6142
|
+
this.updateDerivedQtyFields();
|
|
6143
|
+
return;
|
|
6144
|
+
}
|
|
6034
6145
|
try {
|
|
6035
6146
|
await validateReinspectionDate({
|
|
6036
6147
|
product_id_: option.product_id_ ?? row.product_id_,
|
|
@@ -6054,6 +6165,7 @@ class MaterialConsumeTableController {
|
|
|
6054
6165
|
const qty = oldGroupId && row.bom_entry_id_ === oldGroupId ? oldRequiredQty : this.getCustomGroupRequiredQty(row);
|
|
6055
6166
|
this.setCustomGroupRequiredQty(row, qty);
|
|
6056
6167
|
}
|
|
6168
|
+
this.updateDerivedQtyFields();
|
|
6057
6169
|
} else if (field === "qty_") {
|
|
6058
6170
|
this.updateDerivedQtyFields();
|
|
6059
6171
|
}
|
|
@@ -6688,11 +6800,12 @@ class SubTableCore {
|
|
|
6688
6800
|
/**
|
|
6689
6801
|
* 扫码多条候选时选择一行(1 条自动选中)
|
|
6690
6802
|
*/
|
|
6691
|
-
async pickScanRecord(records) {
|
|
6803
|
+
async pickScanRecord(records, options = {}) {
|
|
6692
6804
|
if (!records.length) return void 0;
|
|
6693
6805
|
if (records.length === 1) return records[0];
|
|
6694
6806
|
return this.render.openMultiRowsModal({
|
|
6695
|
-
rows: mapScanRecordsForPicker(records)
|
|
6807
|
+
rows: mapScanRecordsForPicker(records),
|
|
6808
|
+
...options
|
|
6696
6809
|
});
|
|
6697
6810
|
}
|
|
6698
6811
|
/**
|
|
@@ -6714,39 +6827,71 @@ class SubTableCore {
|
|
|
6714
6827
|
console.log(this.ctx.widget.props.tableTitle, "处理表单按钮点击事件", params);
|
|
6715
6828
|
}
|
|
6716
6829
|
}
|
|
6717
|
-
|
|
6718
|
-
|
|
6719
|
-
|
|
6720
|
-
|
|
6721
|
-
|
|
6722
|
-
|
|
6723
|
-
|
|
6830
|
+
const STORAGE_KEY = "gct:formula:params:v1";
|
|
6831
|
+
const PARAMS_CHANGED_EVENT = "gct:formula-params-updated:v1";
|
|
6832
|
+
function emptyConfig() {
|
|
6833
|
+
return {
|
|
6834
|
+
routingParamList: [],
|
|
6835
|
+
inspectionParamList: [],
|
|
6836
|
+
deviceParamList: []
|
|
6837
|
+
};
|
|
6724
6838
|
}
|
|
6725
|
-
|
|
6726
|
-
if (!
|
|
6727
|
-
|
|
6839
|
+
function normalizeList(value) {
|
|
6840
|
+
if (!Array.isArray(value)) return [];
|
|
6841
|
+
return value.filter(
|
|
6842
|
+
(item) => item !== null && typeof item === "object" && typeof item.customFieldKey === "string"
|
|
6843
|
+
);
|
|
6844
|
+
}
|
|
6845
|
+
function normalizeConfig(value) {
|
|
6846
|
+
const data = value !== null && typeof value === "object" ? value : {};
|
|
6847
|
+
return {
|
|
6848
|
+
routingParamList: normalizeList(data.routingParamList),
|
|
6849
|
+
inspectionParamList: normalizeList(data.inspectionParamList),
|
|
6850
|
+
deviceParamList: normalizeList(data.deviceParamList)
|
|
6851
|
+
};
|
|
6852
|
+
}
|
|
6853
|
+
let lastRaw;
|
|
6854
|
+
let cachedConfig = emptyConfig();
|
|
6855
|
+
function readFormulaParamsConfig() {
|
|
6856
|
+
const raw = window.localStorage.getItem(STORAGE_KEY);
|
|
6857
|
+
if (raw !== lastRaw) {
|
|
6858
|
+
try {
|
|
6859
|
+
cachedConfig = normalizeConfig(raw ? JSON.parse(raw) : null);
|
|
6860
|
+
} catch {
|
|
6861
|
+
cachedConfig = emptyConfig();
|
|
6862
|
+
}
|
|
6863
|
+
lastRaw = raw;
|
|
6864
|
+
}
|
|
6865
|
+
return cachedConfig;
|
|
6866
|
+
}
|
|
6867
|
+
const currentParamsConfig = {
|
|
6868
|
+
get routingParamList() {
|
|
6869
|
+
return readFormulaParamsConfig().routingParamList;
|
|
6870
|
+
},
|
|
6871
|
+
get inspectionParamList() {
|
|
6872
|
+
return readFormulaParamsConfig().inspectionParamList;
|
|
6728
6873
|
}
|
|
6729
|
-
const config = paramList?.find((e) => e.customFieldKey === key);
|
|
6730
|
-
if (!config) return null;
|
|
6731
|
-
const { upperLimit, lowerLimit } = config;
|
|
6732
|
-
if (lowerLimit == null || upperLimit == null) return null;
|
|
6733
|
-
const actual = Number(value);
|
|
6734
|
-
const min = Number(config.lowerLimit);
|
|
6735
|
-
const max = Number(config.upperLimit);
|
|
6736
|
-
if (![actual, min, max].every(Number.isFinite)) return null;
|
|
6737
|
-
return actual >= min && actual <= max;
|
|
6738
|
-
}
|
|
6739
|
-
const FORMULA_FUNCS = {
|
|
6740
|
-
RoutingParamCheck: (key, value) => CALC_IS_QUALIFIED(key, value, currentParamsConfig.routingParamList || []),
|
|
6741
|
-
InspectionParamCheck: (key, value) => CALC_IS_QUALIFIED(key, value, currentParamsConfig.inspectionParamList || []),
|
|
6742
|
-
DeviceParamCheck: (key, value) => CALC_IS_QUALIFIED(key, value, currentParamsConfig.deviceParamList || [])
|
|
6743
6874
|
};
|
|
6744
|
-
function
|
|
6745
|
-
const
|
|
6746
|
-
if (
|
|
6747
|
-
|
|
6748
|
-
|
|
6875
|
+
function setFormulaParamsConfig(paramsConfig = {}) {
|
|
6876
|
+
const raw = JSON.stringify(normalizeConfig(paramsConfig));
|
|
6877
|
+
if (window.localStorage.getItem(STORAGE_KEY) === raw) return;
|
|
6878
|
+
window.localStorage.setItem(STORAGE_KEY, raw);
|
|
6879
|
+
window.dispatchEvent(new Event(PARAMS_CHANGED_EVENT));
|
|
6880
|
+
}
|
|
6881
|
+
const boundCalculators = /* @__PURE__ */ new WeakSet();
|
|
6882
|
+
function bindFormulaCacheInvalidation(value) {
|
|
6883
|
+
if (typeof value !== "function") return;
|
|
6884
|
+
const calculator = value;
|
|
6885
|
+
if (typeof calculator.clear !== "function" || boundCalculators.has(calculator)) return;
|
|
6886
|
+
boundCalculators.add(calculator);
|
|
6887
|
+
const clearCache = () => calculator.clear();
|
|
6888
|
+
window.addEventListener(PARAMS_CHANGED_EVENT, clearCache);
|
|
6889
|
+
window.addEventListener("storage", (event) => {
|
|
6890
|
+
if (event.storageArea === window.localStorage && (event.key === STORAGE_KEY || event.key === null)) {
|
|
6891
|
+
clearCache();
|
|
6892
|
+
}
|
|
6749
6893
|
});
|
|
6894
|
+
clearCache();
|
|
6750
6895
|
}
|
|
6751
6896
|
function getGroupProductIds(entry) {
|
|
6752
6897
|
const ids = [entry.product_id_];
|
|
@@ -8746,7 +8891,7 @@ const MaterialConsumeTable = /* @__PURE__ */ defineComponent({
|
|
|
8746
8891
|
const {
|
|
8747
8892
|
showDisplayStatus,
|
|
8748
8893
|
dataRelationShip
|
|
8749
|
-
} = useWidgetStaticAttrs(props);
|
|
8894
|
+
} = useWidgetStaticAttrs(props.widget);
|
|
8750
8895
|
const sheetId = () => fields.value?.findWidgetById(props.widget.id)?.sheetId;
|
|
8751
8896
|
const formModelController = useFormModel().injectController();
|
|
8752
8897
|
const tableController = props.tableController;
|
|
@@ -8935,6 +9080,7 @@ const MaterialConsumeTable = /* @__PURE__ */ defineComponent({
|
|
|
8935
9080
|
}));
|
|
8936
9081
|
};
|
|
8937
9082
|
const handleAction = (action, rowData) => {
|
|
9083
|
+
if (!tableController.hasFormInstance) return;
|
|
8938
9084
|
switch (action) {
|
|
8939
9085
|
case MaterialConsumeActionType.CONFIRM:
|
|
8940
9086
|
tableController.confirm(rowData);
|
|
@@ -9007,6 +9153,7 @@ const MaterialConsumeTable = /* @__PURE__ */ defineComponent({
|
|
|
9007
9153
|
key,
|
|
9008
9154
|
actionValue
|
|
9009
9155
|
}) => {
|
|
9156
|
+
if (!tableController.hasFormInstance) return;
|
|
9010
9157
|
switch (key) {
|
|
9011
9158
|
case "rowEdit":
|
|
9012
9159
|
await tableController.editRow(rowData);
|
|
@@ -10279,109 +10426,116 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
10279
10426
|
});
|
|
10280
10427
|
const DynamicTableAction = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-53d7e66c"]]);
|
|
10281
10428
|
export {
|
|
10282
|
-
|
|
10283
|
-
|
|
10429
|
+
setFormulaParamsConfig as $,
|
|
10430
|
+
getObjectBomProductQuery as A,
|
|
10284
10431
|
BorderTD as B,
|
|
10285
|
-
|
|
10432
|
+
normalizeHistoricalAutofillRow as C,
|
|
10286
10433
|
DEFAULT_BOOLEAN_FIELD_WIDTH as D,
|
|
10287
10434
|
EMPTY_PRODUCT_VERSION_ID as E,
|
|
10288
|
-
|
|
10289
|
-
|
|
10290
|
-
|
|
10291
|
-
|
|
10292
|
-
|
|
10293
|
-
|
|
10294
|
-
|
|
10295
|
-
|
|
10435
|
+
parseRuntimeFieldPath as F,
|
|
10436
|
+
useStyles as G,
|
|
10437
|
+
useDependency as H,
|
|
10438
|
+
useFieldPresentation as I,
|
|
10439
|
+
useRuntimeEditorFlusher as J,
|
|
10440
|
+
createRuntimeInstanceContext as K,
|
|
10441
|
+
RuntimeInstanceRegistry as L,
|
|
10442
|
+
MAX_RUNTIME_SHEETS as M,
|
|
10296
10443
|
NCB_PROVIDE as N,
|
|
10297
|
-
|
|
10298
|
-
|
|
10299
|
-
|
|
10444
|
+
RequiredQtyCalcRule as O,
|
|
10445
|
+
DocumentPaper as P,
|
|
10446
|
+
DynamicTableAction as Q,
|
|
10300
10447
|
RuntimeFormStateStore as R,
|
|
10301
10448
|
ScanParamType as S,
|
|
10302
|
-
|
|
10303
|
-
|
|
10304
|
-
|
|
10305
|
-
|
|
10306
|
-
|
|
10307
|
-
|
|
10308
|
-
|
|
10449
|
+
getRuntimeDataFieldId as T,
|
|
10450
|
+
buildRuntimeFieldPath as U,
|
|
10451
|
+
resolveRuntimeFieldProps as V,
|
|
10452
|
+
resolveRuntimeFieldState as W,
|
|
10453
|
+
getRuntimeDependencyOutputKey as X,
|
|
10454
|
+
isRowAddedInCurrentFormChange as Y,
|
|
10455
|
+
MaterialConsumeTableController as Z,
|
|
10309
10456
|
_sfc_main$5 as _,
|
|
10310
|
-
|
|
10311
|
-
|
|
10312
|
-
|
|
10313
|
-
|
|
10314
|
-
|
|
10315
|
-
|
|
10316
|
-
|
|
10317
|
-
|
|
10318
|
-
|
|
10319
|
-
|
|
10320
|
-
|
|
10321
|
-
|
|
10322
|
-
|
|
10323
|
-
|
|
10324
|
-
|
|
10325
|
-
|
|
10326
|
-
|
|
10327
|
-
|
|
10328
|
-
|
|
10329
|
-
|
|
10330
|
-
|
|
10331
|
-
|
|
10332
|
-
|
|
10333
|
-
|
|
10334
|
-
|
|
10335
|
-
|
|
10336
|
-
|
|
10337
|
-
|
|
10338
|
-
|
|
10339
|
-
|
|
10340
|
-
|
|
10341
|
-
|
|
10342
|
-
|
|
10343
|
-
|
|
10344
|
-
|
|
10345
|
-
|
|
10346
|
-
|
|
10347
|
-
|
|
10348
|
-
|
|
10349
|
-
|
|
10350
|
-
|
|
10351
|
-
|
|
10352
|
-
|
|
10353
|
-
|
|
10354
|
-
|
|
10355
|
-
|
|
10356
|
-
|
|
10357
|
-
|
|
10358
|
-
|
|
10359
|
-
|
|
10360
|
-
|
|
10361
|
-
|
|
10362
|
-
|
|
10363
|
-
|
|
10364
|
-
|
|
10365
|
-
|
|
10366
|
-
|
|
10457
|
+
MAX_RUNTIME_SHEET_TITLE_LENGTH as a,
|
|
10458
|
+
normalizeRuntime as a0,
|
|
10459
|
+
RuntimeSheetService as a1,
|
|
10460
|
+
validateObjectBomQtyOnSubmit as a2,
|
|
10461
|
+
closeValidatorPopovers as a3,
|
|
10462
|
+
enrichFormChangeRowDetails as a4,
|
|
10463
|
+
useMaterialBalance as a5,
|
|
10464
|
+
collectFormChangeFieldLocations as a6,
|
|
10465
|
+
nextFormChangeRowViewHistoryId as a7,
|
|
10466
|
+
DeviceConnector as a8,
|
|
10467
|
+
DocumentLoading as a9,
|
|
10468
|
+
pickObjectFieldKeys as aA,
|
|
10469
|
+
recordSubtableRowAdd as aB,
|
|
10470
|
+
recordSubtableRowDelete as aC,
|
|
10471
|
+
resolveAnnotationFieldLocation as aD,
|
|
10472
|
+
resolveFormChangeRowUi as aE,
|
|
10473
|
+
resolveRowFormChangeMark as aF,
|
|
10474
|
+
setSelectMobileTdId as aG,
|
|
10475
|
+
stripLegacyFormConfigFromPaper as aH,
|
|
10476
|
+
SubTableActionMenuTypeEnum as aI,
|
|
10477
|
+
getMenuByAction as aJ,
|
|
10478
|
+
SubTableActionEnum as aK,
|
|
10479
|
+
resolveScanFillData as aL,
|
|
10480
|
+
buildDefaultMapFromProfile as aM,
|
|
10481
|
+
buildFieldStatusFromProfile as aN,
|
|
10482
|
+
getRowHandlersForFieldChange as aO,
|
|
10483
|
+
getInsertSubMenu as aP,
|
|
10484
|
+
resolveScanAdjustType as aQ,
|
|
10485
|
+
resolveScanQty as aR,
|
|
10486
|
+
toDateOnly as aS,
|
|
10487
|
+
getCopySubMenu as aT,
|
|
10488
|
+
resolveScanParsedValue as aU,
|
|
10489
|
+
isProductBatchEmptyRow as aV,
|
|
10490
|
+
DynamicQuickFillModal as aa,
|
|
10491
|
+
FixedQuickFillModal as ab,
|
|
10492
|
+
FormTmplConfigController as ac,
|
|
10493
|
+
LEGACY_RUNTIME_FORM_CONFIG_KEYS as ad,
|
|
10494
|
+
LEGACY_RUNTIME_SHEET_ID as ae,
|
|
10495
|
+
LEGACY_RUNTIME_SHEET_TITLE as af,
|
|
10496
|
+
MCDataUtil as ag,
|
|
10497
|
+
OCR_MODEL_PRECISION_ENUM_KEY as ah,
|
|
10498
|
+
RuntimeAsyncTaskCoordinator as ai,
|
|
10499
|
+
RuntimeDependencyService as aj,
|
|
10500
|
+
RuntimeFieldRegistry as ak,
|
|
10501
|
+
RuntimeInstanceEventBus as al,
|
|
10502
|
+
RuntimePersistenceCoordinator as am,
|
|
10503
|
+
RuntimeValidationService as an,
|
|
10504
|
+
SubTableCore as ao,
|
|
10505
|
+
buildFormChangeDisplayRows as ap,
|
|
10506
|
+
convertV1Runtime as aq,
|
|
10507
|
+
detailsHaveFormChangeRowOps as ar,
|
|
10508
|
+
extractFormChangeRowDetails as as,
|
|
10509
|
+
getFormChangeRowKey as at,
|
|
10510
|
+
getFormChangeRowOp as au,
|
|
10511
|
+
getSubTableQuickFillInfo as av,
|
|
10512
|
+
isAnnLocationSelected as aw,
|
|
10513
|
+
isBlank as ax,
|
|
10514
|
+
isFormChangeGhostRow as ay,
|
|
10515
|
+
normalizeHistoricalFieldConfig as az,
|
|
10516
|
+
bindFormulaCacheInvalidation as b,
|
|
10517
|
+
currentParamsConfig as c,
|
|
10518
|
+
MULTI_SHEET_SCHEMA_VERSION as d,
|
|
10519
|
+
createRuntimeDocumentV2 as e,
|
|
10520
|
+
findFieldProfile as f,
|
|
10367
10521
|
getBusinessFieldKey as g,
|
|
10368
|
-
|
|
10369
|
-
|
|
10370
|
-
|
|
10371
|
-
|
|
10372
|
-
|
|
10373
|
-
|
|
10522
|
+
normalizeHistoricalBusinessRow as h,
|
|
10523
|
+
DeviceLinkTmplUtil as i,
|
|
10524
|
+
normalizeAIOcrTmpl as j,
|
|
10525
|
+
useWidgetStaticAttrs as k,
|
|
10526
|
+
useRuntimeInstanceServices as l,
|
|
10527
|
+
setSelectAnnotationId as m,
|
|
10374
10528
|
normalizeFieldWidth as n,
|
|
10375
|
-
|
|
10376
|
-
|
|
10377
|
-
|
|
10529
|
+
useRuntimeRowState as o,
|
|
10530
|
+
getObjectBomMaterialLotQuery as p,
|
|
10531
|
+
buildObjectLotExtraQuery as q,
|
|
10378
10532
|
resolveObjectFieldKeys as r,
|
|
10379
10533
|
setSelectValidatorId as s,
|
|
10380
|
-
|
|
10534
|
+
MaterialConsumptionPatternEnum as t,
|
|
10381
10535
|
useFormTmplConfig as u,
|
|
10382
10536
|
validateObjectBomForScan as v,
|
|
10383
|
-
|
|
10384
|
-
|
|
10385
|
-
|
|
10386
|
-
|
|
10537
|
+
resolveObjectBomEntry as w,
|
|
10538
|
+
runWithFillProduct as x,
|
|
10539
|
+
useNocodeFormWidget as y,
|
|
10540
|
+
applyConsumeObjectTraceChange as z
|
|
10387
10541
|
};
|