@robot-admin/naive-ui-components 0.17.0 → 0.17.1
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/CHANGELOG.md +19 -0
- package/README.md +12 -11
- package/README_EN.md +1 -0
- package/dist/C_AntV2.cjs +1 -1
- package/dist/C_AntV2.js +3 -3
- package/dist/C_Barcode.css +6 -6
- package/dist/C_Barcode2.cjs +1 -1
- package/dist/C_Barcode2.js +1 -1
- package/dist/C_Chat.css +269 -185
- package/dist/C_Chat2.cjs +1 -1
- package/dist/C_Chat2.js +1 -1
- package/dist/C_Code.css +26 -26
- package/dist/C_Code2.cjs +1 -1
- package/dist/C_Code2.js +1 -1
- package/dist/C_Draggable2.cjs +1 -1
- package/dist/C_Draggable2.js +1 -1
- package/dist/C_FilePreview.css +96 -57
- package/dist/C_FilePreview2.cjs +1 -1
- package/dist/C_FilePreview2.js +1 -1
- package/dist/C_GlobalSearch.css +140 -118
- package/dist/C_GlobalSearch2.cjs +1 -1
- package/dist/C_GlobalSearch2.js +1 -1
- package/dist/C_ImageCropper.css +10 -10
- package/dist/C_ImageCropper2.cjs +1 -1
- package/dist/C_ImageCropper2.js +1 -1
- package/dist/C_Login.css +79 -79
- package/dist/C_Login2.cjs +1 -1
- package/dist/C_Login2.js +1 -1
- package/dist/C_Map.css +10 -10
- package/dist/C_Map2.cjs +1 -1
- package/dist/C_Map2.js +1 -1
- package/dist/C_OrgChart.css +28 -4
- package/dist/C_OrgChart2.cjs +1 -1
- package/dist/C_OrgChart2.js +1 -1
- package/dist/C_QRCode2.cjs +1 -1
- package/dist/C_QRCode2.js +1 -1
- package/dist/C_Signature.css +15 -15
- package/dist/C_Signature2.cjs +1 -1
- package/dist/C_Signature2.js +1 -1
- package/dist/C_SplitPane.cjs +1 -1
- package/dist/C_SplitPane.css +231 -77
- package/dist/C_SplitPane.js +1 -1
- package/dist/C_SplitPane2.cjs +1 -1
- package/dist/C_SplitPane2.js +1 -1
- package/dist/C_Table.base.css +110 -117
- package/dist/C_Table.css +110 -117
- package/dist/C_Table.d.ts +1 -0
- package/dist/C_TagsView2.cjs +1 -1
- package/dist/C_TagsView2.js +1 -1
- package/dist/C_Transfer.css +93 -84
- package/dist/C_Transfer2.cjs +1 -1
- package/dist/C_Transfer2.js +1 -1
- package/dist/C_Tree.d.ts +1 -0
- package/dist/C_Upload.css +5 -5
- package/dist/C_Upload2.cjs +1 -1
- package/dist/C_Upload2.js +1 -1
- package/dist/C_VideoPlayer2.cjs +4 -3
- package/dist/C_VideoPlayer2.js +4 -3
- package/dist/C_VtableGantt.css +29 -28
- package/dist/C_VtableGantt2.cjs +1 -1
- package/dist/C_VtableGantt2.js +1 -1
- package/dist/C_WaterFall.css +29 -29
- package/dist/C_WaterFall2.cjs +1 -1
- package/dist/C_WaterFall2.js +1 -1
- package/dist/C_WorkFlow2.cjs +1 -1
- package/dist/C_WorkFlow2.js +1 -1
- package/dist/constants.d.cts +2 -2
- package/dist/constants.d.ts +2 -2
- package/dist/constants2.d.cts +2 -2
- package/dist/constants2.d.ts +2 -2
- package/dist/constants3.d.cts +2 -2
- package/dist/constants3.d.ts +2 -2
- package/dist/constants4.d.cts +5 -5
- package/dist/constants4.d.ts +5 -5
- package/dist/constants5.d.cts +5 -9
- package/dist/constants5.d.ts +5 -9
- package/dist/data.d.cts +11 -11
- package/dist/data.d.ts +11 -11
- package/dist/helpers.cjs +1 -1
- package/dist/helpers.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.vue.d.cts +6 -6
- package/dist/index.vue.d.ts +6 -6
- package/dist/index10.vue.d.cts +3 -3
- package/dist/index10.vue.d.ts +3 -3
- package/dist/index11.vue.d.cts +3 -3
- package/dist/index11.vue.d.ts +3 -3
- package/dist/index12.vue.d.cts +3 -3
- package/dist/index12.vue.d.ts +2 -2
- package/dist/index13.vue.d.cts +2 -2
- package/dist/index13.vue.d.ts +5 -5
- package/dist/index14.vue.d.cts +5 -5
- package/dist/index14.vue.d.ts +4 -4
- package/dist/index15.vue.d.cts +4 -4
- package/dist/index15.vue.d.ts +3 -3
- package/dist/index16.vue.d.cts +3 -3
- package/dist/index17.vue.d.ts +2 -2
- package/dist/index18.vue.d.cts +2 -2
- package/dist/index18.vue.d.ts +6 -6
- package/dist/index19.vue.d.cts +6 -6
- package/dist/index19.vue.d.ts +3 -3
- package/dist/index2.vue.d.cts +2 -2
- package/dist/index2.vue.d.ts +2 -2
- package/dist/index20.vue.d.cts +5 -1
- package/dist/index20.vue.d.ts +5 -1
- package/dist/index21.vue.d.cts +2 -2
- package/dist/index21.vue.d.ts +2 -2
- package/dist/index22.vue.d.cts +2 -2
- package/dist/index22.vue.d.ts +2 -2
- package/dist/index23.vue.d.cts +2 -2
- package/dist/index23.vue.d.ts +2 -2
- package/dist/index25.vue.d.cts +6 -6
- package/dist/index25.vue.d.ts +6 -6
- package/dist/index27.vue.d.cts +2 -2
- package/dist/index27.vue.d.ts +2 -2
- package/dist/index28.vue.d.cts +6 -2
- package/dist/index28.vue.d.ts +6 -2
- package/dist/index3.vue.d.cts +3 -3
- package/dist/index3.vue.d.ts +3 -3
- package/dist/index4.vue.d.cts +3 -3
- package/dist/index5.vue.d.ts +2 -2
- package/dist/index6.vue.d.cts +2 -2
- package/dist/index6.vue.d.ts +7 -4
- package/dist/index7.vue.d.cts +7 -4
- package/dist/index7.vue.d.ts +2 -2
- package/dist/index8.vue.d.cts +2 -2
- package/dist/index8.vue.d.ts +5 -7
- package/dist/index9.vue.d.cts +5 -7
- package/dist/index9.vue.d.ts +3 -3
- package/dist/mapUtils.d.cts +3 -3
- package/dist/mapUtils.d.ts +3 -3
- package/dist/presets.d.cts +1 -1
- package/dist/presets.d.ts +1 -1
- package/dist/style.css +1176 -850
- package/dist/useCalendarEvents.d.cts +1 -1
- package/dist/useCalendarEvents.d.ts +1 -1
- package/dist/useCollapsePanel.d.cts +3 -3
- package/dist/useCollapsePanel.d.ts +3 -3
- package/dist/useCropperCore.d.cts +6 -6
- package/dist/useCropperCore.d.ts +6 -6
- package/dist/useDraggableLayout.d.cts +13 -11
- package/dist/useDraggableLayout.d.ts +13 -11
- package/dist/useDynamicFormState.d.cts +2 -2
- package/dist/useDynamicFormState.d.ts +2 -2
- package/dist/useEdgeInteraction.d.cts +2 -2
- package/dist/useEdgeInteraction.d.ts +2 -2
- package/dist/useFullscreen.d.cts +6 -2
- package/dist/useFullscreen.d.ts +6 -2
- package/dist/useGlobalSearch.d.cts +9 -4
- package/dist/useGlobalSearch.d.ts +9 -4
- package/dist/useInfiniteScroll.d.cts +4 -1
- package/dist/useInfiniteScroll.d.ts +4 -1
- package/dist/useQRCode.d.cts +3 -3
- package/dist/useQRCode.d.ts +3 -3
- package/dist/useSearchState.d.cts +3 -3
- package/dist/useSearchState.d.ts +3 -3
- package/dist/useSignatureHistory.d.cts +5 -5
- package/dist/useSignatureHistory.d.ts +5 -5
- package/dist/useSplitResize.d.cts +8 -8
- package/dist/useSplitResize.d.ts +8 -8
- package/dist/useTableQuery.cjs +2 -2
- package/dist/useTableQuery.d.cts +20 -10
- package/dist/useTableQuery.d.ts +20 -10
- package/dist/useTableQuery.js +2 -2
- package/dist/useTimeSelection.d.cts +3 -3
- package/dist/useTimeSelection.d.ts +3 -3
- package/dist/useWorkflowValidation.d.cts +2 -2
- package/dist/useWorkflowValidation.d.ts +2 -2
- package/dist/verification.d.cts +5 -5
- package/dist/verification.d.ts +5 -5
- package/docs/component-review-20261019.md +55 -0
- package/docs/guides/runtime-performance.md +38 -0
- package/docs/guides/split-pane.en.md +4 -0
- package/docs/guides/split-pane.md +4 -0
- package/docs/guides/table-density.md +20 -0
- package/docs/guides/transfer.md +11 -0
- package/docs/runtime-review-20261019.md +41 -0
- package/package.json +4 -2
package/dist/C_FilePreview.css
CHANGED
|
@@ -273,56 +273,61 @@
|
|
|
273
273
|
.text-sm[data-v-c415f23c]{font-size:0.875rem;line-height:1.25rem;}
|
|
274
274
|
.text-gray-600[data-v-c415f23c]{--un-text-opacity:1;color:rgb(75 85 99 / var(--un-text-opacity));}
|
|
275
275
|
|
|
276
|
-
|
|
276
|
+
/*
|
|
277
|
+
* @Author: ChenYu ycyplus@gmail.com
|
|
278
|
+
* @Date: 2026-10-19
|
|
279
|
+
* @Description: 原生 PDF 阅读器容器和工具留白
|
|
280
|
+
* Copyright (c) 2026 by CHENY, All Rights Reserved 😎.
|
|
281
|
+
*/
|
|
282
|
+
.pdf-container[data-v-db027bb4] {
|
|
277
283
|
display: flex;
|
|
278
284
|
flex-direction: column;
|
|
279
285
|
height: 100%;
|
|
286
|
+
min-height: 320px;
|
|
287
|
+
min-width: 0;
|
|
280
288
|
}
|
|
281
|
-
.file-
|
|
289
|
+
.file-toolbar[data-v-db027bb4] {
|
|
290
|
+
display: flex;
|
|
291
|
+
align-items: center;
|
|
292
|
+
justify-content: space-between;
|
|
293
|
+
gap: 12px;
|
|
294
|
+
flex-wrap: wrap;
|
|
282
295
|
padding: 12px 16px;
|
|
283
296
|
border-bottom: 1px solid var(--c-border, #e0e0e0);
|
|
284
|
-
background-color: var(--c-bg-card, #f9f9f9);
|
|
285
|
-
flex-shrink: 0;
|
|
286
|
-
z-index: 8;
|
|
287
|
-
position: relative;
|
|
288
297
|
}
|
|
289
|
-
.file-
|
|
298
|
+
.file-toolbar span[data-v-db027bb4] {
|
|
299
|
+
font-size: 11px;
|
|
300
|
+
color: var(--c-text-2, #666);
|
|
301
|
+
}
|
|
302
|
+
.file-viewer[data-v-db027bb4] {
|
|
290
303
|
flex: 1;
|
|
291
|
-
min-height:
|
|
304
|
+
min-height: 0;
|
|
305
|
+
min-width: 0;
|
|
306
|
+
}
|
|
307
|
+
.pdf-frame[data-v-db027bb4] {
|
|
308
|
+
width: 100%;
|
|
309
|
+
height: 100%;
|
|
310
|
+
border: 0;
|
|
311
|
+
display: block;
|
|
292
312
|
}
|
|
293
313
|
|
|
294
314
|
/* layer: shortcuts */
|
|
295
|
-
.file-container[data-v-
|
|
315
|
+
.file-container[data-v-db027bb4]::file-selector-button{width:100%;}
|
|
296
316
|
@media (min-width: 640px){
|
|
297
|
-
.file-container[data-v-
|
|
317
|
+
.file-container[data-v-db027bb4]::file-selector-button{max-width:640px;}
|
|
298
318
|
}
|
|
299
319
|
@media (min-width: 768px){
|
|
300
|
-
.file-container[data-v-
|
|
320
|
+
.file-container[data-v-db027bb4]::file-selector-button{max-width:768px;}
|
|
301
321
|
}
|
|
302
322
|
@media (min-width: 1024px){
|
|
303
|
-
.file-container[data-v-
|
|
323
|
+
.file-container[data-v-db027bb4]::file-selector-button{max-width:1024px;}
|
|
304
324
|
}
|
|
305
325
|
@media (min-width: 1280px){
|
|
306
|
-
.file-container[data-v-
|
|
326
|
+
.file-container[data-v-db027bb4]::file-selector-button{max-width:1280px;}
|
|
307
327
|
}
|
|
308
328
|
@media (min-width: 1536px){
|
|
309
|
-
.file-container[data-v-
|
|
329
|
+
.file-container[data-v-db027bb4]::file-selector-button{max-width:1536px;}
|
|
310
330
|
}
|
|
311
|
-
/* layer: default */
|
|
312
|
-
.hidden[data-v-86f8c1ab]{display:none;}
|
|
313
|
-
.h-full[data-v-86f8c1ab]{height:100%;}
|
|
314
|
-
.h6[data-v-86f8c1ab]{height:1.5rem;}
|
|
315
|
-
.min-w-12[data-v-86f8c1ab]{min-width:3rem;}
|
|
316
|
-
.w-full[data-v-86f8c1ab]{width:100%;}
|
|
317
|
-
.flex[data-v-86f8c1ab]{display:flex;}
|
|
318
|
-
.items-center[data-v-86f8c1ab]{align-items:center;}
|
|
319
|
-
.justify-between[data-v-86f8c1ab]{justify-content:space-between;}
|
|
320
|
-
.gap-2[data-v-86f8c1ab]{gap:0.5rem;}
|
|
321
|
-
.border-0[data-v-86f8c1ab]{border-width:0px;}
|
|
322
|
-
.p\[style-name\=\'Title\'\][data-v-86f8c1ab]{padding:style-name='Title';}
|
|
323
|
-
.text-center[data-v-86f8c1ab]{text-align:center;}
|
|
324
|
-
.text-sm[data-v-86f8c1ab]{font-size:0.875rem;line-height:1.25rem;}
|
|
325
|
-
.text-gray-600[data-v-86f8c1ab]{--un-text-opacity:1;color:rgb(75 85 99 / var(--un-text-opacity));}
|
|
326
331
|
|
|
327
332
|
.file-container[data-v-dae08a5f] {
|
|
328
333
|
display: flex;
|
|
@@ -477,10 +482,10 @@
|
|
|
477
482
|
.text-gray-600[data-v-dae08a5f]{--un-text-opacity:1;color:rgb(75 85 99 / var(--un-text-opacity));}
|
|
478
483
|
.font-semibold[data-v-dae08a5f]{font-weight:600;}
|
|
479
484
|
|
|
480
|
-
.c-file-preview-wrapper[data-v-
|
|
485
|
+
.c-file-preview-wrapper[data-v-c409e6f4] {
|
|
481
486
|
width: 100%;
|
|
482
487
|
}
|
|
483
|
-
.c-file-preview-wrapper .file-info-card .file-info[data-v-
|
|
488
|
+
.c-file-preview-wrapper .file-info-card .file-info[data-v-c409e6f4] {
|
|
484
489
|
display: flex;
|
|
485
490
|
align-items: center;
|
|
486
491
|
gap: 16px;
|
|
@@ -491,12 +496,12 @@
|
|
|
491
496
|
transition: var(--c-transition, 0.2s ease);
|
|
492
497
|
cursor: pointer;
|
|
493
498
|
}
|
|
494
|
-
.c-file-preview-wrapper .file-info-card .file-info[data-v-
|
|
499
|
+
.c-file-preview-wrapper .file-info-card .file-info[data-v-c409e6f4]:hover {
|
|
495
500
|
border-color: var(--c-primary, #40a9ff);
|
|
496
501
|
box-shadow: 0 4px 12px rgba(64, 169, 255, 0.15);
|
|
497
502
|
transform: translateY(-1px);
|
|
498
503
|
}
|
|
499
|
-
.c-file-preview-wrapper .file-info-card .file-info .file-icon[data-v-
|
|
504
|
+
.c-file-preview-wrapper .file-info-card .file-info .file-icon[data-v-c409e6f4] {
|
|
500
505
|
flex-shrink: 0;
|
|
501
506
|
width: 56px;
|
|
502
507
|
height: 56px;
|
|
@@ -507,11 +512,11 @@
|
|
|
507
512
|
border-radius: 12px;
|
|
508
513
|
border: 1px solid #dee2e6;
|
|
509
514
|
}
|
|
510
|
-
.c-file-preview-wrapper .file-info-card .file-info .file-details[data-v-
|
|
515
|
+
.c-file-preview-wrapper .file-info-card .file-info .file-details[data-v-c409e6f4] {
|
|
511
516
|
flex: 1;
|
|
512
517
|
min-width: 0;
|
|
513
518
|
}
|
|
514
|
-
.c-file-preview-wrapper .file-info-card .file-info .file-details .file-name[data-v-
|
|
519
|
+
.c-file-preview-wrapper .file-info-card .file-info .file-details .file-name[data-v-c409e6f4] {
|
|
515
520
|
display: flex;
|
|
516
521
|
align-items: center;
|
|
517
522
|
gap: 12px;
|
|
@@ -520,22 +525,22 @@
|
|
|
520
525
|
font-size: 16px;
|
|
521
526
|
color: var(--c-text-1, #1f2937);
|
|
522
527
|
}
|
|
523
|
-
.c-file-preview-wrapper .file-info-card .file-info .file-details .file-meta[data-v-
|
|
528
|
+
.c-file-preview-wrapper .file-info-card .file-info .file-details .file-meta[data-v-c409e6f4] {
|
|
524
529
|
display: flex;
|
|
525
530
|
gap: 16px;
|
|
526
531
|
font-size: 13px;
|
|
527
532
|
color: var(--c-text-2, #6b7280);
|
|
528
533
|
}
|
|
529
|
-
.c-file-preview-wrapper .file-info-card .file-info .file-details .file-meta .file-size[data-v-
|
|
534
|
+
.c-file-preview-wrapper .file-info-card .file-info .file-details .file-meta .file-size[data-v-c409e6f4] {
|
|
530
535
|
font-weight: 500;
|
|
531
536
|
color: var(--c-text-1, #374151);
|
|
532
537
|
}
|
|
533
|
-
.c-file-preview-wrapper .file-info-card .file-info .file-actions[data-v-
|
|
538
|
+
.c-file-preview-wrapper .file-info-card .file-info .file-actions[data-v-c409e6f4] {
|
|
534
539
|
flex-shrink: 0;
|
|
535
540
|
display: flex;
|
|
536
541
|
gap: 8px;
|
|
537
542
|
}
|
|
538
|
-
.modal-container[data-v-
|
|
543
|
+
.modal-container[data-v-c409e6f4] {
|
|
539
544
|
background: var(--c-bg-card, white);
|
|
540
545
|
border-radius: 8px;
|
|
541
546
|
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
|
|
@@ -545,7 +550,7 @@
|
|
|
545
550
|
height: 100%;
|
|
546
551
|
overflow: visible;
|
|
547
552
|
}
|
|
548
|
-
.modal-container .modal-header[data-v-
|
|
553
|
+
.modal-container .modal-header[data-v-c409e6f4] {
|
|
549
554
|
display: flex;
|
|
550
555
|
justify-content: space-between;
|
|
551
556
|
align-items: center;
|
|
@@ -556,7 +561,7 @@
|
|
|
556
561
|
z-index: 10;
|
|
557
562
|
position: relative;
|
|
558
563
|
}
|
|
559
|
-
.modal-container .modal-header .modal-title[data-v-
|
|
564
|
+
.modal-container .modal-header .modal-title[data-v-c409e6f4] {
|
|
560
565
|
display: flex;
|
|
561
566
|
align-items: center;
|
|
562
567
|
gap: 8px;
|
|
@@ -564,25 +569,25 @@
|
|
|
564
569
|
font-size: 16px;
|
|
565
570
|
color: var(--c-text-1, #333);
|
|
566
571
|
}
|
|
567
|
-
.modal-container .modal-header .modal-title span[data-v-
|
|
572
|
+
.modal-container .modal-header .modal-title span[data-v-c409e6f4] {
|
|
568
573
|
max-width: 400px;
|
|
569
574
|
overflow: hidden;
|
|
570
575
|
text-overflow: ellipsis;
|
|
571
576
|
white-space: nowrap;
|
|
572
577
|
}
|
|
573
|
-
.modal-container .modal-header .modal-actions[data-v-
|
|
578
|
+
.modal-container .modal-header .modal-actions[data-v-c409e6f4] {
|
|
574
579
|
display: flex;
|
|
575
580
|
gap: 8px;
|
|
576
581
|
align-items: center;
|
|
577
582
|
}
|
|
578
|
-
.modal-container .modal-content[data-v-
|
|
583
|
+
.modal-container .modal-content[data-v-c409e6f4] {
|
|
579
584
|
flex: 1;
|
|
580
585
|
display: flex;
|
|
581
586
|
flex-direction: column;
|
|
582
587
|
overflow: visible;
|
|
583
588
|
min-height: 0;
|
|
584
589
|
}
|
|
585
|
-
.modal-container .preview-header[data-v-
|
|
590
|
+
.modal-container .preview-header[data-v-c409e6f4] {
|
|
586
591
|
padding: 16px;
|
|
587
592
|
border-bottom: 1px solid var(--c-border, #e0e0e0);
|
|
588
593
|
background-color: var(--c-bg-card, #f9f9f9);
|
|
@@ -590,27 +595,61 @@
|
|
|
590
595
|
z-index: 9;
|
|
591
596
|
position: relative;
|
|
592
597
|
}
|
|
593
|
-
.modal-container .preview-content[data-v-
|
|
598
|
+
.modal-container .preview-content[data-v-c409e6f4] {
|
|
594
599
|
flex: 1;
|
|
595
600
|
overflow: auto;
|
|
596
601
|
min-height: 0;
|
|
597
602
|
position: relative;
|
|
598
603
|
}
|
|
599
|
-
.modal-container .preview-content .status-container[data-v-
|
|
604
|
+
.modal-container .preview-content .status-container[data-v-c409e6f4] {
|
|
600
605
|
height: 300px;
|
|
601
606
|
display: flex;
|
|
602
607
|
align-items: center;
|
|
603
608
|
justify-content: center;
|
|
604
609
|
}
|
|
610
|
+
.c-file-preview-inline[data-v-c409e6f4] {
|
|
611
|
+
container-type: inline-size;
|
|
612
|
+
height: 580px;
|
|
613
|
+
min-width: 0;
|
|
614
|
+
overflow: hidden;
|
|
615
|
+
}
|
|
616
|
+
.c-file-preview-inline .status-container[data-v-c409e6f4] {
|
|
617
|
+
display: flex;
|
|
618
|
+
align-items: center;
|
|
619
|
+
justify-content: center;
|
|
620
|
+
height: 100%;
|
|
621
|
+
padding: 24px;
|
|
622
|
+
}
|
|
623
|
+
.c-file-preview-inline[data-v-c409e6f4] .file-container {
|
|
624
|
+
min-width: 0;
|
|
625
|
+
}
|
|
626
|
+
.c-file-preview-inline[data-v-c409e6f4] .word-main,
|
|
627
|
+
.c-file-preview-inline[data-v-c409e6f4] .word-content {
|
|
628
|
+
min-width: 0;
|
|
629
|
+
}
|
|
630
|
+
@container (max-width:600px) {
|
|
631
|
+
.c-file-preview-inline[data-v-c409e6f4] .word-outline {
|
|
632
|
+
display: none;
|
|
633
|
+
}
|
|
634
|
+
.c-file-preview-inline[data-v-c409e6f4] .file-toolbar > div {
|
|
635
|
+
flex-wrap: wrap;
|
|
636
|
+
gap: 8px;
|
|
637
|
+
}
|
|
638
|
+
.c-file-preview-inline[data-v-c409e6f4] .excel-info {
|
|
639
|
+
overflow: auto;
|
|
640
|
+
}
|
|
641
|
+
}
|
|
605
642
|
|
|
606
643
|
/* layer: default */
|
|
607
|
-
|
|
608
|
-
.
|
|
609
|
-
.
|
|
610
|
-
.
|
|
611
|
-
.
|
|
612
|
-
.
|
|
613
|
-
.
|
|
614
|
-
.
|
|
615
|
-
.
|
|
616
|
-
.
|
|
644
|
+
.\!inline[data-v-c409e6f4]{display:inline !important;}
|
|
645
|
+
.inline[data-v-c409e6f4]{display:inline;}
|
|
646
|
+
.hidden[data-v-c409e6f4]{display:none;}
|
|
647
|
+
.h6[data-v-c409e6f4]{height:1.5rem;}
|
|
648
|
+
.flex[data-v-c409e6f4]{display:flex;}
|
|
649
|
+
.items-center[data-v-c409e6f4]{align-items:center;}
|
|
650
|
+
.justify-between[data-v-c409e6f4]{justify-content:space-between;}
|
|
651
|
+
.gap-2[data-v-c409e6f4]{gap:0.5rem;}
|
|
652
|
+
.gap-3[data-v-c409e6f4]{gap:0.75rem;}
|
|
653
|
+
.p\[style-name\=\'Title\'\][data-v-c409e6f4]{padding:style-name='Title';}
|
|
654
|
+
.text-sm[data-v-c409e6f4]{font-size:0.875rem;line-height:1.25rem;}
|
|
655
|
+
.text-gray-500[data-v-c409e6f4]{--un-text-opacity:1;color:rgb(107 114 128 / var(--un-text-opacity));}
|
package/dist/C_FilePreview2.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./chunk.cjs`),t=require(`./C_Icon2.cjs`),n=require(`./export-helper.cjs`),r=require(`./html.cjs`);let i=require(`vue`),a=require(`naive-ui`),o=require(`xlsx`);o=e.t(o);let s=require(`mammoth`);s=e.t(s);const c={pdf:`pdf`,doc:`word`,docx:`word`,xls:`excel`,xlsx:`excel`},l={pdf:{tagType:`error`,icon:`ic:outline-picture-as-pdf`,color:`#dc2626`},word:{tagType:`info`,icon:`ic:outline-description`,color:`#2563eb`},excel:{tagType:`success`,icon:`ic:outline-grid-on`,color:`#16a34a`},unknown:{tagType:`default`,icon:`ic:outline-insert-drive-file`,color:`#6b7280`}},u={pdf:{min:.5,max:3,step:.25,default:1},word:{min:50,max:200,step:10,default:100}},d=[20,50,100,200],f=[`fullscreenchange`,`webkitfullscreenchange`,`mozfullscreenchange`,`MSFullscreenChange`],p=e=>{try{let t=e.split(`/`).pop()||e.split(`\\`).pop();if(t?.includes(`.`)){let n=decodeURIComponent(t.split(`?`)[0]);if(n&&n!==e)return n}}catch(e){console.warn(`解析URL文件名失败:`,e)}return`未知文件`},m=e=>{if(e===0)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/t**+r).toFixed(1))+` `+n[r]},h=e=>{if(!e||e===`未知文件`)return`unknown`;let t=e.toLowerCase().split(`.`).pop();return t&&c[t]||`unknown`},g=e=>l[e]||l.unknown,_=(e,t)=>n=>{let{min:r,max:i,step:a,default:o}=t;switch(n){case`reset`:e.value=o;break;case`in`:e.value<i&&(e.value+=a);break;case`out`:e.value>r&&(e.value-=a);break}},v=e=>{let t=``;for(;e>=0;)t=String.fromCharCode(65+e%26)+t,e=Math.floor(e/26)-1;return t},y=e=>{if(e==null||e===``)return``;let t=String(e).trim();if(!isNaN(Number(t))&&t!==``&&t.length<15){let e=Number(t);return Number.isInteger(e)?e.toLocaleString():e.toLocaleString(void 0,{maximumFractionDigits:2})}return t},b=e=>{if(e==null||e===``)return`cell-empty`;let t=String(e).trim();return!isNaN(Number(t))&&t!==``?`cell-number`:t.match(/[■▬▪▫─━]/)?`cell-gantt`:t.match(/^\d{4}[-/]\d{2}[-/]\d{2}/)||t.match(/^\d{2}[-/]\d{2}[-/]\d{4}/)?`cell-date`:[`true`,`false`].includes(t.toLowerCase())?`cell-boolean`:t.length>20?`cell-text cell-long`:`cell-text`},x=(e,t)=>{let{c:n,r}=o.utils.decode_range(e[`!ref`]||`A1:A1`).e,i=Array.from({length:n+1},(t,n)=>{let r=e[o.utils.encode_cell({r:0,c:n})],i=r?String(r.v??``).trim():`列${n+1}`;return{title:i||`列${n+1}`,key:`col_${n}`,width:Math.min(Math.max(i.length*12,80),200)}}),a=new Map;return t.forEach(({s:{r:e,c:t},e:{r:n,c:r}})=>{for(let i=e;i<=n;i++)for(let o=t;o<=r;o++)a.set(`${i}-${o}`,{isMain:i===e&&o===t,rowspan:n-e+1,colspan:r-t+1})}),{data:Array.from({length:r+1},(t,r)=>{let i={};for(let t=0;t<=n;t++){let n=e[o.utils.encode_cell({r,c:t})],s=a.get(`${r}-${t}`);i[`col_${t}`]={value:n?n.v??``:``,merged:!!s,hidden:s&&!s.isMain,rowspan:s?.isMain?s.rowspan:1,colspan:s?.isMain?s.colspan:1}}return i}),columns:i}};async function S(e){return{url:URL.createObjectURL(e)+`#toolbar=1&navpanes=1&scrollbar=1&view=FitH`,totalPages:1}}async function C(e){let t=await e.arrayBuffer(),n=await s.default.convertToHtml({arrayBuffer:t,styleMap:[`p[style-name='Heading 1'] => h1:fresh`,`p[style-name='Heading 2'] => h2:fresh`,`p[style-name='Heading 3'] => h3:fresh`,`p[style-name='Title'] => h1.title:fresh`]}),i=[],a=document.createElement(`div`);a.innerHTML=r.t(n.value);let o=a.querySelectorAll(`h1, h2, h3, h4, h5, h6`);return Array.from(o).forEach((e,t)=>{let n=`heading-${t}`,r=parseInt(e.tagName.charAt(1)),a=e.textContent||``;e.id=n,i.push({id:n,text:a,level:r})}),{content:a.innerHTML,headings:i}}async function w(e){let t=await e.arrayBuffer(),n=o.read(t,{type:`array`,cellStyles:!0,cellFormula:!0,cellDates:!0});if(!n.SheetNames.length)throw Error(`Excel文件中没有找到工作表`);return{sheets:n.SheetNames.map(e=>{let t=n.Sheets[e],r=t[`!merges`]||[],{data:i,columns:a}=x(t,r);return{name:e,data:i,merges:r,columns:a}})}}const T={class:`file-container pdf-container`},E={class:`file-toolbar`},D={class:`flex justify-between items-center`},O={class:`flex gap-2 items-center`},k={class:`text-sm text-gray-600`},A={class:`flex gap-2 items-center`},j={class:`text-sm text-gray-600 min-w-12 text-center`},ee={class:`file-viewer`},te=[`src`],ne=(0,i.defineComponent)({__name:`index`,props:{pdfUrl:{},totalPages:{}},setup(e){let n=e,r=(0,i.ref)(1),o=(0,i.ref)(1),s=_(o,u.pdf),c=e=>{if(typeof e==`number`)r.value=Math.max(1,Math.min(e,n.totalPages));else{let t=e===`prev`?-1:1;r.value=Math.max(1,Math.min(r.value+t,n.totalPages))}};return(n,l)=>{let u=t.t;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,T,[(0,i.createElementVNode)(`div`,E,[(0,i.createElementVNode)(`div`,D,[(0,i.createCommentVNode)(` 翻页控制 `),(0,i.createElementVNode)(`div`,O,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,disabled:r.value<=1,onClick:l[0]||=e=>c(`prev`)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-chevron-left`})]),_:1},8,[`disabled`]),(0,i.createVNode)((0,i.unref)(a.NInputNumber),{value:r.value,"onUpdate:value":[l[1]||=e=>r.value=e,c],size:`small`,min:1,max:e.totalPages,style:{width:`80px`}},null,8,[`value`,`max`,`onUpdate:value`]),(0,i.createElementVNode)(`span`,k,`/ `+(0,i.toDisplayString)(e.totalPages),1),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,disabled:r.value>=e.totalPages,onClick:l[2]||=e=>c(`next`)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-chevron-right`})]),_:1},8,[`disabled`])]),(0,i.createCommentVNode)(` 缩放控制 `),(0,i.createElementVNode)(`div`,A,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,disabled:o.value<=.5,onClick:l[3]||=e=>(0,i.unref)(s)(`out`)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-zoom-out`})]),_:1},8,[`disabled`]),(0,i.createElementVNode)(`span`,j,(0,i.toDisplayString)(Math.round(o.value*100))+`% `,1),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,disabled:o.value>=3,onClick:l[4]||=e=>(0,i.unref)(s)(`in`)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-zoom-in`})]),_:1},8,[`disabled`]),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:l[5]||=e=>(0,i.unref)(s)(`reset`)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-fit-screen`})]),default:(0,i.withCtx)(()=>[l[6]||=(0,i.createTextVNode)(` 适应 `,-1)]),_:1})])])]),(0,i.createElementVNode)(`div`,ee,[e.pdfUrl?((0,i.openBlock)(),(0,i.createElementBlock)(`iframe`,{key:0,src:e.pdfUrl,class:`w-full h-full border-0`,title:`PDF预览`,frameborder:`0`,allowfullscreen:``},null,8,te)):(0,i.createCommentVNode)(`v-if`,!0)])])}}});var re=n.t(ne,[[`__scopeId`,`data-v-86f8c1ab`]]);const ie={class:`file-container word-container`},M={class:`file-toolbar`},N={class:`flex gap-2 items-center`},P={class:`text-sm text-gray-600 min-w-12 text-center`},F={class:`word-layout`},I={class:`word-main`},L={key:0,class:`word-outline`},R={class:`outline-content`},z=[`onClick`],B={class:`word-content`},V=[`innerHTML`],H=(0,i.defineComponent)({__name:`index`,props:{content:{},headings:{}},setup(e){let n=(0,i.ref)(!0),r=(0,i.ref)(100),o=_(r,u.word),s=e=>{document.getElementById(e)?.scrollIntoView({behavior:`smooth`,block:`start`})};return(c,l)=>{let u=t.t;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,ie,[(0,i.createElementVNode)(`div`,M,[(0,i.createElementVNode)(`div`,N,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:l[0]||=e=>n.value=!n.value},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-list`})]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)(n.value?`隐藏`:`显示`)+`目录 `,1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NDivider),{vertical:``}),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,disabled:r.value<=50,onClick:l[1]||=e=>(0,i.unref)(o)(`out`)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-zoom-out`})]),_:1},8,[`disabled`]),(0,i.createElementVNode)(`span`,P,(0,i.toDisplayString)(r.value)+`% `,1),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,disabled:r.value>=200,onClick:l[2]||=e=>(0,i.unref)(o)(`in`)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-zoom-in`})]),_:1},8,[`disabled`]),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:l[3]||=e=>(0,i.unref)(o)(`reset`)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-fit-screen`})]),default:(0,i.withCtx)(()=>[l[4]||=(0,i.createTextVNode)(` 重置 `,-1)]),_:1})])]),(0,i.createElementVNode)(`div`,F,[(0,i.createElementVNode)(`div`,I,[(0,i.createCommentVNode)(` 侧边栏目录 `),n.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,L,[l[5]||=(0,i.createElementVNode)(`div`,{class:`outline-header`},[(0,i.createElementVNode)(`h3`,{class:`text-sm font-semibold`},`文档目录`)],-1),(0,i.createElementVNode)(`div`,R,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.headings,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:t,class:(0,i.normalizeClass)([`outline-item`,`level-${e.level}`]),onClick:t=>s(e.id)},(0,i.toDisplayString)(e.text),11,z))),128))])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 主要内容区域 `),(0,i.createElementVNode)(`div`,B,[(0,i.createElementVNode)(`div`,{class:`word-document`,style:(0,i.normalizeStyle)({transform:`scale(${r.value/100})`,transformOrigin:`top center`}),innerHTML:e.content},null,12,V)])])])])}}});var U=n.t(H,[[`__scopeId`,`data-v-dae08a5f`]]);const W={class:`file-container excel-container`},G={class:`file-toolbar`},K={class:`flex justify-between items-center`},q={class:`flex gap-2 items-center`},J={key:1,class:`text-sm text-gray-600`},Y={class:`flex gap-2 items-center`},ae={class:`excel-viewer`},oe={key:0,class:`excel-info`},se={class:`excel-table-container`},ce={key:0,class:`excel-table`},le={class:`header-content`},ue={class:`column-letter`},de={class:`column-title`},fe={class:`row-number`},pe=[`rowspan`,`colspan`,`title`],me={key:1,class:`excel-empty`},he={key:0,class:`excel-pagination`},ge=(0,i.defineComponent)({__name:`index`,props:{sheets:{}},emits:[`reload`],setup(e){let n=e,r=(0,i.ref)(``),o=(0,i.ref)(!1),s=(0,i.ref)(1),c=(0,i.ref)(50),l=(0,i.ref)([]),u=(0,i.ref)([]),f=(0,i.computed)(()=>Math.ceil(l.value.length/c.value)),p=(0,i.computed)(()=>{let e=(s.value-1)*c.value;return l.value.slice(e,e+c.value)}),m=e=>{c.value=e,s.value=1},h=e=>{let t=n.sheets.find(t=>t.name===e);t&&(l.value=t.data,u.value=t.columns,s.value=1)};return(0,i.watch)(r,e=>{h(e)}),(0,i.watch)(()=>n.sheets,e=>{if(e.length>0){let[t]=e;r.value=t.name,l.value=t.data,u.value=t.columns,s.value=1}},{immediate:!0}),(n,h)=>{let g=t.t;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,W,[(0,i.createCommentVNode)(` 工具栏 `),(0,i.createElementVNode)(`div`,G,[(0,i.createElementVNode)(`div`,K,[(0,i.createElementVNode)(`div`,q,[e.sheets.length>1?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NTabs),{key:0,value:r.value,"onUpdate:value":h[0]||=e=>r.value=e,type:`card`,size:`small`},{default:(0,i.withCtx)(()=>[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.sheets,e=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NTabPane),{key:e.name,name:e.name,tab:e.name},null,8,[`name`,`tab`]))),128))]),_:1},8,[`value`])):((0,i.openBlock)(),(0,i.createElementBlock)(`span`,J,` 工作表: `+(0,i.toDisplayString)(r.value),1))]),(0,i.createElementVNode)(`div`,Y,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:h[1]||=e=>o.value=!o.value},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(g,{name:`ic:outline-format-paint`})]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)(o.value?`紧凑视图`:`完整格式`),1)]),_:1})])])]),(0,i.createElementVNode)(`div`,ae,[(0,i.createCommentVNode)(` 信息面板 `),l.value.length>0?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,oe,[(0,i.createVNode)((0,i.unref)(a.NText),{depth:`3`,class:`text-sm`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` 当前工作表: `+(0,i.toDisplayString)(r.value)+` | 总行数: `+(0,i.toDisplayString)(l.value.length)+` | 总列数: `+(0,i.toDisplayString)(u.value.length)+` | 当前页: `+(0,i.toDisplayString)(s.value)+`/`+(0,i.toDisplayString)(f.value),1)]),_:1})])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 表格 `),(0,i.createElementVNode)(`div`,se,[(0,i.createElementVNode)(`div`,{class:(0,i.normalizeClass)([`excel-table-wrapper`,{"simple-mode":!o.value}])},[l.value.length>0?((0,i.openBlock)(),(0,i.createElementBlock)(`table`,ce,[(0,i.createElementVNode)(`thead`,null,[(0,i.createElementVNode)(`tr`,null,[h[4]||=(0,i.createElementVNode)(`th`,{class:`row-number`},`行号`,-1),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(u.value,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`th`,{key:e.key,class:`excel-header`,style:(0,i.normalizeStyle)({minWidth:e.width+`px`})},[(0,i.createElementVNode)(`div`,le,[(0,i.createElementVNode)(`span`,ue,(0,i.toDisplayString)((0,i.unref)(v)(t)),1),(0,i.createElementVNode)(`span`,de,(0,i.toDisplayString)(e.title),1)])],4))),128))])]),(0,i.createElementVNode)(`tbody`,null,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(p.value,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`tr`,{key:t,class:`excel-row`},[(0,i.createElementVNode)(`td`,fe,(0,i.toDisplayString)((s.value-1)*c.value+t+1),1),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(u.value,t=>(0,i.withDirectives)(((0,i.openBlock)(),(0,i.createElementBlock)(`td`,{key:t.key,class:(0,i.normalizeClass)([`excel-cell`,[(0,i.unref)(b)(e[t.key]?.value),e[t.key]?.merged?`merged-cell`:``,o.value?``:`compact-cell`]]),rowspan:e[t.key]?.rowspan||1,colspan:e[t.key]?.colspan||1,title:e[t.key]?.value},(0,i.toDisplayString)((0,i.unref)(y)(e[t.key]?.value)),11,pe)),[[i.vShow,!e[t.key]?.hidden]])),128))]))),128))])])):((0,i.openBlock)(),(0,i.createElementBlock)(`div`,me,[(0,i.createVNode)((0,i.unref)(a.NEmpty),{description:`该工作表没有数据或解析失败`},{extra:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:h[2]||=e=>n.$emit(`reload`)},{default:(0,i.withCtx)(()=>[...h[5]||=[(0,i.createTextVNode)(` 重新解析 `,-1)]]),_:1})]),_:1})]))],2),(0,i.createCommentVNode)(` 分页 `),f.value>1?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,he,[(0,i.createVNode)((0,i.unref)(a.NPagination),{page:s.value,"onUpdate:page":h[3]||=e=>s.value=e,"page-count":f.value,"page-size":c.value,"show-size-picker":``,"page-sizes":(0,i.unref)(d),"onUpdate:pageSize":m},null,8,[`page`,`page-count`,`page-size`,`page-sizes`])])):(0,i.createCommentVNode)(`v-if`,!0)])])])}}});var _e=n.t(ge,[[`__scopeId`,`data-v-c415f23c`]]);function X(e,t){if(!e.trim())return null;try{let n=new URL(t),r=new URL(e,n);if(r.username||r.password)return null;if(r.protocol===`https:`||r.protocol===`http:`&&r.origin===n.origin)return r.href}catch{}return null}function Z(e,t){let{file:n,url:r,fileName:a}=e,o=(0,i.ref)(!1),s=(0,i.ref)(``),c=(0,i.ref)(0),l=(0,i.ref)(!1),u=(0,i.ref)(``),d=(0,i.ref)(0),f=(0,i.ref)(``),m=(0,i.ref)([]),_=(0,i.ref)([]),v=0,y=null,b=(0,i.computed)(()=>a.value&&a.value!==`未知文件`?a.value:n.value?.name?n.value.name:r.value?p(r.value):`未知文件`),x=(0,i.computed)(()=>h(b.value)),T=(0,i.computed)(()=>g(x.value)),E=()=>{let e=u.value;u.value=``,e.startsWith(`blob:`)&&URL.revokeObjectURL(e.split(`#`)[0])},D=()=>{s.value=``,o.value=!1,c.value=0,E(),d.value=0,f.value=``,m.value=[],_.value=[]},O=e=>{s.value=e,o.value=!1},k=async e=>{let t=n.value,i=r.value;if(t)return t;if(i){let t=X(i,window.location.href);if(!t)throw Error(`不支持此文件地址`);let n=await fetch(t,{signal:e});if(!n.ok)throw Error(`HTTP ${n.status}: ${n.statusText}`);let r=await n.blob();return new File([r],b.value,{type:r.type})}throw Error(`未提供文件或URL`)},A=async(e,t,n)=>{switch(t){case`pdf`:{let t=await S(e);if(n!==v){URL.revokeObjectURL(t.url.split(`#`)[0]);return}u.value=t.url,d.value=t.totalPages;break}case`word`:{let t=await C(e);if(n!==v)return;f.value=t.content,m.value=t.headings;break}case`excel`:{let t=await w(e);if(n!==v)return;_.value=t.sheets;break}default:throw Error(`不支持的文件格式`)}},j=async()=>{let e=++v;y?.abort();let t=new AbortController;if(y=t,D(),!n.value&&!r.value){O(`未提供文件或URL`),y=null;return}o.value=!0;try{let n=x.value,r=await k(t.signal);if(e!==v)return;c.value=r.size,await A(r,n,e)}catch(n){if(e!==v||t.signal.aborted)return;let r=n instanceof Error?n.message:`未知错误`;O(`${x.value.toUpperCase()}文件加载失败: ${r}`)}finally{e===v&&(o.value=!1,y=null)}};return(0,i.watch)(()=>n.value?.size,e=>{c.value=e||0},{immediate:!0}),(0,i.onUnmounted)(()=>{v+=1,y?.abort(),E()}),{loading:o,error:s,fileSize:c,showModal:l,pdfUrl:u,pdfTotalPages:d,wordContent:f,wordHeadings:m,excelSheets:_,displayFileName:b,fileType:x,fileConfig:T,loadFile:j,openPreview:async()=>{l.value=!0,await j(),t(`preview`,n.value||r.value)},downloadFile:()=>{if(n.value){let e=URL.createObjectURL(n.value);Object.assign(document.createElement(`a`),{href:e,download:b.value}).click(),URL.revokeObjectURL(e)}else if(r.value){let e=X(r.value,window.location.href);if(!e){O(`不支持此文件地址`);return}window.open(e,`_blank`,`noopener,noreferrer`)}t(`download`,n.value||r.value)}}}function Q(e){let t=(0,i.ref)(!1),n=()=>{t.value=!!document.fullscreenElement},r=(e,t=0)=>t>=e.length?(console.warn(`无法切换全屏状态`),Promise.resolve()):e[t]().catch(()=>r(e,t+1));return(0,i.onMounted)(()=>{f.forEach(e=>document.addEventListener(e,n))}),(0,i.onUnmounted)(()=>{f.forEach(e=>document.removeEventListener(e,n))}),{isFullscreen:t,toggleFullscreen:async()=>{let t=e.value;t&&await r(document.fullscreenElement?[()=>document.exitFullscreen(),()=>document.webkitExitFullscreen(),()=>document.mozCancelFullScreen(),()=>document.msExitFullscreen()]:[()=>t.requestFullscreen(),()=>t.webkitRequestFullscreen(),()=>t.mozRequestFullScreen(),()=>t.msRequestFullscreen()])},exitFullscreen:async()=>{if(document.fullscreenElement)try{await document.exitFullscreen()}catch{}t.value=!1}}}const ve={class:`c-file-preview-wrapper`},ye={key:0,class:`file-info-card`},be={class:`file-info`},xe={class:`file-icon`},Se={class:`file-details`},Ce={class:`file-name`},we={class:`file-meta`},Te={class:`file-size`},Ee={class:`file-actions`},De={class:`modal-header`},$={class:`modal-title`},Oe={class:`modal-actions`},ke={class:`modal-content`},Ae={class:`preview-header`},je={class:`flex justify-between items-center`},Me={class:`flex items-center gap-3`},Ne={class:`text-sm text-gray-500`},Pe={class:`flex gap-2`},Fe={class:`preview-content`},Ie={key:0,class:`status-container`},Le=(0,i.defineComponent)({name:`C_FilePreview`,__name:`index`,props:{file:{},url:{},fileName:{default:`未知文件`},autoPreview:{type:Boolean,default:!1}},emits:[`preview`,`download`],setup(e,{emit:n}){let{file:r,url:o,fileName:s,autoPreview:c}=(0,i.toRefs)(e),{loading:l,error:u,fileSize:d,showModal:f,pdfUrl:p,pdfTotalPages:h,wordContent:g,wordHeadings:_,excelSheets:v,displayFileName:y,fileType:b,fileConfig:x,loadFile:S,openPreview:C,downloadFile:w}=Z({file:r,url:o,fileName:s},n),T=(0,i.ref)(),{isFullscreen:E,toggleFullscreen:D,exitFullscreen:O}=Q(T);return(0,i.watch)(f,e=>{e||O()}),(0,i.watch)([r,o,c],([e,t],n)=>{if(!(typeof window>`u`)){if(f.value){(e!==n?.[0]||t!==n?.[1])&&S();return}c.value&&(e||t)&&C()}},{immediate:!0}),(e,n)=>{let r=t.t;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,ve,[(0,i.createCommentVNode)(` 文件信息卡片模式 `),(0,i.unref)(c)?(0,i.createCommentVNode)(`v-if`,!0):((0,i.openBlock)(),(0,i.createElementBlock)(`div`,ye,[(0,i.createElementVNode)(`div`,be,[(0,i.createElementVNode)(`div`,xe,[(0,i.createVNode)(r,{name:(0,i.unref)(x).icon,size:40,color:(0,i.unref)(x).color},null,8,[`name`,`color`])]),(0,i.createElementVNode)(`div`,Se,[(0,i.createElementVNode)(`div`,Ce,[(0,i.createVNode)((0,i.unref)(a.NEllipsis),{style:{"max-width":`250px`}},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)((0,i.unref)(y)),1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NTag),{type:(0,i.unref)(x).tagType,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)((0,i.unref)(b).toUpperCase()),1)]),_:1},8,[`type`])]),(0,i.createElementVNode)(`div`,we,[(0,i.createElementVNode)(`span`,Te,(0,i.toDisplayString)((0,i.unref)(m)((0,i.unref)(d))),1)])]),(0,i.createElementVNode)(`div`,Ee,[(0,i.createVNode)((0,i.unref)(a.NButton),{type:`primary`,onClick:(0,i.unref)(C)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-visibility`})]),default:(0,i.withCtx)(()=>[n[2]||=(0,i.createTextVNode)(` 预览 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{type:`tertiary`,onClick:(0,i.unref)(w)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-download`})]),default:(0,i.withCtx)(()=>[n[3]||=(0,i.createTextVNode)(` 下载 `,-1)]),_:1},8,[`onClick`])])])])),(0,i.createCommentVNode)(` 模态框预览 `),(0,i.createVNode)((0,i.unref)(a.NModal),{show:(0,i.unref)(f),"onUpdate:show":n[1]||=e=>(0,i.isRef)(f)?f.value=e:null,"mask-closable":!1,closable:!1,"auto-focus":!1,"transform-origin":`center`,style:{width:`85vw`,"max-width":`1200px`,"min-width":`800px`,height:`75vh`,"max-height":`700px`,"min-height":`500px`}},{default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,{ref_key:`modalContainer`,ref:T,class:`modal-container`},[(0,i.createCommentVNode)(` 自定义头部 `),(0,i.createElementVNode)(`div`,De,[(0,i.createElementVNode)(`div`,$,[(0,i.createVNode)(r,{name:(0,i.unref)(x).icon,size:20,color:(0,i.unref)(x).color},null,8,[`name`,`color`]),(0,i.createElementVNode)(`span`,null,(0,i.toDisplayString)((0,i.unref)(y)),1)]),(0,i.createElementVNode)(`div`,Oe,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,type:`tertiary`,onClick:(0,i.unref)(w)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-download`})]),default:(0,i.withCtx)(()=>[n[4]||=(0,i.createTextVNode)(` 下载 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,type:`tertiary`,onClick:n[0]||=e=>f.value=!1},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-close`})]),_:1})])]),(0,i.createCommentVNode)(` 预览内容 `),(0,i.createElementVNode)(`div`,ke,[(0,i.createCommentVNode)(` 文件信息头部 `),(0,i.createElementVNode)(`div`,Ae,[(0,i.createElementVNode)(`div`,je,[(0,i.createElementVNode)(`div`,Me,[(0,i.createVNode)((0,i.unref)(a.NTag),{type:(0,i.unref)(x).tagType,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:(0,i.unref)(x).icon},null,8,[`name`])]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)((0,i.unref)(b).toUpperCase()),1)]),_:1},8,[`type`]),(0,i.createVNode)((0,i.unref)(a.NEllipsis),{style:{"max-width":`300px`}},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)((0,i.unref)(y)),1)]),_:1}),(0,i.createElementVNode)(`span`,Ne,(0,i.toDisplayString)((0,i.unref)(m)((0,i.unref)(d))),1)]),(0,i.createElementVNode)(`div`,Pe,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,type:`tertiary`,disabled:(0,i.unref)(l),onClick:(0,i.unref)(S)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-refresh`})]),default:(0,i.withCtx)(()=>[n[5]||=(0,i.createTextVNode)(` 刷新 `,-1)]),_:1},8,[`disabled`,`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,type:`primary`,onClick:(0,i.unref)(D)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:(0,i.unref)(E)?`ic:outline-fullscreen-exit`:`ic:outline-fullscreen`},null,8,[`name`])]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)((0,i.unref)(E)?`退出全屏`:`全屏`),1)]),_:1},8,[`onClick`])])])]),(0,i.createCommentVNode)(` 预览内容区域 `),(0,i.createElementVNode)(`div`,Fe,[(0,i.createCommentVNode)(` 加载和错误状态 `),(0,i.unref)(l)||(0,i.unref)(u)?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Ie,[(0,i.unref)(l)?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NSpin),{key:0,size:`large`},{description:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` 正在加载`+(0,i.toDisplayString)((0,i.unref)(b).toUpperCase())+`文件... `,1)]),_:1})):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NResult),{key:1,status:`error`,title:`预览失败`,description:(0,i.unref)(u)},{footer:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(S)},{default:(0,i.withCtx)(()=>[...n[6]||=[(0,i.createTextVNode)(`重试`,-1)]]),_:1},8,[`onClick`])]),_:1},8,[`description`]))])):((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:1},[(0,i.createCommentVNode)(` 文件预览 — 委托给子组件 `),(0,i.unref)(b)===`pdf`?((0,i.openBlock)(),(0,i.createBlock)(re,{key:0,"pdf-url":(0,i.unref)(p),"total-pages":(0,i.unref)(h)},null,8,[`pdf-url`,`total-pages`])):(0,i.unref)(b)===`word`?((0,i.openBlock)(),(0,i.createBlock)(U,{key:1,content:(0,i.unref)(g),headings:(0,i.unref)(_)},null,8,[`content`,`headings`])):(0,i.unref)(b)===`excel`?((0,i.openBlock)(),(0,i.createBlock)(_e,{key:2,sheets:(0,i.unref)(v),onReload:(0,i.unref)(S)},null,8,[`sheets`,`onReload`])):((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:3},[(0,i.createCommentVNode)(` 不支持的文件类型 `),(0,i.createVNode)((0,i.unref)(a.NResult),{status:`warning`,title:`不支持的文件格式`,description:`暂不支持预览 ${(0,i.unref)(b).toUpperCase()} 格式文件`},null,8,[`description`])],2112))],64))])])],512)]),_:1},8,[`show`])])}}});var Re=n.t(Le,[[`__scopeId`,`data-v-bd24aa22`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Re}});
|
|
1
|
+
const e=require(`./chunk.cjs`),t=require(`./C_Icon2.cjs`),n=require(`./export-helper.cjs`),r=require(`./html.cjs`);let i=require(`vue`),a=require(`naive-ui`),o=require(`xlsx`);o=e.t(o);let s=require(`mammoth`);s=e.t(s);const c={pdf:`pdf`,doc:`word`,docx:`word`,xls:`excel`,xlsx:`excel`},l={pdf:{tagType:`error`,icon:`ic:outline-picture-as-pdf`,color:`#dc2626`},word:{tagType:`info`,icon:`ic:outline-description`,color:`#2563eb`},excel:{tagType:`success`,icon:`ic:outline-grid-on`,color:`#16a34a`},unknown:{tagType:`default`,icon:`ic:outline-insert-drive-file`,color:`#6b7280`}},u={pdf:{min:.5,max:3,step:.25,default:1},word:{min:50,max:200,step:10,default:100}},d=[20,50,100,200],f=[`fullscreenchange`,`webkitfullscreenchange`,`mozfullscreenchange`,`MSFullscreenChange`],p=e=>{try{let t=e.split(`/`).pop()||e.split(`\\`).pop();if(t?.includes(`.`)){let n=decodeURIComponent(t.split(`?`)[0]);if(n&&n!==e)return n}}catch(e){console.warn(`解析URL文件名失败:`,e)}return`未知文件`},m=e=>{if(e===0)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/t**+r).toFixed(1))+` `+n[r]},h=e=>{if(!e||e===`未知文件`)return`unknown`;let t=e.toLowerCase().split(`.`).pop();return t&&c[t]||`unknown`},g=e=>l[e]||l.unknown,_=(e,t)=>n=>{let{min:r,max:i,step:a,default:o}=t;switch(n){case`reset`:e.value=o;break;case`in`:e.value<i&&(e.value+=a);break;case`out`:e.value>r&&(e.value-=a);break}},v=e=>{let t=``;for(;e>=0;)t=String.fromCharCode(65+e%26)+t,e=Math.floor(e/26)-1;return t},y=e=>{if(e==null||e===``)return``;let t=String(e).trim();if(!isNaN(Number(t))&&t!==``&&t.length<15){let e=Number(t);return Number.isInteger(e)?e.toLocaleString():e.toLocaleString(void 0,{maximumFractionDigits:2})}return t},b=e=>{if(e==null||e===``)return`cell-empty`;let t=String(e).trim();return!isNaN(Number(t))&&t!==``?`cell-number`:t.match(/[■▬▪▫─━]/)?`cell-gantt`:t.match(/^\d{4}[-/]\d{2}[-/]\d{2}/)||t.match(/^\d{2}[-/]\d{2}[-/]\d{4}/)?`cell-date`:[`true`,`false`].includes(t.toLowerCase())?`cell-boolean`:t.length>20?`cell-text cell-long`:`cell-text`},x=(e,t)=>{let{c:n,r}=o.utils.decode_range(e[`!ref`]||`A1:A1`).e,i=Array.from({length:n+1},(t,n)=>{let r=e[o.utils.encode_cell({r:0,c:n})],i=r?String(r.v??``).trim():`列${n+1}`;return{title:i||`列${n+1}`,key:`col_${n}`,width:Math.min(Math.max(i.length*12,80),200)}}),a=new Map;return t.forEach(({s:{r:e,c:t},e:{r:n,c:r}})=>{for(let i=e;i<=n;i++)for(let o=t;o<=r;o++)a.set(`${i}-${o}`,{isMain:i===e&&o===t,rowspan:n-e+1,colspan:r-t+1})}),{data:Array.from({length:r+1},(t,r)=>{let i={};for(let t=0;t<=n;t++){let n=e[o.utils.encode_cell({r,c:t})],s=a.get(`${r}-${t}`);i[`col_${t}`]={value:n?n.v??``:``,merged:!!s,hidden:s&&!s.isMain,rowspan:s?.isMain?s.rowspan:1,colspan:s?.isMain?s.colspan:1}}return i}),columns:i}};async function S(e){return{url:URL.createObjectURL(e)+`#toolbar=1&navpanes=1&scrollbar=1&view=FitH`,totalPages:1}}async function C(e){let t=await e.arrayBuffer(),n=await s.default.convertToHtml({arrayBuffer:t,styleMap:[`p[style-name='Heading 1'] => h1:fresh`,`p[style-name='Heading 2'] => h2:fresh`,`p[style-name='Heading 3'] => h3:fresh`,`p[style-name='Title'] => h1.title:fresh`]}),i=[],a=document.createElement(`div`);a.innerHTML=r.t(n.value);let o=a.querySelectorAll(`h1, h2, h3, h4, h5, h6`);return Array.from(o).forEach((e,t)=>{let n=`heading-${t}`,r=parseInt(e.tagName.charAt(1)),a=e.textContent||``;e.id=n,i.push({id:n,text:a,level:r})}),{content:a.innerHTML,headings:i}}async function w(e){let t=await e.arrayBuffer(),n=o.read(t,{type:`array`,cellStyles:!0,cellFormula:!0,cellDates:!0});if(!n.SheetNames.length)throw Error(`Excel文件中没有找到工作表`);return{sheets:n.SheetNames.map(e=>{let t=n.Sheets[e],r=t[`!merges`]||[],{data:i,columns:a}=x(t,r);return{name:e,data:i,merges:r,columns:a}})}}const T={class:`file-container pdf-container`},E={class:`file-toolbar`},D={class:`file-viewer`},O=[`src`],k=(0,i.defineComponent)({name:`FilePreviewPdfViewer`,__name:`index`,props:{pdfUrl:{},totalPages:{}},setup(e){return(t,n)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,T,[(0,i.createElementVNode)(`div`,E,[n[1]||=(0,i.createElementVNode)(`span`,null,`PDF 阅读器 · 翻页、缩放与打印由浏览器提供`,-1),e.pdfUrl?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NButton),{key:0,tag:`a`,href:e.pdfUrl,target:`_blank`,rel:`noopener noreferrer`,size:`small`},{default:(0,i.withCtx)(()=>[...n[0]||=[(0,i.createTextVNode)(`在新标签页打开`,-1)]]),_:1},8,[`href`])):(0,i.createCommentVNode)(`v-if`,!0)]),(0,i.createElementVNode)(`div`,D,[e.pdfUrl?((0,i.openBlock)(),(0,i.createElementBlock)(`iframe`,{key:0,src:e.pdfUrl,title:`PDF预览`,class:`pdf-frame`},null,8,O)):(0,i.createCommentVNode)(`v-if`,!0)])]))}});var A=n.t(k,[[`__scopeId`,`data-v-db027bb4`]]);const j={class:`file-container word-container`},M={class:`file-toolbar`},ee={class:`flex gap-2 items-center`},te={class:`text-sm text-gray-600 min-w-12 text-center`},ne={class:`word-layout`},re={class:`word-main`},ie={key:0,class:`word-outline`},ae={class:`outline-content`},N=[`onClick`],P={class:`word-content`},F=[`innerHTML`],I=(0,i.defineComponent)({__name:`index`,props:{content:{},headings:{}},setup(e){let n=(0,i.ref)(!0),r=(0,i.ref)(100),o=_(r,u.word),s=e=>{document.getElementById(e)?.scrollIntoView({behavior:`smooth`,block:`start`})};return(c,l)=>{let u=t.t;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,j,[(0,i.createElementVNode)(`div`,M,[(0,i.createElementVNode)(`div`,ee,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:l[0]||=e=>n.value=!n.value},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-list`})]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)(n.value?`隐藏`:`显示`)+`目录 `,1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NDivider),{vertical:``}),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,disabled:r.value<=50,onClick:l[1]||=e=>(0,i.unref)(o)(`out`)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-zoom-out`})]),_:1},8,[`disabled`]),(0,i.createElementVNode)(`span`,te,(0,i.toDisplayString)(r.value)+`% `,1),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,disabled:r.value>=200,onClick:l[2]||=e=>(0,i.unref)(o)(`in`)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-zoom-in`})]),_:1},8,[`disabled`]),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:l[3]||=e=>(0,i.unref)(o)(`reset`)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(u,{name:`ic:outline-fit-screen`})]),default:(0,i.withCtx)(()=>[l[4]||=(0,i.createTextVNode)(` 重置 `,-1)]),_:1})])]),(0,i.createElementVNode)(`div`,ne,[(0,i.createElementVNode)(`div`,re,[(0,i.createCommentVNode)(` 侧边栏目录 `),n.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,ie,[l[5]||=(0,i.createElementVNode)(`div`,{class:`outline-header`},[(0,i.createElementVNode)(`h3`,{class:`text-sm font-semibold`},`文档目录`)],-1),(0,i.createElementVNode)(`div`,ae,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.headings,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:t,class:(0,i.normalizeClass)([`outline-item`,`level-${e.level}`]),onClick:t=>s(e.id)},(0,i.toDisplayString)(e.text),11,N))),128))])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 主要内容区域 `),(0,i.createElementVNode)(`div`,P,[(0,i.createElementVNode)(`div`,{class:`word-document`,style:(0,i.normalizeStyle)({transform:`scale(${r.value/100})`,transformOrigin:`top center`}),innerHTML:e.content},null,12,F)])])])])}}});var L=n.t(I,[[`__scopeId`,`data-v-dae08a5f`]]);const R={class:`file-container excel-container`},z={class:`file-toolbar`},B={class:`flex justify-between items-center`},V={class:`flex gap-2 items-center`},H={key:1,class:`text-sm text-gray-600`},U={class:`flex gap-2 items-center`},W={class:`excel-viewer`},G={key:0,class:`excel-info`},K={class:`excel-table-container`},q={key:0,class:`excel-table`},J={class:`header-content`},oe={class:`column-letter`},se={class:`column-title`},ce={class:`row-number`},le=[`rowspan`,`colspan`,`title`],ue={key:1,class:`excel-empty`},de={key:0,class:`excel-pagination`},fe=(0,i.defineComponent)({__name:`index`,props:{sheets:{}},emits:[`reload`],setup(e){let n=e,r=(0,i.ref)(``),o=(0,i.ref)(!1),s=(0,i.ref)(1),c=(0,i.ref)(50),l=(0,i.ref)([]),u=(0,i.ref)([]),f=(0,i.computed)(()=>Math.ceil(l.value.length/c.value)),p=(0,i.computed)(()=>{let e=(s.value-1)*c.value;return l.value.slice(e,e+c.value)}),m=e=>{c.value=e,s.value=1},h=e=>{let t=n.sheets.find(t=>t.name===e);t&&(l.value=t.data,u.value=t.columns,s.value=1)};return(0,i.watch)(r,e=>{h(e)}),(0,i.watch)(()=>n.sheets,e=>{if(e.length>0){let[t]=e;r.value=t.name,l.value=t.data,u.value=t.columns,s.value=1}},{immediate:!0}),(n,h)=>{let g=t.t;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,R,[(0,i.createCommentVNode)(` 工具栏 `),(0,i.createElementVNode)(`div`,z,[(0,i.createElementVNode)(`div`,B,[(0,i.createElementVNode)(`div`,V,[e.sheets.length>1?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NTabs),{key:0,value:r.value,"onUpdate:value":h[0]||=e=>r.value=e,type:`card`,size:`small`},{default:(0,i.withCtx)(()=>[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.sheets,e=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NTabPane),{key:e.name,name:e.name,tab:e.name},null,8,[`name`,`tab`]))),128))]),_:1},8,[`value`])):((0,i.openBlock)(),(0,i.createElementBlock)(`span`,H,` 工作表: `+(0,i.toDisplayString)(r.value),1))]),(0,i.createElementVNode)(`div`,U,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:h[1]||=e=>o.value=!o.value},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(g,{name:`ic:outline-format-paint`})]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)(o.value?`紧凑视图`:`完整格式`),1)]),_:1})])])]),(0,i.createElementVNode)(`div`,W,[(0,i.createCommentVNode)(` 信息面板 `),l.value.length>0?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,G,[(0,i.createVNode)((0,i.unref)(a.NText),{depth:`3`,class:`text-sm`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` 当前工作表: `+(0,i.toDisplayString)(r.value)+` | 总行数: `+(0,i.toDisplayString)(l.value.length)+` | 总列数: `+(0,i.toDisplayString)(u.value.length)+` | 当前页: `+(0,i.toDisplayString)(s.value)+`/`+(0,i.toDisplayString)(f.value),1)]),_:1})])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 表格 `),(0,i.createElementVNode)(`div`,K,[(0,i.createElementVNode)(`div`,{class:(0,i.normalizeClass)([`excel-table-wrapper`,{"simple-mode":!o.value}])},[l.value.length>0?((0,i.openBlock)(),(0,i.createElementBlock)(`table`,q,[(0,i.createElementVNode)(`thead`,null,[(0,i.createElementVNode)(`tr`,null,[h[4]||=(0,i.createElementVNode)(`th`,{class:`row-number`},`行号`,-1),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(u.value,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`th`,{key:e.key,class:`excel-header`,style:(0,i.normalizeStyle)({minWidth:e.width+`px`})},[(0,i.createElementVNode)(`div`,J,[(0,i.createElementVNode)(`span`,oe,(0,i.toDisplayString)((0,i.unref)(v)(t)),1),(0,i.createElementVNode)(`span`,se,(0,i.toDisplayString)(e.title),1)])],4))),128))])]),(0,i.createElementVNode)(`tbody`,null,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(p.value,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`tr`,{key:t,class:`excel-row`},[(0,i.createElementVNode)(`td`,ce,(0,i.toDisplayString)((s.value-1)*c.value+t+1),1),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(u.value,t=>(0,i.withDirectives)(((0,i.openBlock)(),(0,i.createElementBlock)(`td`,{key:t.key,class:(0,i.normalizeClass)([`excel-cell`,[(0,i.unref)(b)(e[t.key]?.value),e[t.key]?.merged?`merged-cell`:``,o.value?``:`compact-cell`]]),rowspan:e[t.key]?.rowspan||1,colspan:e[t.key]?.colspan||1,title:e[t.key]?.value},(0,i.toDisplayString)((0,i.unref)(y)(e[t.key]?.value)),11,le)),[[i.vShow,!e[t.key]?.hidden]])),128))]))),128))])])):((0,i.openBlock)(),(0,i.createElementBlock)(`div`,ue,[(0,i.createVNode)((0,i.unref)(a.NEmpty),{description:`该工作表没有数据或解析失败`},{extra:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:h[2]||=e=>n.$emit(`reload`)},{default:(0,i.withCtx)(()=>[...h[5]||=[(0,i.createTextVNode)(` 重新解析 `,-1)]]),_:1})]),_:1})]))],2),(0,i.createCommentVNode)(` 分页 `),f.value>1?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,de,[(0,i.createVNode)((0,i.unref)(a.NPagination),{page:s.value,"onUpdate:page":h[3]||=e=>s.value=e,"page-count":f.value,"page-size":c.value,"show-size-picker":``,"page-sizes":(0,i.unref)(d),"onUpdate:pageSize":m},null,8,[`page`,`page-count`,`page-size`,`page-sizes`])])):(0,i.createCommentVNode)(`v-if`,!0)])])])}}});var Y=n.t(fe,[[`__scopeId`,`data-v-c415f23c`]]);function X(e,t){if(!e.trim())return null;try{let n=new URL(t),r=new URL(e,n);if(r.username||r.password)return null;if(r.protocol===`https:`||r.protocol===`http:`&&r.origin===n.origin)return r.href}catch{}return null}function Z(e,t){let{file:n,url:r,fileName:a}=e,o=(0,i.ref)(!1),s=(0,i.ref)(``),c=(0,i.ref)(0),l=(0,i.ref)(!1),u=(0,i.ref)(``),d=(0,i.ref)(0),f=(0,i.ref)(``),m=(0,i.ref)([]),_=(0,i.ref)([]),v=0,y=null,b=(0,i.computed)(()=>a.value&&a.value!==`未知文件`?a.value:n.value?.name?n.value.name:r.value?p(r.value):`未知文件`),x=(0,i.computed)(()=>h(b.value)),T=(0,i.computed)(()=>g(x.value)),E=()=>{let e=u.value;u.value=``,e.startsWith(`blob:`)&&URL.revokeObjectURL(e.split(`#`)[0])},D=()=>{s.value=``,o.value=!1,c.value=0,E(),d.value=0,f.value=``,m.value=[],_.value=[]},O=e=>{s.value=e,o.value=!1},k=async e=>{let t=n.value,i=r.value;if(t)return t;if(i){let t=X(i,window.location.href);if(!t)throw Error(`不支持此文件地址`);let n=await fetch(t,{signal:e});if(!n.ok)throw Error(`HTTP ${n.status}: ${n.statusText}`);let r=await n.blob();return new File([r],b.value,{type:r.type})}throw Error(`未提供文件或URL`)},A=async(e,t,n)=>{switch(t){case`pdf`:{let t=await S(e);if(n!==v){URL.revokeObjectURL(t.url.split(`#`)[0]);return}u.value=t.url,d.value=t.totalPages;break}case`word`:{let t=await C(e);if(n!==v)return;f.value=t.content,m.value=t.headings;break}case`excel`:{let t=await w(e);if(n!==v)return;_.value=t.sheets;break}default:throw Error(`不支持的文件格式`)}},j=async()=>{let e=++v;y?.abort();let t=new AbortController;if(y=t,D(),!n.value&&!r.value){O(`未提供文件或URL`),y=null;return}o.value=!0;try{let n=x.value,r=await k(t.signal);if(e!==v)return;c.value=r.size,await A(r,n,e)}catch(n){if(e!==v||t.signal.aborted)return;let r=n instanceof Error?n.message:`未知错误`;O(`${x.value.toUpperCase()}文件加载失败: ${r}`)}finally{e===v&&(o.value=!1,y=null)}};return(0,i.watch)(()=>n.value?.size,e=>{c.value=e||0},{immediate:!0}),(0,i.onUnmounted)(()=>{v+=1,y?.abort(),E()}),{loading:o,error:s,fileSize:c,showModal:l,pdfUrl:u,pdfTotalPages:d,wordContent:f,wordHeadings:m,excelSheets:_,displayFileName:b,fileType:x,fileConfig:T,loadFile:j,openPreview:async()=>{l.value=!0,await j(),t(`preview`,n.value||r.value)},downloadFile:()=>{if(n.value){let e=URL.createObjectURL(n.value);Object.assign(document.createElement(`a`),{href:e,download:b.value}).click(),URL.revokeObjectURL(e)}else if(r.value){let e=X(r.value,window.location.href);if(!e){O(`不支持此文件地址`);return}window.open(e,`_blank`,`noopener,noreferrer`)}t(`download`,n.value||r.value)}}}function Q(e){let t=(0,i.ref)(!1),n=()=>{t.value=!!document.fullscreenElement},r=(e,t=0)=>t>=e.length?(console.warn(`无法切换全屏状态`),Promise.resolve()):e[t]().catch(()=>r(e,t+1));return(0,i.onMounted)(()=>{f.forEach(e=>document.addEventListener(e,n))}),(0,i.onUnmounted)(()=>{f.forEach(e=>document.removeEventListener(e,n))}),{isFullscreen:t,toggleFullscreen:async()=>{let t=e.value;t&&await r(document.fullscreenElement?[()=>document.exitFullscreen(),()=>document.webkitExitFullscreen(),()=>document.mozCancelFullScreen(),()=>document.msExitFullscreen()]:[()=>t.requestFullscreen(),()=>t.webkitRequestFullscreen(),()=>t.mozRequestFullScreen(),()=>t.msRequestFullscreen()])},exitFullscreen:async()=>{if(document.fullscreenElement)try{await document.exitFullscreen()}catch{}t.value=!1}}}const pe={class:`c-file-preview-wrapper`},me={key:0,class:`file-info-card`},he={class:`file-info`},ge={class:`file-icon`},_e={class:`file-details`},ve={class:`file-name`},ye={class:`file-meta`},be={class:`file-size`},xe={class:`file-actions`},Se={key:1,class:`c-file-preview-inline`},Ce={key:0,class:`status-container`,role:`status`},we={class:`modal-header`},Te={class:`modal-title`},Ee={class:`modal-actions`},De={class:`modal-content`},$={class:`preview-header`},Oe={class:`flex justify-between items-center`},ke={class:`flex items-center gap-3`},Ae={class:`text-sm text-gray-500`},je={class:`flex gap-2`},Me={class:`preview-content`},Ne={key:0,class:`status-container`},Pe=(0,i.defineComponent)({name:`C_FilePreview`,__name:`index`,props:{file:{},url:{},fileName:{default:`未知文件`},autoPreview:{type:Boolean,default:!1},inline:{type:Boolean,default:!1}},emits:[`preview`,`download`],setup(e,{emit:n}){let{file:r,url:o,fileName:s,autoPreview:c,inline:l}=(0,i.toRefs)(e),{loading:u,error:d,fileSize:f,showModal:p,pdfUrl:h,pdfTotalPages:g,wordContent:_,wordHeadings:v,excelSheets:y,displayFileName:b,fileType:x,fileConfig:S,loadFile:C,openPreview:w,downloadFile:T}=Z({file:r,url:o,fileName:s},n),E=(0,i.ref)(),{isFullscreen:D,toggleFullscreen:O,exitFullscreen:k}=Q(E);return(0,i.watch)(p,e=>{e||k()}),(0,i.watch)([r,o,c,l],([e,t],n)=>{if(!(typeof window>`u`)){if(l.value){(e||t)&&C();return}if(p.value){(e!==n?.[0]||t!==n?.[1])&&C();return}c.value&&(e||t)&&w()}},{immediate:!0}),(e,n)=>{let r=t.t;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,pe,[(0,i.createCommentVNode)(` 文件信息卡片模式 `),!(0,i.unref)(c)&&!(0,i.unref)(l)?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,me,[(0,i.createElementVNode)(`div`,he,[(0,i.createElementVNode)(`div`,ge,[(0,i.createVNode)(r,{name:(0,i.unref)(S).icon,size:40,color:(0,i.unref)(S).color},null,8,[`name`,`color`])]),(0,i.createElementVNode)(`div`,_e,[(0,i.createElementVNode)(`div`,ve,[(0,i.createVNode)((0,i.unref)(a.NEllipsis),{style:{"max-width":`250px`}},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)((0,i.unref)(b)),1)]),_:1}),(0,i.createVNode)((0,i.unref)(a.NTag),{type:(0,i.unref)(S).tagType,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)((0,i.unref)(x).toUpperCase()),1)]),_:1},8,[`type`])]),(0,i.createElementVNode)(`div`,ye,[(0,i.createElementVNode)(`span`,be,(0,i.toDisplayString)((0,i.unref)(m)((0,i.unref)(f))),1)])]),(0,i.createElementVNode)(`div`,xe,[(0,i.createVNode)((0,i.unref)(a.NButton),{type:`primary`,onClick:(0,i.unref)(w)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-visibility`})]),default:(0,i.withCtx)(()=>[n[2]||=(0,i.createTextVNode)(` 预览 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{type:`tertiary`,onClick:(0,i.unref)(T)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-download`})]),default:(0,i.withCtx)(()=>[n[3]||=(0,i.createTextVNode)(` 下载 `,-1)]),_:1},8,[`onClick`])])])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.unref)(l)?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Se,[(0,i.unref)(u)||(0,i.unref)(d)?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Ce,[(0,i.unref)(u)?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NSpin),{key:0,size:`large`},{description:(0,i.withCtx)(()=>[...n[4]||=[(0,i.createTextVNode)(`正在加载文档…`,-1)]]),_:1})):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NResult),{key:1,status:`error`,title:`预览失败`,description:(0,i.unref)(d)},{footer:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,onClick:(0,i.unref)(C)},{default:(0,i.withCtx)(()=>[...n[5]||=[(0,i.createTextVNode)(`重试`,-1)]]),_:1},8,[`onClick`])]),_:1},8,[`description`]))])):(0,i.unref)(x)===`pdf`?((0,i.openBlock)(),(0,i.createBlock)(A,{key:1,"pdf-url":(0,i.unref)(h),"total-pages":(0,i.unref)(g)},null,8,[`pdf-url`,`total-pages`])):(0,i.unref)(x)===`word`?((0,i.openBlock)(),(0,i.createBlock)(L,{key:2,content:(0,i.unref)(_),headings:(0,i.unref)(v)},null,8,[`content`,`headings`])):(0,i.unref)(x)===`excel`?((0,i.openBlock)(),(0,i.createBlock)(Y,{key:3,sheets:(0,i.unref)(y),onReload:(0,i.unref)(C)},null,8,[`sheets`,`onReload`])):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NResult),{key:4,status:`warning`,title:`不支持的文件格式`,description:`支持 PDF、DOCX、XLSX 和 XLS 文件`}))])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 模态框预览 `),(0,i.unref)(l)?(0,i.createCommentVNode)(`v-if`,!0):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NModal),{key:2,show:(0,i.unref)(p),"onUpdate:show":n[1]||=e=>(0,i.isRef)(p)?p.value=e:null,"mask-closable":!1,closable:!1,"auto-focus":!1,"transform-origin":`center`,style:{width:`85vw`,"max-width":`1200px`,"min-width":`800px`,height:`75vh`,"max-height":`700px`,"min-height":`500px`}},{default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,{ref_key:`modalContainer`,ref:E,class:`modal-container`},[(0,i.createCommentVNode)(` 自定义头部 `),(0,i.createElementVNode)(`div`,we,[(0,i.createElementVNode)(`div`,Te,[(0,i.createVNode)(r,{name:(0,i.unref)(S).icon,size:20,color:(0,i.unref)(S).color},null,8,[`name`,`color`]),(0,i.createElementVNode)(`span`,null,(0,i.toDisplayString)((0,i.unref)(b)),1)]),(0,i.createElementVNode)(`div`,Ee,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,type:`tertiary`,onClick:(0,i.unref)(T)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-download`})]),default:(0,i.withCtx)(()=>[n[6]||=(0,i.createTextVNode)(` 下载 `,-1)]),_:1},8,[`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,type:`tertiary`,onClick:n[0]||=e=>p.value=!1},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-close`})]),_:1})])]),(0,i.createCommentVNode)(` 预览内容 `),(0,i.createElementVNode)(`div`,De,[(0,i.createCommentVNode)(` 文件信息头部 `),(0,i.createElementVNode)(`div`,$,[(0,i.createElementVNode)(`div`,Oe,[(0,i.createElementVNode)(`div`,ke,[(0,i.createVNode)((0,i.unref)(a.NTag),{type:(0,i.unref)(S).tagType,size:`small`},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:(0,i.unref)(S).icon},null,8,[`name`])]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)((0,i.unref)(x).toUpperCase()),1)]),_:1},8,[`type`]),(0,i.createVNode)((0,i.unref)(a.NEllipsis),{style:{"max-width":`300px`}},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)((0,i.unref)(b)),1)]),_:1}),(0,i.createElementVNode)(`span`,Ae,(0,i.toDisplayString)((0,i.unref)(m)((0,i.unref)(f))),1)]),(0,i.createElementVNode)(`div`,je,[(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,type:`tertiary`,disabled:(0,i.unref)(u),onClick:(0,i.unref)(C)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:`ic:outline-refresh`})]),default:(0,i.withCtx)(()=>[n[7]||=(0,i.createTextVNode)(` 刷新 `,-1)]),_:1},8,[`disabled`,`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{size:`small`,type:`primary`,onClick:(0,i.unref)(O)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(r,{name:(0,i.unref)(D)?`ic:outline-fullscreen-exit`:`ic:outline-fullscreen`},null,8,[`name`])]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)((0,i.unref)(D)?`退出全屏`:`全屏`),1)]),_:1},8,[`onClick`])])])]),(0,i.createCommentVNode)(` 预览内容区域 `),(0,i.createElementVNode)(`div`,Me,[(0,i.createCommentVNode)(` 加载和错误状态 `),(0,i.unref)(u)||(0,i.unref)(d)?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Ne,[(0,i.unref)(u)?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NSpin),{key:0,size:`large`},{description:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` 正在加载`+(0,i.toDisplayString)((0,i.unref)(x).toUpperCase())+`文件... `,1)]),_:1})):((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NResult),{key:1,status:`error`,title:`预览失败`,description:(0,i.unref)(d)},{footer:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{onClick:(0,i.unref)(C)},{default:(0,i.withCtx)(()=>[...n[8]||=[(0,i.createTextVNode)(`重试`,-1)]]),_:1},8,[`onClick`])]),_:1},8,[`description`]))])):((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:1},[(0,i.createCommentVNode)(` 文件预览 — 委托给子组件 `),(0,i.unref)(x)===`pdf`?((0,i.openBlock)(),(0,i.createBlock)(A,{key:0,"pdf-url":(0,i.unref)(h),"total-pages":(0,i.unref)(g)},null,8,[`pdf-url`,`total-pages`])):(0,i.unref)(x)===`word`?((0,i.openBlock)(),(0,i.createBlock)(L,{key:1,content:(0,i.unref)(_),headings:(0,i.unref)(v)},null,8,[`content`,`headings`])):(0,i.unref)(x)===`excel`?((0,i.openBlock)(),(0,i.createBlock)(Y,{key:2,sheets:(0,i.unref)(y),onReload:(0,i.unref)(C)},null,8,[`sheets`,`onReload`])):((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:3},[(0,i.createCommentVNode)(` 不支持的文件类型 `),(0,i.createVNode)((0,i.unref)(a.NResult),{status:`warning`,title:`不支持的文件格式`,description:`暂不支持预览 ${(0,i.unref)(x).toUpperCase()} 格式文件`},null,8,[`description`])],2112))],64))])])],512)]),_:1},8,[`show`]))])}}});var Fe=n.t(Pe,[[`__scopeId`,`data-v-c409e6f4`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Fe}});
|
package/dist/C_FilePreview2.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{t as n}from"./html.js";import{Fragment as r,computed as i,createBlock as a,createCommentVNode as o,createElementBlock as s,createElementVNode as c,createTextVNode as l,createVNode as u,defineComponent as d,isRef as f,normalizeClass as p,normalizeStyle as m,onMounted as h,onUnmounted as g,openBlock as _,ref as v,renderList as y,resolveComponent as b,toDisplayString as x,toRefs as S,unref as C,vShow as w,watch as T,withCtx as E,withDirectives as D}from"vue";import{NButton as O,NDivider as k,NEllipsis as A,NEmpty as j,NInputNumber as M,NModal as N,NPagination as P,NResult as F,NSpin as ee,NTabPane as I,NTabs as L,NTag as R,NText as z}from"naive-ui";import*as B from"xlsx";import V from"mammoth";const H={pdf:`pdf`,doc:`word`,docx:`word`,xls:`excel`,xlsx:`excel`},U={pdf:{tagType:`error`,icon:`ic:outline-picture-as-pdf`,color:`#dc2626`},word:{tagType:`info`,icon:`ic:outline-description`,color:`#2563eb`},excel:{tagType:`success`,icon:`ic:outline-grid-on`,color:`#16a34a`},unknown:{tagType:`default`,icon:`ic:outline-insert-drive-file`,color:`#6b7280`}},W={pdf:{min:.5,max:3,step:.25,default:1},word:{min:50,max:200,step:10,default:100}},G=[20,50,100,200],K=[`fullscreenchange`,`webkitfullscreenchange`,`mozfullscreenchange`,`MSFullscreenChange`],te=e=>{try{let t=e.split(`/`).pop()||e.split(`\\`).pop();if(t?.includes(`.`)){let n=decodeURIComponent(t.split(`?`)[0]);if(n&&n!==e)return n}}catch(e){console.warn(`解析URL文件名失败:`,e)}return`未知文件`},q=e=>{if(e===0)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/t**+r).toFixed(1))+` `+n[r]},ne=e=>{if(!e||e===`未知文件`)return`unknown`;let t=e.toLowerCase().split(`.`).pop();return t&&H[t]||`unknown`},re=e=>U[e]||U.unknown,J=(e,t)=>n=>{let{min:r,max:i,step:a,default:o}=t;switch(n){case`reset`:e.value=o;break;case`in`:e.value<i&&(e.value+=a);break;case`out`:e.value>r&&(e.value-=a);break}},ie=e=>{let t=``;for(;e>=0;)t=String.fromCharCode(65+e%26)+t,e=Math.floor(e/26)-1;return t},Y=e=>{if(e==null||e===``)return``;let t=String(e).trim();if(!isNaN(Number(t))&&t!==``&&t.length<15){let e=Number(t);return Number.isInteger(e)?e.toLocaleString():e.toLocaleString(void 0,{maximumFractionDigits:2})}return t},ae=e=>{if(e==null||e===``)return`cell-empty`;let t=String(e).trim();return!isNaN(Number(t))&&t!==``?`cell-number`:t.match(/[■▬▪▫─━]/)?`cell-gantt`:t.match(/^\d{4}[-/]\d{2}[-/]\d{2}/)||t.match(/^\d{2}[-/]\d{2}[-/]\d{4}/)?`cell-date`:[`true`,`false`].includes(t.toLowerCase())?`cell-boolean`:t.length>20?`cell-text cell-long`:`cell-text`},oe=(e,t)=>{let{c:n,r}=B.utils.decode_range(e[`!ref`]||`A1:A1`).e,i=Array.from({length:n+1},(t,n)=>{let r=e[B.utils.encode_cell({r:0,c:n})],i=r?String(r.v??``).trim():`列${n+1}`;return{title:i||`列${n+1}`,key:`col_${n}`,width:Math.min(Math.max(i.length*12,80),200)}}),a=new Map;return t.forEach(({s:{r:e,c:t},e:{r:n,c:r}})=>{for(let i=e;i<=n;i++)for(let o=t;o<=r;o++)a.set(`${i}-${o}`,{isMain:i===e&&o===t,rowspan:n-e+1,colspan:r-t+1})}),{data:Array.from({length:r+1},(t,r)=>{let i={};for(let t=0;t<=n;t++){let n=e[B.utils.encode_cell({r,c:t})],o=a.get(`${r}-${t}`);i[`col_${t}`]={value:n?n.v??``:``,merged:!!o,hidden:o&&!o.isMain,rowspan:o?.isMain?o.rowspan:1,colspan:o?.isMain?o.colspan:1}}return i}),columns:i}};async function se(e){return{url:URL.createObjectURL(e)+`#toolbar=1&navpanes=1&scrollbar=1&view=FitH`,totalPages:1}}async function ce(e){let t=await e.arrayBuffer(),r=await V.convertToHtml({arrayBuffer:t,styleMap:[`p[style-name='Heading 1'] => h1:fresh`,`p[style-name='Heading 2'] => h2:fresh`,`p[style-name='Heading 3'] => h3:fresh`,`p[style-name='Title'] => h1.title:fresh`]}),i=[],a=document.createElement(`div`);a.innerHTML=n(r.value);let o=a.querySelectorAll(`h1, h2, h3, h4, h5, h6`);return Array.from(o).forEach((e,t)=>{let n=`heading-${t}`,r=parseInt(e.tagName.charAt(1)),a=e.textContent||``;e.id=n,i.push({id:n,text:a,level:r})}),{content:a.innerHTML,headings:i}}async function le(e){let t=await e.arrayBuffer(),n=B.read(t,{type:`array`,cellStyles:!0,cellFormula:!0,cellDates:!0});if(!n.SheetNames.length)throw Error(`Excel文件中没有找到工作表`);return{sheets:n.SheetNames.map(e=>{let t=n.Sheets[e],r=t[`!merges`]||[],{data:i,columns:a}=oe(t,r);return{name:e,data:i,merges:r,columns:a}})}}const ue={class:`file-container pdf-container`},de={class:`file-toolbar`},fe={class:`flex justify-between items-center`},pe={class:`flex gap-2 items-center`},me={class:`text-sm text-gray-600`},he={class:`flex gap-2 items-center`},ge={class:`text-sm text-gray-600 min-w-12 text-center`},_e={class:`file-viewer`},ve=[`src`];var ye=t(d({__name:`index`,props:{pdfUrl:{},totalPages:{}},setup(t){let n=t,r=v(1),i=v(1),a=J(i,W.pdf),d=e=>{if(typeof e==`number`)r.value=Math.max(1,Math.min(e,n.totalPages));else{let t=e===`prev`?-1:1;r.value=Math.max(1,Math.min(r.value+t,n.totalPages))}};return(n,f)=>{let p=e;return _(),s(`div`,ue,[c(`div`,de,[c(`div`,fe,[o(` 翻页控制 `),c(`div`,pe,[u(C(O),{size:`small`,disabled:r.value<=1,onClick:f[0]||=e=>d(`prev`)},{icon:E(()=>[u(p,{name:`ic:outline-chevron-left`})]),_:1},8,[`disabled`]),u(C(M),{value:r.value,"onUpdate:value":[f[1]||=e=>r.value=e,d],size:`small`,min:1,max:t.totalPages,style:{width:`80px`}},null,8,[`value`,`max`,`onUpdate:value`]),c(`span`,me,`/ `+x(t.totalPages),1),u(C(O),{size:`small`,disabled:r.value>=t.totalPages,onClick:f[2]||=e=>d(`next`)},{icon:E(()=>[u(p,{name:`ic:outline-chevron-right`})]),_:1},8,[`disabled`])]),o(` 缩放控制 `),c(`div`,he,[u(C(O),{size:`small`,disabled:i.value<=.5,onClick:f[3]||=e=>C(a)(`out`)},{icon:E(()=>[u(p,{name:`ic:outline-zoom-out`})]),_:1},8,[`disabled`]),c(`span`,ge,x(Math.round(i.value*100))+`% `,1),u(C(O),{size:`small`,disabled:i.value>=3,onClick:f[4]||=e=>C(a)(`in`)},{icon:E(()=>[u(p,{name:`ic:outline-zoom-in`})]),_:1},8,[`disabled`]),u(C(O),{size:`small`,onClick:f[5]||=e=>C(a)(`reset`)},{icon:E(()=>[u(p,{name:`ic:outline-fit-screen`})]),default:E(()=>[f[6]||=l(` 适应 `,-1)]),_:1})])])]),c(`div`,_e,[t.pdfUrl?(_(),s(`iframe`,{key:0,src:t.pdfUrl,class:`w-full h-full border-0`,title:`PDF预览`,frameborder:`0`,allowfullscreen:``},null,8,ve)):o(`v-if`,!0)])])}}}),[[`__scopeId`,`data-v-86f8c1ab`]]);const be={class:`file-container word-container`},xe={class:`file-toolbar`},Se={class:`flex gap-2 items-center`},Ce={class:`text-sm text-gray-600 min-w-12 text-center`},we={class:`word-layout`},Te={class:`word-main`},Ee={key:0,class:`word-outline`},De={class:`outline-content`},Oe=[`onClick`],ke={class:`word-content`},Ae=[`innerHTML`];var je=t(d({__name:`index`,props:{content:{},headings:{}},setup(t){let n=v(!0),i=v(100),a=J(i,W.word),d=e=>{document.getElementById(e)?.scrollIntoView({behavior:`smooth`,block:`start`})};return(f,h)=>{let g=e;return _(),s(`div`,be,[c(`div`,xe,[c(`div`,Se,[u(C(O),{size:`small`,onClick:h[0]||=e=>n.value=!n.value},{icon:E(()=>[u(g,{name:`ic:outline-list`})]),default:E(()=>[l(` `+x(n.value?`隐藏`:`显示`)+`目录 `,1)]),_:1}),u(C(k),{vertical:``}),u(C(O),{size:`small`,disabled:i.value<=50,onClick:h[1]||=e=>C(a)(`out`)},{icon:E(()=>[u(g,{name:`ic:outline-zoom-out`})]),_:1},8,[`disabled`]),c(`span`,Ce,x(i.value)+`% `,1),u(C(O),{size:`small`,disabled:i.value>=200,onClick:h[2]||=e=>C(a)(`in`)},{icon:E(()=>[u(g,{name:`ic:outline-zoom-in`})]),_:1},8,[`disabled`]),u(C(O),{size:`small`,onClick:h[3]||=e=>C(a)(`reset`)},{icon:E(()=>[u(g,{name:`ic:outline-fit-screen`})]),default:E(()=>[h[4]||=l(` 重置 `,-1)]),_:1})])]),c(`div`,we,[c(`div`,Te,[o(` 侧边栏目录 `),n.value?(_(),s(`div`,Ee,[h[5]||=c(`div`,{class:`outline-header`},[c(`h3`,{class:`text-sm font-semibold`},`文档目录`)],-1),c(`div`,De,[(_(!0),s(r,null,y(t.headings,(e,t)=>(_(),s(`div`,{key:t,class:p([`outline-item`,`level-${e.level}`]),onClick:t=>d(e.id)},x(e.text),11,Oe))),128))])])):o(`v-if`,!0),o(` 主要内容区域 `),c(`div`,ke,[c(`div`,{class:`word-document`,style:m({transform:`scale(${i.value/100})`,transformOrigin:`top center`}),innerHTML:t.content},null,12,Ae)])])])])}}}),[[`__scopeId`,`data-v-dae08a5f`]]);const Me={class:`file-container excel-container`},Ne={class:`file-toolbar`},Pe={class:`flex justify-between items-center`},Fe={class:`flex gap-2 items-center`},Ie={key:1,class:`text-sm text-gray-600`},Le={class:`flex gap-2 items-center`},Re={class:`excel-viewer`},ze={key:0,class:`excel-info`},Be={class:`excel-table-container`},Ve={key:0,class:`excel-table`},He={class:`header-content`},Ue={class:`column-letter`},We={class:`column-title`},Ge={class:`row-number`},Ke=[`rowspan`,`colspan`,`title`],qe={key:1,class:`excel-empty`},Je={key:0,class:`excel-pagination`};var Ye=t(d({__name:`index`,props:{sheets:{}},emits:[`reload`],setup(t){let n=t,d=v(``),f=v(!1),h=v(1),g=v(50),b=v([]),S=v([]),k=i(()=>Math.ceil(b.value.length/g.value)),A=i(()=>{let e=(h.value-1)*g.value;return b.value.slice(e,e+g.value)}),M=e=>{g.value=e,h.value=1},N=e=>{let t=n.sheets.find(t=>t.name===e);t&&(b.value=t.data,S.value=t.columns,h.value=1)};return T(d,e=>{N(e)}),T(()=>n.sheets,e=>{if(e.length>0){let[t]=e;d.value=t.name,b.value=t.data,S.value=t.columns,h.value=1}},{immediate:!0}),(n,i)=>{let v=e;return _(),s(`div`,Me,[o(` 工具栏 `),c(`div`,Ne,[c(`div`,Pe,[c(`div`,Fe,[t.sheets.length>1?(_(),a(C(L),{key:0,value:d.value,"onUpdate:value":i[0]||=e=>d.value=e,type:`card`,size:`small`},{default:E(()=>[(_(!0),s(r,null,y(t.sheets,e=>(_(),a(C(I),{key:e.name,name:e.name,tab:e.name},null,8,[`name`,`tab`]))),128))]),_:1},8,[`value`])):(_(),s(`span`,Ie,` 工作表: `+x(d.value),1))]),c(`div`,Le,[u(C(O),{size:`small`,onClick:i[1]||=e=>f.value=!f.value},{icon:E(()=>[u(v,{name:`ic:outline-format-paint`})]),default:E(()=>[l(` `+x(f.value?`紧凑视图`:`完整格式`),1)]),_:1})])])]),c(`div`,Re,[o(` 信息面板 `),b.value.length>0?(_(),s(`div`,ze,[u(C(z),{depth:`3`,class:`text-sm`},{default:E(()=>[l(` 当前工作表: `+x(d.value)+` | 总行数: `+x(b.value.length)+` | 总列数: `+x(S.value.length)+` | 当前页: `+x(h.value)+`/`+x(k.value),1)]),_:1})])):o(`v-if`,!0),o(` 表格 `),c(`div`,Be,[c(`div`,{class:p([`excel-table-wrapper`,{"simple-mode":!f.value}])},[b.value.length>0?(_(),s(`table`,Ve,[c(`thead`,null,[c(`tr`,null,[i[4]||=c(`th`,{class:`row-number`},`行号`,-1),(_(!0),s(r,null,y(S.value,(e,t)=>(_(),s(`th`,{key:e.key,class:`excel-header`,style:m({minWidth:e.width+`px`})},[c(`div`,He,[c(`span`,Ue,x(C(ie)(t)),1),c(`span`,We,x(e.title),1)])],4))),128))])]),c(`tbody`,null,[(_(!0),s(r,null,y(A.value,(e,t)=>(_(),s(`tr`,{key:t,class:`excel-row`},[c(`td`,Ge,x((h.value-1)*g.value+t+1),1),(_(!0),s(r,null,y(S.value,t=>D((_(),s(`td`,{key:t.key,class:p([`excel-cell`,[C(ae)(e[t.key]?.value),e[t.key]?.merged?`merged-cell`:``,f.value?``:`compact-cell`]]),rowspan:e[t.key]?.rowspan||1,colspan:e[t.key]?.colspan||1,title:e[t.key]?.value},x(C(Y)(e[t.key]?.value)),11,Ke)),[[w,!e[t.key]?.hidden]])),128))]))),128))])])):(_(),s(`div`,qe,[u(C(j),{description:`该工作表没有数据或解析失败`},{extra:E(()=>[u(C(O),{size:`small`,onClick:i[2]||=e=>n.$emit(`reload`)},{default:E(()=>[...i[5]||=[l(` 重新解析 `,-1)]]),_:1})]),_:1})]))],2),o(` 分页 `),k.value>1?(_(),s(`div`,Je,[u(C(P),{page:h.value,"onUpdate:page":i[3]||=e=>h.value=e,"page-count":k.value,"page-size":g.value,"show-size-picker":``,"page-sizes":C(G),"onUpdate:pageSize":M},null,8,[`page`,`page-count`,`page-size`,`page-sizes`])])):o(`v-if`,!0)])])])}}}),[[`__scopeId`,`data-v-c415f23c`]]);function X(e,t){if(!e.trim())return null;try{let n=new URL(t),r=new URL(e,n);if(r.username||r.password)return null;if(r.protocol===`https:`||r.protocol===`http:`&&r.origin===n.origin)return r.href}catch{}return null}function Z(e,t){let{file:n,url:r,fileName:a}=e,o=v(!1),s=v(``),c=v(0),l=v(!1),u=v(``),d=v(0),f=v(``),p=v([]),m=v([]),h=0,_=null,y=i(()=>a.value&&a.value!==`未知文件`?a.value:n.value?.name?n.value.name:r.value?te(r.value):`未知文件`),b=i(()=>ne(y.value)),x=i(()=>re(b.value)),S=()=>{let e=u.value;u.value=``,e.startsWith(`blob:`)&&URL.revokeObjectURL(e.split(`#`)[0])},C=()=>{s.value=``,o.value=!1,c.value=0,S(),d.value=0,f.value=``,p.value=[],m.value=[]},w=e=>{s.value=e,o.value=!1},E=async e=>{let t=n.value,i=r.value;if(t)return t;if(i){let t=X(i,window.location.href);if(!t)throw Error(`不支持此文件地址`);let n=await fetch(t,{signal:e});if(!n.ok)throw Error(`HTTP ${n.status}: ${n.statusText}`);let r=await n.blob();return new File([r],y.value,{type:r.type})}throw Error(`未提供文件或URL`)},D=async(e,t,n)=>{switch(t){case`pdf`:{let t=await se(e);if(n!==h){URL.revokeObjectURL(t.url.split(`#`)[0]);return}u.value=t.url,d.value=t.totalPages;break}case`word`:{let t=await ce(e);if(n!==h)return;f.value=t.content,p.value=t.headings;break}case`excel`:{let t=await le(e);if(n!==h)return;m.value=t.sheets;break}default:throw Error(`不支持的文件格式`)}},O=async()=>{let e=++h;_?.abort();let t=new AbortController;if(_=t,C(),!n.value&&!r.value){w(`未提供文件或URL`),_=null;return}o.value=!0;try{let n=b.value,r=await E(t.signal);if(e!==h)return;c.value=r.size,await D(r,n,e)}catch(n){if(e!==h||t.signal.aborted)return;let r=n instanceof Error?n.message:`未知错误`;w(`${b.value.toUpperCase()}文件加载失败: ${r}`)}finally{e===h&&(o.value=!1,_=null)}};return T(()=>n.value?.size,e=>{c.value=e||0},{immediate:!0}),g(()=>{h+=1,_?.abort(),S()}),{loading:o,error:s,fileSize:c,showModal:l,pdfUrl:u,pdfTotalPages:d,wordContent:f,wordHeadings:p,excelSheets:m,displayFileName:y,fileType:b,fileConfig:x,loadFile:O,openPreview:async()=>{l.value=!0,await O(),t(`preview`,n.value||r.value)},downloadFile:()=>{if(n.value){let e=URL.createObjectURL(n.value);Object.assign(document.createElement(`a`),{href:e,download:y.value}).click(),URL.revokeObjectURL(e)}else if(r.value){let e=X(r.value,window.location.href);if(!e){w(`不支持此文件地址`);return}window.open(e,`_blank`,`noopener,noreferrer`)}t(`download`,n.value||r.value)}}}function Q(e){let t=v(!1),n=()=>{t.value=!!document.fullscreenElement},r=(e,t=0)=>t>=e.length?(console.warn(`无法切换全屏状态`),Promise.resolve()):e[t]().catch(()=>r(e,t+1));return h(()=>{K.forEach(e=>document.addEventListener(e,n))}),g(()=>{K.forEach(e=>document.removeEventListener(e,n))}),{isFullscreen:t,toggleFullscreen:async()=>{let t=e.value;t&&await r(document.fullscreenElement?[()=>document.exitFullscreen(),()=>document.webkitExitFullscreen(),()=>document.mozCancelFullScreen(),()=>document.msExitFullscreen()]:[()=>t.requestFullscreen(),()=>t.webkitRequestFullscreen(),()=>t.mozRequestFullScreen(),()=>t.msRequestFullscreen()])},exitFullscreen:async()=>{if(document.fullscreenElement)try{await document.exitFullscreen()}catch{}t.value=!1}}}const Xe={class:`c-file-preview-wrapper`},Ze={key:0,class:`file-info-card`},Qe={class:`file-info`},$e={class:`file-icon`},et={class:`file-details`},tt={class:`file-name`},$={class:`file-meta`},nt={class:`file-size`},rt={class:`file-actions`},it={class:`modal-header`},at={class:`modal-title`},ot={class:`modal-actions`},st={class:`modal-content`},ct={class:`preview-header`},lt={class:`flex justify-between items-center`},ut={class:`flex items-center gap-3`},dt={class:`text-sm text-gray-500`},ft={class:`flex gap-2`},pt={class:`preview-content`},mt={key:0,class:`status-container`};var ht=t(d({name:`C_FilePreview`,__name:`index`,props:{file:{},url:{},fileName:{default:`未知文件`},autoPreview:{type:Boolean,default:!1}},emits:[`preview`,`download`],setup(t,{emit:n}){let{file:i,url:d,fileName:p,autoPreview:m}=S(t),{loading:h,error:g,fileSize:y,showModal:b,pdfUrl:w,pdfTotalPages:D,wordContent:k,wordHeadings:j,excelSheets:M,displayFileName:P,fileType:I,fileConfig:L,loadFile:z,openPreview:B,downloadFile:V}=Z({file:i,url:d,fileName:p},n),H=v(),{isFullscreen:U,toggleFullscreen:W,exitFullscreen:G}=Q(H);return T(b,e=>{e||G()}),T([i,d,m],([e,t],n)=>{if(!(typeof window>`u`)){if(b.value){(e!==n?.[0]||t!==n?.[1])&&z();return}m.value&&(e||t)&&B()}},{immediate:!0}),(t,n)=>{let i=e;return _(),s(`div`,Xe,[o(` 文件信息卡片模式 `),C(m)?o(`v-if`,!0):(_(),s(`div`,Ze,[c(`div`,Qe,[c(`div`,$e,[u(i,{name:C(L).icon,size:40,color:C(L).color},null,8,[`name`,`color`])]),c(`div`,et,[c(`div`,tt,[u(C(A),{style:{"max-width":`250px`}},{default:E(()=>[l(x(C(P)),1)]),_:1}),u(C(R),{type:C(L).tagType,size:`small`},{default:E(()=>[l(x(C(I).toUpperCase()),1)]),_:1},8,[`type`])]),c(`div`,$,[c(`span`,nt,x(C(q)(C(y))),1)])]),c(`div`,rt,[u(C(O),{type:`primary`,onClick:C(B)},{icon:E(()=>[u(i,{name:`ic:outline-visibility`})]),default:E(()=>[n[2]||=l(` 预览 `,-1)]),_:1},8,[`onClick`]),u(C(O),{type:`tertiary`,onClick:C(V)},{icon:E(()=>[u(i,{name:`ic:outline-download`})]),default:E(()=>[n[3]||=l(` 下载 `,-1)]),_:1},8,[`onClick`])])])])),o(` 模态框预览 `),u(C(N),{show:C(b),"onUpdate:show":n[1]||=e=>f(b)?b.value=e:null,"mask-closable":!1,closable:!1,"auto-focus":!1,"transform-origin":`center`,style:{width:`85vw`,"max-width":`1200px`,"min-width":`800px`,height:`75vh`,"max-height":`700px`,"min-height":`500px`}},{default:E(()=>[c(`div`,{ref_key:`modalContainer`,ref:H,class:`modal-container`},[o(` 自定义头部 `),c(`div`,it,[c(`div`,at,[u(i,{name:C(L).icon,size:20,color:C(L).color},null,8,[`name`,`color`]),c(`span`,null,x(C(P)),1)]),c(`div`,ot,[u(C(O),{size:`small`,type:`tertiary`,onClick:C(V)},{icon:E(()=>[u(i,{name:`ic:outline-download`})]),default:E(()=>[n[4]||=l(` 下载 `,-1)]),_:1},8,[`onClick`]),u(C(O),{size:`small`,type:`tertiary`,onClick:n[0]||=e=>b.value=!1},{icon:E(()=>[u(i,{name:`ic:outline-close`})]),_:1})])]),o(` 预览内容 `),c(`div`,st,[o(` 文件信息头部 `),c(`div`,ct,[c(`div`,lt,[c(`div`,ut,[u(C(R),{type:C(L).tagType,size:`small`},{icon:E(()=>[u(i,{name:C(L).icon},null,8,[`name`])]),default:E(()=>[l(` `+x(C(I).toUpperCase()),1)]),_:1},8,[`type`]),u(C(A),{style:{"max-width":`300px`}},{default:E(()=>[l(x(C(P)),1)]),_:1}),c(`span`,dt,x(C(q)(C(y))),1)]),c(`div`,ft,[u(C(O),{size:`small`,type:`tertiary`,disabled:C(h),onClick:C(z)},{icon:E(()=>[u(i,{name:`ic:outline-refresh`})]),default:E(()=>[n[5]||=l(` 刷新 `,-1)]),_:1},8,[`disabled`,`onClick`]),u(C(O),{size:`small`,type:`primary`,onClick:C(W)},{icon:E(()=>[u(i,{name:C(U)?`ic:outline-fullscreen-exit`:`ic:outline-fullscreen`},null,8,[`name`])]),default:E(()=>[l(` `+x(C(U)?`退出全屏`:`全屏`),1)]),_:1},8,[`onClick`])])])]),o(` 预览内容区域 `),c(`div`,pt,[o(` 加载和错误状态 `),C(h)||C(g)?(_(),s(`div`,mt,[C(h)?(_(),a(C(ee),{key:0,size:`large`},{description:E(()=>[l(` 正在加载`+x(C(I).toUpperCase())+`文件... `,1)]),_:1})):(_(),a(C(F),{key:1,status:`error`,title:`预览失败`,description:C(g)},{footer:E(()=>[u(C(O),{onClick:C(z)},{default:E(()=>[...n[6]||=[l(`重试`,-1)]]),_:1},8,[`onClick`])]),_:1},8,[`description`]))])):(_(),s(r,{key:1},[o(` 文件预览 — 委托给子组件 `),C(I)===`pdf`?(_(),a(ye,{key:0,"pdf-url":C(w),"total-pages":C(D)},null,8,[`pdf-url`,`total-pages`])):C(I)===`word`?(_(),a(je,{key:1,content:C(k),headings:C(j)},null,8,[`content`,`headings`])):C(I)===`excel`?(_(),a(Ye,{key:2,sheets:C(M),onReload:C(z)},null,8,[`sheets`,`onReload`])):(_(),s(r,{key:3},[o(` 不支持的文件类型 `),u(C(F),{status:`warning`,title:`不支持的文件格式`,description:`暂不支持预览 ${C(I).toUpperCase()} 格式文件`},null,8,[`description`])],2112))],64))])])],512)]),_:1},8,[`show`])])}}}),[[`__scopeId`,`data-v-bd24aa22`]]);export{Q as n,Z as r,ht as t};
|
|
1
|
+
import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{t as n}from"./html.js";import{Fragment as r,computed as i,createBlock as a,createCommentVNode as o,createElementBlock as s,createElementVNode as c,createTextVNode as l,createVNode as u,defineComponent as d,isRef as f,normalizeClass as p,normalizeStyle as m,onMounted as h,onUnmounted as g,openBlock as _,ref as v,renderList as y,resolveComponent as b,toDisplayString as x,toRefs as S,unref as C,vShow as w,watch as T,withCtx as E,withDirectives as D}from"vue";import{NButton as O,NDivider as k,NEllipsis as A,NEmpty as j,NModal as ee,NPagination as M,NResult as N,NSpin as P,NTabPane as F,NTabs as I,NTag as L,NText as R}from"naive-ui";import*as z from"xlsx";import B from"mammoth";const V={pdf:`pdf`,doc:`word`,docx:`word`,xls:`excel`,xlsx:`excel`},H={pdf:{tagType:`error`,icon:`ic:outline-picture-as-pdf`,color:`#dc2626`},word:{tagType:`info`,icon:`ic:outline-description`,color:`#2563eb`},excel:{tagType:`success`,icon:`ic:outline-grid-on`,color:`#16a34a`},unknown:{tagType:`default`,icon:`ic:outline-insert-drive-file`,color:`#6b7280`}},U={pdf:{min:.5,max:3,step:.25,default:1},word:{min:50,max:200,step:10,default:100}},W=[20,50,100,200],G=[`fullscreenchange`,`webkitfullscreenchange`,`mozfullscreenchange`,`MSFullscreenChange`],K=e=>{try{let t=e.split(`/`).pop()||e.split(`\\`).pop();if(t?.includes(`.`)){let n=decodeURIComponent(t.split(`?`)[0]);if(n&&n!==e)return n}}catch(e){console.warn(`解析URL文件名失败:`,e)}return`未知文件`},q=e=>{if(e===0)return`0 B`;let t=1024,n=[`B`,`KB`,`MB`,`GB`],r=Math.floor(Math.log(e)/Math.log(t));return parseFloat((e/t**+r).toFixed(1))+` `+n[r]},te=e=>{if(!e||e===`未知文件`)return`unknown`;let t=e.toLowerCase().split(`.`).pop();return t&&V[t]||`unknown`},ne=e=>H[e]||H.unknown,re=(e,t)=>n=>{let{min:r,max:i,step:a,default:o}=t;switch(n){case`reset`:e.value=o;break;case`in`:e.value<i&&(e.value+=a);break;case`out`:e.value>r&&(e.value-=a);break}},ie=e=>{let t=``;for(;e>=0;)t=String.fromCharCode(65+e%26)+t,e=Math.floor(e/26)-1;return t},ae=e=>{if(e==null||e===``)return``;let t=String(e).trim();if(!isNaN(Number(t))&&t!==``&&t.length<15){let e=Number(t);return Number.isInteger(e)?e.toLocaleString():e.toLocaleString(void 0,{maximumFractionDigits:2})}return t},oe=e=>{if(e==null||e===``)return`cell-empty`;let t=String(e).trim();return!isNaN(Number(t))&&t!==``?`cell-number`:t.match(/[■▬▪▫─━]/)?`cell-gantt`:t.match(/^\d{4}[-/]\d{2}[-/]\d{2}/)||t.match(/^\d{2}[-/]\d{2}[-/]\d{4}/)?`cell-date`:[`true`,`false`].includes(t.toLowerCase())?`cell-boolean`:t.length>20?`cell-text cell-long`:`cell-text`},se=(e,t)=>{let{c:n,r}=z.utils.decode_range(e[`!ref`]||`A1:A1`).e,i=Array.from({length:n+1},(t,n)=>{let r=e[z.utils.encode_cell({r:0,c:n})],i=r?String(r.v??``).trim():`列${n+1}`;return{title:i||`列${n+1}`,key:`col_${n}`,width:Math.min(Math.max(i.length*12,80),200)}}),a=new Map;return t.forEach(({s:{r:e,c:t},e:{r:n,c:r}})=>{for(let i=e;i<=n;i++)for(let o=t;o<=r;o++)a.set(`${i}-${o}`,{isMain:i===e&&o===t,rowspan:n-e+1,colspan:r-t+1})}),{data:Array.from({length:r+1},(t,r)=>{let i={};for(let t=0;t<=n;t++){let n=e[z.utils.encode_cell({r,c:t})],o=a.get(`${r}-${t}`);i[`col_${t}`]={value:n?n.v??``:``,merged:!!o,hidden:o&&!o.isMain,rowspan:o?.isMain?o.rowspan:1,colspan:o?.isMain?o.colspan:1}}return i}),columns:i}};async function ce(e){return{url:URL.createObjectURL(e)+`#toolbar=1&navpanes=1&scrollbar=1&view=FitH`,totalPages:1}}async function le(e){let t=await e.arrayBuffer(),r=await B.convertToHtml({arrayBuffer:t,styleMap:[`p[style-name='Heading 1'] => h1:fresh`,`p[style-name='Heading 2'] => h2:fresh`,`p[style-name='Heading 3'] => h3:fresh`,`p[style-name='Title'] => h1.title:fresh`]}),i=[],a=document.createElement(`div`);a.innerHTML=n(r.value);let o=a.querySelectorAll(`h1, h2, h3, h4, h5, h6`);return Array.from(o).forEach((e,t)=>{let n=`heading-${t}`,r=parseInt(e.tagName.charAt(1)),a=e.textContent||``;e.id=n,i.push({id:n,text:a,level:r})}),{content:a.innerHTML,headings:i}}async function ue(e){let t=await e.arrayBuffer(),n=z.read(t,{type:`array`,cellStyles:!0,cellFormula:!0,cellDates:!0});if(!n.SheetNames.length)throw Error(`Excel文件中没有找到工作表`);return{sheets:n.SheetNames.map(e=>{let t=n.Sheets[e],r=t[`!merges`]||[],{data:i,columns:a}=se(t,r);return{name:e,data:i,merges:r,columns:a}})}}const de={class:`file-container pdf-container`},fe={class:`file-toolbar`},pe={class:`file-viewer`},me=[`src`];var J=t(d({name:`FilePreviewPdfViewer`,__name:`index`,props:{pdfUrl:{},totalPages:{}},setup(e){return(t,n)=>(_(),s(`div`,de,[c(`div`,fe,[n[1]||=c(`span`,null,`PDF 阅读器 · 翻页、缩放与打印由浏览器提供`,-1),e.pdfUrl?(_(),a(C(O),{key:0,tag:`a`,href:e.pdfUrl,target:`_blank`,rel:`noopener noreferrer`,size:`small`},{default:E(()=>[...n[0]||=[l(`在新标签页打开`,-1)]]),_:1},8,[`href`])):o(`v-if`,!0)]),c(`div`,pe,[e.pdfUrl?(_(),s(`iframe`,{key:0,src:e.pdfUrl,title:`PDF预览`,class:`pdf-frame`},null,8,me)):o(`v-if`,!0)])]))}}),[[`__scopeId`,`data-v-db027bb4`]]);const he={class:`file-container word-container`},ge={class:`file-toolbar`},_e={class:`flex gap-2 items-center`},ve={class:`text-sm text-gray-600 min-w-12 text-center`},ye={class:`word-layout`},be={class:`word-main`},xe={key:0,class:`word-outline`},Se={class:`outline-content`},Ce=[`onClick`],we={class:`word-content`},Te=[`innerHTML`];var Y=t(d({__name:`index`,props:{content:{},headings:{}},setup(t){let n=v(!0),i=v(100),a=re(i,U.word),d=e=>{document.getElementById(e)?.scrollIntoView({behavior:`smooth`,block:`start`})};return(f,h)=>{let g=e;return _(),s(`div`,he,[c(`div`,ge,[c(`div`,_e,[u(C(O),{size:`small`,onClick:h[0]||=e=>n.value=!n.value},{icon:E(()=>[u(g,{name:`ic:outline-list`})]),default:E(()=>[l(` `+x(n.value?`隐藏`:`显示`)+`目录 `,1)]),_:1}),u(C(k),{vertical:``}),u(C(O),{size:`small`,disabled:i.value<=50,onClick:h[1]||=e=>C(a)(`out`)},{icon:E(()=>[u(g,{name:`ic:outline-zoom-out`})]),_:1},8,[`disabled`]),c(`span`,ve,x(i.value)+`% `,1),u(C(O),{size:`small`,disabled:i.value>=200,onClick:h[2]||=e=>C(a)(`in`)},{icon:E(()=>[u(g,{name:`ic:outline-zoom-in`})]),_:1},8,[`disabled`]),u(C(O),{size:`small`,onClick:h[3]||=e=>C(a)(`reset`)},{icon:E(()=>[u(g,{name:`ic:outline-fit-screen`})]),default:E(()=>[h[4]||=l(` 重置 `,-1)]),_:1})])]),c(`div`,ye,[c(`div`,be,[o(` 侧边栏目录 `),n.value?(_(),s(`div`,xe,[h[5]||=c(`div`,{class:`outline-header`},[c(`h3`,{class:`text-sm font-semibold`},`文档目录`)],-1),c(`div`,Se,[(_(!0),s(r,null,y(t.headings,(e,t)=>(_(),s(`div`,{key:t,class:p([`outline-item`,`level-${e.level}`]),onClick:t=>d(e.id)},x(e.text),11,Ce))),128))])])):o(`v-if`,!0),o(` 主要内容区域 `),c(`div`,we,[c(`div`,{class:`word-document`,style:m({transform:`scale(${i.value/100})`,transformOrigin:`top center`}),innerHTML:t.content},null,12,Te)])])])])}}}),[[`__scopeId`,`data-v-dae08a5f`]]);const Ee={class:`file-container excel-container`},De={class:`file-toolbar`},Oe={class:`flex justify-between items-center`},ke={class:`flex gap-2 items-center`},Ae={key:1,class:`text-sm text-gray-600`},je={class:`flex gap-2 items-center`},Me={class:`excel-viewer`},Ne={key:0,class:`excel-info`},Pe={class:`excel-table-container`},Fe={key:0,class:`excel-table`},Ie={class:`header-content`},Le={class:`column-letter`},Re={class:`column-title`},ze={class:`row-number`},Be=[`rowspan`,`colspan`,`title`],Ve={key:1,class:`excel-empty`},He={key:0,class:`excel-pagination`};var X=t(d({__name:`index`,props:{sheets:{}},emits:[`reload`],setup(t){let n=t,d=v(``),f=v(!1),h=v(1),g=v(50),b=v([]),S=v([]),k=i(()=>Math.ceil(b.value.length/g.value)),A=i(()=>{let e=(h.value-1)*g.value;return b.value.slice(e,e+g.value)}),ee=e=>{g.value=e,h.value=1},N=e=>{let t=n.sheets.find(t=>t.name===e);t&&(b.value=t.data,S.value=t.columns,h.value=1)};return T(d,e=>{N(e)}),T(()=>n.sheets,e=>{if(e.length>0){let[t]=e;d.value=t.name,b.value=t.data,S.value=t.columns,h.value=1}},{immediate:!0}),(n,i)=>{let v=e;return _(),s(`div`,Ee,[o(` 工具栏 `),c(`div`,De,[c(`div`,Oe,[c(`div`,ke,[t.sheets.length>1?(_(),a(C(I),{key:0,value:d.value,"onUpdate:value":i[0]||=e=>d.value=e,type:`card`,size:`small`},{default:E(()=>[(_(!0),s(r,null,y(t.sheets,e=>(_(),a(C(F),{key:e.name,name:e.name,tab:e.name},null,8,[`name`,`tab`]))),128))]),_:1},8,[`value`])):(_(),s(`span`,Ae,` 工作表: `+x(d.value),1))]),c(`div`,je,[u(C(O),{size:`small`,onClick:i[1]||=e=>f.value=!f.value},{icon:E(()=>[u(v,{name:`ic:outline-format-paint`})]),default:E(()=>[l(` `+x(f.value?`紧凑视图`:`完整格式`),1)]),_:1})])])]),c(`div`,Me,[o(` 信息面板 `),b.value.length>0?(_(),s(`div`,Ne,[u(C(R),{depth:`3`,class:`text-sm`},{default:E(()=>[l(` 当前工作表: `+x(d.value)+` | 总行数: `+x(b.value.length)+` | 总列数: `+x(S.value.length)+` | 当前页: `+x(h.value)+`/`+x(k.value),1)]),_:1})])):o(`v-if`,!0),o(` 表格 `),c(`div`,Pe,[c(`div`,{class:p([`excel-table-wrapper`,{"simple-mode":!f.value}])},[b.value.length>0?(_(),s(`table`,Fe,[c(`thead`,null,[c(`tr`,null,[i[4]||=c(`th`,{class:`row-number`},`行号`,-1),(_(!0),s(r,null,y(S.value,(e,t)=>(_(),s(`th`,{key:e.key,class:`excel-header`,style:m({minWidth:e.width+`px`})},[c(`div`,Ie,[c(`span`,Le,x(C(ie)(t)),1),c(`span`,Re,x(e.title),1)])],4))),128))])]),c(`tbody`,null,[(_(!0),s(r,null,y(A.value,(e,t)=>(_(),s(`tr`,{key:t,class:`excel-row`},[c(`td`,ze,x((h.value-1)*g.value+t+1),1),(_(!0),s(r,null,y(S.value,t=>D((_(),s(`td`,{key:t.key,class:p([`excel-cell`,[C(oe)(e[t.key]?.value),e[t.key]?.merged?`merged-cell`:``,f.value?``:`compact-cell`]]),rowspan:e[t.key]?.rowspan||1,colspan:e[t.key]?.colspan||1,title:e[t.key]?.value},x(C(ae)(e[t.key]?.value)),11,Be)),[[w,!e[t.key]?.hidden]])),128))]))),128))])])):(_(),s(`div`,Ve,[u(C(j),{description:`该工作表没有数据或解析失败`},{extra:E(()=>[u(C(O),{size:`small`,onClick:i[2]||=e=>n.$emit(`reload`)},{default:E(()=>[...i[5]||=[l(` 重新解析 `,-1)]]),_:1})]),_:1})]))],2),o(` 分页 `),k.value>1?(_(),s(`div`,He,[u(C(M),{page:h.value,"onUpdate:page":i[3]||=e=>h.value=e,"page-count":k.value,"page-size":g.value,"show-size-picker":``,"page-sizes":C(W),"onUpdate:pageSize":ee},null,8,[`page`,`page-count`,`page-size`,`page-sizes`])])):o(`v-if`,!0)])])])}}}),[[`__scopeId`,`data-v-c415f23c`]]);function Z(e,t){if(!e.trim())return null;try{let n=new URL(t),r=new URL(e,n);if(r.username||r.password)return null;if(r.protocol===`https:`||r.protocol===`http:`&&r.origin===n.origin)return r.href}catch{}return null}function Q(e,t){let{file:n,url:r,fileName:a}=e,o=v(!1),s=v(``),c=v(0),l=v(!1),u=v(``),d=v(0),f=v(``),p=v([]),m=v([]),h=0,_=null,y=i(()=>a.value&&a.value!==`未知文件`?a.value:n.value?.name?n.value.name:r.value?K(r.value):`未知文件`),b=i(()=>te(y.value)),x=i(()=>ne(b.value)),S=()=>{let e=u.value;u.value=``,e.startsWith(`blob:`)&&URL.revokeObjectURL(e.split(`#`)[0])},C=()=>{s.value=``,o.value=!1,c.value=0,S(),d.value=0,f.value=``,p.value=[],m.value=[]},w=e=>{s.value=e,o.value=!1},E=async e=>{let t=n.value,i=r.value;if(t)return t;if(i){let t=Z(i,window.location.href);if(!t)throw Error(`不支持此文件地址`);let n=await fetch(t,{signal:e});if(!n.ok)throw Error(`HTTP ${n.status}: ${n.statusText}`);let r=await n.blob();return new File([r],y.value,{type:r.type})}throw Error(`未提供文件或URL`)},D=async(e,t,n)=>{switch(t){case`pdf`:{let t=await ce(e);if(n!==h){URL.revokeObjectURL(t.url.split(`#`)[0]);return}u.value=t.url,d.value=t.totalPages;break}case`word`:{let t=await le(e);if(n!==h)return;f.value=t.content,p.value=t.headings;break}case`excel`:{let t=await ue(e);if(n!==h)return;m.value=t.sheets;break}default:throw Error(`不支持的文件格式`)}},O=async()=>{let e=++h;_?.abort();let t=new AbortController;if(_=t,C(),!n.value&&!r.value){w(`未提供文件或URL`),_=null;return}o.value=!0;try{let n=b.value,r=await E(t.signal);if(e!==h)return;c.value=r.size,await D(r,n,e)}catch(n){if(e!==h||t.signal.aborted)return;let r=n instanceof Error?n.message:`未知错误`;w(`${b.value.toUpperCase()}文件加载失败: ${r}`)}finally{e===h&&(o.value=!1,_=null)}};return T(()=>n.value?.size,e=>{c.value=e||0},{immediate:!0}),g(()=>{h+=1,_?.abort(),S()}),{loading:o,error:s,fileSize:c,showModal:l,pdfUrl:u,pdfTotalPages:d,wordContent:f,wordHeadings:p,excelSheets:m,displayFileName:y,fileType:b,fileConfig:x,loadFile:O,openPreview:async()=>{l.value=!0,await O(),t(`preview`,n.value||r.value)},downloadFile:()=>{if(n.value){let e=URL.createObjectURL(n.value);Object.assign(document.createElement(`a`),{href:e,download:y.value}).click(),URL.revokeObjectURL(e)}else if(r.value){let e=Z(r.value,window.location.href);if(!e){w(`不支持此文件地址`);return}window.open(e,`_blank`,`noopener,noreferrer`)}t(`download`,n.value||r.value)}}}function $(e){let t=v(!1),n=()=>{t.value=!!document.fullscreenElement},r=(e,t=0)=>t>=e.length?(console.warn(`无法切换全屏状态`),Promise.resolve()):e[t]().catch(()=>r(e,t+1));return h(()=>{G.forEach(e=>document.addEventListener(e,n))}),g(()=>{G.forEach(e=>document.removeEventListener(e,n))}),{isFullscreen:t,toggleFullscreen:async()=>{let t=e.value;t&&await r(document.fullscreenElement?[()=>document.exitFullscreen(),()=>document.webkitExitFullscreen(),()=>document.mozCancelFullScreen(),()=>document.msExitFullscreen()]:[()=>t.requestFullscreen(),()=>t.webkitRequestFullscreen(),()=>t.mozRequestFullScreen(),()=>t.msRequestFullscreen()])},exitFullscreen:async()=>{if(document.fullscreenElement)try{await document.exitFullscreen()}catch{}t.value=!1}}}const Ue={class:`c-file-preview-wrapper`},We={key:0,class:`file-info-card`},Ge={class:`file-info`},Ke={class:`file-icon`},qe={class:`file-details`},Je={class:`file-name`},Ye={class:`file-meta`},Xe={class:`file-size`},Ze={class:`file-actions`},Qe={key:1,class:`c-file-preview-inline`},$e={key:0,class:`status-container`,role:`status`},et={class:`modal-header`},tt={class:`modal-title`},nt={class:`modal-actions`},rt={class:`modal-content`},it={class:`preview-header`},at={class:`flex justify-between items-center`},ot={class:`flex items-center gap-3`},st={class:`text-sm text-gray-500`},ct={class:`flex gap-2`},lt={class:`preview-content`},ut={key:0,class:`status-container`};var dt=t(d({name:`C_FilePreview`,__name:`index`,props:{file:{},url:{},fileName:{default:`未知文件`},autoPreview:{type:Boolean,default:!1},inline:{type:Boolean,default:!1}},emits:[`preview`,`download`],setup(t,{emit:n}){let{file:i,url:d,fileName:p,autoPreview:m,inline:h}=S(t),{loading:g,error:y,fileSize:b,showModal:w,pdfUrl:D,pdfTotalPages:k,wordContent:j,wordHeadings:M,excelSheets:F,displayFileName:I,fileType:R,fileConfig:z,loadFile:B,openPreview:V,downloadFile:H}=Q({file:i,url:d,fileName:p},n),U=v(),{isFullscreen:W,toggleFullscreen:G,exitFullscreen:K}=$(U);return T(w,e=>{e||K()}),T([i,d,m,h],([e,t],n)=>{if(!(typeof window>`u`)){if(h.value){(e||t)&&B();return}if(w.value){(e!==n?.[0]||t!==n?.[1])&&B();return}m.value&&(e||t)&&V()}},{immediate:!0}),(t,n)=>{let i=e;return _(),s(`div`,Ue,[o(` 文件信息卡片模式 `),!C(m)&&!C(h)?(_(),s(`div`,We,[c(`div`,Ge,[c(`div`,Ke,[u(i,{name:C(z).icon,size:40,color:C(z).color},null,8,[`name`,`color`])]),c(`div`,qe,[c(`div`,Je,[u(C(A),{style:{"max-width":`250px`}},{default:E(()=>[l(x(C(I)),1)]),_:1}),u(C(L),{type:C(z).tagType,size:`small`},{default:E(()=>[l(x(C(R).toUpperCase()),1)]),_:1},8,[`type`])]),c(`div`,Ye,[c(`span`,Xe,x(C(q)(C(b))),1)])]),c(`div`,Ze,[u(C(O),{type:`primary`,onClick:C(V)},{icon:E(()=>[u(i,{name:`ic:outline-visibility`})]),default:E(()=>[n[2]||=l(` 预览 `,-1)]),_:1},8,[`onClick`]),u(C(O),{type:`tertiary`,onClick:C(H)},{icon:E(()=>[u(i,{name:`ic:outline-download`})]),default:E(()=>[n[3]||=l(` 下载 `,-1)]),_:1},8,[`onClick`])])])])):o(`v-if`,!0),C(h)?(_(),s(`div`,Qe,[C(g)||C(y)?(_(),s(`div`,$e,[C(g)?(_(),a(C(P),{key:0,size:`large`},{description:E(()=>[...n[4]||=[l(`正在加载文档…`,-1)]]),_:1})):(_(),a(C(N),{key:1,status:`error`,title:`预览失败`,description:C(y)},{footer:E(()=>[u(C(O),{size:`small`,onClick:C(B)},{default:E(()=>[...n[5]||=[l(`重试`,-1)]]),_:1},8,[`onClick`])]),_:1},8,[`description`]))])):C(R)===`pdf`?(_(),a(J,{key:1,"pdf-url":C(D),"total-pages":C(k)},null,8,[`pdf-url`,`total-pages`])):C(R)===`word`?(_(),a(Y,{key:2,content:C(j),headings:C(M)},null,8,[`content`,`headings`])):C(R)===`excel`?(_(),a(X,{key:3,sheets:C(F),onReload:C(B)},null,8,[`sheets`,`onReload`])):(_(),a(C(N),{key:4,status:`warning`,title:`不支持的文件格式`,description:`支持 PDF、DOCX、XLSX 和 XLS 文件`}))])):o(`v-if`,!0),o(` 模态框预览 `),C(h)?o(`v-if`,!0):(_(),a(C(ee),{key:2,show:C(w),"onUpdate:show":n[1]||=e=>f(w)?w.value=e:null,"mask-closable":!1,closable:!1,"auto-focus":!1,"transform-origin":`center`,style:{width:`85vw`,"max-width":`1200px`,"min-width":`800px`,height:`75vh`,"max-height":`700px`,"min-height":`500px`}},{default:E(()=>[c(`div`,{ref_key:`modalContainer`,ref:U,class:`modal-container`},[o(` 自定义头部 `),c(`div`,et,[c(`div`,tt,[u(i,{name:C(z).icon,size:20,color:C(z).color},null,8,[`name`,`color`]),c(`span`,null,x(C(I)),1)]),c(`div`,nt,[u(C(O),{size:`small`,type:`tertiary`,onClick:C(H)},{icon:E(()=>[u(i,{name:`ic:outline-download`})]),default:E(()=>[n[6]||=l(` 下载 `,-1)]),_:1},8,[`onClick`]),u(C(O),{size:`small`,type:`tertiary`,onClick:n[0]||=e=>w.value=!1},{icon:E(()=>[u(i,{name:`ic:outline-close`})]),_:1})])]),o(` 预览内容 `),c(`div`,rt,[o(` 文件信息头部 `),c(`div`,it,[c(`div`,at,[c(`div`,ot,[u(C(L),{type:C(z).tagType,size:`small`},{icon:E(()=>[u(i,{name:C(z).icon},null,8,[`name`])]),default:E(()=>[l(` `+x(C(R).toUpperCase()),1)]),_:1},8,[`type`]),u(C(A),{style:{"max-width":`300px`}},{default:E(()=>[l(x(C(I)),1)]),_:1}),c(`span`,st,x(C(q)(C(b))),1)]),c(`div`,ct,[u(C(O),{size:`small`,type:`tertiary`,disabled:C(g),onClick:C(B)},{icon:E(()=>[u(i,{name:`ic:outline-refresh`})]),default:E(()=>[n[7]||=l(` 刷新 `,-1)]),_:1},8,[`disabled`,`onClick`]),u(C(O),{size:`small`,type:`primary`,onClick:C(G)},{icon:E(()=>[u(i,{name:C(W)?`ic:outline-fullscreen-exit`:`ic:outline-fullscreen`},null,8,[`name`])]),default:E(()=>[l(` `+x(C(W)?`退出全屏`:`全屏`),1)]),_:1},8,[`onClick`])])])]),o(` 预览内容区域 `),c(`div`,lt,[o(` 加载和错误状态 `),C(g)||C(y)?(_(),s(`div`,ut,[C(g)?(_(),a(C(P),{key:0,size:`large`},{description:E(()=>[l(` 正在加载`+x(C(R).toUpperCase())+`文件... `,1)]),_:1})):(_(),a(C(N),{key:1,status:`error`,title:`预览失败`,description:C(y)},{footer:E(()=>[u(C(O),{onClick:C(B)},{default:E(()=>[...n[8]||=[l(`重试`,-1)]]),_:1},8,[`onClick`])]),_:1},8,[`description`]))])):(_(),s(r,{key:1},[o(` 文件预览 — 委托给子组件 `),C(R)===`pdf`?(_(),a(J,{key:0,"pdf-url":C(D),"total-pages":C(k)},null,8,[`pdf-url`,`total-pages`])):C(R)===`word`?(_(),a(Y,{key:1,content:C(j),headings:C(M)},null,8,[`content`,`headings`])):C(R)===`excel`?(_(),a(X,{key:2,sheets:C(F),onReload:C(B)},null,8,[`sheets`,`onReload`])):(_(),s(r,{key:3},[o(` 不支持的文件类型 `),u(C(N),{status:`warning`,title:`不支持的文件格式`,description:`暂不支持预览 ${C(R).toUpperCase()} 格式文件`},null,8,[`description`])],2112))],64))])])],512)]),_:1},8,[`show`]))])}}}),[[`__scopeId`,`data-v-c409e6f4`]]);export{$ as n,Q as r,dt as t};
|