yh-hiprint 2.6.13 → 2.6.14

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.
@@ -1,41 +1,114 @@
1
1
  import './libs/jquery';
2
- import { ElDialog, ElSelect, ElOption, ElButton, ElMessageBox, ElLoading } from 'element-plus';
3
- import { createApp, createVNode } from 'vue';
4
- export { hiprint, defaultElementTypeProvider, print, print2, usePaper, useScale, useDataSource } from './hooks/useHiprint';
5
- export { default as fontSize } from './font-size';
6
- export { default as scale } from './scale';
7
- export { default as zIndex } from './z-index';
8
- export { default as panel } from './panel';
9
- import { getPrintTemplate } from 'yh-hiprint/libs/index.js';
10
-
11
- export function guid () {
2
+ import {
3
+ ElDialog,
4
+ ElSelect,
5
+ ElOption,
6
+ ElButton,
7
+ ElMessageBox,
8
+ ElLoading,
9
+ ElMessage,
10
+ } from 'element-plus';
11
+ import {createApp, createVNode} from 'vue';
12
+ import {
13
+ hiprint,
14
+ defaultElementTypeProvider,
15
+ print,
16
+ print2,
17
+ usePaper,
18
+ useScale,
19
+ useDataSource,
20
+ } from './hooks/useHiprint';
21
+ export {hiprint, defaultElementTypeProvider, print, print2, usePaper, useScale, useDataSource};
22
+ export {default as fontSize} from './font-size';
23
+ export {default as scale} from './scale';
24
+ export {default as zIndex} from './z-index';
25
+ export {default as panel} from './panel';
26
+ import {getPrintTemplate} from './libs/index.js';
27
+ export {default as defaultPrintElement} from './store/defaultPrintElement';
28
+ export {getPrintTemplate};
29
+
30
+ export function guid(): string {
12
31
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (t) {
13
32
  var e = (16 * Math.random()) | 0;
14
33
  return ('x' == t ? e : (3 & e) | 8).toString(16);
15
34
  });
16
35
  }
17
36
 
18
- export function cLog (string, isError = false) {
37
+ // 定义类型
38
+ interface HiprintFunParams {
39
+ code: string;
40
+ params?: any;
41
+ data?: any;
42
+ isCustom?: boolean;
43
+ returnHtml?: boolean;
44
+ }
45
+
46
+ interface SilentHiprintParams {
47
+ code: string;
48
+ params?: any;
49
+ data?: any;
50
+ }
51
+
52
+ interface MessageEvent {
53
+ data: {
54
+ type: string;
55
+ data: any;
56
+ };
57
+ }
58
+
59
+ interface TemplateResponse {
60
+ status: number;
61
+ data?: {
62
+ json: string;
63
+ };
64
+ message?: string;
65
+ }
66
+
67
+ interface HiprintTemplate {
68
+ new (options: {template: any}): any;
69
+ getHtml(data: any): Array<{innerHTML: string}>;
70
+ }
71
+
72
+ interface CustomWindow extends Window {
73
+ silentHiprint: typeof silentHiprint;
74
+ }
75
+
76
+ export function cLog(string: string, isError: boolean = false): void {
19
77
  if (isError) {
20
- console.error('%cyhHiprint:%c', 'font-size: 16px;font-weight: bold;color: #00ffff', 'font-size: 16px;font-weight: bold;color: #ccccc', string);
78
+ console.error(
79
+ '%cyhHiprint:%c',
80
+ 'font-size: 16px;font-weight: bold;color: #00ffff',
81
+ 'font-size: 16px;font-weight: bold;color: #ccccc',
82
+ string
83
+ );
21
84
  } else {
22
- console.log('%cyhHiprint%c ' + string, 'font-size: 18px;font-weight: bold;color: #61AFEF', 'font-size: 12px;color: #999');
85
+ console.log(
86
+ '%cyhHiprint%c ' + string,
87
+ 'font-size: 18px;font-weight: bold;color: #61AFEF',
88
+ 'font-size: 12px;color: #999'
89
+ );
23
90
  }
24
91
  }
25
92
 
26
- const hiprintFun = async ({ code, params, data, isCustom, returnHtml }) => {
93
+ const hiprintFun = async ({
94
+ code,
95
+ params,
96
+ data,
97
+ isCustom,
98
+ returnHtml,
99
+ }: HiprintFunParams): Promise<any> => {
27
100
  if (window.electronBrowserAPI && window.electronBrowserAPI.print) {
28
- clientPrintHandler(code, params, data);
101
+ return clientPrintHandler(code, params, data);
29
102
  } else {
30
- let height = document.documentElement.clientHeight;
31
- let width = 1200;
32
- let left = (document.documentElement.clientWidth - 1200) / 2;
103
+ const height: number = document.documentElement.clientHeight;
104
+ const width: number = 1200;
105
+ const left: number = (document.documentElement.clientWidth - 1200) / 2;
33
106
  // 转换数组
34
- let paramData = params;
107
+ let paramData: any = params;
35
108
  if (!Array.isArray(params)) {
36
109
  paramData = [params];
37
110
  }
38
- let url = '/hiprint/#/preview?code=' + encodeURIComponent(code);
111
+ let url: string = '/hiprint/#/preview?code=' + encodeURIComponent(code);
39
112
  if (params) {
40
113
  url += `&params=${encodeURIComponent(JSON.stringify(paramData))}`;
41
114
  }
@@ -48,15 +121,20 @@ const hiprintFun = async ({ code, params, data, isCustom, returnHtml }) => {
48
121
  if (returnHtml) {
49
122
  url += `&returnHtml=${returnHtml ? '1' : '0'}`;
50
123
  }
51
- let windowOpen = window.open(url, 'hiprintWindow', `height=${height}, width=${width}, top=20, left=${left}, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no`);
124
+ const windowOpen = window.open(
125
+ url,
126
+ 'hiprintWindow',
127
+ `height=${height}, width=${width}, top=20, left=${left}, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no`
128
+ );
52
129
 
53
130
  return new Promise((resolve, reject) => {
54
131
  if (!windowOpen) {
55
- reject("预览窗口渲染失败!");
132
+ reject('预览窗口渲染失败!');
133
+ return;
56
134
  }
57
- function printHTMLHandler (e) {
58
- let { type, data } = e.data;
59
- if (type === "sendPrintHTML" && data) {
135
+ function printHTMLHandler(e: MessageEvent): void {
136
+ const {type, data} = e.data;
137
+ if (type === 'sendPrintHTML' && data) {
60
138
  resolve(data);
61
139
  }
62
140
  window.removeEventListener('message', printHTMLHandler);
@@ -66,28 +144,34 @@ const hiprintFun = async ({ code, params, data, isCustom, returnHtml }) => {
66
144
  }
67
145
  };
68
146
 
69
- const silentHiprint = async ({ code, params = {}, data }) => {
147
+ const silentHiprint = async ({
148
+ code,
149
+ params = {},
150
+ data,
151
+ }: SilentHiprintParams): Promise<string | boolean> => {
70
152
  if (!code || !data) {
71
- ElMessageBox.alert("请正确的传递模板编号和打印数据", '提示');
153
+ ElMessageBox.alert('请正确的传递模板编号和打印数据', '提示');
72
154
  return false;
73
155
  }
74
- let loading = null;
156
+ let loading: any = null;
75
157
  try {
76
158
  loading = ElLoading.service({
77
- text: "正在获取打印模板"
159
+ text: '正在获取打印模板',
78
160
  });
79
- let res = await getPrintTemplate(code, params);
161
+ const res: TemplateResponse = await getPrintTemplate(code, params);
80
162
  if (res.status === 200 && res.data && res.data.json) {
81
- let json = res.data.json;
82
- let hiprintTemplate = new hiprint.PrintTemplate({ template: JSON.parse(json) });
83
- let html = hiprintTemplate.getHtml(data);
163
+ const json: string = res.data.json;
164
+ const hiprintTemplate: HiprintTemplate = new (hiprint as any).PrintTemplate({
165
+ template: JSON.parse(json),
166
+ });
167
+ const html: Array<{innerHTML: string}> = hiprintTemplate.getHtml(data);
84
168
  if (html[0]) {
85
169
  return html[0].innerHTML;
86
170
  } else {
87
- ElMessageBox.alert("打印内容渲染失败", '提示');
171
+ ElMessageBox.alert('打印内容渲染失败', '提示');
88
172
  }
89
173
  } else {
90
- ElMessageBox.alert(res.message || "获取打印模板失败", '提示');
174
+ ElMessageBox.alert(res.message || '获取打印模板失败', '提示');
91
175
  }
92
176
  } catch (error) {
93
177
  if (loading) {
@@ -101,16 +185,23 @@ const silentHiprint = async ({ code, params = {}, data }) => {
101
185
  loading = null;
102
186
  }
103
187
  }
188
+ return false;
104
189
  };
105
190
 
106
- window.silentHiprint = silentHiprint;
191
+ (window as unknown as CustomWindow).silentHiprint = silentHiprint;
192
+
193
+ interface InstallOptions {
194
+ router?: any;
195
+ pinia?: any;
196
+ isAdmin?: boolean;
197
+ }
107
198
 
108
199
  // 客户端打印处理函数
109
200
  const clientPrintHandler = async (code, params, data) => {
110
201
  let loading = null;
111
202
  try {
112
203
  loading = ElLoading.service({
113
- text: "正在获取打印模板"
204
+ text: '正在获取打印模板',
114
205
  });
115
206
  let reqParams = [];
116
207
  try {
@@ -121,17 +212,17 @@ const clientPrintHandler = async (code, params, data) => {
121
212
  // 获取打印模板
122
213
  let res = await getPrintTemplate(code, reqParams);
123
214
  if (res.status !== 200 || !res.data || !res.data.json) {
124
- ElMessageBox.alert(res.message || "获取打印模板失败", '提示');
215
+ ElMessageBox.alert(res.message || '获取打印模板失败', '提示');
125
216
  return false;
126
217
  }
127
218
 
128
- loading.setText("正在连接打印客户端");
219
+ loading.setText('正在连接打印客户端');
129
220
 
130
221
  // 获取打印机列表
131
222
  let printerList = await electronBrowserAPI.getPrinterList();
132
223
  if (!printerList || printerList.length === 0) {
133
224
  loading?.close();
134
- ElMessageBox.alert("未获取到打印机列表", '提示');
225
+ ElMessageBox.alert('未获取到打印机列表', '提示');
135
226
  return false;
136
227
  }
137
228
 
@@ -139,20 +230,32 @@ const clientPrintHandler = async (code, params, data) => {
139
230
  loading = null;
140
231
 
141
232
  // 显示选择打印机的对话框
142
- return await showPrinterSelectionDialog(printerList, res.data.json, res.data.list, res.data.name, data);
233
+ return await showPrinterSelectionDialog(
234
+ printerList,
235
+ res.data.json,
236
+ res.data.list,
237
+ res.data.name,
238
+ data
239
+ );
143
240
  } catch (error) {
144
241
  if (loading) {
145
242
  loading.close();
146
243
  loading = null;
147
244
  }
148
245
  console.error(error);
149
- ElMessageBox.alert("客户端打印出错: " + error.message, '提示');
246
+ ElMessageBox.alert('客户端打印出错: ' + error.message, '提示');
150
247
  return false;
151
248
  }
152
249
  };
153
250
 
154
251
  // 显示打印机选择对话框
155
- const showPrinterSelectionDialog = (printerList, templateJson, templateData, templateName, data) => {
252
+ const showPrinterSelectionDialog = (
253
+ printerList,
254
+ templateJson,
255
+ templateData,
256
+ templateName,
257
+ data
258
+ ) => {
156
259
  return new Promise((resolve) => {
157
260
  // 获取上次选择的打印机
158
261
  const lastSelectedPrinter = localStorage.getItem('lastSelectedPrinter') || '';
@@ -177,33 +280,33 @@ const showPrinterSelectionDialog = (printerList, templateJson, templateData, tem
177
280
  ElDialog,
178
281
  ElSelect,
179
282
  ElOption,
180
- ElButton
283
+ ElButton,
181
284
  },
182
- data () {
285
+ data() {
183
286
  return {
184
287
  visible: true,
185
288
  selectedPrinter: lastSelectedPrinter,
186
- printerList: printerList
289
+ printerList: printerList,
187
290
  };
188
291
  },
189
292
  methods: {
190
293
  handlePrint: async function () {
191
294
  if (!this.selectedPrinter) {
192
- ElMessageBox.alert("请选择打印机", '提示');
295
+ ElMessageBox.alert('请选择打印机', '提示');
193
296
  return;
194
297
  }
195
298
  // 保存选择的打印机
196
299
  localStorage.setItem('lastSelectedPrinter', this.selectedPrinter);
197
300
 
198
301
  let loading = ElLoading.service({
199
- text: "正在渲染打印内容"
302
+ text: '正在渲染打印内容',
200
303
  });
201
304
 
202
305
  try {
203
306
  // 创建打印模板实例
204
- let hiprintTemplate = new hiprint.PrintTemplate({ template: json });
307
+ let hiprintTemplate = new hiprint.PrintTemplate({template: json});
205
308
 
206
- loading.setText("正在发送打印任务");
309
+ loading.setText('正在发送打印任务');
207
310
  const newGuid = guid();
208
311
  const printOption = {
209
312
  printer: this.selectedPrinter,
@@ -213,8 +316,8 @@ const showPrinterSelectionDialog = (printerList, templateJson, templateData, tem
213
316
  templateId: newGuid,
214
317
  pageSize: {
215
318
  width: (json?.panels[0]?.width || 210) * 1000,
216
- height: (json?.panels[0]?.height || 297) * 1000
217
- }
319
+ height: (json?.panels[0]?.height || 297) * 1000,
320
+ },
218
321
  };
219
322
  const pCss = `<style rel="stylesheet" type="text/css">${printCss}</style>`;
220
323
  const html = hiprintTemplate.getHtml(data || templateData, printOption)[0].outerHTML;
@@ -228,7 +331,7 @@ const showPrinterSelectionDialog = (printerList, templateJson, templateData, tem
228
331
  case 'PRINT_SUCCESS':
229
332
  loading.close();
230
333
  this.handleClose(true);
231
- ElMessage.success("打印任务已发送到打印机");
334
+ ElMessage.success('打印任务已发送到打印机');
232
335
  // 移除事件监听器
233
336
  window.removeEventListener('message', handlePrintResult);
234
337
  clearTimeout(timeoutId);
@@ -236,7 +339,7 @@ const showPrinterSelectionDialog = (printerList, templateJson, templateData, tem
236
339
  case 'PRINT_ERROR':
237
340
  loading.close();
238
341
  const error = event.data.data;
239
- ElMessageBox.alert("打印失败: " + (error.msg || "未知错误"), '提示');
342
+ ElMessageBox.alert('打印失败: ' + (error.msg || '未知错误'), '提示');
240
343
  this.handleClose(false);
241
344
  // 移除事件监听器
242
345
  window.removeEventListener('message', handlePrintResult);
@@ -255,7 +358,7 @@ const showPrinterSelectionDialog = (printerList, templateJson, templateData, tem
255
358
  const timeoutId = setTimeout(() => {
256
359
  window.removeEventListener('message', handlePrintResult);
257
360
  loading.close();
258
- ElMessageBox.alert("打印超时", '提示');
361
+ ElMessageBox.alert('打印超时', '提示');
259
362
  this.handleClose(false);
260
363
  }, 60 * 1000); // 30秒超时
261
364
 
@@ -267,17 +370,15 @@ const showPrinterSelectionDialog = (printerList, templateJson, templateData, tem
267
370
  loading.close();
268
371
  window.removeEventListener('message', handlePrintResult);
269
372
  clearTimeout(timeoutId);
270
- ElMessageBox.alert("客户端打印发送失败: " + error.message, '提示');
373
+ ElMessageBox.alert('客户端打印发送失败: ' + error.message, '提示');
271
374
  this.handleClose(false);
272
375
  }
273
-
274
-
275
376
  } catch (error) {
276
377
  if (loading) {
277
378
  loading.close();
278
379
  }
279
380
  console.error(error);
280
- ElMessageBox.alert("打印过程中发生错误: " + error.message, '提示');
381
+ ElMessageBox.alert('打印过程中发生错误: ' + error.message, '提示');
281
382
  this.handleClose(false);
282
383
  }
283
384
  },
@@ -287,49 +388,68 @@ const showPrinterSelectionDialog = (printerList, templateJson, templateData, tem
287
388
  app.unmount();
288
389
  document.body.removeChild(mountPoint);
289
390
  resolve(result);
290
- }
391
+ },
392
+ },
393
+ render() {
394
+ return createVNode(
395
+ ElDialog,
396
+ {
397
+ modelValue: this.visible,
398
+ title: '选择打印机',
399
+ width: '500px',
400
+ onClose: () => this.handleClose(false),
401
+ onClosed: () => this.handleClose(false),
402
+ },
403
+ {
404
+ default: () => [
405
+ createVNode(
406
+ ElSelect,
407
+ {
408
+ modelValue: this.selectedPrinter,
409
+ 'onUpdate:modelValue': (val) => {
410
+ this.selectedPrinter = val;
411
+ },
412
+ placeholder: '请选择打印机',
413
+ style: 'width: 100%; margin-bottom: 15px;',
414
+ },
415
+ {
416
+ default: () =>
417
+ this.printerList.map((printer) =>
418
+ createVNode(ElOption, {
419
+ key: printer.name,
420
+ label: printer.name,
421
+ value: printer.name,
422
+ })
423
+ ),
424
+ }
425
+ ),
426
+ ],
427
+ footer: () => [
428
+ createVNode('span', {class: 'dialog-footer'}, [
429
+ createVNode(
430
+ ElButton,
431
+ {
432
+ onClick: () => this.handleClose(false),
433
+ },
434
+ {
435
+ default: () => '取消',
436
+ }
437
+ ),
438
+ createVNode(
439
+ ElButton,
440
+ {
441
+ type: 'primary',
442
+ onClick: this.handlePrint,
443
+ },
444
+ {
445
+ default: () => '打印',
446
+ }
447
+ ),
448
+ ]),
449
+ ],
450
+ }
451
+ );
291
452
  },
292
- render () {
293
- return createVNode(ElDialog, {
294
- modelValue: this.visible,
295
- title: "选择打印机",
296
- width: "500px",
297
- onClose: () => this.handleClose(false),
298
- onClosed: () => this.handleClose(false)
299
- }, {
300
- default: () => [
301
- createVNode(ElSelect, {
302
- modelValue: this.selectedPrinter,
303
- "onUpdate:modelValue": (val) => { this.selectedPrinter = val; },
304
- placeholder: "请选择打印机",
305
- style: "width: 100%; margin-bottom: 15px;"
306
- }, {
307
- default: () => this.printerList.map(printer =>
308
- createVNode(ElOption, {
309
- key: printer.name,
310
- label: printer.name,
311
- value: printer.name
312
- })
313
- )
314
- })
315
- ],
316
- footer: () => [
317
- createVNode("span", { class: "dialog-footer" }, [
318
- createVNode(ElButton, {
319
- onClick: () => this.handleClose(false)
320
- }, {
321
- default: () => "取消"
322
- }),
323
- createVNode(ElButton, {
324
- type: "primary",
325
- onClick: this.handlePrint
326
- }, {
327
- default: () => "打印"
328
- })
329
- ])
330
- ]
331
- });
332
- }
333
453
  };
334
454
 
335
455
  // 创建应用实例
@@ -342,12 +462,29 @@ const showPrinterSelectionDialog = (printerList, templateJson, templateData, tem
342
462
 
343
463
  // window.silentHiprint = silentHiprint;
344
464
 
465
+ // 添加必要的类型定义
466
+ interface ElectronBrowserAPI {
467
+ print: (options: any) => void;
468
+ getPrinterList: () => Promise<any[]>;
469
+ }
470
+
471
+ declare global {
472
+ interface Window {
473
+ electronBrowserAPI?: ElectronBrowserAPI;
474
+ }
475
+ }
476
+
477
+ // 导入打印样式
478
+ import printCss from './libs/css/hiprint.css?inline';
479
+
345
480
  export default {
346
- install (app, { router, pinia, isAdmin, clientPrint = false }) {
481
+ install(
482
+ app: any,
483
+ {router, pinia, isAdmin, clientPrint = false}: InstallOptions & {clientPrint?: boolean}
484
+ ): void {
347
485
  app.provide('$hiprint', hiprintFun);
348
486
  app.provide('$silentHiprint', silentHiprint);
349
487
 
350
-
351
488
  if (router) {
352
489
  router.addRoute('Index', {
353
490
  path: 'hiprint/designer',
@@ -356,7 +493,7 @@ export default {
356
493
  icon: 'md-planet',
357
494
  title: '打印设计器',
358
495
  },
359
- component: () => import('yh-hiprint/HiprintDesigner.vue'),
496
+ component: () => import('./HiprintDesigner.vue'),
360
497
  });
361
498
  router.addRoute({
362
499
  path: '/preview',
@@ -365,7 +502,7 @@ export default {
365
502
  icon: 'md-planet',
366
503
  title: 'printView',
367
504
  },
368
- component: () => import('yh-hiprint/hiprintPreview.vue'),
505
+ component: () => import('./hiprintPreview.vue'),
369
506
  });
370
507
  } else {
371
508
  if (!router) {
@@ -373,4 +510,4 @@ export default {
373
510
  }
374
511
  }
375
512
  },
376
- };
513
+ };
package/libs/index.js CHANGED
@@ -1,6 +1,6 @@
1
- import axios from '@/libs/api.request.js';
1
+ import http from '@/libs/api.request';
2
2
  export function getPrintTemplate (code, reqParams) {
3
- return axios
3
+ return http
4
4
  .request({
5
5
  url: `/printTemplate/data/${code}`,
6
6
  method: 'post',
@@ -0,0 +1,55 @@
1
+ // @ts-ignore
2
+ import axios from '@/libs/api.request';
3
+ import {ElMessage, ElMessageBox} from 'element-plus';
4
+ import {hiprint} from 'yh-hiprint';
5
+
6
+ export default async function (code) {
7
+ let {
8
+ data: {list, json},
9
+ } = await axios.request({
10
+ url: `/printTemplate/data/${code}`,
11
+ method: 'post',
12
+ type: 'json',
13
+ data: [
14
+ {
15
+ code: '50101820',
16
+ },
17
+ ],
18
+ });
19
+ if (json) {
20
+ if (Array.isArray(list) && list.length > 0) {
21
+ list = list.map((item) => {
22
+ let printData = {};
23
+ let datas = Object.entries(item);
24
+ datas.forEach((arr) => {
25
+ if (Array.isArray(arr[1])) {
26
+ printData[arr[0]] = arr[1];
27
+ } else {
28
+ if (arr[1] !== null && arr[1] !== undefined) {
29
+ let itemsEntries = Object.entries(arr[1]);
30
+ itemsEntries.forEach((cArr) => {
31
+ printData[`$${arr[0]}[${cArr[0]}]`] = cArr[1];
32
+ });
33
+ }
34
+ }
35
+ });
36
+ return printData;
37
+ });
38
+ } else {
39
+ list = [];
40
+ }
41
+ const htmlStr = new hiprint.PrintTemplate({template: JSON.parse(json)}).getHtml(list)[0].innerHTML;
42
+ ElMessageBox.alert(htmlStr, '打印预览', {
43
+ customClass: 'print-preview-dialog',
44
+ dangerouslyUseHTMLString: true,
45
+ closeOnClickModal: true,
46
+ closeOnPressEscape: true,
47
+ closeOnHashChange: true,
48
+ showConfirmButton: false,
49
+ });
50
+ } else {
51
+ ElMessage.warning({
52
+ message: '模板配置不存在,请检查',
53
+ });
54
+ }
55
+ }
package/package.json CHANGED
@@ -1,9 +1,14 @@
1
1
  {
2
2
  "name": "yh-hiprint",
3
- "version": "2.6.13",
3
+ "version": "2.6.14",
4
4
  "description": "Hiprint for Vue3 by NoahLiu in ForceCon in Hunan Changesha",
5
- "main": "index.js",
6
- "types": "index.d.ts",
5
+ "type": "module",
6
+ "exports": {
7
+ ".": {
8
+ "import": "./index.ts",
9
+ "types": "./index.ts"
10
+ }
11
+ },
7
12
  "scripts": {
8
13
  "start": "npm run pub:aliyun && npm run pub:npm",
9
14
  "pub:aliyun": "npm publish --registry https://packages.aliyun.com/60765e0161a945067837bb5f/npm/npm-registry/ --tag latest --no-git-checks",
@@ -17,7 +22,8 @@
17
22
  "nzh": "1.0.9"
18
23
  },
19
24
  "peerDependencies": {
20
- "vue": "^3.0.0"
25
+ "vue": "^3.5.0",
26
+ "element-plus": "^2.9.0"
21
27
  },
22
28
  "author": "Liubin"
23
29
  }