@gct-paas/excel 0.1.39-beta.16 → 0.1.39-beta.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/{BaseComponent-BukKy-Ta.js → BaseComponent-DlErT5t9.js} +1 -1
  2. package/dist/{barcode-design-CHZzFsEC.js → barcode-design-BYqSIluT.js} +1 -1
  3. package/dist/base/index.es.js +198 -43
  4. package/dist/{diagonal-design-OOMfRYA4.js → diagonal-design-VrL3QMMA.js} +1 -1
  5. package/dist/{exceljs.min-qTeeIg1c.js → exceljs.min-5Z93-UbZ.js} +1 -1
  6. package/dist/{font-editor-DxwZPPcW.js → font-editor-fCko9QUc.js} +1 -1
  7. package/dist/{index-CiRn_aRr.js → index-9S_12I_m.js} +1 -1
  8. package/dist/{index-DNTr3TAQ.js → index-B0_PuKlp.js} +1 -1
  9. package/dist/{index-BDal31rR.js → index-B71AMKCN.js} +1 -1
  10. package/dist/{index-CuNImaHo.js → index-B9mMKdWV.js} +1 -1
  11. package/dist/{index-CBZ8lhDg.js → index-BDQQZex8.js} +1 -1
  12. package/dist/{index-CzQ0z_Gd.js → index-BK1OplGc.js} +1 -1
  13. package/dist/{index-BzWTFxln.js → index-BLFfeKcf.js} +1 -1
  14. package/dist/{index-CLE6hZJS.js → index-BO6dvJRn.js} +1 -1
  15. package/dist/{index-DP10nlTM.js → index-BQGtju-p.js} +1 -1
  16. package/dist/{index-xEEcgELT.js → index-BUIxSSiF.js} +1 -1
  17. package/dist/{index-Cis2UVwi.js → index-BaQfzPpW.js} +1 -1
  18. package/dist/{index-oPtrKoRH.js → index-BhRaNTnf.js} +1 -1
  19. package/dist/{index-CKqMs7mS.js → index-Bq15nkZU.js} +1 -1
  20. package/dist/{index-ZYhlGCsX.js → index-CSinNyyL.js} +1 -1
  21. package/dist/{index-HLHblia-.js → index-CdWE4-P2.js} +2 -2
  22. package/dist/{index-BAHY8J4O.js → index-D0HlL8_z.js} +2 -2
  23. package/dist/{index-C2tzE0Pa.js → index-D23sYrAs.js} +2 -2
  24. package/dist/{index-Jq1d5kcw.js → index-DLPPv2-H.js} +2 -2
  25. package/dist/{index-DU9LUfhQ.js → index-DQhVTdNc.js} +1 -1
  26. package/dist/{index-CzmRYqq8.js → index-DSmijiaG.js} +3 -3
  27. package/dist/{index-BLfLEJTY.js → index-DbpSl_cV.js} +29 -29
  28. package/dist/{index-BEVwLj0C.js → index-KLikXsxt.js} +1 -1
  29. package/dist/{index-cd2rFLa1.js → index-UMo1va8T.js} +1 -1
  30. package/dist/{index-BQ7NWxQc.js → index-em0rzOJO.js} +1 -1
  31. package/dist/index.es.js +1 -1
  32. package/dist/{pagination-design-CrHZBsDW.js → pagination-design-F8N309cx.js} +1 -1
  33. package/dist/paper-widget-design-CsD7nTJg.js +4 -0
  34. package/dist/{print-runtime-instance-Bvde5aY8.js → print-runtime-instance-DhOKtC-h.js} +1 -1
  35. package/dist/{print-snapshot-renderer-RSs6kMHp.js → print-snapshot-renderer-BZKxblV4.js} +3 -3
  36. package/dist/{qrcode-design-CHT6_pT-.js → qrcode-design-PR7BvK0q.js} +1 -1
  37. package/dist/seal-design-D_dpyFes.js +4 -0
  38. package/dist/{single-field-drop-CpKHTM2p.js → single-field-drop-DUSU1bKr.js} +1 -1
  39. package/dist/src/nocode-base/src/hooks/material-consume-object/object-validation-controller.d.ts +24 -0
  40. package/dist/{sub-table-factory-DtG-HO2a.js → sub-table-factory-CGAWlYDu.js} +1 -1
  41. package/dist/{text-design-Yi24e6iF.js → text-design-Dqq470X5.js} +1 -1
  42. package/dist/{trace-like-wrapper-DayZkwvZ.js → trace-like-wrapper-CLMuoU3p.js} +1 -1
  43. package/dist/{value-editor.vue_vue_type_style_index_0_lang-EiOW4b3N.js → value-editor.vue_vue_type_style_index_0_lang-jT58gI_m.js} +1 -1
  44. package/dist/{widget-barcode-BrN3dVIE.js → widget-barcode-CMjsnSQF.js} +2 -2
  45. package/dist/{widget-diagonal-DKD-DBzk.js → widget-diagonal-DLo1ff_l.js} +2 -2
  46. package/dist/{widget-image-CgaOXQWN.js → widget-image-Nc9WZSx-.js} +1 -1
  47. package/dist/{widget-line-DMT-WUJa.js → widget-line-BaHY6N6j.js} +1 -1
  48. package/dist/{widget-pagination-G1-plSoL.js → widget-pagination-CM_isO4h.js} +2 -2
  49. package/dist/{widget-power-4broQpTr.js → widget-power-C-wYKvN7.js} +2 -2
  50. package/dist/{widget-qrcode-GQ83IJo5.js → widget-qrcode-5wCmIfDR.js} +2 -2
  51. package/dist/{widget-rangelimit-CoDlaJyU.js → widget-rangelimit-DOPnGakj.js} +2 -2
  52. package/dist/{widget-serialnumber-CUYfiN4D.js → widget-serialnumber-XYXXp8wM.js} +1 -1
  53. package/dist/{widget-text-BTh60jMy.js → widget-text-DozYzNsG.js} +3 -3
  54. package/dist/{widget-timediff-3Xg2As8I.js → widget-timediff-DQvxlpW_.js} +1 -1
  55. package/package.json +1 -1
  56. package/dist/paper-widget-design-CRwvgntz.js +0 -4
  57. package/dist/seal-design-O8r6naAH.js +0 -4
  58. package/dist/{dynamic-table-action-B-Tw4RYj.js → dynamic-table-action-BXNnUUIX.js} +144 -144
@@ -1,4 +1,4 @@
1
- import { n as normalizeFieldWidth } from "./dynamic-table-action-B-Tw4RYj.js";
1
+ import { n as normalizeFieldWidth } from "./dynamic-table-action-BXNnUUIX.js";
2
2
  import { get, pick } from "lodash-es";
3
3
  import { F as FIELD_TYPE } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BmECtuSE.js";
4
4
  import { f as fontStyleAttrs } from "./config.enum-B8UZQTON.js";
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, ref, computed, watch, openBlock, createElementBlock, normalizeStyle, normalizeClass, createElementVNode, toDisplayString, createCommentVNode } from "vue";
2
2
  import { pick } from "lodash-es";
3
- import { u as useSpreadSheet, h as useModelFields, l as loadBwip } from "./index-BLfLEJTY.js";
3
+ import { u as useSpreadSheet, h as useModelFields, l as loadBwip } from "./index-DbpSl_cV.js";
4
4
  import { Q as PaperWidgeValueType, a8 as _export_sfc } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BmECtuSE.js";
5
5
  import "dayjs";
6
6
  import "ant-design-vue";
@@ -1,12 +1,12 @@
1
1
  import { E as api, $ as PlatformEnum, F as FIELD_TYPE, bj as getRowId, bk as findRuntimeTableRow, b9 as RenderModeEnum, C as ComponentTypeEnum, bw as assembleRules, bx as isAttachFieldActive, aI as Dependency_ENUM, bl as calculateFormula, aH as ASSIGNMENTSTRATEGY_ENUM, R as getParseFormulaVarInfos, by as fetchHistoryConsume, bz as isBomGranted, aW as renderUtils, bv as uuid2, bA as parseFrontConfig, aL as CheckDsTypeEnum, aF as transformUtils, bB as baseDataUtils, bC as initializeSealFields, Y as FormTypeEnum, bD as normalizeToArray, bE as safeParseArray, bF as BpmnNodeTypeEnum, bG as mergeByMultiKey, a8 as _export_sfc, bH as evaluateInspectionDecisionRule, bI as areValidationCommentsEqual, bJ as useNocodeEmitter, bK as commonUtils, aJ as EntityModelCategoryEnum } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BmECtuSE.js";
2
2
  import { aO, aQ, b0, a1, bL, bM, B, bN, y, ai, bO, bP, bQ, bi, bR, aT, ay, aP, aM, aN, bS, aj, an, bT, bU, aG, a3, ah, az, aR, a0, al, L, bV, bW, bX, O, p, P, aa, o, Q, A, bY, bZ, ax, aw, a6, a2, a4, a5, a7, f, b_, am, aq, ak, b$, c0, c1, c2, bh, c3, c4, c5, c6, c7, c8, c9, ca, cb, cc, bm, cd, ce, aZ, cf, b1, b2, cg, ch, ci, cj, ck, cl, cm, cn, co, cp, aY, cq, b3, bf, cr, cs, ct, ao, t, aS, cu, cv, bn, a_ } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BmECtuSE.js";
3
- import { P as getRuntimeDataFieldId, z as parseRuntimeFieldPath, Q as buildRuntimeFieldPath, T as resolveRuntimeFieldProps, U as resolveRuntimeFieldState, V as getRuntimeDependencyOutputKey, W as isRowAddedInCurrentFormChange, o as MaterialConsumptionPatternEnum, X as MaterialConsumeTableController, Y as setFormulaParamsConfig, Z as normalizeRuntime, H as createRuntimeInstanceContext, R as RuntimeFormStateStore, $ as RuntimeSheetService, g as getBusinessFieldKey, a0 as validateObjectBomQtyOnSubmit, a1 as closeValidatorPopovers, a2 as enrichFormChangeRowDetails, N as NCB_PROVIDE, I as RuntimeInstanceRegistry, a3 as useMaterialBalance, a4 as collectFormChangeFieldLocations, a5 as nextFormChangeRowViewHistoryId } from "../dynamic-table-action-B-Tw4RYj.js";
4
- import { B as B2, a6 as a62, e, _, a7 as a72, L as L2, a8, O as O2, E, a9, aa as aa2, ab, ac, ad, M, a, ae, b, af, ag, ah as ah2, ai as ai2, aj as aj2, ak as ak2, al as al2, am as am2, w, an as an2, m, ao as ao2, c, ap, aq as aq2, ar, as, l, x, at, au, av, aw as aw2, f as f2, y as y2, d, ax as ax2, ay as ay2, az as az2, aA, aB, aC, p as p2, r, aD, q, j, aE, s, aF, C, F, u, t as t2, G, i, k, A as A2, h, v } from "../dynamic-table-action-B-Tw4RYj.js";
3
+ import { P as getRuntimeDataFieldId, z as parseRuntimeFieldPath, Q as buildRuntimeFieldPath, T as resolveRuntimeFieldProps, U as resolveRuntimeFieldState, V as getRuntimeDependencyOutputKey, W as isRowAddedInCurrentFormChange, o as MaterialConsumptionPatternEnum, X as MaterialConsumeTableController, Y as setFormulaParamsConfig, Z as normalizeRuntime, H as createRuntimeInstanceContext, R as RuntimeFormStateStore, $ as RuntimeSheetService, g as getBusinessFieldKey, a0 as validateObjectBomQtyOnSubmit, a1 as closeValidatorPopovers, a2 as enrichFormChangeRowDetails, N as NCB_PROVIDE, I as RuntimeInstanceRegistry, a3 as useMaterialBalance, a4 as collectFormChangeFieldLocations, a5 as nextFormChangeRowViewHistoryId } from "../dynamic-table-action-BXNnUUIX.js";
4
+ import { B as B2, a6 as a62, e, _, a7 as a72, L as L2, a8, O as O2, E, a9, aa as aa2, ab, ac, ad, M, a, ae, b, af, ag, ah as ah2, ai as ai2, aj as aj2, ak as ak2, al as al2, am as am2, w, an as an2, m, ao as ao2, c, ap, aq as aq2, ar, as, l, x, at, au, av, aw as aw2, f as f2, y as y2, d, ax as ax2, ay as ay2, az as az2, aA, aB, aC, p as p2, r, aD, q, j, aE, s, aF, C, F, u, t as t2, G, i, k, A as A2, h, v } from "../dynamic-table-action-BXNnUUIX.js";
5
5
  import { toRaw, watch, toRef, computed, defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, ref, provide, onUnmounted, markRaw, reactive, onBeforeUnmount } from "vue";
6
6
  import { cloneDeep, defaults, isEmpty, merge } from "lodash-es";
7
7
  import "dayjs";
8
- import { S as SubTableCoreFactory, R as RuntimeInstanceController } from "../sub-table-factory-DtG-HO2a.js";
9
- import { A as A3, D, M as M2, a as a10, P as P2, b as b4, c as c10, d as d2, e as e2, W, f as f3, g, h as h2 } from "../sub-table-factory-DtG-HO2a.js";
8
+ import { S as SubTableCoreFactory, R as RuntimeInstanceController } from "../sub-table-factory-CGAWlYDu.js";
9
+ import { A as A3, D, M as M2, a as a10, P as P2, b as b4, c as c10, d as d2, e as e2, W, f as f3, g, h as h2 } from "../sub-table-factory-CGAWlYDu.js";
10
10
  import { B as B3, F as F2, M as M3, a as a11, u as u2 } from "../mb-render-DjXYXimz.js";
11
11
  const InstanceStatusValues = {
12
12
  /** 作废状态 */
@@ -2047,6 +2047,139 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2047
2047
  }
2048
2048
  });
2049
2049
  const InspectionDecisionPromptModal = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-9c14035f"]]);
2050
+ function createMaterialConsumeObjectValidation(options) {
2051
+ const { record, getInfo, isCurrent, shouldSkip, applyComments } = options;
2052
+ let enabled = false;
2053
+ let disposed = false;
2054
+ let submitting = 0;
2055
+ let generation = 0;
2056
+ let lastRevision = -1;
2057
+ let timer;
2058
+ let paths = /* @__PURE__ */ new Set();
2059
+ const unlocated = /* @__PURE__ */ new Set();
2060
+ const alive = () => !disposed && isCurrent();
2061
+ function cancelLive() {
2062
+ generation++;
2063
+ if (timer !== void 0) clearTimeout(timer);
2064
+ timer = void 0;
2065
+ }
2066
+ function calcObjectError(error) {
2067
+ const info = getInfo();
2068
+ const modelKey = info?.modelKey || record.context.businessIndex.modelDisplay.key;
2069
+ const descriptor = record.fields.findField({ modelKey, fieldId: error.field });
2070
+ const props = descriptor?.widget?.props;
2071
+ if (!props?.field || descriptor?.subFieldKey || props.subFieldKey) {
2072
+ const key = modelKey + "." + error.field;
2073
+ if (!unlocated.has(key)) {
2074
+ unlocated.add(key);
2075
+ console.warn("物料消耗对象错误未定位到主表控件,保留在校验清单:", key);
2076
+ }
2077
+ return { error, path: void 0 };
2078
+ }
2079
+ const path = buildRuntimeFieldPath({
2080
+ ...props,
2081
+ modelKey: props.modelKey ?? info?.modelKey,
2082
+ fieldId: props.field
2083
+ });
2084
+ return { error: { ...error, field: path }, path };
2085
+ }
2086
+ function replaceObjectFields(fields) {
2087
+ if (!alive()) return;
2088
+ const next = { ...getInfo()?.mcValidatorMessageMap ?? {} };
2089
+ paths.forEach((path) => delete next[path]);
2090
+ Object.assign(next, fields);
2091
+ paths = new Set(Object.keys(fields));
2092
+ applyComments(next);
2093
+ }
2094
+ function replaceTableFields(fields) {
2095
+ if (!alive()) return;
2096
+ const current = getInfo()?.mcValidatorMessageMap ?? {};
2097
+ const next = { ...fields ?? {} };
2098
+ paths.forEach((path) => {
2099
+ if (current[path]) {
2100
+ next[path] = [...next[path] ?? [], ...current[path]];
2101
+ }
2102
+ });
2103
+ applyComments(next);
2104
+ }
2105
+ function clear() {
2106
+ cancelLive();
2107
+ enabled = false;
2108
+ lastRevision = -1;
2109
+ replaceObjectFields({});
2110
+ }
2111
+ async function validate(live = false) {
2112
+ cancelLive();
2113
+ if (!alive()) return;
2114
+ if (shouldSkip()) {
2115
+ clear();
2116
+ return { isValid: true };
2117
+ }
2118
+ const ticket = generation;
2119
+ const revision = record.formState.revision;
2120
+ const info = getInfo();
2121
+ const display = record.context.businessIndex.modelDisplay;
2122
+ const errors = await validateObjectBomQtyOnSubmit({
2123
+ formState: record.formState.state,
2124
+ objectFieldList: record.context.formConfig.objectFieldList,
2125
+ formInstBom: record.context.services.tmplBomController?.formInstBom,
2126
+ showModelName: display.name,
2127
+ showModelKey: display.key || info?.modelKey || ""
2128
+ });
2129
+ if (!alive() || generation !== ticket || record.formState.revision !== revision || live && getInfo()?.renderModeType !== RenderModeEnum.FormMode)
2130
+ return;
2131
+ const fields = {};
2132
+ const comments = {};
2133
+ for (const source of errors) {
2134
+ const adapted = calcObjectError(source);
2135
+ (fields[adapted.error.field] ??= []).push(adapted.error);
2136
+ if (adapted.path) (comments[adapted.path] ??= []).push(adapted.error);
2137
+ }
2138
+ enabled = !!record.context.formConfig.objectFieldList?.length;
2139
+ lastRevision = revision;
2140
+ replaceObjectFields(comments);
2141
+ return { isValid: !errors.length, fields: Object.keys(fields).length ? fields : void 0 };
2142
+ }
2143
+ function requestLive() {
2144
+ cancelLive();
2145
+ if (!alive() || !enabled || submitting > 0 || getInfo()?.renderModeType !== RenderModeEnum.FormMode)
2146
+ return;
2147
+ const ticket = generation;
2148
+ timer = setTimeout(() => {
2149
+ timer = void 0;
2150
+ void (async () => {
2151
+ await record.controller?.waitUntilPrepared();
2152
+ await record.asyncTasks.waitForRequired();
2153
+ if (!alive() || generation !== ticket || submitting > 0 || getInfo()?.renderModeType !== RenderModeEnum.FormMode)
2154
+ return;
2155
+ await validate(true);
2156
+ })().catch((error) => {
2157
+ if (alive()) console.error("物料消耗对象实时校验失败", error);
2158
+ });
2159
+ }, 300);
2160
+ }
2161
+ return {
2162
+ validate,
2163
+ requestLive,
2164
+ replaceTableFields,
2165
+ clear,
2166
+ beginSubmit() {
2167
+ submitting++;
2168
+ cancelLive();
2169
+ },
2170
+ endSubmit() {
2171
+ submitting--;
2172
+ if (alive() && submitting === 0 && enabled && lastRevision !== record.formState.revision)
2173
+ requestLive();
2174
+ },
2175
+ dispose() {
2176
+ disposed = true;
2177
+ cancelLive();
2178
+ paths.clear();
2179
+ unlocated.clear();
2180
+ }
2181
+ };
2182
+ }
2050
2183
  function applyValidationComments(info, comments, kind) {
2051
2184
  if (!info) return;
2052
2185
  const locationKey = kind === "field" ? "validatorLocationList" : "mcValidatorLocationList";
@@ -2064,6 +2197,29 @@ function applyValidationComments(info, comments, kind) {
2064
2197
  info[messageKey] = map;
2065
2198
  }
2066
2199
  function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType) {
2200
+ const objectValidations = /* @__PURE__ */ new WeakMap();
2201
+ function getObjectValidation(record) {
2202
+ const existing = objectValidations.get(record);
2203
+ if (existing) return existing;
2204
+ const uniqueId = record.context.uniqueId;
2205
+ const validation = createMaterialConsumeObjectValidation({
2206
+ record,
2207
+ getInfo: () => getInfo(uniqueId),
2208
+ isCurrent: () => runtimeRegistry.get(uniqueId) === record,
2209
+ shouldSkip: () => {
2210
+ const skip = syncInspectionDecisionRule(uniqueId);
2211
+ if (skip) clearInspectionValidationState(uniqueId);
2212
+ return skip;
2213
+ },
2214
+ applyComments: (fields) => applyValidationComments(getInfo(uniqueId), fields, "material")
2215
+ });
2216
+ objectValidations.set(record, validation);
2217
+ runtimeRegistry.registerDisposable(uniqueId, () => {
2218
+ validation.dispose();
2219
+ objectValidations.delete(record);
2220
+ });
2221
+ return validation;
2222
+ }
2067
2223
  const inspectionDecisionMatched = /* @__PURE__ */ new WeakMap();
2068
2224
  const inspectionDecisionPrompting = /* @__PURE__ */ new WeakSet();
2069
2225
  function openInspectionDecisionPrompt(uniqueId, content) {
@@ -2104,11 +2260,14 @@ function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType)
2104
2260
  return matched;
2105
2261
  }
2106
2262
  function clearInspectionValidationState(uniqueId) {
2263
+ const record = runtimeRegistry.get(uniqueId);
2264
+ if (record) objectValidations.get(record)?.clear();
2107
2265
  applyValidationComments(getInfo(uniqueId), null, "field");
2108
2266
  applyValidationComments(getInfo(uniqueId), null, "material");
2109
2267
  }
2110
2268
  function bindFormValidationSync(uniqueId) {
2111
2269
  const record = runtimeRegistry.require(uniqueId);
2270
+ const objects = getObjectValidation(record);
2112
2271
  syncInspectionDecisionRule(uniqueId);
2113
2272
  const stop = record.formState.subscribe(() => {
2114
2273
  if (runtimeRegistry.get(uniqueId) !== record) return;
@@ -2119,6 +2278,7 @@ function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType)
2119
2278
  uniqueId,
2120
2279
  !suppressed && info.renderModeType === RenderModeEnum.FormMode
2121
2280
  );
2281
+ objects.requestLive();
2122
2282
  if (suppressed) return;
2123
2283
  if (info.renderModeType === RenderModeEnum.FormMode) {
2124
2284
  record.validation.requestLive("change");
@@ -2151,48 +2311,43 @@ function createRuntimeValidationBinding(runtimeRegistry, getInfo, platformType)
2151
2311
  }
2152
2312
  async function runSubmissionValidation(uniqueId) {
2153
2313
  const record = runtimeRegistry.require(uniqueId);
2154
- const formState = record.formState.state;
2155
- const bomC = record.context.services.tmplBomController;
2156
- if (syncInspectionDecisionRule(uniqueId)) {
2157
- clearInspectionValidationState(uniqueId);
2158
- return { isValid: true };
2159
- }
2160
- const res = await record.validation.validate();
2161
- if (!res || runtimeRegistry.get(uniqueId) !== record) return;
2162
- const revision = record.formState.revision;
2163
- if (bomC) {
2164
- const bomRes = await bomC.submitValidate();
2165
- if (runtimeRegistry.get(uniqueId) !== record || record.formState.revision !== revision)
2166
- return;
2167
- applyValidationComments(getInfo(uniqueId), bomRes.fields ?? null, "material");
2168
- if (!bomRes.isValid) {
2169
- merge(res, bomRes);
2170
- return res;
2314
+ const objects = getObjectValidation(record);
2315
+ objects.beginSubmit();
2316
+ try {
2317
+ if (syncInspectionDecisionRule(uniqueId)) {
2318
+ clearInspectionValidationState(uniqueId);
2319
+ return { isValid: true };
2171
2320
  }
2172
- const info = getInfo(uniqueId);
2173
- const display = record.context.businessIndex.modelDisplay;
2174
- display.name;
2175
- const showModelKey = display.key || info?.modelKey || "";
2176
- const objErrs = await validateObjectBomQtyOnSubmit({
2177
- formState: formState ?? {},
2178
- objectFieldList: record.context.formConfig.objectFieldList,
2179
- formInstBom: bomC.formInstBom,
2180
- showModelKey
2181
- });
2182
- if (runtimeRegistry.get(uniqueId) !== record || record.formState.revision !== revision)
2183
- return;
2184
- if (objErrs.length) {
2185
- const fields = {};
2186
- objErrs.forEach((e3) => {
2187
- (fields[e3.field] ??= []).push(e3);
2188
- });
2189
- const objectBomRes = { isValid: false, fields };
2190
- merge(res, objectBomRes);
2191
- applyValidationComments(info, { ...info?.validatorMessageMap ?? {}, ...fields }, "field");
2192
- return res;
2321
+ const res = await record.validation.validate();
2322
+ if (!res || runtimeRegistry.get(uniqueId) !== record) return;
2323
+ const revision = record.formState.revision;
2324
+ const bomC = record.context.services.tmplBomController;
2325
+ if (bomC) {
2326
+ const bomRes = await bomC.submitValidate();
2327
+ if (runtimeRegistry.get(uniqueId) !== record || record.formState.revision !== revision)
2328
+ return;
2329
+ objects.replaceTableFields(bomRes.fields);
2330
+ if (!bomRes.isValid) {
2331
+ merge(res, bomRes);
2332
+ return res;
2333
+ }
2334
+ const objectRes = await objects.validate();
2335
+ if (!objectRes || runtimeRegistry.get(uniqueId) !== record || record.formState.revision !== revision)
2336
+ return;
2337
+ if (!objectRes.isValid) {
2338
+ const fields = { ...res.fields ?? {} };
2339
+ for (const [path, errors] of Object.entries(objectRes.fields ?? {})) {
2340
+ fields[path] = [...fields[path] ?? [], ...errors];
2341
+ }
2342
+ return { ...res, isValid: false, fields };
2343
+ }
2344
+ } else {
2345
+ objects.clear();
2193
2346
  }
2347
+ return res;
2348
+ } finally {
2349
+ objects.endSubmit();
2194
2350
  }
2195
- return res;
2196
2351
  }
2197
2352
  function updateRenderModeType(uniqueId, mode, updateButton = false) {
2198
2353
  const record = runtimeRegistry.require(uniqueId);
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, computed, openBlock, createBlock } from "vue";
2
- import { h as useModelFields, D as Diagonal } from "./index-BLfLEJTY.js";
2
+ import { h as useModelFields, D as Diagonal } from "./index-DbpSl_cV.js";
3
3
  import { ao as resolveDiagonalVertex, a8 as _export_sfc } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BmECtuSE.js";
4
4
  import "lodash-es";
5
5
  import "dayjs";
@@ -1,5 +1,5 @@
1
1
  import { M as commonjsGlobal, N as getDefaultExportFromCjs } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BmECtuSE.js";
2
- import { c as commonjsRequire } from "./index-BLfLEJTY.js";
2
+ import { c as commonjsRequire } from "./index-DbpSl_cV.js";
3
3
  function _mergeNamespaces(n, m) {
4
4
  for (var i = 0; i < m.length; i++) {
5
5
  const e = m[i];
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, computed, resolveComponent, openBlock, createElementBlock, createElementVNode, createVNode, unref, normalizeClass, withCtx, normalizeStyle } from "vue";
2
2
  import { A as AlignEditor } from "./align-editor-wPpZ_4zH.js";
3
3
  import { pick } from "lodash-es";
4
- import { z as _sfc_main$1, C as ColorPicker } from "./index-BLfLEJTY.js";
4
+ import { z as _sfc_main$1, C as ColorPicker } from "./index-DbpSl_cV.js";
5
5
  import { a8 as _export_sfc } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BmECtuSE.js";
6
6
  const _hoisted_1 = { class: "ks-row-middle mb-6px" };
7
7
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -3,7 +3,7 @@ import { C as ComponentTypeEnum, b0 as BindCmpStyleEnum } from "./dynamic-table-
3
3
  import "vue";
4
4
  import "dayjs";
5
5
  import "ant-design-vue";
6
- import { B as BaseComponent } from "./BaseComponent-BukKy-Ta.js";
6
+ import { B as BaseComponent } from "./BaseComponent-DlErT5t9.js";
7
7
  class Textarea extends BaseComponent {
8
8
  component = ComponentTypeEnum.Textarea;
9
9
  wrapperCmpConfig({ data }) {
@@ -3,7 +3,7 @@ import { C as ComponentTypeEnum, O as Orientation, a1 as BooleanShowMode, a0 as
3
3
  import "vue";
4
4
  import "dayjs";
5
5
  import "ant-design-vue";
6
- import { B as BaseComponent } from "./BaseComponent-BukKy-Ta.js";
6
+ import { B as BaseComponent } from "./BaseComponent-DlErT5t9.js";
7
7
  class DynValue extends BaseComponent {
8
8
  component = ComponentTypeEnum.DynValue;
9
9
  wrapperCmpConfig({ data }) {
@@ -4,7 +4,7 @@ import "vue";
4
4
  import { pick } from "lodash-es";
5
5
  import "dayjs";
6
6
  import "ant-design-vue";
7
- import { n as normalizeSpacerWidth, g as getFieldWidget } from "./index-BLfLEJTY.js";
7
+ import { n as normalizeSpacerWidth, g as getFieldWidget } from "./index-DbpSl_cV.js";
8
8
  class CombineFields {
9
9
  component = ComponentTypeEnum.CombineFields;
10
10
  wrapperCmpConfig({ data }) {
@@ -3,7 +3,7 @@ import { C as ComponentTypeEnum } from "./dynamic-table-action.vue_vue_type_styl
3
3
  import "vue";
4
4
  import "dayjs";
5
5
  import "ant-design-vue";
6
- import { B as BaseComponent } from "./BaseComponent-BukKy-Ta.js";
6
+ import { B as BaseComponent } from "./BaseComponent-DlErT5t9.js";
7
7
  class Userpicker extends BaseComponent {
8
8
  component = ComponentTypeEnum.Userpicker;
9
9
  wrapperCmpConfig({ data }) {
@@ -3,7 +3,7 @@ import { C as ComponentTypeEnum, ay as DecimalDisplayMode, ax as RangeCompareOp,
3
3
  import "vue";
4
4
  import "dayjs";
5
5
  import "ant-design-vue";
6
- import { B as BaseComponent } from "./BaseComponent-BukKy-Ta.js";
6
+ import { B as BaseComponent } from "./BaseComponent-DlErT5t9.js";
7
7
  class InputDouble extends BaseComponent {
8
8
  component = ComponentTypeEnum.InputDouble;
9
9
  wrapperCmpConfig({ data }) {
@@ -3,7 +3,7 @@ import { C as ComponentTypeEnum } from "./dynamic-table-action.vue_vue_type_styl
3
3
  import "vue";
4
4
  import "dayjs";
5
5
  import "ant-design-vue";
6
- import { B as BaseComponent } from "./BaseComponent-BukKy-Ta.js";
6
+ import { B as BaseComponent } from "./BaseComponent-DlErT5t9.js";
7
7
  class UploadFile extends BaseComponent {
8
8
  component = ComponentTypeEnum.UploadFile;
9
9
  wrapperCmpConfig({ data }) {
@@ -3,7 +3,7 @@ import { C as ComponentTypeEnum, ax as RangeCompareOp, aw as RangeValidateMode }
3
3
  import "vue";
4
4
  import "dayjs";
5
5
  import "ant-design-vue";
6
- import { B as BaseComponent } from "./BaseComponent-BukKy-Ta.js";
6
+ import { B as BaseComponent } from "./BaseComponent-DlErT5t9.js";
7
7
  class Datepicker extends BaseComponent {
8
8
  component = ComponentTypeEnum.Datepicker;
9
9
  wrapperCmpConfig({ data }) {
@@ -3,7 +3,7 @@ import { C as ComponentTypeEnum, az as ImageDisplayModeEnum } from "./dynamic-ta
3
3
  import "vue";
4
4
  import "dayjs";
5
5
  import "ant-design-vue";
6
- import { B as BaseComponent } from "./BaseComponent-BukKy-Ta.js";
6
+ import { B as BaseComponent } from "./BaseComponent-DlErT5t9.js";
7
7
  class UploadImage extends BaseComponent {
8
8
  component = ComponentTypeEnum.UploadImage;
9
9
  wrapperCmpConfig({ data }) {
@@ -3,7 +3,7 @@ import "vue";
3
3
  import { pick } from "lodash-es";
4
4
  import "dayjs";
5
5
  import "ant-design-vue";
6
- import { B as BaseComponent } from "./BaseComponent-BukKy-Ta.js";
6
+ import { B as BaseComponent } from "./BaseComponent-DlErT5t9.js";
7
7
  class Diagonal extends BaseComponent {
8
8
  component = ComponentTypeEnum.Diagonal;
9
9
  wrapperCmpConfig({ data }) {
@@ -3,7 +3,7 @@ import "vue";
3
3
  import { pick, has, isEmpty, cloneDeep, get } from "lodash-es";
4
4
  import "dayjs";
5
5
  import "ant-design-vue";
6
- import { A as AsyncGctOnlineComponents } from "./index-BLfLEJTY.js";
6
+ import { A as AsyncGctOnlineComponents } from "./index-DbpSl_cV.js";
7
7
  class Tr {
8
8
  component = "tr";
9
9
  wrapperCmpConfig({ data, parent }) {
@@ -3,7 +3,7 @@ import { C as ComponentTypeEnum, a2 as SignatureImageDirectionEnum, a3 as Fallba
3
3
  import "vue";
4
4
  import "dayjs";
5
5
  import "ant-design-vue";
6
- import { B as BaseComponent } from "./BaseComponent-BukKy-Ta.js";
6
+ import { B as BaseComponent } from "./BaseComponent-DlErT5t9.js";
7
7
  class Sign extends BaseComponent {
8
8
  component = ComponentTypeEnum.Sign;
9
9
  wrapperCmpConfig({ data }) {
@@ -3,7 +3,7 @@ import { C as ComponentTypeEnum } from "./dynamic-table-action.vue_vue_type_styl
3
3
  import "vue";
4
4
  import "dayjs";
5
5
  import "ant-design-vue";
6
- import { B as BaseComponent } from "./BaseComponent-BukKy-Ta.js";
6
+ import { B as BaseComponent } from "./BaseComponent-DlErT5t9.js";
7
7
  class Department extends BaseComponent {
8
8
  component = ComponentTypeEnum.Department;
9
9
  wrapperCmpConfig({ data }) {
@@ -3,7 +3,7 @@ import { C as ComponentTypeEnum } from "./dynamic-table-action.vue_vue_type_styl
3
3
  import "vue";
4
4
  import "dayjs";
5
5
  import "ant-design-vue";
6
- import { B as BaseComponent } from "./BaseComponent-BukKy-Ta.js";
6
+ import { B as BaseComponent } from "./BaseComponent-DlErT5t9.js";
7
7
  class Timepicker extends BaseComponent {
8
8
  component = ComponentTypeEnum.Timepicker;
9
9
  wrapperCmpConfig({ data }) {
@@ -3,7 +3,7 @@ import { C as ComponentTypeEnum, b0 as BindCmpStyleEnum } from "./dynamic-table-
3
3
  import "vue";
4
4
  import "dayjs";
5
5
  import "ant-design-vue";
6
- import { B as BaseComponent } from "./BaseComponent-BukKy-Ta.js";
6
+ import { B as BaseComponent } from "./BaseComponent-DlErT5t9.js";
7
7
  class Input extends BaseComponent {
8
8
  component = ComponentTypeEnum.Input;
9
9
  wrapperCmpConfig({ data }) {
@@ -3,8 +3,8 @@ import { C as ComponentTypeEnum, O as Orientation, a0 as LabelPosition, b0 as Bi
3
3
  import "vue";
4
4
  import "dayjs";
5
5
  import "ant-design-vue";
6
- import { B as BaseComponent } from "./BaseComponent-BukKy-Ta.js";
7
- import { g as getFieldWidget } from "./index-BLfLEJTY.js";
6
+ import { B as BaseComponent } from "./BaseComponent-DlErT5t9.js";
7
+ import { g as getFieldWidget } from "./index-DbpSl_cV.js";
8
8
  class EnumSelect extends BaseComponent {
9
9
  component = ComponentTypeEnum.EnumSelect;
10
10
  wrapperCmpConfig({ data }) {
@@ -3,8 +3,8 @@ import "vue";
3
3
  import "lodash-es";
4
4
  import "dayjs";
5
5
  import "ant-design-vue";
6
- import { B as BaseComponent } from "./BaseComponent-BukKy-Ta.js";
7
- import { g as getTraceLikeSelectProps } from "./trace-like-wrapper-DayZkwvZ.js";
6
+ import { B as BaseComponent } from "./BaseComponent-DlErT5t9.js";
7
+ import { g as getTraceLikeSelectProps } from "./trace-like-wrapper-CLMuoU3p.js";
8
8
  class RdoSelect extends BaseComponent {
9
9
  component = ComponentTypeEnum.RdoSelect;
10
10
  wrapperCmpConfig({ data }) {
@@ -3,8 +3,8 @@ import { C as ComponentTypeEnum, F as FIELD_TYPE } from "./dynamic-table-action.
3
3
  import "vue";
4
4
  import "dayjs";
5
5
  import "ant-design-vue";
6
- import { B as BaseComponent } from "./BaseComponent-BukKy-Ta.js";
7
- import { i as isSterilizationLotField, a as getSterilizationLotDisplayFields, b as isInventoryProductField, s as showDisplayAndSearchConfig, r as resolveQuickSearchConfig, I as INVENTORY_QUICK_SEARCH_FIELDS } from "./index-BLfLEJTY.js";
6
+ import { B as BaseComponent } from "./BaseComponent-DlErT5t9.js";
7
+ import { i as isSterilizationLotField, a as getSterilizationLotDisplayFields, b as isInventoryProductField, s as showDisplayAndSearchConfig, r as resolveQuickSearchConfig, I as INVENTORY_QUICK_SEARCH_FIELDS } from "./index-DbpSl_cV.js";
8
8
  class Select extends BaseComponent {
9
9
  component = ComponentTypeEnum.Select;
10
10
  wrapperCmpConfig({ data }) {
@@ -3,8 +3,8 @@ import "vue";
3
3
  import "lodash-es";
4
4
  import "dayjs";
5
5
  import "ant-design-vue";
6
- import { B as BaseComponent } from "./BaseComponent-BukKy-Ta.js";
7
- import { g as getTraceLikeSelectProps } from "./trace-like-wrapper-DayZkwvZ.js";
6
+ import { B as BaseComponent } from "./BaseComponent-DlErT5t9.js";
7
+ import { g as getTraceLikeSelectProps } from "./trace-like-wrapper-CLMuoU3p.js";
8
8
  class AutoComplete extends BaseComponent {
9
9
  component = ComponentTypeEnum.AutoComplete;
10
10
  wrapperCmpConfig({ data }) {
@@ -3,7 +3,7 @@ import "vue";
3
3
  import "lodash-es";
4
4
  import "dayjs";
5
5
  import "ant-design-vue";
6
- import { B as BaseComponent } from "./BaseComponent-BukKy-Ta.js";
6
+ import { B as BaseComponent } from "./BaseComponent-DlErT5t9.js";
7
7
  class Seal extends BaseComponent {
8
8
  component = ComponentTypeEnum.Seal;
9
9
  wrapperCmpConfig({ data }) {
@@ -1,11 +1,11 @@
1
1
  import { get, pick } from "lodash-es";
2
- import { n as normalizeFieldWidth, D as DEFAULT_BOOLEAN_FIELD_WIDTH } from "./dynamic-table-action-B-Tw4RYj.js";
2
+ import { n as normalizeFieldWidth, D as DEFAULT_BOOLEAN_FIELD_WIDTH } from "./dynamic-table-action-BXNnUUIX.js";
3
3
  import { C as ComponentTypeEnum, O as Orientation, a1 as BooleanShowMode, a0 as LabelPosition, b0 as BindCmpStyleEnum } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BmECtuSE.js";
4
4
  import "vue";
5
5
  import "dayjs";
6
6
  import "ant-design-vue";
7
- import { g as getFieldWidget } from "./index-BLfLEJTY.js";
8
- import { B as BaseComponent } from "./BaseComponent-BukKy-Ta.js";
7
+ import { g as getFieldWidget } from "./index-DbpSl_cV.js";
8
+ import { B as BaseComponent } from "./BaseComponent-DlErT5t9.js";
9
9
  class Switch extends BaseComponent {
10
10
  component = ComponentTypeEnum.Switch;
11
11
  wrapperCmpConfig({ data }) {