gzkx-package 0.1.50 → 0.1.52
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 +49 -40
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.mjs +80 -12
- package/dist/index.mjs.map +1 -1
- package/dist/style.css +1 -1
- 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
|
|
|
@@ -305,13 +314,13 @@ const handleCapture = async () => {
|
|
|
305
314
|
|
|
306
315
|
---
|
|
307
316
|
|
|
308
|
-
##
|
|
317
|
+
## 3. CommonPage 通用页面组件
|
|
309
318
|
|
|
310
|
-
###
|
|
319
|
+
### 3.1 组件概述
|
|
311
320
|
|
|
312
321
|
`CommonPage` 是一个集成了搜索表单、数据表格、新增/编辑弹窗的通用页面组件,适用于大部分 CRUD 操作场景。
|
|
313
322
|
|
|
314
|
-
###
|
|
323
|
+
### 3.2 Props 参数
|
|
315
324
|
|
|
316
325
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
317
326
|
|--------|------|------|--------|------|
|
|
@@ -347,7 +356,7 @@ const handleCapture = async () => {
|
|
|
347
356
|
| `validateConfig` | `ValidateConfig` | 否 | - | 表单验证配置 |
|
|
348
357
|
| `tableConfig` | `any` | 否 | - | 表格额外配置 |
|
|
349
358
|
|
|
350
|
-
####
|
|
359
|
+
#### 3.2.1 详细参数说明
|
|
351
360
|
|
|
352
361
|
**postParams 对象结构:**
|
|
353
362
|
|
|
@@ -383,7 +392,7 @@ const handleCapture = async () => {
|
|
|
383
392
|
}
|
|
384
393
|
```
|
|
385
394
|
|
|
386
|
-
###
|
|
395
|
+
### 3.3 Ref 暴露的方法
|
|
387
396
|
|
|
388
397
|
使用 `ref` 可以调用组件内部方法:
|
|
389
398
|
|
|
@@ -402,7 +411,7 @@ interface CommonPageHandle {
|
|
|
402
411
|
}
|
|
403
412
|
```
|
|
404
413
|
|
|
405
|
-
###
|
|
414
|
+
### 3.4 使用示例
|
|
406
415
|
|
|
407
416
|
```tsx
|
|
408
417
|
import { useRef } from 'react';
|
|
@@ -548,11 +557,11 @@ export default DemoPage;
|
|
|
548
557
|
|
|
549
558
|
## 4. CustomTable 自定义表格组件
|
|
550
559
|
|
|
551
|
-
###
|
|
560
|
+
### 4.1 组件概述
|
|
552
561
|
|
|
553
562
|
`CustomTable` 是对 Ant Design Table 组件的增强封装,支持用户自定义表格列配置、保存配置到后端、序号列、树形数据等功能。
|
|
554
563
|
|
|
555
|
-
###
|
|
564
|
+
### 4.2 Props 参数
|
|
556
565
|
|
|
557
566
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
558
567
|
|--------|------|------|--------|------|
|
|
@@ -568,14 +577,14 @@ export default DemoPage;
|
|
|
568
577
|
| `showTableConfig` | `boolean` | 否 | `true` | 是否显示表格配置按钮和序号列 |
|
|
569
578
|
| `...rest` | `any` | 否 | - | 其他 Ant Design Table 原生属性 |
|
|
570
579
|
|
|
571
|
-
###
|
|
580
|
+
### 4.3 特色功能
|
|
572
581
|
|
|
573
582
|
1. **表格配置功能**:用户可以自定义列的显示、宽度、对齐方式、排序等,配置会保存到后端。
|
|
574
583
|
2. **自动序号列**:自动添加序号列(可通过 `showTableConfig` 控制)。
|
|
575
584
|
3. **树形数据支持**:支持展开/收起树形数据。
|
|
576
585
|
4. **Tooltip 支持**:单元格内容过长时自动显示 Tooltip。
|
|
577
586
|
|
|
578
|
-
###
|
|
587
|
+
### 4.4 Ref 暴露的方法
|
|
579
588
|
|
|
580
589
|
使用 `ref` 可以调用组件内部方法:
|
|
581
590
|
|
|
@@ -668,7 +677,7 @@ const DemoTable = () => {
|
|
|
668
677
|
};
|
|
669
678
|
```
|
|
670
679
|
|
|
671
|
-
###
|
|
680
|
+
### 4.6 列配置弹窗说明
|
|
672
681
|
|
|
673
682
|
当 `showTableConfig={true}` 时,序号列旁边会显示设置图标,点击后打开配置弹窗,可以配置:
|
|
674
683
|
|
|
@@ -685,11 +694,11 @@ const DemoTable = () => {
|
|
|
685
694
|
|
|
686
695
|
## 5. CustomForm 自定义表单组件
|
|
687
696
|
|
|
688
|
-
###
|
|
697
|
+
### 5.1 组件概述
|
|
689
698
|
|
|
690
699
|
`CustomForm` 是一个基于配置的表单组件,通过传入配置数组即可快速生成表单,支持多种表单项类型。
|
|
691
700
|
|
|
692
|
-
###
|
|
701
|
+
### 5.2 Props 参数
|
|
693
702
|
|
|
694
703
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
695
704
|
|--------|------|------|--------|------|
|
|
@@ -708,7 +717,7 @@ const DemoTable = () => {
|
|
|
708
717
|
| `onSearchFormChange` | `Function` | 否 | - | 表单值变化回调 |
|
|
709
718
|
| `...restFormProps` | `any` | 否 | - | 其他 Ant Design Form 原生属性 |
|
|
710
719
|
|
|
711
|
-
###
|
|
720
|
+
### 5.3 FormItemConfig 配置项
|
|
712
721
|
|
|
713
722
|
```typescript
|
|
714
723
|
interface FormItemConfig {
|
|
@@ -733,7 +742,7 @@ interface FormItemOption {
|
|
|
733
742
|
}
|
|
734
743
|
```
|
|
735
744
|
|
|
736
|
-
###
|
|
745
|
+
### 5.4 支持的表单类型
|
|
737
746
|
|
|
738
747
|
| type 值 | 说明 | 额外属性 |
|
|
739
748
|
|---------|------|---------|
|
|
@@ -747,7 +756,7 @@ interface FormItemOption {
|
|
|
747
756
|
| `deptSelect` | 科室选择(自动加载数据) | - |
|
|
748
757
|
| `orgSelect` | 机构选择(自动加载数据) | - |
|
|
749
758
|
|
|
750
|
-
###
|
|
759
|
+
### 5.5 Ref 暴露的方法
|
|
751
760
|
|
|
752
761
|
```typescript
|
|
753
762
|
interface CustomFormHandle {
|
|
@@ -756,7 +765,7 @@ interface CustomFormHandle {
|
|
|
756
765
|
}
|
|
757
766
|
```
|
|
758
767
|
|
|
759
|
-
###
|
|
768
|
+
### 5.6 使用示例
|
|
760
769
|
|
|
761
770
|
```tsx
|
|
762
771
|
import { useRef } from 'react';
|
|
@@ -829,11 +838,11 @@ const DemoForm = () => {
|
|
|
829
838
|
|
|
830
839
|
## 6. CustomAdd 新增/编辑弹窗组件
|
|
831
840
|
|
|
832
|
-
###
|
|
841
|
+
### 6.1 组件概述
|
|
833
842
|
|
|
834
843
|
`CustomAdd` 是一个功能强大的弹窗表单组件,支持新增、编辑、查看三种模式,支持多种表单项类型、表单验证、Tab 分组等。
|
|
835
844
|
|
|
836
|
-
###
|
|
845
|
+
### 6.2 Props 参数
|
|
837
846
|
|
|
838
847
|
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
839
848
|
|--------|------|------|--------|------|
|
|
@@ -851,7 +860,7 @@ const DemoForm = () => {
|
|
|
851
860
|
| `CustomModalFooter` | `Function` | 否 | - | 自定义底部按钮 |
|
|
852
861
|
| `validateConfig` | `ValidateConfig` | 否 | - | 验证配置 |
|
|
853
862
|
|
|
854
|
-
###
|
|
863
|
+
### 6.3 AddItemConfig 配置项
|
|
855
864
|
|
|
856
865
|
```typescript
|
|
857
866
|
interface AddItemConfig {
|
|
@@ -880,7 +889,7 @@ interface AddItemConfig {
|
|
|
880
889
|
}
|
|
881
890
|
```
|
|
882
891
|
|
|
883
|
-
###
|
|
892
|
+
### 6.4 支持的表单类型
|
|
884
893
|
|
|
885
894
|
| type 值 | 说明 | 额外配置 |
|
|
886
895
|
|---------|------|---------|
|
|
@@ -904,7 +913,7 @@ interface AddItemConfig {
|
|
|
904
913
|
| `inputnumberoption` | 数字输入框+下拉框组合 | `optionname`, `options` |
|
|
905
914
|
| `doubleValue` | 双输入框(如范围) | `firstLabel`, `secondLabel`, `separator` |
|
|
906
915
|
|
|
907
|
-
###
|
|
916
|
+
### 6.5 ValidateConfig 验证配置
|
|
908
917
|
|
|
909
918
|
```typescript
|
|
910
919
|
interface ValidateConfig {
|
|
@@ -920,7 +929,7 @@ interface ValidateConfig {
|
|
|
920
929
|
}
|
|
921
930
|
```
|
|
922
931
|
|
|
923
|
-
###
|
|
932
|
+
### 6.6 Ref 暴露的方法
|
|
924
933
|
|
|
925
934
|
```typescript
|
|
926
935
|
interface CustomAddHandle {
|
|
@@ -929,9 +938,9 @@ interface CustomAddHandle {
|
|
|
929
938
|
}
|
|
930
939
|
```
|
|
931
940
|
|
|
932
|
-
###
|
|
941
|
+
### 6.7 使用示例
|
|
933
942
|
|
|
934
|
-
####
|
|
943
|
+
#### 6.7.1 基础使用
|
|
935
944
|
|
|
936
945
|
```tsx
|
|
937
946
|
import { useState, useRef } from 'react';
|
|
@@ -1068,7 +1077,7 @@ const tabFormConfig = [
|
|
|
1068
1077
|
/>
|
|
1069
1078
|
```
|
|
1070
1079
|
|
|
1071
|
-
####
|
|
1080
|
+
#### 6.7.3 带验证配置
|
|
1072
1081
|
|
|
1073
1082
|
```tsx
|
|
1074
1083
|
const validateConfig: ValidateConfig = {
|
|
@@ -1091,7 +1100,7 @@ const validateConfig: ValidateConfig = {
|
|
|
1091
1100
|
/>
|
|
1092
1101
|
```
|
|
1093
1102
|
|
|
1094
|
-
####
|
|
1103
|
+
#### 6.7.4 特殊类型示例
|
|
1095
1104
|
|
|
1096
1105
|
```tsx
|
|
1097
1106
|
// 双输入框(范围)
|
|
@@ -1135,7 +1144,7 @@ const validateConfig: ValidateConfig = {
|
|
|
1135
1144
|
|
|
1136
1145
|
## 7. 常见使用场景
|
|
1137
1146
|
|
|
1138
|
-
###
|
|
1147
|
+
### 7.1 完整的 CRUD 页面
|
|
1139
1148
|
|
|
1140
1149
|
```tsx
|
|
1141
1150
|
import { useRef } from 'react';
|
|
@@ -1224,7 +1233,7 @@ const UserManagePage = () => {
|
|
|
1224
1233
|
};
|
|
1225
1234
|
```
|
|
1226
1235
|
|
|
1227
|
-
###
|
|
1236
|
+
### 7.2 自定义操作列
|
|
1228
1237
|
|
|
1229
1238
|
```tsx
|
|
1230
1239
|
<CommonPage
|
|
@@ -1241,7 +1250,7 @@ const UserManagePage = () => {
|
|
|
1241
1250
|
/>
|
|
1242
1251
|
```
|
|
1243
1252
|
|
|
1244
|
-
###
|
|
1253
|
+
### 7.3 带权限控制
|
|
1245
1254
|
|
|
1246
1255
|
```tsx
|
|
1247
1256
|
<CommonPage
|
|
@@ -1262,23 +1271,23 @@ const UserManagePage = () => {
|
|
|
1262
1271
|
|
|
1263
1272
|
## 8. 注意事项
|
|
1264
1273
|
|
|
1265
|
-
###
|
|
1274
|
+
### 8.1 表单字段命名
|
|
1266
1275
|
|
|
1267
1276
|
1. **日期范围字段**:使用 `/` 分隔,如 `startDate/endDate`,组件会自动拆分为两个字段。
|
|
1268
1277
|
2. **输入框+下拉框组合**:使用 `name` 和 `optionname` 分别定义两个字段。
|
|
1269
1278
|
3. **双输入框**:使用 `firstLabel` 和 `secondLabel` 定义两个字段名。
|
|
1270
1279
|
|
|
1271
|
-
###
|
|
1280
|
+
### 8.2 数据格式
|
|
1272
1281
|
|
|
1273
1282
|
1. **日期数据**:后端返回的日期字符串会自动转换为 dayjs 对象,提交时根据 `dateFormat` 格式化。
|
|
1274
1283
|
2. **树形选择多选**:多选时,后端返回逗号分隔的字符串(如 "1,2,3"),组件会自动转换为数组。
|
|
1275
1284
|
|
|
1276
|
-
###
|
|
1285
|
+
### 8.3 性能优化
|
|
1277
1286
|
|
|
1278
1287
|
1. **tableId**:为表格设置唯一 ID,用户的列配置会保存到后端,避免每次都重新配置。
|
|
1279
1288
|
2. **防抖**:组件内部已对列表刷新、实时验证等操作做了防抖处理。
|
|
1280
1289
|
|
|
1281
|
-
###
|
|
1290
|
+
### 8.4 样式定制
|
|
1282
1291
|
|
|
1283
1292
|
组件使用了 CSS Modules,如需定制样式,可以:
|
|
1284
1293
|
1. 通过 `className` 传入自定义类名
|
|
@@ -1350,6 +1359,6 @@ formRef.current?.setFieldsValue({ name: '张三' });
|
|
|
1350
1359
|
|
|
1351
1360
|
---
|
|
1352
1361
|
|
|
1353
|
-
##
|
|
1362
|
+
## 11. 技术支持
|
|
1354
1363
|
|
|
1355
1364
|
如有问题,请联系开发团队或查看源代码注释。
|