stk-table-vue 0.2.2 → 0.2.5
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.
- package/README.md +30 -8
- package/lib/src/StkTable/StkTable.vue.d.ts +29 -20
- package/lib/src/StkTable/index.d.ts +1 -0
- package/lib/src/StkTable/types/index.d.ts +17 -3
- package/lib/src/StkTable/useFixedStyle.d.ts +3 -3
- package/lib/src/StkTable/useHighlight.d.ts +10 -3
- package/lib/src/StkTable/useVirtualScroll.d.ts +3 -2
- package/lib/src/StkTable/utils.d.ts +6 -2
- package/lib/stk-table-vue.js +218 -122
- package/package.json +60 -60
- package/src/StkTable/StkTable.vue +78 -37
- package/src/StkTable/types/index.ts +17 -3
- package/src/StkTable/useFixedStyle.ts +49 -28
- package/src/StkTable/useHighlight.ts +50 -33
- package/src/StkTable/useKeyboardArrowScroll.ts +8 -4
- package/src/StkTable/useVirtualScroll.ts +42 -11
- package/src/StkTable/utils.ts +85 -47
package/README.md
CHANGED
|
@@ -4,8 +4,13 @@ Vue3 简易虚拟滚动表格。用于实时数据展示,新数据行高亮渐
|
|
|
4
4
|
|
|
5
5
|
Vue2.7支持引入源码(**ts**)使用。
|
|
6
6
|
|
|
7
|
+
repo:
|
|
8
|
+
- [Github](https://github.com/ja-plus/stk-table-vue)
|
|
9
|
+
- [Gitee](https://gitee.com/japlus/stk-table-vue) 🇨🇳
|
|
10
|
+
|
|
7
11
|
## Bug TODO:
|
|
8
|
-
* [] props.dataSource 为 shallowRef 时,高亮行不生效。(2024.02.21)
|
|
12
|
+
* [x] props.dataSource 为 shallowRef 时,高亮行不生效。(bug:2024.02.21)(resolved:0.2.3)
|
|
13
|
+
|
|
9
14
|
## Feature TODO:
|
|
10
15
|
* [x] 高亮行,单元格。
|
|
11
16
|
* [x] 虚拟滚动。
|
|
@@ -17,12 +22,12 @@ Vue2.7支持引入源码(**ts**)使用。
|
|
|
17
22
|
- [] sticky column 动态计算阴影位置。
|
|
18
23
|
* [] 列筛选。
|
|
19
24
|
* [x] 斑马纹。
|
|
20
|
-
- [] 虚拟滚动斑马纹。
|
|
25
|
+
- [x] 虚拟滚动斑马纹。
|
|
21
26
|
* [x] 表头拖动更改顺序。
|
|
22
27
|
* [x] 表头拖动调整列宽。
|
|
23
28
|
* [x] 排序
|
|
24
29
|
- [x] 基本表头点击排序。
|
|
25
|
-
- [] 支持配置 `null` | `undefined` 永远排最后。
|
|
30
|
+
- [x] 支持配置 `null` | `undefined` 永远排最后。
|
|
26
31
|
- [] 支持配置 string 使用 `String.prototype.localCompare` 排序。
|
|
27
32
|
* 多级表头。
|
|
28
33
|
- [x] 支持最多`2级`表头。
|
|
@@ -32,10 +37,10 @@ Vue2.7支持引入源码(**ts**)使用。
|
|
|
32
37
|
* 鼠标悬浮在表格上,键盘滚动虚拟表格。
|
|
33
38
|
- [x] 键盘 `ArrowUp`/`ArrowDown`/`ArrowLeft`/`ArrowRight` 按键支持。
|
|
34
39
|
- [x] 键盘 `PageUp`/ `PageDown` 按键支持。
|
|
35
|
-
* [] 不传row-key 时,自动按序号生成id。
|
|
36
40
|
* [] 非虚拟滚动时,大数据分批加载。
|
|
37
41
|
* [x] vue2.7支持(引入源码使用)。
|
|
38
42
|
- [x] `props.optimizeVue2Scroll` 优化vue2虚拟滚动流畅度。
|
|
43
|
+
* [] `props.emptyCellText` 支持传入函数。
|
|
39
44
|
|
|
40
45
|
|
|
41
46
|
## Usage
|
|
@@ -126,9 +131,9 @@ export type StkProps = {
|
|
|
126
131
|
/** 表格数据源 */
|
|
127
132
|
dataSource?: any[];
|
|
128
133
|
/** 行唯一键 */
|
|
129
|
-
rowKey?:
|
|
134
|
+
rowKey?: UniqKeyProp;
|
|
130
135
|
/** 列唯一键 */
|
|
131
|
-
colKey?:
|
|
136
|
+
colKey?: UniqKeyProp;
|
|
132
137
|
/** 空值展示文字 */
|
|
133
138
|
emptyCellText?: string;
|
|
134
139
|
/** 暂无数据兜底高度是否撑满 */
|
|
@@ -181,8 +186,20 @@ export type StkProps = {
|
|
|
181
186
|
/** 排序配置 */
|
|
182
187
|
sortConfig?: {
|
|
183
188
|
/** 空值是否排最下面 */
|
|
184
|
-
emptyToBottom:
|
|
189
|
+
emptyToBottom: boolean,
|
|
190
|
+
/** 默认排序(1.初始化时触发 2.排序方向为null时触发) */
|
|
191
|
+
defaultSort?: {
|
|
192
|
+
dataIndex: keyof T;
|
|
193
|
+
order: Order;
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* string排序是否使用 String.prototype.localCompare
|
|
197
|
+
* 默认true (历史设计问题,为了兼容,默认true)
|
|
198
|
+
*/
|
|
199
|
+
stringLocaleCompare?: boolean;
|
|
185
200
|
},
|
|
201
|
+
/** 隐藏头部title。可传入dataIndex数组 */
|
|
202
|
+
hideHeaderTitle?: boolean | string[];
|
|
186
203
|
};
|
|
187
204
|
```
|
|
188
205
|
#### Emits
|
|
@@ -192,7 +209,7 @@ export type StkProps = {
|
|
|
192
209
|
* 排序变更触发
|
|
193
210
|
* ```(col: StkTableColumn<DT>, order: Order, data: DT[])```
|
|
194
211
|
*/
|
|
195
|
-
(e: 'sort-change', col: StkTableColumn<DT>, order: Order, data: DT[], sortConfig:SortConfig): void;
|
|
212
|
+
(e: 'sort-change', col: StkTableColumn<DT>, order: Order, data: DT[], sortConfig: SortConfig): void;
|
|
196
213
|
/**
|
|
197
214
|
* 一行点击事件
|
|
198
215
|
* ```(ev: MouseEvent, row: DT)```
|
|
@@ -398,3 +415,8 @@ export type StkTableColumn<T extends Record<string, any>> = {
|
|
|
398
415
|
]
|
|
399
416
|
</script>
|
|
400
417
|
```
|
|
418
|
+
|
|
419
|
+
## Special Example
|
|
420
|
+
### 鼠标悬浮表头时,不展示title
|
|
421
|
+
* 将 `StkTableColumn` 中的 `title` 字段置为 "" 空字符串。这样th中就没有title了。
|
|
422
|
+
* 使用 `StkTableColumn` 中的 `customHeaderCell` 属性中,自定义表头渲染。
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Order, SortConfig, SortOption, SortState, StkTableColumn,
|
|
1
|
+
import { Order, SortConfig, SortOption, SortState, StkTableColumn, UniqKeyProp } from './types/index';
|
|
2
2
|
/** Generic stands for DataType */
|
|
3
3
|
type DT = any;
|
|
4
4
|
/**
|
|
@@ -11,14 +11,14 @@ declare function setCurrentRow(rowKey: string, option?: {
|
|
|
11
11
|
}): void;
|
|
12
12
|
/**
|
|
13
13
|
* 设置表头排序状态
|
|
14
|
-
* @param
|
|
15
|
-
* @param
|
|
16
|
-
* @param
|
|
17
|
-
* @param
|
|
18
|
-
* @param
|
|
14
|
+
* @param dataIndex 列字段
|
|
15
|
+
* @param order 正序倒序
|
|
16
|
+
* @param option.sortOption 指定排序参数。同 StkTableColumn 中排序相关字段。建议从columns中find得到。
|
|
17
|
+
* @param option.sort 是否触发排序-默认true
|
|
18
|
+
* @param option.silent 是否禁止触发回调-默认true
|
|
19
19
|
*/
|
|
20
|
-
declare function setSorter(dataIndex: string, order:
|
|
21
|
-
sortOption?: SortOption
|
|
20
|
+
declare function setSorter(dataIndex: string, order: Order, option?: {
|
|
21
|
+
sortOption?: SortOption<DT>;
|
|
22
22
|
silent?: boolean;
|
|
23
23
|
sort?: boolean;
|
|
24
24
|
}): any[];
|
|
@@ -61,9 +61,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
|
|
|
61
61
|
/** 表格数据源 */
|
|
62
62
|
dataSource?: any[] | undefined;
|
|
63
63
|
/** 行唯一键 */
|
|
64
|
-
rowKey?:
|
|
64
|
+
rowKey?: UniqKeyProp | undefined;
|
|
65
65
|
/** 列唯一键 */
|
|
66
|
-
colKey?:
|
|
66
|
+
colKey?: UniqKeyProp | undefined;
|
|
67
67
|
/** 空值展示文字 */
|
|
68
68
|
emptyCellText?: string | undefined;
|
|
69
69
|
/** 暂无数据兜底高度是否撑满 */
|
|
@@ -112,7 +112,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
|
|
|
112
112
|
/** 优化vue2 滚动 */
|
|
113
113
|
optimizeVue2Scroll?: boolean | undefined;
|
|
114
114
|
/** 排序配置 */
|
|
115
|
-
sortConfig?: SortConfig | undefined;
|
|
115
|
+
sortConfig?: SortConfig<any> | undefined;
|
|
116
|
+
/** 隐藏头部title。可传入dataIndex数组 */
|
|
117
|
+
hideHeaderTitle?: boolean | string[] | undefined;
|
|
116
118
|
}>, {
|
|
117
119
|
width: string;
|
|
118
120
|
fixedMode: boolean;
|
|
@@ -146,7 +148,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
|
|
|
146
148
|
optimizeVue2Scroll: boolean;
|
|
147
149
|
sortConfig: () => {
|
|
148
150
|
emptyToBottom: boolean;
|
|
151
|
+
stringLocaleCompare: boolean;
|
|
149
152
|
};
|
|
153
|
+
hideHeaderTitle: boolean;
|
|
150
154
|
}>, {
|
|
151
155
|
/** 初始化横向纵向虚拟滚动 */
|
|
152
156
|
initVirtualScroll: (height?: number | undefined) => void;
|
|
@@ -159,7 +163,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
|
|
|
159
163
|
/** 设置高亮渐暗单元格 */
|
|
160
164
|
setHighlightDimCell: (rowKeyValue: string, dataIndex: string) => void;
|
|
161
165
|
/** 设置高亮渐暗行 */
|
|
162
|
-
setHighlightDimRow: (rowKeyValues: (
|
|
166
|
+
setHighlightDimRow: (rowKeyValues: import("./types/index").UniqKey[]) => void;
|
|
163
167
|
/** 表格排序列dataIndex */
|
|
164
168
|
sortCol: import("vue").Ref<string | null | undefined>;
|
|
165
169
|
/** 获取当前排序状态 */
|
|
@@ -173,7 +177,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
|
|
|
173
177
|
/** 获取表格数据 */
|
|
174
178
|
getTableData: typeof getTableData;
|
|
175
179
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
176
|
-
"sort-change": (col: StkTableColumn<any>, order: Order, data: any[], sortConfig: SortConfig) => void;
|
|
180
|
+
"sort-change": (col: StkTableColumn<any>, order: Order, data: any[], sortConfig: SortConfig<any>) => void;
|
|
177
181
|
"row-click": (ev: MouseEvent, row: any) => void;
|
|
178
182
|
"current-change": (ev: MouseEvent | null, row: any) => void;
|
|
179
183
|
"row-dblclick": (ev: MouseEvent, row: any) => void;
|
|
@@ -217,9 +221,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
|
|
|
217
221
|
/** 表格数据源 */
|
|
218
222
|
dataSource?: any[] | undefined;
|
|
219
223
|
/** 行唯一键 */
|
|
220
|
-
rowKey?:
|
|
224
|
+
rowKey?: UniqKeyProp | undefined;
|
|
221
225
|
/** 列唯一键 */
|
|
222
|
-
colKey?:
|
|
226
|
+
colKey?: UniqKeyProp | undefined;
|
|
223
227
|
/** 空值展示文字 */
|
|
224
228
|
emptyCellText?: string | undefined;
|
|
225
229
|
/** 暂无数据兜底高度是否撑满 */
|
|
@@ -268,7 +272,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
|
|
|
268
272
|
/** 优化vue2 滚动 */
|
|
269
273
|
optimizeVue2Scroll?: boolean | undefined;
|
|
270
274
|
/** 排序配置 */
|
|
271
|
-
sortConfig?: SortConfig | undefined;
|
|
275
|
+
sortConfig?: SortConfig<any> | undefined;
|
|
276
|
+
/** 隐藏头部title。可传入dataIndex数组 */
|
|
277
|
+
hideHeaderTitle?: boolean | string[] | undefined;
|
|
272
278
|
}>, {
|
|
273
279
|
width: string;
|
|
274
280
|
fixedMode: boolean;
|
|
@@ -302,7 +308,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
|
|
|
302
308
|
optimizeVue2Scroll: boolean;
|
|
303
309
|
sortConfig: () => {
|
|
304
310
|
emptyToBottom: boolean;
|
|
311
|
+
stringLocaleCompare: boolean;
|
|
305
312
|
};
|
|
313
|
+
hideHeaderTitle: boolean;
|
|
306
314
|
}>>> & {
|
|
307
315
|
onScroll?: ((ev: Event, data: {
|
|
308
316
|
startIndex: number;
|
|
@@ -312,7 +320,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
|
|
|
312
320
|
"onTh-drag-start"?: ((dragStartKey: string) => any) | undefined;
|
|
313
321
|
"onCol-order-change"?: ((dragStartKey: string, targetColKey: string) => any) | undefined;
|
|
314
322
|
"onTh-drop"?: ((targetColKey: string) => any) | undefined;
|
|
315
|
-
"onSort-change"?: ((col: StkTableColumn<any>, order: Order, data: any[], sortConfig: SortConfig) => any) | undefined;
|
|
323
|
+
"onSort-change"?: ((col: StkTableColumn<any>, order: Order, data: any[], sortConfig: SortConfig<any>) => any) | undefined;
|
|
316
324
|
"onRow-click"?: ((ev: MouseEvent, row: any) => any) | undefined;
|
|
317
325
|
"onCurrent-change"?: ((ev: MouseEvent | null, row: any) => any) | undefined;
|
|
318
326
|
"onRow-dblclick"?: ((ev: MouseEvent, row: any) => any) | undefined;
|
|
@@ -335,8 +343,8 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
|
|
|
335
343
|
virtualX: boolean;
|
|
336
344
|
columns: StkTableColumn<any>[];
|
|
337
345
|
dataSource: any[];
|
|
338
|
-
rowKey:
|
|
339
|
-
colKey:
|
|
346
|
+
rowKey: UniqKeyProp;
|
|
347
|
+
colKey: UniqKeyProp;
|
|
340
348
|
emptyCellText: string;
|
|
341
349
|
noDataFull: boolean;
|
|
342
350
|
showNoData: boolean;
|
|
@@ -352,7 +360,8 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
|
|
|
352
360
|
autoResize: boolean | (() => void);
|
|
353
361
|
fixedColShadow: boolean;
|
|
354
362
|
optimizeVue2Scroll: boolean;
|
|
355
|
-
sortConfig: SortConfig
|
|
363
|
+
sortConfig: SortConfig<any>;
|
|
364
|
+
hideHeaderTitle: boolean | string[];
|
|
356
365
|
}, {}>, {
|
|
357
366
|
tableHeader?(_: {
|
|
358
367
|
col: StkTableColumn<any>;
|
|
@@ -63,16 +63,30 @@ export type StkTableColumn<T extends Record<string, any>> = {
|
|
|
63
63
|
/** 父节点引用 */
|
|
64
64
|
__PARENT__?: StkTableColumn<T> | null;
|
|
65
65
|
};
|
|
66
|
-
export type SortOption = Pick<StkTableColumn<
|
|
66
|
+
export type SortOption<T extends Record<string, any>> = Pick<StkTableColumn<T>, 'sorter' | 'dataIndex' | 'sortField' | 'sortType'>;
|
|
67
|
+
/** 排序状态 */
|
|
67
68
|
export type SortState<T> = {
|
|
68
69
|
dataIndex: T;
|
|
69
70
|
order: null | 'asc' | 'desc';
|
|
70
71
|
sortType?: 'number' | 'string';
|
|
71
72
|
};
|
|
72
|
-
|
|
73
|
+
/** 唯一键 */
|
|
74
|
+
export type UniqKey = string | number;
|
|
75
|
+
export type UniqKeyFun = (param: any) => UniqKey;
|
|
76
|
+
export type UniqKeyProp = UniqKey | UniqKeyFun;
|
|
73
77
|
/** 排序配置 */
|
|
74
|
-
export type SortConfig = {
|
|
78
|
+
export type SortConfig<T extends Record<string, any>> = {
|
|
75
79
|
/** 空值始终排在列表末尾 */
|
|
76
80
|
emptyToBottom?: boolean;
|
|
81
|
+
/** 默认排序(1.初始化时触发 2.排序方向为null时触发) */
|
|
82
|
+
defaultSort?: {
|
|
83
|
+
dataIndex: keyof T;
|
|
84
|
+
order: Order;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* string排序是否使用 String.prototype.localCompare
|
|
88
|
+
* 默认true (&$&应该false)
|
|
89
|
+
*/
|
|
90
|
+
stringLocaleCompare?: boolean;
|
|
77
91
|
};
|
|
78
92
|
export {};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { CSSProperties, Ref } from 'vue';
|
|
2
2
|
import { StkTableColumn } from './types';
|
|
3
3
|
import { VirtualScrollStore, VirtualScrollXStore } from './useVirtualScroll';
|
|
4
|
-
type Options = {
|
|
4
|
+
type Options<T extends Record<string, any>> = {
|
|
5
5
|
props: any;
|
|
6
|
-
|
|
6
|
+
tableHeaders: Ref<StkTableColumn<T>[][]>;
|
|
7
7
|
virtualScroll: Ref<VirtualScrollStore>;
|
|
8
8
|
virtualScrollX: Ref<VirtualScrollXStore>;
|
|
9
9
|
virtualX_on: Ref<boolean>;
|
|
@@ -14,7 +14,7 @@ type Options = {
|
|
|
14
14
|
* @param param0
|
|
15
15
|
* @returns
|
|
16
16
|
*/
|
|
17
|
-
export declare function useFixedStyle({ props,
|
|
17
|
+
export declare function useFixedStyle<DT extends Record<string, any>>({ props, tableHeaders, virtualScroll, virtualScrollX, virtualX_on, virtualX_offsetRight, }: Options<DT>): {
|
|
18
18
|
getFixedStyle: (tagType: 1 | 2, col: StkTableColumn<any>, depth?: number) => CSSProperties;
|
|
19
19
|
};
|
|
20
20
|
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Ref } from 'vue';
|
|
2
|
+
import { UniqKey } from './types';
|
|
2
3
|
type Params = {
|
|
3
4
|
props: {
|
|
4
5
|
theme: 'light' | 'dark';
|
|
@@ -6,14 +7,20 @@ type Params = {
|
|
|
6
7
|
dataSource: any[];
|
|
7
8
|
};
|
|
8
9
|
tableContainer: Ref<HTMLElement | undefined>;
|
|
9
|
-
|
|
10
|
+
};
|
|
11
|
+
/** 高亮行保存的东西 */
|
|
12
|
+
type HighlightRowStore = {
|
|
13
|
+
bgc: string;
|
|
14
|
+
bgc_progress_ms: number;
|
|
15
|
+
bgc_progress: number;
|
|
10
16
|
};
|
|
11
17
|
/**
|
|
12
18
|
* 高亮单元格,行
|
|
13
19
|
* row中新增_bgc_progress_ms 属性控制高亮状态,_bgc控制颜色
|
|
14
20
|
*/
|
|
15
|
-
export declare function useHighlight({ props, tableContainer
|
|
16
|
-
|
|
21
|
+
export declare function useHighlight({ props, tableContainer }: Params): {
|
|
22
|
+
highlightRowStore: Ref<Record<UniqKey, HighlightRowStore>>;
|
|
23
|
+
setHighlightDimRow: (rowKeyValues: UniqKey[]) => void;
|
|
17
24
|
setHighlightDimCell: (rowKeyValue: string, dataIndex: string) => void;
|
|
18
25
|
};
|
|
19
26
|
export {};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Ref, ShallowRef } from 'vue';
|
|
2
2
|
import { StkTableColumn } from './types';
|
|
3
3
|
type Option<DT extends Record<string, any>> = {
|
|
4
|
-
tableContainer: Ref<HTMLElement | undefined>;
|
|
5
4
|
props: any;
|
|
5
|
+
tableContainer: Ref<HTMLElement | undefined>;
|
|
6
6
|
dataSourceCopy: ShallowRef<DT[]>;
|
|
7
7
|
tableHeaderLast: Ref<StkTableColumn<DT>[]>;
|
|
8
|
+
tableHeaders: Ref<StkTableColumn<DT>[][]>;
|
|
8
9
|
};
|
|
9
10
|
/** 暂存纵向虚拟滚动的数据 */
|
|
10
11
|
export type VirtualScrollStore = {
|
|
@@ -41,7 +42,7 @@ export type VirtualScrollXStore = {
|
|
|
41
42
|
* @param param0
|
|
42
43
|
* @returns
|
|
43
44
|
*/
|
|
44
|
-
export declare function useVirtualScroll<DT extends Record<string, any>>({ props, tableContainer, dataSourceCopy, tableHeaderLast }: Option<DT>): {
|
|
45
|
+
export declare function useVirtualScroll<DT extends Record<string, any>>({ props, tableContainer, dataSourceCopy, tableHeaderLast, tableHeaders, }: Option<DT>): {
|
|
45
46
|
virtualScroll: Ref<{
|
|
46
47
|
containerHeight: number;
|
|
47
48
|
pageSize: number;
|
|
@@ -8,18 +8,22 @@ import { Order, SortConfig, SortOption, SortState, StkTableColumn } from './type
|
|
|
8
8
|
* @param newItem 要插入的数据
|
|
9
9
|
* @param targetArray 表格数据
|
|
10
10
|
*/
|
|
11
|
-
export declare function insertToOrderedArray<T extends object>(sortState: SortState<keyof T>, newItem: any, targetArray: T[]): T[];
|
|
11
|
+
export declare function insertToOrderedArray<T extends object>(sortState: SortState<keyof T>, newItem: any, targetArray: T[], sortConfig?: SortConfig<T>): T[];
|
|
12
12
|
/**
|
|
13
13
|
* 表格排序抽离
|
|
14
14
|
* 可以在组件外部自己实现表格排序,组件配置remote,使表格不排序。
|
|
15
15
|
* 使用者在@sort-change事件中自行更改table props 'dataSource'完成排序。
|
|
16
16
|
* TODO: key 唯一值,排序字段相同时,根据唯一值排序。
|
|
17
|
+
*
|
|
18
|
+
* sortConfig.defaultSort 会在order为null时生效
|
|
17
19
|
* @param sortOption 列配置
|
|
18
20
|
* @param order 排序方式
|
|
19
21
|
* @param dataSource 排序的数组
|
|
20
22
|
*/
|
|
21
|
-
export declare function tableSort(sortOption: SortOption
|
|
23
|
+
export declare function tableSort<T extends Record<string, any>>(sortOption: SortOption<T>, order: Order, dataSource: T[], sortConfig?: SortConfig<T>): T[];
|
|
22
24
|
/** 表头column配置的层级 */
|
|
23
25
|
export declare function howDeepTheHeader(arr: StkTableColumn<any>[], level?: number): number;
|
|
24
26
|
/** 获取列宽 */
|
|
25
27
|
export declare function getColWidth(col: StkTableColumn<any> | null): number;
|
|
28
|
+
/** 获取列宽配置。用于支持列宽配置数字 */
|
|
29
|
+
export declare function getColWidthStr(col: StkTableColumn<any> | null | undefined, key?: 'width' | 'minWidth' | 'maxWidth'): string | undefined;
|