stk-table-vue 0.2.0 → 0.2.1
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 +51 -17
- package/lib/src/StkTable/StkTable.vue.d.ts +373 -367
- package/lib/src/StkTable/const.d.ts +21 -21
- package/lib/src/StkTable/index.d.ts +3 -3
- package/lib/src/StkTable/types/index.d.ts +73 -73
- package/lib/src/StkTable/useAutoResize.d.ts +14 -15
- package/lib/src/StkTable/useColResize.d.ts +18 -18
- package/lib/src/StkTable/useFixedCol.d.ts +20 -20
- package/lib/src/StkTable/useFixedStyle.d.ts +20 -20
- package/lib/src/StkTable/useHighlight.d.ts +19 -19
- package/lib/src/StkTable/useKeyboardArrowScroll.d.ts +17 -17
- package/lib/src/StkTable/useThDrag.d.ts +17 -14
- package/lib/src/StkTable/useVirtualScroll.d.ts +73 -73
- package/lib/src/StkTable/utils.d.ts +25 -23
- package/lib/stk-table-vue.js +1422 -1490
- package/lib/style.css +298 -294
- package/lib/test/StkTable.browser.test.d.ts +1 -1
- package/lib/test/insertToOrderedArray.test.d.ts +1 -1
- package/lib/test/utils/DragResize.d.ts +28 -28
- package/lib/test/utils/h.d.ts +10 -10
- package/package.json +2 -2
- package/src/StkTable/StkTable.vue +20 -8
- package/src/StkTable/style.less +7 -5
- package/src/StkTable/types/index.ts +3 -3
- package/src/StkTable/useAutoResize.ts +2 -3
- package/src/StkTable/useColResize.ts +3 -3
- package/src/StkTable/useFixedCol.ts +1 -1
- package/src/StkTable/useFixedStyle.ts +4 -3
- package/src/StkTable/useHighlight.ts +2 -0
- package/src/StkTable/useThDrag.ts +37 -8
- package/src/StkTable/useVirtualScroll.ts +6 -12
- package/src/StkTable/utils.ts +9 -0
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
export declare const Default_Col_Width = "100";
|
|
2
|
-
export declare const Default_Table_Height = 100;
|
|
3
|
-
export declare const Default_Table_Width = 200;
|
|
4
|
-
export declare const Default_Row_Height = 28;
|
|
5
|
-
/** 高亮背景色 */
|
|
6
|
-
export declare const Highlight_Color: {
|
|
7
|
-
light: {
|
|
8
|
-
from: string;
|
|
9
|
-
to: string;
|
|
10
|
-
};
|
|
11
|
-
dark: {
|
|
12
|
-
from: string;
|
|
13
|
-
to: string;
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
/** 高亮持续时间 */
|
|
17
|
-
export declare const Highlight_Duration = 2000;
|
|
18
|
-
/** 高亮变更频率 */
|
|
19
|
-
export declare const Highlight_Color_Change_Freq = 100;
|
|
20
|
-
/** 是否兼容低版本模式 */
|
|
21
|
-
export declare const Is_Legacy_Mode: boolean;
|
|
1
|
+
export declare const Default_Col_Width = "100";
|
|
2
|
+
export declare const Default_Table_Height = 100;
|
|
3
|
+
export declare const Default_Table_Width = 200;
|
|
4
|
+
export declare const Default_Row_Height = 28;
|
|
5
|
+
/** 高亮背景色 */
|
|
6
|
+
export declare const Highlight_Color: {
|
|
7
|
+
light: {
|
|
8
|
+
from: string;
|
|
9
|
+
to: string;
|
|
10
|
+
};
|
|
11
|
+
dark: {
|
|
12
|
+
from: string;
|
|
13
|
+
to: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
/** 高亮持续时间 */
|
|
17
|
+
export declare const Highlight_Duration = 2000;
|
|
18
|
+
/** 高亮变更频率 */
|
|
19
|
+
export declare const Highlight_Color_Change_Freq = 100;
|
|
20
|
+
/** 是否兼容低版本模式 */
|
|
21
|
+
export declare const Is_Legacy_Mode: boolean;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { default as StkTable } from './StkTable.vue';
|
|
2
|
-
export { tableSort, insertToOrderedArray } from './utils';
|
|
3
|
-
export type { StkTableColumn } from './types/index';
|
|
1
|
+
export { default as StkTable } from './StkTable.vue';
|
|
2
|
+
export { tableSort, insertToOrderedArray } from './utils';
|
|
3
|
+
export type { StkTableColumn } from './types/index';
|
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
import { Component, VNode } from 'vue';
|
|
2
|
-
/** 排序方式,asc-正序,desc-倒序,null-默认顺序 */
|
|
3
|
-
export type Order = null | 'asc' | 'desc';
|
|
4
|
-
type Sorter<T> = boolean | ((data: T[], option: {
|
|
5
|
-
order: Order;
|
|
6
|
-
column: any;
|
|
7
|
-
}) => T[]);
|
|
8
|
-
export type CustomCellFunc<T extends Record<string, any>> = (props: {
|
|
9
|
-
row: T;
|
|
10
|
-
col: StkTableColumn<T>;
|
|
11
|
-
cellValue: any;
|
|
12
|
-
}) => VNode;
|
|
13
|
-
export type CustomHeaderCellFunc<T extends Record<string, any>> = (props: {
|
|
14
|
-
col: StkTableColumn<T>;
|
|
15
|
-
}) => VNode;
|
|
16
|
-
/** 表格列配置 */
|
|
17
|
-
export type StkTableColumn<T extends Record<string, any>> = {
|
|
18
|
-
/** 取值id */
|
|
19
|
-
dataIndex: keyof T & string;
|
|
20
|
-
/** 表头文字 */
|
|
21
|
-
title?: string;
|
|
22
|
-
/** 列内容对齐方式 */
|
|
23
|
-
align?: 'right' | 'left' | 'center';
|
|
24
|
-
/** 表头内容对齐方式 */
|
|
25
|
-
headerAlign?: 'right' | 'left' | 'center';
|
|
26
|
-
/** 筛选 */
|
|
27
|
-
sorter?: Sorter<T>;
|
|
28
|
-
/** 列宽。横向虚拟滚动时必须设置。 */
|
|
29
|
-
width?: string;
|
|
30
|
-
/** 最小列宽。非x虚拟滚动生效。 */
|
|
31
|
-
minWidth?: string;
|
|
32
|
-
/** 最大列宽。非x虚拟滚动生效。 */
|
|
33
|
-
maxWidth?: string;
|
|
34
|
-
/**th class */
|
|
35
|
-
headerClassName?: string;
|
|
36
|
-
/** td class */
|
|
37
|
-
className?: string;
|
|
38
|
-
/** 排序字段。default: dataIndex */
|
|
39
|
-
sortField?: keyof T;
|
|
40
|
-
/** 排序方式。按数字/字符串 */
|
|
41
|
-
sortType?: 'number' | 'string';
|
|
42
|
-
/** 固定列 */
|
|
43
|
-
fixed?: 'left' | 'right' | null;
|
|
44
|
-
/** private */ rowSpan?: number;
|
|
45
|
-
/** private */ colSpan?: number;
|
|
46
|
-
/**
|
|
47
|
-
* 自定义 td 渲染内容。
|
|
48
|
-
*
|
|
49
|
-
* 组件prop入参:
|
|
50
|
-
* - props.row 一行的记录。
|
|
51
|
-
* - props.col 列配置
|
|
52
|
-
*/
|
|
53
|
-
customCell?: Component | VNode | CustomCellFunc<T>;
|
|
54
|
-
/**
|
|
55
|
-
* 自定义 th 渲染内容
|
|
56
|
-
*
|
|
57
|
-
* 组件prop入参:
|
|
58
|
-
* - props.col 列配置
|
|
59
|
-
*/
|
|
60
|
-
customHeaderCell?: Component | VNode | CustomHeaderCellFunc<T>;
|
|
61
|
-
/** 二级表头 */
|
|
62
|
-
children?: StkTableColumn<T>[];
|
|
63
|
-
/** 父节点引用 */
|
|
64
|
-
__PARENT__?: StkTableColumn<T> | null;
|
|
65
|
-
};
|
|
66
|
-
export type SortOption = Pick<StkTableColumn<any>, 'sorter' | 'dataIndex' | 'sortField' | 'sortType'>;
|
|
67
|
-
export type SortState<T> = {
|
|
68
|
-
dataIndex: T;
|
|
69
|
-
order: null | 'asc' | 'desc';
|
|
70
|
-
sortType?: 'number' | 'string';
|
|
71
|
-
};
|
|
72
|
-
export type UniqKey = string | ((param: any) => string);
|
|
73
|
-
export {};
|
|
1
|
+
import { Component, VNode } from 'vue';
|
|
2
|
+
/** 排序方式,asc-正序,desc-倒序,null-默认顺序 */
|
|
3
|
+
export type Order = null | 'asc' | 'desc';
|
|
4
|
+
type Sorter<T> = boolean | ((data: T[], option: {
|
|
5
|
+
order: Order;
|
|
6
|
+
column: any;
|
|
7
|
+
}) => T[]);
|
|
8
|
+
export type CustomCellFunc<T extends Record<string, any>> = (props: {
|
|
9
|
+
row: T;
|
|
10
|
+
col: StkTableColumn<T>;
|
|
11
|
+
cellValue: any;
|
|
12
|
+
}) => VNode;
|
|
13
|
+
export type CustomHeaderCellFunc<T extends Record<string, any>> = (props: {
|
|
14
|
+
col: StkTableColumn<T>;
|
|
15
|
+
}) => VNode;
|
|
16
|
+
/** 表格列配置 */
|
|
17
|
+
export type StkTableColumn<T extends Record<string, any>> = {
|
|
18
|
+
/** 取值id */
|
|
19
|
+
dataIndex: keyof T & string;
|
|
20
|
+
/** 表头文字 */
|
|
21
|
+
title?: string;
|
|
22
|
+
/** 列内容对齐方式 */
|
|
23
|
+
align?: 'right' | 'left' | 'center';
|
|
24
|
+
/** 表头内容对齐方式 */
|
|
25
|
+
headerAlign?: 'right' | 'left' | 'center';
|
|
26
|
+
/** 筛选 */
|
|
27
|
+
sorter?: Sorter<T>;
|
|
28
|
+
/** 列宽。横向虚拟滚动时必须设置。 */
|
|
29
|
+
width?: string | number;
|
|
30
|
+
/** 最小列宽。非x虚拟滚动生效。 */
|
|
31
|
+
minWidth?: string | number;
|
|
32
|
+
/** 最大列宽。非x虚拟滚动生效。 */
|
|
33
|
+
maxWidth?: string | number;
|
|
34
|
+
/**th class */
|
|
35
|
+
headerClassName?: string;
|
|
36
|
+
/** td class */
|
|
37
|
+
className?: string;
|
|
38
|
+
/** 排序字段。default: dataIndex */
|
|
39
|
+
sortField?: keyof T;
|
|
40
|
+
/** 排序方式。按数字/字符串 */
|
|
41
|
+
sortType?: 'number' | 'string';
|
|
42
|
+
/** 固定列 */
|
|
43
|
+
fixed?: 'left' | 'right' | null;
|
|
44
|
+
/** private */ rowSpan?: number;
|
|
45
|
+
/** private */ colSpan?: number;
|
|
46
|
+
/**
|
|
47
|
+
* 自定义 td 渲染内容。
|
|
48
|
+
*
|
|
49
|
+
* 组件prop入参:
|
|
50
|
+
* - props.row 一行的记录。
|
|
51
|
+
* - props.col 列配置
|
|
52
|
+
*/
|
|
53
|
+
customCell?: Component | VNode | CustomCellFunc<T>;
|
|
54
|
+
/**
|
|
55
|
+
* 自定义 th 渲染内容
|
|
56
|
+
*
|
|
57
|
+
* 组件prop入参:
|
|
58
|
+
* - props.col 列配置
|
|
59
|
+
*/
|
|
60
|
+
customHeaderCell?: Component | VNode | CustomHeaderCellFunc<T>;
|
|
61
|
+
/** 二级表头 */
|
|
62
|
+
children?: StkTableColumn<T>[];
|
|
63
|
+
/** 父节点引用 */
|
|
64
|
+
__PARENT__?: StkTableColumn<T> | null;
|
|
65
|
+
};
|
|
66
|
+
export type SortOption = Pick<StkTableColumn<any>, 'sorter' | 'dataIndex' | 'sortField' | 'sortType'>;
|
|
67
|
+
export type SortState<T> = {
|
|
68
|
+
dataIndex: T;
|
|
69
|
+
order: null | 'asc' | 'desc';
|
|
70
|
+
sortType?: 'number' | 'string';
|
|
71
|
+
};
|
|
72
|
+
export type UniqKey = string | ((param: any) => string);
|
|
73
|
+
export {};
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import { Ref } from 'vue';
|
|
2
|
-
type Options = {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
*
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
export
|
|
15
|
-
export {};
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
type Options = {
|
|
3
|
+
props: any;
|
|
4
|
+
tableContainer: Ref<HTMLElement | undefined>;
|
|
5
|
+
initVirtualScroll: () => void;
|
|
6
|
+
/** 防抖延时 */
|
|
7
|
+
debounceMs: number;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* 窗口变化自动重置虚拟滚动
|
|
11
|
+
* @param param0
|
|
12
|
+
*/
|
|
13
|
+
export declare function useAutoResize({ tableContainer, initVirtualScroll, props, debounceMs }: Options): void;
|
|
14
|
+
export {};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { Ref } from 'vue';
|
|
2
|
-
import { StkTableColumn } from './types';
|
|
3
|
-
type Params<DT extends Record<string, any>> = {
|
|
4
|
-
props: any;
|
|
5
|
-
emits: any;
|
|
6
|
-
tableContainer: Ref<HTMLElement | undefined>;
|
|
7
|
-
tableHeaderLast: Ref<StkTableColumn<DT>[]>;
|
|
8
|
-
colResizeIndicator: Ref<HTMLElement | undefined>;
|
|
9
|
-
colKeyGen: (p: any) => string;
|
|
10
|
-
};
|
|
11
|
-
/** 列宽拖动 */
|
|
12
|
-
export declare function useColResize<DT extends Record<string, any>>({ tableContainer, tableHeaderLast, colResizeIndicator, props, emits, colKeyGen, }: Params<DT>): {
|
|
13
|
-
isColResizing: Ref<boolean>;
|
|
14
|
-
onThResizeMouseDown: (e: MouseEvent, col: StkTableColumn<DT>, isPrev?: boolean) => void;
|
|
15
|
-
onThResizeMouseMove: (e: MouseEvent) => void;
|
|
16
|
-
onThResizeMouseUp: (e: MouseEvent) => void;
|
|
17
|
-
};
|
|
18
|
-
export {};
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { StkTableColumn } from './types';
|
|
3
|
+
type Params<DT extends Record<string, any>> = {
|
|
4
|
+
props: any;
|
|
5
|
+
emits: any;
|
|
6
|
+
tableContainer: Ref<HTMLElement | undefined>;
|
|
7
|
+
tableHeaderLast: Ref<StkTableColumn<DT>[]>;
|
|
8
|
+
colResizeIndicator: Ref<HTMLElement | undefined>;
|
|
9
|
+
colKeyGen: (p: any) => string;
|
|
10
|
+
};
|
|
11
|
+
/** 列宽拖动 */
|
|
12
|
+
export declare function useColResize<DT extends Record<string, any>>({ tableContainer, tableHeaderLast, colResizeIndicator, props, emits, colKeyGen, }: Params<DT>): {
|
|
13
|
+
isColResizing: Ref<boolean>;
|
|
14
|
+
onThResizeMouseDown: (e: MouseEvent, col: StkTableColumn<DT>, isPrev?: boolean) => void;
|
|
15
|
+
onThResizeMouseMove: (e: MouseEvent) => void;
|
|
16
|
+
onThResizeMouseUp: (e: MouseEvent) => void;
|
|
17
|
+
};
|
|
18
|
+
export {};
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { Ref } from 'vue';
|
|
2
|
-
import { StkTableColumn } from './types';
|
|
3
|
-
type Params<T extends Record<string, any>> = {
|
|
4
|
-
props: any;
|
|
5
|
-
tableHeaderLast: Ref<StkTableColumn<T>[]>;
|
|
6
|
-
tableContainer: Ref<HTMLDivElement | undefined>;
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* 固定列处理
|
|
10
|
-
* @returns
|
|
11
|
-
*/
|
|
12
|
-
export declare function useFixedCol<DT extends Record<string, any>>({ props, tableHeaderLast, tableContainer }: Params<DT>): {
|
|
13
|
-
/** 固定列class */
|
|
14
|
-
getFixedColClass: (col: StkTableColumn<DT>) => Record<string, boolean>;
|
|
15
|
-
/** 处理固定列阴影 */
|
|
16
|
-
dealFixedColShadow: () => void;
|
|
17
|
-
/** 滚动条变化时,更新需要展示阴影的列 */
|
|
18
|
-
updateFixedShadow: () => void;
|
|
19
|
-
};
|
|
20
|
-
export {};
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { StkTableColumn } from './types';
|
|
3
|
+
type Params<T extends Record<string, any>> = {
|
|
4
|
+
props: any;
|
|
5
|
+
tableHeaderLast: Ref<StkTableColumn<T>[]>;
|
|
6
|
+
tableContainer: Ref<HTMLDivElement | undefined>;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* 固定列处理
|
|
10
|
+
* @returns
|
|
11
|
+
*/
|
|
12
|
+
export declare function useFixedCol<DT extends Record<string, any>>({ props, tableHeaderLast, tableContainer }: Params<DT>): {
|
|
13
|
+
/** 固定列class */
|
|
14
|
+
getFixedColClass: (col: StkTableColumn<DT>) => Record<string, boolean>;
|
|
15
|
+
/** 处理固定列阴影 */
|
|
16
|
+
dealFixedColShadow: () => void;
|
|
17
|
+
/** 滚动条变化时,更新需要展示阴影的列 */
|
|
18
|
+
updateFixedShadow: () => void;
|
|
19
|
+
};
|
|
20
|
+
export {};
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { CSSProperties, Ref } from 'vue';
|
|
2
|
-
import { StkTableColumn } from './types';
|
|
3
|
-
import { VirtualScrollStore, VirtualScrollXStore } from './useVirtualScroll';
|
|
4
|
-
type Options = {
|
|
5
|
-
props: any;
|
|
6
|
-
tableHeaderLast: Ref<StkTableColumn<any>[]>;
|
|
7
|
-
virtualScroll: Ref<VirtualScrollStore>;
|
|
8
|
-
virtualScrollX: Ref<VirtualScrollXStore>;
|
|
9
|
-
virtualX_on: Ref<boolean>;
|
|
10
|
-
virtualX_offsetRight: Ref<number>;
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* 固定列style
|
|
14
|
-
* @param param0
|
|
15
|
-
* @returns
|
|
16
|
-
*/
|
|
17
|
-
export declare function useFixedStyle({ props, tableHeaderLast, virtualScroll, virtualScrollX, virtualX_on, virtualX_offsetRight }: Options): {
|
|
18
|
-
getFixedStyle: (tagType: 1 | 2, col: StkTableColumn<any>, depth?: number) => CSSProperties;
|
|
19
|
-
};
|
|
20
|
-
export {};
|
|
1
|
+
import { CSSProperties, Ref } from 'vue';
|
|
2
|
+
import { StkTableColumn } from './types';
|
|
3
|
+
import { VirtualScrollStore, VirtualScrollXStore } from './useVirtualScroll';
|
|
4
|
+
type Options = {
|
|
5
|
+
props: any;
|
|
6
|
+
tableHeaderLast: Ref<StkTableColumn<any>[]>;
|
|
7
|
+
virtualScroll: Ref<VirtualScrollStore>;
|
|
8
|
+
virtualScrollX: Ref<VirtualScrollXStore>;
|
|
9
|
+
virtualX_on: Ref<boolean>;
|
|
10
|
+
virtualX_offsetRight: Ref<number>;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* 固定列style
|
|
14
|
+
* @param param0
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
export declare function useFixedStyle({ props, tableHeaderLast, virtualScroll, virtualScrollX, virtualX_on, virtualX_offsetRight }: Options): {
|
|
18
|
+
getFixedStyle: (tagType: 1 | 2, col: StkTableColumn<any>, depth?: number) => CSSProperties;
|
|
19
|
+
};
|
|
20
|
+
export {};
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { Ref } from 'vue';
|
|
2
|
-
type Params = {
|
|
3
|
-
props: {
|
|
4
|
-
theme: 'light' | 'dark';
|
|
5
|
-
virtual: boolean;
|
|
6
|
-
dataSource: any[];
|
|
7
|
-
};
|
|
8
|
-
tableContainer: Ref<HTMLElement | undefined>;
|
|
9
|
-
rowKeyGen: (p: any) => string;
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* 高亮单元格,行
|
|
13
|
-
* row中新增_bgc_progress_ms 属性控制高亮状态,_bgc控制颜色
|
|
14
|
-
*/
|
|
15
|
-
export declare function useHighlight({ props, tableContainer, rowKeyGen }: Params): {
|
|
16
|
-
setHighlightDimRow: (rowKeyValues: Array<string | number>) => void;
|
|
17
|
-
setHighlightDimCell: (rowKeyValue: string, dataIndex: string) => void;
|
|
18
|
-
};
|
|
19
|
-
export {};
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
type Params = {
|
|
3
|
+
props: {
|
|
4
|
+
theme: 'light' | 'dark';
|
|
5
|
+
virtual: boolean;
|
|
6
|
+
dataSource: any[];
|
|
7
|
+
};
|
|
8
|
+
tableContainer: Ref<HTMLElement | undefined>;
|
|
9
|
+
rowKeyGen: (p: any) => string;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* 高亮单元格,行
|
|
13
|
+
* row中新增_bgc_progress_ms 属性控制高亮状态,_bgc控制颜色
|
|
14
|
+
*/
|
|
15
|
+
export declare function useHighlight({ props, tableContainer, rowKeyGen }: Params): {
|
|
16
|
+
setHighlightDimRow: (rowKeyValues: Array<string | number>) => void;
|
|
17
|
+
setHighlightDimCell: (rowKeyValue: string, dataIndex: string) => void;
|
|
18
|
+
};
|
|
19
|
+
export {};
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { Ref } from 'vue';
|
|
2
|
-
import { StkTableColumn } from './types';
|
|
3
|
-
import { VirtualScrollStore, VirtualScrollXStore } from './useVirtualScroll';
|
|
4
|
-
type Options<DT extends Record<string, any>> = {
|
|
5
|
-
props: any;
|
|
6
|
-
scrollTo: (y: number | null, x: number | null) => void;
|
|
7
|
-
virtualScroll: Ref<VirtualScrollStore>;
|
|
8
|
-
virtualScrollX: Ref<VirtualScrollXStore>;
|
|
9
|
-
tableHeaders: Ref<StkTableColumn<DT>[][]>;
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* 按下键盘箭头滚动。只有悬浮在表体上才能生效键盘。
|
|
13
|
-
*
|
|
14
|
-
* 在低版本浏览器中,虚拟滚动时,使用键盘滚动,等选中的行消失在视口外时,滚动会失效。
|
|
15
|
-
*/
|
|
16
|
-
export declare function useKeyboardArrowScroll<DT extends Record<string, any>>(targetElement: Ref<HTMLElement | undefined>, { props, scrollTo, virtualScroll, virtualScrollX, tableHeaders }: Options<DT>): void;
|
|
17
|
-
export {};
|
|
1
|
+
import { Ref } from 'vue';
|
|
2
|
+
import { StkTableColumn } from './types';
|
|
3
|
+
import { VirtualScrollStore, VirtualScrollXStore } from './useVirtualScroll';
|
|
4
|
+
type Options<DT extends Record<string, any>> = {
|
|
5
|
+
props: any;
|
|
6
|
+
scrollTo: (y: number | null, x: number | null) => void;
|
|
7
|
+
virtualScroll: Ref<VirtualScrollStore>;
|
|
8
|
+
virtualScrollX: Ref<VirtualScrollXStore>;
|
|
9
|
+
tableHeaders: Ref<StkTableColumn<DT>[][]>;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* 按下键盘箭头滚动。只有悬浮在表体上才能生效键盘。
|
|
13
|
+
*
|
|
14
|
+
* 在低版本浏览器中,虚拟滚动时,使用键盘滚动,等选中的行消失在视口外时,滚动会失效。
|
|
15
|
+
*/
|
|
16
|
+
export declare function useKeyboardArrowScroll<DT extends Record<string, any>>(targetElement: Ref<HTMLElement | undefined>, { props, scrollTo, virtualScroll, virtualScrollX, tableHeaders }: Options<DT>): void;
|
|
17
|
+
export {};
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
import { StkTableColumn } from './types';
|
|
2
|
+
type Params = {
|
|
3
|
+
props: any;
|
|
4
|
+
emits: any;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* 列顺序拖动
|
|
8
|
+
* @param param0
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
11
|
+
export declare function useThDrag<DT extends Record<string, any>>({ props, emits }: Params): {
|
|
12
|
+
onThDragStart: (e: MouseEvent) => void;
|
|
13
|
+
onThDragOver: (e: MouseEvent) => void;
|
|
14
|
+
onThDrop: (e: MouseEvent) => void;
|
|
15
|
+
isHeaderDraggable: (col: StkTableColumn<DT>) => any;
|
|
16
|
+
};
|
|
17
|
+
export {};
|
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
import { Ref, ShallowRef } from 'vue';
|
|
2
|
-
import { StkTableColumn } from './types';
|
|
3
|
-
type Option<DT extends Record<string, any>> = {
|
|
4
|
-
tableContainer: Ref<HTMLElement | undefined>;
|
|
5
|
-
props: any;
|
|
6
|
-
dataSourceCopy: ShallowRef<DT[]>;
|
|
7
|
-
tableHeaderLast: Ref<StkTableColumn<DT>[]>;
|
|
8
|
-
};
|
|
9
|
-
/** 暂存纵向虚拟滚动的数据 */
|
|
10
|
-
export type VirtualScrollStore = {
|
|
11
|
-
/** 容器高度 */
|
|
12
|
-
containerHeight: number;
|
|
13
|
-
/** 一页的大小 */
|
|
14
|
-
pageSize: number;
|
|
15
|
-
/** 数组开始位置 */
|
|
16
|
-
startIndex: number;
|
|
17
|
-
/** 数组结束位置 */
|
|
18
|
-
endIndex: number;
|
|
19
|
-
/** 行高 */
|
|
20
|
-
rowHeight: number;
|
|
21
|
-
/** 表格定位上边距 */
|
|
22
|
-
offsetTop: number;
|
|
23
|
-
/** 纵向滚动条位置,用于判断是横向滚动还是纵向 */
|
|
24
|
-
scrollTop: number;
|
|
25
|
-
};
|
|
26
|
-
/** 暂存横向虚拟滚动的数据 */
|
|
27
|
-
export type VirtualScrollXStore = {
|
|
28
|
-
/** 容器宽度 */
|
|
29
|
-
containerWidth: number;
|
|
30
|
-
/** 开始位置 */
|
|
31
|
-
startIndex: number;
|
|
32
|
-
/** 结束始位置 */
|
|
33
|
-
endIndex: number;
|
|
34
|
-
/** 表格定位左边距 */
|
|
35
|
-
offsetLeft: number;
|
|
36
|
-
/** 横向滚动位置,用于判断是横向滚动还是纵向 */
|
|
37
|
-
scrollLeft: number;
|
|
38
|
-
};
|
|
39
|
-
/**
|
|
40
|
-
* 虚拟滚动
|
|
41
|
-
* @param param0
|
|
42
|
-
* @returns
|
|
43
|
-
*/
|
|
44
|
-
export declare function useVirtualScroll<DT extends Record<string, any>>({ props, tableContainer, dataSourceCopy, tableHeaderLast }: Option<DT>): {
|
|
45
|
-
virtualScroll: Ref<{
|
|
46
|
-
containerHeight: number;
|
|
47
|
-
pageSize: number;
|
|
48
|
-
startIndex: number;
|
|
49
|
-
endIndex: number;
|
|
50
|
-
rowHeight: number;
|
|
51
|
-
offsetTop: number;
|
|
52
|
-
scrollTop: number;
|
|
53
|
-
}>;
|
|
54
|
-
virtualScrollX: Ref<{
|
|
55
|
-
containerWidth: number;
|
|
56
|
-
startIndex: number;
|
|
57
|
-
endIndex: number;
|
|
58
|
-
offsetLeft: number;
|
|
59
|
-
scrollLeft: number;
|
|
60
|
-
}>;
|
|
61
|
-
virtual_on: import("vue").ComputedRef<any>;
|
|
62
|
-
virtual_dataSourcePart: import("vue").ComputedRef<DT[]>;
|
|
63
|
-
virtual_offsetBottom: import("vue").ComputedRef<number>;
|
|
64
|
-
virtualX_on: import("vue").ComputedRef<any>;
|
|
65
|
-
virtualX_columnPart: import("vue").ComputedRef<StkTableColumn<DT>[]>;
|
|
66
|
-
virtualX_offsetRight: import("vue").ComputedRef<number>;
|
|
67
|
-
initVirtualScroll: (height?: number) => void;
|
|
68
|
-
initVirtualScrollY: (height?: number) => void;
|
|
69
|
-
initVirtualScrollX: () => void;
|
|
70
|
-
updateVirtualScrollY: (sTop?: number) => void;
|
|
71
|
-
updateVirtualScrollX: (sLeft?: number) => void;
|
|
72
|
-
};
|
|
73
|
-
export {};
|
|
1
|
+
import { Ref, ShallowRef } from 'vue';
|
|
2
|
+
import { StkTableColumn } from './types';
|
|
3
|
+
type Option<DT extends Record<string, any>> = {
|
|
4
|
+
tableContainer: Ref<HTMLElement | undefined>;
|
|
5
|
+
props: any;
|
|
6
|
+
dataSourceCopy: ShallowRef<DT[]>;
|
|
7
|
+
tableHeaderLast: Ref<StkTableColumn<DT>[]>;
|
|
8
|
+
};
|
|
9
|
+
/** 暂存纵向虚拟滚动的数据 */
|
|
10
|
+
export type VirtualScrollStore = {
|
|
11
|
+
/** 容器高度 */
|
|
12
|
+
containerHeight: number;
|
|
13
|
+
/** 一页的大小 */
|
|
14
|
+
pageSize: number;
|
|
15
|
+
/** 数组开始位置 */
|
|
16
|
+
startIndex: number;
|
|
17
|
+
/** 数组结束位置 */
|
|
18
|
+
endIndex: number;
|
|
19
|
+
/** 行高 */
|
|
20
|
+
rowHeight: number;
|
|
21
|
+
/** 表格定位上边距 */
|
|
22
|
+
offsetTop: number;
|
|
23
|
+
/** 纵向滚动条位置,用于判断是横向滚动还是纵向 */
|
|
24
|
+
scrollTop: number;
|
|
25
|
+
};
|
|
26
|
+
/** 暂存横向虚拟滚动的数据 */
|
|
27
|
+
export type VirtualScrollXStore = {
|
|
28
|
+
/** 容器宽度 */
|
|
29
|
+
containerWidth: number;
|
|
30
|
+
/** 开始位置 */
|
|
31
|
+
startIndex: number;
|
|
32
|
+
/** 结束始位置 */
|
|
33
|
+
endIndex: number;
|
|
34
|
+
/** 表格定位左边距 */
|
|
35
|
+
offsetLeft: number;
|
|
36
|
+
/** 横向滚动位置,用于判断是横向滚动还是纵向 */
|
|
37
|
+
scrollLeft: number;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* 虚拟滚动
|
|
41
|
+
* @param param0
|
|
42
|
+
* @returns
|
|
43
|
+
*/
|
|
44
|
+
export declare function useVirtualScroll<DT extends Record<string, any>>({ props, tableContainer, dataSourceCopy, tableHeaderLast }: Option<DT>): {
|
|
45
|
+
virtualScroll: Ref<{
|
|
46
|
+
containerHeight: number;
|
|
47
|
+
pageSize: number;
|
|
48
|
+
startIndex: number;
|
|
49
|
+
endIndex: number;
|
|
50
|
+
rowHeight: number;
|
|
51
|
+
offsetTop: number;
|
|
52
|
+
scrollTop: number;
|
|
53
|
+
}>;
|
|
54
|
+
virtualScrollX: Ref<{
|
|
55
|
+
containerWidth: number;
|
|
56
|
+
startIndex: number;
|
|
57
|
+
endIndex: number;
|
|
58
|
+
offsetLeft: number;
|
|
59
|
+
scrollLeft: number;
|
|
60
|
+
}>;
|
|
61
|
+
virtual_on: import("vue").ComputedRef<any>;
|
|
62
|
+
virtual_dataSourcePart: import("vue").ComputedRef<DT[]>;
|
|
63
|
+
virtual_offsetBottom: import("vue").ComputedRef<number>;
|
|
64
|
+
virtualX_on: import("vue").ComputedRef<any>;
|
|
65
|
+
virtualX_columnPart: import("vue").ComputedRef<StkTableColumn<DT>[]>;
|
|
66
|
+
virtualX_offsetRight: import("vue").ComputedRef<number>;
|
|
67
|
+
initVirtualScroll: (height?: number) => void;
|
|
68
|
+
initVirtualScrollY: (height?: number) => void;
|
|
69
|
+
initVirtualScrollX: () => void;
|
|
70
|
+
updateVirtualScrollY: (sTop?: number) => void;
|
|
71
|
+
updateVirtualScrollX: (sLeft?: number) => void;
|
|
72
|
+
};
|
|
73
|
+
export {};
|
|
@@ -1,23 +1,25 @@
|
|
|
1
|
-
import { Order, SortOption, SortState, StkTableColumn } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* 对有序数组插入新数据
|
|
4
|
-
* @param sortState
|
|
5
|
-
* @param sortState.dataIndex 排序的列
|
|
6
|
-
* @param sortState.order 排序顺序
|
|
7
|
-
* @param sortState.sortType 排序方式
|
|
8
|
-
* @param newItem 要插入的数据
|
|
9
|
-
* @param targetArray 表格数据
|
|
10
|
-
*/
|
|
11
|
-
export declare function insertToOrderedArray<T extends object>(sortState: SortState<keyof T>, newItem: any, targetArray: T[]): T[];
|
|
12
|
-
/**
|
|
13
|
-
* 表格排序抽离
|
|
14
|
-
* 可以在组件外部自己实现表格排序,组件配置remote,使表格不排序。
|
|
15
|
-
* 使用者在@sort-change事件中自行更改table props 'dataSource'完成排序。
|
|
16
|
-
* TODO: key 唯一值,排序字段相同时,根据唯一值排序。
|
|
17
|
-
* @param sortOption 列配置
|
|
18
|
-
* @param order 排序方式
|
|
19
|
-
* @param dataSource 排序的数组
|
|
20
|
-
*/
|
|
21
|
-
export declare function tableSort(sortOption: SortOption, order: Order, dataSource: any[]): any[];
|
|
22
|
-
/** 表头column配置的层级 */
|
|
23
|
-
export declare function howDeepTheHeader(arr: StkTableColumn<any>[], level?: number): number;
|
|
1
|
+
import { Order, SortOption, SortState, StkTableColumn } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* 对有序数组插入新数据
|
|
4
|
+
* @param sortState
|
|
5
|
+
* @param sortState.dataIndex 排序的列
|
|
6
|
+
* @param sortState.order 排序顺序
|
|
7
|
+
* @param sortState.sortType 排序方式
|
|
8
|
+
* @param newItem 要插入的数据
|
|
9
|
+
* @param targetArray 表格数据
|
|
10
|
+
*/
|
|
11
|
+
export declare function insertToOrderedArray<T extends object>(sortState: SortState<keyof T>, newItem: any, targetArray: T[]): T[];
|
|
12
|
+
/**
|
|
13
|
+
* 表格排序抽离
|
|
14
|
+
* 可以在组件外部自己实现表格排序,组件配置remote,使表格不排序。
|
|
15
|
+
* 使用者在@sort-change事件中自行更改table props 'dataSource'完成排序。
|
|
16
|
+
* TODO: key 唯一值,排序字段相同时,根据唯一值排序。
|
|
17
|
+
* @param sortOption 列配置
|
|
18
|
+
* @param order 排序方式
|
|
19
|
+
* @param dataSource 排序的数组
|
|
20
|
+
*/
|
|
21
|
+
export declare function tableSort(sortOption: SortOption, order: Order, dataSource: any[]): any[];
|
|
22
|
+
/** 表头column配置的层级 */
|
|
23
|
+
export declare function howDeepTheHeader(arr: StkTableColumn<any>[], level?: number): number;
|
|
24
|
+
/** 获取列宽 */
|
|
25
|
+
export declare function getColWidth(col: StkTableColumn<any> | null): number;
|