econtrol-tools-calendar 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.
package/dist/style.css ADDED
@@ -0,0 +1,926 @@
1
+
2
+ button[data-v-7684c35e]:focus-visible {
3
+ outline: none;
4
+ }
5
+ [data-v-7684c35e] .fc .fc-button:focus {
6
+ box-shadow: none !important;
7
+ }
8
+ .fullcalendar-demo[data-v-7684c35e] {
9
+ padding: 4px; /* 压缩容器内边距 */
10
+ background-color: #fff;
11
+ border-radius: 4px;
12
+ box-shadow: 0 0 8px rgba(0, 0, 0, 0.08);
13
+ }
14
+ .demo-header[data-v-7684c35e] {
15
+ display: flex;
16
+ justify-content: space-between;
17
+ align-items: center;
18
+ margin-bottom: 6px; /* 压缩底部间距 */
19
+ padding-bottom: 4px; /* 压缩底部内边距 */
20
+ border-bottom: 1px solid #dcdfe6;
21
+ }
22
+ .device-info[data-v-7684c35e] {
23
+ display: flex;
24
+ align-items: center;
25
+ gap: 8px;
26
+ }
27
+ .device-label[data-v-7684c35e] {
28
+ font-size: 12px;
29
+ color: #606266;
30
+ font-weight: 500;
31
+ }
32
+ .device-id[data-v-7684c35e] {
33
+ font-size: 12px;
34
+ color: #409eff;
35
+ font-weight: 600;
36
+ cursor: pointer;
37
+ text-decoration: underline;
38
+ transition: color 0.2s;
39
+ }
40
+ .device-id[data-v-7684c35e]:hover {
41
+ color: #66b1ff;
42
+ }
43
+ .demo-header h2[data-v-7684c35e] {
44
+ margin: 0;
45
+ color: #303133;
46
+ font-size: 18px;
47
+ font-weight: 500;
48
+ }
49
+ .calendar[data-v-7684c35e] {
50
+ margin-top: 0;
51
+ background: #fff;
52
+ border-radius: 4px;
53
+ height: 480px; /* 限制日历容器高度为480px */
54
+ max-height: 480px; /* 确保最大高度不超过480px */
55
+ display: flex;
56
+ flex-direction: column;
57
+ overflow: hidden;
58
+ }
59
+ [data-v-7684c35e] .fc {
60
+ height: 100%;
61
+ max-height: 480px; /* 限制FullCalendar最大高度为480px */
62
+ display: flex;
63
+ flex-direction: column;
64
+ overflow: hidden;
65
+ }
66
+ [data-v-7684c35e] .fc-view-harness {
67
+ flex: 1;
68
+ min-height: 0;
69
+ max-height: 480px; /* 限制视图容器最大高度为480px */
70
+ overflow: hidden;
71
+ }
72
+ .event-content[data-v-7684c35e] {
73
+ display: flex;
74
+ align-items: center;
75
+ gap: 2px; /* 压缩时间和标题之间的间距 */
76
+ font-size: 10px;
77
+ line-height: 1.2;
78
+ flex-direction: row; /* 改为横向排列 */
79
+ justify-content: flex-start;
80
+ cursor: pointer;
81
+ width: 100%;
82
+ height: 100%;
83
+ white-space: nowrap;
84
+ overflow: hidden;
85
+ }
86
+
87
+ /* 自己的事件标记图标样式 */
88
+ .my-event-marker[data-v-7684c35e] {
89
+ font-size: 10px;
90
+ color: #409eff;
91
+ flex-shrink: 0;
92
+ margin-right: 2px;
93
+ }
94
+ .event-content i[data-v-7684c35e] {
95
+ font-size: 11px;
96
+ opacity: 0.9;
97
+ margin-top: 0;
98
+ }
99
+ .event-time[data-v-7684c35e] {
100
+ white-space: nowrap;
101
+ opacity: 0.8;
102
+ font-size: 9px;
103
+ flex-shrink: 0; /* 时间不收缩 */
104
+ }
105
+ .event-info[data-v-7684c35e] {
106
+ flex: 1;
107
+ display: flex;
108
+ min-width: 0;
109
+ }
110
+ .event-title[data-v-7684c35e] {
111
+ font-weight: 500;
112
+ overflow: hidden;
113
+ text-overflow: ellipsis;
114
+ white-space: nowrap;
115
+ font-size: 10px;
116
+ flex: 1;
117
+ min-width: 0;
118
+ }
119
+ .event-user[data-v-7684c35e] {
120
+ font-size: 9px;
121
+ color: rgba(255, 255, 255, 0.75);
122
+ overflow: hidden;
123
+ text-overflow: ellipsis;
124
+ white-space: nowrap;
125
+ }
126
+
127
+ /* 日历整体样式优化 */
128
+ [data-v-7684c35e] .fc {
129
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
130
+ "Helvetica Neue", Arial, sans-serif;
131
+ height: 100%;
132
+ display: flex;
133
+ flex-direction: column;
134
+ overflow: hidden;
135
+ }
136
+ [data-v-7684c35e] .fc-view-harness {
137
+ flex: 1;
138
+ min-height: 0;
139
+ overflow: hidden;
140
+ }
141
+ [data-v-7684c35e] .fc-header-toolbar {
142
+ margin-bottom: 5px !important; /* 压缩工具栏底部间距 */
143
+ padding: 0;
144
+ gap: 2px; /* 压缩工具栏内按钮间距 */
145
+ }
146
+ [data-v-7684c35e] .fc-toolbar-chunk {
147
+ gap: 2px; /* 压缩工具栏块内间距 */
148
+ }
149
+ [data-v-7684c35e] .fc-toolbar-title {
150
+ font-size: 14px;
151
+ font-weight: 500;
152
+ color: #303133;
153
+ text-transform: capitalize;
154
+ }
155
+
156
+ /* 按钮样式优化 - Element Plus 风格 */
157
+ [data-v-7684c35e] .fc-button {
158
+ background-color: #409eff;
159
+ border-color: #409eff;
160
+ border-radius: 3px;
161
+ padding: 2px 6px; /* 压缩按钮内边距 */
162
+ font-size: 10px; /* 压缩按钮字号 */
163
+ font-weight: 500;
164
+ color: #fff;
165
+ transition: all 0.1s;
166
+ border: 1px solid;
167
+ cursor: pointer;
168
+ box-shadow: none;
169
+ outline: none;
170
+ min-height: 22px; /* 设置最小高度 */
171
+ line-height: 1.2;
172
+ }
173
+ [data-v-7684c35e] .fc-button:hover {
174
+ background-color: #66b1ff;
175
+ border-color: #66b1ff;
176
+ color: #fff;
177
+ box-shadow: none;
178
+ }
179
+ [data-v-7684c35e] .fc-button:active {
180
+ background-color: #a5846a;
181
+ border-color: #6a86a5;
182
+ color: #fff;
183
+ box-shadow: none;
184
+ }
185
+ [data-v-7684c35e] .fc-button:focus-visible {
186
+ outline: 2px solid #409eff;
187
+ outline-offset: 1px;
188
+ }
189
+ [data-v-7684c35e] .fc-button-active,[data-v-7684c35e] .fc-button-primary:not(:disabled):active,[data-v-7684c35e] .fc-button-primary:not(:disabled).fc-button-active {
190
+ background-color: var(--el-color-success);
191
+ border-color: var(--el-color-success);
192
+ color: #fff;
193
+ box-shadow: none;
194
+ }
195
+ [data-v-7684c35e] .fc-today-button {
196
+ background-color: #409eff;
197
+ border-color: #409eff;
198
+ color: #fff;
199
+ box-shadow: none;
200
+ }
201
+ [data-v-7684c35e] .fc-today-button:hover {
202
+ background-color: #66b1ff;
203
+ border-color: #66b1ff;
204
+ color: #fff;
205
+ box-shadow: none;
206
+ }
207
+ [data-v-7684c35e] .fc-button:disabled {
208
+ background-color: #fff;
209
+ border-color: #e4e7ed;
210
+ color: #c0c4cc;
211
+ cursor: not-allowed;
212
+ opacity: 1;
213
+ box-shadow: none;
214
+ }
215
+ [data-v-7684c35e] .fc-button:disabled:hover {
216
+ background-color: #fff;
217
+ border-color: #e4e7ed;
218
+ color: #c0c4cc;
219
+ box-shadow: none;
220
+ }
221
+
222
+ /* 日历表格样式优化 - Element Plus 风格 */
223
+ [data-v-7684c35e] .fc-scrollgrid {
224
+ border: 1px solid #dcdfe6;
225
+ border-radius: 4px;
226
+ overflow: hidden;
227
+ }
228
+ [data-v-7684c35e] .fc-col-header-cell {
229
+ background-color: #f5f7fa;
230
+ padding: 3px 2px; /* 压缩表头单元格内边距 */
231
+ font-weight: 500;
232
+ color: #606266;
233
+ border-color: #dcdfe6;
234
+ font-size: 12px;
235
+ }
236
+ [data-v-7684c35e] .fc-daygrid-day {
237
+ border-color: #dcdfe6;
238
+ transition: background-color 0.2s;
239
+ min-height: 65px; /* 统一单元格最小高度 */
240
+ height: 65px; /* 统一单元格高度 */
241
+ }
242
+ [data-v-7684c35e] .fc-daygrid-day:hover {
243
+ background-color: #f5f7fa;
244
+ }
245
+
246
+ /* 统一单元格框架高度 */
247
+ [data-v-7684c35e] .fc-daygrid-day-frame {
248
+ min-height: 65px;
249
+ height: 65px;
250
+ }
251
+ [data-v-7684c35e] .fc-day-today {
252
+ background-color: #ecf5ff !important;
253
+ }
254
+ [data-v-7684c35e] .fc-day-today .fc-daygrid-day-number {
255
+ color: #409eff;
256
+ font-weight: 500;
257
+ }
258
+ [data-v-7684c35e] .fc-daygrid-day-number {
259
+ padding: 2px; /* 压缩日期数字内边距 */
260
+ font-size: 12px;
261
+ color: #606266;
262
+ transition: color 0.2s;
263
+ }
264
+ [data-v-7684c35e] .fc-daygrid-day-number:hover {
265
+ color: #409eff;
266
+ }
267
+
268
+ /* 节假日日期单元格样式 */
269
+ [data-v-7684c35e] .fc-daygrid-day.holiday-day {
270
+ background-color: #fef0f0 !important;
271
+ }
272
+ [data-v-7684c35e] .fc-daygrid-day.holiday-day:hover {
273
+ background-color: #fde2e2 !important;
274
+ }
275
+ [data-v-7684c35e] .fc-daygrid-day.holiday-day .fc-daygrid-day-number {
276
+ color: #f56c6c;
277
+ font-weight: 600;
278
+ }
279
+
280
+ /* 节假日标签样式 */
281
+ .holiday-label[data-v-7684c35e] {
282
+ font-size: 9px !important;
283
+ color: #f56c6c !important;
284
+ font-weight: 500 !important;
285
+ margin-top: 2px !important;
286
+ white-space: nowrap !important;
287
+ overflow: hidden !important;
288
+ text-overflow: ellipsis !important;
289
+ max-width: 100% !important;
290
+ line-height: 1.2 !important;
291
+ }
292
+
293
+ /* 隐藏"more"链接,不显示额外事件数量 */
294
+ [data-v-7684c35e] .fc-more-link {
295
+ display: none !important;
296
+ }
297
+
298
+ /* 月视图事件样式 - 显示为10px高度的横线,不显示文字,保留背景颜色 */
299
+ [data-v-7684c35e] .fc-daygrid-event {
300
+ margin: 1px 0 !important; /* 确保事件之间有间距 */
301
+ border-radius: 0 !important;
302
+ display: block !important;
303
+ width: 100% !important;
304
+ height: 10px !important; /* 固定高度10px */
305
+ min-height: 10px !important;
306
+ max-height: 10px !important;
307
+ padding: 0 !important;
308
+ overflow: visible !important; /* 改为visible确保可见 */
309
+ line-height: 10px !important;
310
+ /* 确保背景颜色显示,不覆盖原有颜色 */
311
+ border: none !important;
312
+ visibility: visible !important;
313
+ opacity: 1 !important;
314
+ /* 强制显示背景色 - 从内联样式获取 */
315
+ /* background-color: inherit !important; */
316
+ background-image: none !important;
317
+ }
318
+
319
+ /* 确保事件的所有子元素也正确显示 */
320
+ [data-v-7684c35e] .fc-daygrid-event * {
321
+ /* 子元素默认透明,但tooltip触发器需要特殊处理 */
322
+ background-color: transparent !important;
323
+ }
324
+
325
+ /* 确保tooltip触发器不覆盖背景色 */
326
+ [data-v-7684c35e] .fc-daygrid-event .el-tooltip__trigger {
327
+ background-color: transparent !important;
328
+ background: transparent !important;
329
+ }
330
+
331
+ /* 确保事件容器可见 */
332
+ [data-v-7684c35e] .fc-daygrid-day-events {
333
+ margin-top: 2px !important;
334
+ min-height: 0 !important;
335
+ }
336
+
337
+ /* 确保事件框架可见并显示背景色 */
338
+ [data-v-7684c35e] .fc-daygrid-event-frame {
339
+ height: 10px !important;
340
+ min-height: 10px !important;
341
+ max-height: 10px !important;
342
+ overflow: visible !important;
343
+ /* background-color: inherit !important; */
344
+ display: block !important;
345
+ width: 100% !important;
346
+ }
347
+
348
+ /* 隐藏月视图事件文字内容 - 只针对月视图 */
349
+ [data-v-7684c35e] .fc-daygrid-event .fc-event-main {
350
+ display: none !important;
351
+ }
352
+ [data-v-7684c35e] .fc-daygrid-event .fc-event-title {
353
+ display: none !important;
354
+ }
355
+ [data-v-7684c35e] .fc-daygrid-event .fc-event-time {
356
+ display: none !important;
357
+ }
358
+
359
+ /* 隐藏月视图事件内容区域的所有文字 - 只针对月视图 */
360
+ [data-v-7684c35e] .fc-daygrid-event .event-content,[data-v-7684c35e] .fc-daygrid-event .event-time,[data-v-7684c35e] .fc-daygrid-event .event-info,[data-v-7684c35e] .fc-daygrid-event .event-title,[data-v-7684c35e] .fc-daygrid-event .my-event-marker {
361
+ display: none !important;
362
+ visibility: hidden !important;
363
+ opacity: 0 !important;
364
+ height: 0 !important;
365
+ width: 0 !important;
366
+ padding: 0 !important;
367
+ margin: 0 !important;
368
+ font-size: 0 !important;
369
+ line-height: 0 !important;
370
+ }
371
+
372
+ /* 月视图下自己创建事件的图标样式 */
373
+ [data-v-7684c35e] .fc-daygrid-event .my-event-icon {
374
+ display: block !important;
375
+ position: absolute !important;
376
+ left: 2px !important;
377
+ top: 50% !important;
378
+ transform: translateY(-50%) !important;
379
+ font-size: 8px !important;
380
+ color: #fff !important;
381
+ line-height: 1 !important;
382
+ z-index: 20 !important;
383
+ pointer-events: none !important;
384
+ font-weight: bold !important;
385
+ }
386
+
387
+ /* 确保月视图事件元素可以hover并显示tooltip */
388
+ [data-v-7684c35e] .fc-daygrid-event {
389
+ cursor: pointer !important;
390
+ position: relative !important;
391
+ pointer-events: auto !important;
392
+ }
393
+
394
+ /* 确保tooltip在月视图中可以正常显示 */
395
+ [data-v-7684c35e] .fc-daygrid-event .el-tooltip__trigger {
396
+ display: block !important;
397
+ width: 100% !important;
398
+ height: 100% !important;
399
+ cursor: pointer !important;
400
+ pointer-events: auto !important;
401
+ position: absolute !important;
402
+ top: 0 !important;
403
+ left: 0 !important;
404
+ z-index: 10 !important;
405
+ background: transparent !important;
406
+ visibility: visible !important;
407
+ opacity: 1 !important;
408
+ }
409
+
410
+ /* 确保事件框架也可以触发tooltip */
411
+ [data-v-7684c35e] .fc-daygrid-event-frame {
412
+ cursor: pointer !important;
413
+ pointer-events: auto !important;
414
+ }
415
+
416
+ /* 确保tooltip内容区域在月视图中可见(虽然事件内容被隐藏,但tooltip应该显示) */
417
+ [data-v-7684c35e] .fc-daygrid-event:hover {
418
+ opacity: 0.9 !important;
419
+ z-index: 100 !important;
420
+ }
421
+
422
+ /* 确保tooltip弹窗可以正常显示 */
423
+ [data-v-7684c35e] .el-popper.is-light {
424
+ z-index: 9999 !important;
425
+ pointer-events: auto !important;
426
+ }
427
+ [data-v-7684c35e] .event-detail-tooltip {
428
+ z-index: 9999 !important;
429
+ pointer-events: auto !important;
430
+ }
431
+
432
+ /* 确保日视图和列表视图显示文字内容 - 覆盖月视图的隐藏规则 */
433
+ [data-v-7684c35e] .fc-timegrid-event .event-content,[data-v-7684c35e] .fc-list-event .event-content {
434
+ display: flex !important;
435
+ flex-direction: row !important; /* 一行显示 */
436
+ align-items: center !important;
437
+ gap: 2px !important; /* 压缩时间和标题之间的间距 */
438
+ visibility: visible !important;
439
+ opacity: 1 !important;
440
+ height: auto !important;
441
+ width: auto !important;
442
+ margin: 0 !important;
443
+ font-size: 11px !important;
444
+ line-height: 1.2 !important;
445
+ white-space: nowrap !important;
446
+ overflow: hidden !important;
447
+ }
448
+
449
+ /* 标记图标在日视图和列表视图中的样式 */
450
+ [data-v-7684c35e] .fc-timegrid-event .my-event-marker,[data-v-7684c35e] .fc-list-event .my-event-marker {
451
+ display: inline-flex !important;
452
+ font-size: 10px !important;
453
+ color: #409eff !important;
454
+ flex-shrink: 0 !important;
455
+ margin-right: 2px !important;
456
+ }
457
+ [data-v-7684c35e] .fc-timegrid-event .event-time,[data-v-7684c35e] .fc-list-event .event-time {
458
+ display: inline-block !important;
459
+ visibility: visible !important;
460
+ opacity: 0.8 !important;
461
+ font-size: 9px !important;
462
+ flex-shrink: 0 !important;
463
+ white-space: nowrap !important;
464
+ }
465
+ [data-v-7684c35e] .fc-timegrid-event .event-title,[data-v-7684c35e] .fc-list-event .event-title {
466
+ display: inline-block !important;
467
+ visibility: visible !important;
468
+ opacity: 1 !important;
469
+ font-size: 10px !important;
470
+ font-weight: 500 !important;
471
+ overflow: hidden !important;
472
+ text-overflow: ellipsis !important;
473
+ white-space: nowrap !important;
474
+ flex: 1 !important;
475
+ min-width: 0 !important;
476
+ }
477
+ [data-v-7684c35e] .fc-timegrid-event .event-info,[data-v-7684c35e] .fc-list-event .event-info {
478
+ display: none !important; /* 隐藏 event-info,因为标题已经直接显示 */
479
+ }
480
+
481
+ /* 事件样式优化 - Element Plus 风格(用于其他视图) */
482
+ [data-v-7684c35e] .fc-event {
483
+ cursor: pointer;
484
+ border-radius: 3px;
485
+ padding: 2px 4px;
486
+ border: none;
487
+ transition: opacity 0.2s;
488
+ font-weight: 400;
489
+ font-size: 11px;
490
+ }
491
+ [data-v-7684c35e] .fc-event:hover {
492
+ opacity: 0.9;
493
+ }
494
+
495
+ /* 日视图和列表视图的事件主内容区域 - 确保显示 */
496
+ [data-v-7684c35e] .fc-timegrid-event .fc-event-main,[data-v-7684c35e] .fc-list-event .fc-event-main {
497
+ display: block !important;
498
+ visibility: visible !important;
499
+ opacity: 1 !important;
500
+ }
501
+
502
+ /* 日视图和列表视图的事件样式 - 显示文字内容 */
503
+ [data-v-7684c35e] .fc-timegrid-event .fc-event-main,[data-v-7684c35e] .fc-list-event .fc-event-main {
504
+ display: block !important;
505
+ }
506
+
507
+ /* 确保日视图和列表视图的事件文字可见 */
508
+ [data-v-7684c35e] .fc-timegrid-event .fc-event-title,[data-v-7684c35e] .fc-timegrid-event .fc-event-time,[data-v-7684c35e] .fc-list-event .fc-event-title,[data-v-7684c35e] .fc-list-event .fc-event-time {
509
+ display: block !important;
510
+ visibility: visible !important;
511
+ opacity: 1 !important;
512
+ }
513
+
514
+ /* 列表视图中自己的事件(黑色背景)的所有文字元素使用 #409eff 颜色 */
515
+ [data-v-7684c35e]
516
+ .fc-list-event[style*="background-color: rgb(0, 0, 0)"] .fc-event-title {
517
+ color: #409eff !important;
518
+ }
519
+
520
+ /* 确保自己的事件(黑色)在月视图中正确显示为10px黑色横线 */
521
+ [data-v-7684c35e]
522
+ .fc-daygrid-event[style*="background-color: rgb(0, 0, 0)"] {
523
+ background-color: #000000 !important;
524
+ border-color: #000000 !important;
525
+ height: 10px !important;
526
+ min-height: 10px !important;
527
+ max-height: 10px !important;
528
+ /* 确保黑色横线可见 */
529
+ border: none !important;
530
+ display: block !important;
531
+ visibility: visible !important;
532
+ opacity: 1 !important;
533
+ width: 100% !important;
534
+ background-image: none !important;
535
+ }
536
+
537
+ /* 确保事件框架也显示黑色 */
538
+ [data-v-7684c35e]
539
+ .fc-daygrid-event[style*="background-color: rgb(0, 0, 0)"]
540
+ .fc-daygrid-event-frame {
541
+ background-color: #000000 !important;
542
+ }
543
+
544
+ /* 自己的事件(黑色背景)在日视图和列表视图中使用 #409eff 颜色的文字 */
545
+ [data-v-7684c35e]
546
+ .fc-timegrid-event[style*="background-color: rgb(0, 0, 0)"] {
547
+ background-color: #000000 !important;
548
+ border-color: #000000 !important;
549
+ color: #409eff !important; /* 文字颜色使用 #409eff */
550
+ }
551
+
552
+ /* 自己的事件文字内容使用 #409eff 颜色 */
553
+ [data-v-7684c35e]
554
+ .fc-timegrid-event[style*="background-color: rgb(0, 0, 0)"] .event-content {
555
+ color: #409eff !important;
556
+ }
557
+ [data-v-7684c35e]
558
+ .fc-timegrid-event[style*="background-color: rgb(0, 0, 0)"] .event-time {
559
+ color: #409eff !important;
560
+ }
561
+ [data-v-7684c35e]
562
+ .fc-timegrid-event[style*="background-color: rgb(0, 0, 0)"] .event-title {
563
+ color: #409eff !important;
564
+ }
565
+
566
+ /* 列表视图中自己的事件(黑色背景)所有文字元素都使用 #409eff 颜色 */
567
+ [data-v-7684c35e]
568
+ .fc-list-event[style*="background-color: rgb(0, 0, 0)"] * {
569
+ color: #409eff !important;
570
+ }
571
+
572
+ /* 确保所有事件横线都显示背景颜色 - 使用更通用的选择器 */
573
+ [data-v-7684c35e] .fc-daygrid-event {
574
+ /* 确保高度和显示 */
575
+ height: 10px !important;
576
+ min-height: 10px !important;
577
+ max-height: 10px !important;
578
+ display: block !important;
579
+ visibility: visible !important;
580
+ opacity: 1 !important;
581
+ width: 100% !important;
582
+ /* 确保背景色显示 - 从内联样式继承 */
583
+ /* background-color: inherit !important; */
584
+ background-image: none !important;
585
+ /* 确保背景色不被覆盖 */
586
+ }
587
+
588
+ /* 针对有内联样式背景色的事件 - 确保显示 */
589
+ [data-v-7684c35e] .fc-daygrid-event[style*="background"] {
590
+ /* 保留事件原有的背景颜色 */
591
+ height: 10px !important;
592
+ min-height: 10px !important;
593
+ max-height: 10px !important;
594
+ display: block !important;
595
+ visibility: visible !important;
596
+ opacity: 1 !important;
597
+ width: 100% !important;
598
+ /* 确保内联样式背景色显示 - 使用!important强制应用 */
599
+ /* background-color: inherit !important; */
600
+ }
601
+
602
+ /* 确保事件框架和所有子元素都显示背景色 */
603
+ [data-v-7684c35e] .fc-daygrid-event-frame,[data-v-7684c35e] .fc-daygrid-event .fc-event-main-frame,[data-v-7684c35e] .fc-daygrid-event .fc-event-main {
604
+ /* background-color: inherit !important; */
605
+ height: 10px !important;
606
+ display: block !important;
607
+ width: 100% !important;
608
+ }
609
+
610
+ /* 确保事件容器中的事件正确显示 */
611
+ [data-v-7684c35e] .fc-daygrid-day .fc-daygrid-day-events .fc-daygrid-event {
612
+ display: block !important;
613
+ visibility: visible !important;
614
+ opacity: 1 !important;
615
+ height: 10px !important;
616
+ min-height: 10px !important;
617
+ max-height: 10px !important;
618
+ width: 100% !important;
619
+ /* 确保背景色显示 - 从内联样式或CSS变量获取 */
620
+ /* background-color: inherit !important; */
621
+ }
622
+
623
+ /* 确保事件框架和主容器也显示背景色 */
624
+ [data-v-7684c35e] .fc-daygrid-event-frame,[data-v-7684c35e] .fc-daygrid-event .fc-event-main-frame {
625
+ /* background-color: inherit !important; */
626
+ height: 10px !important;
627
+ display: block !important;
628
+ width: 100% !important;
629
+ }
630
+
631
+ /* 确保事件框架也显示背景色 */
632
+ [data-v-7684c35e] .fc-daygrid-event-frame {
633
+ /* background-color: inherit !important; */
634
+ height: 10px !important;
635
+ min-height: 10px !important;
636
+ max-height: 10px !important;
637
+ display: block !important;
638
+ }
639
+
640
+ /* 确保事件主容器显示背景色 */
641
+ [data-v-7684c35e] .fc-daygrid-event .fc-event-main-frame {
642
+ /* background-color: inherit !important; */
643
+ height: 20px !important;
644
+ }
645
+
646
+ /* 确保事件容器可见并正确显示 */
647
+ [data-v-7684c35e] .fc-daygrid-day-events {
648
+ margin-top: 2px !important;
649
+ margin-bottom: 2px !important;
650
+ min-height: 0 !important;
651
+ display: block !important;
652
+ visibility: visible !important;
653
+ }
654
+
655
+ /* 确保事件在单元格中可见 */
656
+ [data-v-7684c35e] .fc-daygrid-day .fc-daygrid-day-events .fc-daygrid-event {
657
+ display: block !important;
658
+ visibility: visible !important;
659
+ opacity: 1 !important;
660
+ height: 10px !important;
661
+ min-height: 10px !important;
662
+ max-height: 10px !important;
663
+ }
664
+ [data-v-7684c35e] .fc-timegrid-event {
665
+ border-radius: 2px;
666
+ border-left-width: 2px;
667
+ }
668
+ [data-v-7684c35e] .fc-timegrid-event-short {
669
+ min-height: 16px;
670
+ }
671
+ [data-v-7684c35e] .fc-event-time {
672
+ font-weight: 400;
673
+ opacity: 0.9;
674
+ }
675
+
676
+ /* 选择区域样式 - Element Plus 风格 */
677
+ [data-v-7684c35e] .fc-highlight {
678
+ background: rgba(64, 158, 255, 0.15) !important;
679
+ border: 2px dashed #409eff !important;
680
+ border-radius: 4px;
681
+ }
682
+ [data-v-7684c35e] .fc-select-marker {
683
+ background-color: rgba(64, 158, 255, 0.2);
684
+ border: 2px dashed #409eff;
685
+ border-radius: 4px;
686
+ opacity: 0.8;
687
+ }
688
+
689
+ /* 拖拽新增时的镜像事件样式 - 更明显的区别 */
690
+ [data-v-7684c35e] .fc-event-mirror {
691
+ opacity: 0.7 !important;
692
+ border: 2px dashed #67c23a !important;
693
+ background-color: rgba(103, 194, 58, 0.2) !important;
694
+ box-shadow: 0 2px 8px rgba(103, 194, 58, 0.4) !important;
695
+ transform: scale(1.02);
696
+ }
697
+
698
+ /* 拖拽选择时的临时事件条 */
699
+ [data-v-7684c35e] .fc-timegrid-event.fc-event-mirror,[data-v-7684c35e] .fc-daygrid-event.fc-event-mirror {
700
+ border: 2px dashed #67c23a !important;
701
+ background-color: rgba(103, 194, 58, 0.25) !important;
702
+ box-shadow: 0 2px 8px rgba(103, 194, 58, 0.5) !important;
703
+ opacity: 0.8 !important;
704
+ }
705
+
706
+ /* 日视图单元格样式 - 添加 padding */
707
+ [data-v-7684c35e] .fc-timegrid-col {
708
+ padding-right: 10px;
709
+ }
710
+ [data-v-7684c35e] .fc-timegrid-col-frame {
711
+ padding: 2px;
712
+ }
713
+
714
+ /* 时间网格样式 - Element Plus 风格 */
715
+ [data-v-7684c35e] .fc-timegrid-slot {
716
+ border-color: #ebeef5;
717
+ height: 32px;
718
+ }
719
+ [data-v-7684c35e] .fc-timegrid-slot-label {
720
+ border-color: #dcdfe6;
721
+ color: #909399;
722
+ font-size: 11px;
723
+ }
724
+ [data-v-7684c35e] .fc-timegrid-now-indicator-line {
725
+ border-color: #f56c6c;
726
+ border-width: 2px;
727
+ }
728
+ [data-v-7684c35e] .fc-timegrid-now-indicator-arrow {
729
+ border-left-color: #f56c6c;
730
+ }
731
+
732
+ /* 滚动条样式 - Element Plus 风格 */
733
+ [data-v-7684c35e] .fc-scroller::-webkit-scrollbar {
734
+ width: 6px;
735
+ height: 6px;
736
+ }
737
+ [data-v-7684c35e] .fc-scroller::-webkit-scrollbar-track {
738
+ background: #f5f7fa;
739
+ border-radius: 3px;
740
+ }
741
+ [data-v-7684c35e] .fc-scroller::-webkit-scrollbar-thumb {
742
+ background: #c0c4cc;
743
+ border-radius: 3px;
744
+ }
745
+ [data-v-7684c35e] .fc-scroller::-webkit-scrollbar-thumb:hover {
746
+ background: #a4a9ae;
747
+ }
748
+
749
+ /* 列表视图滚动优化 */
750
+ [data-v-7684c35e] .fc-list-view {
751
+ height: 350px !important;
752
+ display: flex;
753
+ flex-direction: column;
754
+ overflow: hidden;
755
+ }
756
+ [data-v-7684c35e] .fc-list-view .fc-view-harness {
757
+ flex: 1;
758
+ min-height: 0;
759
+ overflow: hidden;
760
+ height: 100% !important;
761
+ }
762
+ [data-v-7684c35e] .fc-list-view .fc-scroller {
763
+ overflow-y: auto !important;
764
+ overflow-x: hidden !important;
765
+ height: 100% !important;
766
+ max-height: 100% !important;
767
+ flex: 1;
768
+ min-height: 0;
769
+ }
770
+ [data-v-7684c35e] .fc-list-view .fc-scroller-liquid-absolute {
771
+ position: relative !important;
772
+ height: auto !important;
773
+ min-height: 100%;
774
+ }
775
+ [data-v-7684c35e] .fc-list-view .fc-list {
776
+ height: auto !important;
777
+ min-height: 100%;
778
+ }
779
+ [data-v-7684c35e] .fc-list-view .fc-list-table {
780
+ height: auto !important;
781
+ }
782
+ [data-v-7684c35e] .fc-list-view .fc-list-day-cushion {
783
+ position: sticky;
784
+ top: 0;
785
+ z-index: 1;
786
+ }
787
+
788
+ /* 对话框样式优化 - 使用 Element Plus 默认样式 */
789
+ [data-v-7684c35e] .event-dialog {
790
+ border-radius: 4px;
791
+ }
792
+ [data-v-7684c35e] .event-dialog .el-dialog__header {
793
+ padding: 20px 20px 10px;
794
+ border-bottom: 1px solid #ebeef5;
795
+ }
796
+ [data-v-7684c35e] .event-dialog .el-dialog__title {
797
+ font-size: 18px;
798
+ font-weight: 500;
799
+ color: #303133;
800
+ line-height: 24px;
801
+ }
802
+ [data-v-7684c35e] .event-dialog .el-dialog__body {
803
+ padding: 20px;
804
+ }
805
+ [data-v-7684c35e] .event-dialog .el-dialog__footer {
806
+ padding: 10px 20px 20px;
807
+ border-top: 1px solid #ebeef5;
808
+ }
809
+ [data-v-7684c35e] .event-dialog .el-form-item__label {
810
+ font-weight: 400;
811
+ color: #606266;
812
+ font-size: 14px;
813
+ }
814
+
815
+ /* 响应式优化 */
816
+ @media (max-width: 768px) {
817
+ .fullcalendar-demo[data-v-7684c35e] {
818
+ padding: 16px;
819
+ }
820
+ .demo-header[data-v-7684c35e] {
821
+ flex-direction: column;
822
+ align-items: flex-start;
823
+ gap: 16px;
824
+ }
825
+ .demo-header h2[data-v-7684c35e] {
826
+ font-size: 24px;
827
+ }
828
+ [data-v-7684c35e] .fc-header-toolbar {
829
+ flex-direction: column;
830
+ gap: 12px;
831
+ }
832
+ [data-v-7684c35e] .fc-toolbar-chunk {
833
+ width: 100%;
834
+ display: flex;
835
+ justify-content: center;
836
+ }
837
+ [data-v-7684c35e] .fc-button {
838
+ padding: 6px 12px;
839
+ font-size: 13px;
840
+ }
841
+ }
842
+
843
+ /* 事件详情 Tooltip 样式 */
844
+ [data-v-7684c35e] .event-detail-tooltip {
845
+ padding: 0 !important;
846
+ max-width: 350px;
847
+ border-radius: 8px;
848
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
849
+ }
850
+ .event-detail[data-v-7684c35e] {
851
+ display: flex;
852
+ flex-direction: column;
853
+ background: #fff;
854
+ overflow: hidden;
855
+ }
856
+ .detail-header[data-v-7684c35e] {
857
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
858
+ padding: 12px 16px;
859
+ border-bottom: none;
860
+ }
861
+ .detail-title[data-v-7684c35e] {
862
+ color: #fff;
863
+ font-size: 16px;
864
+ font-weight: 600;
865
+ line-height: 1.5;
866
+ display: block;
867
+ word-break: break-word;
868
+ }
869
+ .detail-body[data-v-7684c35e] {
870
+ padding: 16px;
871
+ display: flex;
872
+ flex-direction: column;
873
+ gap: 12px;
874
+ background: #fff;
875
+ }
876
+ .detail-item[data-v-7684c35e] {
877
+ display: flex;
878
+ align-items: flex-start;
879
+ gap: 8px;
880
+ font-size: 13px;
881
+ line-height: 1.6;
882
+ padding: 4px 0;
883
+ }
884
+ .detail-item[data-v-7684c35e]:not(:last-child) {
885
+ border-bottom: 1px solid #f0f0f0;
886
+ padding-bottom: 12px;
887
+ }
888
+ .detail-label[data-v-7684c35e] {
889
+ color: #606266;
890
+ font-weight: 500;
891
+ white-space: nowrap;
892
+ min-width: 80px;
893
+ display: flex;
894
+ align-items: center;
895
+ gap: 4px;
896
+ flex-shrink: 0;
897
+ }
898
+ .detail-icon[data-v-7684c35e] {
899
+ font-size: 14px;
900
+ color: #909399;
901
+ margin-right: 2px;
902
+ }
903
+ .detail-value[data-v-7684c35e] {
904
+ color: #303133;
905
+ flex: 1;
906
+ word-break: break-word;
907
+ line-height: 1.6;
908
+ }
909
+ .detail-value.description-text[data-v-7684c35e] {
910
+ color: #606266;
911
+ font-size: 12px;
912
+ line-height: 1.6;
913
+ white-space: pre-wrap;
914
+ max-height: 100px;
915
+ overflow-y: auto;
916
+ padding: 8px 12px;
917
+ background: #f5f7fa;
918
+ border-radius: 4px;
919
+ border: 1px solid #e4e7ed;
920
+ }
921
+
922
+ /* Tooltip 箭头样式优化 */
923
+ [data-v-7684c35e] .el-popper.is-light .el-popper__arrow::before {
924
+ border: 1px solid #e4e7ed;
925
+ background: #fff;
926
+ }