n20-common-lib 3.0.70 → 3.0.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,931 +1,518 @@
1
- /* v3 版本 TablePro 样式 - 使用独特前缀实现样式隔离 */
2
- .v3-table-pro-wrapper {
3
- /* Element UI 表格基础样式 */
4
- .el-table--small {
5
- font-size: 14px;
6
- }
7
-
8
- .el-table--mini {
9
- font-size: 12px;
10
- }
11
-
12
- .el-table th {
13
- font-weight: $--font-weight-primary;
14
- }
15
-
16
- .el-table--small .el-table__cell {
17
- padding: 8px 0;
18
- }
19
-
20
- .el-table .cell {
21
- padding-left: 8px;
22
- padding-right: 8px;
23
- }
24
-
25
- .el-table--small,
26
- .el-table--mini {
27
- .el-table__cell {
28
- .el-button--text {
29
- padding-top: 2px;
30
- padding-bottom: 2px;
31
- }
32
-
33
- .el-link {
34
- line-height: initial;
35
- }
36
- }
37
- }
38
-
39
- .el-table--mini {
40
- .el-table__cell {
41
- padding: 2px 0;
42
-
43
- .cell {
44
- padding-left: 4px;
45
- padding-right: 4px;
46
- }
47
-
48
- .el-button--mini,
49
- .el-link {
50
- font-size: 12px;
51
- }
52
- }
53
- }
54
-
55
- .el-table thead {
56
- color: #333;
57
- font-family: 'PingFang SC';
58
- font-size: 14px;
59
- font-style: normal;
60
- font-weight: 500;
61
- line-height: 22px; /* 157.143% */
62
- }
63
-
64
- /* 骨架屏样式 - 仅覆盖内容区域,表头正常显示 */
65
- .table-pro-skeleton {
66
- position: absolute;
67
- top: 40px; /* 表头高度,small 尺寸约 40px */
68
- left: 0;
69
- right: 0;
70
- bottom: 0;
71
- height: calc(100% - 40px);
72
- background: #fff;
73
- z-index: 100;
74
- overflow: hidden;
75
- padding: 0;
76
- }
77
-
78
- .skeleton-row {
79
- display: flex;
80
- align-items: center;
81
- height: 36px;
82
- border-bottom: 1px solid #f0f0f0;
83
- padding: 0 8px;
84
- }
85
-
86
- .skeleton-cell {
87
- height: 14px;
88
- background: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 50%, #f2f2f2 75%);
89
- background-size: 200% 100%;
90
- animation: skeleton-loading 1.5s infinite;
91
- border-radius: 4px;
92
- margin: 0 8px;
93
- flex: 1;
94
- }
95
-
96
- .skeleton-checkbox {
97
- width: 16px;
98
- height: 16px;
99
- flex: 0 0 16px;
100
- margin-left: 12px;
101
- margin-right: 16px;
102
- }
103
-
104
- @keyframes skeleton-loading {
105
- 0% {
106
- background-position: 200% 0;
107
- }
108
- 100% {
109
- background-position: -200% 0;
110
- }
111
- }
112
-
113
- /* 不同尺寸的表头高度适配 */
114
- &:has(.vxe-table--render-default.size--mini) .table-pro-skeleton {
115
- top: 36px;
116
- height: calc(100% - 36px);
117
- }
118
-
119
- &:has(.vxe-table--render-default.size--medium) .table-pro-skeleton {
120
- top: 44px;
121
- height: calc(100% - 44px);
122
- }
123
-
124
- /* Element UI 表格排序图标 */
125
- .el-table {
126
- .caret-wrapper {
127
- display: inline-flex;
128
- flex-direction: row-reverse;
129
- align-items: center;
130
- width: 16px;
131
- height: 16px;
132
- line-height: 16px;
133
- vertical-align: middle;
134
- }
135
-
136
- .sort-caret.ascending,
137
- .sort-caret.descending {
138
- width: 8px;
139
- height: 16px;
140
- border: none;
141
- font-style: normal;
142
- position: static;
143
-
144
- &:hover {
145
- color: $--color-primary-light-6;
146
- }
147
-
148
- &:before {
149
- content: '\e61c';
150
- font-family: 'core-lib-iconfont';
151
- font-size: 12px;
152
- line-height: 12px;
153
- position: relative;
154
- right: 3px;
155
- bottom: 1px;
156
- }
157
- }
158
-
159
- .sort-caret.descending:before {
160
- content: '\e61d';
161
- position: relative;
162
- right: 1px;
163
- bottom: 1px;
164
- }
165
-
166
- .ascending .sort-caret.ascending,
167
- .descending .sort-caret.descending {
168
- color: $--color-primary;
169
- }
170
- }
171
-
172
- /* 过滤器样式 */
173
- .el-table-filter__bottom {
174
- text-align: center;
175
- }
176
-
177
- .el-table__column-filter-trigger {
178
- height: 16px;
179
- line-height: 16px;
180
- vertical-align: middle;
181
- position: relative;
182
- bottom: 1px;
183
-
184
- i {
185
- font-size: 16px;
186
- transform: scale(1);
187
- }
188
- }
189
-
190
- .table-header-popover.el-popover {
191
- padding: 16px;
192
- }
193
-
194
- /* 附件上传hover颜色 */
195
- .base-table_default {
196
- .el-table__body .hover-active:hover > td {
197
- background-color: #ff3c2f10 !important;
198
- }
199
- }
200
-
201
- /* vxe-table 样式 */
202
- .vxe-table {
203
- .vxe-table--column {
204
- &__icon {
205
- font-size: 11px;
206
- color: #88909b;
207
- border: none;
208
- font-style: normal;
209
- position: static;
210
- cursor: pointer;
211
- width: 12px;
212
- height: 12px;
213
- line-height: 12px;
214
- }
215
- }
216
-
217
- .n20-table-pro__row-checked {
218
- background-color: #e8f7ff !important;
219
- }
220
-
221
- .vxe-header--column.is--padding.fixed-column__static {
222
- font-weight: 400 !important;
223
-
224
- .vxe-cell {
225
- padding: 0 !important;
226
- }
227
-
228
- .vxe-cell--wrapper.vxe-header-cell--wrapper {
229
- justify-content: space-around;
230
-
231
- .vxe-cell--title {
232
- width: 100%;
233
-
234
- .v3-custom-fixed-header__wrapper {
235
- > * {
236
- position: relative;
237
-
238
- &::after {
239
- content: '';
240
- position: absolute;
241
- right: -75%;
242
- top: 50%;
243
- transform: translate(-50%, -50%);
244
- width: 1px;
245
- height: 12px;
246
- background: var(--border-2, #e5e6eb);
247
- }
248
-
249
- &:last-child::after {
250
- display: none;
251
- }
252
- }
253
- }
254
- }
255
- }
256
-
257
- .vxe-cell--col-resizable:before {
258
- background-color: transparent;
259
- }
260
-
261
- i {
262
- display: inline-block;
263
- font-size: 16px;
264
- color: #4e5969;
265
- cursor: pointer;
266
- }
267
- }
268
- }
269
-
270
- .vxe-table--render-default.size--small .vxe-body--column.is--padding .vxe-cell {
271
- padding: 8px 6px !important;
272
- }
273
-
274
- /* 悬浮按钮组样式 */
275
- .table-hover-btns {
276
- position: absolute;
277
- right: 0;
278
- display: flex;
279
- align-items: center;
280
- justify-content: flex-end;
281
- padding: 0 12px;
282
- z-index: 10;
283
- pointer-events: auto;
284
-
285
- .hover-btns-wrapper {
286
- display: flex;
287
- align-items: center;
288
- gap: 4px;
289
- white-space: nowrap;
290
- }
291
-
292
- .hover-btns-more {
293
- margin-left: 4px;
294
- }
295
-
296
- .color-danger {
297
- color: #f56c6c;
298
- }
299
- }
300
-
301
- /* 过渡动画 */
302
- .hover-btns-fade-enter-active,
303
- .hover-btns-fade-leave-active {
304
- transition: opacity 0.2s ease, transform 0.2s ease;
305
- }
306
-
307
- .hover-btns-fade-enter,
308
- .hover-btns-fade-leave-to {
309
- opacity: 0;
310
- transform: translateX(10px);
311
- }
312
-
313
- .hover-btns-fade-enter-to,
314
- .hover-btns-fade-leave {
315
- opacity: 1;
316
- transform: translateX(0);
317
- }
318
-
319
- .vxe-table.vxe-table--render-default.border--none,
320
- .vxe-table.vxe-table--render-default.border--inner .vxe-cell--col-resizable:before {
321
- background-color: transparent;
322
- }
323
-
324
- .vxe-table .vxe-cell--sort {
325
- display: inline-flex !important;
326
- flex-direction: column !important;
327
- align-items: center !important;
328
- justify-content: center !important;
329
- font-size: 8px !important;
330
- cursor: pointer;
331
-
332
- .vxe-sort--asc-btn,
333
- .vxe-sort--desc-btn {
334
- width: 10px;
335
- height: 8px !important;
336
- line-height: 1;
337
- color: #88909b;
338
- border: none;
339
- font-style: normal;
340
- position: static;
341
- }
342
- }
343
-
344
- .vxe-header--row {
345
- color: var(--text-1, #1d2129);
346
- font-family: 'PingFang SC';
347
- font-size: 14px;
348
- font-style: normal;
349
- font-weight: 500;
350
- line-height: 22px;
351
- background-color: #f5f5f5;
352
- }
353
-
354
- .vxe-cell--filter .vxe-filter--btn {
355
- color: #666;
356
- font-weight: $--font-weight-primary;
357
- cursor: pointer;
358
- font-size: 16px;
359
- }
360
-
361
- .is--filter-active .vxe-cell--filter .vxe-filter--btn {
362
- color: $--color-primary;
363
- }
364
-
365
- .is--filter-active .vxe-cell--title {
366
- color: $--color-primary;
367
- }
368
-
369
- .vxe-table--render-default.size--small {
370
- font-size: 14px !important;
371
- }
372
-
373
- .vxe-table--render-default.size--mini {
374
- font-size: 14px !important;
375
- }
376
-
377
- .vxe-header-column__right {
378
- display: flex;
379
- flex-direction: row-reverse;
380
- align-items: center;
381
- }
382
-
383
- .vxe-header--row th,
384
- th.vxe-header--column {
385
- position: relative;
386
- }
387
-
388
- .vxe-table--tooltip-wrapper {
389
- z-index: 9999 !important;
390
- }
391
-
392
- .cell-default-set--
393
- .vxe-table--body-wrapper
394
- .vxe-body--row
395
- .vxe-body--column
396
- .vxe-cell
397
- .vxe-cell--label:empty::before {
398
- content: '--';
399
- }
400
-
401
- .n20-table-pro.vxe-table--render-default {
402
- color: var(--text-1, #1d2129);
403
- font-family: 'PingFang SC';
404
- font-size: 14px;
405
- font-style: normal;
406
- font-weight: 400;
407
- line-height: 22px;
408
- }
409
-
410
- .vxe-table-custom-wrap.vxe-body--column.col--ellipsis:not(.col--actived) > .vxe-cell,
411
- .vxe-table--render-default .vxe-table-custom-wrap.vxe-footer--column.col--ellipsis:not(.col--actived) > .vxe-cell,
412
- .vxe-table--render-default .vxe-table-custom-wrap.vxe-header--column.col--ellipsis:not(.col--actived) > .vxe-cell {
413
- overflow: hidden;
414
- text-overflow: ellipsis;
415
- white-space: wrap !important;
416
- }
417
-
418
- .vxe-table--render-default.size--small .vxe-table-custom-wrap.vxe-body--column.col--ellipsis > .vxe-cell,
419
- .vxe-table--render-default.size--small .vxe-table-custom-wrap.vxe-footer--column.col--ellipsis > .vxe-cell,
420
- .vxe-table--render-default.size--small .vxe-table-custom-wrap.vxe-header--column.col--ellipsis > .vxe-cell {
421
- max-height: 100%;
422
- }
423
-
424
- /* 表格设置尺寸按钮 */
425
- .el-table div.hidden-columns {
426
- visibility: initial;
427
- position: initial;
428
- height: 0;
429
- width: 0;
430
-
431
- > * {
432
- visibility: hidden;
433
- }
434
-
435
- > .el-table-set-size {
436
- visibility: initial;
437
- }
438
- }
439
-
440
- .el-table-set-size {
441
- box-sizing: border-box;
442
- width: 6px;
443
- height: 40px;
444
- border-radius: 4px 0 0 4px;
445
- background: var(--primary-6, #007aff);
446
- position: absolute;
447
- top: 0;
448
- right: 0;
449
- z-index: 9;
450
- overflow: hidden;
451
- transition: all 0.3s;
452
- cursor: pointer;
453
-
454
- &::before {
455
- content: '';
456
- position: absolute;
457
- width: 100%;
458
- height: 100%;
459
- background: $--color-primary;
460
- opacity: 0.7;
461
- }
462
-
463
- &:hover {
464
- width: var(--hover-width, 112px);
465
- }
466
-
467
- &-item {
468
- display: flex;
469
- align-items: center;
470
- justify-content: space-around;
471
- width: 36px;
472
- border-radius: 4px;
473
- color: $--color-white;
474
- z-index: 1;
475
- cursor: pointer;
476
- position: relative;
477
-
478
- /* 右侧垂直分割线 */
479
- &:not(:last-child)::after {
480
- content: '';
481
- position: absolute;
482
- right: 0;
483
- top: 50%;
484
- transform: translateY(-50%);
485
- width: 1px;
486
- height: 12px;
487
- background: var(--fill-7, rgba(0, 0, 0, 0.12));
488
- }
489
-
490
- .icon-small,
491
- .icon-mini {
492
- display: block;
493
- width: 16px;
494
- height: 16px;
495
- margin: 4px auto 0;
496
- }
497
-
498
- .icon-small {
499
- background-size: 100% 100%;
500
- }
501
-
502
- .icon-mini {
503
- background-size: 100% 100%;
504
- }
505
-
506
- .text-small,
507
- .text-mini {
508
- margin-top: 3px;
509
- line-height: 12px;
510
- font-size: 12px;
511
- text-align: center;
512
- transform: scale(0.667);
513
- transform-origin: 50% 0;
514
- }
515
- }
516
- }
517
-
518
- .el-table th.el-table__cell > .cell {
519
- overflow: hidden;
520
- text-overflow: ellipsis;
521
- white-space: nowrap;
522
- }
523
- }
524
-
525
- .el-table {
526
- /* 排序 */
527
- .caret-wrapper {
528
- display: inline-flex;
529
- flex-direction: row-reverse;
530
- align-items: center;
531
- width: 16px;
532
- height: 16px;
533
- line-height: 16px;
534
- vertical-align: middle;
535
- }
536
-
537
- .sort-caret.ascending,
538
- .sort-caret.descending {
539
- width: 8px;
540
- height: 16px;
541
- border: none;
542
- font-style: normal;
543
- position: static;
544
-
545
- &:hover {
546
- color: $--color-primary-light-6;
547
- }
548
-
549
- &:before {
550
- content: '\e61c';
551
- font-family: 'core-lib-iconfont';
552
- font-size: 12px;
553
- line-height: 12px;
554
- position: relative;
555
- right: 3px;
556
- bottom: 1px;
557
- }
558
- }
559
-
560
- .sort-caret.descending:before {
561
- content: '\e61d';
562
- position: relative;
563
- right: 1px;
564
- bottom: 1px;
565
- }
566
-
567
- .ascending .sort-caret.ascending,
568
- .descending .sort-caret.descending {
569
- color: $--color-primary;
570
- }
571
- }
572
-
573
- /* 过滤 */
574
- .el-table-filter__bottom {
575
- text-align: center;
576
- }
577
-
578
- .el-table__column-filter-trigger {
579
- height: 16px;
580
- line-height: 16px;
581
- vertical-align: middle;
582
- position: relative;
583
- bottom: 1px;
584
-
585
- i {
586
- font-size: 16px;
587
- transform: scale(1);
588
- }
589
- }
590
-
591
- .table-header-popover.el-popover {
592
- padding: 16px;
593
- }
594
-
595
- /* 附件上传hover颜色 */
596
- .base-table_default {
597
- .el-table__body .hover-active:hover > td {
598
- background-color: #ff3c2f10 !important;
599
- }
600
- }
601
-
602
- .vxe-table {
603
- .vxe-table--column {
604
- &__icon {
605
- font-size: 11px;
606
- color: #88909b;
607
- border: none;
608
- font-style: normal;
609
- position: static;
610
- cursor: pointer;
611
- width: 12px;
612
- height: 12px;
613
- line-height: 12px;
614
- }
615
- }
616
- .n20-table-pro__row-checked {
617
- background-color: #e8f7ff !important;
618
- }
619
- .vxe-header--column.is--padding.fixed-column__static {
620
- font-weight: 400 !important;
621
- .vxe-cell {
622
- padding: 0 !important;
623
- }
624
- .vxe-cell--wrapper.vxe-header-cell--wrapper {
625
- justify-content: space-around;
626
- .vxe-cell--title {
627
- width: 100%;
628
- .v3-custom-fixed-header__wrapper {
629
- > * {
630
- position: relative;
631
- &::after {
632
- content: '';
633
- position: absolute;
634
- right: -75%;
635
- top: 50%;
636
- transform: translate(-50%, -50%);
637
- width: 1px;
638
- height: 12px;
639
- background: var(--border-2, #e5e6eb);
640
- }
641
- &:last-child::after {
642
- display: none;
643
- }
644
- }
645
- }
646
- }
647
- }
648
- .vxe-cell--col-resizable:before {
649
- background-color: transparent;
650
- }
651
-
652
- i {
653
- display: inline-block;
654
- font-size: 16px;
655
- color: #4e5969;
656
- cursor: pointer;
657
- }
658
- }
659
- }
660
-
661
- .vxe-table--render-default.size--small .vxe-body--column.is--padding .vxe-cell {
662
- padding: 8px 6px !important;
663
- }
664
-
665
- /* 悬浮按钮组样式 */
666
- .table-hover-btns {
667
- position: absolute;
668
- right: 0;
669
- display: flex;
670
- align-items: center;
671
- justify-content: flex-end;
672
- padding: 0 12px;
673
- z-index: 10;
674
- pointer-events: auto;
675
-
676
- .hover-btns-wrapper {
677
- display: flex;
678
- align-items: center;
679
- gap: 4px;
680
- white-space: nowrap;
681
- }
682
-
683
- .hover-btns-more {
684
- margin-left: 4px;
685
- }
686
-
687
- .color-danger {
688
- color: #f56c6c;
689
- }
690
- }
691
-
692
- /* 过渡动画 */
693
- .hover-btns-fade-enter-active,
694
- .hover-btns-fade-leave-active {
695
- // transition: opacity 0.2s ease, transform 0.2s ease;
696
- }
697
-
698
- .hover-btns-fade-enter,
699
- .hover-btns-fade-leave-to {
700
- opacity: 0;
701
- transform: translateX(10px);
702
- }
703
-
704
- .hover-btns-fade-enter-to,
705
- .hover-btns-fade-leave {
706
- opacity: 1;
707
- transform: translateX(0);
708
- }
709
-
710
- .vxe-table.vxe-table--render-default.border--none,
711
- .vxe-table.vxe-table--render-default.border--inner .vxe-cell--col-resizable:before {
712
- // background-color: transparent;
713
- }
714
-
715
- .vxe-table .vxe-cell--sort {
716
- display: inline-flex !important;
717
- flex-direction: column !important;
718
- align-items: center !important;
719
- justify-content: center !important;
720
- font-size: 8px !important;
721
-
722
- cursor: pointer;
723
-
724
- .vxe-sort--asc-btn,
725
- .vxe-sort--desc-btn {
726
- width: 10px;
727
- height: 8px !important;
728
- line-height: 1;
729
- color: #88909b;
730
- border: none;
731
- font-style: normal;
732
- position: static;
733
- }
734
- }
735
-
736
- .vxe-header--row {
737
- color: var(--text-1, #1d2129);
738
- /* 14/CN-Medium */
739
- font-family: 'PingFang SC';
740
- font-size: 14px;
741
- font-style: normal;
742
- font-weight: 500;
743
- line-height: 22px; /* 157.143% */
744
- background-color: #f5f5f5;
745
- }
746
-
747
- .vxe-cell--filter .vxe-filter--btn {
748
- color: #666;
749
- font-weight: $--font-weight-primary;
750
- cursor: pointer;
751
- font-size: 16px;
752
- }
753
-
754
- .is--filter-active .vxe-cell--filter .vxe-filter--btn {
755
- color: $--color-primary;
756
- }
757
-
758
- .is--filter-active .vxe-cell--title {
759
- color: $--color-primary;
760
- }
761
-
762
- .vxe-table--render-default.size--small {
763
- font-size: 14px !important;
764
- }
765
-
766
- .vxe-table--render-default.size--mini {
767
- font-size: 14px !important;
768
- }
769
-
770
- .vxe-header-column__right {
771
- display: flex;
772
- flex-direction: row-reverse;
773
- align-items: center;
774
- }
775
-
776
- .vxe-header--row th,
777
- th.vxe-header--column {
778
- position: relative;
779
- }
780
-
781
- .vxe-table--tooltip-wrapper {
782
- z-index: 9999 !important;
783
- }
784
-
785
- .cell-default-set-- .vxe-table--body-wrapper .vxe-body--row .vxe-body--column .vxe-cell .vxe-cell--label:empty::before {
786
- content: '--';
787
- }
788
-
789
- .n20-table-pro.vxe-table--render-default {
790
- color: var(--text-1, #1d2129);
791
- /* 14/CN-Regular */
792
- font-family: 'PingFang SC';
793
- font-size: 14px;
794
- font-style: normal;
795
- font-weight: 400;
796
- line-height: 22px; /* 157.143% */
797
- }
798
-
799
- .vxe-table-custom-wrap.vxe-body--column.col--ellipsis:not(.col--actived) > .vxe-cell,
800
- .vxe-table--render-default .vxe-table-custom-wrap.vxe-footer--column.col--ellipsis:not(.col--actived) > .vxe-cell,
801
- .vxe-table--render-default .vxe-table-custom-wrap.vxe-header--column.col--ellipsis:not(.col--actived) > .vxe-cell {
802
- overflow: hidden;
803
- text-overflow: ellipsis;
804
- white-space: wrap !important;
805
- }
806
-
807
- .vxe-table--render-default.size--small .vxe-table-custom-wrap.vxe-body--column.col--ellipsis > .vxe-cell,
808
- .vxe-table--render-default.size--small .vxe-table-custom-wrap.vxe-footer--column.col--ellipsis > .vxe-cell,
809
- .vxe-table--render-default.size--small .vxe-table-custom-wrap.vxe-header--column.col--ellipsis > .vxe-cell {
810
- max-height: 100%;
811
- }
812
-
813
- // .vxe-header--column {
814
- // .vxe-cell {
815
- // justify-content: center !important;
816
- // }
817
- // }
818
-
819
- .el-table div.hidden-columns {
820
- visibility: initial;
821
- position: initial;
822
- height: 0;
823
- width: 0;
824
-
825
- > * {
826
- visibility: hidden;
827
- }
828
- > .el-table-set-size {
829
- visibility: initial;
830
- }
831
- }
832
- .el-table-set-size {
833
- box-sizing: border-box;
834
- width: 6px;
835
- height: 40px;
836
- border-radius: 4px 0 0 4px;
837
- background: var(--primary-6, #007aff);
838
- position: absolute;
839
- top: 0;
840
- right: 0;
841
- z-index: 9;
842
- overflow: hidden;
843
- transition: all 0.3s;
844
- cursor: pointer;
845
- &::before {
846
- content: '';
847
- position: absolute;
848
- width: 100%;
849
- height: 100%;
850
- background: $--color-primary;
851
- opacity: 0.7;
852
- }
853
-
854
- &:hover {
855
- width: var(--hover-width, 112px);
856
- }
857
-
858
- &-item {
859
- display: flex;
860
- align-items: center;
861
- justify-content: space-around;
862
- width: 36px;
863
- // height: 34px;
864
- border-radius: 4px;
865
- color: $--color-white;
866
- z-index: 1;
867
- cursor: pointer;
868
- position: relative;
869
-
870
- /* 右侧垂直分割线 */
871
- &:not(:last-child)::after {
872
- content: '';
873
- position: absolute;
874
- right: 0;
875
- top: 50%;
876
- transform: translateY(-50%);
877
- width: 1px;
878
- height: 12px;
879
- background: var(--fill-7, rgba(0, 0, 0, 0.12));
880
- }
881
-
882
- // &:hover {
883
- // background: $--color-primary;
884
- // }
885
- // &.active {
886
- // background: $--color-primary-hover;
887
- // }
888
-
889
- .icon-small,
890
- .icon-mini {
891
- display: block;
892
- width: 16px;
893
- height: 16px;
894
- margin: 4px auto 0;
895
- }
896
- .icon-small {
897
- background-size: 100% 100%;
898
- }
899
- .icon-mini {
900
- background-size: 100% 100%;
901
- }
902
- .text-small,
903
- .text-mini {
904
- margin-top: 3px;
905
- line-height: 12px;
906
- font-size: 12px;
907
- text-align: center;
908
- transform: scale(0.667);
909
- transform-origin: 50% 0;
910
- }
911
- }
912
- }
913
-
914
- // .el-table-set-size-item {
915
- // display: flex;
916
- // justify-content: center;
917
- // align-items: center;
918
- // .icon-mini {
919
- // background-image: url('../../components/TableSetSize/small.png');
920
- // }
921
-
922
- // .icon-mini {
923
- // background-image: url('../../components/TableSetSize/mini.png');
924
- // }
925
- // }
926
-
927
- .el-table th.el-table__cell > .cell {
928
- overflow: hidden;
929
- text-overflow: ellipsis;
930
- white-space: nowrap;
931
- }
1
+ /* v3 版本 TablePro 样式 - 使用独特前缀实现样式隔离 */
2
+ .v3-table-pro-wrapper {
3
+ /* Element UI 表格基础样式 */
4
+ .el-table--small {
5
+ font-size: 14px;
6
+ }
7
+
8
+ .el-table--mini {
9
+ font-size: 12px;
10
+ }
11
+
12
+ .el-table th {
13
+ font-weight: $--font-weight-primary;
14
+ }
15
+
16
+ .el-table--small .el-table__cell {
17
+ padding: 8px 0;
18
+ }
19
+
20
+ .el-table .cell {
21
+ padding-left: 8px;
22
+ padding-right: 8px;
23
+ }
24
+
25
+ .el-table--small,
26
+ .el-table--mini {
27
+ .el-table__cell {
28
+ .el-button--text {
29
+ padding-top: 2px;
30
+ padding-bottom: 2px;
31
+ }
32
+
33
+ .el-link {
34
+ line-height: initial;
35
+ }
36
+ }
37
+ }
38
+
39
+ .el-table--mini {
40
+ .el-table__cell {
41
+ padding: 2px 0;
42
+
43
+ .cell {
44
+ padding-left: 4px;
45
+ padding-right: 4px;
46
+ }
47
+
48
+ .el-button--mini,
49
+ .el-link {
50
+ font-size: 12px;
51
+ }
52
+ }
53
+ }
54
+
55
+ .el-table thead {
56
+ color: #333;
57
+ font-family: 'PingFang SC';
58
+ font-size: 14px;
59
+ font-style: normal;
60
+ font-weight: 500;
61
+ line-height: 22px;
62
+ }
63
+
64
+ /* 骨架屏样式 - 仅覆盖内容区域,表头正常显示 */
65
+ .table-pro-skeleton {
66
+ position: absolute;
67
+ top: 40px;
68
+ left: 0;
69
+ right: 0;
70
+ bottom: 0;
71
+ height: calc(100% - 40px);
72
+ background: #fff;
73
+ z-index: 100;
74
+ overflow: hidden;
75
+ padding: 0;
76
+ }
77
+
78
+ .skeleton-row {
79
+ display: flex;
80
+ align-items: center;
81
+ height: 36px;
82
+ border-bottom: 1px solid #f0f0f0;
83
+ padding: 0 8px;
84
+ }
85
+
86
+ .skeleton-cell {
87
+ height: 14px;
88
+ background: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 50%, #f2f2f2 75%);
89
+ background-size: 200% 100%;
90
+ animation: skeleton-loading 1.5s infinite;
91
+ border-radius: 4px;
92
+ margin: 0 8px;
93
+ flex: 1;
94
+ }
95
+
96
+ .skeleton-checkbox {
97
+ width: 16px;
98
+ height: 16px;
99
+ flex: 0 0 16px;
100
+ margin-left: 12px;
101
+ margin-right: 16px;
102
+ }
103
+
104
+ @keyframes skeleton-loading {
105
+ 0% {
106
+ background-position: 200% 0;
107
+ }
108
+ 100% {
109
+ background-position: -200% 0;
110
+ }
111
+ }
112
+
113
+ /* 不同尺寸的表头高度适配 */
114
+ &:has(.vxe-table--render-default.size--mini) .table-pro-skeleton {
115
+ top: 36px;
116
+ height: calc(100% - 36px);
117
+ }
118
+
119
+ &:has(.vxe-table--render-default.size--medium) .table-pro-skeleton {
120
+ top: 44px;
121
+ height: calc(100% - 44px);
122
+ }
123
+
124
+ /* Element UI 表格排序图标 */
125
+ .el-table {
126
+ .caret-wrapper {
127
+ display: inline-flex;
128
+ flex-direction: row-reverse;
129
+ align-items: center;
130
+ width: 16px;
131
+ height: 16px;
132
+ line-height: 16px;
133
+ vertical-align: middle;
134
+ }
135
+
136
+ .sort-caret.ascending,
137
+ .sort-caret.descending {
138
+ width: 8px;
139
+ height: 16px;
140
+ border: none;
141
+ font-style: normal;
142
+ position: static;
143
+
144
+ &:hover {
145
+ color: $--color-primary-light-6;
146
+ }
147
+
148
+ &:before {
149
+ content: '\e61c';
150
+ font-family: 'core-lib-iconfont';
151
+ font-size: 12px;
152
+ line-height: 12px;
153
+ position: relative;
154
+ right: 3px;
155
+ bottom: 1px;
156
+ }
157
+ }
158
+
159
+ .sort-caret.descending:before {
160
+ content: '\e61d';
161
+ position: relative;
162
+ right: 1px;
163
+ bottom: 1px;
164
+ }
165
+
166
+ .ascending .sort-caret.ascending,
167
+ .descending .sort-caret.descending {
168
+ color: $--color-primary;
169
+ }
170
+ }
171
+
172
+ /* 过滤器样式 */
173
+ .el-table-filter__bottom {
174
+ text-align: center;
175
+ }
176
+
177
+ .el-table__column-filter-trigger {
178
+ height: 16px;
179
+ line-height: 16px;
180
+ vertical-align: middle;
181
+ position: relative;
182
+ bottom: 1px;
183
+
184
+ i {
185
+ font-size: 16px;
186
+ transform: scale(1);
187
+ }
188
+ }
189
+
190
+ .table-header-popover.el-popover {
191
+ padding: 16px;
192
+ }
193
+
194
+ /* 附件上传hover颜色 */
195
+ .base-table_default {
196
+ .el-table__body .hover-active:hover > td {
197
+ background-color: #ff3c2f10 !important;
198
+ }
199
+ }
200
+
201
+ /* vxe-table 样式 */
202
+ .vxe-table {
203
+ .vxe-table--column {
204
+ &__icon {
205
+ font-size: 11px;
206
+ color: #88909b;
207
+ border: none;
208
+ font-style: normal;
209
+ position: static;
210
+ cursor: pointer;
211
+ width: 12px;
212
+ height: 12px;
213
+ line-height: 12px;
214
+ }
215
+ }
216
+
217
+ .n20-table-pro__row-checked {
218
+ background-color: #e8f7ff !important;
219
+ }
220
+
221
+ .vxe-header--column.is--padding.fixed-column__static {
222
+ font-weight: 400 !important;
223
+
224
+ .vxe-cell {
225
+ padding: 0 !important;
226
+ }
227
+
228
+ .vxe-cell--wrapper.vxe-header-cell--wrapper {
229
+ justify-content: space-around;
230
+
231
+ .vxe-cell--title {
232
+ width: 100%;
233
+
234
+ .v3-custom-fixed-header__wrapper {
235
+ > * {
236
+ position: relative;
237
+
238
+ &::after {
239
+ content: '';
240
+ position: absolute;
241
+ right: -75%;
242
+ top: 50%;
243
+ transform: translate(-50%, -50%);
244
+ width: 1px;
245
+ height: 12px;
246
+ background: var(--border-2, #e5e6eb);
247
+ }
248
+
249
+ &:last-child::after {
250
+ display: none;
251
+ }
252
+ }
253
+ }
254
+ }
255
+ }
256
+
257
+ .vxe-cell--col-resizable:before {
258
+ background-color: transparent;
259
+ }
260
+
261
+ i {
262
+ display: inline-block;
263
+ font-size: 16px;
264
+ color: #4e5969;
265
+ cursor: pointer;
266
+ }
267
+ }
268
+ }
269
+
270
+ .vxe-table--render-default.size--small .vxe-body--column.is--padding .vxe-cell {
271
+ padding: 8px 6px !important;
272
+ }
273
+
274
+ /* 悬浮按钮组样式 */
275
+ .table-hover-btns {
276
+ position: absolute;
277
+ right: 0;
278
+ display: flex;
279
+ align-items: center;
280
+ justify-content: flex-end;
281
+ padding: 0 12px;
282
+ z-index: 10;
283
+ pointer-events: auto;
284
+
285
+ .hover-btns-wrapper {
286
+ display: flex;
287
+ align-items: center;
288
+ gap: 4px;
289
+ white-space: nowrap;
290
+ }
291
+
292
+ .hover-btns-more {
293
+ margin-left: 4px;
294
+ }
295
+
296
+ .color-danger {
297
+ color: #f56c6c;
298
+ }
299
+ }
300
+
301
+ /* 过渡动画 */
302
+ .hover-btns-fade-enter-active,
303
+ .hover-btns-fade-leave-active {
304
+ transition: opacity 0.2s ease, transform 0.2s ease;
305
+ }
306
+
307
+ .hover-btns-fade-enter,
308
+ .hover-btns-fade-leave-to {
309
+ opacity: 0;
310
+ transform: translateX(10px);
311
+ }
312
+
313
+ .hover-btns-fade-enter-to,
314
+ .hover-btns-fade-leave {
315
+ opacity: 1;
316
+ transform: translateX(0);
317
+ }
318
+
319
+ .vxe-table.vxe-table--render-default.border--none,
320
+ .vxe-table.vxe-table--render-default.border--inner .vxe-cell--col-resizable:before {
321
+ background-color: transparent;
322
+ }
323
+
324
+ .vxe-table .vxe-cell--sort {
325
+ display: inline-flex !important;
326
+ flex-direction: column !important;
327
+ align-items: center !important;
328
+ justify-content: center !important;
329
+ font-size: 8px !important;
330
+ cursor: pointer;
331
+
332
+ .vxe-sort--asc-btn,
333
+ .vxe-sort--desc-btn {
334
+ width: 10px;
335
+ height: 8px !important;
336
+ line-height: 1;
337
+ color: #88909b;
338
+ border: none;
339
+ font-style: normal;
340
+ position: static;
341
+ }
342
+ }
343
+
344
+ .vxe-header--row {
345
+ color: var(--text-1, #1d2129);
346
+ font-family: 'PingFang SC';
347
+ font-size: 14px;
348
+ font-style: normal;
349
+ font-weight: 500;
350
+ line-height: 22px;
351
+ background-color: #f5f5f5;
352
+ }
353
+
354
+ .vxe-cell--filter .vxe-filter--btn {
355
+ color: #666;
356
+ font-weight: $--font-weight-primary;
357
+ cursor: pointer;
358
+ font-size: 16px;
359
+ }
360
+
361
+ .is--filter-active .vxe-cell--filter .vxe-filter--btn {
362
+ color: $--color-primary;
363
+ }
364
+
365
+ .is--filter-active .vxe-cell--title {
366
+ color: $--color-primary;
367
+ }
368
+
369
+ .vxe-table--render-default.size--small {
370
+ font-size: 14px !important;
371
+ }
372
+
373
+ .vxe-table--render-default.size--mini {
374
+ font-size: 14px !important;
375
+ }
376
+
377
+ .vxe-header-column__right {
378
+ display: flex;
379
+ flex-direction: row-reverse;
380
+ align-items: center;
381
+ }
382
+
383
+ .vxe-header--row th,
384
+ th.vxe-header--column {
385
+ position: relative;
386
+ }
387
+
388
+ .vxe-table--tooltip-wrapper {
389
+ z-index: 9999 !important;
390
+ }
391
+
392
+ .cell-default-set-- .vxe-table--body-wrapper .vxe-body--row .vxe-body--column .vxe-cell .vxe-cell--label:empty::before {
393
+ content: '--';
394
+ }
395
+
396
+ .n20-table-pro.vxe-table--render-default {
397
+ color: var(--text-1, #1d2129);
398
+ font-family: 'PingFang SC';
399
+ font-size: 14px;
400
+ font-style: normal;
401
+ font-weight: 400;
402
+ line-height: 22px;
403
+ }
404
+
405
+ .vxe-table-custom-wrap.vxe-body--column.col--ellipsis:not(.col--actived) > .vxe-cell,
406
+ .vxe-table--render-default .vxe-table-custom-wrap.vxe-footer--column.col--ellipsis:not(.col--actived) > .vxe-cell,
407
+ .vxe-table--render-default .vxe-table-custom-wrap.vxe-header--column.col--ellipsis:not(.col--actived) > .vxe-cell {
408
+ overflow: hidden;
409
+ text-overflow: ellipsis;
410
+ white-space: wrap !important;
411
+ }
412
+
413
+ .vxe-table--render-default.size--small .vxe-table-custom-wrap.vxe-body--column.col--ellipsis > .vxe-cell,
414
+ .vxe-table--render-default.size--small .vxe-table-custom-wrap.vxe-footer--column.col--ellipsis > .vxe-cell,
415
+ .vxe-table--render-default.size--small .vxe-table-custom-wrap.vxe-header--column.col--ellipsis > .vxe-cell {
416
+ max-height: 100%;
417
+ }
418
+
419
+ /* 表格设置尺寸按钮 */
420
+ .el-table div.hidden-columns {
421
+ visibility: initial;
422
+ position: initial;
423
+ height: 0;
424
+ width: 0;
425
+
426
+ > * {
427
+ visibility: hidden;
428
+ }
429
+
430
+ > .el-table-set-size {
431
+ visibility: initial;
432
+ }
433
+ }
434
+
435
+ .el-table-set-size {
436
+ box-sizing: border-box;
437
+ width: 6px;
438
+ height: 40px;
439
+ border-radius: 4px 0 0 4px;
440
+ background: var(--primary-6, #007aff);
441
+ position: absolute;
442
+ top: 0;
443
+ right: 0;
444
+ z-index: 9;
445
+ overflow: hidden;
446
+ transition: all 0.3s;
447
+ cursor: pointer;
448
+
449
+ &::before {
450
+ content: '';
451
+ position: absolute;
452
+ width: 100%;
453
+ height: 100%;
454
+ background: $--color-primary;
455
+ opacity: 0.7;
456
+ }
457
+
458
+ &:hover {
459
+ width: var(--hover-width, 112px);
460
+ }
461
+
462
+ &-item {
463
+ display: flex;
464
+ align-items: center;
465
+ justify-content: space-around;
466
+ width: 36px;
467
+ border-radius: 4px;
468
+ color: $--color-white;
469
+ z-index: 1;
470
+ cursor: pointer;
471
+ position: relative;
472
+
473
+ /* 右侧垂直分割线 */
474
+ &:not(:last-child)::after {
475
+ content: '';
476
+ position: absolute;
477
+ right: 0;
478
+ top: 50%;
479
+ transform: translateY(-50%);
480
+ width: 1px;
481
+ height: 12px;
482
+ background: var(--fill-7, rgba(0, 0, 0, 0.12));
483
+ }
484
+
485
+ .icon-small,
486
+ .icon-mini {
487
+ display: block;
488
+ width: 16px;
489
+ height: 16px;
490
+ margin: 4px auto 0;
491
+ }
492
+
493
+ .icon-small {
494
+ background-size: 100% 100%;
495
+ }
496
+
497
+ .icon-mini {
498
+ background-size: 100% 100%;
499
+ }
500
+
501
+ .text-small,
502
+ .text-mini {
503
+ margin-top: 3px;
504
+ line-height: 12px;
505
+ font-size: 12px;
506
+ text-align: center;
507
+ transform: scale(0.667);
508
+ transform-origin: 50% 0;
509
+ }
510
+ }
511
+ }
512
+
513
+ .el-table th.el-table__cell > .cell {
514
+ overflow: hidden;
515
+ text-overflow: ellipsis;
516
+ white-space: nowrap;
517
+ }
518
+ }