@gct-paas/excel 0.1.40-beta.22 → 0.1.40-beta.25

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 (63) hide show
  1. package/dist/{BaseComponent-0BP8yUp3.js → BaseComponent-gOtXQLY_.js} +1 -1
  2. package/dist/{VueVideoPlayer-BTRWrHgw.js → VueVideoPlayer-CB5VHlj2.js} +1 -1
  3. package/dist/{barcode-design-BOutrCCv.js → barcode-design-Mjrep3H_.js} +1 -1
  4. package/dist/base/index.es.js +34 -11
  5. package/dist/{diagonal-design-C8Y7RdW8.js → diagonal-design-CFBp2E-O.js} +1 -1
  6. package/dist/{dynamic-table-action-DLctOchz.js → dynamic-table-action-BKX0Oeoy.js} +51 -31
  7. package/dist/excel.css +66 -52
  8. package/dist/{exceljs.min-CbCAYZ_e.js → exceljs.min-eo-E80If.js} +1 -1
  9. package/dist/{font-editor-DdR8irtJ.js → font-editor-CAZX85G4.js} +1 -1
  10. package/dist/{index-BIm_YKSw.js → index--7My1yo5.js} +54 -38
  11. package/dist/{index-D6dtoM6l.js → index--RhdrCZV.js} +1 -1
  12. package/dist/{index-C_Wum5DS.js → index-0S-kw2HL.js} +1 -1
  13. package/dist/{index-CqbuTaGQ.js → index-0pYUJqWX.js} +1 -1
  14. package/dist/{index-CE0kTBaD.js → index-8WHvZyAx.js} +1 -1
  15. package/dist/{index-CTHjoZJh.js → index-9Mi1Iiw8.js} +2 -2
  16. package/dist/{index-C8vcYrJ2.js → index-BBq6DSLI.js} +1 -1
  17. package/dist/{index-CQxjpFgv.js → index-BLqJtzs6.js} +1 -1
  18. package/dist/{index-JOJRN3MY.js → index-BLv5fzzG.js} +1 -1
  19. package/dist/{index-JFbTpwJI.js → index-BMlGh5m0.js} +1 -1
  20. package/dist/{index-x19gmsid.js → index-BoGFEaqo.js} +1 -1
  21. package/dist/{index-fTuTQkkK.js → index-BycDrbO0.js} +1 -1
  22. package/dist/{index-CBSkF7uO.js → index-CoKpbR25.js} +1 -1
  23. package/dist/{index-Cek24DHR.js → index-Cpn8pcne.js} +1 -1
  24. package/dist/{index-C5Z5DcwP.js → index-DgEDg0_J.js} +2 -2
  25. package/dist/{index-D9ZmqZVa.js → index-DifKRFVy.js} +1 -1
  26. package/dist/{index-CjjnjV4j.js → index-DzT1SZ9z.js} +2 -2
  27. package/dist/{index-TTjH7nBY.js → index-NH1JcF4s.js} +1 -1
  28. package/dist/{index-Cli4afdv.js → index-NulsmEum.js} +2 -2
  29. package/dist/{index-C0riszYt.js → index-SrAjB-wq.js} +3 -3
  30. package/dist/{index-DuRfWFNu.js → index-fcxbS2U1.js} +2 -2
  31. package/dist/{index-DNc82Cm4.js → index-hNdJpzws.js} +2 -2
  32. package/dist/{index-Djsed3L4.js → index-iYrfBvkL.js} +1 -1
  33. package/dist/{index-c69w0WwG.js → index-jTfc0zM7.js} +1 -1
  34. package/dist/index.es.js +1 -1
  35. package/dist/{pagination-design-CA-dxfST.js → pagination-design-DelDPMV6.js} +1 -1
  36. package/dist/paper-widget-design-UPTi8CN4.js +4 -0
  37. package/dist/{print-runtime-instance-Df03RTCq.js → print-runtime-instance-NcHBwPwX.js} +1 -1
  38. package/dist/{print-snapshot-renderer-CifB67Uu.js → print-snapshot-renderer-Dw-xzoDx.js} +3 -3
  39. package/dist/{qrcode-design-BF9P4MgR.js → qrcode-design-DAYfoLN-.js} +1 -1
  40. package/dist/seal-design-CeJEHJ-K.js +4 -0
  41. package/dist/{single-field-drop-CzMkcDOQ.js → single-field-drop-BcuqHgNO.js} +1 -1
  42. package/dist/src/nocode-base/src/hooks/material-consume/bom-validator.d.ts +2 -2
  43. package/dist/src/nocode-base/src/hooks/material-consume/material-consume-table-controller.d.ts +14 -7
  44. package/dist/src/nocode-base/src/hooks/material-consume/tmpl-bom-controller.d.ts +8 -0
  45. package/dist/src/online-form/src/views/__cell_widgets__/cell-widget-design.vue.d.ts +1 -0
  46. package/dist/{sub-table-factory-BUKjHjsJ.js → sub-table-factory-v9spfnMN.js} +1 -1
  47. package/dist/{text-design-0ye2Qkdm.js → text-design-BjhwgpUv.js} +1 -1
  48. package/dist/{trace-like-wrapper-B8ZB0cEY.js → trace-like-wrapper-DHb2jlre.js} +1 -1
  49. package/dist/{value-editor.vue_vue_type_style_index_0_lang-C7aAgLHW.js → value-editor.vue_vue_type_style_index_0_lang-CV1HsENd.js} +1 -1
  50. package/dist/{widget-barcode-D0VKq_RH.js → widget-barcode-CNB9Sqle.js} +2 -2
  51. package/dist/{widget-diagonal-B4-YeaS-.js → widget-diagonal-6ZDcxCwX.js} +2 -2
  52. package/dist/{widget-image-CnOxfH66.js → widget-image-D--Ynjra.js} +1 -1
  53. package/dist/{widget-line-C-RWHAjB.js → widget-line-CpwqEFD9.js} +1 -1
  54. package/dist/{widget-pagination-CdkML1ma.js → widget-pagination-BN3wWsKq.js} +2 -2
  55. package/dist/{widget-power-CLg0Ov4-.js → widget-power-Cn61OOWe.js} +2 -2
  56. package/dist/{widget-qrcode-Bo_PZVS3.js → widget-qrcode-BgUCM01T.js} +2 -2
  57. package/dist/{widget-rangelimit-vmFExwlR.js → widget-rangelimit-CnNNwIo0.js} +2 -2
  58. package/dist/{widget-serialnumber-DUCvkD2p.js → widget-serialnumber-gZih5585.js} +1 -1
  59. package/dist/{widget-text-CwSG4P5w.js → widget-text--iXnC5zl.js} +3 -3
  60. package/dist/{widget-timediff-CenBgqXn.js → widget-timediff-DN-FCR7T.js} +1 -1
  61. package/package.json +2 -2
  62. package/dist/paper-widget-design-z1CF36U7.js +0 -4
  63. package/dist/seal-design-DNugznsd.js +0 -4
@@ -1,4 +1,4 @@
1
- import { j as normalizeFieldWidth } from "./dynamic-table-action-DLctOchz.js";
1
+ import { j as normalizeFieldWidth } from "./dynamic-table-action-BKX0Oeoy.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_8710052f_lang-BsyVWing.js";
4
4
  import { f as fontStyleAttrs } from "./config.enum-B8UZQTON.js";
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, toRaw, shallowRef, computed, ref, readonly, onMounted, watch, normalizeClass, onBeforeUnmount, h as h$1, watchEffect, unref, createVNode, reactive } from "vue";
2
2
  import { V as commonjsGlobal, W as getDefaultExportFromCjs } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BsyVWing.js";
3
- import { G as require$$0 } from "./index-BIm_YKSw.js";
3
+ import { G as require$$0 } from "./index--7My1yo5.js";
4
4
  var window_1;
5
5
  var hasRequiredWindow;
6
6
  function requireWindow() {
@@ -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-BIm_YKSw.js";
3
+ import { u as useSpreadSheet, h as useModelFields, l as loadBwip } from "./index--7My1yo5.js";
4
4
  import { X as PaperWidgeValueType, ad as _export_sfc } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BsyVWing.js";
5
5
  import "dayjs";
6
6
  import "@gct-paas/form-base";
@@ -1,12 +1,12 @@
1
1
  import { p as api, a3 as PlatformEnum, F as FIELD_TYPE, bk as getRowId, bl as findRuntimeTableRow, bm as RenderModeEnum, C as ComponentTypeEnum, aD as findFieldMain, c as getProfileByTableType, d as getBusinessProfileByRefModelType, b as isBusinessSubTableProfile, az as RangeValidateMode, aP as Dependency_ENUM, aO as ASSIGNMENTSTRATEGY_ENUM, bw as fetchHistoryConsume, bx as isBomGranted, b2 as renderUtils, bv as uuid2, by as parseFrontConfig, aS as CheckDsTypeEnum, aM as transformUtils, bz as baseDataUtils, a0 as FormTypeEnum, bA as normalizeToArray, bB as safeParseArray, bC as BpmnNodeTypeEnum, bD as mergeByMultiKey, ad as _export_sfc, bE as evaluateInspectionDecisionRule, bF as useNocodeEmitter, bG as commonUtils, aQ as EntityModelCategoryEnum } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BsyVWing.js";
2
2
  import { aV, aX, b9, a5, bH, bI, B, bJ, H, al, bK, bL, bM, bj, bN, a_, aE, aW, aT, aU, bO, am, aq, bP, bQ, aN, a7, ak, aF, aY, a4, ao, L, bR, bS, bT, O, t, P, af, q, X, K, bU, bV, aA, aa, a6, a8, a9, ab, h, bW, ap, at, an, bX, bY, bZ, b_, aI, b$, c0, c1, c2, c3, c4, c5, c6, c7, c8, bn, c9, ca, b5, cb, ba, bb, cc, cd, ce, cf, cg, ch, ci, cj, ck, cl, b4, cm, bc, aJ, cn, co, ar, y, aZ, cp, cq, bo, b6 } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BsyVWing.js";
3
- import { a8 as getRuntimeDataFieldId, S as parseRuntimeFieldPath, a9 as buildRuntimeFieldPath, m as findFieldProfile, aa as resolveRuntimeFieldProps, ab as resolveRuntimeFieldState, ac as assembleRules, ad as isAttachFieldActive, U as calculateFormula, ae as getRuntimeDependencyOutputKey, af as isRowAddedInCurrentFormChange, e as getParseFormulaVarInfos, A as MaterialConsumptionPatternEnum, ag as MaterialConsumeTableController, ah as setFormulaParamsConfig, ai as normalizeRuntime, _ as createRuntimeInstanceContext, aj as initializeSealFields, Z as RuntimeFormStateStore, ak as RuntimeSheetService, g as getBusinessFieldKey, al as validateObjectBomQtyOnSubmit, am as areValidationCommentsEqual, an as closeValidatorPopovers, ao as enrichFormChangeRowDetails, T as NCB_PROVIDE, $ as RuntimeInstanceRegistry, ap as useMaterialBalance, aq as collectFormChangeFieldLocations, ar as nextFormChangeRowViewHistoryId } from "../dynamic-table-action-DLctOchz.js";
4
- import { as, B as B2, at as at2, p, a7 as a72, au, a5 as a52, av, a6 as a62, K as K2, aw, F, ax, ay, az, aA as aA2, M, a, a2, aB, a3, d, aC, aD, aE as aE2, aF as aF2, aG, aH, aI as aI2, aJ as aJ2, I, aK, y as y2, aL, f, aM, aN as aN2, aO, aP, x, J, aQ, aR, aS, aT as aT2, q as q2, L as L2, o, aU as aU2, aV as aV2, aW as aW2, aX as aX2, aY as aY2, aZ as aZ2, a_ as a_2, E, z, a$, G, v, b0, t as t2, b1, W, X as X2, u, l, H as H2, Y, s, w, V, r, C } from "../dynamic-table-action-DLctOchz.js";
3
+ import { a8 as getRuntimeDataFieldId, S as parseRuntimeFieldPath, a9 as buildRuntimeFieldPath, m as findFieldProfile, aa as resolveRuntimeFieldProps, ab as resolveRuntimeFieldState, ac as assembleRules, ad as isAttachFieldActive, U as calculateFormula, ae as getRuntimeDependencyOutputKey, af as isRowAddedInCurrentFormChange, e as getParseFormulaVarInfos, A as MaterialConsumptionPatternEnum, ag as MaterialConsumeTableController, ah as setFormulaParamsConfig, ai as normalizeRuntime, _ as createRuntimeInstanceContext, aj as initializeSealFields, Z as RuntimeFormStateStore, ak as RuntimeSheetService, g as getBusinessFieldKey, al as validateObjectBomQtyOnSubmit, am as areValidationCommentsEqual, an as closeValidatorPopovers, ao as enrichFormChangeRowDetails, T as NCB_PROVIDE, $ as RuntimeInstanceRegistry, ap as useMaterialBalance, aq as collectFormChangeFieldLocations, ar as nextFormChangeRowViewHistoryId } from "../dynamic-table-action-BKX0Oeoy.js";
4
+ import { as, B as B2, at as at2, p, a7 as a72, au, a5 as a52, av, a6 as a62, K as K2, aw, F, ax, ay, az, aA as aA2, M, a, a2, aB, a3, d, aC, aD, aE as aE2, aF as aF2, aG, aH, aI as aI2, aJ as aJ2, I, aK, y as y2, aL, f, aM, aN as aN2, aO, aP, x, J, aQ, aR, aS, aT as aT2, q as q2, L as L2, o, aU as aU2, aV as aV2, aW as aW2, aX as aX2, aY as aY2, aZ as aZ2, a_ as a_2, E, z, a$, G, v, b0, t as t2, b1, W, X as X2, u, l, H as H2, Y, s, w, V, r, C } from "../dynamic-table-action-BKX0Oeoy.js";
5
5
  import { toRaw, watch, toRef, computed, defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, shallowRef, markRaw, ref, provide, onUnmounted, reactive, onBeforeUnmount } from "vue";
6
6
  import { cloneDeep, defaults, isEmpty, merge, get } from "lodash-es";
7
7
  import "dayjs";
8
- import { S as SubTableCoreFactory, R as RuntimeInstanceController } from "../sub-table-factory-BUKjHjsJ.js";
9
- import { A, D, M as M2, a as a10, P as P2, b, c, d as d2, e, W as W2, f as f2, g, h as h2 } from "../sub-table-factory-BUKjHjsJ.js";
8
+ import { S as SubTableCoreFactory, R as RuntimeInstanceController } from "../sub-table-factory-v9spfnMN.js";
9
+ import { A, D, M as M2, a as a10, P as P2, b, c, d as d2, e, W as W2, f as f2, g, h as h2 } from "../sub-table-factory-v9spfnMN.js";
10
10
  import { createDataSourceManager, getLegacyFieldFillTargets, createFieldFillRuntime, buildFieldFillTableRows, buildFieldFillRows, isFieldFillTargetProtected, getFieldFillTable, getFieldFillColumn, buildDataSourceContext } from "@gct-paas/form-base";
11
11
  const InstanceStatusValues = {
12
12
  /** 作废状态 */
@@ -1042,6 +1042,28 @@ class FormTmplBomController {
1042
1042
  });
1043
1043
  });
1044
1044
  }
1045
+ /** 全部 Sheet 的消耗表统一在 LOADED 前准备。 */
1046
+ initializeFormState(opts) {
1047
+ Object.entries(this.field2TableMap).forEach(([field, tableKey]) => {
1048
+ const controller = this.tableControllers[tableKey];
1049
+ if (!controller) return;
1050
+ controller.prepareInitialData({
1051
+ formState: opts.formState,
1052
+ field,
1053
+ dataStatus: opts.dataStatus,
1054
+ defaultRowData: renderUtils.getDefaultValueInfo({
1055
+ defaultDataMap: opts.defaultDataMap,
1056
+ key: field
1057
+ })
1058
+ });
1059
+ });
1060
+ }
1061
+ /** 钩子若修改数量依赖,在创建 Store 和分页前按原规则重算。 */
1062
+ finalizeInitialQuantities() {
1063
+ Object.values(this.tableControllers).forEach((controller) => {
1064
+ controller.syncQtyRequiredFromBomIfChanged();
1065
+ });
1066
+ }
1045
1067
  async submitValidate() {
1046
1068
  const results = await Promise.all(
1047
1069
  Object.values(this.tableControllers).map((c10) => c10.submitValidate())
@@ -1633,6 +1655,11 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
1633
1655
  });
1634
1656
  initializeSealFields(floatingFields, formState);
1635
1657
  }
1658
+ tmplBomC.initializeFormState({
1659
+ formState,
1660
+ dataStatus: selfInfo.dataStatus,
1661
+ defaultDataMap
1662
+ });
1636
1663
  await transformUtils.getEventInitDataLoaded({
1637
1664
  formConfig: runtimeContext.formConfig,
1638
1665
  formState,
@@ -1642,6 +1669,7 @@ function createRuntimeInstanceInitializer(props, payload, getConsumeData) {
1642
1669
  }).catch((error) => {
1643
1670
  console.error("Error in getEventInitDataLoaded:", error);
1644
1671
  });
1672
+ tmplBomC.finalizeInitialQuantities();
1645
1673
  runtimeFormStateStore = new RuntimeFormStateStore(
1646
1674
  formState,
1647
1675
  // 子表信息覆盖普通/固定/检验表、二维关联列以及各类业务表;不能只依赖已放置字段。
@@ -1789,18 +1817,13 @@ function bindRuntimeBusinessServices(runtimeRegistry, record, dataStatus) {
1789
1817
  }
1790
1818
  }),
1791
1819
  mainFormState: computed(() => record.formState.state),
1792
- dataStatus,
1793
- defaultRowData: renderUtils.getDefaultValueInfo({
1794
- defaultDataMap: record.context.defaultData,
1795
- key: field
1796
- })
1820
+ dataStatus
1797
1821
  });
1798
1822
  stops.push(
1799
1823
  watch(
1800
1824
  () => controller.materialNoNum,
1801
1825
  () => {
1802
- if (controller.dataStatus === "SUBMIT") return;
1803
- controller.syncQtyRequiredFromBom();
1826
+ controller.syncQtyRequiredFromBomIfChanged();
1804
1827
  },
1805
1828
  { immediate: true }
1806
1829
  )
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, computed, openBlock, createBlock } from "vue";
2
- import { h as useModelFields, D as Diagonal } from "./index-BIm_YKSw.js";
2
+ import { h as useModelFields, D as Diagonal } from "./index--7My1yo5.js";
3
3
  import { ar as resolveDiagonalVertex, ad as _export_sfc } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BsyVWing.js";
4
4
  import "lodash-es";
5
5
  import "dayjs";
@@ -1,4 +1,4 @@
1
- import { reactive, toRaw, computed, watch, onScopeDispose, inject, h, shallowReactive, markRaw, ref, provide, nextTick, toRef, defineComponent, openBlock, createElementBlock, mergeProps, unref, createElementVNode, normalizeClass, renderSlot, createCommentVNode, createVNode, toDisplayString, Fragment, renderList, onUnmounted, isVNode, onMounted, onBeforeMount, resolveComponent, createBlock, withCtx, createTextVNode } from "vue";
1
+ import { reactive, toRaw, computed, watch, onScopeDispose, inject, h, shallowReactive, markRaw, ref, toRef, provide, nextTick, defineComponent, openBlock, createElementBlock, mergeProps, unref, createElementVNode, normalizeClass, renderSlot, createCommentVNode, createVNode, toDisplayString, Fragment, renderList, onUnmounted, isVNode, onMounted, onBeforeMount, resolveComponent, createBlock, withCtx, createTextVNode } from "vue";
2
2
  import { al as CellWidgetViewState, F as FIELD_TYPE, bm as RenderModeEnum, a0 as FormTypeEnum, bC as BpmnNodeTypeEnum, cr as getFieldPlaceholder, bS as MobileFillTypeEnum, C as ComponentTypeEnum, bl as findRuntimeTableRow, b2 as renderUtils, a3 as PlatformEnum, p as api, bv as uuid2, c0 as calcUtils, c4 as ensureTableRowKeys, bZ as bindRuntimeTableColumns, bk as getRowId, cs as FRONT_ROW_KEY, cj as isTableRowKeyMatch, aA as RangeCompareOp, az as RangeValidateMode, c1 as decodeTableCellRowKey, c3 as ensureFrontRowKey, ba as getParseRuleInfo, aM as transformUtils, b4 as materialCheck, b5 as getLotLockedReason, b6 as validateReinspectionDate, bp as FormulaRuleFieldKeyEnum, N as CreateType, h as SubTableType, bb as getParseRuleValue, bn as findRuntimeParentRow, aP as Dependency_ENUM, aO as ASSIGNMENTSTRATEGY_ENUM, bG as commonUtils, aT as DeviceLink, ac as useNamespace, ad as _export_sfc, I as Icon, cd as getRenderedRuntimeTableCell, H as CellType, ct as resetTableRowIdentity, R as useModal, cu as q, cv as QUICK_FILL_ALLOWED_FIELDS, cw as groupFixedTableRows, cx as processQuickFillRows, cy as getIsGroupEmpty } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BsyVWing.js";
3
3
  import dayjs from "dayjs";
4
4
  import { cloneDeep, isEmpty, isNil, pickBy, mergeWith, omit, last, pick, merge } from "lodash-es";
@@ -200,7 +200,8 @@ class RuntimeDependencyService {
200
200
  }
201
201
  schedule(change) {
202
202
  if (this.disposed) return;
203
- if (change.source === "restore") change = { ...change, paths: ["*"] };
203
+ const labelsOnly = change.paths.length > 0 && change.paths.every((path) => path.endsWith("_lb_"));
204
+ if (change.source === "restore" && !labelsOnly) change = { ...change, paths: ["*"] };
204
205
  this.effects.forEach((effect) => {
205
206
  if (this.matches(effect, change.paths)) this.cancelExecution(effect.id);
206
207
  });
@@ -4819,7 +4820,7 @@ class BomEntryValidator {
4819
4820
  }
4820
4821
  /** 需求总量 = 数量倍数 × BOM 单位用量 */
4821
4822
  get total() {
4822
- return this.materialNoNum * this.bomEntry.qty_required_;
4823
+ return this.materialNoNum * Number(this.bomEntry.qty_required_);
4823
4824
  }
4824
4825
  /**
4825
4826
  * 翻译物料的code
@@ -4973,12 +4974,12 @@ class BomEntryValidator {
4973
4974
  */
4974
4975
  calcQtyConsumed(arr = this.historyData) {
4975
4976
  const groupData = this.filterGroupData(arr);
4976
- return groupData.reduce((acc, cur) => acc + (cur.qty_ ?? 0), 0);
4977
+ return groupData.reduce((acc, cur) => acc + Number(cur.qty_ ?? 0), 0);
4977
4978
  }
4978
4979
  /** 上下限校验统一按需求单位口径取转换数量,历史数据未转换时兼容原数量。 */
4979
4980
  calcQtyForBounds(arr) {
4980
4981
  const groupData = this.filterGroupData(arr);
4981
- return groupData.reduce((acc, cur) => acc + (cur.qty_transfer_ ?? cur.qty_ ?? 0), 0);
4982
+ return groupData.reduce((acc, cur) => acc + Number(cur.qty_transfer_ ?? cur.qty_ ?? 0), 0);
4982
4983
  }
4983
4984
  /**
4984
4985
  * 计算自定义的数量校验的最大值和最小值
@@ -4993,9 +4994,10 @@ class BomEntryValidator {
4993
4994
  try {
4994
4995
  const json = JSON.parse(str);
4995
4996
  if (json.expr) {
4996
- return await window.gct_expression.execute(json.expr, {
4997
- qty_required_: data.qty_required_
4997
+ const value = await window.gct_expression.execute(json.expr, {
4998
+ qty_required_: data.qty_required_ == null ? data.qty_required_ : Number(data.qty_required_)
4998
4999
  });
5000
+ return value == null ? void 0 : Number(value);
4999
5001
  } else {
5000
5002
  console.warn("没有配置表达式");
5001
5003
  }
@@ -5022,8 +5024,8 @@ class BomEntryValidator {
5022
5024
  const loaded = this.calcQtyConsumed(arr);
5023
5025
  let required4 = this.remainingNum;
5024
5026
  if (this.isCustomRequiredQty) {
5025
- const currentQty = groupData[0]?.qty_required_;
5026
- if (typeof currentQty !== "number" || !Number.isFinite(currentQty) || currentQty <= 0) {
5027
+ const currentQty = Number(groupData[0]?.qty_required_);
5028
+ if (!Number.isFinite(currentQty) || currentQty <= 0) {
5027
5029
  throw new Error(
5028
5030
  groupNo != null && groupNo > 0 ? `序号${groupNo},需求数量必须大于 0` : "需求数量必须大于 0"
5029
5031
  );
@@ -5837,7 +5839,7 @@ function calcGroupRowSpans(rows, validator) {
5837
5839
  function calcGroupQtyConsumedTotal(entryIdx, tableData, validator) {
5838
5840
  if (entryIdx < 0) return 0;
5839
5841
  return tableData.reduce((sum, row) => {
5840
- return validator.resolveEntryIndex(row) === entryIdx ? sum + (row.qty_ ?? 0) : sum;
5842
+ return validator.resolveEntryIndex(row) === entryIdx ? sum + Number(row.qty_ ?? 0) : sum;
5841
5843
  }, 0);
5842
5844
  }
5843
5845
  function syncGroupQtyConsumedTotals(tableData, validator) {
@@ -5936,8 +5938,10 @@ class MaterialConsumeTableController {
5936
5938
  mainFormState = ref({});
5937
5939
  /** 表单数据状态(由 factory bindRuntime 注入):未填报 / STASH / SUBMIT */
5938
5940
  dataStatus;
5939
- /** factory 是否已绑定过运行时(避免重复 initTableData) */
5940
- runtimeBound = false;
5941
+ /** 实例数据只在 LOADED 前准备一次,运行时绑定不再重新生成行。 */
5942
+ initialDataPrepared = false;
5943
+ /** 最近一次同步需求数量时使用的数量依赖。 */
5944
+ syncedMaterialNoNum;
5941
5945
  /** 表单是否已暂存或提交(已处理过则不再跑初始化) */
5942
5946
  get isDataProcessed() {
5943
5947
  return ["STASH", "SUBMIT"].includes(this.dataStatus ?? "");
@@ -6072,7 +6076,7 @@ class MaterialConsumeTableController {
6072
6076
  return {
6073
6077
  product_id_: i.product_id_,
6074
6078
  qty_required_uom_id_: i.uom_id_ || void 0,
6075
- ...materialNoNum === void 0 ? {} : { qty_required_: i.qty_required_ * materialNoNum },
6079
+ ...materialNoNum === void 0 ? {} : { qty_required_: Number(i.qty_required_) * Number(materialNoNum) },
6076
6080
  bom_entry_id_: i.id_
6077
6081
  };
6078
6082
  });
@@ -6315,23 +6319,36 @@ class MaterialConsumeTableController {
6315
6319
  });
6316
6320
  this.isScanOpen = false;
6317
6321
  }
6318
- /**
6319
- * 表单加载时由 factory 调用:绑定稳定数据源并初始化行数据。
6320
- * 不在分页组件 setup 中调用,避免跨页挂载重复 init。
6321
- */
6322
+ /** Store 创建前准备物料行和数量,全部 Sheet 的 LOADED 共用这份数据。 */
6323
+ prepareInitialData(opts) {
6324
+ if (this.initialDataPrepared) return;
6325
+ this.tableDataRef = toRef(opts.formState, opts.field, []);
6326
+ this.mainFormState = toRef(() => opts.formState);
6327
+ this.dataStatus = opts.dataStatus;
6328
+ this.initTableData(opts.defaultRowData);
6329
+ const rows = this.actualTableData;
6330
+ if (rows.length === 1 && !rows[0].product_id_) {
6331
+ MCDataUtil.setRowEditing(rows[0], true);
6332
+ }
6333
+ if (this.dataStatus !== "SUBMIT") {
6334
+ this.syncQtyRequiredFromBom();
6335
+ }
6336
+ this.syncedMaterialNoNum = this.materialNoNum;
6337
+ this.initialDataPrepared = true;
6338
+ }
6339
+ /** 数量依赖实际变化时才重算,避免首次绑定覆盖 LOADED 中的回填。 */
6340
+ syncQtyRequiredFromBomIfChanged() {
6341
+ if (this.dataStatus === "SUBMIT") return;
6342
+ const materialNoNum = this.materialNoNum;
6343
+ if (this.initialDataPrepared && Object.is(materialNoNum, this.syncedMaterialNoNum)) return;
6344
+ this.syncQtyRequiredFromBom();
6345
+ this.syncedMaterialNoNum = materialNoNum;
6346
+ }
6347
+ /** 只绑定运行时 Store,不重新生成行或修改行内容。 */
6322
6348
  bindRuntime(opts) {
6323
6349
  this.tableDataRef = opts.tableDataRef;
6324
6350
  this.mainFormState = opts.mainFormState ?? ref({});
6325
6351
  this.dataStatus = opts.dataStatus;
6326
- if (this.runtimeBound) return;
6327
- this.runtimeBound = true;
6328
- this.initTableData(opts.defaultRowData);
6329
- if (this.actualTableData.length === 1) {
6330
- const firstRow = this.actualTableData[0];
6331
- if (!firstRow.product_id_) {
6332
- MCDataUtil.setRowEditing(firstRow, true);
6333
- }
6334
- }
6335
6352
  }
6336
6353
  /**
6337
6354
  * 消耗表组件挂载时调用:只同步视图依赖,不初始化数据、不注册 watch。
@@ -6345,7 +6362,10 @@ class MaterialConsumeTableController {
6345
6362
  * 按当前 materialNoNum 回写各行 qty_required_(校验侧 total 已通过 getter 实时读取)
6346
6363
  */
6347
6364
  syncQtyRequiredFromBom() {
6348
- if (this.tmplBom.required_qty_calc_rule_ === RequiredQtyCalcRule.Custom) return;
6365
+ if (this.tmplBom.required_qty_calc_rule_ === RequiredQtyCalcRule.Custom) {
6366
+ this.updateDerivedQtyFields();
6367
+ return;
6368
+ }
6349
6369
  this.actualTableData.forEach((row) => {
6350
6370
  if (!row.product_id_) return;
6351
6371
  const util = this.bomEntriesValidator.findUtilByProductId(row.product_id_);
@@ -6389,7 +6409,7 @@ class MaterialConsumeTableController {
6389
6409
  const formData = transformFields.reduce((acc, cur) => {
6390
6410
  if (!cur.targetField) return acc;
6391
6411
  if (cur.sourceField === FormulaRuleFieldKeyEnum.INPUT) {
6392
- acc[cur.sourceField] = row.qty_;
6412
+ acc[cur.sourceField] = row.qty_ == null ? row.qty_ : Number(row.qty_);
6393
6413
  } else if (cur.targetField.includes(".")) {
6394
6414
  const fieldKey = cur.targetField.split(".").pop();
6395
6415
  acc[cur.sourceField] = row[fieldKey];
@@ -6401,7 +6421,7 @@ class MaterialConsumeTableController {
6401
6421
  try {
6402
6422
  const res = await calculate(formulaContent, formData);
6403
6423
  Object.assign(row, {
6404
- qty_transfer_: res,
6424
+ qty_transfer_: res == null ? res : Number(res),
6405
6425
  qty_transfer_uom_id_: targetUnitId,
6406
6426
  transfer_formula_: formulaContent
6407
6427
  });
@@ -6585,7 +6605,7 @@ class MaterialConsumeTableController {
6585
6605
  const modifySingleRow = (index) => {
6586
6606
  const row = this.actualTableData[index];
6587
6607
  if (!row.product_id_) {
6588
- row.qty_consumed_ = 0 + (row.qty_ ?? 0);
6608
+ row.qty_consumed_ = Number(row.qty_ ?? 0);
6589
6609
  return;
6590
6610
  }
6591
6611
  let total = 0;
@@ -6594,7 +6614,7 @@ class MaterialConsumeTableController {
6594
6614
  if (util) {
6595
6615
  total += util.hasConsumed;
6596
6616
  util.filterGroupData(beforeArr).forEach((i) => {
6597
- total += i.qty_ ?? 0;
6617
+ total += Number(i.qty_ ?? 0);
6598
6618
  });
6599
6619
  row.qty_consumed_ = total;
6600
6620
  }
package/dist/excel.css CHANGED
@@ -2358,7 +2358,7 @@ body > div {
2358
2358
  * }
2359
2359
  */
2360
2360
  /* stylelint-disable scss/no-global-function-names */
2361
- .cell-widget-design[data-v-e83b495f] {
2361
+ .cell-widget-design[data-v-0c318157] {
2362
2362
  display: inline-flex;
2363
2363
  position: relative;
2364
2364
  z-index: 2;
@@ -2372,31 +2372,31 @@ body > div {
2372
2372
  font-weight: 400;
2373
2373
  line-height: 18px;
2374
2374
  }
2375
- .cell-widget-design .prefix[data-v-e83b495f],
2376
- .cell-widget-design .suffix[data-v-e83b495f] {
2375
+ .cell-widget-design .prefix[data-v-0c318157],
2376
+ .cell-widget-design .suffix[data-v-0c318157] {
2377
2377
  flex-shrink: 0;
2378
2378
  }
2379
- .cell-widget-design[data-v-e83b495f] * {
2379
+ .cell-widget-design[data-v-0c318157] * {
2380
2380
  pointer-events: none;
2381
2381
  }
2382
- .cell-widget-design--with-prefix[data-v-e83b495f],
2383
- .cell-widget-design--with-suffix[data-v-e83b495f] {
2382
+ .cell-widget-design--with-prefix[data-v-0c318157],
2383
+ .cell-widget-design--with-suffix[data-v-0c318157] {
2384
2384
  box-sizing: border-box;
2385
2385
  }
2386
- .cell-widget-design--with-prefix[data-v-e83b495f] {
2386
+ .cell-widget-design--with-prefix[data-v-0c318157] {
2387
2387
  padding-left: 2px;
2388
2388
  }
2389
- .cell-widget-design--with-suffix[data-v-e83b495f] {
2389
+ .cell-widget-design--with-suffix[data-v-0c318157] {
2390
2390
  padding-right: 2px;
2391
2391
  }
2392
- .cell-widget-design--fixed-affix[data-v-e83b495f] {
2392
+ .cell-widget-design--fixed-affix[data-v-0c318157] {
2393
2393
  max-width: none;
2394
2394
  }
2395
- .cell-widget-design--fixed-affix > .cell-widget-design__component[data-v-e83b495f] {
2395
+ .cell-widget-design--fixed-affix > .cell-widget-design__component[data-v-0c318157] {
2396
2396
  flex: 0 0 auto;
2397
2397
  max-width: none;
2398
2398
  }
2399
- .cell-widget-design__component[data-v-e83b495f] {
2399
+ .cell-widget-design__component[data-v-0c318157] {
2400
2400
  display: inline-flex;
2401
2401
  flex: 1 1 auto;
2402
2402
  align-items: center;
@@ -2404,14 +2404,23 @@ body > div {
2404
2404
  max-width: 100%;
2405
2405
  vertical-align: middle;
2406
2406
  }
2407
- .cell-widget-design--wrap-affix[data-v-e83b495f] {
2407
+ .cell-widget-design--unwrapped-options[data-v-0c318157] {
2408
+ flex-shrink: 0;
2409
+ min-width: max-content;
2410
+ max-width: none;
2411
+ }
2412
+ .cell-widget-design--unwrapped-options > .cell-widget-design__component[data-v-0c318157] {
2413
+ min-width: max-content;
2414
+ max-width: none;
2415
+ }
2416
+ .cell-widget-design--wrap-affix[data-v-0c318157] {
2408
2417
  display: inline-block;
2409
2418
  max-width: 100%;
2410
2419
  }
2411
- .cell-widget-design--wrap-affix > .cell-widget-design__component[data-v-e83b495f] {
2420
+ .cell-widget-design--wrap-affix > .cell-widget-design__component[data-v-0c318157] {
2412
2421
  max-width: none;
2413
2422
  }
2414
- .cell-widget-design--wrap-affix > div[data-v-e83b495f]:not(.cell-widget-design__component) {
2423
+ .cell-widget-design--wrap-affix > div[data-v-0c318157]:not(.cell-widget-design__component) {
2415
2424
  display: inline;
2416
2425
  }.widget-barcode .wrapper[data-v-e32407c0] {
2417
2426
  text-align: center;
@@ -2791,13 +2800,13 @@ body > div {
2791
2800
  max-width: 20px;
2792
2801
  height: 20px;
2793
2802
  }
2794
- td[data-v-f8007289] {
2803
+ td[data-v-38a0d106] {
2795
2804
  position: relative;
2796
2805
  }
2797
- td.sheet-cell--edit[data-v-f8007289] {
2806
+ td.sheet-cell--edit[data-v-38a0d106] {
2798
2807
  overflow: visible;
2799
2808
  }
2800
- td .input[data-v-f8007289] {
2809
+ td .input[data-v-38a0d106] {
2801
2810
  position: absolute;
2802
2811
  top: 0;
2803
2812
  left: 0;
@@ -2807,8 +2816,8 @@ td .input[data-v-f8007289] {
2807
2816
  height: fit-content;
2808
2817
  min-height: 100%;
2809
2818
  }
2810
- td .input > .input-auto-expand[data-v-f8007289],
2811
- td .input > .input-component[data-v-f8007289] {
2819
+ td .input > .input-auto-expand[data-v-38a0d106],
2820
+ td .input > .input-component[data-v-38a0d106] {
2812
2821
  box-sizing: border-box;
2813
2822
  min-height: 32px;
2814
2823
  padding: 4px 11px;
@@ -2820,7 +2829,7 @@ td .input > .input-component[data-v-f8007289] {
2820
2829
  vertical-align: bottom;
2821
2830
  white-space: pre;
2822
2831
  }
2823
- td .input > .input-component[data-v-f8007289] {
2832
+ td .input > .input-component[data-v-38a0d106] {
2824
2833
  position: absolute;
2825
2834
  top: 0;
2826
2835
  left: 0;
@@ -2830,7 +2839,7 @@ td .input > .input-component[data-v-f8007289] {
2830
2839
  overflow: hidden;
2831
2840
  resize: none;
2832
2841
  }
2833
- td .input > .input-component[data-v-f8007289]:focus {
2842
+ td .input > .input-component[data-v-38a0d106]:focus {
2834
2843
  border: none;
2835
2844
  /* 移除边框颜色 */
2836
2845
  border-radius: 2px;
@@ -2840,14 +2849,14 @@ td .input > .input-component[data-v-f8007289]:focus {
2840
2849
  box-shadow: none;
2841
2850
  /* 移除阴影 */
2842
2851
  }
2843
- td > span[data-v-f8007289] {
2852
+ td > span[data-v-38a0d106] {
2844
2853
  visibility: hidden;
2845
2854
  }
2846
- td .multi-fields-area[data-v-f8007289] {
2855
+ td .multi-fields-area[data-v-38a0d106] {
2847
2856
  flex-wrap: var(--auto-line-break, no-wrap);
2848
2857
  align-content: var(--alignItems, center);
2849
2858
  }
2850
- td .multi-fields-area[data-v-f8007289]::before {
2859
+ td .multi-fields-area[data-v-38a0d106]::before {
2851
2860
  content: attr(data-placeholder);
2852
2861
  position: absolute;
2853
2862
  z-index: 9;
@@ -2861,7 +2870,7 @@ td .multi-fields-area[data-v-f8007289]::before {
2861
2870
  line-height: 18px;
2862
2871
  pointer-events: none;
2863
2872
  }
2864
- td .multi-fields-spacer[data-v-f8007289] {
2873
+ td .multi-fields-spacer[data-v-38a0d106] {
2865
2874
  flex: none;
2866
2875
  align-self: stretch;
2867
2876
  background: transparent;
@@ -21925,7 +21934,7 @@ svg[data-v-9a7c8184] {
21925
21934
  cursor: pointer;
21926
21935
  pointer-events: none;
21927
21936
  }
21928
- .enum-checkbox-group[data-v-4c31c26d] {
21937
+ .enum-checkbox-group[data-v-784964bd] {
21929
21938
  display: flex;
21930
21939
  flex-wrap: var(--auto-line-break, nowrap);
21931
21940
  align-items: center;
@@ -21938,88 +21947,88 @@ svg[data-v-9a7c8184] {
21938
21947
  /*** 水平(横向) */
21939
21948
  /*** 垂直(纵向) */
21940
21949
  }
21941
- .enum-checkbox-group > span[data-v-4c31c26d] {
21950
+ .enum-checkbox-group > span[data-v-784964bd] {
21942
21951
  display: inline-flex;
21943
21952
  flex: 0 0 auto;
21944
21953
  align-items: center;
21945
21954
  }
21946
- .enum-checkbox-group label.ant-checkbox-wrapper[data-v-4c31c26d] {
21955
+ .enum-checkbox-group label.ant-checkbox-wrapper[data-v-784964bd] {
21947
21956
  display: inline-flex;
21948
21957
  align-items: center;
21949
21958
  margin: 0;
21950
21959
  font-size: var(--size, 12px);
21951
21960
  line-height: 18px;
21952
21961
  }
21953
- .enum-checkbox-group label.ant-checkbox-wrapper[data-v-4c31c26d]::after {
21962
+ .enum-checkbox-group label.ant-checkbox-wrapper[data-v-784964bd]::after {
21954
21963
  display: none;
21955
21964
  }
21956
- .enum-checkbox-group label.ant-checkbox-wrapper[data-v-4c31c26d] > span.ant-checkbox {
21965
+ .enum-checkbox-group label.ant-checkbox-wrapper[data-v-784964bd] > span.ant-checkbox {
21957
21966
  top: 0;
21958
21967
  }
21959
- .enum-checkbox-group label.ant-checkbox-wrapper[data-v-4c31c26d] > span:last-child {
21968
+ .enum-checkbox-group label.ant-checkbox-wrapper[data-v-784964bd] > span:last-child {
21960
21969
  padding-right: 0;
21961
21970
  padding-left: 0;
21962
21971
  font-size: var(--size, 12px);
21963
21972
  line-height: 18px;
21964
21973
  text-wrap: nowrap;
21965
21974
  }
21966
- .enum-checkbox-group label.ant-checkbox-wrapper[data-v-4c31c26d]:not(.enum-checkbox-group label.ant-checkbox-wrapper.ant-checkbox-wrapper-checked) .ant-checkbox-inner {
21975
+ .enum-checkbox-group label.ant-checkbox-wrapper[data-v-784964bd]:not(.enum-checkbox-group label.ant-checkbox-wrapper.ant-checkbox-wrapper-checked) .ant-checkbox-inner {
21967
21976
  border-color: var(--cell-field-border-color);
21968
21977
  background-color: var(--cell-field-background-color);
21969
21978
  }
21970
- .enum-checkbox-group label.ant-checkbox-wrapper.ant-checkbox-wrapper-checked[data-v-4c31c26d] .ant-checkbox-inner {
21979
+ .enum-checkbox-group label.ant-checkbox-wrapper.ant-checkbox-wrapper-checked[data-v-784964bd] .ant-checkbox-inner {
21971
21980
  border: none;
21972
21981
  background: url("data:image/svg+xml,%3csvg%20preserveAspectRatio='none'%20overflow='visible'%20style='display:%20block;'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Group%20427319677'%3e%3crect%20id='Rectangle%205160'%20width='16'%20height='16'%20rx='2'%20fill='%23026AC8'/%3e%3cpath%20id='check'%20d='M6.82634%2011.4861L6.81307%2011.5L3.5%208.0363L4.5788%206.90847L6.82638%209.2582L11.4212%204.5L12.5%205.62783L6.83965%2011.5L6.82634%2011.4861Z'%20fill='white'/%3e%3c/g%3e%3c/svg%3e") center / 16px 16px no-repeat;
21973
21982
  }
21974
- .enum-checkbox-group label.ant-checkbox-wrapper.ant-checkbox-wrapper-checked[data-v-4c31c26d] .ant-checkbox-inner::after {
21983
+ .enum-checkbox-group label.ant-checkbox-wrapper.ant-checkbox-wrapper-checked[data-v-784964bd] .ant-checkbox-inner::after {
21975
21984
  display: none;
21976
21985
  }
21977
- .enum-checkbox-group label.ant-checkbox-wrapper[data-v-4c31c26d]:hover:not(.enum-checkbox-group label.ant-checkbox-wrapper:hover.ant-checkbox-wrapper-checked) .ant-checkbox-inner {
21986
+ .enum-checkbox-group label.ant-checkbox-wrapper[data-v-784964bd]:hover:not(.enum-checkbox-group label.ant-checkbox-wrapper:hover.ant-checkbox-wrapper-checked) .ant-checkbox-inner {
21978
21987
  border-color: var(--cell-field-border-hover-color);
21979
21988
  }
21980
- .enum-checkbox-group label.ant-checkbox-wrapper.ant-checkbox-wrapper-disabled[data-v-4c31c26d] {
21989
+ .enum-checkbox-group label.ant-checkbox-wrapper.ant-checkbox-wrapper-disabled[data-v-784964bd] {
21981
21990
  color: #8b8b8b;
21982
21991
  }
21983
- .enum-checkbox-group label.ant-checkbox-wrapper.ant-checkbox-wrapper-disabled[data-v-4c31c26d] .ant-checkbox-inner {
21992
+ .enum-checkbox-group label.ant-checkbox-wrapper.ant-checkbox-wrapper-disabled[data-v-784964bd] .ant-checkbox-inner {
21984
21993
  border-color: #e0e3eb !important;
21985
21994
  background-color: #f2f3f5 !important;
21986
21995
  }
21987
- .enum-checkbox-group label.ant-checkbox-wrapper.ant-checkbox-wrapper-disabled.ant-checkbox-wrapper-checked[data-v-4c31c26d] .ant-checkbox-inner {
21996
+ .enum-checkbox-group label.ant-checkbox-wrapper.ant-checkbox-wrapper-disabled.ant-checkbox-wrapper-checked[data-v-784964bd] .ant-checkbox-inner {
21988
21997
  background-image: url("data:image/svg+xml,%3csvg%20preserveAspectRatio='none'%20overflow='visible'%20style='display:%20block;'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Group%20427319677'%3e%3crect%20id='Rectangle%205160'%20x='0.5'%20y='0.5'%20width='15'%20height='15'%20rx='1.5'%20fill='%23F2F3F5'%20stroke='%23E0E3EB'/%3e%3cpath%20id='check'%20d='M6.82634%2011.4861L6.81307%2011.5L3.5%208.0363L4.5788%206.90847L6.82638%209.2582L11.4212%204.5L12.5%205.62783L6.83965%2011.5L6.82634%2011.4861Z'%20fill='%23B1B4BA'/%3e%3c/g%3e%3c/svg%3e");
21989
21998
  }
21990
- .enum-checkbox-group.text-pos-after label.ant-checkbox-wrapper[data-v-4c31c26d] > span:last-child {
21999
+ .enum-checkbox-group.text-pos-after label.ant-checkbox-wrapper[data-v-784964bd] > span:last-child {
21991
22000
  padding-left: var(--space, 0);
21992
22001
  }
21993
- .enum-checkbox-group.text-pos-before label.ant-checkbox-wrapper[data-v-4c31c26d] {
22002
+ .enum-checkbox-group.text-pos-before label.ant-checkbox-wrapper[data-v-784964bd] {
21994
22003
  display: inline-flex;
21995
22004
  flex-direction: row-reverse;
21996
22005
  }
21997
- .enum-checkbox-group.text-pos-before label.ant-checkbox-wrapper[data-v-4c31c26d] > span:last-child {
22006
+ .enum-checkbox-group.text-pos-before label.ant-checkbox-wrapper[data-v-784964bd] > span:last-child {
21998
22007
  padding-right: var(--space, 0);
21999
22008
  }
22000
- .enum-checkbox-group.landscape:not(.has-option-gap) > span[data-v-4c31c26d]:not(:last-child) > :last-child {
22009
+ .enum-checkbox-group.landscape:not(.has-option-gap) > span[data-v-784964bd]:not(:last-child) > :last-child {
22001
22010
  margin-right: 4px;
22002
22011
  }
22003
- .enum-checkbox-group.portrait[data-v-4c31c26d] {
22012
+ .enum-checkbox-group.portrait[data-v-784964bd] {
22004
22013
  flex-direction: column;
22005
22014
  align-items: safe var(--enum-option-align, flex-start);
22006
22015
  justify-content: flex-start;
22007
22016
  }
22008
- .enum-checkbox-group--auto-line-break[data-v-4c31c26d] {
22017
+ .enum-checkbox-group--auto-line-break[data-v-784964bd] {
22009
22018
  display: inline-flex;
22010
22019
  flex-wrap: wrap;
22011
22020
  width: var(--cmp-width, 100%);
22012
22021
  min-width: 0;
22013
22022
  max-width: 100%;
22014
22023
  }
22015
- .enum-checkbox-group--auto-line-break > span[data-v-4c31c26d] {
22024
+ .enum-checkbox-group--auto-line-break > span[data-v-784964bd] {
22016
22025
  max-width: 100%;
22017
22026
  }
22018
- .enum-checkbox-group--auto-line-break[data-v-4c31c26d] label.ant-checkbox-wrapper {
22027
+ .enum-checkbox-group--auto-line-break[data-v-784964bd] label.ant-checkbox-wrapper {
22019
22028
  min-width: 0;
22020
22029
  max-width: 100%;
22021
22030
  }
22022
- .enum-checkbox-group--auto-line-break[data-v-4c31c26d] label.ant-checkbox-wrapper > span:last-child {
22031
+ .enum-checkbox-group--auto-line-break[data-v-784964bd] label.ant-checkbox-wrapper > span:last-child {
22023
22032
  min-width: 0;
22024
22033
  text-wrap: wrap;
22025
22034
  word-break: break-all;
@@ -23618,25 +23627,30 @@ svg[data-v-9a7c8184] {
23618
23627
  top: 0;
23619
23628
  overflow: hidden;
23620
23629
  }
23621
- .combine-fields-area[data-v-fdb6cdd3] {
23630
+ .combine-fields-area[data-v-fdb7c6dd] {
23622
23631
  display: flex;
23623
23632
  align-items: stretch;
23624
23633
  height: 100%;
23625
23634
  }
23626
- .combine-fields-area--preview[data-v-fdb6cdd3] .cell-wrapper-affix,
23627
- .combine-fields-area--preview[data-v-fdb6cdd3] .nocode-read-only-text__value {
23635
+ .combine-fields-area--preview[data-v-fdb7c6dd] .cell-wrapper-affix,
23636
+ .combine-fields-area--preview[data-v-fdb7c6dd] .nocode-read-only-text__value {
23628
23637
  writing-mode: var(--composite-text-writing-mode);
23629
23638
  text-orientation: var(--composite-text-orientation);
23630
23639
  }
23631
- .combine-fields-area--wrap[data-v-fdb6cdd3] {
23640
+ .combine-fields-area--wrap[data-v-fdb7c6dd] {
23632
23641
  flex-wrap: wrap;
23633
23642
  width: 100%;
23634
23643
  min-width: 0;
23635
23644
  }
23636
- .combine-fields-spacer[data-v-fdb6cdd3] {
23645
+ .combine-fields-spacer[data-v-fdb7c6dd] {
23637
23646
  flex: none;
23638
23647
  background: transparent;
23639
23648
  }
23649
+ .combine-fields-area[data-v-fdb7c6dd] > .combine-fields-item--unwrapped-options {
23650
+ flex-shrink: 0;
23651
+ min-width: max-content;
23652
+ max-width: none;
23653
+ }
23640
23654
 
23641
23655
  .diagonal-area[data-v-93431c1c] {
23642
23656
  font-size: 14px;
@@ -1,5 +1,5 @@
1
1
  import { V as commonjsGlobal, W as getDefaultExportFromCjs } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BsyVWing.js";
2
- import { c as commonjsRequire } from "./index-BIm_YKSw.js";
2
+ import { c as commonjsRequire } from "./index--7My1yo5.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-ssy7gJsD.js";
3
3
  import { pick } from "lodash-es";
4
- import { z as _sfc_main$1, C as ColorPicker } from "./index-BIm_YKSw.js";
4
+ import { z as _sfc_main$1, C as ColorPicker } from "./index--7My1yo5.js";
5
5
  import { ad as _export_sfc } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BsyVWing.js";
6
6
  const _hoisted_1 = { class: "ks-row-middle mb-6px" };
7
7
  const _sfc_main = /* @__PURE__ */ defineComponent({