stk-table-vue 0.0.1-beta.8 → 0.0.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 CHANGED
@@ -3,16 +3,20 @@
3
3
  Vue3 简易虚拟滚动表格。用于实时数据展示,新数据行高亮渐暗动效。
4
4
  js体积(未压缩41kb)
5
5
 
6
- ## 功能
6
+ ## Feature TODO:
7
7
  * [x] 高亮行,单元格。
8
8
  * [x] 横向虚拟滚动。
9
9
  * [x] 列固定。
10
10
  * [x] 表头拖动更改顺序。
11
- * [x] 表头列宽拖动。
11
+ * [x] 表头列宽拖动调整宽度。
12
12
  * [x] 多级表头。(不支持横向虚拟滚动)
13
13
  * [x] 支持table-layout: fixed 配置。
14
14
  * [x] 鼠标悬浮在表格上,键盘上下左右滚动虚拟表格
15
+ * [x] 斑马纹
15
16
  * [] 列固定阴影
17
+ * [] 不传row-key 时,自动按序号生成id
18
+ * [] 列筛选
19
+ * [] 非虚拟滚动时,大数据分批加载。
16
20
 
17
21
  ## Usage
18
22
  > npm install stk-table-vue
@@ -23,8 +27,8 @@ import { StkTable } from 'stk-table-vue'
23
27
  import { ref } from 'vue'
24
28
  const stkTable = ref<InstanceType<typeof StkTable>>();
25
29
  // highlight
26
- // stkTable.value.setHighlightDimRow([rowId])
27
- // stkTable.value.setHighlightDimCell(rowId,colId)
30
+ stkTable.value.setHighlightDimRow([rowId]);// highlight row
31
+ stkTable.value.setHighlightDimCell(rowId, colId) // highlight cell
28
32
  </script>
29
33
 
30
34
  <template>
@@ -35,70 +39,78 @@ const stkTable = ref<InstanceType<typeof StkTable>>();
35
39
  ## API
36
40
  ### StkTable Component Props
37
41
  ```ts
38
- export type StkProps = Partial<{
39
- width: string;
40
- /** 最小表格宽度 */
41
- minWidth: string;
42
- /** 表格最大宽度*/
43
- maxWidth: string;
44
- /** 是否使用 table-layout:fixed */
45
- fixedMode: boolean;
46
- /** 是否隐藏表头 */
47
- headless: boolean;
48
- /** 主题,亮、暗 */
49
- theme: 'light' | 'dark';
50
- /** 虚拟滚动 */
51
- virtual: boolean;
52
- /** x轴虚拟滚动 */
53
- virtualX: boolean;
54
- /** 表格列配置 */
55
- columns: StkTableColumn<any>[];
56
- /** 表格数据源 */
57
- dataSource: any[];
58
- /** 行唯一键 */
59
- rowKey: UniqKey;
60
- /** 列唯一键 */
61
- colKey: UniqKey;
62
- /** 空值展示文字 */
63
- emptyCellText: string;
64
- /** 暂无数据兜底高度是否撑满 */
65
- noDataFull: boolean;
66
- /** 是否展示暂无数据 */
67
- showNoData: boolean;
68
- /** 是否服务端排序,true则不排序数据 */
69
- sortRemote: boolean;
70
- /** 表头是否溢出展示... */
71
- showHeaderOverflow: boolean;
72
- /** 表体溢出是否展示... */
73
- showOverflow: boolean;
74
- /** 是否增加行hover class */
75
- showTrHoverClass: boolean;
76
- /** 表头是否可拖动 */
77
- headerDrag: boolean;
78
- /**
79
- * 给行附加className<br>
80
- * FIXME: 是否需要优化,因为不传此prop会使表格行一直执行空函数,是否有影响
81
- */
82
- rowClassName: (row: any, i: number) => string;
83
- /**
84
- * 列宽是否可拖动<br>
85
- * **不要设置**列minWidth,**必须**设置width<br>
86
- * 列宽拖动时,每一列都必须要有width,且minWidth/maxWidth不生效。table width会变为"fit-content"。
87
- */
88
- colResizable: boolean;
89
- /** 可拖动至最小的列宽 */
90
- colMinWidth: number;
91
- /**
92
- * 单元格分割线。
93
- * 默认横竖都有
94
- * "h" - 仅展示横线
95
- * "v" - 仅展示竖线
96
- * "body-v" - 仅表体展示竖线
97
- */
98
- bordered: boolean | 'h' | 'v' | 'body-v';
99
- /** 自动重新计算虚拟滚动高度宽度。默认true */
100
- autoResize: boolean;
101
- }>;
42
+ export type StkProps = {
43
+ width?: string;
44
+ /** 最小表格宽度 */
45
+ minWidth?: string;
46
+ /** 表格最大宽度*/
47
+ maxWidth?: string;
48
+ /** 斑马线条纹 */
49
+ stripe?: boolean;
50
+ /** 是否使用 table-layout:fixed */
51
+ fixedMode?: boolean;
52
+ /** 是否隐藏表头 */
53
+ headless?: boolean;
54
+ /** 主题,亮、暗 */
55
+ theme?: 'light' | 'dark';
56
+ /** 行高 */
57
+ rowHeight?: number;
58
+ /** 虚拟滚动 */
59
+ virtual?: boolean;
60
+ /** x轴虚拟滚动 */
61
+ virtualX?: boolean;
62
+ /** 表格列配置 */
63
+ columns?: StkTableColumn<any>[];
64
+ /** 表格数据源 */
65
+ dataSource?: any[];
66
+ /** 行唯一键 */
67
+ rowKey?: UniqKey;
68
+ /** 列唯一键 */
69
+ colKey?: UniqKey;
70
+ /** 空值展示文字 */
71
+ emptyCellText?: string;
72
+ /** 暂无数据兜底高度是否撑满 */
73
+ noDataFull?: boolean;
74
+ /** 是否展示暂无数据 */
75
+ showNoData?: boolean;
76
+ /** 是否服务端排序,true则不排序数据 */
77
+ sortRemote?: boolean;
78
+ /** 表头是否溢出展示... */
79
+ showHeaderOverflow?: boolean;
80
+ /** 表体溢出是否展示... */
81
+ showOverflow?: boolean;
82
+ /** 是否增加行hover class */
83
+ showTrHoverClass?: boolean;
84
+ /** 表头是否可拖动 */
85
+ headerDrag?: boolean;
86
+ /**
87
+ * 给行附加className<br>
88
+ * FIXME: 是否需要优化,因为不传此prop会使表格行一直执行空函数,是否有影响
89
+ */
90
+ rowClassName?: (row: any, i: number) => string;
91
+ /**
92
+ * 列宽是否可拖动<br>
93
+ * **不要设置**列minWidth,**必须**设置width<br>
94
+ * 列宽拖动时,每一列都必须要有width,且minWidth/maxWidth不生效。table width会变为"fit-content"。
95
+ */
96
+ colResizable?: boolean;
97
+ /** 可拖动至最小的列宽 */
98
+ colMinWidth?: number;
99
+ /**
100
+ * 单元格分割线。
101
+ * 默认横竖都有
102
+ * "h" - 仅展示横线
103
+ * "v" - 仅展示竖线
104
+ * "body-v" - 仅表体展示竖线
105
+ */
106
+ bordered?: boolean | 'h' | 'v' | 'body-v';
107
+ /**
108
+ * 自动重新计算虚拟滚动高度宽度。默认true
109
+ * [非响应式]
110
+ * 传入方法表示resize后的回调
111
+ */
112
+ autoResize?: boolean | (() => void);
113
+ };
102
114
  ```
103
115
 
104
116
  ### StkTableColumn
@@ -154,6 +166,8 @@ export type StkTableColumn<T extends Record<string, any>> = {
154
166
  :style="{height:props.height}"
155
167
  theme='dark'
156
168
  height='200px'
169
+ bordered="h"
170
+ :row-height="28"
157
171
  :show-overflow="false"
158
172
  :show-header-overflow="false"
159
173
  :sort-remote="false"
@@ -162,6 +176,9 @@ export type StkTableColumn<T extends Record<string, any>> = {
162
176
  virtual
163
177
  virtual-x
164
178
  no-data-full
179
+ col-resizable
180
+ auto-resize
181
+ :col-min-width="10"
165
182
  :headless="false"
166
183
  :data-source="dataSource"
167
184
  @current-change="onCurrentChange"