vhb-table
Version:
一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、贼灵活的配置项、扩展接口等...
331 lines (279 loc) • 7.77 kB
CSS
/*font*/
/*size*/
/*icon*/
/*color*/
/*input/radio/checkbox*/
/*popup*/
/*table*/
/*filter*/
/*menu*/
/*loading*/
/*validate*/
/*grid*/
/*toolbar*/
/*tooltip*/
/*pager*/
/*modal*/
/*checkbox*/
/*radio*/
/*button*/
/*input*/
/*textarea*/
/*form*/
/*select*/
/*switch*/
/*pulldown*/
[class*="vhb-"], [class*="vhb-"]:after, [class*="vhb-"]:before,
[class*="vhb-"] *:after, [class*="vhb-"] *:before {
-webkit-box-sizing: border-box;
box-sizing: border-box; }
.vhb-radio .vhb-radio--label, .vhb-radio-button .vhb-radio--label {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap; }
[class*="vhb-"] {
font-variant: tabular-nums;
-webkit-font-feature-settings: 'tnum';
font-feature-settings: 'tnum'; }
.vhb-primary-color {
color: #409eff; }
.vhb-success-color {
color: #67c23a; }
.vhb-info-color {
color: #909399; }
.vhb-warning-color {
color: #e6a23c; }
.vhb-danger-color {
color: #f56c6c; }
.vhb-perfect-color {
color: #f8f8f9; }
.vhb-row:after {
content: '';
display: block;
clear: both;
height: 0;
overflow: hidden;
visibility: hidden; }
.vhb-row > .vhb-col--1 {
float: left;
width: 4.16667%; }
.vhb-row > .vhb-col--2 {
float: left;
width: 8.33333%; }
.vhb-row > .vhb-col--3 {
float: left;
width: 12.5%; }
.vhb-row > .vhb-col--4 {
float: left;
width: 16.66667%; }
.vhb-row > .vhb-col--5 {
float: left;
width: 20.83333%; }
.vhb-row > .vhb-col--6 {
float: left;
width: 25%; }
.vhb-row > .vhb-col--7 {
float: left;
width: 29.16667%; }
.vhb-row > .vhb-col--8 {
float: left;
width: 33.33333%; }
.vhb-row > .vhb-col--9 {
float: left;
width: 37.5%; }
.vhb-row > .vhb-col--10 {
float: left;
width: 41.66667%; }
.vhb-row > .vhb-col--11 {
float: left;
width: 45.83333%; }
.vhb-row > .vhb-col--12 {
float: left;
width: 50%; }
.vhb-row > .vhb-col--13 {
float: left;
width: 54.16667%; }
.vhb-row > .vhb-col--14 {
float: left;
width: 58.33333%; }
.vhb-row > .vhb-col--15 {
float: left;
width: 62.5%; }
.vhb-row > .vhb-col--16 {
float: left;
width: 66.66667%; }
.vhb-row > .vhb-col--17 {
float: left;
width: 70.83333%; }
.vhb-row > .vhb-col--18 {
float: left;
width: 75%; }
.vhb-row > .vhb-col--19 {
float: left;
width: 79.16667%; }
.vhb-row > .vhb-col--20 {
float: left;
width: 83.33333%; }
.vhb-row > .vhb-col--21 {
float: left;
width: 87.5%; }
.vhb-row > .vhb-col--22 {
float: left;
width: 91.66667%; }
.vhb-row > .vhb-col--23 {
float: left;
width: 95.83333%; }
.vhb-row > .vhb-col--24 {
float: left;
width: 100%; }
/*animat*/
.is--animat .vhb-sort--asc-btn:before, .is--animat .vhb-sort--asc-btn:after,
.is--animat .vhb-sort--desc-btn:before,
.is--animat .vhb-sort--desc-btn:after,
.is--animat .vhb-filter--btn:before,
.is--animat .vhb-filter--btn:after {
-webkit-transition: border 0.1s ease-in-out;
transition: border 0.1s ease-in-out; }
.is--animat .vhb-input--wrapper .vhb-input {
-webkit-transition: border 0.1s ease-in-out;
transition: border 0.1s ease-in-out; }
.is--animat .vhb-table--expand-btn,
.is--animat .vhb-tree--node-btn {
-webkit-transition: -webkit-transform 0.1s ease-in-out;
transition: -webkit-transform 0.1s ease-in-out;
transition: transform 0.1s ease-in-out;
transition: transform 0.1s ease-in-out, -webkit-transform 0.1s ease-in-out; }
.is--animat .vhb-checkbox > input:checked + span,
.is--animat .vhb-radio > input:checked + span {
-webkit-transition: background-color 0.1s ease-in-out;
transition: background-color 0.1s ease-in-out; }
/*radio-group*/
.vhb-radio-group {
display: inline-block;
vertical-align: middle;
line-height: 1;
font-size: 0; }
.vhb-radio-group + .vhb-radio-group {
margin-left: 10px; }
/*radio*/
.vhb-radio {
display: inline-block;
vertical-align: middle;
white-space: nowrap;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
line-height: 1;
cursor: pointer;
color: #606266; }
.vhb-radio > input[type="radio"] {
position: absolute;
width: 0;
height: 0;
border: 0;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none; }
.vhb-radio > input + .vhb-radio--icon {
position: relative;
display: inline-block;
width: 1em;
height: 1em;
border: 2px solid #dcdfe6;
background-color: #fff;
vertical-align: middle;
border-radius: 50%; }
.vhb-radio > input:checked + .vhb-radio--icon {
background-color: #409eff;
border-color: #409eff; }
.vhb-radio > input:checked + .vhb-radio--icon:before {
content: "";
position: absolute;
background-color: #fff;
border-radius: 50%;
height: 0.25em;
width: 0.25em;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%); }
.vhb-radio > input:checked + .vhb-radio--icon + .vhb-radio--label {
color: #409eff; }
.vhb-radio:not(.is--disabled) > input:focus + .vhb-radio--icon {
border-color: #409eff;
-webkit-box-shadow: 0 0 0.2em 0 #409eff;
box-shadow: 0 0 0.2em 0 #409eff; }
.vhb-radio:not(.is--disabled):hover > input + .vhb-radio--icon {
border-color: #409eff; }
.vhb-radio.is--disabled {
cursor: not-allowed; }
.vhb-radio.is--disabled > input + .vhb-radio--icon {
border-color: #dcdfe6;
background-color: #f3f3f3; }
.vhb-radio.is--disabled > input + .vhb-radio--icon:before {
border-color: #c0c4cc;
background-color: #c0c4cc; }
.vhb-radio.is--disabled > input + .vhb-radio--icon + .vhb-radio--label {
color: #BFBFBF; }
.vhb-radio .vhb-radio--label {
padding-left: 0.5em;
vertical-align: middle;
display: inline-block;
max-width: 50em; }
.vhb-radio:not(.vhb-radio-button) + .vhb-radio {
margin-left: 10px; }
.vhb-radio-button .vhb-radio--label {
background-color: #fff; }
.vhb-radio-button:first-child .vhb-radio--label {
border-left: 1px solid #dcdfe6;
border-radius: 4px 0 0 4px; }
.vhb-radio-button:last-child .vhb-radio--label {
border-radius: 0 4px 4px 0; }
.vhb-radio-button > input:checked + .vhb-radio--label {
color: #fff;
background-color: #409eff;
border-color: #409eff; }
.vhb-radio-button .vhb-radio--label {
padding: 0 1em;
line-height: 32px;
display: inline-block;
border-style: solid;
border-color: #dcdfe6;
border-width: 1px 1px 1px 0;
max-width: 50em; }
.vhb-radio-button.is--disabled {
cursor: not-allowed; }
.vhb-radio-button.is--disabled > input:not(:checked) + .vhb-radio--label {
color: #dcdfe6; }
.vhb-radio-button.is--disabled > input:checked + .vhb-radio--label {
border-color: #a6d2ff;
background-color: #a6d2ff; }
.vhb-radio-button:not(.is--disabled) > input:focus + .vhb-radio--label {
border-color: #409eff;
-webkit-box-shadow: 0 0 0.2em 0 #409eff;
box-shadow: 0 0 0.2em 0 #409eff; }
.vhb-radio-button:not(.is--disabled):hover > input:not(:checked) + .vhb-radio--label {
color: #409eff; }
.vhb-radio-button.size--medium .vhb-radio--label {
line-height: 30px; }
.vhb-radio-button.size--small .vhb-radio--label {
line-height: 28px; }
.vhb-radio-button.size--mini .vhb-radio--label {
line-height: 26px; }
.vhb-radio {
font-size: 14px; }
.vhb-radio .vhb-radio--icon {
font-size: 16px; }
.vhb-radio.size--medium {
font-size: 14px; }
.vhb-radio.size--medium .vhb-radio--icon {
font-size: 15px; }
.vhb-radio.size--small {
font-size: 13px; }
.vhb-radio.size--small .vhb-radio--icon {
font-size: 14px; }
.vhb-radio.size--mini {
font-size: 12px; }
.vhb-radio.size--mini .vhb-radio--icon {
font-size: 14px; }