@gct-paas/excel 0.1.39-beta.2 → 0.1.39-beta.21

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 (114) hide show
  1. package/dist/{BaseComponent-vgYIyddq.js → BaseComponent-DuVlKAnk.js} +2 -2
  2. package/dist/{VueVideoPlayer-Ca2aYCnh.js → VueVideoPlayer-BlB2c7W0.js} +2 -2
  3. package/dist/{align-editor-Bpdx7EAg.js → align-editor-wPpZ_4zH.js} +1 -1
  4. package/dist/{barcode-design-l88FtSJH.js → barcode-design-eIy9Jo3b.js} +2 -2
  5. package/dist/base/index.es.js +485 -194
  6. package/dist/{diagonal-design-BrC_JEX_.js → diagonal-design-_BNVSp15.js} +2 -2
  7. package/dist/{dynamic-table-action--l3y-33T.js → dynamic-table-action-cb-6H4R2.js} +325 -258
  8. package/dist/{dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-D-u5mq0C.js → dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BmECtuSE.js} +328 -284
  9. package/dist/{edit.utils-CXmmCnxE-CLHOa5aM.js → edit.utils-CXmmCnxE-CQiGidG5.js} +1 -1
  10. package/dist/excel.css +473 -284
  11. package/dist/{exceljs.min-DC03-hj2.js → exceljs.min-CZa2mjfK.js} +2 -2
  12. package/dist/{font-editor-Cdbnw5gf.js → font-editor-c7CowiTX.js} +3 -3
  13. package/dist/{image-design-B2Ujtrgf.js → image-design-DbOmyTpn.js} +2 -2
  14. package/dist/{index-2FOQLZQX.js → index-2Vv4Nw6L.js} +2 -2
  15. package/dist/{index-CosS1BAQ.js → index-B4LBLC9w.js} +1 -1
  16. package/dist/{index-VbeM2qtu.js → index-BBfo_rmJ.js} +2 -2
  17. package/dist/{index-Cy3W1BCw.js → index-BD_l8t-r.js} +4 -4
  18. package/dist/{index-qIYTDaGB.js → index-BH365AyZ.js} +3 -3
  19. package/dist/{index-CdmpbReR.js → index-Bgr6S6x6.js} +2 -2
  20. package/dist/{index-DAOq48BR.js → index-BhJGnoAZ.js} +2 -2
  21. package/dist/{index-Dfx_FNTM.js → index-BsSL0R1j.js} +2 -2
  22. package/dist/{index-q6aP_omk.js → index-C-urdRZ2.js} +1 -1
  23. package/dist/{index-NJMyznIn.js → index-CA07wQMJ.js} +3 -3
  24. package/dist/{index-BwPjN5_z.js → index-CAGghO4i.js} +2 -2
  25. package/dist/{index-CCJHoK5a.js → index-CCyMfv1Z.js} +2 -2
  26. package/dist/{index-DHi56KLO.js → index-CPQNMrdO.js} +1 -1
  27. package/dist/{index-OtzvrfOW.js → index-CRo6J80n.js} +2 -2
  28. package/dist/{index-CinlHNlv.js → index-CSlejyqH.js} +1 -1
  29. package/dist/{index-BObb1Ah_.js → index-CksQHOUM.js} +2 -2
  30. package/dist/{index-ElmEtsp1.js → index-CvPWXCmn.js} +1 -1
  31. package/dist/{index-d-BkSigM.js → index-CyX1kNkY.js} +1 -1
  32. package/dist/{index-CyRyKW5Z.js → index-Cz1FK52K.js} +2 -2
  33. package/dist/{index-BTt4zC25.js → index-D2NnQYm7.js} +1252 -1048
  34. package/dist/{index-DoKgmcyb.js → index-DOiOWH2x.js} +2 -2
  35. package/dist/{index-BHrga-sR.js → index-DUXHvUXT.js} +2 -2
  36. package/dist/{index-BP9XsPy_.js → index-DaYPI9DA.js} +1 -1
  37. package/dist/{index-Bt1-V2lW.js → index-DcePcIKd.js} +3 -3
  38. package/dist/{index-isNDc9Eg.js → index-Dkj2h_zE.js} +2 -2
  39. package/dist/{index-DLURy62t.js → index-DpRoz6eZ.js} +2 -2
  40. package/dist/{index-CFr4e8Xs.js → index-Dq8DSt0w.js} +1 -1
  41. package/dist/{index-BmkcFEIb.js → index-DrWkEAL9.js} +2 -2
  42. package/dist/{index-BqWM4biL.js → index-DyZzboE8.js} +2 -2
  43. package/dist/{index-BfvMXo6W.js → index-Dzqrtkn_.js} +2 -2
  44. package/dist/{index-1RcD_jJ_.js → index-N2ZMSuL6.js} +1 -1
  45. package/dist/{index-CbXb5NUR.js → index-cunDtoJs.js} +2 -2
  46. package/dist/{index-C2NlobVm.js → index-haSf7Cn8.js} +1 -1
  47. package/dist/{index-BOw6pLMO.js → index-kcIzcNba.js} +4 -4
  48. package/dist/{index-Ls2829xQ.js → index-l8FZ6Q3X.js} +53 -5
  49. package/dist/index.es.js +2 -2
  50. package/dist/{mb-render-BcBofCau.js → mb-render-DjXYXimz.js} +9 -3
  51. package/dist/{online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-D8-YBa_f.js → online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-CtYTpCF6.js} +8 -1
  52. package/dist/{pagination-design-C6BIV4Ko.js → pagination-design-Gv7xyOs2.js} +2 -2
  53. package/dist/paper-widget-design-DjjE1TJi.js +4 -0
  54. package/dist/{print-runtime-instance-BuO2RPZB.js → print-runtime-instance-DASPx9wj.js} +1 -1
  55. package/dist/{print-snapshot-renderer-CJiTu8_l.js → print-snapshot-renderer-dUe9-cUA.js} +3 -3
  56. package/dist/{qrcode-design-DCAMHxR6.js → qrcode-design-CBPXRrbn.js} +1 -1
  57. package/dist/{revo-grid.entry-s6oHfg7z.js → revo-grid.entry-DORNB4cp.js} +1 -1
  58. package/dist/{revogr-attribution_7.entry-CBEbTBbC.js → revogr-attribution_7.entry-CrdX04rF.js} +3 -3
  59. package/dist/{revogr-clipboard_3.entry-DtE8OXYS.js → revogr-clipboard_3.entry-CWLVEZnP.js} +2 -2
  60. package/dist/{revogr-data_4.entry-seTKTkAE.js → revogr-data_4.entry-Bs8mqW3y.js} +2 -2
  61. package/dist/{revogr-filter-panel.entry-DSQR-lUK.js → revogr-filter-panel.entry-CTN0T0tx.js} +1 -1
  62. package/dist/seal-design-Dr_q6TYV.js +4 -0
  63. package/dist/{serialnumber-design-B3WHGrfc.js → serialnumber-design-BSgTQN0r.js} +1 -1
  64. package/dist/shared/index.es.js +10 -8
  65. package/dist/{single-field-drop-DFjo8ISo.js → single-field-drop-DlOiRRig.js} +2 -2
  66. package/dist/{size-editor-DKJpM9UW.js → size-editor-DQJIuZCE.js} +1 -1
  67. package/dist/src/nocode-base/src/core/sub-table/pretreatment-list-table-core.d.ts +1 -0
  68. package/dist/src/nocode-base/src/core/sub-table/sub-table-core.d.ts +2 -1
  69. package/dist/src/nocode-base/src/hooks/form-model/form-model-controller.d.ts +2 -0
  70. package/dist/src/nocode-base/src/hooks/material-consume/material-consume-table-controller.d.ts +1 -0
  71. package/dist/src/nocode-base/src/hooks/material-consume/tmpl-bom-controller.d.ts +12 -7
  72. package/dist/src/nocode-base/src/hooks/material-consume-object/bom-validator.d.ts +4 -3
  73. package/dist/src/nocode-base/src/hooks/material-consume-object/initialize-autofill.d.ts +17 -0
  74. package/dist/src/nocode-base/src/hooks/material-consume-object/object-validation-controller.d.ts +24 -0
  75. package/dist/src/nocode-base/src/interface/render.d.ts +3 -1
  76. package/dist/src/nocode-base/src/interface/transform.d.ts +9 -1
  77. package/dist/src/nocode-base/src/runtime/async-task-coordinator.d.ts +6 -2
  78. package/dist/src/nocode-base/src/runtime/multi-sheet-runtime.d.ts +2 -0
  79. package/dist/src/nocode-base/src/runtime/runtime-field-initializer.d.ts +1 -1
  80. package/dist/src/nocode-base/src/runtime/runtime-validation-service.d.ts +1 -0
  81. package/dist/src/nocode-base/src/types/render/mc-render.d.ts +1 -1
  82. package/dist/src/nocode-base/src/types/render/sub-table-render.d.ts +5 -1
  83. package/dist/src/nocode-web-render/src/render/sub-table/common/inventory-scan-columns.d.ts +6 -0
  84. package/dist/src/nocode-web-render/src/render/sub-table/material-consume/mc-web-render.d.ts +1 -1
  85. package/dist/src/online-form/src/views/__cell_widgets__/cell-widget-design.vue.d.ts +1 -0
  86. package/dist/src/online-form/src/views/__cell_widgets__/common/display-fields-editor/display-fields.util.d.ts +2 -2
  87. package/dist/src/online-form/src/views/__cell_widgets__/fake-field/fake-option-select.vue.d.ts +1 -0
  88. package/dist/src/online-form/src/views/designer/conversions/normalize-paper-grid.d.ts +3 -0
  89. package/dist/src/online-form/src/views/render/__components__/_field_/trace/utils/use-rule-props.d.ts +0 -3
  90. package/dist/src/online-form/src/views/render/sheet-tab-bar.vue.d.ts +5 -3
  91. package/dist/src/shared/enum/index.d.ts +2 -0
  92. package/dist/src/shared/enum/product-type.d.ts +9 -0
  93. package/dist/src/shared/enum/production-identification.d.ts +19 -0
  94. package/dist/{sub-table-factory-5l0MTqvt.js → sub-table-factory-Bnb8zZTb.js} +31 -12
  95. package/dist/{text-design-B69j6Z_b.js → text-design-D9n2Q3EK.js} +2 -2
  96. package/dist/{throttle-Cpk1LoGk-DfnQ57mt.js → throttle-Cpk1LoGk-w1fTQ4cj.js} +1 -1
  97. package/dist/{timediff-design-BUqlRNkO.js → timediff-design-BIyHZKid.js} +1 -1
  98. package/dist/{trace-like-wrapper-D5VFdJ3W.js → trace-like-wrapper-CXPDvRH0.js} +2 -2
  99. package/dist/{value-editor.vue_vue_type_style_index_0_lang-CEuFEVMv.js → value-editor.vue_vue_type_style_index_0_lang-BzBps2FA.js} +2 -2
  100. package/dist/web-render/index.es.js +3 -3
  101. package/dist/{widget-barcode-Bt55wEEk.js → widget-barcode-D3wbP7XT.js} +4 -4
  102. package/dist/{widget-diagonal-BSkoDXjJ.js → widget-diagonal-CRERJEJZ.js} +3 -3
  103. package/dist/{widget-image-BxycuGZB.js → widget-image-B4DXAEvK.js} +5 -5
  104. package/dist/{widget-line-DZ9sK1Zj.js → widget-line-BlHqjxIt.js} +2 -2
  105. package/dist/{widget-pagination-WerXXmx2.js → widget-pagination-BzmXHdR9.js} +5 -5
  106. package/dist/{widget-power-Bln2T1C-.js → widget-power-C0_OBETn.js} +3 -3
  107. package/dist/{widget-qrcode-BQWQXzru.js → widget-qrcode-Dct2jsRQ.js} +3 -3
  108. package/dist/{widget-rangelimit-E8yqsqv3.js → widget-rangelimit-CteDgTSI.js} +3 -3
  109. package/dist/{widget-serialnumber-Css27nM1.js → widget-serialnumber-u3zQMmmj.js} +1 -1
  110. package/dist/{widget-text-CD6_nGlp.js → widget-text-Bg-mgeq7.js} +5 -5
  111. package/dist/{widget-timediff-DQPeQkkV.js → widget-timediff-C3cRAguz.js} +2 -2
  112. package/package.json +2 -2
  113. package/dist/paper-widget-design-DujWhnh6.js +0 -4
  114. package/dist/seal-design--ciGkbUu.js +0 -4
@@ -1,5 +1,5 @@
1
1
  import { IBomEntry, IFormTmplBom, IMaterialConsumeData } from './types';
2
- import { BaseCoreComponent } from '../../types';
2
+ import { BaseCoreComponent, IMaterialConsumeTableInfo } from '../../types';
3
3
  import { MaterialConsumeTableController } from './material-consume-table-controller';
4
4
  import { FormInstBomResponse } from '@gct-paas/api/apaas';
5
5
  import { MaterialConsumptionPatternEnum } from '../../constant';
@@ -25,6 +25,10 @@ export declare class FormTmplBomController {
25
25
  field2TableMap: Record<string, string>;
26
26
  /** 默认物料消耗模式 */
27
27
  defaultMCPattern: MaterialConsumptionPatternEnum;
28
+ /** 表单实例身份与 BOM 数据是否存在无关,模板展示也会创建完整控制器。 */
29
+ hasFormInstance: boolean;
30
+ /** 按页面中的表解析后的配置,页面与打印共用。 */
31
+ private resolvedTmplBomList;
28
32
  constructor();
29
33
  /**
30
34
  * 创建独立的打印展示控制器:不请求 BOM/历史消耗,不初始化或修正已填报行。
@@ -57,13 +61,14 @@ export declare class FormTmplBomController {
57
61
  * @readonly
58
62
  */
59
63
  get enableSequenceLoading(): boolean;
60
- /**
61
- * 初始化模板的物料消耗的配置
62
- */
64
+ private createDefaultConfig;
65
+ /** 有实例时读取实例配置,无实例时仅创建默认展示控制器。 */
63
66
  init(data: {
64
- formInstBom: FormInstBomResponse;
65
- operationId: string;
66
- materialNo: string;
67
+ formInstBom?: FormInstBomResponse | null;
68
+ materialConsumeTableList: IMaterialConsumeTableInfo[];
69
+ hasFormInstance: boolean;
70
+ operationId?: string;
71
+ materialNo?: string;
67
72
  productQty?: number;
68
73
  }): Promise<void>;
69
74
  /**
@@ -62,9 +62,10 @@ export declare function getObjectBomMaterialLotQuery(opts: {
62
62
  } | null;
63
63
  /**
64
64
  * 表单提交:校验所有物料消耗对象(失败打在对应单元格,收集全部错误)
65
- * - 记录模式 / 人为指定 / 无配置:不校 BOM
66
- * - 未开人为指定:有物料则必须在实例 BOM 中
67
- * - 数量为空留给字段必填;有值且开了数量校验才校数量 vs 需求数量
65
+ * - 物料范围:无配置 / 人为指定 / 记录模式,不校验物料是否属于 BOM
66
+ * - 记录模式:仅开启人为指定时,继续执行数量校验
67
+ * - BOM 模式未开人为指定:有物料则必须在实例 BOM 中
68
+ * - 数量与需求数量均有值、非查看类型且开启数量校验时,执行数量规则
68
69
  * - 人为指定:用 objectBom.entries_[0];否则用 bomEntries 中与对象物料匹配的明细
69
70
  */
70
71
  export declare function validateObjectBomQtyOnSubmit(opts: {
@@ -0,0 +1,17 @@
1
+ export interface ObjectProductDefault {
2
+ value: unknown;
3
+ sourceData?: Record<string, any>;
4
+ }
5
+ /** 准备数据和生成默认值使用同一份字段列表,按字段对象隔离不同对象的默认值。 */
6
+ export type ObjectProductDefaultMap = WeakMap<object, ObjectProductDefault>;
7
+ interface Options {
8
+ enabled: boolean;
9
+ fields: readonly unknown[];
10
+ objectInitialValues?: readonly {
11
+ objectField: string;
12
+ values?: Record<string, any>;
13
+ }[];
14
+ }
15
+ /** 只解析对象物料默认值、查询对应详情;赋值和填充统一由默认值入口执行。 */
16
+ export declare function prepareObjectProductDefaults({ enabled, fields, objectInitialValues, }: Options): Promise<ObjectProductDefaultMap>;
17
+ export {};
@@ -0,0 +1,24 @@
1
+ import { IBasicInfoItem, ValidateFieldErrorMap } from '../../types';
2
+ import { RuntimeInstanceRecord } from '../../runtime';
3
+ type Options = {
4
+ record: RuntimeInstanceRecord;
5
+ getInfo(): IBasicInfoItem | undefined;
6
+ isCurrent(): boolean;
7
+ shouldSkip(): boolean;
8
+ applyComments(fields: ValidateFieldErrorMap): void;
9
+ };
10
+ type Result = {
11
+ isValid: boolean;
12
+ fields?: ValidateFieldErrorMap;
13
+ };
14
+ /** 实例级对象错误展示与刷新;数据变化由已有 Store 订阅传入。 */
15
+ export declare function createMaterialConsumeObjectValidation(options: Options): {
16
+ validate: (live?: boolean) => Promise<Result | undefined>;
17
+ requestLive: () => void;
18
+ replaceTableFields: (fields?: ValidateFieldErrorMap) => void;
19
+ clear: () => void;
20
+ beginSubmit(): void;
21
+ endSubmit(): void;
22
+ dispose(): void;
23
+ };
24
+ export {};
@@ -1,6 +1,7 @@
1
1
  import { FormTypeEnum } from '../constant';
2
2
  import { FormTmplBomController } from '../hooks';
3
3
  import { RuntimeFieldMetadata } from '../runtime/runtime-field-registry';
4
+ import { ObjectProductDefault } from '../hooks/material-consume-object/initialize-autofill';
4
5
  /** 渲染端公共类 */
5
6
  export declare const renderUtils: {
6
7
  getValue: (modelValue: any, multiple: any) => any;
@@ -90,8 +91,9 @@ export declare const renderUtils: {
90
91
  /** 提前设置值给widget */
91
92
  setRequestInfo2DataCenter: (dataCenters: any, modelKeys: any, platformType: any, isMockReport: any, formType: FormTypeEnum, paramsConfig: any, useSignFields: any, useClsReasonDataLink: any, useClsGroupDataLink: any, tmplBomC: FormTmplBomController, modelQueries: any) => Promise<void>;
92
93
  /** 获取默认值集合 */
93
- getDefaultValueMapByField: ({ defaultValueFields, mainMaterialNo, mainRelatedLotNo, mainProductName, mainRoutingOperation, mainMfgOrderId, mainWarehouseId, mainLotSnId, mainProductQty, mainSterilizationLot, mainSterilizationLotId, defaultUserId, defaultOrgId, operationData, productData, mfgOrderData, sopList, ESOPData, materialNoData, relatedLotNoData, sterilizeLotData, warehouseData, }: {
94
+ getDefaultValueMapByField: ({ defaultValueFields, objectProductDefaults, mainMaterialNo, mainRelatedLotNo, mainProductName, mainRoutingOperation, mainMfgOrderId, mainWarehouseId, mainLotSnId, mainProductQty, mainSterilizationLot, mainSterilizationLotId, defaultUserId, defaultOrgId, operationData, productData, mfgOrderData, sopList, ESOPData, materialNoData, relatedLotNoData, sterilizeLotData, warehouseData, }: {
94
95
  defaultValueFields: any;
96
+ objectProductDefaults?: WeakMap<object, ObjectProductDefault> | undefined;
95
97
  mainMaterialNo?: undefined;
96
98
  mainRelatedLotNo?: undefined;
97
99
  mainProductName?: undefined;
@@ -90,6 +90,14 @@ export declare const transformUtils: {
90
90
  viewMode: RenderModeEnum;
91
91
  ofCtx: any;
92
92
  }) => Promise<any>;
93
+ /** 数据加载完成事件;全部 Sheet 的数据合并后、创建 Store 和分页前只执行一次。 */
94
+ getEventInitDataLoaded: (payload: {
95
+ formConfig: Record<string, any>;
96
+ formState: any;
97
+ viewMode: RenderModeEnum;
98
+ dataStatus?: string;
99
+ ofCtx: any;
100
+ }) => Promise<void>;
93
101
  /** 创建字段事件执行器;注册后由 RuntimeInstanceRecord 持有,全部 Sheet 共用。 */
94
102
  createScriptRunner: (payload: {
95
103
  formConfig: Record<string, any>;
@@ -143,6 +151,6 @@ export declare const transformUtils: {
143
151
  checkTable2DList?: any[];
144
152
  materialConsumeTableList?: any[];
145
153
  }) => Partial<{}>;
146
- getFormDataIdsMap: (formData: any, preserveKeys?: string[]) => any;
154
+ getFormDataIdsMap: (formData: any, preserveKeys?: string[], shouldPreserveField?: (path: string) => boolean) => any;
147
155
  };
148
156
  export {};
@@ -13,6 +13,8 @@ export interface RuntimeAsyncTaskSnapshot {
13
13
  sheetId?: string;
14
14
  /** 提交是否必须等待此任务完成。 */
15
15
  required: boolean;
16
+ /** 任务失败后是否阻止提交;仅对 required 任务生效。 */
17
+ blockOnFailure: boolean;
16
18
  status: RuntimeAsyncTaskStatus;
17
19
  /** rejected 状态对应的原始错误。 */
18
20
  error?: unknown;
@@ -24,8 +26,10 @@ export interface RunRuntimeAsyncTaskOptions {
24
26
  fieldIdentity?: BusinessFieldIdentity;
25
27
  /** 任务对应的工作表。 */
26
28
  sheetId?: string;
27
- /** 默认 true;为 true 时提交事务会等待它并检查执行结果。 */
29
+ /** 默认 true;为 true 时提交事务会等待它结束。 */
28
30
  required?: boolean;
31
+ /** 默认 true;设为 false 时仍等待任务结束,但失败不阻止后续提交。 */
32
+ blockOnFailure?: boolean;
29
33
  /** 默认 true;同 key 新任务开始前是否主动终止旧任务。 */
30
34
  replace?: boolean;
31
35
  }
@@ -56,7 +60,7 @@ export declare class RuntimeAsyncTaskCoordinator {
56
60
  * 等待全部 required 任务达到稳定状态。
57
61
  *
58
62
  * 一轮任务完成后的字段回填可能触发新的公式或远程任务,因此这里循环读取任务表,直到
59
- * 没有新的 pending required 任务。稳定后统一检查失败项,使提交事务得到明确失败原因。
63
+ * 没有新的 pending required 任务。稳定后只检查需要阻断提交的失败项。
60
64
  */
61
65
  waitForRequired(keyPrefix?: string): Promise<void>;
62
66
  /** 返回只读用途的任务快照,避免外部代码操作内部 Promise 和 AbortController。 */
@@ -1,5 +1,7 @@
1
1
  /** 当前真实多 Sheet 运行时格式版本。缺少版本号的历史数据按 v1 解析。 */
2
2
  export declare const MULTI_SHEET_SCHEMA_VERSION: 2;
3
+ export declare const MAX_RUNTIME_SHEETS = 100;
4
+ export declare const MAX_RUNTIME_SHEET_TITLE_LENGTH = 255;
3
5
  export type RuntimeNodeMap = Record<string, any>;
4
6
  export interface RuntimeSheetV2 {
5
7
  sheetId: string;
@@ -17,7 +17,7 @@ export declare class RuntimeFieldInitializer {
17
17
  private scheduled;
18
18
  private readonly unsubscribe;
19
19
  constructor(record: RuntimeInstanceRecord, info: IBasicInfoItem, metadata: InitializerMetadata);
20
- /** 初次加载等待全部目标;失败保留在任务中心,不能把未完成的默认值当成可提交数据。 */
20
+ /** 初次加载等待全部目标;默认值请求失败保留在任务中心供诊断,但不阻止提交。 */
21
21
  initialize(): Promise<void>;
22
22
  private request;
23
23
  private readDefault;
@@ -36,6 +36,7 @@ export declare class RuntimeValidationService {
36
36
  requestLive(trigger?: 'change' | 'blur', immediate?: boolean): void;
37
37
  private flushLive;
38
38
  requestDisplay(immediate?: boolean): void;
39
+ private logBackgroundError;
39
40
  pruneComments(): void;
40
41
  settleAfterModeSwitch(runChangeLive?: boolean): Promise<void>;
41
42
  private cancelScheduled;
@@ -47,7 +47,7 @@ export interface IMcRender {
47
47
  title?: string;
48
48
  }): Promise<any | undefined>;
49
49
  /**
50
- * 多 Sheet 下只销毁指定表单实例的固定模态,不能影响其他工作表宿主
50
+ * 关闭当前页面的 form-base 弹层,并销毁指定表单实例的 overlay 模态
51
51
  */
52
52
  destroyAllModals(ownerId: string): any;
53
53
  }
@@ -1,5 +1,9 @@
1
1
  import { FormModelController } from '../../hooks/form-model';
2
2
  import { ParseRuleProps, ScanParamType } from '../../types/common/base';
3
+ /** 不传 scene 时保持默认列 */
4
+ export interface ScanRecordPickerOptions {
5
+ scene?: 'inventory';
6
+ }
3
7
  /**
4
8
  * 子表绘制的基类
5
9
  */
@@ -33,7 +37,7 @@ export interface ISubTableRender {
33
37
  /**
34
38
  * 扫码多条候选时选择一行
35
39
  */
36
- openMultiRowsModal(opts: {
40
+ openMultiRowsModal(opts: ScanRecordPickerOptions & {
37
41
  rows: any[];
38
42
  title?: string;
39
43
  }): Promise<any | undefined>;
@@ -0,0 +1,6 @@
1
+ import { ScanRecordPickerOptions } from '../../../../../nocode-base/src';
2
+ import { VxeGridPropTypes } from 'vxe-table';
3
+ type ScanPickerScene = NonNullable<ScanRecordPickerOptions['scene']>;
4
+ /** 未指定场景时使用弹窗默认列。 */
5
+ export declare function getScanColumns(scene?: ScanPickerScene): VxeGridPropTypes.Columns | undefined;
6
+ export {};
@@ -2,7 +2,7 @@ import { FormModelController, MCRender, ParseRuleProps } from '../../../../../no
2
2
  import { IOverlayContainer } from '../../../../../shared/types';
3
3
  import { ScanParamType } from '../../../../../nocode-base/src/types/common/base.ts';
4
4
  export declare class McWebRender extends MCRender {
5
- /** 多 Sheet 下所有弹层都记录实例 ownerId,禁止使用全局关闭影响其他表单。 */
5
+ /** overlay 弹层按实例记录,form-base 弹层通过其全局管理器关闭。 */
6
6
  modals: Array<{
7
7
  ownerId?: string;
8
8
  modal: IOverlayContainer;
@@ -3,6 +3,7 @@ import { IBindField } from '../../../../nocode-base/src';
3
3
  type __VLS_Props = {
4
4
  fieldWidget: CellWidget.BasicSchema;
5
5
  fieldMeta: IBindField;
6
+ autoLineBreak?: boolean;
6
7
  };
7
8
  declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
8
9
  export default _default;
@@ -5,13 +5,13 @@ export interface IDisplayField {
5
5
  _dfUnremovable?: boolean;
6
6
  [key: string]: any;
7
7
  }
8
- /** 支持显示字段配置的普通字段不再预置显示列。 */
8
+ /** 物料字段的设计端默认显示列。 */
9
9
  export declare const DEFAULT_DISPLAY_FIELDS_MAP: Record<string, string[]>;
10
10
  interface DefaultDisplayFieldConfig {
11
11
  keys: string[];
12
12
  unremovableKeys: string[];
13
13
  }
14
- export declare const getDefaultDisplayFieldConfig: (_fieldType?: string) => DefaultDisplayFieldConfig;
14
+ export declare const getDefaultDisplayFieldConfig: (fieldType?: string) => DefaultDisplayFieldConfig;
15
15
  /** 仅保留设备及批次类字段从历史搜索配置初始化显示列的行为。 */
16
16
  export declare const retainsLegacyDisplayFields: (fieldType?: string) => boolean;
17
17
  export declare function getDisplayFieldKey(item?: {
@@ -6,6 +6,7 @@ type __VLS_Props = {
6
6
  fieldMeta?: IBindField;
7
7
  design?: FieldDesignComponent;
8
8
  disabled?: boolean;
9
+ autoLineBreak?: boolean;
9
10
  };
10
11
  declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
11
12
  export default _default;
@@ -0,0 +1,3 @@
1
+ import { IPaper } from '../types';
2
+ /** 旧多 Sheet 和生成模板以实际单元格为准补齐网格,再把所有区域限制在网格内。 */
3
+ export declare function normalizePaperGrid(paper: IPaper): IPaper;
@@ -7,8 +7,5 @@ export declare function useRuleProps({ props, selectByCode, }: {
7
7
  /** 根据编码查询对象,并设置选中,有匹配的项则返回true */
8
8
  selectByCode: (code: string, signal: AbortSignal) => Promise<boolean>;
9
9
  }): {
10
- mode: import('vue').Ref<"scan" | "dropdown", "scan" | "dropdown">;
11
- allowSwitch: import('vue').ComputedRef<boolean>;
12
- handleEnter: (val: any) => void;
13
10
  handleSearchScan: (value: string, isCurrent?: () => boolean) => Promise<boolean>;
14
11
  };
@@ -7,8 +7,10 @@ type __VLS_Props = {
7
7
  errorPaths?: string[];
8
8
  };
9
9
  declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
10
- change: (sheetId: string, event: MouseEvent) => any;
10
+ change: (sheetId: string, source: Event | HTMLElement) => any;
11
11
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
12
- onChange?: ((sheetId: string, event: MouseEvent) => any) | undefined;
13
- }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>;
12
+ onChange?: ((sheetId: string, source: Event | HTMLElement) => any) | undefined;
13
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
14
+ tabsViewport: HTMLDivElement;
15
+ }, HTMLElement>;
14
16
  export default _default;
@@ -1,6 +1,8 @@
1
1
  import { FIELD_TYPE } from './field-type';
2
2
  export { Platform, ButtonStyle, ButtonSize, ButtonType, ButtonType_vant, ButtonOpeEnum, } from './button';
3
3
  export { SignatureTypeEnum } from './signature';
4
+ export { ProductTypeEnum } from './product-type';
5
+ export { ProductionIdentificationTypeEnum } from './production-identification';
4
6
  export { CardControlEnum, onlineFormMasterModelTypeEnum, RecordNoGenerateEnum, } from './online-form';
5
7
  export { SEARCH_SEVICE } from './search';
6
8
  export { GctMqttTopsEnum } from './mqtt';
@@ -0,0 +1,9 @@
1
+ /** 产品类型(product_type_) */
2
+ export declare enum ProductTypeEnum {
3
+ /** 原材料 */
4
+ RAW_MATERIAL = "rawMaterial",
5
+ /** 半成品 */
6
+ SEMI_FINISHED_PRODUCT = "semiFinishedProduct",
7
+ /** 产成品 */
8
+ FINISHED_PRODUCT = "finishedProduct"
9
+ }
@@ -0,0 +1,19 @@
1
+ /** 生产标识类型(production_identification_type_) */
2
+ export declare enum ProductionIdentificationTypeEnum {
3
+ /** 物料批 */
4
+ MATERIAL = "MATERIAL",
5
+ /** 生产批次 */
6
+ LOT = "LOT",
7
+ /** 生产序列号 */
8
+ SN = "SN",
9
+ /** 灭菌批 */
10
+ STERILIZATION = "STERILIZATION",
11
+ /** 检验批 */
12
+ INSPECTION_CONTAINER = "INSPECTION_CONTAINER",
13
+ /** 旧检验批取值 */
14
+ LEGACY_INSPECTION = "inspection",
15
+ /** 包装箱 */
16
+ PACK_BOX = "PACK_BOX",
17
+ /** 医疗器械唯一标识 */
18
+ UDI = "UDI"
19
+ }
@@ -1,6 +1,6 @@
1
1
  import { shallowReactive } from "vue";
2
- import { aE as SubTableActionMenuTypeEnum, aF as getMenuByAction, aG as SubTableActionEnum, aH as resolveScanFillData, ak as SubTableCore, aI as getInsertSubMenu, aJ as resolveScanAdjustType, aK as resolveScanQty, aL as toDateOnly, aM as getCopySubMenu, aN as resolveScanParsedValue, aO as isProductBatchEmptyRow } from "./dynamic-table-action--l3y-33T.js";
3
- import { E as api, cM as F$1, cN as SCAN_ROW_CONTENT_FIELDS, cO as F$2, cP as F$3, cQ as runRowHandler, c as getProfileByTableType, b as isBusinessSubTableProfile, cR as F$4, cS as F$5, cT as FILL_FROM_SOURCE_PRODUCT_OPTION, cU as FILL_FROM_TARGET_MATERIAL_NO_OPTION, cV as FILL_FROM_INVENTORY_OPTION, cW as FILL_FROM_PART_OPTION, cX as FILL_FROM_INVENTORY_OPTION$1, cY as TABLE_TYPE, cZ as FILL_FROM_INVENTORY_OPTION$2, b4 as F$6, c_ as INVENTORY_BASE_FIELDS, c$ as resolveGroupByWarehouse, d0 as AUTO_LOAD_READONLY_SELECT_FIELDS, b3 as STOCKTAKE_DIMENSION, b0 as getParseRuleInfo, d1 as buildFillFromInventoryOption, c2 as calcFillData, d2 as resolveStocktakeInventoryApi, b1 as getParseRuleValue, d3 as F$7, d4 as FILL_FROM_INVENTORY_OPTION$3, c8 as extractKeywordFromQueryData, d5 as composeProductionLotListQuery, aK as resolveLotDisplayLabel, d6 as F$8, d7 as isProductManuallyEditable, d8 as applyFillFromMfgOrderOption, d9 as applyFillFromOption$1, da as applyFillFromProductOption, aU as LOT_CONTAINER_ROLE, db as MATERIAL_CONTAINER_ID, dc as F$9, dd as PRODUCT_QUICK_SEARCH_FIELDS, de as PRODUCT_QUICK_SEARCH_EXP, df as isProductManuallyEditable$1, dg as applyFillFromMaterialNoOption, dh as applyFillFromProductOption$1, di as F$a, dj as FILL_FROM_INVENTORY_OPTION$4, Y as FormTypeEnum, aF as transformUtils, f as SubTableType } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-D-u5mq0C.js";
2
+ import { aG as SubTableActionMenuTypeEnum, aH as getMenuByAction, aI as SubTableActionEnum, aJ as resolveScanFillData, am as SubTableCore, aK as getInsertSubMenu, aL as resolveScanAdjustType, aM as resolveScanQty, aN as toDateOnly, aO as getCopySubMenu, aP as resolveScanParsedValue, aQ as isProductBatchEmptyRow } from "./dynamic-table-action-cb-6H4R2.js";
3
+ import { E as api, cN as F$1, cO as SCAN_ROW_CONTENT_FIELDS, cP as F$2, cQ as F$3, cR as runRowHandler, c as getProfileByTableType, b as isBusinessSubTableProfile, cS as F$4, cT as F$5, cU as FILL_FROM_SOURCE_PRODUCT_OPTION, cV as FILL_FROM_TARGET_MATERIAL_NO_OPTION, cW as FILL_FROM_INVENTORY_OPTION, cX as FILL_FROM_PART_OPTION, cY as FILL_FROM_INVENTORY_OPTION$1, cZ as TABLE_TYPE, c_ as FILL_FROM_INVENTORY_OPTION$2, b5 as F$6, c$ as INVENTORY_BASE_FIELDS, d0 as resolveGroupByWarehouse, d1 as AUTO_LOAD_READONLY_SELECT_FIELDS, b4 as STOCKTAKE_DIMENSION, b1 as getParseRuleInfo, d2 as buildFillFromInventoryOption, c3 as calcFillData, d3 as resolveStocktakeInventoryApi, b2 as getParseRuleValue, d4 as F$7, d5 as FILL_FROM_INVENTORY_OPTION$3, c9 as extractKeywordFromQueryData, d6 as composeProductionLotListQuery, aK as resolveLotDisplayLabel, d7 as F$8, d8 as isProductManuallyEditable, d9 as applyFillFromMfgOrderOption, da as applyFillFromOption$1, db as applyFillFromProductOption, a$ as ProductionIdentificationTypeEnum, aU as LOT_CONTAINER_ROLE, dc as MATERIAL_CONTAINER_ID, dd as F$9, de as PRODUCT_QUICK_SEARCH_FIELDS, df as PRODUCT_QUICK_SEARCH_EXP, dg as isProductManuallyEditable$1, dh as applyFillFromMaterialNoOption, di as applyFillFromProductOption$1, dj as F$a, dk as FILL_FROM_INVENTORY_OPTION$4, Y as FormTypeEnum, aF as transformUtils, f as SubTableType } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BmECtuSE.js";
4
4
  import { has, merge } from "lodash-es";
5
5
  function isBlank$4(value) {
6
6
  return value === void 0 || value === null || value === "";
@@ -968,7 +968,9 @@ class StocktakeTableCore extends ProfileDrivenSubTableCore {
968
968
  this.error({ content: SCAN_NOT_FOUND_MSG$2 });
969
969
  return;
970
970
  }
971
- const selected = await this.pickScanRecord(records);
971
+ const selected = await this.pickScanRecord(records, {
972
+ scene: "inventory"
973
+ });
972
974
  if (!selected) return;
973
975
  const scanAdjustType = resolveScanAdjustType(input);
974
976
  const scanQty = resolveScanQty(parsed.qty, selected.qty_);
@@ -1134,7 +1136,9 @@ class AllocateTableCore extends ProfileDrivenSubTableCore {
1134
1136
  this.error({ content: SCAN_NOT_FOUND_MSG$2 });
1135
1137
  return;
1136
1138
  }
1137
- const selected = await this.pickScanRecord(records);
1139
+ const selected = await this.pickScanRecord(records, {
1140
+ scene: "inventory"
1141
+ });
1138
1142
  if (!selected) return;
1139
1143
  const row = buildAllocateScanRow(selected, parsed, resolveScanFillData(input));
1140
1144
  this.appendOrFillScanRow(row);
@@ -1524,7 +1528,7 @@ function createMaterialContainerLoader() {
1524
1528
  const { mode, queryData = {}, pageNo = 1, pageSize = 100, ids = [] } = loaderParams;
1525
1529
  const query = {
1526
1530
  ...queryData,
1527
- "production_identification_type_.eq": "MATERIAL",
1531
+ "production_identification_type_.eq": ProductionIdentificationTypeEnum.MATERIAL,
1528
1532
  "production_identification_type_.isNull": null,
1529
1533
  "container_role_.ne": LOT_CONTAINER_ROLE.RELATED_PARENT
1530
1534
  };
@@ -1575,13 +1579,19 @@ function createMaterialContainerLoader() {
1575
1579
  function isBlank$1(value) {
1576
1580
  return value === void 0 || value === null || value === "";
1577
1581
  }
1582
+ function normalizeProductionDate(row) {
1583
+ if (!isBlank$1(row[F$8.productionDate])) {
1584
+ row[F$8.productionDate] = toDateOnly(row[F$8.productionDate]);
1585
+ }
1586
+ return row;
1587
+ }
1578
1588
  const SCAN_NOT_FOUND_MSG = "扫描的批次/物料不存在";
1579
1589
  function isProductionLotOrSn(record) {
1580
1590
  const type = record.production_identification_type_;
1581
- return type === "LOT" || type === "SN";
1591
+ return type === ProductionIdentificationTypeEnum.LOT || type === ProductionIdentificationTypeEnum.SN;
1582
1592
  }
1583
1593
  function buildProductionContainerRow(record, parsed, fillData) {
1584
- return {
1594
+ return normalizeProductionDate({
1585
1595
  [F$8.productionContainer]: record.lot_sn_id_ ?? record.production_container_id_,
1586
1596
  [F$8.product]: record.product_id_,
1587
1597
  [F$8.productName]: record.product_id_name_,
@@ -1589,15 +1599,15 @@ function buildProductionContainerRow(record, parsed, fillData) {
1589
1599
  [F$8.productSpec]: record.product_id_spec_,
1590
1600
  [F$8.mfgOrderCode]: record.mfg_order_code_,
1591
1601
  [F$8.qty]: parsed.qty ?? record.qty_,
1592
- [F$8.productionDate]: toDateOnly(record.production_date_),
1602
+ [F$8.productionDate]: record.production_date_,
1593
1603
  [F$8.materialContainerNo]: void 0,
1594
1604
  [MATERIAL_CONTAINER_ID]: void 0,
1595
1605
  [F$8.mfgOrder]: void 0,
1596
1606
  ...fillData
1597
- };
1607
+ });
1598
1608
  }
1599
1609
  function buildMaterialContainerRow(record, parsed, fillData) {
1600
- return {
1610
+ return normalizeProductionDate({
1601
1611
  [F$8.materialContainerNo]: record.material_no_,
1602
1612
  [MATERIAL_CONTAINER_ID]: record.production_identification_id_,
1603
1613
  [F$8.product]: record.product_id_,
@@ -1609,7 +1619,7 @@ function buildMaterialContainerRow(record, parsed, fillData) {
1609
1619
  [F$8.qty]: parsed.qty ?? record.qty_,
1610
1620
  [F$8.productionContainer]: void 0,
1611
1621
  ...fillData
1612
- };
1622
+ });
1613
1623
  }
1614
1624
  class PretreatmentListTableCore extends ProfileDrivenSubTableCore {
1615
1625
  /** 绘制UI相关工具,复用调拨表扫码弹窗 */
@@ -1669,16 +1679,23 @@ class PretreatmentListTableCore extends ProfileDrivenSubTableCore {
1669
1679
  const source = option._item ?? option;
1670
1680
  if (field === F$8.mfgOrder) {
1671
1681
  applyFillFromMfgOrderOption(rowData, source);
1682
+ normalizeProductionDate(rowData);
1672
1683
  return;
1673
1684
  }
1674
1685
  if (field === F$8.productionContainer || field === F$8.materialContainerNo) {
1675
1686
  applyFillFromOption$1(rowData, source);
1687
+ normalizeProductionDate(rowData);
1676
1688
  return;
1677
1689
  }
1678
1690
  if (field === F$8.product) {
1679
1691
  applyFillFromProductOption(rowData, source);
1680
1692
  }
1681
1693
  }
1694
+ prepareSubmitFormState(formState) {
1695
+ const rows = formState[this.subFieldKey];
1696
+ if (!Array.isArray(rows)) return;
1697
+ rows.forEach((row) => normalizeProductionDate(row));
1698
+ }
1682
1699
  async onScan(input) {
1683
1700
  const parsed = resolveScanParsedValue(input);
1684
1701
  if (!parsed || !hasProductionIdentificationScanKey(parsed)) {
@@ -1931,7 +1948,9 @@ class WarehouseOutTableCore extends ProfileDrivenSubTableCore {
1931
1948
  this.error({ content: SCAN_NOT_FOUND_MSG$2 });
1932
1949
  return;
1933
1950
  }
1934
- const selected = await this.pickScanRecord(records);
1951
+ const selected = await this.pickScanRecord(records, {
1952
+ scene: "inventory"
1953
+ });
1935
1954
  if (!selected) return;
1936
1955
  const scanQty = resolveScanQty(parsed.qty, selected.qty_);
1937
1956
  const fillData = resolveScanFillData(input);
@@ -1,9 +1,9 @@
1
1
  import { defineComponent, computed, openBlock, createElementBlock, normalizeStyle, normalizeClass, createCommentVNode, createElementVNode, toDisplayString } from "vue";
2
2
  import { pick } from "lodash-es";
3
- import { Q as PaperWidgeValueType, a8 as _export_sfc } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-D-u5mq0C.js";
3
+ import { Q as PaperWidgeValueType, a8 as _export_sfc } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BmECtuSE.js";
4
4
  import "dayjs";
5
5
  import "ant-design-vue";
6
- import { u as useSpreadSheet, h as useModelFields } from "./index-BTt4zC25.js";
6
+ import { u as useSpreadSheet, h as useModelFields } from "./index-D2NnQYm7.js";
7
7
  const _hoisted_1 = { class: "ws-pre-wrap" };
8
8
  const _sfc_main = /* @__PURE__ */ defineComponent({
9
9
  __name: "text-design",
@@ -1,5 +1,5 @@
1
1
  import { g as getScrollDimension } from "./viewport.helpers-CoCAvmZs-D_JddDC6.js";
2
- import { eh as isObject, dH as debounce } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-D-u5mq0C.js";
2
+ import { ei as isObject, dI as debounce } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BmECtuSE.js";
3
3
  const initialParams = {
4
4
  contentSize: 0,
5
5
  clientSize: 0,
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, openBlock, createElementBlock, toDisplayString, unref } from "vue";
2
- import { am as TimeDiffFormat } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-D-u5mq0C.js";
2
+ import { am as TimeDiffFormat } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BmECtuSE.js";
3
3
  import "lodash-es";
4
4
  import "dayjs";
5
5
  import "ant-design-vue";
@@ -1,9 +1,9 @@
1
1
  import { get, pick } from "lodash-es";
2
- import { F as FIELD_TYPE, a$ as BindCmpStyleEnum } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-D-u5mq0C.js";
2
+ import { F as FIELD_TYPE, b0 as BindCmpStyleEnum } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BmECtuSE.js";
3
3
  import "vue";
4
4
  import "dayjs";
5
5
  import "ant-design-vue";
6
- import { i as isSterilizationLotField, a as getSterilizationLotDisplayFields, s as showDisplayAndSearchConfig, r as resolveQuickSearchConfig } from "./index-BTt4zC25.js";
6
+ import { i as isSterilizationLotField, a as getSterilizationLotDisplayFields, s as showDisplayAndSearchConfig, r as resolveQuickSearchConfig } from "./index-D2NnQYm7.js";
7
7
  function getTraceLikeSelectProps(data) {
8
8
  const isSubtableMfgOrder = !!data.info.subModelKey && (data.info.bizType === FIELD_TYPE.MFG_ORDER || data.info.fieldType === FIELD_TYPE.MFG_ORDER);
9
9
  const displayFields = (() => {
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, computed, resolveComponent, openBlock, createElementBlock, createVNode, withCtx, Fragment, renderList, createBlock, createTextVNode, toDisplayString, createElementVNode, unref, createCommentVNode } from "vue";
2
2
  import { pick } from "lodash-es";
3
- import { h as useModelFields, u as useSpreadSheet, m as useDrop, P as PanelType, T as TransferType, V as ValueEditorFieldDropBoxId, S as SingleDrop, o as getFieldIcon } from "./index-BTt4zC25.js";
4
- import { Q as PaperWidgeValueType, at as ExpressionModeEnum, av as ExpressionTabEnum } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-D-u5mq0C.js";
3
+ import { h as useModelFields, u as useSpreadSheet, m as useDrop, P as PanelType, T as TransferType, V as ValueEditorFieldDropBoxId, S as SingleDrop, o as getFieldIcon } from "./index-D2NnQYm7.js";
4
+ import { Q as PaperWidgeValueType, at as ExpressionModeEnum, av as ExpressionTabEnum } 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";
7
7
  const _hoisted_1 = { class: "mt-4px" };
@@ -1,7 +1,7 @@
1
- import { M as ModalWrapper, _ as _sfc_main$3 } from "../index-Ls2829xQ.js";
2
- import { A, B, P, S, j, h, i, u } from "../index-Ls2829xQ.js";
1
+ import { M as ModalWrapper, _ as _sfc_main$3 } from "../index-l8FZ6Q3X.js";
2
+ import { A, B, P, S, j, h, i, u } from "../index-l8FZ6Q3X.js";
3
3
  import { message } from "ant-design-vue";
4
- import { J as useModal, a8 as _export_sfc, E as api, ce as getParseRuleConfig, b1 as getParseRuleValue, c2 as calcFillData, aZ as getLotLockedReason } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-D-u5mq0C.js";
4
+ import { J as useModal, a8 as _export_sfc, E as api, cf as getParseRuleConfig, b2 as getParseRuleValue, c3 as calcFillData, aZ as getLotLockedReason } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BmECtuSE.js";
5
5
  import { defineComponent, ref, resolveComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, Fragment, renderList, normalizeClass, createVNode, createTextVNode, reactive, onMounted, createBlock, unref, withCtx, withKeys, withDirectives, createCommentVNode, vShow, computed, mergeProps, toHandlers } from "vue";
6
6
  import { cloneDeep } from "lodash-es";
7
7
  import "dayjs";
@@ -1,11 +1,11 @@
1
1
  import { defineComponent, computed, resolveComponent, openBlock, createElementBlock, Fragment, createVNode, withCtx, renderList, createBlock, createTextVNode, toDisplayString, createElementVNode } from "vue";
2
- import { u as useSpreadSheet, B as BwipCodeTypeOptions, F as FormItem } from "./index-BTt4zC25.js";
3
- import { _ as _sfc_main$1 } from "./value-editor.vue_vue_type_style_index_0_lang-CEuFEVMv.js";
4
- import { o as PaperWidgeType } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-D-u5mq0C.js";
2
+ import { u as useSpreadSheet, B as BwipCodeTypeOptions, F as FormItem } from "./index-D2NnQYm7.js";
3
+ import { _ as _sfc_main$1 } from "./value-editor.vue_vue_type_style_index_0_lang-BzBps2FA.js";
4
+ import { o as PaperWidgeType } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BmECtuSE.js";
5
5
  import "lodash-es";
6
6
  import "dayjs";
7
7
  import "ant-design-vue";
8
- import { A as AlignEditor } from "./align-editor-Bpdx7EAg.js";
8
+ import { A as AlignEditor } from "./align-editor-wPpZ_4zH.js";
9
9
  const _hoisted_1 = { class: "pl-6px" };
10
10
  const _hoisted_2 = { class: "flex justify-end" };
11
11
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,11 +1,11 @@
1
1
  import { defineComponent, computed, resolveComponent, openBlock, createBlock, normalizeClass, unref, withCtx, createElementVNode, toDisplayString, createVNode, watch, createElementBlock, Fragment, createCommentVNode } from "vue";
2
- import { F as FormItem, q as SelectEx } from "./index-BTt4zC25.js";
2
+ import { F as FormItem, q as SelectEx } from "./index-D2NnQYm7.js";
3
3
  import { defaults } from "lodash-es";
4
- import { F as FIELD_TYPE, a8 as _export_sfc, aj as DiagonalDirection, an as DiagonalVertex, cp as migrateDiagonalDirectionToVertex } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-D-u5mq0C.js";
4
+ import { F as FIELD_TYPE, a8 as _export_sfc, aj as DiagonalDirection, an as DiagonalVertex, cq as migrateDiagonalDirectionToVertex } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-BmECtuSE.js";
5
5
  import "dayjs";
6
6
  import { message } from "ant-design-vue";
7
7
  import { a as useNamespace } from "./AntdIcon-DCIaV352.js";
8
- import { S as SingleFieldDrop } from "./single-field-drop-DFjo8ISo.js";
8
+ import { S as SingleFieldDrop } from "./single-field-drop-DlOiRRig.js";
9
9
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
10
10
  __name: "diagonal-name-editor",
11
11
  props: {