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 CHANGED
@@ -4,15 +4,30 @@
4
4
 
5
5
  ## 优化
6
6
 
7
- 1.用div+grid布局, 每一行的行高是通过@chenglou-pretext计算的, 这样不会触发 ResizeObserver 导致重排。
8
-
9
- 2.大数据时, 会通过worker线程计算高度,然后逐渐渲染最大高度,提升首次渲染性能。
10
-
11
- 3.表格支持激活时,保持滚动条位置。
12
-
13
- 4.影响滚动性能的自定义插槽,增加配置lazyLoadSlot=true,用于延迟加载插槽内容,增加滚动性能。
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
- <PretextTable
28
- ref="pertextTableRef"
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
- const PretextTable = defineAsyncComponent(
39
- () => import("@/components/pretextTable/pretextTable.vue")
40
- )
62
+ import { ref,defineAsyncComponent } from 'vue'
63
+ import HolyesTable, { HolyesTableColumnPropsType, HolyesTableFooterProps } from "holyes-table"
64
+
65
+ const tableRef = ref()
41
66
 
42
- const columns = ref([
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 = r[
74
+ const tableData = [
49
75
  { name: '张三', age: 25, address: '北京市朝阳区' },
50
76
  { name: '李四', age: 30, address: '上海市浦东新区' }
51
77
  ]
52
78
 
53
- const pertextTableRef = ref()
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
- pertextTableRef.value.reloadData(tableData)
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< PretextTableColumnPropsType> | [] | 表格列配置 |
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< PretextTableFooterProps> | [] | 表尾行属性配置 |
77
- | treeConfig | PretextTableTreeConfig | {} | 树形结构配置项,详见下方说明 |
78
- | expandConfig | PretextTableExpandConfig | {} | 展开行配置项,详见下方说明 |
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 PretextTableColumnPropsType {
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: PretextTableFilterType
105
- listOptions?: { label: string; value: PretextTableFilterlistOptions }[]
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?: PretextTableColumnPropsType[]
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 PretextTableTreeConfig {
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 PretextTableExpandConfig {
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: PretextTableColumnPropsType) | 点击表头单元格 |
337
- | cellClick | (row: any, column: PretextTableColumnPropsType) | 点击单元格 |
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: PretextTableColumnPropsType, width: number) | 列调整宽度 |
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
- <PretextTable
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
- <PretextTable
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
- </PretextTable>
513
+ </HolyesTable>
470
514
 
471
515
  <script setup>
472
516
  const columns = [