holyes-table 0.0.1 → 1.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 +82 -38
- package/dist/assets/pretextTableGetItemHeight-DzbzA5Qb.js +44 -0
- package/dist/index.css +2 -0
- package/dist/index.mjs +6643 -0
- package/dist/lib/main.d.ts +3 -3
- package/dist/lib/pretextTable/hook/useCheckbox.d.ts +24 -0
- package/dist/lib/pretextTable/hook/useExpand.d.ts +26 -0
- package/dist/lib/pretextTable/hook/useFilter.d.ts +119 -0
- package/dist/lib/pretextTable/hook/useFooter.d.ts +37 -0
- package/dist/lib/pretextTable/hook/useGridStyles.d.ts +21 -0
- package/dist/lib/pretextTable/hook/useHeader.d.ts +24 -0
- package/dist/lib/pretextTable/hook/useHeaderResize.d.ts +13 -0
- package/dist/lib/pretextTable/hook/useSort.d.ts +21 -0
- package/dist/lib/pretextTable/hook/useTree.d.ts +28 -0
- package/dist/lib/pretextTable/pretextTable.vue.d.ts +259 -0
- package/dist/lib/pretextTable/type.d.ts +258 -0
- package/dist/lib/pretextTable/useHolyesTable.d.ts +171 -0
- package/dist/lib/pretextTable/utils/index.d.ts +6 -0
- package/dist/lib/pretextTable/worker/pretextTableGetItemHeight.d.ts +50 -0
- package/package.json +10 -8
- package/dist/index.js +0 -21
- package/dist/lib/aa/aa.vue.d.ts +0 -2
package/README.md
CHANGED
|
@@ -4,15 +4,30 @@
|
|
|
4
4
|
|
|
5
5
|
## 优化
|
|
6
6
|
|
|
7
|
-
1
|
|
8
|
-
|
|
9
|
-
2
|
|
10
|
-
|
|
11
|
-
3
|
|
12
|
-
|
|
13
|
-
4
|
|
14
|
-
|
|
15
|
-
5
|
|
7
|
+
1. 用div+grid布局, 每一行的行高是通过@chenglou-pretext计算的, 这样不会触发 ResizeObserver 导致重排。
|
|
8
|
+
|
|
9
|
+
2. 大数据时, 会通过worker线程计算高度,然后逐渐渲染最大高度,提升首次渲染性能。
|
|
10
|
+
|
|
11
|
+
3. 表格支持激活时,保持滚动条位置。
|
|
12
|
+
|
|
13
|
+
4. 影响滚动性能的自定义插槽,增加配置lazyLoadSlot=true,用于延迟加载插槽内容,增加滚动性能。
|
|
14
|
+
|
|
15
|
+
5. 支持:
|
|
16
|
+
- 横向/纵向虚拟滚动
|
|
17
|
+
- 排序(包括树结构)
|
|
18
|
+
- 筛选(包括树结构)
|
|
19
|
+
- 行高自适应
|
|
20
|
+
- 表头分组
|
|
21
|
+
- 自定义插槽(尽量少用,影响滚动性能;但支持懒加载插槽,滚动会更流畅;插槽需指定行高)
|
|
22
|
+
- 表尾行
|
|
23
|
+
- 树结构数据
|
|
24
|
+
- 展开行
|
|
25
|
+
- 内置一些常用插槽,性能更好,如
|
|
26
|
+
- a标签
|
|
27
|
+
- tag标签
|
|
28
|
+
- 图标
|
|
29
|
+
- 按钮组
|
|
30
|
+
- 开关
|
|
16
31
|
|
|
17
32
|
## 组件依赖
|
|
18
33
|
|
|
@@ -22,38 +37,67 @@
|
|
|
22
37
|
|
|
23
38
|
## 基本用法
|
|
24
39
|
|
|
40
|
+
### 安装
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
pnpm i holyes-table
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 简单示例
|
|
47
|
+
|
|
25
48
|
```vue
|
|
26
49
|
<template>
|
|
27
|
-
<
|
|
28
|
-
ref="
|
|
50
|
+
<HolyesTable
|
|
51
|
+
ref="tableRef"
|
|
29
52
|
:columns="columns"
|
|
30
53
|
:height="400"
|
|
31
|
-
stripe
|
|
54
|
+
:stripe="true"
|
|
32
55
|
:row-config="{ isCurrent: true, isHover: true }"
|
|
33
|
-
|
|
56
|
+
:showFooter="true"
|
|
57
|
+
:footerProps="footerProps"
|
|
58
|
+
></HolyesTable>
|
|
34
59
|
</template>
|
|
35
60
|
|
|
36
61
|
<script setup>
|
|
37
|
-
import { ref } from 'vue'
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
)
|
|
62
|
+
import { ref,defineAsyncComponent } from 'vue'
|
|
63
|
+
import HolyesTable, { HolyesTableColumnPropsType, HolyesTableFooterProps } from "holyes-table"
|
|
64
|
+
|
|
65
|
+
const tableRef = ref()
|
|
41
66
|
|
|
42
|
-
|
|
67
|
+
/** 表格列配置 */
|
|
68
|
+
const columns:HolyesTableColumnPropsType[] = [
|
|
43
69
|
{ field: 'name', title: '姓名', width: 100 },
|
|
44
70
|
{ field: 'age', title: '年龄', width: 80 },
|
|
45
71
|
{ field: 'address', title: '地址', width: 200 }
|
|
46
|
-
]
|
|
72
|
+
]
|
|
47
73
|
|
|
48
|
-
const tableData =
|
|
74
|
+
const tableData = [
|
|
49
75
|
{ name: '张三', age: 25, address: '北京市朝阳区' },
|
|
50
76
|
{ name: '李四', age: 30, address: '上海市浦东新区' }
|
|
51
77
|
]
|
|
52
78
|
|
|
53
|
-
|
|
79
|
+
/** 表尾行属性配置 */
|
|
80
|
+
const footerProps: HolyesTableFooterProps[] = [
|
|
81
|
+
// 表尾第一行
|
|
82
|
+
{
|
|
83
|
+
height: 30,
|
|
84
|
+
fieldTypes: [ // 表尾行字段类型, 顺序没有影响
|
|
85
|
+
{
|
|
86
|
+
field: "name",
|
|
87
|
+
type: "文本", // 文本, 会直接使用text属性
|
|
88
|
+
text: "小计"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
field: "salary",
|
|
92
|
+
type: "合计", // 合计会自动计算
|
|
93
|
+
dataType: "number2"
|
|
94
|
+
}
|
|
95
|
+
]
|
|
96
|
+
}
|
|
97
|
+
]
|
|
54
98
|
|
|
55
99
|
// 重新设置数据
|
|
56
|
-
|
|
100
|
+
tableRef.value.reloadData(tableData)
|
|
57
101
|
|
|
58
102
|
</script>
|
|
59
103
|
```
|
|
@@ -62,7 +106,7 @@ pertextTableRef.value.reloadData(tableData)
|
|
|
62
106
|
|
|
63
107
|
| 属性名 | 类型 | 默认值 | 说明 |
|
|
64
108
|
| -------- | ------ | -------- | -------- |
|
|
65
|
-
| columns | Array<
|
|
109
|
+
| columns | Array< HolyesTableColumnPropsType> | [] | 表格列配置 |
|
|
66
110
|
| height | Number | - | 表格高度 |
|
|
67
111
|
| cellMinHeight | Number | 22 | 单元格最小行高 |
|
|
68
112
|
| loading | Boolean | false | 是否显示加载状态 |
|
|
@@ -73,16 +117,16 @@ pertextTableRef.value.reloadData(tableData)
|
|
|
73
117
|
| stripe | Boolean | true | 是否显示斑马纹背景 |
|
|
74
118
|
| showOverflow | String | "" | 是否显示溢出内容,可选值:title/tooltip/ellipsis/空 |
|
|
75
119
|
| showFooter | Boolean | false | 是否显示表尾行 |
|
|
76
|
-
| footerProps | Array<
|
|
77
|
-
| treeConfig |
|
|
78
|
-
| expandConfig |
|
|
120
|
+
| footerProps | Array< HolyesTableFooterProps> | [] | 表尾行属性配置 |
|
|
121
|
+
| treeConfig | HolyesTableTreeConfig | {} | 树形结构配置项,详见下方说明 |
|
|
122
|
+
| expandConfig | HolyesTableExpandConfig | {} | 展开行配置项,详见下方说明 |
|
|
79
123
|
|
|
80
124
|
### 列配置说明 (columns)
|
|
81
125
|
|
|
82
126
|
列配置是表格的核心配置,支持以下属性:
|
|
83
127
|
|
|
84
128
|
```typescript
|
|
85
|
-
interface
|
|
129
|
+
interface HolyesTableColumnPropsType {
|
|
86
130
|
/** 字段名 */
|
|
87
131
|
field: string
|
|
88
132
|
/** 列标题 */
|
|
@@ -101,8 +145,8 @@ interface PretextTableColumnPropsType {
|
|
|
101
145
|
style?: any
|
|
102
146
|
/** 筛选配置 */
|
|
103
147
|
isFilter?: {
|
|
104
|
-
type:
|
|
105
|
-
listOptions?: { label: string; value:
|
|
148
|
+
type: HolyesTableFilterType
|
|
149
|
+
listOptions?: { label: string; value: HolyesTableFilterlistOptions }[]
|
|
106
150
|
}
|
|
107
151
|
/** 是否可调整宽度 */
|
|
108
152
|
resizable?: boolean
|
|
@@ -203,7 +247,7 @@ interface PretextTableColumnPropsType {
|
|
|
203
247
|
/** 表尾配置 */
|
|
204
248
|
footer?: any[]
|
|
205
249
|
/** 子列(表头分组) */
|
|
206
|
-
children?:
|
|
250
|
+
children?: HolyesTableColumnPropsType[]
|
|
207
251
|
}
|
|
208
252
|
```
|
|
209
253
|
|
|
@@ -258,7 +302,7 @@ const columns = [
|
|
|
258
302
|
### 树形结构配置 (treeConfig)
|
|
259
303
|
|
|
260
304
|
```typescript
|
|
261
|
-
interface
|
|
305
|
+
interface HolyesTableTreeConfig {
|
|
262
306
|
/** 是否开启展开行功能 */
|
|
263
307
|
isOpenTree: boolean
|
|
264
308
|
/** 自动将列表转为树结构 */
|
|
@@ -302,7 +346,7 @@ const treeConfig = {
|
|
|
302
346
|
### 展开行配置 (expandConfig)
|
|
303
347
|
|
|
304
348
|
```typescript
|
|
305
|
-
interface
|
|
349
|
+
interface HolyesTableExpandConfig {
|
|
306
350
|
/** 是否开启展开行功能 */
|
|
307
351
|
isExpand: boolean
|
|
308
352
|
/** 展开行高度 (像素), 必填 */
|
|
@@ -333,12 +377,12 @@ const expandConfig = {
|
|
|
333
377
|
|
|
334
378
|
| 事件名 | 参数 | 说明 |
|
|
335
379
|
| -------- | ------ | -------- |
|
|
336
|
-
| headerCellClick | (column:
|
|
337
|
-
| cellClick | (row: any, column:
|
|
380
|
+
| headerCellClick | (column: HolyesTableColumnPropsType) | 点击表头单元格 |
|
|
381
|
+
| cellClick | (row: any, column: HolyesTableColumnPropsType) | 点击单元格 |
|
|
338
382
|
| currentChange | (currentRow: any, oldCurrentRow: any) | 当前行变化 |
|
|
339
383
|
| checkboxChange | (checked: boolean, row: any) | 多选列变化 |
|
|
340
384
|
| checkboxAll | (checked: boolean) | 多选列全选 |
|
|
341
|
-
| resizableChange | (column:
|
|
385
|
+
| resizableChange | (column: HolyesTableColumnPropsType, width: number) | 列调整宽度 |
|
|
342
386
|
| toggleRowExpand | (rows: any[], expanded: boolean) | 展开/收起行 |
|
|
343
387
|
|
|
344
388
|
## Methods 方法
|
|
@@ -362,7 +406,7 @@ const expandConfig = {
|
|
|
362
406
|
|
|
363
407
|
```vue
|
|
364
408
|
<template>
|
|
365
|
-
<
|
|
409
|
+
<HolyesTable
|
|
366
410
|
ref="pretextTableRef"
|
|
367
411
|
:columns="columns"
|
|
368
412
|
:data="tableData"
|
|
@@ -443,7 +487,7 @@ const setExpandRow = (row,expanded: boolean) => {
|
|
|
443
487
|
### 自定义插槽
|
|
444
488
|
|
|
445
489
|
```vue
|
|
446
|
-
<
|
|
490
|
+
<HolyesTable
|
|
447
491
|
:columns="columns"
|
|
448
492
|
:data="tableData"
|
|
449
493
|
>
|
|
@@ -466,7 +510,7 @@ const setExpandRow = (row,expanded: boolean) => {
|
|
|
466
510
|
<template #status_footer="{ column }">
|
|
467
511
|
<span>123</span>
|
|
468
512
|
</template>
|
|
469
|
-
</
|
|
513
|
+
</HolyesTable>
|
|
470
514
|
|
|
471
515
|
<script setup>
|
|
472
516
|
const columns = [
|