holyes-table 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 ADDED
@@ -0,0 +1,613 @@
1
+ # 组件说明
2
+
3
+ 这个是用@chenglou-pretext开发的虚拟滚动表格组件。
4
+
5
+ ## 优化
6
+
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
+ - @chenglou-pretext ^0.0.5
20
+ - vxe-pc-ui ^4.9.41
21
+ - xe-utils ^4.0.4
22
+
23
+ ## 基本用法
24
+
25
+ ```vue
26
+ <template>
27
+ <PretextTable
28
+ ref="pertextTableRef"
29
+ :columns="columns"
30
+ :height="400"
31
+ stripe
32
+ :row-config="{ isCurrent: true, isHover: true }"
33
+ />
34
+ </template>
35
+
36
+ <script setup>
37
+ import { ref } from 'vue'
38
+ const PretextTable = defineAsyncComponent(
39
+ () => import("@/components/pretextTable/pretextTable.vue")
40
+ )
41
+
42
+ const columns = ref([
43
+ { field: 'name', title: '姓名', width: 100 },
44
+ { field: 'age', title: '年龄', width: 80 },
45
+ { field: 'address', title: '地址', width: 200 }
46
+ ])
47
+
48
+ const tableData = r[
49
+ { name: '张三', age: 25, address: '北京市朝阳区' },
50
+ { name: '李四', age: 30, address: '上海市浦东新区' }
51
+ ]
52
+
53
+ const pertextTableRef = ref()
54
+
55
+ // 重新设置数据
56
+ pertextTableRef.value.reloadData(tableData)
57
+
58
+ </script>
59
+ ```
60
+
61
+ ## Props 属性
62
+
63
+ | 属性名 | 类型 | 默认值 | 说明 |
64
+ | -------- | ------ | -------- | -------- |
65
+ | columns | Array< PretextTableColumnPropsType> | [] | 表格列配置 |
66
+ | height | Number | - | 表格高度 |
67
+ | cellMinHeight | Number | 22 | 单元格最小行高 |
68
+ | loading | Boolean | false | 是否显示加载状态 |
69
+ | loadingConfig | Object | {} | 加载配置,包含text属性 |
70
+ | lazyLoadSlot | Boolean | false | 自定义插槽是否懒加载,默认否;开启后,自定义插槽多时滚动会更流畅 |
71
+ | rowConfig | Object | {} | 行配置,包含isCurrent(是否高亮当前行)和isHover(是否高亮悬停行) |
72
+ | sortConfig | Object | {} | 排序配置,包含trigger(触发方式:cell(默认点击单元格排序)/default(默认点击图标排序)) |
73
+ | stripe | Boolean | true | 是否显示斑马纹背景 |
74
+ | showOverflow | String | "" | 是否显示溢出内容,可选值:title/tooltip/ellipsis/空 |
75
+ | showFooter | Boolean | false | 是否显示表尾行 |
76
+ | footerProps | Array< PretextTableFooterProps> | [] | 表尾行属性配置 |
77
+ | treeConfig | PretextTableTreeConfig | {} | 树形结构配置项,详见下方说明 |
78
+ | expandConfig | PretextTableExpandConfig | {} | 展开行配置项,详见下方说明 |
79
+
80
+ ### 列配置说明 (columns)
81
+
82
+ 列配置是表格的核心配置,支持以下属性:
83
+
84
+ ```typescript
85
+ interface PretextTableColumnPropsType {
86
+ /** 字段名 */
87
+ field: string
88
+ /** 列标题 */
89
+ title: string
90
+ /** 列宽度 */
91
+ width?: number
92
+ /** 列最小宽度 */
93
+ minWidth?: number
94
+ /** 固定位置:left/right */
95
+ fixed?: 'left' | 'right' | ''
96
+ /** 是否可排序 */
97
+ sortable?: boolean
98
+ /** 列类型:seq(序号)/checkbox(多选) */
99
+ type?: 'seq' | 'checkbox'
100
+ /** 列样式 */
101
+ style?: any
102
+ /** 筛选配置 */
103
+ isFilter?: {
104
+ type: PretextTableFilterType
105
+ listOptions?: { label: string; value: PretextTableFilterlistOptions }[]
106
+ }
107
+ /** 是否可调整宽度 */
108
+ resizable?: boolean
109
+ /** 插槽配置 */
110
+ slots?: {
111
+ /** 自定义单元格插槽 */
112
+ default?: string
113
+ /** 插槽高度(有插槽时必填) */
114
+ defaultHeight?: number
115
+ /** 默认插槽类型:a(链接)/tag(标签)/icon(图标)/buttons(按钮组)/switch(开关) */
116
+ defaultType?: 'a' | 'tag' | 'icon' | 'buttons' | 'switch'
117
+ /** 插槽属性 */
118
+ defaultProps?: {
119
+ /** 标签插槽属性 */
120
+ tag?: {
121
+ /** 标签选项数组 */
122
+ options?: {
123
+ /** 标签状态 */
124
+ status?: 'primary' | 'success' | 'info' | 'warning' | 'error'
125
+ /** 标签颜色 */
126
+ color?: any
127
+ /** 标签显示的文本 */
128
+ label?: string
129
+ /** 标签对比的值 */
130
+ value: any
131
+ }[]
132
+ }
133
+ /** 图标插槽属性 */
134
+ icon?: {
135
+ /** 图标名称 */
136
+ name?: string
137
+ /** 图标样式 */
138
+ style?: any
139
+ }
140
+ /** 按钮组插槽属性 */
141
+ buttons?: {
142
+ /** 按钮组数组,每个元素是一行 div 的按钮数组 */
143
+ options?: {
144
+ /** 按钮内容 */
145
+ title?: string
146
+ /** 按钮提示 */
147
+ tip?: string
148
+ /** 按钮前缀图标 */
149
+ prefixIcon?: any
150
+ /** 按钮大小 */
151
+ size?: 'medium' | 'small' | 'mini'
152
+ /** 按钮类型 */
153
+ type?: 'primary' | 'danger'
154
+ /** 按钮样式 */
155
+ mode?: 'text' | 'button'
156
+ /** 按钮是否显示,取决于 row 的哪个字段 */
157
+ showField?: string
158
+ /** 按钮是否禁用,取决于 row 的哪个字段 */
159
+ disabledField?: string
160
+ /** 按钮是否加载中,取决于 row 的哪个字段 */
161
+ loadingField?: string
162
+ /** 按钮点击事件 */
163
+ onClick?: (row: any, index: number) => void
164
+ /** 其他参数 */
165
+ params?: any
166
+ }[][]
167
+ }
168
+ /** 开关插槽属性 */
169
+ switch?: {
170
+ /** 开关选中时显示的文本 */
171
+ checkedChildren?: string
172
+ /** 开关选中时显示的文本 */
173
+ openLabel?: string
174
+ /** 开关未选中时显示的文本 */
175
+ uncheckedChildren?: string
176
+ /** 开关未选中时显示的文本 */
177
+ closeLabel?: string
178
+ /** 开关选中时的值 */
179
+ checkedValue?: any
180
+ /** 开关未选中时的值 */
181
+ uncheckedValue?: any
182
+ /** 开关选中时的值 */
183
+ openValue?: any
184
+ /** 开关未选中时的值 */
185
+ closeValue?: any
186
+ /** 按钮是否显示,取决于 row 的哪个字段 */
187
+ showField?: string
188
+ /** 按钮是否禁用,取决于 row 的哪个字段 */
189
+ disabledField?: string
190
+ /** 按钮是否加载中,取决于 row 的哪个字段 */
191
+ loadingField?: string
192
+ /** 开关点击事件 */
193
+ onChange?: (row: any, index: number) => void
194
+ }
195
+ }
196
+ /** 表头插槽 */
197
+ header?: string
198
+ /** 表头插槽类型 */
199
+ headerType?: 'a'
200
+ /** 表尾插槽 */
201
+ footer?: string
202
+ }
203
+ /** 表尾配置 */
204
+ footer?: any[]
205
+ /** 子列(表头分组) */
206
+ children?: PretextTableColumnPropsType[]
207
+ }
208
+ ```
209
+
210
+ #### 列配置示例
211
+
212
+ ```javascript
213
+ const columns = [
214
+ // 序号列
215
+ { type: 'seq', title: '序号', width: 60 },
216
+
217
+ // 多选列
218
+ { type: 'checkbox', title: '选择', width: 60 },
219
+
220
+ // 普通列
221
+ { field: 'name', title: '姓名', width: 100, sortable: true },
222
+
223
+ // 固定列
224
+ { field: 'age', title: '年龄', width: 80, fixed: 'left' },
225
+
226
+ // 自定义插槽列
227
+ {
228
+ field: 'status',
229
+ title: '状态',
230
+ width: 100,
231
+ slots: {
232
+ default: 'statusSlot',
233
+ defaultHeight: 32
234
+ }
235
+ },
236
+
237
+ // 默认插槽类型列
238
+ {
239
+ field: 'link',
240
+ title: '链接',
241
+ width: 120,
242
+ slots: {
243
+ defaultType: 'a'
244
+ }
245
+ },
246
+
247
+ // 表头分组
248
+ {
249
+ title: '联系信息',
250
+ children: [
251
+ { field: 'phone', title: '电话', width: 120 },
252
+ { field: 'email', title: '邮箱', width: 150 }
253
+ ]
254
+ }
255
+ ]
256
+ ```
257
+
258
+ ### 树形结构配置 (treeConfig)
259
+
260
+ ```typescript
261
+ interface PretextTableTreeConfig {
262
+ /** 是否开启展开行功能 */
263
+ isOpenTree: boolean
264
+ /** 自动将列表转为树结构 */
265
+ transform?: boolean
266
+ /** 节点id字段, 默认是id */
267
+ idField?: string
268
+ /** 父节点字段, 默认是parentId */
269
+ parentField?: string
270
+ /** 子节点字段, 默认是children */
271
+ childrenField?: string
272
+ /** 树节点的缩进, 默认是20px */
273
+ indent?: number
274
+ /** 展开/收起的触发方式, 默认是default(点击按钮触发) */
275
+ trigger?: 'default' | 'cell' | 'row'
276
+ /** 是否懒加载 */
277
+ lazy?: boolean
278
+ /** 只对 lazy 启用后有效,标识是否存在子节点,从而控制是否允许被点击, 默认是hasChild */
279
+ hasChildField?: string
280
+ /** 懒加载方法 */
281
+ loadMethod?: (node: any) => any
282
+ /** 是否保留展开状态, 默认是false */
283
+ reserve?: boolean
284
+ /** 是否显示树形图标, 默认是true */
285
+ showIcon?: boolean
286
+ }
287
+ ```
288
+
289
+ #### 树形结构配置示例
290
+
291
+ ```javascript
292
+ const treeConfig = {
293
+ transform: true, // 自动将列表转为树结构
294
+ parentField: 'parentId', // 父节点字段
295
+ childrenField: 'children', // 子节点字段
296
+ indent: 20, // 缩进像素
297
+ trigger: 'default', // 点击按钮触发展开/收起
298
+ showIcon: true // 显示树形图标
299
+ }
300
+ ```
301
+
302
+ ### 展开行配置 (expandConfig)
303
+
304
+ ```typescript
305
+ interface PretextTableExpandConfig {
306
+ /** 是否开启展开行功能 */
307
+ isExpand: boolean
308
+ /** 展开行高度 (像素), 必填 */
309
+ height: number
310
+ /** 展开/收起的触发方式,默认是 default(点击按钮触发) */
311
+ trigger?: 'default' | 'cell' | 'row'
312
+ /** 展开行模式,默认是 undefined(展开行随着 x 轴滚动条滚动);
313
+ * inside(不随着 x 轴滚动条滚动) */
314
+ mode?: 'inside' | undefined
315
+ /** 插槽名称 */
316
+ slotName: string
317
+ }
318
+ ```
319
+
320
+ #### 展开行配置示例
321
+
322
+ ```javascript
323
+ const expandConfig = {
324
+ isExpand: true, // 开启展开行功能
325
+ height: 100, // 展开行高度(必填)
326
+ trigger: 'default', // 点击按钮触发展开/收起
327
+ mode: undefined, // 展开行随着 x 轴滚动条滚动
328
+ slotName: 'expandSlot' // 展开行插槽名称
329
+ }
330
+ ```
331
+
332
+ ## Emits 事件
333
+
334
+ | 事件名 | 参数 | 说明 |
335
+ | -------- | ------ | -------- |
336
+ | headerCellClick | (column: PretextTableColumnPropsType) | 点击表头单元格 |
337
+ | cellClick | (row: any, column: PretextTableColumnPropsType) | 点击单元格 |
338
+ | currentChange | (currentRow: any, oldCurrentRow: any) | 当前行变化 |
339
+ | checkboxChange | (checked: boolean, row: any) | 多选列变化 |
340
+ | checkboxAll | (checked: boolean) | 多选列全选 |
341
+ | resizableChange | (column: PretextTableColumnPropsType, width: number) | 列调整宽度 |
342
+ | toggleRowExpand | (rows: any[], expanded: boolean) | 展开/收起行 |
343
+
344
+ ## Methods 方法
345
+
346
+ 通过 `ref` 可以调用以下组件方法:
347
+
348
+ | 方法名 | 参数 | 返回值 | 说明 |
349
+ | -------- | ------ | -------- | -------- |
350
+ | reloadData | `(data: any[])` | `Promise<void>` | 重新设置表格数据 |
351
+ | getTableData | `()` | `{ fullData, visibleData }` | 获取表格数据(包含全部数据、当前可见数据) |
352
+ | getCheckboxRecords | `()` | `any[]` | 获取所有选中的行数据 |
353
+ | clearCheckboxRow | `()` | `void` | 清空多选列选中状态 |
354
+ | updateFooter | `()` | `void` | 更新表尾行数据 |
355
+ | updateFooterCellLabel | `(field: string, rowIndex: number, label: string)` | `void` | 更新表尾单元格文本 |
356
+ | setTreeExpand | `(rows: any[], expanded: boolean)` | `void` | 设置树形节点展开/收起 |
357
+ | setAllTreeExpand | `(isExpand: boolean)` | `void` | 设置所有树形节点展开/收起 |
358
+ | clearTreeExpand | `()` | `void` | 清除所有树形节点展开状态 |
359
+ | setRowExpand | `(rows: any[], expanded: boolean)` | `void` | 设置展开行展开/收起 |
360
+
361
+ ### 方法使用示例
362
+
363
+ ```vue
364
+ <template>
365
+ <PretextTable
366
+ ref="pretextTableRef"
367
+ :columns="columns"
368
+ :data="tableData"
369
+ />
370
+
371
+ <button @click="handleRefresh">刷新数据</button>
372
+ <button @click="handleGetSelected">获取选中行</button>
373
+ <button @click="handleClearExpand">清除树展开</button>
374
+ </template>
375
+
376
+ <script setup>
377
+ import { ref } from 'vue'
378
+
379
+ const pretextTableRef = ref()
380
+ const tableData = ref([
381
+ { id: 1, name: '张三', parentId: null },
382
+ { id: 2, name: '李四', parentId: 1 }
383
+ ])
384
+
385
+ /** 重新加载数据 */
386
+ const reloadData = () => {
387
+ pretextTableRef.value?.reloadData(tableData.value)
388
+ }
389
+
390
+ /** 获取表格数据 */
391
+ const getTableData = () => {
392
+ const tableData = pretextTableRef.value?.getTableData()
393
+ console.log('全部数据:', tableData.fullData)
394
+ console.log('当前可见数据:', tableData.visibleData)
395
+ }
396
+
397
+ /** 获取所有选中的行数据 */
398
+ const getCheckboxRecords = () => {
399
+ const selectedRows = pretextTableRef.value?.getCheckboxRecords() || []
400
+ console.log('选中的行:', selectedRows)
401
+ }
402
+
403
+ /** 清空多选列选中状态 */
404
+ const clearCheckboxRow = () => {
405
+ pretextTableRef.value?.clearCheckboxRow()
406
+ }
407
+
408
+ /** 更新表尾 */
409
+ const updateFooter = () => {
410
+ pretextTableRef.value?.updateFooter()
411
+ }
412
+
413
+ /** 更新表尾单元格文本 */
414
+ const updateFooterCell = () => {
415
+ pretextTableRef.value?.updateFooterCellLabel('name', 0, '合计')
416
+ }
417
+
418
+ /** 设置树形节点展开 */
419
+ const setExpandTree = (row) => {
420
+ pretextTableRef.value.setTreeExpand([row], true)
421
+ }
422
+
423
+ /** 清除树形展开状态 */
424
+ const clearTreeExpand = () => {
425
+ pretextTableRef.value?.clearTreeExpand()
426
+ }
427
+
428
+ /** 设置所有树形节点展开/收起 */
429
+ const setAllTreeExpand = (isExpand: boolean) => {
430
+ pretextTableRef.value.setAllTreeExpand(isExpand)
431
+ }
432
+
433
+ /** 设置展开行 */
434
+ const setExpandRow = (row,expanded: boolean) => {
435
+ pretextTableRef.value.setRowExpand([row], expanded)
436
+ }
437
+
438
+ </script>
439
+ ```
440
+
441
+ ## 插槽使用
442
+
443
+ ### 自定义插槽
444
+
445
+ ```vue
446
+ <PretextTable
447
+ :columns="columns"
448
+ :data="tableData"
449
+ >
450
+ <!-- 自定义状态插槽 -->
451
+ <template #status_default="{ row, column }">
452
+ <span :class="`status-${row.status}`">
453
+ {{ row.status === 'active' ? '活跃' : '禁用' }}
454
+ </span>
455
+ </template>
456
+
457
+ <!-- 自定义表头插槽 -->
458
+ <template #status_header="{ column }">
459
+ <div style="display: flex; align-items: center;">
460
+ <span>{{ column.title }}</span>
461
+ <vxe-icon name="question" style="margin-left: 4px;" />
462
+ </div>
463
+ </template>
464
+
465
+ <!-- 自定义底部插槽 -->
466
+ <template #status_footer="{ column }">
467
+ <span>123</span>
468
+ </template>
469
+ </PretextTable>
470
+
471
+ <script setup>
472
+ const columns = [
473
+ // 自定义插槽
474
+ {
475
+ field: 'status',
476
+ title: '状态',
477
+ width: 100,
478
+ slots: {
479
+ header: 'status_header',
480
+ default: 'status_default',
481
+ defaultHeight: 32, // 必须指定插槽高度
482
+ footer: "status_footer"
483
+ }
484
+ }
485
+ ]
486
+ </script>
487
+ ```
488
+
489
+ ### 默认插槽类型
490
+
491
+ 组件内置了多种默认插槽类型,无需自定义插槽:
492
+
493
+ 1. **链接类型 (a)**: 自动渲染为链接样式
494
+ 2. **标签类型 (tag)**: 自动渲染为标签样式
495
+ 3. **图标类型 (icon)**: 自动渲染为图标
496
+ 4. **按钮组类型 (buttons)**: 自动渲染为按钮组
497
+ 5. **开关类型 (switch)**: 自动渲染为开关
498
+
499
+ ```javascript
500
+ const columns = [
501
+ // 链接类型
502
+ {
503
+ field: 'link',
504
+ title: '链接',
505
+ slots: {
506
+ defaultType: 'a' // 自动渲染为链接
507
+ }
508
+ },
509
+
510
+ // 标签类型
511
+ {
512
+ field: 'tags',
513
+ title: '标签',
514
+ slots: {
515
+ defaultType: 'tag', // 自动渲染为标签
516
+ defaultProps: {
517
+ tag: {
518
+ options: [
519
+ { label: '活跃', value: '1', status: 'success' },
520
+ { label: '禁用', value: '0', status: 'warning' }
521
+ ]
522
+ }
523
+ }
524
+ }
525
+ },
526
+
527
+ // 图标类型
528
+ {
529
+ field: 'icon',
530
+ title: '图标',
531
+ slots: {
532
+ defaultType: 'icon',
533
+ defaultProps: {
534
+ icon: {
535
+ name: 'success', // 图标名称
536
+ style: { color: 'green' } // 图标样式
537
+ }
538
+ }
539
+ }
540
+ },
541
+
542
+ // 按钮组类型
543
+ {
544
+ field: 'buttons',
545
+ title: '操作',
546
+ slots: {
547
+ defaultType: 'buttons',
548
+ defaultProps: {
549
+ buttons: {
550
+ options: [
551
+ [
552
+ {
553
+ title: '编辑',
554
+ type: 'primary',
555
+ onClick: (row, index) => {
556
+ console.log('编辑', row)
557
+ }
558
+ },
559
+ {
560
+ title: '删除',
561
+ type: 'danger',
562
+ onClick: (row, index) => {
563
+ console.log('删除', row)
564
+ }
565
+ }
566
+ ]
567
+ ]
568
+ }
569
+ }
570
+ }
571
+ },
572
+
573
+ // 开关类型
574
+ {
575
+ field: 'status',
576
+ title: '状态',
577
+ slots: {
578
+ defaultType: 'switch',
579
+ defaultProps: {
580
+ switch: {
581
+ checkedChildren: '开',
582
+ uncheckedChildren: '关',
583
+ checkedValue: true,
584
+ uncheckedValue: false,
585
+ onChange: (row, index) => {
586
+ console.log('开关变化', row)
587
+ }
588
+ }
589
+ }
590
+ }
591
+ }
592
+ ]
593
+ ```
594
+
595
+ ## 注意事项
596
+
597
+ 1 **自定义插槽**
598
+
599
+ - 已经默认配置了一些单元格类型 defaultType,不一定都需要自定义插槽。
600
+ - 如果确实需要自定义插槽,必须填写插槽的高度defaultHeight,最好定死列宽度,因为整个表格的高度是根据 @chenglou-pretext 计算的,能准确计算出每一行的行高。
601
+
602
+ 2 **性能优化**
603
+
604
+ - 大数据量时建议设置 `lazyLoadSlot=true` 延迟加载自定义插槽内容
605
+ - 避免在自定义插槽中执行复杂计算或频繁更新的操作
606
+ - 合理使用 `cellMinHeight` 控制最小行高,避免行高计算不准确
607
+
608
+ 3 **样式定制**
609
+
610
+ - 表格使用 CSS Grid 布局,可以通过 CSS 变量自定义样式
611
+ - 支持斑马纹、悬停高亮、当前行高亮等样式配置
612
+ - 表头支持固定定位,滚动时保持可见
613
+ - 暂不支持自定义文字大小,会影响@chenglou-pretext 计算行高
package/dist/index.js ADDED
@@ -0,0 +1,21 @@
1
+ import { createElementBlock as e, openBlock as t } from "vue";
2
+ //#region lib/aa/aa.vue?vue&type=script&lang.ts
3
+ var n = {
4
+ inheritAttrs: !1,
5
+ name: "aa"
6
+ }, r = (e, t) => {
7
+ let n = e.__vccOpts || e;
8
+ for (let [e, r] of t) n[e] = r;
9
+ return n;
10
+ };
11
+ //#endregion
12
+ //#region lib/aa/aa.vue
13
+ function i(n, r, i, a, o, s) {
14
+ return t(), e("div", null, " 123 ");
15
+ }
16
+ var a = /* @__PURE__ */ r(n, [["render", i]]), o = a;
17
+ o.install = (e) => {
18
+ e.component("HolyesTable", o);
19
+ };
20
+ //#endregion
21
+ export { a as aa, o as default };
@@ -0,0 +1,2 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import { App } from 'vue';
2
+ import { default as aa } from './aa/aa.vue';
3
+ export { aa };
4
+ declare const HolyesTable: typeof aa & {
5
+ install: (app: App) => void;
6
+ };
7
+ export default HolyesTable;
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "holyes-table",
3
+ "version": "0.0.1",
4
+ "type": "module",
5
+ "description": "合力思虚拟滚动表格组件",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/lib/main.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/lib/main.d.ts",
12
+ "import": "./dist/index.js",
13
+ "default": "./dist/index.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "scripts": {
20
+ "dev": "vite",
21
+ "build": "vue-tsc --noEmit && vite build",
22
+ "prepublishOnly": "pnpm run build",
23
+ "登录npm": "npm login --registry https://registry.npmjs.org",
24
+ "发布npm": "npm publish --registry https://registry.npmjs.org",
25
+ "退出npm登录": "npm logout --registry https://registry.npmjs.org",
26
+ "查看npm登录": "npm whoami --registry https://registry.npmjs.org",
27
+ "补丁更新": "npm version patch --registry https://registry.npmjs.org",
28
+ "小功能更新": "npm version minor --registry https://registry.npmjs.org",
29
+ "大版本更新": "npm version major --registry https://registry.npmjs.org"
30
+ },
31
+ "peerDependencies": {
32
+ "vue": "^3.3.13",
33
+ "xe-utils": "^4.0.4",
34
+ "vxe-pc-ui": "^4.9.41"
35
+ },
36
+ "devDependencies": {
37
+ "@vitejs/plugin-vue": "^6.0.6",
38
+ "typescript": "~6.0.2",
39
+ "vite": "^8.0.3",
40
+ "vite-plugin-dts": "^5.0.0",
41
+ "vue": "^3.5.34",
42
+ "vue-tsc": "^2.2.12"
43
+ }
44
+ }