UNPKG

29.6 kBSCSSView Raw
1/**Variable**/
2@import './helpers/mixin.scss';
3@import './base/checked.scss';
4@import './base/common.scss';
5@import './base/loading.scss';
6
7%DefaultColumnHeight {
8 height: $vxe-table-row-height-default;
9}
10
11%MediumColumnHeight {
12 height: $vxe-table-row-height-medium;
13}
14
15%SmallColumnHeight {
16 height: $vxe-table-row-height-small;
17}
18
19%MiniColumnHeight {
20 height: $vxe-table-row-height-mini;
21}
22
23.vxe-table-slots,
24.vxe-table--file-form {
25 display: none;
26}
27
28.vxe-table--print-frame {
29 position: fixed;
30 bottom: -100%;
31 left: -100%;
32 height: 0;
33 width: 0;
34 border: 0;
35}
36
37.vxe-table--body-wrapper {
38 scroll-behavior: auto;
39}
40.vxe-table--body-wrapper,
41.vxe-table--fixed-left-body-wrapper,
42.vxe-table--fixed-right-body-wrapper {
43 overflow-y: auto;
44 overflow-x: auto;
45}
46
47/*默认的渲染*/
48.vxe-cell,
49.vxe-table--filter-wrapper {
50 .vxe-default-input,
51 .vxe-default-textarea {
52 background-color: $vxe-table-body-background-color;
53 }
54 .vxe-default-input,
55 .vxe-default-textarea,
56 .vxe-default-select {
57 outline: 0;
58 padding: 0 2px;
59 width: 100%;
60 color: $vxe-table-font-color;
61 border-radius: $vxe-border-radius;
62 border: 1px solid $vxe-input-border-color;
63 &:focus {
64 border: 1px solid $vxe-primary-color;
65 }
66 &[disabled] {
67 cursor: not-allowed;
68 background-color: $vxe-input-disabled-background-color;
69 }
70 }
71 .vxe-default-input,
72 .vxe-default-textarea,
73 .vxe-default-select {
74 height: $vxe-input-height-default;
75 }
76 .vxe-default-input {
77 &[type="date"]::-webkit-inner-spin-button {
78 margin-top: 4px;
79 }
80 &[type="date"]::-webkit-inner-spin-button,
81 &[type="number"]::-webkit-inner-spin-button {
82 height: 24px;
83 }
84 &::placeholder {
85 color: $vxe-input-placeholder-color;
86 }
87 }
88 .vxe-default-textarea {
89 resize: none;
90 vertical-align: middle;
91 }
92 .vxe-input,
93 .vxe-textarea,
94 .vxe-select {
95 width: 100%;
96 display: block;
97 }
98 .vxe-input > .vxe-input--inner,
99 .vxe-textarea > .vxe-textarea--inner {
100 padding: 0 2px;
101 }
102 .vxe-textarea--inner,
103 .vxe-default-textarea {
104 resize: none;
105 }
106}
107
108.vxe-table--checkbox-range,
109.vxe-table--cell-main-area,
110.vxe-table--cell-extend-area,
111.vxe-table--cell-active-area,
112.vxe-table--cell-copy-area {
113 display: none;
114 position: absolute;
115 pointer-events: none;
116 z-index: 1;
117}
118
119.vxe-table--fixed-left-wrapper,
120.vxe-table--fixed-right-wrapper {
121 .vxe-table--checkbox-range,
122 .vxe-table--cell-main-area,
123 .vxe-table--cell-extend-area,
124 .vxe-table--cell-active-area,
125 .vxe-table--cell-copy-area {
126 z-index: 2;
127 }
128}
129
130.vxe-table--fixed-left-wrapper {
131 .vxe-table--cell-main-area,
132 .vxe-table--cell-extend-area,
133 .vxe-table--cell-active-area {
134 &[half="1"] {
135 border-right: 0;
136 }
137 }
138 .vxe-table--cell-copy-area {
139 &[half="1"] {
140 background-size: $vxe-table-cell-copy-area-border-width 12px, 0 12px, 12px $vxe-table-cell-copy-area-border-width, 12px $vxe-table-cell-copy-area-border-width;
141 }
142 }
143}
144
145.vxe-table--fixed-right-wrapper {
146 .vxe-table--cell-main-area,
147 .vxe-table--cell-extend-area,
148 .vxe-table--cell-active-area {
149 &[half="1"] {
150 border-left: 0;
151 }
152 }
153 .vxe-table--cell-copy-area {
154 &[half="1"] {
155 background-size: 0 12px, $vxe-table-cell-copy-area-border-width 12px, 12px $vxe-table-cell-copy-area-border-width, 12px $vxe-table-cell-copy-area-border-width;
156 }
157 }
158}
159
160/*复选框-范围选择*/
161.vxe-table--checkbox-range {
162 background-color: $vxe-table-checkbox-range-background-color;
163 border: $vxe-table-checkbox-range-border-width solid $vxe-table-checkbox-range-border-color;
164}
165
166.vxe-table--cell-area {
167 height: 0;
168 font-size: 0;
169 display: none;
170 & > .vxe-table--cell-main-area {
171 background-color: $vxe-table-cell-area-background-color;
172 border: $vxe-table-cell-area-border-width solid $vxe-table-cell-area-border-color;
173 }
174 .vxe-table--cell-main-area-btn {
175 display: none;
176 position: absolute;
177 right: -1px;
178 bottom: -1px;
179 width: 7px;
180 height: 7px;
181 border-style: solid;
182 border-color: $vxe-table-cell-main-area-extension-border-color;
183 border-width: 1px 0 0 1px;
184 background-color: $vxe-table-cell-main-area-extension-background-color;
185 pointer-events: auto;
186 cursor: crosshair;
187 }
188 .vxe-table--cell-extend-area {
189 border: $vxe-table-cell-extend-area-border-width solid $vxe-table-cell-extend-area-border-color;
190 }
191}
192
193@keyframes moveCopyCellBorder {
194 from {
195 }
196 to {
197 background-position: 0 -12px, 100% 12px, 12px 0, -12px 100%;
198 }
199}
200
201.vxe-table--cell-copy-area {
202 background: linear-gradient(0deg, transparent 6px, $vxe-table-cell-copy-area-border-color 6px) repeat-y,
203 linear-gradient(0deg, transparent 50%, $vxe-table-cell-copy-area-border-color 0) repeat-y,
204 linear-gradient(90deg, transparent 50%, $vxe-table-cell-copy-area-border-color 0) repeat-x,
205 linear-gradient(90deg, transparent 50%, $vxe-table-cell-copy-area-border-color 0) repeat-x;
206 background-size: $vxe-table-cell-copy-area-border-width 12px, $vxe-table-cell-copy-area-border-width 12px, 12px $vxe-table-cell-copy-area-border-width, 12px $vxe-table-cell-copy-area-border-width;
207 background-position: 0 0, 100% 0, 0 0, 0 100%;
208 animation: moveCopyCellBorder .5s infinite linear;
209}
210
211.vxe-table--cell-active-area {
212 border: $vxe-table-cell-active-area-border-width solid $vxe-table-cell-active-area-border-color;
213}
214
215.vxe-table--cell-multi-area {
216 & > .vxe-table--cell-main-area {
217 background-color: $vxe-table-cell-area-background-color;
218 }
219}
220
221/*圆角*/
222@if $vxe-table-border-radius {
223 .vxe-table--render-default {
224 &.is--round {
225 %AllRadius {
226 border-radius: $vxe-table-border-radius;
227 }
228 %TopRadius {
229 border-radius: $vxe-table-border-radius $vxe-table-border-radius 0 0;
230 }
231 %TopLeftRadius {
232 border-radius: $vxe-table-border-radius 0 0 0;
233 }
234 %TopRightRadius {
235 border-radius: 0 $vxe-table-border-radius 0 0;
236 }
237 %BottomRadius {
238 border-radius: 0 0 $vxe-table-border-radius $vxe-table-border-radius;
239 }
240 %BottomLeftRadius {
241 border-radius: 0 0 0 $vxe-table-border-radius;
242 }
243 %BottomRightRadius {
244 border-radius: 0 0 $vxe-table-border-radius 0;
245 }
246 @extend %AllRadius;
247 .vxe-table--border-line {
248 @extend %AllRadius;
249 }
250 &.is--header {
251 &:not(.is--footer) {
252 .vxe-table--body-wrapper {
253 &.fixed-left--wrapper {
254 @extend %BottomLeftRadius;
255 }
256 &.body--wrapper {
257 @extend %BottomRadius;
258 }
259 &.fixed-right--wrapper {
260 @extend %BottomRightRadius;
261 }
262 }
263 }
264 .vxe-table--header-wrapper {
265 &.fixed-left--wrapper {
266 @extend %TopLeftRadius;
267 }
268 &.body--wrapper {
269 @extend %TopRadius;
270 }
271 &.fixed-right--wrapper {
272 @extend %TopRightRadius;
273 }
274 }
275 }
276 &:not(.is--header) {
277 &:not(.is--footer) {
278 .vxe-table--body-wrapper {
279 &.body--wrapper {
280 @extend %AllRadius;
281 }
282 }
283 }
284 }
285 &.is--footer {
286 &:not(.is--header) {
287 .vxe-table--body-wrapper {
288 &.fixed-left--wrapper {
289 @extend %BottomLeftRadius;
290 }
291 &.body--wrapper {
292 @extend %TopRadius;
293 }
294 &.fixed-right--wrapper {
295 @extend %BottomRightRadius;
296 }
297 }
298 }
299 .vxe-table--footer-wrapper {
300 &.fixed-left--wrapper {
301 @extend %BottomLeftRadius;
302 }
303 &.body--wrapper {
304 @extend %BottomRadius;
305 }
306 &.fixed-right--wrapper {
307 @extend %BottomRightRadius;
308 }
309 }
310 }
311 }
312 }
313}
314
315/*table*/
316.vxe-table--render-default {
317 position: relative;
318 font-size: $vxe-font-size;
319 color: $vxe-table-font-color;
320 font-family: $vxe-font-family;
321 direction: ltr;
322 .vxe-table--body-wrapper {
323 background-color: $vxe-table-body-background-color;
324 }
325 .vxe-table--footer-wrapper {
326 background-color: $vxe-table-footer-background-color;
327 }
328 .vxe-table--header,
329 .vxe-table--body,
330 .vxe-table--footer {
331 border: 0;
332 border-spacing: 0;
333 border-collapse: separate;
334 table-layout: fixed;
335 }
336 .vxe-table--header-wrapper,
337 .vxe-table--footer-wrapper {
338 overflow-x: hidden;
339 overflow-y: hidden;
340 }
341 &:not(.is--empty) {
342 &.is--footer {
343 &.is--scroll-x {
344 .vxe-table--body-wrapper {
345 overflow-x: scroll;
346 }
347 }
348 }
349 }
350 .vxe-body--row {
351 &.row--stripe {
352 background-color: $vxe-table-row-striped-background-color;
353 }
354 &.row--radio {
355 background-color: $vxe-table-row-radio-checked-background-color;
356 }
357 &.row--checked {
358 background-color: $vxe-table-row-checkbox-checked-background-color;
359 }
360 &.row--current {
361 background-color: $vxe-table-row-current-background-color;
362 }
363 &.row--hover {
364 background-color: $vxe-table-row-hover-background-color;
365 &.row--stripe {
366 background-color: $vxe-table-row-hover-striped-background-color;
367 }
368 &.row--radio {
369 background-color: $vxe-table-row-hover-radio-checked-background-color;
370 }
371 &.row--checked {
372 background-color: $vxe-table-row-hover-checkbox-checked-background-color;
373 }
374 &.row--current {
375 background-color: $vxe-table-row-hover-current-background-color;
376 }
377 }
378 }
379 // &.is--tree-line {
380 // .vxe-body--row {
381 // &.row--stripe {
382 // .vxe-tree--btn-wrapper {
383 // background-color: $vxe-table-row-striped-background-color;
384 // }
385 // }
386 // &.row--radio {
387 // .vxe-tree--btn-wrapper {
388 // background-color: $vxe-table-row-radio-checked-background-color;
389 // }
390 // }
391 // &.row--checked {
392 // .vxe-tree--btn-wrapper {
393 // background-color: $vxe-table-row-checkbox-checked-background-color;
394 // }
395 // }
396 // &.row--current {
397 // .vxe-tree--btn-wrapper {
398 // background-color: $vxe-table-row-current-background-color;
399 // }
400 // }
401 // &.row--hover {
402 // .vxe-tree--btn-wrapper {
403 // background-color: $vxe-table-row-hover-background-color;
404 // }
405 // &.row--stripe {
406 // .vxe-tree--btn-wrapper {
407 // background-color: $vxe-table-row-hover-striped-background-color;
408 // }
409 // }
410 // &.row--radio {
411 // .vxe-tree--btn-wrapper {
412 // background-color: $vxe-table-row-hover-radio-checked-background-color;
413 // }
414 // }
415 // &.row--checked {
416 // .vxe-tree--btn-wrapper {
417 // background-color: $vxe-table-row-hover-checkbox-checked-background-color;
418 // }
419 // }
420 // &.row--current {
421 // .vxe-tree--btn-wrapper {
422 // background-color: $vxe-table-row-hover-current-background-color;
423 // }
424 // }
425 // }
426 // }
427 // }
428 &.drag--resize {
429 .vxe-table--main-wrapper,
430 .vxe-table--fixed-left-wrapper,
431 .vxe-table--fixed-right-wrapper {
432 * {
433 cursor: col-resize;
434 }
435 }
436 }
437 &.drag--range,
438 &.drag--area {
439 .vxe-table--main-wrapper,
440 .vxe-table--fixed-left-wrapper,
441 .vxe-table--fixed-right-wrapper {
442 * {
443 cursor: default;
444 }
445 }
446 }
447 &.drag--extend-range {
448 .vxe-table--main-wrapper,
449 .vxe-table--fixed-left-wrapper,
450 .vxe-table--fixed-right-wrapper {
451 * {
452 cursor: crosshair;
453 }
454 }
455 }
456 &.column--highlight {
457 .vxe-header--column {
458 &:not(.col--seq) {
459 &:hover {
460 background-color: $vxe-table-column-hover-background-color;
461 }
462 }
463 }
464 }
465 &.cell--area {
466 .vxe-table--main-wrapper {
467 user-select: none;
468 }
469 }
470 .vxe-header--column,
471 .vxe-body--column,
472 .vxe-footer--column {
473 position: relative;
474 line-height: $vxe-table-row-line-height;
475 text-align: left;
476 &:not(.col--ellipsis) {
477 padding: #{floor(($vxe-table-row-height-default - $vxe-table-row-line-height) * 0.5)} 0;
478 }
479 &.col--current {
480 background-color: $vxe-table-column-current-background-color;
481 // .vxe-tree--btn-wrapper {
482 // background-color: $vxe-table-column-current-background-color;
483 // }
484 }
485 &.col--center {
486 text-align: center;
487 }
488 &.col--right {
489 text-align: right;
490 }
491 }
492 // &.is--tree-line {
493 // .vxe-header--column,
494 // .vxe-body--column,
495 // .vxe-footer--column {
496 // &.col--current {
497 // .vxe-tree--btn-wrapper {
498 // background-color: $vxe-table-column-current-background-color;
499 // }
500 // }
501 // }
502 // }
503 .vxe-header--column,
504 .vxe-footer--column {
505 &.col--ellipsis {
506 &.col--center {
507 .vxe-cell{
508 justify-content: center;
509 }
510 }
511 &.col--right {
512 .vxe-cell{
513 justify-content: flex-end;
514 }
515 }
516 }
517 }
518 .vxe-body--column {
519 &.col--checkbox {
520 user-select: none;
521 }
522 }
523
524 /*边框*/
525 .vxe-table--footer-wrapper {
526 border-top: $vxe-table-border-width solid $vxe-table-border-color;
527 }
528 &.border--default,
529 &.border--full,
530 &.border--outer {
531 .vxe-table--header-wrapper {
532 background-color: $vxe-table-header-background-color;
533 }
534 }
535 &.border--default,
536 &.border--inner {
537 .vxe-header--column,
538 .vxe-body--column,
539 .vxe-footer--column {
540 background-image: linear-gradient($vxe-table-border-color, $vxe-table-border-color);
541 background-repeat: no-repeat;
542 background-size: 100% $vxe-table-border-width;
543 background-position: right bottom;
544 }
545 }
546 &.border--full {
547 .vxe-header--column,
548 .vxe-body--column,
549 .vxe-footer--column {
550 background-image: linear-gradient($vxe-table-border-color, $vxe-table-border-color), linear-gradient($vxe-table-border-color, $vxe-table-border-color);
551 background-repeat: no-repeat;
552 background-size: $vxe-table-border-width 100%, 100% $vxe-table-border-width;
553 background-position: right top, right bottom;
554 }
555 .vxe-table--fixed-left-wrapper {
556 // border-right: $vxe-table-border-width solid $vxe-table-border-color;
557 .vxe-body--column{
558 border-right-color: $vxe-table-border-color;
559 }
560 }
561 }
562 &.border--default,
563 &.border--full,
564 &.border--outer,
565 &.border--inner {
566 .vxe-table--header-wrapper {
567 .vxe-header--row {
568 &:last-child {
569 .vxe-header--gutter {
570 background-image: linear-gradient($vxe-table-border-color, $vxe-table-border-color);
571 background-repeat: no-repeat;
572 background-size: 100% $vxe-table-border-width;
573 background-position: right bottom;
574 }
575 }
576 }
577 }
578 }
579 &.border--inner,
580 &.border--none {
581 .vxe-table--header-wrapper {
582 background-color: $vxe-table-body-background-color;
583 }
584 .vxe-table--fixed-left-wrapper {
585 border-right: 0;
586 }
587 }
588 &.border--inner {
589 .vxe-table--border-line {
590 border-width: 0 0 1px 0;
591 }
592 }
593 &.border--none {
594 .vxe-table--border-line {
595 display: none;
596 }
597 .vxe-table--header-border-line {
598 display: none;
599 }
600 .vxe-table--footer-wrapper {
601 border-top: 0;
602 }
603 }
604
605 &.size--medium {
606 font-size: $vxe-font-size-medium;
607 .vxe-table--empty-placeholder,
608 .vxe-table--empty-block {
609 min-height: $vxe-table-row-height-medium;
610 }
611 .vxe-header--column,
612 .vxe-body--column,
613 .vxe-footer--column {
614 &:not(.col--ellipsis) {
615 padding: #{floor(($vxe-table-row-height-medium - $vxe-table-row-line-height) * 0.5)} 0;
616 }
617 }
618 .vxe-cell {
619 .vxe-default-input,
620 .vxe-default-textarea,
621 .vxe-default-select {
622 height: $vxe-input-height-medium;
623 }
624 .vxe-default-input {
625 &[type="date"]::-webkit-inner-spin-button {
626 margin-top: 3px;
627 }
628 }
629 }
630 }
631 &.size--small {
632 font-size: $vxe-font-size-small;
633 .vxe-table--empty-placeholder,
634 .vxe-table--empty-block {
635 min-height: $vxe-table-row-height-small;
636 }
637 .vxe-header--column,
638 .vxe-body--column,
639 .vxe-footer--column {
640 &:not(.col--ellipsis) {
641 padding: #{floor(($vxe-table-row-height-small - $vxe-table-row-line-height) * 0.5)} 0;
642 }
643 }
644 .vxe-cell {
645 .vxe-default-input,
646 .vxe-default-textarea,
647 .vxe-default-select {
648 height: $vxe-input-height-small;
649 }
650 .vxe-default-input {
651 &[type="date"]::-webkit-inner-spin-button {
652 margin-top: 2px;
653 }
654 }
655 }
656 }
657 &.size--mini {
658 font-size: $vxe-font-size-mini;
659 .vxe-table--empty-placeholder,
660 .vxe-table--empty-block {
661 min-height: $vxe-table-row-height-mini;
662 }
663 .vxe-header--column,
664 .vxe-body--column,
665 .vxe-footer--column {
666 &:not(.col--ellipsis) {
667 padding: #{floor(($vxe-table-row-height-mini - $vxe-table-row-line-height) * 0.5)} 0;
668 }
669 }
670 .vxe-cell {
671 .vxe-default-input,
672 .vxe-default-textarea,
673 .vxe-default-select {
674 height: $vxe-input-height-mini;
675 }
676 .vxe-default-input {
677 &[type="date"]::-webkit-inner-spin-button {
678 margin-top: 1px;
679 }
680 }
681 }
682 }
683 .vxe-cell {
684 white-space: pre-line;
685 word-break: break-all;
686 padding-left: $vxe-table-cell-padding-left;
687 padding-right: $vxe-table-cell-padding-right;
688 }
689
690 // 单元格占位符
691 .vxe-cell--placeholder {
692 color: $vxe-table-cell-placeholder-color;
693 }
694
695 // 单选框和复选框
696 .vxe-cell--radio {
697 @extend %XERadio;
698 }
699 .vxe-cell--checkbox {
700 @extend %XECheckbox;
701 }
702 .vxe-cell--radio .vxe-radio--icon,
703 .vxe-cell--checkbox .vxe-checkbox--icon {
704 left: 0;
705 top: 0.1em;
706 }
707 .vxe-cell--radio .vxe-radio--label,
708 .vxe-cell--checkbox .vxe-checkbox--label {
709 padding-left: 0.5em;
710 }
711 .vxe-cell--radio,
712 .vxe-cell--checkbox {
713 padding-left: 1.2em;
714 }
715
716 .fixed--hidden {
717 visibility: hidden;
718 }
719 .vxe-table--fixed-left-wrapper,
720 .vxe-table--fixed-right-wrapper {
721 width: 100%;
722 position: absolute;
723 top: 0;
724 z-index: 5;
725 overflow: hidden;
726 background-color: inherit;
727 transition: 0.3s box-shadow;
728 .vxe-table--body-wrapper {
729 overflow-x: hidden;
730 }
731 }
732 .vxe-table--fixed-left-wrapper {
733 .vxe-table--body-wrapper {
734 width: calc(100% + 40px);
735 }
736 }
737 &.is--header {
738 .vxe-table--fixed-left-wrapper,
739 .vxe-table--fixed-right-wrapper {
740 .vxe-table--body-wrapper {
741 &:before {
742 display: none;
743 }
744 }
745 }
746 }
747 .vxe-table--fixed-left-wrapper {
748 left: 0;
749 width: 200px;
750 &.scrolling--middle {
751 box-shadow: $vxe-table-fixed-left-scrolling-box-shadow;
752 }
753 }
754 .vxe-table--fixed-right-wrapper {
755 right: 0;
756 &.scrolling--middle {
757 box-shadow: $vxe-table-fixed-right-scrolling-box-shadow;
758 }
759 }
760 .vxe-table--header-wrapper,
761 .vxe-table--body-wrapper,
762 .vxe-table--footer-wrapper {
763 position: relative;
764 &.fixed-left--wrapper,
765 &.fixed-right--wrapper {
766 position: absolute;
767 top: 0;
768 }
769 &.fixed-left--wrapper {
770 left: 0;
771 }
772 &.fixed-right--wrapper {
773 right: 0;
774 overflow-y: auto;
775 }
776 }
777 .vxe-body--x-space {
778 width: 100%;
779 height: 1px;
780 margin-bottom: -1px;
781 }
782 .vxe-body--y-space {
783 width: 0;
784 float: left;
785 }
786
787 /*列宽线*/
788 .vxe-table--resizable-bar {
789 display: none;
790 position: absolute;
791 top: 0;
792 left: 0;
793 width: 1px;
794 height: 100%;
795 z-index: 9;
796 cursor: col-resize;
797 &:before {
798 content: "";
799 display: block;
800 height: 100%;
801 background-color: $vxe-table-resizable-drag-line-color;
802 }
803 }
804
805 /*边框线*/
806 .vxe-table--border-line {
807 position: absolute;
808 top: 0;
809 left: 0;
810 width: 100%;
811 height: 100%;
812 z-index: 10;
813 pointer-events: none;
814 border: $vxe-table-border-width solid $vxe-table-border-color;
815 }
816
817 /*树形节点*/
818 &.is--tree-line {
819 .vxe-body--row {
820 &:first-child {
821 .vxe-tree--line {
822 border-width: 0 0 1px 0;
823 }
824 }
825 }
826 .vxe-body--row {
827 .vxe-body--column {
828 background-image: none;
829 }
830 }
831 }
832 .vxe-tree--line-wrapper {
833 position: relative;
834 display: block;
835 height: 0;
836 }
837 .vxe-tree--line {
838 content: "";
839 position: absolute;
840 bottom: -0.9em;
841 width: 0.8em;
842 border-width: 0 0 1px 1px;
843 border-style: $vxe-table-tree-node-line-style;
844 border-color: $vxe-table-tree-node-line-color;
845 pointer-events: none;
846 }
847 .vxe-cell--tree-node {
848 position: relative;
849 }
850 .vxe-tree--btn-wrapper {
851 position: absolute;
852 top: 50%;
853 width: 1em;
854 height: 1em;
855 text-align: center;
856 transform: translateY(-50%);
857 z-index: 1;
858 user-select: none;
859 cursor: pointer;
860 }
861 .vxe-tree--node-btn {
862 display: block;
863 color: lighten($vxe-table-font-color, 20%);
864 &:hover {
865 color: $vxe-table-font-color;
866 }
867 }
868 .vxe-tree-cell {
869 display: block;
870 padding-left: 1.5em;
871 }
872 .vxe-body--column {
873 &.col--ellipsis {
874 & > .vxe-cell {
875 .vxe-tree-cell {
876 overflow: hidden;
877 text-overflow: ellipsis;
878 white-space: nowrap;
879 }
880 }
881 }
882 }
883
884 /*展开行*/
885 .vxe-table--expanded {
886 cursor: pointer;
887 .vxe-table--expand-btn {
888 width: 1em;
889 height: 1em;
890 text-align: center;
891 user-select: none;
892 color: lighten($vxe-table-font-color, 20%);
893 &:hover {
894 color: $vxe-table-font-color;
895 }
896 }
897 &+.vxe-table--expand-label {
898 padding-left: 0.5em;
899 }
900 }
901 .vxe-body--expanded-column {
902 border-bottom: $vxe-table-border-width solid $vxe-table-border-color;
903 &.col--ellipsis {
904 & > .vxe-body--expanded-cell {
905 overflow: hidden;
906 text-overflow: ellipsis;
907 white-space: nowrap;
908 }
909 }
910 }
911 .vxe-body--expanded-cell {
912 position: relative;
913 z-index: 1;
914 }
915
916 /*设置列高度*/
917 &.vxe-editable {
918 .vxe-body--column {
919 @extend %DefaultColumnHeight;
920 }
921 &.size--medium {
922 .vxe-body--column {
923 @extend %MediumColumnHeight;
924 }
925 }
926 &.size--small {
927 .vxe-body--column {
928 @extend %SmallColumnHeight;
929 }
930 }
931 &.size--mini {
932 .vxe-body--column {
933 @extend %MiniColumnHeight;
934 }
935 }
936 }
937
938 /*溢出列*/
939 .vxe-header--column,
940 .vxe-body--column,
941 .vxe-footer--column {
942 &.col--ellipsis {
943 @extend %DefaultColumnHeight;
944 &:not(.col--actived) {
945 & > .vxe-cell {
946 @extend %TextEllipsis;
947 }
948 }
949 & > .vxe-cell {
950 max-height: $vxe-table-row-height-default;
951 }
952 }
953 }
954 &.size--medium {
955 .vxe-header--column,
956 .vxe-body--column,
957 .vxe-footer--column {
958 &.col--ellipsis {
959 @extend %MediumColumnHeight;
960 & > .vxe-cell {
961 max-height: $vxe-table-row-height-medium;
962 }
963 }
964 }
965 .vxe-cell--checkbox .vxe-checkbox--icon {
966 font-size: $vxe-checkbox-font-size-medium;
967 }
968 .vxe-cell--radio .vxe-radio--icon {
969 font-size: $vxe-radio-font-size-medium;
970 }
971 }
972 &.size--small {
973 .vxe-header--column,
974 .vxe-body--column,
975 .vxe-footer--column {
976 &.col--ellipsis {
977 @extend %SmallColumnHeight;
978 & > .vxe-cell {
979 max-height: $vxe-table-row-height-small;
980 }
981 }
982 }
983 .vxe-cell--checkbox .vxe-checkbox--icon {
984 font-size: $vxe-checkbox-font-size-small;
985 }
986 .vxe-cell--radio .vxe-radio--icon {
987 font-size: $vxe-radio-font-size-small;
988 }
989 }
990 &.size--mini {
991 .vxe-header--column,
992 .vxe-body--column,
993 .vxe-footer--column {
994 &.col--ellipsis {
995 @extend %MiniColumnHeight;
996 & > .vxe-cell {
997 max-height: $vxe-table-row-height-mini;
998 }
999 }
1000 }
1001 .vxe-cell--checkbox .vxe-checkbox--icon {
1002 font-size: $vxe-checkbox-font-size-mini;
1003 }
1004 .vxe-cell--radio .vxe-radio--icon {
1005 font-size: $vxe-radio-font-size-mini;
1006 }
1007 }
1008
1009 /*暂无数据*/
1010 .vxe-table--empty-placeholder,
1011 .vxe-table--empty-block {
1012 min-height: $vxe-table-row-height-default;
1013 justify-content: center;
1014 align-items: center;
1015 text-align: center;
1016 overflow: hidden;
1017 width: 100%;
1018 pointer-events: none;
1019 }
1020 .vxe-table--empty-block {
1021 display: none;
1022 visibility: hidden;
1023 }
1024 .vxe-table--empty-placeholder {
1025 display: none;
1026 position: absolute;
1027 top: 0;
1028 z-index: 5;
1029 }
1030 .vxe-table--empty-content {
1031 display: block;
1032 width: 50%;
1033 pointer-events: auto;
1034 }
1035 &.is--empty {
1036 .vxe-table--empty-block,
1037 .vxe-table--empty-placeholder {
1038 display: flex;
1039 }
1040 }
1041
1042 .vxe-body--column {
1043 &.col--selected {
1044 box-shadow: inset 0px 0px 0px 2px $vxe-primary-color;
1045 }
1046 }
1047
1048 /*校验不通过*/
1049 .vxe-body--column {
1050 &.col--actived,
1051 &.col--selected {
1052 position: relative;
1053 }
1054 &.col--valid-error {
1055 .vxe-cell--valid {
1056 width: 320px;
1057 position: absolute;
1058 bottom: calc(100% + 4px);
1059 left: 50%;
1060 transform: translateX(-50%);
1061 text-align: center;
1062 pointer-events: none;
1063 z-index: 4;
1064 .vxe-cell--valid-msg {
1065 display: inline-block;
1066 border-radius: $vxe-border-radius;
1067 padding: 8px 12px;
1068 color: $vxe-table-validate-tooltip-error-color;
1069 background-color: $vxe-table-validate-tooltip-error-background-color;
1070 pointer-events: auto;
1071 }
1072 }
1073 .vxe-default-input,
1074 .vxe-default-textarea,
1075 .vxe-default-select {
1076 border-color: $vxe-table-validate-error-color;
1077 }
1078 .vxe-input {
1079 > .vxe-input--inner {
1080 border-color: $vxe-table-validate-error-color;
1081 }
1082 }
1083
1084 }
1085 }
1086 .vxe-body--row {
1087 &:first-child {
1088 .vxe-cell--valid {
1089 bottom: auto;
1090 top: calc(100% + 4px);
1091 }
1092 }
1093 }
1094 .vxe-body--column {
1095 &:first-child {
1096 .vxe-cell--valid {
1097 left: 10px;
1098 transform: translateX(0);
1099 text-align: left;
1100 }
1101 }
1102 }
1103
1104 /*单元格编辑状态*/
1105 .vxe-body--row {
1106 &.row--new {
1107 & > .vxe-body--column {
1108 position: relative;
1109 &:before {
1110 content: "";
1111 top: -$vxe-table-cell-dirty-width;
1112 left: -$vxe-table-cell-dirty-width;
1113 position: absolute;
1114 border-width: $vxe-table-cell-dirty-width;
1115 border-style: solid;
1116 border-color: transparent $vxe-table-cell-dirty-insert-color transparent transparent;
1117 transform: rotate(45deg);
1118 }
1119 }
1120 }
1121 }
1122 .vxe-body--column {
1123 &.col--dirty {
1124 position: relative;
1125 &:before {
1126 content: "";
1127 top: -$vxe-table-cell-dirty-width;
1128 left: -$vxe-table-cell-dirty-width;
1129 position: absolute;
1130 border-width: $vxe-table-cell-dirty-width;
1131 border-style: solid;
1132 border-color: transparent $vxe-table-cell-dirty-update-color transparent transparent;
1133 transform: rotate(45deg);
1134 }
1135 }
1136 }
1137
1138 /*可编辑*/
1139 &.vxe-editable {
1140 &.cell--highlight {
1141 .vxe-body--column {
1142 &.col--actived {
1143 box-shadow: inset 0px 0px 0px 2px $vxe-primary-color;
1144 &.col--valid-error {
1145 box-shadow: inset 0px 0px 0px 2px $vxe-table-validate-error-color;
1146 }
1147 .vxe-cell {
1148 .vxe-default-input,
1149 .vxe-default-textarea {
1150 border: 0;
1151 padding: 0;
1152 }
1153 .vxe-default-input {
1154 height: $vxe-table-row-line-height;
1155 }
1156 .vxe-input {
1157 .vxe-input--inner {
1158 border: 0;
1159 padding-left: 0;
1160 }
1161 }
1162 .vxe-textarea {
1163 height: $vxe-table-row-line-height - 1;
1164 .vxe-textarea--inner {
1165 border: 0;
1166 }
1167 }
1168 }
1169 }
1170 }
1171 }
1172 .vxe-body--column {
1173 padding: 0;
1174 &.col--actived {
1175 padding: 0;
1176 }
1177 }
1178 }
1179}