vue-ops-chat 1.0.0

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.
@@ -0,0 +1,860 @@
1
+
2
+ .floating-trigger[data-v-415d7a2c] {
3
+ position: fixed;
4
+ bottom: 30px;
5
+ right: 30px;
6
+ z-index: 9999;
7
+ cursor: pointer;
8
+ width: 64px;
9
+ height: 64px;
10
+ }
11
+ .icon-wrapper[data-v-415d7a2c] {
12
+ position: relative;
13
+ width: 100%;
14
+ height: 100%;
15
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
16
+ border-radius: 50%;
17
+ display: flex;
18
+ align-items: center;
19
+ justify-content: center;
20
+ box-shadow: 0 6px 20px rgba(102, 126, 234, 0.3);
21
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
22
+ transform-origin: center;
23
+ }
24
+ .floating-trigger:hover .icon-wrapper[data-v-415d7a2c] {
25
+ transform: translateY(-2px) scale(1.05);
26
+ box-shadow: 0 12px 30px rgba(102, 126, 234, 0.4);
27
+ }
28
+ .ops-ai-icon[data-v-415d7a2c] {
29
+ width: 28px;
30
+ height: 28px;
31
+ color: white;
32
+ transition: transform 0.3s ease;
33
+ }
34
+ .floating-trigger:hover .ops-ai-icon[data-v-415d7a2c] {
35
+ transform: rotate(15deg);
36
+ }
37
+ .unread-badge[data-v-415d7a2c] {
38
+ position: absolute;
39
+ top: -4px;
40
+ right: -4px;
41
+ background: #ff4757;
42
+ color: white;
43
+ font-size: 12px;
44
+ font-weight: 600;
45
+ min-width: 20px;
46
+ height: 20px;
47
+ border-radius: 10px;
48
+ display: flex;
49
+ align-items: center;
50
+ justify-content: center;
51
+ padding: 0 6px;
52
+ box-shadow: 0 2px 8px rgba(255, 71, 87, 0.4);
53
+ animation: pulse-415d7a2c 2s infinite;
54
+ }
55
+ @keyframes pulse-415d7a2c {
56
+ 0% { transform: scale(1);
57
+ }
58
+ 50% { transform: scale(1.1);
59
+ }
60
+ 100% { transform: scale(1);
61
+ }
62
+ }
63
+ .tooltip[data-v-415d7a2c] {
64
+ position: absolute;
65
+ right: 70px;
66
+ top: 50%;
67
+ transform: translateY(-50%);
68
+ background: rgba(0, 0, 0, 0.85);
69
+ color: white;
70
+ padding: 8px 12px;
71
+ border-radius: 6px;
72
+ font-size: 14px;
73
+ white-space: nowrap;
74
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
75
+ opacity: 0;
76
+ animation: fadeIn-415d7a2c 0.2s ease forwards;
77
+ }
78
+ .tooltip[data-v-415d7a2c]::after {
79
+ content: '';
80
+ position: absolute;
81
+ left: 100%;
82
+ top: 50%;
83
+ transform: translateY(-50%);
84
+ border: 6px solid transparent;
85
+ border-left-color: rgba(0, 0, 0, 0.85);
86
+ }
87
+ @keyframes fadeIn-415d7a2c {
88
+ from { opacity: 0; transform: translateY(-50%) translateX(-10px);
89
+ }
90
+ to { opacity: 1; transform: translateY(-50%) translateX(0);
91
+ }
92
+ }
93
+
94
+
95
+ .chat-modal[data-v-36f7e58f] {
96
+ position: fixed;
97
+ bottom: 100px;
98
+ right: 30px;
99
+ z-index: 10000;
100
+ display: flex;
101
+ flex-direction: column;
102
+ }
103
+ .chat-container[data-v-36f7e58f] {
104
+ background: white;
105
+ border-radius: 16px;
106
+ box-shadow: 0 20px 50px rgba(0, 0, 0, 0.2);
107
+ overflow: hidden;
108
+ display: flex;
109
+ flex-direction: column;
110
+ height: 100%;
111
+ animation: modalSlideUp-36f7e58f 0.4s cubic-bezier(0.4, 0, 0.2, 1);
112
+ }
113
+ @keyframes modalSlideUp-36f7e58f {
114
+ from {
115
+ opacity: 0;
116
+ transform: translateY(20px) scale(0.95);
117
+ }
118
+ to {
119
+ opacity: 1;
120
+ transform: translateY(0) scale(1);
121
+ }
122
+ }
123
+ .chat-header[data-v-36f7e58f] {
124
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
125
+ color: white;
126
+ padding: 20px;
127
+ display: flex;
128
+ justify-content: space-between;
129
+ align-items: center;
130
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
131
+ }
132
+ .header-info[data-v-36f7e58f] {
133
+ display: flex;
134
+ align-items: center;
135
+ gap: 12px;
136
+ }
137
+ .avatar[data-v-36f7e58f] {
138
+ width: 36px;
139
+ height: 36px;
140
+ background: rgba(255, 255, 255, 0.2);
141
+ border-radius: 50%;
142
+ display: flex;
143
+ align-items: center;
144
+ justify-content: center;
145
+ }
146
+ .avatar-icon[data-v-36f7e58f] {
147
+ width: 20px;
148
+ height: 20px;
149
+ color: white;
150
+ }
151
+ .header-text h3[data-v-36f7e58f] {
152
+ margin: 0;
153
+ font-size: 16px;
154
+ font-weight: 600;
155
+ }
156
+ .status[data-v-36f7e58f] {
157
+ font-size: 12px;
158
+ opacity: 0.9;
159
+ }
160
+ .status.online[data-v-36f7e58f]::before {
161
+ content: '';
162
+ display: inline-block;
163
+ width: 8px;
164
+ height: 8px;
165
+ background: #4ade80;
166
+ border-radius: 50%;
167
+ margin-right: 6px;
168
+ animation: statusPulse-36f7e58f 1.5s ease-in-out infinite;
169
+ }
170
+ @keyframes statusPulse-36f7e58f {
171
+ 0% { opacity: 1;
172
+ }
173
+ 50% { opacity: 0.5;
174
+ }
175
+ 100% { opacity: 1;
176
+ }
177
+ }
178
+ .header-actions[data-v-36f7e58f] {
179
+ display: flex;
180
+ gap: 8px;
181
+ }
182
+ .minimize-btn[data-v-36f7e58f], .close-btn[data-v-36f7e58f] {
183
+ width: 32px;
184
+ height: 32px;
185
+ border-radius: 50%;
186
+ background: rgba(255, 255, 255, 0.15);
187
+ border: none;
188
+ cursor: pointer;
189
+ display: flex;
190
+ align-items: center;
191
+ justify-content: center;
192
+ transition: all 0.2s ease;
193
+ }
194
+ .action-icon[data-v-36f7e58f] {
195
+ width: 16px;
196
+ height: 16px;
197
+ color: white;
198
+ }
199
+ .minimize-btn[data-v-36f7e58f]:hover, .close-btn[data-v-36f7e58f]:hover {
200
+ background: rgba(255, 255, 255, 0.25);
201
+ transform: scale(1.1);
202
+ }
203
+ .chat-messages[data-v-36f7e58f] {
204
+ flex: 1;
205
+ padding: 20px 0;
206
+ overflow-y: auto;
207
+ background: #f8fafc;
208
+ display: flex;
209
+ flex-direction: column;
210
+ gap: 16px;
211
+ /* 隐藏滚动条但保持滚动功能 */
212
+ scrollbar-width: none; /* Firefox */
213
+ -ms-overflow-style: none; /* IE/Edge */
214
+ }
215
+
216
+ /* Chrome/Safari/Opera */
217
+ .chat-messages[data-v-36f7e58f]::-webkit-scrollbar {
218
+ display: none;
219
+ }
220
+ .chat-input-area[data-v-36f7e58f] {
221
+ padding: 16px;
222
+ background: white;
223
+ border-top: 1px solid #e2e8f0;
224
+ }
225
+ .input-container[data-v-36f7e58f] {
226
+ display: flex;
227
+ align-items: flex-end;
228
+ gap: 12px;
229
+ background: #f1f5f9;
230
+ border-radius: 24px;
231
+ padding: 4px 4px 4px 16px;
232
+ transition: all 0.2s ease;
233
+ }
234
+ .input-container[data-v-36f7e58f]:focus-within {
235
+ background: #e2e8f0;
236
+ box-shadow: 0 0 0 2px rgba(102, 126, 234, 0.2);
237
+ }
238
+ .message-input[data-v-36f7e58f] {
239
+ flex: 1;
240
+ border: none;
241
+ background: transparent;
242
+ outline: none;
243
+ font-size: 14px;
244
+ line-height: 1.5;
245
+ resize: none;
246
+ max-height: 120px;
247
+ padding: 12px 0;
248
+ color: #1e293b;
249
+ }
250
+ .message-input[data-v-36f7e58f]::placeholder {
251
+ color: #94a3b8;
252
+ }
253
+ .message-input[data-v-36f7e58f]:disabled {
254
+ opacity: 0.6;
255
+ cursor: not-allowed;
256
+ }
257
+ .input-actions[data-v-36f7e58f] {
258
+ display: flex;
259
+ align-items: center;
260
+ gap: 8px;
261
+ }
262
+ .char-count[data-v-36f7e58f] {
263
+ font-size: 12px;
264
+ color: #94a3b8;
265
+ padding: 0 8px;
266
+ }
267
+ .send-button[data-v-36f7e58f] {
268
+ width: 40px;
269
+ height: 40px;
270
+ border-radius: 50%;
271
+ background: linear-gradient(135deg, #667eea, #764ba2);
272
+ border: none;
273
+ cursor: pointer;
274
+ display: flex;
275
+ align-items: center;
276
+ justify-content: center;
277
+ transition: all 0.2s ease;
278
+ flex-shrink: 0;
279
+ }
280
+ .send-icon[data-v-36f7e58f] {
281
+ width: 18px;
282
+ height: 18px;
283
+ color: white;
284
+ }
285
+ .send-button[data-v-36f7e58f]:hover:not(:disabled) {
286
+ transform: scale(1.05);
287
+ box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);
288
+ }
289
+ .send-button[data-v-36f7e58f]:disabled {
290
+ background: #cbd5e1;
291
+ cursor: not-allowed;
292
+ transform: none;
293
+ box-shadow: none;
294
+ }
295
+ .loading-spinner[data-v-36f7e58f] {
296
+ width: 18px;
297
+ height: 18px;
298
+ border: 2px solid rgba(255, 255, 255, 0.3);
299
+ border-top: 2px solid white;
300
+ border-radius: 50%;
301
+ animation: spin-36f7e58f 1s linear infinite;
302
+ }
303
+ @keyframes spin-36f7e58f {
304
+ 0% { transform: rotate(0deg);
305
+ }
306
+ 100% { transform: rotate(360deg);
307
+ }
308
+ }
309
+
310
+ /* 动画效果 */
311
+ .slide-fade-enter-active[data-v-36f7e58f] {
312
+ transition: all 0.3s ease;
313
+ }
314
+ .slide-fade-leave-active[data-v-36f7e58f] {
315
+ transition: all 0.3s ease;
316
+ }
317
+ .slide-fade-enter-from[data-v-36f7e58f] {
318
+ opacity: 0;
319
+ transform: translateY(20px) scale(0.95);
320
+ }
321
+ .slide-fade-leave-to[data-v-36f7e58f] {
322
+ opacity: 0;
323
+ transform: translateY(20px) scale(0.95);
324
+ }
325
+ .message-fade-enter-active[data-v-36f7e58f] {
326
+ transition: all 0.3s ease;
327
+ }
328
+ .message-fade-enter-from[data-v-36f7e58f] {
329
+ opacity: 0;
330
+ transform: translateY(10px);
331
+ }
332
+
333
+ /* 滚动条样式 */
334
+ .chat-messages[data-v-36f7e58f]::-webkit-scrollbar {
335
+ width: 6px;
336
+ }
337
+ .chat-messages[data-v-36f7e58f]::-webkit-scrollbar-track {
338
+ background: transparent;
339
+ }
340
+ .chat-messages[data-v-36f7e58f]::-webkit-scrollbar-thumb {
341
+ background: #cbd5e1;
342
+ border-radius: 3px;
343
+ }
344
+ .chat-messages[data-v-36f7e58f]::-webkit-scrollbar-thumb:hover {
345
+ background: #94a3b8;
346
+ }
347
+
348
+
349
+ .welcome-message[data-v-2f1ef74a] {
350
+ text-align: center;
351
+ padding: 24px;
352
+ background: white;
353
+ border-radius: 12px;
354
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
355
+ margin-bottom: 16px;
356
+ }
357
+ .welcome-avatar[data-v-2f1ef74a] {
358
+ width: 56px;
359
+ height: 56px;
360
+ background: linear-gradient(135deg, #667eea, #764ba2);
361
+ border-radius: 50%;
362
+ display: flex;
363
+ align-items: center;
364
+ justify-content: center;
365
+ margin: 0 auto 16px;
366
+ }
367
+ .avatar-icon[data-v-2f1ef74a] {
368
+ width: 28px;
369
+ height: 28px;
370
+ color: white;
371
+ }
372
+ .welcome-text h4[data-v-2f1ef74a] {
373
+ margin: 0 0 8px 0;
374
+ color: #1e293b;
375
+ font-size: 18px;
376
+ font-weight: 600;
377
+ }
378
+ .welcome-text p[data-v-2f1ef74a] {
379
+ margin: 0;
380
+ color: #64748b;
381
+ font-size: 14px;
382
+ }
383
+
384
+
385
+ .message-images[data-v-c687e28e] {
386
+ display: flex;
387
+ gap: 4px;
388
+ margin-top: 8px;
389
+ flex-wrap: wrap;
390
+ justify-content: flex-end; /* 多行时靠右显示 */
391
+ }
392
+ .message-image-item[data-v-c687e28e] {
393
+ width: 50px;
394
+ height: 50px;
395
+ border-radius: 6px;
396
+ overflow: hidden;
397
+ border: 1px solid #e2e8f0;
398
+ cursor: pointer;
399
+ transition: all 0.2s ease;
400
+ flex-shrink: 0;
401
+ }
402
+ .message-image-item[data-v-c687e28e]:hover {
403
+ transform: scale(1.05);
404
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
405
+ border-color: #94a3b8;
406
+ }
407
+ .message-image-item.upload-failed[data-v-c687e28e] {
408
+ position: relative;
409
+ border: 2px solid #ff4757;
410
+ }
411
+ .message-image[data-v-c687e28e] {
412
+ width: 100%;
413
+ height: 100%;
414
+ object-fit: cover;
415
+ }
416
+
417
+ /* 上传失败覆盖层 */
418
+ .upload-error-overlay[data-v-c687e28e] {
419
+ position: absolute;
420
+ top: 0;
421
+ left: 0;
422
+ right: 0;
423
+ bottom: 0;
424
+ background: rgba(255, 71, 87, 0.8);
425
+ display: flex;
426
+ align-items: center;
427
+ justify-content: center;
428
+ }
429
+ .error-text[data-v-c687e28e] {
430
+ color: white;
431
+ font-size: 12px;
432
+ font-weight: 500;
433
+ text-align: center;
434
+ padding: 4px;
435
+ }
436
+
437
+ /* 响应式调整 */
438
+ @media (max-width: 480px) {
439
+ .message-images[data-v-c687e28e] {
440
+ gap: 3px;
441
+ }
442
+ .message-image-item[data-v-c687e28e] {
443
+ width: 50px;
444
+ height: 50px;
445
+ }
446
+ }
447
+
448
+
449
+ .message-bubble[data-v-0927d266] {
450
+ display: flex;
451
+ gap: 12px;
452
+ animation: messageAppear-0927d266 0.3s ease;
453
+ margin-bottom: 12px;
454
+ }
455
+ .message-bubble.assistant[data-v-0927d266] {
456
+ align-self: flex-start;
457
+ }
458
+ .message-bubble.user[data-v-0927d266] {
459
+ align-self: flex-end;
460
+ flex-direction: row-reverse;
461
+ }
462
+ .message-avatar[data-v-0927d266] {
463
+ width: 32px;
464
+ height: 32px;
465
+ border-radius: 50%;
466
+ display: flex;
467
+ align-items: center;
468
+ justify-content: center;
469
+ flex-shrink: 0;
470
+ }
471
+
472
+ /* 助手头像样式 */
473
+ .assistant-avatar[data-v-0927d266] {
474
+ background: linear-gradient(135deg, #667eea, #764ba2);
475
+ }
476
+
477
+ /* 用户头像样式 */
478
+ .user-avatar[data-v-0927d266] {
479
+ background: linear-gradient(135deg, #4ade80, #22c55e);
480
+ border: 2px solid rgba(255, 255, 255, 0.3);
481
+ box-shadow: 0 2px 8px rgba(74, 222, 128, 0.3);
482
+ }
483
+ .message-avatar svg[data-v-0927d266] {
484
+ width: 16px;
485
+ height: 16px;
486
+ color: white;
487
+ }
488
+ .message-content[data-v-0927d266] {
489
+ display: flex;
490
+ flex-direction: column;
491
+ gap: 4px;
492
+ }
493
+ .message-text[data-v-0927d266] {
494
+ padding: 12px 16px;
495
+ border-radius: 18px;
496
+ word-wrap: break-word;
497
+ line-height: 1.5;
498
+ font-size: 14px;
499
+ }
500
+
501
+ /* 当只有图片时隐藏文本区域的样式 */
502
+ .message-text[data-v-0927d266]:empty {
503
+ display: none;
504
+ }
505
+ .message-text:empty + .message-images[data-v-0927d266] {
506
+ margin-top: 0;
507
+ }
508
+ .message-bubble.assistant .message-text[data-v-0927d266] {
509
+ background: white;
510
+ color: #1e293b;
511
+ border: 1px solid #e2e8f0;
512
+ border-top-left-radius: 4px;
513
+ }
514
+ .message-bubble.user .message-text[data-v-0927d266] {
515
+ background: linear-gradient(135deg, #667eea, #764ba2);
516
+ color: white;
517
+ border-top-right-radius: 4px;
518
+ }
519
+ .message-time[data-v-0927d266] {
520
+ font-size: 11px;
521
+ color: #94a3b8;
522
+ padding: 0 4px;
523
+ }
524
+ .message-bubble.user .message-time[data-v-0927d266] {
525
+ text-align: right;
526
+ color: rgba(255, 255, 255, 0.8);
527
+ }
528
+ @keyframes messageAppear-0927d266 {
529
+ from { opacity: 0; transform: translateY(10px);
530
+ }
531
+ to { opacity: 1; transform: translateY(0);
532
+ }
533
+ }
534
+
535
+
536
+ .message-list[data-v-4f7fdfc2] {
537
+ flex: 1;
538
+ overflow-y: auto !important; /* 强制启用滚动 */
539
+ padding: 16px;
540
+ display: flex;
541
+ flex-direction: column;
542
+ gap: 16px;
543
+ /* 确保容器可见 */
544
+ visibility: visible !important;
545
+ display: block !important;
546
+ /* 隐藏滚动条但保持滚动功能 */
547
+ scrollbar-width: none; /* Firefox */
548
+ -ms-overflow-style: none; /* IE/Edge */
549
+ }
550
+
551
+ /* Chrome/Safari/Opera */
552
+ .message-list[data-v-4f7fdfc2]::-webkit-scrollbar {
553
+ display: none;
554
+ }
555
+
556
+ /* 确保过渡组容器可以正确滚动 */
557
+ .transition-group[data-v-4f7fdfc2] {
558
+ display: block;
559
+ width: 100%;
560
+ }
561
+
562
+ /* 消息动画效果 */
563
+ .message-fade-enter-active[data-v-4f7fdfc2] {
564
+ transition: all 0.3s ease;
565
+ }
566
+ .message-fade-leave-active[data-v-4f7fdfc2] {
567
+ transition: all 0.2s ease;
568
+ }
569
+ .message-fade-enter-from[data-v-4f7fdfc2] {
570
+ opacity: 0;
571
+ transform: translateY(20px);
572
+ }
573
+ .message-fade-leave-to[data-v-4f7fdfc2] {
574
+ opacity: 0;
575
+ transform: translateX(100px);
576
+ }
577
+
578
+
579
+ .image-preview-container[data-v-28f9b383] {
580
+ display: flex;
581
+ gap: 12px;
582
+ padding: 16px 16px 0 16px;
583
+ flex-wrap: wrap;
584
+ background: #f8fafc;
585
+ border-bottom: 1px solid #e2e8f0;
586
+ }
587
+ .image-preview-item[data-v-28f9b383] {
588
+ position: relative;
589
+ width: 60px; /* 缩小尺寸 */
590
+ height: 60px; /* 缩小尺寸 */
591
+ border-radius: 8px;
592
+ overflow: hidden;
593
+ border: 2px solid #e2e8f0;
594
+ }
595
+ .preview-image[data-v-28f9b383] {
596
+ width: 100%;
597
+ height: 100%;
598
+ object-fit: cover;
599
+ }
600
+ .remove-image-btn[data-v-28f9b383] {
601
+ position: absolute;
602
+ top: -8px;
603
+ right: -8px;
604
+ width: 24px;
605
+ height: 24px;
606
+ border-radius: 50%;
607
+ background: #ff4757;
608
+ border: 2px solid white;
609
+ cursor: pointer;
610
+ display: flex;
611
+ align-items: center;
612
+ justify-content: center;
613
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
614
+ transition: all 0.2s ease;
615
+ }
616
+ .remove-image-btn[data-v-28f9b383]:hover:not(:disabled) {
617
+ background: #ff6b81;
618
+ transform: scale(1.1);
619
+ }
620
+ .remove-image-btn[data-v-28f9b383]:disabled {
621
+ opacity: 0.5;
622
+ cursor: not-allowed;
623
+ transform: none;
624
+ }
625
+ .remove-icon[data-v-28f9b383] {
626
+ width: 12px; /* 缩小尺寸 */
627
+ height: 12px; /* 缩小尺寸 */
628
+ color: white;
629
+ }
630
+
631
+
632
+ .upload-button[data-v-724f2729] {
633
+ width: 36px;
634
+ height: 36px;
635
+ border-radius: 50%;
636
+ background: #f1f5f9;
637
+ border: none;
638
+ cursor: pointer;
639
+ display: flex;
640
+ align-items: center;
641
+ justify-content: center;
642
+ transition: all 0.2s ease;
643
+ flex-shrink: 0;
644
+ }
645
+ .upload-button[data-v-724f2729]:hover:not(.disabled) {
646
+ background: #e2e8f0;
647
+ transform: scale(1.05);
648
+ }
649
+ .upload-button.disabled[data-v-724f2729] {
650
+ opacity: 0.5;
651
+ cursor: not-allowed;
652
+ }
653
+ .upload-icon[data-v-724f2729] {
654
+ width: 18px;
655
+ height: 18px;
656
+ color: #64748b;
657
+ }
658
+ .file-input[data-v-724f2729] {
659
+ display: none;
660
+ }
661
+
662
+
663
+ .image-preview-overlay[data-v-76b5889a] {
664
+ position: fixed;
665
+ top: 0;
666
+ left: 0;
667
+ width: 100vw;
668
+ height: 100vh;
669
+ background: rgba(0, 0, 0, 0.7); /* 全局透明蒙层 */
670
+ z-index: 10002; /* 显示在最上层 */
671
+ display: flex;
672
+ align-items: center;
673
+ justify-content: center;
674
+ backdrop-filter: blur(3px);
675
+ }
676
+ .image-counter[data-v-76b5889a] {
677
+ position: fixed;
678
+ bottom: 20px;
679
+ left: 50%;
680
+ transform: translateX(-50%);
681
+ background: rgba(0, 0, 0, 0.7);
682
+ color: white;
683
+ padding: 6px 12px;
684
+ border-radius: 20px;
685
+ font-size: 14px;
686
+ z-index: 10003;
687
+ }
688
+ .close-btn[data-v-76b5889a] {
689
+ position: fixed;
690
+ top: 20px;
691
+ right: 20px; /* 右侧显示 */
692
+ width: 40px;
693
+ height: 40px;
694
+ border-radius: 50%;
695
+ background: rgba(255, 255, 255, 0.9);
696
+ border: 1px solid rgba(0, 0, 0, 0.1);
697
+ cursor: pointer;
698
+ display: flex;
699
+ align-items: center;
700
+ justify-content: center;
701
+ transition: all 0.2s ease;
702
+ z-index: 10003;
703
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
704
+ }
705
+ .close-btn[data-v-76b5889a]:hover {
706
+ background: white;
707
+ transform: scale(1.1);
708
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
709
+ }
710
+ .close-icon[data-v-76b5889a] {
711
+ width: 20px;
712
+ height: 20px;
713
+ color: #333; /* 深色图标 */
714
+ }
715
+ .image-container[data-v-76b5889a] {
716
+ position: relative;
717
+ display: flex;
718
+ align-items: center;
719
+ justify-content: center;
720
+ max-width: calc(90vw - 120px); /* 为两侧按钮留出空间 */
721
+ max-height: 90vh;
722
+ margin: 0 60px; /* 左右各60px边距 */
723
+ }
724
+ .preview-image[data-v-76b5889a] {
725
+ max-width: 100%;
726
+ max-height: 90vh;
727
+ object-fit: contain;
728
+ border-radius: 8px;
729
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
730
+ /* 使用内联样式绑定缩放比例 */
731
+ transform-origin: center;
732
+ transition: transform 0.2s ease;
733
+ }
734
+ .nav-btn[data-v-76b5889a] {
735
+ position: absolute;
736
+ top: 50%;
737
+ transform: translateY(-50%);
738
+ width: 48px;
739
+ height: 48px;
740
+ border-radius: 50%;
741
+ background: rgba(255, 255, 255, 0.9);
742
+ border: 1px solid rgba(0, 0, 0, 0.1);
743
+ cursor: pointer;
744
+ display: flex;
745
+ align-items: center;
746
+ justify-content: center;
747
+ transition: all 0.2s ease;
748
+ z-index: 10003;
749
+ backdrop-filter: blur(5px);
750
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
751
+ }
752
+ .nav-btn[data-v-76b5889a]:hover {
753
+ background: white;
754
+ transform: translateY(-50%) scale(1.1);
755
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
756
+ }
757
+ .prev-btn[data-v-76b5889a] {
758
+ left: -60px; /* 定位在图片左侧 */
759
+ }
760
+ .next-btn[data-v-76b5889a] {
761
+ right: -60px; /* 定位在图片右侧 */
762
+ }
763
+ .nav-icon[data-v-76b5889a] {
764
+ width: 24px;
765
+ height: 24px;
766
+ color: #333;
767
+ }
768
+
769
+ /* 缩放控制样式 */
770
+ .zoom-controls[data-v-76b5889a] {
771
+ position: fixed;
772
+ bottom: 20px;
773
+ right: 20px;
774
+ display: flex;
775
+ gap: 10px;
776
+ z-index: 10003;
777
+ }
778
+ .zoom-btn[data-v-76b5889a] {
779
+ width: 40px;
780
+ height: 40px;
781
+ border-radius: 50%;
782
+ background: rgba(255, 255, 255, 0.9);
783
+ border: 1px solid rgba(0, 0, 0, 0.1);
784
+ cursor: pointer;
785
+ display: flex;
786
+ align-items: center;
787
+ justify-content: center;
788
+ transition: all 0.2s ease;
789
+ font-size: 12px;
790
+ font-weight: 500;
791
+ color: #333;
792
+ backdrop-filter: blur(5px);
793
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
794
+ }
795
+ .zoom-btn[data-v-76b5889a]:hover:not(:disabled) {
796
+ background: white;
797
+ transform: scale(1.1);
798
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
799
+ }
800
+ .zoom-btn[data-v-76b5889a]:disabled {
801
+ opacity: 0.5;
802
+ cursor: not-allowed;
803
+ background: rgba(200, 200, 200, 0.7);
804
+ }
805
+ .zoom-icon[data-v-76b5889a] {
806
+ width: 20px;
807
+ height: 20px;
808
+ color: #333;
809
+ }
810
+
811
+
812
+
813
+
814
+
815
+ /* 动画效果 */
816
+ .modal-fade-enter-active[data-v-76b5889a] {
817
+ transition: all 0.3s ease;
818
+ }
819
+ .modal-fade-leave-active[data-v-76b5889a] {
820
+ transition: all 0.3s ease;
821
+ }
822
+ .modal-fade-enter-from[data-v-76b5889a] {
823
+ opacity: 0;
824
+ }
825
+ .modal-fade-leave-to[data-v-76b5889a] {
826
+ opacity: 0;
827
+ }
828
+
829
+ /* 响应式设计 */
830
+ @media (max-width: 768px) {
831
+ .modal-content[data-v-76b5889a] {
832
+ width: 95%;
833
+ height: 95%;
834
+ border-radius: 8px;
835
+ }
836
+ .nav-btn[data-v-76b5889a] {
837
+ width: 40px;
838
+ height: 40px;
839
+ }
840
+ .nav-icon[data-v-76b5889a] {
841
+ width: 20px;
842
+ height: 20px;
843
+ }
844
+ .prev-btn[data-v-76b5889a] {
845
+ left: 12px;
846
+ }
847
+ .next-btn[data-v-76b5889a] {
848
+ right: 12px;
849
+ }
850
+ .thumbnail-item[data-v-76b5889a] {
851
+ width: 50px;
852
+ height: 50px;
853
+ }
854
+ }
855
+
856
+
857
+ .agent-assistant[data-v-5a317acc] {
858
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
859
+ }
860
+