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 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. CommonPage 通用页面组件
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
- ## 2. CustomTable 自定义表格组件
549
+ ## 4. CustomTable 自定义表格组件
410
550
 
411
551
  ### 2.1 组件概述
412
552
 
@@ -543,7 +683,7 @@ const DemoTable = () => {
543
683
 
544
684
  ---
545
685
 
546
- ## 3. CustomForm 自定义表单组件
686
+ ## 5. CustomForm 自定义表单组件
547
687
 
548
688
  ### 3.1 组件概述
549
689
 
@@ -687,7 +827,7 @@ const DemoForm = () => {
687
827
 
688
828
  ---
689
829
 
690
- ## 4. CustomAdd 新增/编辑弹窗组件
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
- ## 5. 常见使用场景
1136
+ ## 7. 常见使用场景
997
1137
 
998
1138
  ### 5.1 完整的 CRUD 页面
999
1139
 
@@ -1120,7 +1260,7 @@ const UserManagePage = () => {
1120
1260
 
1121
1261
  ---
1122
1262
 
1123
- ## 6. 注意事项
1263
+ ## 8. 注意事项
1124
1264
 
1125
1265
  ### 6.1 表单字段命名
1126
1266
 
@@ -1147,7 +1287,7 @@ const UserManagePage = () => {
1147
1287
 
1148
1288
  ---
1149
1289
 
1150
- ## 7. 常见问题
1290
+ ## 9. 常见问题
1151
1291
 
1152
1292
  ### Q1: 如何在表单提交前进行自定义验证?
1153
1293
 
@@ -1201,8 +1341,9 @@ formRef.current?.setFieldsValue({ name: '张三' });
1201
1341
 
1202
1342
  ---
1203
1343
 
1204
- ## 8. 更新日志
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 组件创建