gzkx-package 0.1.49 → 0.1.50
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 +149 -8
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +39 -10
- package/dist/index.mjs.map +1 -1
- package/dist/utils/takeShot.d.ts +82 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -146,6 +146,9 @@ export default MyPage;
|
|
|
146
146
|
| `CustomTable` | 自定义表格组件 | `import { CustomTable } from 'gzkx-package'` |
|
|
147
147
|
| `CustomForm` | 自定义表单组件 | `import { CustomForm } from 'gzkx-package'` |
|
|
148
148
|
| `CustomAdd` | 新增/编辑弹窗组件 | `import { CustomAdd } from 'gzkx-package'` |
|
|
149
|
+
| `useHotkeyListener` | 组合键监听 Hook | `import { useHotkeyListener } from 'gzkx-package'` |
|
|
150
|
+
| `useTakeShotHotkey` | 截图专用组合键 Hook | `import { useTakeShotHotkey } from 'gzkx-package'` |
|
|
151
|
+
| `takeShot` | 截图接口 | `import { takeShot } from 'gzkx-package'` |
|
|
149
152
|
|
|
150
153
|
### 5. TypeScript 类型导出
|
|
151
154
|
|
|
@@ -158,6 +161,7 @@ import type {
|
|
|
158
161
|
CustomTableHandle, // CustomTable Ref 类型
|
|
159
162
|
CustomColumnType, // 自定义表格列类型
|
|
160
163
|
CustomColumnsType, // 自定义表格列数组类型
|
|
164
|
+
HotkeyConfig, // 组合键配置类型
|
|
161
165
|
} from 'gzkx-package';
|
|
162
166
|
```
|
|
163
167
|
|
|
@@ -165,7 +169,143 @@ import type {
|
|
|
165
169
|
|
|
166
170
|
## 组件列表
|
|
167
171
|
|
|
168
|
-
## 1.
|
|
172
|
+
## 1. 工具 Hooks
|
|
173
|
+
|
|
174
|
+
### 1.1 useHotkeyListener - 组合键监听 Hook
|
|
175
|
+
|
|
176
|
+
用于监听键盘组合键(如 `Ctrl+S`、`Alt+F2`、`Ctrl+Shift+A` 等)。
|
|
177
|
+
|
|
178
|
+
#### 参数
|
|
179
|
+
|
|
180
|
+
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
181
|
+
|--------|------|------|--------|------|
|
|
182
|
+
| `hotkeys` | `HotkeyConfig[]` | 是 | - | 监听的组合键配置数组 |
|
|
183
|
+
| `onTrigger` | `(hotkey: HotkeyConfig, event: KeyboardEvent) => void` | 是 | - | 组合键触发回调 |
|
|
184
|
+
| `preventDefault` | `boolean` | 否 | `false` | 是否阻止默认行为 |
|
|
185
|
+
| `stopPropagation` | `boolean` | 否 | `false` | 是否阻止事件冒泡 |
|
|
186
|
+
|
|
187
|
+
#### HotkeyConfig 配置
|
|
188
|
+
|
|
189
|
+
```typescript
|
|
190
|
+
interface HotkeyConfig {
|
|
191
|
+
key: string; // 主键,如 'F2', 's', 'Enter'
|
|
192
|
+
ctrl?: boolean; // 是否按住 Ctrl
|
|
193
|
+
alt?: boolean; // 是否按住 Alt
|
|
194
|
+
shift?: boolean; // 是否按住 Shift
|
|
195
|
+
meta?: boolean; // 是否按住 Meta (Mac Command/Windows Win)
|
|
196
|
+
}
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
#### 使用示例
|
|
200
|
+
|
|
201
|
+
```tsx
|
|
202
|
+
import { useHotkeyListener } from 'gzkx-package';
|
|
203
|
+
|
|
204
|
+
const MyComponent = () => {
|
|
205
|
+
// 监听多个组合键
|
|
206
|
+
useHotkeyListener({
|
|
207
|
+
hotkeys: [
|
|
208
|
+
{ key: 'F2' }, // 单独 F2
|
|
209
|
+
{ key: 'F2', ctrl: true }, // Ctrl+F2
|
|
210
|
+
{ key: 's', ctrl: true, shift: true }, // Ctrl+Shift+S
|
|
211
|
+
{ key: 'a', alt: true }, // Alt+A
|
|
212
|
+
],
|
|
213
|
+
onTrigger: (hotkey, event) => {
|
|
214
|
+
console.log('组合键触发:', hotkey);
|
|
215
|
+
// 根据触发的组合键执行不同操作
|
|
216
|
+
},
|
|
217
|
+
preventDefault: true, // 阻止默认行为(如 Ctrl+S 保存页面)
|
|
218
|
+
});
|
|
219
|
+
|
|
220
|
+
return <div>按 F2 或 Ctrl+F2 触发</div>;
|
|
221
|
+
};
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### 1.2 useTakeShotHotkey - 截图专用组合键 Hook
|
|
225
|
+
|
|
226
|
+
专门用于截图功能的组合键监听 Hook,是 `useHotkeyListener` 的简化封装。
|
|
227
|
+
|
|
228
|
+
#### 参数
|
|
229
|
+
|
|
230
|
+
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|
|
231
|
+
|--------|------|------|--------|------|
|
|
232
|
+
| `onTakeShot` | `() => void` | 是 | - | 截图触发回调 |
|
|
233
|
+
| `hotkeys` | `HotkeyConfig[]` | 否 | `[{ key: 'F2' }]` | 监听的组合键配置 |
|
|
234
|
+
|
|
235
|
+
#### 使用示例
|
|
236
|
+
|
|
237
|
+
```tsx
|
|
238
|
+
import { useTakeShotHotkey, takeShot } from 'gzkx-package';
|
|
239
|
+
import { message } from 'antd';
|
|
240
|
+
|
|
241
|
+
const UltrasoundWorkstation = () => {
|
|
242
|
+
// 使用默认 F2 键截图
|
|
243
|
+
useTakeShotHotkey(async () => {
|
|
244
|
+
const result = await takeShot();
|
|
245
|
+
if (result.code === 200) {
|
|
246
|
+
message.success('截图成功');
|
|
247
|
+
console.log('截图数据:', result.data?.imageBase64);
|
|
248
|
+
} else {
|
|
249
|
+
message.error(`截图失败: ${result.msg}`);
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
|
|
253
|
+
// 或者自定义组合键
|
|
254
|
+
useTakeShotHotkey(
|
|
255
|
+
async () => {
|
|
256
|
+
const result = await takeShot();
|
|
257
|
+
// 处理截图结果...
|
|
258
|
+
},
|
|
259
|
+
[
|
|
260
|
+
{ key: 'F9' }, // F9 截图
|
|
261
|
+
{ key: 'p', ctrl: true }, // Ctrl+P 截图
|
|
262
|
+
{ key: 's', ctrl: true, shift: true }, // Ctrl+Shift+S 截图
|
|
263
|
+
]
|
|
264
|
+
);
|
|
265
|
+
|
|
266
|
+
return <div>超声工作站 - 按 F9 或 Ctrl+P 截图</div>;
|
|
267
|
+
};
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
### 1.3 takeShot - 截图接口
|
|
271
|
+
|
|
272
|
+
调用本地截图服务进行截图。
|
|
273
|
+
|
|
274
|
+
#### 配置方法
|
|
275
|
+
|
|
276
|
+
```tsx
|
|
277
|
+
import { setTakeShotConfig, takeShot } from 'gzkx-package';
|
|
278
|
+
|
|
279
|
+
// 配置截图服务(通常在应用初始化时)
|
|
280
|
+
setTakeShotConfig({
|
|
281
|
+
host: 'localhost', // 截图服务主机
|
|
282
|
+
port: 28081, // 截图服务端口
|
|
283
|
+
timeout: 10000, // 请求超时时间(ms)
|
|
284
|
+
});
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
#### 使用示例
|
|
288
|
+
|
|
289
|
+
```tsx
|
|
290
|
+
const handleCapture = async () => {
|
|
291
|
+
const result = await takeShot({
|
|
292
|
+
format: 'png', // 图片格式
|
|
293
|
+
quality: 100, // 图片质量
|
|
294
|
+
});
|
|
295
|
+
|
|
296
|
+
if (result.code === 200) {
|
|
297
|
+
// result.data.imageBase64 - Base64 图片数据
|
|
298
|
+
// result.data.imagePath - 图片保存路径
|
|
299
|
+
console.log('截图成功:', result.data);
|
|
300
|
+
} else {
|
|
301
|
+
console.error('截图失败:', result.msg);
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
## 2. CommonPage 通用页面组件
|
|
169
309
|
|
|
170
310
|
### 1.1 组件概述
|
|
171
311
|
|
|
@@ -406,7 +546,7 @@ export default DemoPage;
|
|
|
406
546
|
|
|
407
547
|
---
|
|
408
548
|
|
|
409
|
-
##
|
|
549
|
+
## 4. CustomTable 自定义表格组件
|
|
410
550
|
|
|
411
551
|
### 2.1 组件概述
|
|
412
552
|
|
|
@@ -543,7 +683,7 @@ const DemoTable = () => {
|
|
|
543
683
|
|
|
544
684
|
---
|
|
545
685
|
|
|
546
|
-
##
|
|
686
|
+
## 5. CustomForm 自定义表单组件
|
|
547
687
|
|
|
548
688
|
### 3.1 组件概述
|
|
549
689
|
|
|
@@ -687,7 +827,7 @@ const DemoForm = () => {
|
|
|
687
827
|
|
|
688
828
|
---
|
|
689
829
|
|
|
690
|
-
##
|
|
830
|
+
## 6. CustomAdd 新增/编辑弹窗组件
|
|
691
831
|
|
|
692
832
|
### 4.1 组件概述
|
|
693
833
|
|
|
@@ -993,7 +1133,7 @@ const validateConfig: ValidateConfig = {
|
|
|
993
1133
|
|
|
994
1134
|
---
|
|
995
1135
|
|
|
996
|
-
##
|
|
1136
|
+
## 7. 常见使用场景
|
|
997
1137
|
|
|
998
1138
|
### 5.1 完整的 CRUD 页面
|
|
999
1139
|
|
|
@@ -1120,7 +1260,7 @@ const UserManagePage = () => {
|
|
|
1120
1260
|
|
|
1121
1261
|
---
|
|
1122
1262
|
|
|
1123
|
-
##
|
|
1263
|
+
## 8. 注意事项
|
|
1124
1264
|
|
|
1125
1265
|
### 6.1 表单字段命名
|
|
1126
1266
|
|
|
@@ -1147,7 +1287,7 @@ const UserManagePage = () => {
|
|
|
1147
1287
|
|
|
1148
1288
|
---
|
|
1149
1289
|
|
|
1150
|
-
##
|
|
1290
|
+
## 9. 常见问题
|
|
1151
1291
|
|
|
1152
1292
|
### Q1: 如何在表单提交前进行自定义验证?
|
|
1153
1293
|
|
|
@@ -1201,8 +1341,9 @@ formRef.current?.setFieldsValue({ name: '张三' });
|
|
|
1201
1341
|
|
|
1202
1342
|
---
|
|
1203
1343
|
|
|
1204
|
-
##
|
|
1344
|
+
## 10. 更新日志
|
|
1205
1345
|
|
|
1346
|
+
- **2026-04-14**: 新增组合键监听 Hooks (`useHotkeyListener`, `useTakeShotHotkey`) 和截图接口 (`takeShot`)
|
|
1206
1347
|
- **2025-11-24**: CustomTable 添加了表格配置保存功能
|
|
1207
1348
|
- **2025-04-27**: CommonPage 组件创建
|
|
1208
1349
|
- **2025-04-23**: CustomTable 组件创建
|