@gct-paas/word 0.1.52-beta.1 → 0.1.52-beta.3

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 (100) hide show
  1. package/dist/base/divider/src/divider.vue.d.ts +1 -1
  2. package/dist/base/icon/src/icon.vue.d.ts +1 -1
  3. package/dist/base/input/src/input.vue.d.ts +6 -6
  4. package/dist/base/input/src/text-area.vue.d.ts +4 -4
  5. package/dist/base/rdo-tree-select/src/rdo-tree-select.vue.d.ts +1 -1
  6. package/dist/base/table/src/table.vue.d.ts +2 -2
  7. package/dist/capabilities/model-field-runtime/types/field.d.ts +2 -0
  8. package/dist/core/cursor/render/cursor-renderer.vue.d.ts +2 -2
  9. package/dist/core/data/DataManager.d.ts +7 -0
  10. package/dist/core/model/document/wtcRegionRef.d.ts +1 -1
  11. package/dist/core/model/logic/subtable/repeating/RepeatingRegion.d.ts +15 -4
  12. package/dist/domain/active/active-types.d.ts +2 -0
  13. package/dist/domain/field/field-props-schema-type.d.ts +1 -1
  14. package/dist/domain/field/field-type.d.ts +18 -1
  15. package/dist/domain/table/business/{check-table/profile.d.ts → check/check-table/profile/index.d.ts} +1 -1
  16. package/dist/domain/table/business/{material-balance/profile.d.ts → material/material-balance/profile/index.d.ts} +1 -1
  17. package/dist/domain/table/business/{material-consume/profile.d.ts → material/material-consume/profile/index.d.ts} +1 -1
  18. package/dist/domain/table/business/warehouse/warehouse-in-out/profile/fields.d.ts +2 -0
  19. package/dist/domain/table/business/warehouse/warehouse-in-out/profile/index.d.ts +2 -0
  20. package/dist/domain/table/business/warehouse/warehouse-inventory/actions/change-parse-rule.d.ts +7 -0
  21. package/dist/domain/table/business/warehouse/warehouse-inventory/actions/index.d.ts +2 -0
  22. package/dist/domain/table/business/warehouse/warehouse-inventory/actions/scan.d.ts +7 -0
  23. package/dist/domain/table/business/{warehouse-inventory → warehouse/warehouse-inventory}/index.d.ts +2 -0
  24. package/dist/domain/table/business/warehouse/warehouse-inventory/profile/field-keys.d.ts +63 -0
  25. package/dist/domain/table/business/warehouse/warehouse-inventory/profile/fields.d.ts +2 -0
  26. package/dist/domain/table/business/{warehouse-inventory/profile.d.ts → warehouse/warehouse-inventory/profile/index.d.ts} +1 -1
  27. package/dist/domain/table/business/warehouse/warehouse-inventory/runtime/index.d.ts +3 -0
  28. package/dist/domain/table/business/warehouse/warehouse-inventory/runtime/register-handlers.d.ts +1 -0
  29. package/dist/domain/table/business/warehouse/warehouse-inventory/runtime/remote-sync-apply.d.ts +9 -0
  30. package/dist/domain/table/business/warehouse/warehouse-inventory/runtime/row-change-handlers.d.ts +22 -0
  31. package/dist/domain/table/business/warehouse/warehouse-inventory/runtime/scan-config.d.ts +31 -0
  32. package/dist/domain/table/business/warehouse/warehouse-inventory/runtime/stocktake-calc.d.ts +72 -0
  33. package/dist/domain/table/business/warehouse/warehouse-inventory/runtime/warehouse-context.d.ts +3 -0
  34. package/dist/domain/table/business/{warehouse-transfer/profile.d.ts → warehouse/warehouse-transfer/profile/index.d.ts} +1 -1
  35. package/dist/domain/table/data/dynamic-table/{profile.d.ts → profile/index.d.ts} +1 -1
  36. package/dist/domain/table/data/fixed-table/{profile.d.ts → profile/index.d.ts} +1 -1
  37. package/dist/domain/table/data/two-d-table/{profile.d.ts → profile/index.d.ts} +1 -1
  38. package/dist/domain/table/{hooks → design/hooks}/on-field-attach.d.ts +2 -2
  39. package/dist/domain/table/design/hooks/on-repeating-default-props.d.ts +3 -0
  40. package/dist/domain/table/{hooks → design/hooks}/on-subtable-create.d.ts +4 -4
  41. package/dist/domain/table/design/label.d.ts +2 -0
  42. package/dist/domain/table/design/ribbon-options.d.ts +8 -0
  43. package/dist/domain/table/{_shared → design/theme}/region-item-theme.d.ts +1 -1
  44. package/dist/domain/table/index.d.ts +10 -7
  45. package/dist/domain/table/registry.d.ts +3 -13
  46. package/dist/domain/table/runtime/api/biz-service-api.d.ts +6 -0
  47. package/dist/domain/table/runtime/engines/init-load-engine.d.ts +16 -0
  48. package/dist/domain/table/runtime/engines/linkage-engine.d.ts +67 -0
  49. package/dist/domain/table/runtime/engines/main-field-bind-engine.d.ts +7 -0
  50. package/dist/domain/table/runtime/engines/remote-sync-engine.d.ts +25 -0
  51. package/dist/domain/table/runtime/engines/row-runtime-engine.d.ts +20 -0
  52. package/dist/domain/table/runtime/engines/rule-engine.d.ts +35 -0
  53. package/dist/domain/table/runtime/runtime-handlers.d.ts +72 -0
  54. package/dist/domain/table/runtime/table-runtime-context.d.ts +48 -0
  55. package/dist/domain/table/runtime/table-runtime-utils.d.ts +60 -0
  56. package/dist/domain/table/runtime/table-runtime.d.ts +64 -0
  57. package/dist/domain/table/types.d.ts +174 -62
  58. package/dist/domain/widget/component-type.d.ts +1 -1
  59. package/dist/index.es.js +19351 -17030
  60. package/dist/runtime/canvas/table/render/material-consume/tmpl-bom-controller.d.ts +1 -1
  61. package/dist/runtime/designer/toolkit/renderer/field-palette/field-palette.vue.d.ts +15 -0
  62. package/dist/runtime/designer/toolkit/renderer/field-palette/index.d.ts +14 -0
  63. package/dist/runtime/interface/fetchers.d.ts +3 -1
  64. package/dist/runtime/renderer/dialogs/device-scan/device-scan-dialog.vue.d.ts +14 -14
  65. package/dist/runtime/renderer/dropdowns/components/tables/rdo-table-dropdown.vue.d.ts +14 -14
  66. package/dist/runtime/renderer/dropdowns/components/tables/strategy/selectStrategy.d.ts +1 -1
  67. package/dist/runtime/renderer/dropdowns/components/tables/table-dropdown.vue.d.ts +14 -14
  68. package/dist/suites/edhr/manifest/field/material/location-manifest.d.ts +2 -0
  69. package/dist/suites/edhr/manifest/field/material/warehouse-manifest.d.ts +2 -0
  70. package/dist/suites/edhr/manifest/field/object-type/material-consume-manifest.d.ts +2 -0
  71. package/dist/suites/edhr/manifest/field/object-type/qty-consumed-manifest.d.ts +2 -0
  72. package/dist/suites/edhr/manifest/field/object-type/qty-manifest.d.ts +2 -0
  73. package/dist/suites/edhr/manifest/field/object-type/qty-required-manifest.d.ts +2 -0
  74. package/dist/suites/edhr/manifest/field/trace/production-identifier-manifest.d.ts +2 -0
  75. package/dist/suites/edhr/panel-schema/data-init/object-init/object-init.vue.d.ts +9 -0
  76. package/dist/suites/edhr/panel-schema/index.d.ts +1 -0
  77. package/dist/suites/edhr/panel-schema/warehouse-inventory-table/WarehouseInventoryTablePanel.vue.d.ts +8 -0
  78. package/dist/suites/edhr/panel-schema/warehouse-inventory-table/warehouse-inventory-table.basic.d.ts +1 -0
  79. package/dist/suites/shared/panel/config/editor/qrcode-parse-editor/barcode-parsing-rules-string-editor.vue.d.ts +21 -0
  80. package/dist/suites/shared/panel/config/editor/qrcode-parse-editor/qrcode-parse-editor.vue.d.ts +17 -0
  81. package/dist/suites/shared/panel/config/editor/qrcode-parse-editor/qrcode-parse-modal.vue.d.ts +20 -0
  82. package/dist/suites/shared/panel/config/editor/qrcode-parse-editor/utils.d.ts +5 -0
  83. package/dist/types/warehouse-inventory.type.d.ts +33 -0
  84. package/dist/utils/TriggerUtil.d.ts +1 -1
  85. package/dist/word.css +276 -178
  86. package/package.json +2 -2
  87. package/dist/domain/table/_shared/linkage-engine.d.ts +0 -25
  88. package/dist/domain/table/_shared/rule-engine.d.ts +0 -9
  89. package/dist/domain/table/_shared/runtime-engine.d.ts +0 -12
  90. package/dist/domain/table/_shared/table-runtime-shared.d.ts +0 -45
  91. package/dist/domain/table/business/warehouse-in-out/fields.d.ts +0 -2
  92. package/dist/domain/table/business/warehouse-in-out/profile.d.ts +0 -2
  93. /package/dist/domain/table/business/{check-table → check/check-table}/index.d.ts +0 -0
  94. /package/dist/domain/table/business/{material-balance → material/material-balance}/index.d.ts +0 -0
  95. /package/dist/domain/table/business/{material-consume → material/material-consume}/index.d.ts +0 -0
  96. /package/dist/domain/table/business/{warehouse-in-out → warehouse/warehouse-in-out}/index.d.ts +0 -0
  97. /package/dist/domain/table/business/{warehouse-transfer → warehouse/warehouse-transfer}/index.d.ts +0 -0
  98. /package/dist/domain/table/{_shared → design}/autofill-expander.d.ts +0 -0
  99. /package/dist/domain/table/{_shared → design}/sub-model-matcher.d.ts +0 -0
  100. /package/dist/domain/table/{_shared → design/theme}/table-theme.d.ts +0 -0
@@ -7,8 +7,8 @@ declare function __VLS_template(): {
7
7
  };
8
8
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
9
9
  declare const __VLS_component: import('vue').DefineComponent<IDividerProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<IDividerProps> & Readonly<{}>, {
10
- vertical: boolean;
11
10
  color: string;
11
+ vertical: boolean;
12
12
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
13
13
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
14
14
  export default _default;
@@ -6,7 +6,7 @@ type __VLS_Props = {
6
6
  };
7
7
  declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
8
8
  color: string;
9
- size: number | string;
10
9
  version: "v1" | "v2";
10
+ size: number | string;
11
11
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLSpanElement>;
12
12
  export default _default;
@@ -15,7 +15,7 @@ declare const __VLS_component: import('vue').DefineComponent<GctInputProps, {
15
15
  focus: () => void;
16
16
  blur: () => void;
17
17
  select: () => void;
18
- inputRef: import('vue').Ref<HTMLTextAreaElement | HTMLInputElement | null, HTMLTextAreaElement | HTMLInputElement | null>;
18
+ inputRef: import('vue').Ref<HTMLInputElement | HTMLTextAreaElement | null, HTMLInputElement | HTMLTextAreaElement | null>;
19
19
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
20
20
  input: (value: string | number, event: Event) => any;
21
21
  search: (value: string | number) => any;
@@ -25,8 +25,8 @@ declare const __VLS_component: import('vue').DefineComponent<GctInputProps, {
25
25
  keydown: (event: KeyboardEvent) => any;
26
26
  keypress: (event: KeyboardEvent) => any;
27
27
  keyup: (event: KeyboardEvent) => any;
28
- clear: () => any;
29
28
  "update:modelValue": (value: string | number) => any;
29
+ clear: () => any;
30
30
  pressEnter: (event: KeyboardEvent) => any;
31
31
  }, string, import('vue').PublicProps, Readonly<GctInputProps> & Readonly<{
32
32
  onInput?: ((value: string | number, event: Event) => any) | undefined;
@@ -37,8 +37,8 @@ declare const __VLS_component: import('vue').DefineComponent<GctInputProps, {
37
37
  onKeydown?: ((event: KeyboardEvent) => any) | undefined;
38
38
  onKeypress?: ((event: KeyboardEvent) => any) | undefined;
39
39
  onKeyup?: ((event: KeyboardEvent) => any) | undefined;
40
- onClear?: (() => any) | undefined;
41
40
  "onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
41
+ onClear?: (() => any) | undefined;
42
42
  onPressEnter?: ((event: KeyboardEvent) => any) | undefined;
43
43
  }>, {
44
44
  name: string;
@@ -46,13 +46,11 @@ declare const __VLS_component: import('vue').DefineComponent<GctInputProps, {
46
46
  id: string;
47
47
  readonly: boolean;
48
48
  disabled: boolean;
49
+ suffix: string;
49
50
  size: import('./types').InputSize;
50
- autocomplete: string;
51
- spellcheck: boolean;
52
51
  placeholder: string;
53
52
  modelValue: string | number;
54
53
  prefix: string;
55
- suffix: string;
56
54
  addonBefore: string;
57
55
  addonAfter: string;
58
56
  allowClear: boolean;
@@ -60,9 +58,11 @@ declare const __VLS_component: import('vue').DefineComponent<GctInputProps, {
60
58
  showPasswordToggle: boolean;
61
59
  maxLength: number;
62
60
  autofocus: boolean;
61
+ autocomplete: string;
63
62
  rows: number;
64
63
  bordered: boolean;
65
64
  showSearchButton: boolean;
65
+ spellcheck: boolean;
66
66
  customStyle: Record<string, string | number>;
67
67
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
68
68
  inputRef: HTMLInputElement;
@@ -23,8 +23,8 @@ declare const __VLS_component: import('vue').DefineComponent<GctInputProps, {
23
23
  keydown: (event: KeyboardEvent) => any;
24
24
  keypress: (event: KeyboardEvent) => any;
25
25
  keyup: (event: KeyboardEvent) => any;
26
- clear: () => any;
27
26
  "update:modelValue": (value: string | number) => any;
27
+ clear: () => any;
28
28
  pressEnter: (event: KeyboardEvent) => any;
29
29
  }, string, import('vue').PublicProps, Readonly<GctInputProps> & Readonly<{
30
30
  onInput?: ((value: string | number, event: Event) => any) | undefined;
@@ -35,23 +35,23 @@ declare const __VLS_component: import('vue').DefineComponent<GctInputProps, {
35
35
  onKeydown?: ((event: KeyboardEvent) => any) | undefined;
36
36
  onKeypress?: ((event: KeyboardEvent) => any) | undefined;
37
37
  onKeyup?: ((event: KeyboardEvent) => any) | undefined;
38
- onClear?: (() => any) | undefined;
39
38
  "onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
39
+ onClear?: (() => any) | undefined;
40
40
  onPressEnter?: ((event: KeyboardEvent) => any) | undefined;
41
41
  }>, {
42
42
  name: string;
43
43
  readonly: boolean;
44
44
  disabled: boolean;
45
- autocomplete: string;
46
- spellcheck: boolean;
47
45
  placeholder: string;
48
46
  modelValue: string | number;
49
47
  allowClear: boolean;
50
48
  showCount: boolean;
51
49
  maxLength: number;
52
50
  autofocus: boolean;
51
+ autocomplete: string;
53
52
  rows: number;
54
53
  bordered: boolean;
54
+ spellcheck: boolean;
55
55
  customStyle: Record<string, string | number>;
56
56
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
57
57
  textareaRef: HTMLTextAreaElement;
@@ -22,13 +22,13 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {
22
22
  "onUpdate:fullPathValue"?: ((value?: string | null | undefined) => any) | undefined;
23
23
  }>, {
24
24
  disabled: boolean;
25
+ modelCategory: string;
25
26
  pageSize: number;
26
27
  placeholder: string;
27
28
  popperWidth: number;
28
29
  allowClear: boolean;
29
30
  disabledParent: boolean;
30
31
  parentToDefault: boolean;
31
- modelCategory: string;
32
32
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
33
33
  dropdownRef: import('vue').CreateComponentPublicInstanceWithMixins<Record<string, any> & {}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {}, false, {}, {}, {}, {}, string, {}, any, import('vue').ComponentProvideOptions, {
34
34
  P: {};
@@ -31,9 +31,9 @@ declare const __VLS_component: import('vue').DefineComponent<TableProps, {}, {},
31
31
  onSelect?: ((keys: string[]) => any) | undefined;
32
32
  "onRow-click"?: ((row: TableRow) => any) | undefined;
33
33
  }>, {
34
- size: "small" | "middle" | "large";
35
- multiple: boolean;
36
34
  loading: boolean;
35
+ multiple: boolean;
36
+ size: "small" | "middle" | "large";
37
37
  columns: TableColumn[];
38
38
  stripe: boolean;
39
39
  selectable: boolean;
@@ -26,6 +26,8 @@ export interface FieldMeta {
26
26
  bindInfo?: string;
27
27
  /** 主子关联 绑定子模型字段 */
28
28
  bindFieldKey?: string;
29
+ /** 对象字段所属对象 key */
30
+ belongingObject?: string;
29
31
  createTime: string;
30
32
  createUserName: string;
31
33
  modifyTime: string;
@@ -9,10 +9,10 @@ type __VLS_Props = {
9
9
  visible?: boolean;
10
10
  };
11
11
  declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
12
- caretWidth: number;
12
+ visible: boolean;
13
13
  caretColor: string;
14
+ caretWidth: number;
14
15
  blinkInterval: number;
15
16
  alwaysVisibleAfterEventMs: number;
16
- visible: boolean;
17
17
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
18
18
  export default _default;
@@ -1,5 +1,12 @@
1
1
  import { Doc } from '../view/Doc';
2
2
  import { PostChangePipelineContext } from './post-change-pipeline';
3
+ /**
4
+ * 事件触发来源
5
+ * @property user - 用户手动操作触发
6
+ * @property dependency - 依赖数据变更触发
7
+ * @property enrichment - 数据补充/富化逻辑触发
8
+ * @property parent - 父组件/上层逻辑触发
9
+ */
3
10
  export type EmitSource = 'user' | 'dependency' | 'enrichment' | 'parent';
4
11
  /** 单字段变更明细(path 作为 FieldChangeMap 的 key) */
5
12
  export interface FieldChangeDetail {
@@ -29,7 +29,7 @@ export declare const SUB_TABLE_REGION_TYPES: readonly ["repeating", "bounded", "
29
29
  * 子表 layout 类型
30
30
  * Ribbon 面板、子表主题色均使用此类型;主题配置见 @/domain/table 各 Profile.theme
31
31
  */
32
- export type SubTableLayoutType = 'dynamic-table' | 'fixed-table' | '2d-table' | 'check-table' | 'material-consume-table' | 'warehouse-in-out-table';
32
+ export type SubTableLayoutType = 'dynamic-table' | 'fixed-table' | '2d-table' | 'check-table' | 'material-consume-table' | 'warehouse-in-out-table' | 'warehouse-inventory-table';
33
33
  /** 表头 layout 类型 */
34
34
  export type TableHeaderLayoutType = 'table-header';
35
35
  /** 所有子表表格 layout 类型 */
@@ -2,13 +2,24 @@ import { Region, RegionOptions } from '../../base/Region';
2
2
  import { RegionJson } from '../../../types';
3
3
  import { Wtbl } from '../../../document';
4
4
  import { SubTableLayoutType } from '../../../document/wtcRegionRef';
5
- export type RepeatingWidgetPropsMeta = {
5
+ export type RepeatingWidgetPropsBase = {
6
6
  /** 快速填报 */
7
7
  quickFill: boolean;
8
- /** UI layout 类型;默认 dynamic-table,出入库明细等为 warehouse-in-out-table */
9
- layoutType?: SubTableLayoutType;
10
- [key: string]: any;
11
8
  };
9
+ export type DynamicTableProps = RepeatingWidgetPropsBase & {
10
+ layoutType?: 'dynamic-table';
11
+ };
12
+ export type WarehouseInOutTableProps = RepeatingWidgetPropsBase & {
13
+ layoutType: 'warehouse-in-out-table';
14
+ };
15
+ export type WarehouseInventoryTableProps = RepeatingWidgetPropsBase & {
16
+ layoutType: 'warehouse-inventory-table';
17
+ /** 库存自动加载 */
18
+ autoLoadInventory?: boolean;
19
+ /** 条码解析规则 */
20
+ barcode_parsing_rules_id_?: string;
21
+ };
22
+ export type RepeatingWidgetPropsMeta = DynamicTableProps | WarehouseInOutTableProps | WarehouseInventoryTableProps;
12
23
  export type RepeatingWidgetMeta = {
13
24
  props: RepeatingWidgetPropsMeta;
14
25
  };
@@ -12,6 +12,8 @@ export type PanelType =
12
12
  | 'panel:dynamic-table'
13
13
  /** 出入库明细表 */
14
14
  | 'panel:warehouse-in-out-table'
15
+ /** 库存盘点表 */
16
+ | 'panel:warehouse-inventory-table'
15
17
  /** 二维表 */
16
18
  | 'panel:2d-table'
17
19
  /** 物料消耗表 */
@@ -39,7 +39,7 @@ export interface JoinRule {
39
39
  export interface ApiRule {
40
40
  type: 'api';
41
41
  /** 请求函数 key */
42
- fetcher: 'ref' | 'lot2sn' | 'rdo2ref';
42
+ fetcher: 'ref' | 'lot2sn' | 'rdo2ref' | 'ref2lot2sn';
43
43
  /** 仅主模型字段可发起请求 */
44
44
  onlyMainModelFieldsCanRequest: boolean;
45
45
  /** 失败时的默认 label */
@@ -319,5 +319,22 @@ export declare enum FIELD_TYPE {
319
319
  /**
320
320
  * 仓管员
321
321
  */
322
- WAREHOUSE_MANAGER = "warehouse_manager"
322
+ WAREHOUSE_MANAGER = "warehouse_manager",
323
+ /**
324
+ * 仓库
325
+ */
326
+ WAREHOUSE = "warehouse",
327
+ /**
328
+ * 库位
329
+ */
330
+ LOCATION = "location",
331
+ /**
332
+ * 物料批次(生产标识)
333
+ */
334
+ PRODUCTION_IDENTIFIER = "production_identifier",
335
+ OBJECT_TYPE = "object_type",
336
+ MATERIAL_CONSUME = "material_consume",
337
+ QTY = "qty",
338
+ QTY_CONSUMED = "qty_consumed",
339
+ QTY_REQUIRED = "qty_required_"
323
340
  }
@@ -1,3 +1,3 @@
1
- import { BusinessSubTableProfile } from '../../types';
1
+ import { BusinessSubTableProfile } from '../../../../types';
2
2
  export declare const profile: BusinessSubTableProfile;
3
3
  export { profile as checkTableProfile };
@@ -1,3 +1,3 @@
1
- import { BusinessSubTableProfile } from '../../types';
1
+ import { BusinessSubTableProfile } from '../../../../types';
2
2
  export declare const profile: BusinessSubTableProfile;
3
3
  export { profile as materialBalanceProfile };
@@ -1,3 +1,3 @@
1
- import { BusinessSubTableProfile } from '../../types';
1
+ import { BusinessSubTableProfile } from '../../../../types';
2
2
  export declare const profile: BusinessSubTableProfile;
3
3
  export { profile as materialConsumeProfile };
@@ -0,0 +1,2 @@
1
+ import { BusinessFieldProfile } from '../../../../types';
2
+ export declare const fields: BusinessFieldProfile[];
@@ -0,0 +1,2 @@
1
+ import { BusinessSubTableProfile } from '../../../../types';
2
+ export declare const profile: BusinessSubTableProfile;
@@ -0,0 +1,7 @@
1
+ import { Doc, SubRenderer } from '../../../../../../core';
2
+ /** 变更库存盘点表条码解析规则(填报态) */
3
+ export declare function changeWarehouseInventoryParseRule(options: {
4
+ doc: Doc;
5
+ subRenderer: SubRenderer;
6
+ subModelKey?: string;
7
+ }): Promise<void>;
@@ -0,0 +1,2 @@
1
+ export * from './scan';
2
+ export * from './change-parse-rule';
@@ -0,0 +1,7 @@
1
+ import { Doc, SubRenderer } from '../../../../../../core';
2
+ /** 打开扫码弹窗并处理盘点行合并 */
3
+ export declare function openWarehouseInventoryScan(options: {
4
+ doc: Doc;
5
+ subRenderer: SubRenderer;
6
+ subFieldKey: string;
7
+ }): Promise<void>;
@@ -1 +1,3 @@
1
1
  export { profile as warehouseInventoryProfile } from './profile';
2
+ export * from './runtime';
3
+ export * from './actions';
@@ -0,0 +1,63 @@
1
+ /**
2
+ * 盘点表字段 key 统一定义
3
+ */
4
+ /** 单字段 key */
5
+ export declare const F: {
6
+ readonly batch: "production_identification_id_";
7
+ readonly batchLb: "production_identification_id__lb_";
8
+ readonly product: "product_id_";
9
+ readonly productLb: "product_id__lb_";
10
+ readonly productName: "product_id_name_";
11
+ readonly productCode: "product_id_code_";
12
+ readonly productSpec: "product_id_spec_";
13
+ readonly warehouse: "warehouse_id_";
14
+ readonly location: "location_id_";
15
+ readonly locationLb: "location_id__lb_";
16
+ readonly stock: "stock_num_";
17
+ readonly stocktake: "stocktake_num_";
18
+ readonly diff: "diff_num_";
19
+ readonly stocktakeStatus: "stocktake_status_";
20
+ readonly stocktakeStatusLb: "stocktake_status__lb_";
21
+ readonly matno: "material_no_";
22
+ readonly matcode: "product_code_";
23
+ readonly rowSource: "row_source_";
24
+ readonly locationAutoResolved: "_location_auto_resolved_";
25
+ readonly inventoryLocationIds: "_inventory_location_ids_";
26
+ };
27
+ export type InventoryFieldKey = (typeof F)[keyof typeof F];
28
+ /** 含 label 的身份字段组 */
29
+ export declare const BATCH_IDENTITY: readonly ["production_identification_id_", "production_identification_id__lb_"];
30
+ export declare const PRODUCT_IDENTITY: readonly ["product_id_", "product_id__lb_"];
31
+ export declare const PRODUCT_DESC: readonly ["product_id_name_", "product_id_code_", "product_id_spec_"];
32
+ export declare const LOCATION_FIELDS: readonly ["location_id_", "location_id__lb_"];
33
+ export declare const STOCK_FIELDS: readonly ["stock_num_", "stocktake_num_"];
34
+ /** remoteSync 触发字段(含仅触发、不入请求的库位) */
35
+ export declare const INVENTORY_IDENTITY_FIELDS: readonly ["production_identification_id_", "warehouse_id_", "location_id_", "product_id_"];
36
+ /** remoteSync 请求体字段 */
37
+ export declare const INVENTORY_REMOTE_SYNC_REQUEST_FIELDS: readonly ["production_identification_id_", "warehouse_id_", "product_id_", "material_no_", "product_code_"];
38
+ /** remoteSync 仅触发、排除出请求的字段 */
39
+ export declare const INVENTORY_REMOTE_SYNC_EXCLUDE_REQUEST_FIELDS: readonly ["location_id_"];
40
+ /** remoteSync 成功回写的基础字段(不含库位/库存,由 resolveApply 决定) */
41
+ export declare const INVENTORY_INFO_APPLY_FIELDS: readonly ["production_identification_id_", "product_id_", "product_id_name_", "product_id_code_", "product_id_spec_", "warehouse_id_"];
42
+ /** remoteSync 查无数据时清空的字段 */
43
+ export declare const INVENTORY_INFO_CLEAR_FIELDS: readonly ["production_identification_id_", "production_identification_id__lb_", "product_id_", "product_id__lb_", "product_id_name_", "product_id_code_", "product_id_spec_", "location_id_", "location_id__lb_", "stock_num_", "stocktake_num_"];
44
+ /** 行变更 handler:批次清空 / 切换时的字段集 */
45
+ export declare const CLEAR_ON_BATCH_EMPTY: readonly ["product_id_", "product_id__lb_", "product_id_name_", "product_id_code_", "product_id_spec_", "location_id_", "location_id__lb_", "stock_num_", "stocktake_num_"];
46
+ export declare const CLEAR_ON_BATCH_SWITCH: readonly ["location_id_", "location_id__lb_", "stock_num_", "stocktake_num_"];
47
+ /** 行变更 handler:物料清空 / 切换时的字段集 */
48
+ export declare const CLEAR_ON_PRODUCT_EMPTY: readonly ["production_identification_id_", "production_identification_id__lb_", "product_id_name_", "product_id_code_", "product_id_spec_", "location_id_", "location_id__lb_", "stock_num_", "stocktake_num_"];
49
+ export declare const CLEAR_ON_PRODUCT_SWITCH: readonly ["production_identification_id_", "production_identification_id__lb_", "location_id_", "location_id__lb_", "stock_num_", "stocktake_num_"];
50
+ /** runtimeRules:始终只读的信息字段 */
51
+ export declare const READONLY_INFO_FIELDS: readonly ["product_id_name_", "product_id_code_", "product_id_spec_", "warehouse_id_", "stock_num_", "diff_num_", "stocktake_status_"];
52
+ /** auto 行只读的可选字段 */
53
+ export declare const AUTO_LOAD_READONLY_SELECT_FIELDS: readonly ["product_id_", "production_identification_id_", "location_id_"];
54
+ /** scan 行只读:物料/批次;库位待选时可编辑,单库位自动解析后走 _location_auto_resolved_ 只读 */
55
+ export declare const SCAN_READONLY_SELECT_FIELDS: readonly ["product_id_", "production_identification_id_"];
56
+ /** rowHandlers:盘点衍生字段监听 */
57
+ export declare const STOCKTAKE_DERIVED_WATCH_FIELDS: readonly ["stocktake_num_", "stock_num_"];
58
+ /** 按批次+物料+仓库分组 */
59
+ export declare const WAREHOUSE_IDENTITY_GROUP_KEYS: readonly ["production_identification_id_", "product_id_", "warehouse_id_"];
60
+ /** 扫码合并键(含库位) */
61
+ export declare const SCAN_MERGE_GROUP_KEYS: readonly ["production_identification_id_", "product_id_", "warehouse_id_", "location_id_"];
62
+ /** 库存唯一标识基础字段 */
63
+ export declare const INVENTORY_BASE_FIELDS: readonly ["production_identification_id_", "product_id_", "product_id_name_", "product_id_code_", "product_id_spec_", "warehouse_id_"];
@@ -0,0 +1,2 @@
1
+ import { BusinessFieldProfile } from '../../../../types';
2
+ export declare const fields: BusinessFieldProfile[];
@@ -1,3 +1,3 @@
1
- import { BusinessSubTableProfile } from '../../types';
1
+ import { BusinessSubTableProfile } from '../../../../types';
2
2
  export declare const profile: BusinessSubTableProfile;
3
3
  export { profile as warehouseInventoryProfile };
@@ -0,0 +1,3 @@
1
+ export * from './stocktake-calc';
2
+ export * from './warehouse-context';
3
+ export * from './scan-config';
@@ -0,0 +1,9 @@
1
+ import { RemoteSyncApplyContext, RemoteSyncApplyResult } from '../../../../runtime/runtime-handlers';
2
+ /**
3
+ * 盘点表 remoteSync 回写策略:
4
+ * - 页面无库位字段:groupBy 累加库存
5
+ * - 1 条:自动写入库位 + 库存,库位标记为自动解析(只读)
6
+ * - 多条且未选库位:只写基础信息,清空库位/库存,记录候选库位
7
+ * - 多条且用户已选库位:按库位在返回列表中匹配,只补库存,不清库位
8
+ */
9
+ export declare function resolveWarehouseInventoryRemoteSync(records: Record<string, unknown>[], ctx: RemoteSyncApplyContext): RemoteSyncApplyResult;
@@ -0,0 +1,22 @@
1
+ import { Doc } from '../../../../../../core';
2
+ /**
3
+ * 物料批次选择 / 清空
4
+ *
5
+ * 选择批次 → 清库位 + 库存/盘点数,等 remoteSync 重填
6
+ * 清空批次 → 清物料信息 + 库位 + 库存/盘点数 → 立即重算衍生字段
7
+ */
8
+ export declare function handleProductionIdentificationIdChange(doc: Doc, subFieldKey: string, rowIndex: number): void;
9
+ /**
10
+ * 物料切换 / 清空
11
+ *
12
+ * 切换物料 → 清批次 + 库位 + 库存/盘点数
13
+ * 清空物料 → 清批次 + 物料描述 + 库位 + 库存/盘点数 → 立即重算衍生字段
14
+ */
15
+ export declare function handleProductIdChange(doc: Doc, subFieldKey: string, rowIndex: number): void;
16
+ /**
17
+ * 库位切换 / 清空
18
+ *
19
+ * 切换库位 → 由 remoteSync 自动重填 stock_num_ 并触发 afterApply(stocktake-derived)
20
+ * 清空库位 → 清库存数 → 立即重算衍生字段
21
+ */
22
+ export declare function handleLocationChange(doc: Doc, subFieldKey: string, rowIndex: number): void;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * 扫码盘点数量写入策略
3
+ *
4
+ * - once-per-scan:本次扫码仅第一个命中行写入盘点数量
5
+ * - once-per-row:不同命中行分别写入盘点数量;同一行被多条明细重复命中时只写一次
6
+ */
7
+ export type ScanQtyAssignStrategy = 'once-per-scan' | 'once-per-row';
8
+ /** 扫码实盘数量调整方向 */
9
+ export type WarehouseInventoryScanAdjustType = 'add' | 'minus';
10
+ /** 扫码弹窗回调入参 */
11
+ export interface WarehouseInventoryScanInput {
12
+ barcode: string;
13
+ type: WarehouseInventoryScanAdjustType;
14
+ }
15
+ export declare const SCAN_QTY_ASSIGN_STRATEGY: ScanQtyAssignStrategy;
16
+ export declare function shouldAssignScanQty(options: {
17
+ strategy: ScanQtyAssignStrategy;
18
+ assignScanQty: boolean;
19
+ scanQty: unknown;
20
+ rowIndex: number;
21
+ qtyAssignedOnScan: boolean;
22
+ qtyAssignedRowIndexes: ReadonlySet<number>;
23
+ }): boolean;
24
+ export declare function getScanQtySkipReason(options: {
25
+ strategy: ScanQtyAssignStrategy;
26
+ assignScanQty: boolean;
27
+ scanQty: unknown;
28
+ rowIndex: number;
29
+ qtyAssignedOnScan: boolean;
30
+ qtyAssignedRowIndexes: ReadonlySet<number>;
31
+ }): string | undefined;
@@ -0,0 +1,72 @@
1
+ import { Doc } from '../../../../../../core';
2
+ import { StocktakeStatusKey, IWarehouseInventoryRow } from '../../../../../../types/warehouse-inventory.type';
3
+ import { WarehouseInventoryScanAdjustType } from './scan-config';
4
+ /** 盘点状态 key 对应展示文案 */
5
+ export declare function getStocktakeStatusLabel(key: StocktakeStatusKey): string;
6
+ /** 计算差异数量 */
7
+ export declare function calcDiffNum(stocktakeNum?: number | null, stockNum?: number | null): number | undefined;
8
+ /** 根据实盘数量与库存数量计算盘点状态 key */
9
+ export declare function calcStocktakeStatus(stocktakeNum?: number | null, stockNum?: number | null): StocktakeStatusKey;
10
+ /** 刷新单行盘点衍生字段 */
11
+ export declare function refreshStocktakeDerivedFields(doc: Doc, subFieldKey: string, rowIndex: number): void;
12
+ /** 按批次+物料+仓库将接口明细拆成多组(扫码可能一次返回多种物料) */
13
+ export declare function groupRecordsByInventoryIdentity(records: Record<string, unknown>[]): Record<string, unknown>[][];
14
+ /**
15
+ * 扫码记录处理结果
16
+ * @property kind='accumulate' - 匹配到已有盘点行,执行数量累加
17
+ * @property kind='skip-location-not-selected' - 因未选择仓位而跳过处理
18
+ * @property kind='unprocessed' - 未匹配到已有盘点行,等待后续新增行处理
19
+ */
20
+ export type ScanRecordDisposition = {
21
+ kind: 'accumulate';
22
+ index: number;
23
+ } | {
24
+ kind: 'skip-location-not-selected';
25
+ } | {
26
+ kind: 'unprocessed';
27
+ };
28
+ /**
29
+ * 判断单条扫码明细如何处理:
30
+ * - 已有相同行且库位已选(或无库位字段)→ 累加条码 qty 到实盘数
31
+ * - 已有相同物料行但库位未选 → 跳过
32
+ * - 否则 → 待新建行
33
+ */
34
+ export declare function dispositionScanRecord(record: Record<string, unknown>, visibleRows: IWarehouseInventoryRow[], groupByWarehouse: boolean): ScanRecordDisposition;
35
+ /**
36
+ * 待新建明细:先按批次+物料+仓库分组,取第一组再组装 resolve 入参
37
+ * - 页面无库位:该组全部明细 groupBy 累加
38
+ * - 页面有库位 + 组内多条:整组走多库位候选(不自动填库位)
39
+ * - 页面有库位 + 组内单条:自动填库位
40
+ */
41
+ export declare function pickRecordsForNewScanRow(unprocessed: Record<string, unknown>[], groupByWarehouse: boolean): {
42
+ records: Record<string, unknown>[];
43
+ productGroupCount: number;
44
+ };
45
+ /** 盘点数量下限 */
46
+ export declare const MIN_STOCKTAKE_NUM = 0;
47
+ /** 条码未解析到数量时的默认扫码数量 */
48
+ export declare const DEFAULT_SCAN_QTY = 1;
49
+ export interface ResolveStocktakeQtyOptions {
50
+ /** 空值或无效数字时的回落;未指定则返回 null */
51
+ fallback?: number;
52
+ }
53
+ /** 解析盘点/扫码数量 */
54
+ export declare function resolveStocktakeQty(value: unknown, options?: ResolveStocktakeQtyOptions): number | null;
55
+ /** 按条码 qty 与调整方向更新盘点数量;原值为空时视为 0 */
56
+ export declare function applyScanQtyToStocktake(current: unknown, scanQty: unknown, type?: WarehouseInventoryScanAdjustType): unknown;
57
+ /** 扫码命中已有行:按 add/minus 调整 stocktake_num_ */
58
+ export declare function accumulateScanQtyOnRow(visibleRows: IWarehouseInventoryRow[], rowIndex: number, scanQty: unknown, type?: WarehouseInventoryScanAdjustType): {
59
+ rows: IWarehouseInventoryRow[];
60
+ mergedIndex: number;
61
+ };
62
+ /** 未处理明细新建行 */
63
+ export declare function appendScanRowFromResolve(visibleRows: IWarehouseInventoryRow[], rowData: Record<string, unknown>): {
64
+ rows: IWarehouseInventoryRow[];
65
+ mergedIndex: number;
66
+ };
67
+ /**
68
+ * 将明细转为盘点行
69
+ * - 页面有库位字段:不 groupBy,一条明细一行
70
+ * - 页面无库位字段:按 批次 + 物料 + 仓库 groupBy,stock_num_ 累加
71
+ */
72
+ export declare function groupInventoryToStocktakeRows(records: Record<string, unknown>[], groupByWarehouse: boolean): IWarehouseInventoryRow[];
@@ -0,0 +1,3 @@
1
+ import { Doc } from '../../../../../../core';
2
+ /** 读取盘点仓库 ID:优先 paramsConfig.warehouseId,兜底主表 warehouse_id_ */
3
+ export declare function resolveMainWarehouseId(doc: Doc): unknown;
@@ -1,3 +1,3 @@
1
- import { BusinessSubTableProfile } from '../../types';
1
+ import { BusinessSubTableProfile } from '../../../../types';
2
2
  export declare const profile: BusinessSubTableProfile;
3
3
  export { profile as warehouseTransferProfile };
@@ -1,3 +1,3 @@
1
- import { DataTableProfile } from '../../types';
1
+ import { DataTableProfile } from '../../../types';
2
2
  export declare const profile: DataTableProfile;
3
3
  export { profile as dynamicTableProfile };
@@ -1,3 +1,3 @@
1
- import { DataTableProfile } from '../../types';
1
+ import { DataTableProfile } from '../../../types';
2
2
  export declare const profile: DataTableProfile;
3
3
  export { profile as fixedTableProfile };
@@ -1,3 +1,3 @@
1
- import { DataTableProfile } from '../../types';
1
+ import { DataTableProfile } from '../../../types';
2
2
  export declare const profile: DataTableProfile;
3
3
  export { profile as twoDTableProfile };
@@ -1,5 +1,5 @@
1
- import { FieldMeta } from '../../../capabilities/model-field-runtime';
2
- import { WidgetMeta } from '../../../core';
1
+ import { FieldMeta } from '../../../../capabilities/model-field-runtime';
2
+ import { WidgetMeta } from '../../../../core';
3
3
  interface ApplyFieldProfileOptions {
4
4
  /** 子表分区路径,如 f_crkmx 或 f_ewb:f_link */
5
5
  parentFieldKey?: string;
@@ -0,0 +1,3 @@
1
+ import { SubTableLayoutType } from '../../../../core/model/document/wtcRegionRef';
2
+ import { RepeatingWidgetPropsMeta } from '../../../../core/model/logic/subtable/repeating/RepeatingRegion';
3
+ export declare function getDefaultRepeatingWidgetProps(layoutType?: SubTableLayoutType): RepeatingWidgetPropsMeta;
@@ -1,6 +1,6 @@
1
- import { DocModel } from '../../../core/model/DocModel';
2
- import { FieldMeta } from '../../../capabilities/model-field-runtime';
3
- import { SubTableCommand } from '../types';
1
+ import { DocModel } from '../../../../core/model/DocModel';
2
+ import { FieldMeta } from '../../../../capabilities/model-field-runtime';
3
+ import { SubTableCommand } from '../../types';
4
4
  /**
5
5
  * 从当前文档收集已被子表占用的 master_slave field key
6
6
  */
@@ -18,5 +18,5 @@ interface ConfirmSubTableCreateOptions {
18
18
  */
19
19
  export declare function confirmSubTableCreate(options: ConfirmSubTableCreateOptions): SubTableCommand;
20
20
  /** 解析 Ribbon action 对应的表 Profile */
21
- export declare function resolveSubTableProfile(ribbonAction: string): import('..').TableProfile | undefined;
21
+ export declare function resolveSubTableProfile(ribbonAction: string): import('../..').TableProfile | undefined;
22
22
  export {};
@@ -0,0 +1,2 @@
1
+ /** 按 layout 类型获取展示名称(面板标题、设置项等) */
2
+ export declare function getTableLabelByLayoutType(layoutType: string): string;
@@ -0,0 +1,8 @@
1
+ import { DropdownOption, DropdownOptionGroup } from '../../../base';
2
+ /** 表头(挂在数据表 Ribbon 首位) */
3
+ export declare const TABLE_HEADER_RIBBON_OPTION: DropdownOption;
4
+ /** 生成 Ribbon「数据表」「业务表」下拉选项 */
5
+ export declare function getRibbonTableOptions(): {
6
+ dataTables: DropdownOption[];
7
+ businessTables: DropdownOptionGroup[];
8
+ };