gzkx-package 0.1.49 → 0.1.51
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 +197 -47
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.mjs +98 -11
- package/dist/index.mjs.map +1 -1
- package/dist/utils/takeShot.d.ts +82 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 自定义组件使用文档
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本文档详细介绍了项目中核心自定义组件和工具 Hooks 的使用方法和参数说明。
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -9,10 +9,19 @@
|
|
|
9
9
|
- [安装](#安装)
|
|
10
10
|
- [快速开始](#快速开始)
|
|
11
11
|
- [组件列表](#组件列表)
|
|
12
|
-
1. [
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
1. [工具 Hooks](#1-工具-hooks)
|
|
13
|
+
- [useHotkeyListener 组合键监听](#11-usehotkeylistener---组合键监听-hook)
|
|
14
|
+
- [useTakeShotHotkey 截图专用组合键](#12-usetakeshothotkey---截图专用组合键-hook)
|
|
15
|
+
- [takeShot 截图接口](#13-takeshot---截图接口)
|
|
16
|
+
2. [CommonPage 通用页面组件](#2-commonpage-通用页面组件)
|
|
17
|
+
3. [CustomTable 自定义表格组件](#3-customtable-自定义表格组件)
|
|
18
|
+
4. [CustomForm 自定义表单组件](#4-customform-自定义表单组件)
|
|
19
|
+
5. [CustomAdd 新增/编辑弹窗组件](#5-customadd-新增编辑弹窗组件)
|
|
20
|
+
6. [常见使用场景](#6-常见使用场景)
|
|
21
|
+
7. [注意事项](#7-注意事项)
|
|
22
|
+
8. [常见问题](#8-常见问题)
|
|
23
|
+
9. [更新日志](#9-更新日志)
|
|
24
|
+
10. [技术支持](#10-技术支持)
|
|
16
25
|
|
|
17
26
|
---
|
|
18
27
|
|
|
@@ -146,6 +155,9 @@ export default MyPage;
|
|
|
146
155
|
| `CustomTable` | 自定义表格组件 | `import { CustomTable } from 'gzkx-package'` |
|
|
147
156
|
| `CustomForm` | 自定义表单组件 | `import { CustomForm } from 'gzkx-package'` |
|
|
148
157
|
| `CustomAdd` | 新增/编辑弹窗组件 | `import { CustomAdd } from 'gzkx-package'` |
|
|
158
|
+
| `useHotkeyListener` | 组合键监听 Hook | `import { useHotkeyListener } from 'gzkx-package'` |
|
|
159
|
+
| `useTakeShotHotkey` | 截图专用组合键 Hook | `import { useTakeShotHotkey } from 'gzkx-package'` |
|
|
160
|
+
| `takeShot` | 截图接口 | `import { takeShot } from 'gzkx-package'` |
|
|
149
161
|
|
|
150
162
|
### 5. TypeScript 类型导出
|
|
151
163
|
|
|
@@ -158,6 +170,7 @@ import type {
|
|
|
158
170
|
CustomTableHandle, // CustomTable Ref 类型
|
|
159
171
|
CustomColumnType, // 自定义表格列类型
|
|
160
172
|
CustomColumnsType, // 自定义表格列数组类型
|
|
173
|
+
HotkeyConfig, // 组合键配置类型
|
|
161
174
|
} from 'gzkx-package';
|
|
162
175
|
```
|
|
163
176
|
|
|
@@ -165,13 +178,149 @@ import type {
|
|
|
165
178
|
|
|
166
179
|
## 组件列表
|
|
167
180
|
|
|
168
|
-
## 1.
|
|
181
|
+
## 1. 工具 Hooks
|
|
169
182
|
|
|
170
|
-
### 1.1
|
|
183
|
+
### 1.1 useHotkeyListener - 组合键监听 Hook
|
|
184
|
+
|
|
185
|
+
用于监听键盘组合键(如 `Ctrl+S`、`Alt+F2`、`Ctrl+Shift+A` 等)。
|
|
186
|
+
|
|
187
|
+
#### 参数
|
|
188
|
+
|
|
189
|
+
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
190
|
+
|--------|------|------|--------|------|
|
|
191
|
+
| `hotkeys` | `HotkeyConfig[]` | 是 | - | 监听的组合键配置数组 |
|
|
192
|
+
| `onTrigger` | `(hotkey: HotkeyConfig, event: KeyboardEvent) => void` | 是 | - | 组合键触发回调 |
|
|
193
|
+
| `preventDefault` | `boolean` | 否 | `false` | 是否阻止默认行为 |
|
|
194
|
+
| `stopPropagation` | `boolean` | 否 | `false` | 是否阻止事件冒泡 |
|
|
195
|
+
|
|
196
|
+
#### HotkeyConfig 配置
|
|
197
|
+
|
|
198
|
+
```typescript
|
|
199
|
+
interface HotkeyConfig {
|
|
200
|
+
key: string; // 主键,如 'F2', 's', 'Enter'
|
|
201
|
+
ctrl?: boolean; // 是否按住 Ctrl
|
|
202
|
+
alt?: boolean; // 是否按住 Alt
|
|
203
|
+
shift?: boolean; // 是否按住 Shift
|
|
204
|
+
meta?: boolean; // 是否按住 Meta (Mac Command/Windows Win)
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
#### 使用示例
|
|
209
|
+
|
|
210
|
+
```tsx
|
|
211
|
+
import { useHotkeyListener } from 'gzkx-package';
|
|
212
|
+
|
|
213
|
+
const MyComponent = () => {
|
|
214
|
+
// 监听多个组合键
|
|
215
|
+
useHotkeyListener({
|
|
216
|
+
hotkeys: [
|
|
217
|
+
{ key: 'F2' }, // 单独 F2
|
|
218
|
+
{ key: 'F2', ctrl: true }, // Ctrl+F2
|
|
219
|
+
{ key: 's', ctrl: true, shift: true }, // Ctrl+Shift+S
|
|
220
|
+
{ key: 'a', alt: true }, // Alt+A
|
|
221
|
+
],
|
|
222
|
+
onTrigger: (hotkey, event) => {
|
|
223
|
+
console.log('组合键触发:', hotkey);
|
|
224
|
+
// 根据触发的组合键执行不同操作
|
|
225
|
+
},
|
|
226
|
+
preventDefault: true, // 阻止默认行为(如 Ctrl+S 保存页面)
|
|
227
|
+
});
|
|
228
|
+
|
|
229
|
+
return <div>按 F2 或 Ctrl+F2 触发</div>;
|
|
230
|
+
};
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### 1.2 useTakeShotHotkey - 截图专用组合键 Hook
|
|
234
|
+
|
|
235
|
+
专门用于截图功能的组合键监听 Hook,是 `useHotkeyListener` 的简化封装。
|
|
236
|
+
|
|
237
|
+
#### 参数
|
|
238
|
+
|
|
239
|
+
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
240
|
+
|--------|------|------|--------|------|
|
|
241
|
+
| `onTakeShot` | `() => void` | 是 | - | 截图触发回调 |
|
|
242
|
+
| `hotkeys` | `HotkeyConfig[]` | 否 | `[{ key: 'F2' }]` | 监听的组合键配置 |
|
|
243
|
+
|
|
244
|
+
#### 使用示例
|
|
245
|
+
|
|
246
|
+
```tsx
|
|
247
|
+
import { useTakeShotHotkey, takeShot } from 'gzkx-package';
|
|
248
|
+
import { message } from 'antd';
|
|
249
|
+
|
|
250
|
+
const UltrasoundWorkstation = () => {
|
|
251
|
+
// 使用默认 F2 键截图
|
|
252
|
+
useTakeShotHotkey(async () => {
|
|
253
|
+
const result = await takeShot();
|
|
254
|
+
if (result.code === 200) {
|
|
255
|
+
message.success('截图成功');
|
|
256
|
+
console.log('截图数据:', result.data?.imageBase64);
|
|
257
|
+
} else {
|
|
258
|
+
message.error(`截图失败: ${result.msg}`);
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
|
|
262
|
+
// 或者自定义组合键
|
|
263
|
+
useTakeShotHotkey(
|
|
264
|
+
async () => {
|
|
265
|
+
const result = await takeShot();
|
|
266
|
+
// 处理截图结果...
|
|
267
|
+
},
|
|
268
|
+
[
|
|
269
|
+
{ key: 'F9' }, // F9 截图
|
|
270
|
+
{ key: 'p', ctrl: true }, // Ctrl+P 截图
|
|
271
|
+
{ key: 's', ctrl: true, shift: true }, // Ctrl+Shift+S 截图
|
|
272
|
+
]
|
|
273
|
+
);
|
|
274
|
+
|
|
275
|
+
return <div>超声工作站 - 按 F9 或 Ctrl+P 截图</div>;
|
|
276
|
+
};
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### 1.3 takeShot - 截图接口
|
|
280
|
+
|
|
281
|
+
调用本地截图服务进行截图。
|
|
282
|
+
|
|
283
|
+
#### 配置方法
|
|
284
|
+
|
|
285
|
+
```tsx
|
|
286
|
+
import { setTakeShotConfig, takeShot } from 'gzkx-package';
|
|
287
|
+
|
|
288
|
+
// 配置截图服务(通常在应用初始化时)
|
|
289
|
+
setTakeShotConfig({
|
|
290
|
+
host: 'localhost', // 截图服务主机
|
|
291
|
+
port: 28081, // 截图服务端口
|
|
292
|
+
timeout: 10000, // 请求超时时间(ms)
|
|
293
|
+
});
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
#### 使用示例
|
|
297
|
+
|
|
298
|
+
```tsx
|
|
299
|
+
const handleCapture = async () => {
|
|
300
|
+
const result = await takeShot({
|
|
301
|
+
format: 'png', // 图片格式
|
|
302
|
+
quality: 100, // 图片质量
|
|
303
|
+
});
|
|
304
|
+
|
|
305
|
+
if (result.code === 200) {
|
|
306
|
+
// result.data.imageBase64 - Base64 图片数据
|
|
307
|
+
// result.data.imagePath - 图片保存路径
|
|
308
|
+
console.log('截图成功:', result.data);
|
|
309
|
+
} else {
|
|
310
|
+
console.error('截图失败:', result.msg);
|
|
311
|
+
}
|
|
312
|
+
};
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## 3. CommonPage 通用页面组件
|
|
318
|
+
|
|
319
|
+
### 3.1 组件概述
|
|
171
320
|
|
|
172
321
|
`CommonPage` 是一个集成了搜索表单、数据表格、新增/编辑弹窗的通用页面组件,适用于大部分 CRUD 操作场景。
|
|
173
322
|
|
|
174
|
-
###
|
|
323
|
+
### 3.2 Props 参数
|
|
175
324
|
|
|
176
325
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
177
326
|
|--------|------|------|--------|------|
|
|
@@ -207,7 +356,7 @@ import type {
|
|
|
207
356
|
| `validateConfig` | `ValidateConfig` | 否 | - | 表单验证配置 |
|
|
208
357
|
| `tableConfig` | `any` | 否 | - | 表格额外配置 |
|
|
209
358
|
|
|
210
|
-
####
|
|
359
|
+
#### 3.2.1 详细参数说明
|
|
211
360
|
|
|
212
361
|
**postParams 对象结构:**
|
|
213
362
|
|
|
@@ -243,7 +392,7 @@ import type {
|
|
|
243
392
|
}
|
|
244
393
|
```
|
|
245
394
|
|
|
246
|
-
###
|
|
395
|
+
### 3.3 Ref 暴露的方法
|
|
247
396
|
|
|
248
397
|
使用 `ref` 可以调用组件内部方法:
|
|
249
398
|
|
|
@@ -262,7 +411,7 @@ interface CommonPageHandle {
|
|
|
262
411
|
}
|
|
263
412
|
```
|
|
264
413
|
|
|
265
|
-
###
|
|
414
|
+
### 3.4 使用示例
|
|
266
415
|
|
|
267
416
|
```tsx
|
|
268
417
|
import { useRef } from 'react';
|
|
@@ -406,13 +555,13 @@ export default DemoPage;
|
|
|
406
555
|
|
|
407
556
|
---
|
|
408
557
|
|
|
409
|
-
##
|
|
558
|
+
## 4. CustomTable 自定义表格组件
|
|
410
559
|
|
|
411
|
-
###
|
|
560
|
+
### 4.1 组件概述
|
|
412
561
|
|
|
413
562
|
`CustomTable` 是对 Ant Design Table 组件的增强封装,支持用户自定义表格列配置、保存配置到后端、序号列、树形数据等功能。
|
|
414
563
|
|
|
415
|
-
###
|
|
564
|
+
### 4.2 Props 参数
|
|
416
565
|
|
|
417
566
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
418
567
|
|--------|------|------|--------|------|
|
|
@@ -428,14 +577,14 @@ export default DemoPage;
|
|
|
428
577
|
| `showTableConfig` | `boolean` | 否 | `true` | 是否显示表格配置按钮和序号列 |
|
|
429
578
|
| `...rest` | `any` | 否 | - | 其他 Ant Design Table 原生属性 |
|
|
430
579
|
|
|
431
|
-
###
|
|
580
|
+
### 4.3 特色功能
|
|
432
581
|
|
|
433
582
|
1. **表格配置功能**:用户可以自定义列的显示、宽度、对齐方式、排序等,配置会保存到后端。
|
|
434
583
|
2. **自动序号列**:自动添加序号列(可通过 `showTableConfig` 控制)。
|
|
435
584
|
3. **树形数据支持**:支持展开/收起树形数据。
|
|
436
585
|
4. **Tooltip 支持**:单元格内容过长时自动显示 Tooltip。
|
|
437
586
|
|
|
438
|
-
###
|
|
587
|
+
### 4.4 Ref 暴露的方法
|
|
439
588
|
|
|
440
589
|
使用 `ref` 可以调用组件内部方法:
|
|
441
590
|
|
|
@@ -528,7 +677,7 @@ const DemoTable = () => {
|
|
|
528
677
|
};
|
|
529
678
|
```
|
|
530
679
|
|
|
531
|
-
###
|
|
680
|
+
### 4.6 列配置弹窗说明
|
|
532
681
|
|
|
533
682
|
当 `showTableConfig={true}` 时,序号列旁边会显示设置图标,点击后打开配置弹窗,可以配置:
|
|
534
683
|
|
|
@@ -543,13 +692,13 @@ const DemoTable = () => {
|
|
|
543
692
|
|
|
544
693
|
---
|
|
545
694
|
|
|
546
|
-
##
|
|
695
|
+
## 5. CustomForm 自定义表单组件
|
|
547
696
|
|
|
548
|
-
###
|
|
697
|
+
### 5.1 组件概述
|
|
549
698
|
|
|
550
699
|
`CustomForm` 是一个基于配置的表单组件,通过传入配置数组即可快速生成表单,支持多种表单项类型。
|
|
551
700
|
|
|
552
|
-
###
|
|
701
|
+
### 5.2 Props 参数
|
|
553
702
|
|
|
554
703
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
555
704
|
|--------|------|------|--------|------|
|
|
@@ -568,7 +717,7 @@ const DemoTable = () => {
|
|
|
568
717
|
| `onSearchFormChange` | `Function` | 否 | - | 表单值变化回调 |
|
|
569
718
|
| `...restFormProps` | `any` | 否 | - | 其他 Ant Design Form 原生属性 |
|
|
570
719
|
|
|
571
|
-
###
|
|
720
|
+
### 5.3 FormItemConfig 配置项
|
|
572
721
|
|
|
573
722
|
```typescript
|
|
574
723
|
interface FormItemConfig {
|
|
@@ -593,7 +742,7 @@ interface FormItemOption {
|
|
|
593
742
|
}
|
|
594
743
|
```
|
|
595
744
|
|
|
596
|
-
###
|
|
745
|
+
### 5.4 支持的表单类型
|
|
597
746
|
|
|
598
747
|
| type 值 | 说明 | 额外属性 |
|
|
599
748
|
|---------|------|---------|
|
|
@@ -607,7 +756,7 @@ interface FormItemOption {
|
|
|
607
756
|
| `deptSelect` | 科室选择(自动加载数据) | - |
|
|
608
757
|
| `orgSelect` | 机构选择(自动加载数据) | - |
|
|
609
758
|
|
|
610
|
-
###
|
|
759
|
+
### 5.5 Ref 暴露的方法
|
|
611
760
|
|
|
612
761
|
```typescript
|
|
613
762
|
interface CustomFormHandle {
|
|
@@ -616,7 +765,7 @@ interface CustomFormHandle {
|
|
|
616
765
|
}
|
|
617
766
|
```
|
|
618
767
|
|
|
619
|
-
###
|
|
768
|
+
### 5.6 使用示例
|
|
620
769
|
|
|
621
770
|
```tsx
|
|
622
771
|
import { useRef } from 'react';
|
|
@@ -687,13 +836,13 @@ const DemoForm = () => {
|
|
|
687
836
|
|
|
688
837
|
---
|
|
689
838
|
|
|
690
|
-
##
|
|
839
|
+
## 6. CustomAdd 新增/编辑弹窗组件
|
|
691
840
|
|
|
692
|
-
###
|
|
841
|
+
### 6.1 组件概述
|
|
693
842
|
|
|
694
843
|
`CustomAdd` 是一个功能强大的弹窗表单组件,支持新增、编辑、查看三种模式,支持多种表单项类型、表单验证、Tab 分组等。
|
|
695
844
|
|
|
696
|
-
###
|
|
845
|
+
### 6.2 Props 参数
|
|
697
846
|
|
|
698
847
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
699
848
|
|--------|------|------|--------|------|
|
|
@@ -711,7 +860,7 @@ const DemoForm = () => {
|
|
|
711
860
|
| `CustomModalFooter` | `Function` | 否 | - | 自定义底部按钮 |
|
|
712
861
|
| `validateConfig` | `ValidateConfig` | 否 | - | 验证配置 |
|
|
713
862
|
|
|
714
|
-
###
|
|
863
|
+
### 6.3 AddItemConfig 配置项
|
|
715
864
|
|
|
716
865
|
```typescript
|
|
717
866
|
interface AddItemConfig {
|
|
@@ -740,7 +889,7 @@ interface AddItemConfig {
|
|
|
740
889
|
}
|
|
741
890
|
```
|
|
742
891
|
|
|
743
|
-
###
|
|
892
|
+
### 6.4 支持的表单类型
|
|
744
893
|
|
|
745
894
|
| type 值 | 说明 | 额外配置 |
|
|
746
895
|
|---------|------|---------|
|
|
@@ -764,7 +913,7 @@ interface AddItemConfig {
|
|
|
764
913
|
| `inputnumberoption` | 数字输入框+下拉框组合 | `optionname`, `options` |
|
|
765
914
|
| `doubleValue` | 双输入框(如范围) | `firstLabel`, `secondLabel`, `separator` |
|
|
766
915
|
|
|
767
|
-
###
|
|
916
|
+
### 6.5 ValidateConfig 验证配置
|
|
768
917
|
|
|
769
918
|
```typescript
|
|
770
919
|
interface ValidateConfig {
|
|
@@ -780,7 +929,7 @@ interface ValidateConfig {
|
|
|
780
929
|
}
|
|
781
930
|
```
|
|
782
931
|
|
|
783
|
-
###
|
|
932
|
+
### 6.6 Ref 暴露的方法
|
|
784
933
|
|
|
785
934
|
```typescript
|
|
786
935
|
interface CustomAddHandle {
|
|
@@ -789,9 +938,9 @@ interface CustomAddHandle {
|
|
|
789
938
|
}
|
|
790
939
|
```
|
|
791
940
|
|
|
792
|
-
###
|
|
941
|
+
### 6.7 使用示例
|
|
793
942
|
|
|
794
|
-
####
|
|
943
|
+
#### 6.7.1 基础使用
|
|
795
944
|
|
|
796
945
|
```tsx
|
|
797
946
|
import { useState, useRef } from 'react';
|
|
@@ -928,7 +1077,7 @@ const tabFormConfig = [
|
|
|
928
1077
|
/>
|
|
929
1078
|
```
|
|
930
1079
|
|
|
931
|
-
####
|
|
1080
|
+
#### 6.7.3 带验证配置
|
|
932
1081
|
|
|
933
1082
|
```tsx
|
|
934
1083
|
const validateConfig: ValidateConfig = {
|
|
@@ -951,7 +1100,7 @@ const validateConfig: ValidateConfig = {
|
|
|
951
1100
|
/>
|
|
952
1101
|
```
|
|
953
1102
|
|
|
954
|
-
####
|
|
1103
|
+
#### 6.7.4 特殊类型示例
|
|
955
1104
|
|
|
956
1105
|
```tsx
|
|
957
1106
|
// 双输入框(范围)
|
|
@@ -993,9 +1142,9 @@ const validateConfig: ValidateConfig = {
|
|
|
993
1142
|
|
|
994
1143
|
---
|
|
995
1144
|
|
|
996
|
-
##
|
|
1145
|
+
## 7. 常见使用场景
|
|
997
1146
|
|
|
998
|
-
###
|
|
1147
|
+
### 7.1 完整的 CRUD 页面
|
|
999
1148
|
|
|
1000
1149
|
```tsx
|
|
1001
1150
|
import { useRef } from 'react';
|
|
@@ -1084,7 +1233,7 @@ const UserManagePage = () => {
|
|
|
1084
1233
|
};
|
|
1085
1234
|
```
|
|
1086
1235
|
|
|
1087
|
-
###
|
|
1236
|
+
### 7.2 自定义操作列
|
|
1088
1237
|
|
|
1089
1238
|
```tsx
|
|
1090
1239
|
<CommonPage
|
|
@@ -1101,7 +1250,7 @@ const UserManagePage = () => {
|
|
|
1101
1250
|
/>
|
|
1102
1251
|
```
|
|
1103
1252
|
|
|
1104
|
-
###
|
|
1253
|
+
### 7.3 带权限控制
|
|
1105
1254
|
|
|
1106
1255
|
```tsx
|
|
1107
1256
|
<CommonPage
|
|
@@ -1120,25 +1269,25 @@ const UserManagePage = () => {
|
|
|
1120
1269
|
|
|
1121
1270
|
---
|
|
1122
1271
|
|
|
1123
|
-
##
|
|
1272
|
+
## 8. 注意事项
|
|
1124
1273
|
|
|
1125
|
-
###
|
|
1274
|
+
### 8.1 表单字段命名
|
|
1126
1275
|
|
|
1127
1276
|
1. **日期范围字段**:使用 `/` 分隔,如 `startDate/endDate`,组件会自动拆分为两个字段。
|
|
1128
1277
|
2. **输入框+下拉框组合**:使用 `name` 和 `optionname` 分别定义两个字段。
|
|
1129
1278
|
3. **双输入框**:使用 `firstLabel` 和 `secondLabel` 定义两个字段名。
|
|
1130
1279
|
|
|
1131
|
-
###
|
|
1280
|
+
### 8.2 数据格式
|
|
1132
1281
|
|
|
1133
1282
|
1. **日期数据**:后端返回的日期字符串会自动转换为 dayjs 对象,提交时根据 `dateFormat` 格式化。
|
|
1134
1283
|
2. **树形选择多选**:多选时,后端返回逗号分隔的字符串(如 "1,2,3"),组件会自动转换为数组。
|
|
1135
1284
|
|
|
1136
|
-
###
|
|
1285
|
+
### 8.3 性能优化
|
|
1137
1286
|
|
|
1138
1287
|
1. **tableId**:为表格设置唯一 ID,用户的列配置会保存到后端,避免每次都重新配置。
|
|
1139
1288
|
2. **防抖**:组件内部已对列表刷新、实时验证等操作做了防抖处理。
|
|
1140
1289
|
|
|
1141
|
-
###
|
|
1290
|
+
### 8.4 样式定制
|
|
1142
1291
|
|
|
1143
1292
|
组件使用了 CSS Modules,如需定制样式,可以:
|
|
1144
1293
|
1. 通过 `className` 传入自定义类名
|
|
@@ -1147,7 +1296,7 @@ const UserManagePage = () => {
|
|
|
1147
1296
|
|
|
1148
1297
|
---
|
|
1149
1298
|
|
|
1150
|
-
##
|
|
1299
|
+
## 9. 常见问题
|
|
1151
1300
|
|
|
1152
1301
|
### Q1: 如何在表单提交前进行自定义验证?
|
|
1153
1302
|
|
|
@@ -1201,14 +1350,15 @@ formRef.current?.setFieldsValue({ name: '张三' });
|
|
|
1201
1350
|
|
|
1202
1351
|
---
|
|
1203
1352
|
|
|
1204
|
-
##
|
|
1353
|
+
## 10. 更新日志
|
|
1205
1354
|
|
|
1355
|
+
- **2026-04-14**: 新增组合键监听 Hooks (`useHotkeyListener`, `useTakeShotHotkey`) 和截图接口 (`takeShot`)
|
|
1206
1356
|
- **2025-11-24**: CustomTable 添加了表格配置保存功能
|
|
1207
1357
|
- **2025-04-27**: CommonPage 组件创建
|
|
1208
1358
|
- **2025-04-23**: CustomTable 组件创建
|
|
1209
1359
|
|
|
1210
1360
|
---
|
|
1211
1361
|
|
|
1212
|
-
##
|
|
1362
|
+
## 11. 技术支持
|
|
1213
1363
|
|
|
1214
1364
|
如有问题,请联系开发团队或查看源代码注释。
|