@gx-design-vue/pro-table 0.2.0-alpha.2 → 0.2.0-alpha.20

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 (136) hide show
  1. package/dist/ProTable.d.ts +14 -493
  2. package/dist/ProTable.js +844 -512
  3. package/dist/components/ScrollBar/Bar.d.ts +79 -0
  4. package/dist/components/ScrollBar/Bar.js +84 -0
  5. package/dist/components/ScrollBar/Thumb.d.ts +50 -0
  6. package/dist/components/ScrollBar/{Thumb/index.js → Thumb.js} +67 -58
  7. package/dist/components/ScrollBar/context.d.ts +3 -4
  8. package/dist/components/ScrollBar/context.js +3 -5
  9. package/dist/components/ScrollBar/util.d.ts +6 -5
  10. package/dist/components/ScrollBar/util.js +1 -14
  11. package/dist/components/SearchForm/CollapseToggle.d.ts +53 -0
  12. package/dist/components/SearchForm/CollapseToggle.js +47 -0
  13. package/dist/components/SearchForm/FormItemContainer.d.ts +73 -0
  14. package/dist/components/SearchForm/FormItemContainer.js +225 -0
  15. package/dist/components/SearchForm/FormItemWrapper.d.ts +80 -0
  16. package/dist/components/SearchForm/FormItemWrapper.js +62 -0
  17. package/dist/components/SearchForm/SearchForm.d.ts +128 -0
  18. package/dist/components/SearchForm/SearchForm.js +319 -0
  19. package/dist/components/SearchForm/index.d.ts +2 -0
  20. package/dist/components/SearchForm/index.js +2 -0
  21. package/dist/components/Toolbar/FullscreenIcon.d.ts +24 -0
  22. package/dist/components/Toolbar/FullscreenIcon.js +22 -0
  23. package/dist/components/Toolbar/ListToolBar.d.ts +109 -0
  24. package/dist/components/Toolbar/ListToolBar.js +101 -0
  25. package/dist/components/Toolbar/index.d.ts +101 -0
  26. package/dist/components/Toolbar/index.js +101 -0
  27. package/dist/components/Toolbar/style.d.ts +8 -0
  28. package/dist/components/{ListToolBar → Toolbar}/style.js +32 -27
  29. package/dist/context/TableContext.d.ts +15 -27
  30. package/dist/context/TableContext.js +3 -5
  31. package/dist/hooks/index.d.ts +16 -0
  32. package/dist/hooks/index.js +16 -0
  33. package/dist/hooks/useBreakpoints.d.ts +13 -0
  34. package/dist/hooks/useBreakpoints.js +65 -0
  35. package/dist/hooks/useCellRender.d.ts +13 -0
  36. package/dist/hooks/useCellRender.js +28 -0
  37. package/dist/hooks/useColumnResize.d.ts +29 -0
  38. package/dist/hooks/useColumnResize.js +110 -0
  39. package/dist/hooks/useColumns.d.ts +35 -24
  40. package/dist/hooks/useColumns.js +89 -58
  41. package/dist/hooks/useFetchData.d.ts +42 -65
  42. package/dist/hooks/useFetchData.js +160 -176
  43. package/dist/hooks/useFitPage.d.ts +19 -0
  44. package/dist/hooks/useFitPage.js +90 -0
  45. package/dist/hooks/useKeepAliveReload.d.ts +21 -0
  46. package/dist/hooks/useKeepAliveReload.js +24 -0
  47. package/dist/hooks/useLoading.d.ts +18 -7
  48. package/dist/hooks/useLoading.js +27 -11
  49. package/dist/hooks/usePagination.d.ts +10 -7
  50. package/dist/hooks/usePagination.js +38 -29
  51. package/dist/hooks/useRequestOptions.d.ts +18 -0
  52. package/dist/hooks/useRequestOptions.js +39 -0
  53. package/dist/hooks/useRowSelection.d.ts +27 -15
  54. package/dist/hooks/useRowSelection.js +93 -80
  55. package/dist/hooks/useTable.d.ts +35 -77
  56. package/dist/hooks/useTable.js +76 -49
  57. package/dist/hooks/useTableForm.d.ts +17 -82
  58. package/dist/hooks/useTableForm.js +137 -52
  59. package/dist/hooks/useTableScroll.d.ts +33 -31
  60. package/dist/hooks/useTableScroll.js +71 -28
  61. package/dist/hooks/useTableSize.d.ts +17 -7
  62. package/dist/hooks/useTableSize.js +21 -9
  63. package/dist/index.d.ts +10 -7
  64. package/dist/index.js +9 -4
  65. package/dist/interface.d.ts +499 -0
  66. package/dist/interface.js +1 -0
  67. package/dist/pro-table.esm.js +3251 -3909
  68. package/dist/pro-table.js +1 -1
  69. package/dist/style/fit-page.d.ts +4 -2
  70. package/dist/style/fit-page.js +10 -5
  71. package/dist/style/index.d.ts +3 -7
  72. package/dist/style/index.js +34 -76
  73. package/dist/style/list.d.ts +4 -2
  74. package/dist/style/list.js +2 -12
  75. package/dist/style/resizable.d.ts +8 -0
  76. package/dist/style/resizable.js +18 -0
  77. package/dist/style/scroll.d.ts +4 -2
  78. package/dist/style/scroll.js +9 -9
  79. package/dist/style/search.d.ts +8 -0
  80. package/dist/{components/Form/style.js → style/search.js} +22 -9
  81. package/dist/theme/augment.d.ts +8 -0
  82. package/dist/theme/augment.js +1 -0
  83. package/dist/theme/interface/components.d.ts +8 -0
  84. package/dist/theme/interface/components.js +1 -0
  85. package/dist/utils/dateFormat.d.ts +9 -0
  86. package/dist/utils/dateFormat.js +29 -0
  87. package/dist/utils/formConstants.d.ts +9 -0
  88. package/dist/utils/formConstants.js +29 -0
  89. package/dist/utils/valueFormat.d.ts +9 -0
  90. package/dist/utils/valueFormat.js +27 -0
  91. package/package.json +21 -11
  92. package/dist/components/Form/components/RequestSelect.d.ts +0 -50
  93. package/dist/components/Form/components/RequestSelect.js +0 -58
  94. package/dist/components/Form/hooks/useForm.d.ts +0 -11
  95. package/dist/components/Form/hooks/useForm.js +0 -32
  96. package/dist/components/Form/index.d.ts +0 -33
  97. package/dist/components/Form/index.js +0 -479
  98. package/dist/components/Form/style.d.ts +0 -6
  99. package/dist/components/Form/utils/config.d.ts +0 -9
  100. package/dist/components/Form/utils/config.js +0 -30
  101. package/dist/components/Form/utils/dateFormat.d.ts +0 -22
  102. package/dist/components/Form/utils/dateFormat.js +0 -45
  103. package/dist/components/ListToolBar/index.d.ts +0 -60
  104. package/dist/components/ListToolBar/index.js +0 -123
  105. package/dist/components/ListToolBar/style.d.ts +0 -6
  106. package/dist/components/ScrollBar/Bar/index.d.ts +0 -49
  107. package/dist/components/ScrollBar/Bar/index.js +0 -71
  108. package/dist/components/ScrollBar/Bar/props.d.ts +0 -25
  109. package/dist/components/ScrollBar/Bar/props.js +0 -18
  110. package/dist/components/ScrollBar/Thumb/index.d.ts +0 -40
  111. package/dist/components/ScrollBar/Thumb/props.d.ts +0 -20
  112. package/dist/components/ScrollBar/Thumb/props.js +0 -18
  113. package/dist/components/TableCell/index.d.ts +0 -37
  114. package/dist/components/TableCell/index.js +0 -72
  115. package/dist/components/ToolBar/FullscreenIcon.d.ts +0 -7
  116. package/dist/components/ToolBar/FullscreenIcon.js +0 -14
  117. package/dist/components/ToolBar/index.d.ts +0 -34
  118. package/dist/components/ToolBar/index.js +0 -100
  119. package/dist/hooks/tryOnActivated.d.ts +0 -6
  120. package/dist/hooks/tryOnActivated.js +0 -14
  121. package/dist/hooks/useDebounceFn.d.ts +0 -8
  122. package/dist/hooks/useDebounceFn.js +0 -34
  123. package/dist/hooks/useScrollArea.d.ts +0 -24
  124. package/dist/hooks/useScrollArea.js +0 -104
  125. package/dist/props.d.ts +0 -340
  126. package/dist/props.js +0 -251
  127. package/dist/types/ColumnTypings.d.ts +0 -129
  128. package/dist/types/ColumnTypings.js +0 -1
  129. package/dist/types/SlotsTypings.d.ts +0 -63
  130. package/dist/types/SlotsTypings.js +0 -13
  131. package/dist/types/TableTypings.d.ts +0 -359
  132. package/dist/types/TableTypings.js +0 -1
  133. package/dist/types/index.d.ts +0 -9
  134. package/dist/types/index.js +0 -1
  135. package/dist/utils/utils.d.ts +0 -10
  136. package/dist/utils/utils.js +0 -91
@@ -1,10 +1,20 @@
1
- import { Ref } from "vue";
2
- import { SizeType } from "@gx-design-vue/pro-utils";
1
+ import { ProTableSizeType } from "../interface.js";
2
+ import { ComputedRef } from "vue";
3
3
 
4
4
  //#region src/hooks/useTableSize.d.ts
5
- declare function useTableSize(options: {
6
- size: Ref<SizeType>;
7
- onChange: (value: SizeType) => void;
8
- }): [Ref<SizeType>, (value: SizeType) => void];
5
+ interface UseTableSizeOptions {
6
+ size: ComputedRef<ProTableSizeType | undefined>;
7
+ onChange?: (size: ProTableSizeType) => void;
8
+ }
9
+ interface UseTableSizeReturn {
10
+ tableSize: ComputedRef<ProTableSizeType>;
11
+ setTableSize: (size: ProTableSizeType) => void;
12
+ }
13
+ /**
14
+ * Table 尺寸状态管理。
15
+ * 纯 computed 实现,无 ref + watch 链。
16
+ * setTableSize 校验合法值后才触发 onChange 回调。
17
+ */
18
+ declare function useTableSize(options: UseTableSizeOptions): UseTableSizeReturn;
9
19
  //#endregion
10
- export { useTableSize };
20
+ export { UseTableSizeOptions, UseTableSizeReturn, useTableSize };
@@ -1,14 +1,26 @@
1
- import { ref, watch } from "vue";
2
-
1
+ import { computed } from "vue";
3
2
  //#region src/hooks/useTableSize.ts
3
+ const VALID_SIZES = /* @__PURE__ */ new Set([
4
+ "small",
5
+ "medium",
6
+ "middle",
7
+ "large"
8
+ ]);
9
+ const DEFAULT_SIZE = "middle";
10
+ /**
11
+ * Table 尺寸状态管理。
12
+ * 纯 computed 实现,无 ref + watch 链。
13
+ * setTableSize 校验合法值后才触发 onChange 回调。
14
+ */
4
15
  function useTableSize(options) {
5
- const tableSize = ref(options.size.value || "middle");
6
- watch(() => options.size.value, (value) => tableSize.value = value);
7
- function setTableSize(value) {
8
- tableSize.value = value || tableSize.value;
16
+ const tableSize = computed(() => options.size.value ?? DEFAULT_SIZE);
17
+ function setTableSize(size) {
18
+ if (VALID_SIZES.has(size)) options.onChange?.(size);
9
19
  }
10
- return [tableSize, setTableSize];
20
+ return {
21
+ tableSize,
22
+ setTableSize
23
+ };
11
24
  }
12
-
13
25
  //#endregion
14
- export { useTableSize };
26
+ export { useTableSize };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,10 @@
1
- import { ProColumnType, ProColumnsType, ProFieldValueType, ProSearchMap } from "./types/ColumnTypings.js";
2
- import { CustomRenderResult, ProTableBodyCellProps, TableSlots } from "./types/SlotsTypings.js";
3
- import { FormConfig, OptionConfig, PageState, ProCoreActionType, ProCoreFormType, ProTableFetchParams, ProTablePaginationConfig, ProTableProps, ProTableRef, RequestConfig, RequestFunction } from "./types/TableTypings.js";
4
- import { BaseTableProps, proTableProps } from "./props.js";
5
- import { BaseTableState, ProTableState, UseTableReturn, useTable } from "./hooks/useTable.js";
6
- import ProTable from "./ProTable.js";
7
- export { type BaseTableProps, BaseTableState, type CustomRenderResult, type FormConfig, ProTable as GProTable, type OptionConfig, type PageState, type ProColumnType, type ProColumnsType, type ProCoreActionType, type ProCoreFormType, type ProFieldValueType, type ProSearchMap, type ProTableBodyCellProps, type ProTableFetchParams, type ProTablePaginationConfig, type ProTableProps, type ProTableRef, ProTableState, type RequestConfig, type RequestFunction, type TableSlots, UseTableReturn, proTableProps, useTable };
1
+ import { BeforeSearchSubmit, ColConfig, ColumnWithKeyOrDataIndex, CustomDataFn, CustomDataRender, CustomRenderResult, DefaultProColumn, DefaultProColumnWithKeyOrDataIndex, DefaultRender, FormConfig, OperateRowProps, PageItemFn, PageItemRender, PageState, ProColumn, ProColumnType, ProColumnsValueType, ProCoreActionType, ProCoreFormType, ProFieldValueFormat, ProFieldValueType, ProSchemaValueEnumType, ProSearchMap, ProTableBodyCellProps, ProTableClassNamesType, ProTableCustomProps, ProTableEmits, ProTableFetchParams, ProTableIndexColumn, ProTablePagination, ProTablePaginationConfig, ProTableProps, ProTableRef, ProTableScrollPolicy, ProTableSizeType, ProTableSlots, ProTableStylesType, RequestConfig, RequestData, RequestFunction, RowSelectionActions, TableSemanticName, TableSorterRecord, ToolbarOptionConfig, ToolbarPlacement } from "./interface.js";
2
+ import _default from "./ProTable.js";
3
+ import { useInjectTableContext } from "./context/TableContext.js";
4
+ import { UseProBreakpointsReturn, useProBreakpoints } from "./hooks/useBreakpoints.js";
5
+ import { FetchDataAction, FetchDataConfig, useFetchData } from "./hooks/useFetchData.js";
6
+ import { usePagination } from "./hooks/usePagination.js";
7
+ import { UseRequestOptionsParams, UseRequestOptionsReturn, useRequestOptions } from "./hooks/useRequestOptions.js";
8
+ import { UseTableOptions, UseTableReturn, useTable } from "./hooks/useTable.js";
9
+ import { UseTableFormOptions, UseTableFormReturn, useTableForm } from "./hooks/useTableForm.js";
10
+ export { BeforeSearchSubmit, ColConfig, ColumnWithKeyOrDataIndex, CustomDataFn, CustomDataRender, CustomRenderResult, DefaultProColumn, DefaultProColumnWithKeyOrDataIndex, DefaultRender, type FetchDataAction, type FetchDataConfig, FormConfig, _default as GProTable, OperateRowProps, PageItemFn, PageItemRender, PageState, ProColumn, ProColumnType, ProColumnsValueType, ProCoreActionType, ProCoreFormType, ProFieldValueFormat, ProFieldValueType, ProSchemaValueEnumType, ProSearchMap, ProTableBodyCellProps, ProTableClassNamesType, ProTableCustomProps, ProTableEmits, ProTableFetchParams, ProTableIndexColumn, ProTablePagination, ProTablePaginationConfig, ProTableProps, ProTableRef, ProTableScrollPolicy, ProTableSizeType, ProTableSlots, ProTableStylesType, RequestConfig, RequestData, RequestFunction, RowSelectionActions, TableSemanticName, TableSorterRecord, ToolbarOptionConfig, ToolbarPlacement, type UseProBreakpointsReturn, type UseRequestOptionsParams, type UseRequestOptionsReturn, type UseTableFormOptions, type UseTableFormReturn, type UseTableOptions, type UseTableReturn, useFetchData, useInjectTableContext, usePagination, useProBreakpoints, useRequestOptions, useTable, useTableForm };
package/dist/index.js CHANGED
@@ -1,5 +1,10 @@
1
- import { proTableProps } from "./props.js";
2
- import ProTable_default from "./ProTable.js";
1
+ import { useProBreakpoints } from "./hooks/useBreakpoints.js";
2
+ import { useRequestOptions } from "./hooks/useRequestOptions.js";
3
+ import { useInjectTableContext } from "./context/TableContext.js";
4
+ import { useFetchData } from "./hooks/useFetchData.js";
5
+ import { usePagination } from "./hooks/usePagination.js";
3
6
  import { useTable } from "./hooks/useTable.js";
4
-
5
- export { ProTable_default as GProTable, proTableProps, useTable };
7
+ import { useTableForm } from "./hooks/useTableForm.js";
8
+ import "./hooks/index.js";
9
+ import ForwardProTable from "./ProTable.js";
10
+ export { ForwardProTable as GProTable, useFetchData, useInjectTableContext, usePagination, useProBreakpoints, useRequestOptions, useTable, useTableForm };
@@ -0,0 +1,499 @@
1
+ import { CSSProperties, ComputedRef, Ref } from "vue";
2
+ import { AlignType, Breakpoint, CustomRender, RecordType, SemanticClassNames, SemanticStyles, WithFalse } from "@gx-design-vue/pro-utils";
3
+ import { SpinProps, TableEmits, TableProps, TableSlots, TooltipProps } from "antdv-next";
4
+ import { ColumnType, FilterValue, SorterResult, TableCurrentDataSource, TablePaginationConfig } from "antdv-next/dist/table/interface";
5
+
6
+ //#region src/interface.d.ts
7
+ interface CustomRenderResult<T = RecordType> {
8
+ currentData: T[];
9
+ dataSource: T[];
10
+ }
11
+ type PageItemFn = (opt: {
12
+ page: number;
13
+ type: 'page' | 'prev' | 'next' | 'jump-prev' | 'jump-next';
14
+ originalElement: any;
15
+ }) => CustomRender;
16
+ type PageItemRender = WithFalse<PageItemFn>;
17
+ type CustomDataFn<T = RecordType> = (params: CustomRenderResult<T>) => CustomRender;
18
+ type DefaultRender = WithFalse<CustomRender>;
19
+ type CustomDataRender<T = RecordType> = WithFalse<CustomDataFn<T>>;
20
+ type ToolbarPlacement = 'left' | 'right';
21
+ interface ToolbarOptionConfig {
22
+ reload?: boolean | ((onClick: () => void) => CustomRender);
23
+ fullScreen?: boolean | (() => Promise<void>);
24
+ }
25
+ type ColConfig = Partial<Record<Breakpoint, number>>;
26
+ interface FormConfig {
27
+ className?: string;
28
+ /**
29
+ * actions 表单动作的配置参数
30
+ */
31
+ actions?: {
32
+ /**
33
+ * reset 是否展示重置按钮
34
+ */
35
+ reset?: boolean;
36
+ /**
37
+ * resetReload 重置后是否重新请求(仅在 autoRequest 为 false 时生效,默认为 true)
38
+ */
39
+ resetReload?: boolean;
40
+ /**
41
+ * searchText 搜索按钮文案
42
+ */
43
+ searchText?: string;
44
+ /**
45
+ * resetText 重置按钮文案
46
+ */
47
+ resetText?: string;
48
+ };
49
+ /**
50
+ * collapsed 收起状态
51
+ */
52
+ collapsed?: boolean;
53
+ /**
54
+ * defaultCollapsed 默认收起状态
55
+ */
56
+ defaultCollapsed?: boolean;
57
+ /**
58
+ * autoRequest 表单搜索条件变化后自动请求request
59
+ */
60
+ autoRequest?: boolean;
61
+ /**
62
+ * collapseRender 展开收起自定义渲染
63
+ */
64
+ collapseRender?: WithFalse<(collapsed?: boolean) => CustomRender>;
65
+ /**
66
+ * span 支持断点('xxl' | 'xl' | 'lg' | 'md' | 'sm' | 'xs')一行展示几个 demo { xl: 4, lg: 3 }
67
+ */
68
+ span?: ColConfig;
69
+ /**
70
+ * breakpoint 断点配置支持写入具体宽度 一行展示几个(这里是指大于宽度生效),优先级比span要高 demo { 1440: 4 }
71
+ */
72
+ breakpoint?: Record<number, number>;
73
+ /**
74
+ * gap 每项表单间的间隔
75
+ */
76
+ gap?: number | string;
77
+ /**
78
+ * label 搜索表单的label配置参数
79
+ */
80
+ label?: {
81
+ /**
82
+ * label label与表单项之间的间隔:仅支持数字
83
+ */
84
+ gap?: number;
85
+ /**
86
+ * colon label与表单项之间的间否使用冒号间隔
87
+ */
88
+ colon?: boolean;
89
+ /**
90
+ * width label的宽度:支持数字和字符
91
+ */
92
+ width?: number | string;
93
+ /**
94
+ * align label在宽度内的对齐方式:'center' | 'left' | 'right'
95
+ */
96
+ align?: 'center' | 'left' | 'right';
97
+ };
98
+ }
99
+ type TableSorterRecord = SorterResult<RecordType>;
100
+ interface PageState {
101
+ current: number;
102
+ pageSize: number;
103
+ total?: number;
104
+ }
105
+ interface RequestData<T = any> {
106
+ data: T[] | undefined;
107
+ success?: boolean;
108
+ total?: number;
109
+ }
110
+ interface RequestConfig<T> {
111
+ params: T extends undefined ? PageState : PageState & Partial<T>;
112
+ sorter: TableSorterRecord[];
113
+ filter: Record<string, FilterValue | null>;
114
+ extra?: TableCurrentDataSource;
115
+ signal?: AbortSignal;
116
+ }
117
+ type RequestFunction<T = any, D = undefined> = (props: RequestConfig<D>) => Promise<Partial<RequestData<T>> | undefined>;
118
+ type BeforeSearchSubmit<D = undefined> = (props: RequestConfig<D>) => Promise<RequestConfig<D>['params']> | RequestConfig<D>['params'];
119
+ interface ProTableFetchParams<R = RecordType> {
120
+ params?: R;
121
+ filters?: Record<string, FilterValue | null>;
122
+ sorter?: SorterResult | SorterResult[];
123
+ pagination?: ProTablePagination;
124
+ removeKeys?: (string | number)[];
125
+ isPolling?: boolean;
126
+ extra?: TableCurrentDataSource;
127
+ }
128
+ interface OperateRowProps<T = RecordType> {
129
+ row?: Partial<T>;
130
+ key?: keyof T;
131
+ value?: any;
132
+ type?: 'update' | 'push' | 'delete' | 'unshift';
133
+ }
134
+ interface RowSelectionActions<T = RecordType> {
135
+ clear: () => void;
136
+ select: (record: T, selected: boolean) => void;
137
+ selectAll: (records: T[], selected: boolean) => void;
138
+ remove: (keys: (string | number)[]) => void;
139
+ sync: () => void;
140
+ }
141
+ interface ProCoreActionType<T = RecordType, R = RecordType> {
142
+ loading: Ref<boolean>;
143
+ dataSource: ComputedRef<T[]>;
144
+ pageInfo: PageState;
145
+ reload: (info?: ProTableFetchParams<R>) => void;
146
+ reloadAndReset: (options?: {
147
+ callBack?: () => void;
148
+ wait?: boolean;
149
+ }) => void;
150
+ setPagination: (pagination: ProTablePaginationConfig) => void;
151
+ setPageInfo: (pagination: ProTablePaginationConfig, filters?: Record<string, FilterValue | null>, sorter?: SorterResult | SorterResult[], extra?: TableCurrentDataSource) => void;
152
+ setTableDataList: (data: T[]) => void;
153
+ operateTableDataRow: (props: OperateRowProps<T>) => void;
154
+ setLoading: (loading: boolean) => void;
155
+ selectedKeys: ComputedRef<(string | number)[]>;
156
+ selectedItems: ComputedRef<T[]>;
157
+ rowsSelection: RowSelectionActions<T>;
158
+ }
159
+ /** form 查询表单实例 */
160
+ interface ProCoreFormType<R = RecordType> {
161
+ getFormSearch?: () => R;
162
+ getFormInnerState?: () => R;
163
+ restFormState?: (callback?: () => void) => void;
164
+ }
165
+ interface ProTableRef<T = RecordType, R = RecordType> {
166
+ formRef: () => ProCoreFormType<R>;
167
+ actionRef: () => ProCoreActionType<T, R>;
168
+ }
169
+ interface ProTablePaginationConfig extends TablePaginationConfig {
170
+ total?: number;
171
+ }
172
+ type ProTablePagination = ProTablePaginationConfig | false;
173
+ type TableSemanticName = 'root' | 'content' | 'search' | 'searchItem' | 'searchControl' | 'searchContent' | 'searchText' | 'searchButtons' | 'card' | 'toolbar' | 'toolbarAfter' | 'toolbarLeft' | 'toolbarRight' | 'toolbarTitle' | 'list' | 'listContent' | 'pagination' | 'table';
174
+ type ProTableStylesType = SemanticStyles<TableSemanticName>;
175
+ type ProTableClassNamesType = SemanticClassNames<TableSemanticName>;
176
+ /**
177
+ * @param text 文本框
178
+ * @param date 日期 YYYY-MM-DD
179
+ * @param dateMonth 月选择器
180
+ * @param dateRange 日期范围 YYYY-MM-DD[]
181
+ * @param time: 时间 HH:mm:ss
182
+ * @param select 下拉选择器
183
+ */
184
+ type ProFieldValueType = 'text' | 'number' | 'numberRange' | 'select' | 'treeSelect' | 'cascader' | 'date' | 'dateWeek' | 'dateQuarter' | 'dateMonth' | 'dateYear' | 'dateRange' | 'time';
185
+ /**
186
+ * @param text 文本框
187
+ * @param date 日期 YYYY-MM-DD
188
+ * @param dateMonth 月选择器
189
+ * @param dateRange 日期范围 YYYY-MM-DD[]
190
+ * @param time: 时间 HH:mm:ss
191
+ * @param select 下拉选择器
192
+ */
193
+ type ProFieldValueFormat = 'YYYY-MM-DD' | 'YYYY-MM' | 'YYYY-MM-DD HH:mm:ss' | 'HH:mm:ss';
194
+ interface ProSchemaValueEnumType {
195
+ /** @name 演示的文案 */
196
+ label: any;
197
+ /** @name 演示的value值 */
198
+ value: any;
199
+ /** @name 是否禁用 */
200
+ disabled?: boolean;
201
+ [key: string]: any;
202
+ }
203
+ type ProSchemaValueType<ValueType> = (ValueType | ProFieldValueType);
204
+ interface ProSearchMap<ValueType = 'text', ParamsKey = string> {
205
+ name: ParamsKey;
206
+ order?: number;
207
+ /** 选择如何渲染相应的模式 */
208
+ valueType?: ProSchemaValueType<ValueType>;
209
+ /** valueType为date|dateMonth|dateRange|time生效 */
210
+ valueFormat?: ProFieldValueFormat;
211
+ placeholder?: string | string[];
212
+ /** valueType为select生效 */
213
+ allowClear?: boolean;
214
+ /** valueType为select生效 */
215
+ showSearch?: boolean;
216
+ /** valueType为date生效 */
217
+ showToday?: boolean;
218
+ /** valueType为dateRange生效 */
219
+ rangeStartName?: string;
220
+ /** valueType为dateRange生效 */
221
+ rangeEndName?: string;
222
+ /** valueType为time生效 */
223
+ use12Hours?: boolean;
224
+ /** valueType为select生效 */
225
+ loading?: boolean;
226
+ /** valueType为date、dateRange生效 */
227
+ showTime?: RecordType | boolean;
228
+ /** 搜索表单的默认值 */
229
+ initialValue?: any;
230
+ /** 针对select、treeselect、cascader取值的key */
231
+ valueKey?: string;
232
+ /** 远程查询数据 */
233
+ request?: {
234
+ fetch?: () => Promise<ProSchemaValueEnumType[]>;
235
+ manual?: boolean;
236
+ debounceTime?: number;
237
+ };
238
+ /** 查询表单label */
239
+ label?: string;
240
+ /** 查询表单label - 宽度 */
241
+ labelWidth?: string | number;
242
+ /** 查询表单label - 对齐方式 */
243
+ labelAlign?: 'center' | 'left' | 'right';
244
+ /** 表单的属性值(ant-design) */
245
+ field?: {
246
+ rules?: RegExp;
247
+ [key: string]: any;
248
+ };
249
+ /**
250
+ * 支持 object 和Map,Map 是支持其他基础类型作为 key
251
+ *
252
+ * @name 映射值的类型
253
+ */
254
+ valueEnum?: ProSchemaValueEnumType[];
255
+ }
256
+ type ProColumnsValueType = 'text' | 'link' | 'time' | 'dateMonth' | 'dateTime' | 'date' | {
257
+ node?: string;
258
+ class?: string;
259
+ attr?: string;
260
+ click?: () => void;
261
+ };
262
+ type LooseAutocomplete<T> = T | (string & {});
263
+ type DataIndex<T> = LooseAutocomplete<keyof T | 'action'>;
264
+ type ColumnWithKeyOrDataIndex<T = any[]> = {
265
+ key: DataIndex<T>;
266
+ dataIndex?: DataIndex<T>;
267
+ } | {
268
+ key?: DataIndex<T>;
269
+ dataIndex: DataIndex<T>;
270
+ };
271
+ interface DefaultProColumn {
272
+ uuid?: string | number;
273
+ align?: AlignType;
274
+ fixed?: boolean | 'right' | 'left' | 'start' | 'end';
275
+ width?: number | string;
276
+ }
277
+ type DefaultProColumnWithKeyOrDataIndex<T = any[]> = DefaultProColumn & ColumnWithKeyOrDataIndex<T>;
278
+ type ProColumn<T = undefined, R = any[]> = T extends undefined ? DefaultProColumnWithKeyOrDataIndex<R> : DefaultProColumnWithKeyOrDataIndex<R> & T;
279
+ interface ProTableIndexColumn {
280
+ title?: CustomRender;
281
+ width?: number | string;
282
+ align?: AlignType;
283
+ fixed?: DefaultProColumn['fixed'];
284
+ }
285
+ interface ProTableScrollPolicy {
286
+ mode?: 'auto' | 'manual' | 'disabled';
287
+ breakpoint?: Breakpoint | number;
288
+ modal?: boolean;
289
+ modalY?: number | {
290
+ desktop?: number;
291
+ mobile?: number;
292
+ };
293
+ actionFixed?: boolean | 'auto';
294
+ }
295
+ type ProColumnType<DataValue = RecordType, SearchParams = RecordType> = ProColumn<Omit<ColumnType<DataValue>, keyof DefaultProColumnWithKeyOrDataIndex> & {
296
+ children?: ProColumnType<DataValue, SearchParams>[];
297
+ index?: number;
298
+ copyText?: string | ((record: ProColumnType) => string);
299
+ tooltip?: false | (TooltipProps & {
300
+ width?: number;
301
+ targetStyle?: Partial<CSSProperties>;
302
+ hiddenLine?: number;
303
+ class?: string;
304
+ }); /** 不在列表中显示 */
305
+ show?: boolean; /** 列表顺序值 */
306
+ order?: number; /** 表单搜索配置 */
307
+ searchConfig?: ProSearchMap<undefined, keyof DataValue | keyof SearchParams>; /** 是否拷贝 */
308
+ copyable?: boolean; /** 值为空时,默认取值 */
309
+ columnEmptyText?: string | ((record: DataValue) => string);
310
+ valueType?: ProColumnsValueType;
311
+ }, DataValue>;
312
+ type OmitTableKey = 'columns' | 'dataSource' | 'rowKey' | 'align' | 'pagination' | 'onChange';
313
+ interface ProTableProps<DataRecord = RecordType, ParamsType = RecordType> extends Omit<TableProps<DataRecord>, OmitTableKey> {
314
+ /**
315
+ * table loading 状态
316
+ */
317
+ loading?: boolean | SpinProps;
318
+ /**
319
+ * table 唯一字段
320
+ */
321
+ rowKey?: keyof DataRecord;
322
+ /**
323
+ * table 列相关属性
324
+ */
325
+ columns?: ProColumnType<DataRecord, ParamsType>[];
326
+ /**
327
+ * 自动序号列配置。true 使用默认序号列,对象可覆盖列标题、宽度、对齐和 fixed。
328
+ */
329
+ indexColumn?: boolean | ProTableIndexColumn;
330
+ /**
331
+ * 表格滚动策略。false 等价于 disabled;disabled 禁用自动滚动和 action 自动固定。
332
+ */
333
+ scrollPolicy?: false | ProTableScrollPolicy;
334
+ /**
335
+ * fitPage 适配页面高度,使其表格占据一屏
336
+ */
337
+ fitPage?: boolean;
338
+ /**
339
+ * table 数据源
340
+ */
341
+ dataSource?: DataRecord[];
342
+ /**
343
+ * table 样式 class 语义
344
+ */
345
+ proClasses?: ProTableClassNamesType;
346
+ /**
347
+ * table 样式 style 语义
348
+ */
349
+ proStyles?: ProTableStylesType;
350
+ /**
351
+ * table 展示卡片
352
+ */
353
+ cardBordered?: boolean;
354
+ /**
355
+ * table 列对齐方式
356
+ */
357
+ align?: ProColumnType['align'];
358
+ /**
359
+ * table 等待请求控制
360
+ */
361
+ waitRequest?: boolean;
362
+ /**
363
+ * table 轮询
364
+ */
365
+ polling?: boolean;
366
+ /**
367
+ * table 轮询时间
368
+ */
369
+ pollingTime?: number;
370
+ /**
371
+ * table 请求函数
372
+ */
373
+ request?: RequestFunction<DataRecord, ParamsType>;
374
+ /**
375
+ * table 是否立刻发送请求
376
+ */
377
+ immediate?: boolean;
378
+ /**
379
+ * table 自动请求
380
+ */
381
+ autoRequest?: boolean;
382
+ /**
383
+ * table 防抖时间
384
+ */
385
+ debounceTime?: number;
386
+ /**
387
+ * table 是否显示 loading
388
+ */
389
+ showLoading?: boolean;
390
+ /**
391
+ * table 搜索参数
392
+ */
393
+ params?: ParamsType;
394
+ /**
395
+ * table 请求结果处理
396
+ */
397
+ postData?: (data: DataRecord[]) => DataRecord[];
398
+ /**
399
+ * table 搜索表单配置
400
+ */
401
+ form?: FormConfig | false;
402
+ /**
403
+ * table 搜索表单项配置
404
+ */
405
+ searchMap?: ProSearchMap<undefined, keyof ParamsType | keyof DataRecord>[];
406
+ /**
407
+ * table 分页配置
408
+ */
409
+ pagination?: ProTablePagination;
410
+ onChange?: (pagination: ProTablePaginationConfig, filters: Record<string, FilterValue | null>, sorter: SorterResult<DataRecord> | SorterResult<DataRecord>[], extra: TableCurrentDataSource<DataRecord>) => void;
411
+ onReset?: (params?: Partial<ParamsType>) => void;
412
+ onReload?: (params?: Partial<ParamsType>) => void;
413
+ onSubmit?: (params?: Partial<ParamsType>) => void;
414
+ onLoadingChange?: (loading: boolean) => any;
415
+ onRequestError?: (e: Error) => void;
416
+ onSizeChange?: (size: ProTableSizeType) => void;
417
+ onBeforeSearchSubmit?: BeforeSearchSubmit<ParamsType>;
418
+ /** 列宽拖拽调整完成回调 */
419
+ onResizeColumn?: (width: number, column: ProColumnType<DataRecord>) => void;
420
+ /** 启用列宽拖拽调整 */
421
+ draggable?: boolean;
422
+ /**
423
+ * keep-alive 页面重新进入时是否触发数据请求
424
+ */
425
+ keepAliveReload?: boolean;
426
+ /**
427
+ * 全局空值默认显示文本,可被 column.columnEmptyText 覆盖
428
+ */
429
+ columnEmptyText?: string | ((record: DataRecord) => string);
430
+ /**
431
+ * 工具栏选项配置,设为 false 时不显示
432
+ */
433
+ options?: ToolbarOptionConfig | false;
434
+ /**
435
+ * 标题提示文案
436
+ */
437
+ titleTipText?: string;
438
+ /**
439
+ * 操作按钮配置
440
+ */
441
+ actionProps?: {
442
+ placement?: ToolbarPlacement;
443
+ actions?: DefaultRender[];
444
+ };
445
+ /**
446
+ * 全屏状态变化回调
447
+ */
448
+ onFullscreenChange?: (isFullscreen: boolean) => void;
449
+ emptyText?: DefaultRender;
450
+ headerTitle?: DefaultRender;
451
+ headerTitleTip?: DefaultRender;
452
+ listToolAfter?: DefaultRender;
453
+ customRender?: CustomDataRender;
454
+ pageItemRender?: PageItemRender;
455
+ }
456
+ interface ProTableBodyCellProps<T = any> {
457
+ text: any;
458
+ value: any;
459
+ record: T;
460
+ index: number;
461
+ column: ProColumnType<T>;
462
+ }
463
+ interface ProTableCustomProps<T = any> {
464
+ currentData: T[];
465
+ dataSource: T[];
466
+ }
467
+ interface ProTableSlots<DataRecord = any> extends Omit<TableSlots<DataRecord>, 'bodyCell' | 'headerCell'> {
468
+ form?: () => any;
469
+ actions?: () => any;
470
+ headerTitle?: () => any;
471
+ headerTitleTip?: () => any;
472
+ listToolAfter?: () => any;
473
+ pageItemRender?: (params: {
474
+ page: number;
475
+ type: 'page' | 'prev' | 'next' | 'jump-prev' | 'jump-next';
476
+ originalElement: any;
477
+ }) => any;
478
+ customRender?: (params: ProTableCustomProps<DataRecord>) => any;
479
+ bodyCell?: (props: ProTableBodyCellProps<DataRecord>) => any;
480
+ headerCell?: (props: {
481
+ column: ProColumnType<DataRecord>;
482
+ index: number;
483
+ text: any;
484
+ }) => any;
485
+ }
486
+ type ProTableSizeType = 'small' | 'medium' | 'middle' | 'large';
487
+ interface ProTableEmits<DataRecord = RecordType, ParamsType = RecordType> extends Omit<TableEmits<DataRecord>, 'change'> {
488
+ 'change': ProTableProps<DataRecord, ParamsType>['onChange'];
489
+ 'reset': ProTableProps<DataRecord, ParamsType>['onReset'];
490
+ 'reload': ProTableProps<DataRecord, ParamsType>['onReload'];
491
+ 'submit': ProTableProps<DataRecord, ParamsType>['onSubmit'];
492
+ 'loadingChange': ProTableProps<DataRecord, ParamsType>['onLoadingChange'];
493
+ 'requestError': ProTableProps<DataRecord, ParamsType>['onRequestError'];
494
+ 'sizeChange': ProTableProps<DataRecord, ParamsType>['onSizeChange'];
495
+ 'resizeColumn': ProTableProps<DataRecord, ParamsType>['onResizeColumn'];
496
+ 'fullscreenChange': ProTableProps<DataRecord, ParamsType>['onFullscreenChange'];
497
+ }
498
+ //#endregion
499
+ export { BeforeSearchSubmit, ColConfig, ColumnWithKeyOrDataIndex, CustomDataFn, CustomDataRender, CustomRenderResult, DefaultProColumn, DefaultProColumnWithKeyOrDataIndex, DefaultRender, FormConfig, OperateRowProps, PageItemFn, PageItemRender, PageState, ProColumn, ProColumnType, ProColumnsValueType, ProCoreActionType, ProCoreFormType, ProFieldValueFormat, ProFieldValueType, ProSchemaValueEnumType, ProSearchMap, ProTableBodyCellProps, ProTableClassNamesType, ProTableCustomProps, ProTableEmits, ProTableFetchParams, ProTableIndexColumn, ProTablePagination, ProTablePaginationConfig, ProTableProps, ProTableRef, ProTableScrollPolicy, ProTableSizeType, ProTableSlots, ProTableStylesType, RequestConfig, RequestData, RequestFunction, RowSelectionActions, TableSemanticName, TableSorterRecord, ToolbarOptionConfig, ToolbarPlacement };
@@ -0,0 +1 @@
1
+ export {};