Files
vxe-table/styles/input.scss
xuliangzhan d1388d5f4e 优化重构
2020-03-16 22:54:11 +08:00

475 lines
9.2 KiB
SCSS

/**Variable**/
@import './helpers/mixin.scss';
$iconWidth: 1.6em;
.vxe-input--inner {
border-radius: 0.25em;
outline: 0;
padding: 0 0.6em;
color: $vxe-font-color;
border: 1px solid $vxe-input-border-color;
background-color: #FFF;
&[disabled] {
cursor: not-allowed;
background-color: $vxe-input-disabled-background-color;
}
}
.vxe-input--inner {
width: 100%;
height: 100%;
&::placeholder {
color: $vxe-input-placeholder-color;
}
&[type="number"]::-webkit-outer-spin-button,
&[type="number"]::-webkit-inner-spin-button {
appearance: none;
}
&[type="number"] {
appearance: textfield;
}
}
.vxe-input {
display: inline-block;
position: relative;
width: 180px;
&.is--disabled {
.vxe-input--date-picker-suffix,
.vxe-input--suffix,
.vxe-input--password-suffix,
.vxe-input--number-suffix {
cursor: no-drop;
}
}
&:not(.is--disabled) {
.vxe-input--date-picker-suffix,
.vxe-input--clear-icon,
.vxe-input--password-suffix,
.vxe-input--number-suffix {
cursor: pointer;
}
&.is--active {
.vxe-input--inner {
border: 1px solid $vxe-primary-color;
}
}
}
.vxe-input--prefix,
.vxe-input--suffix,
.vxe-input--extra-suffix {
display: flex;
position: absolute;
top: 0;
width: $iconWidth;
height: 100%;
user-select: none;
align-items: center;
justify-content: center;
color: $vxe-table-column-icon-border-color;
}
}
// 前缀图标
.vxe-input {
.vxe-input--prefix {
left: 0.2em;
}
&.is--prefix {
.vxe-input--inner {
padding-left: #{$iconWidth + 0.2em};
}
}
}
// 后缀图标
.vxe-input {
.vxe-input--clear-icon {
display: none;
}
.vxe-input--suffix,
.vxe-input--extra-suffix {
right: 0.2em;
}
&.is--suffix,
&.type--password,
&.type--number,
&.type--integer,
&.type--date,
&.type--week,
&.type--month,
&.type--year {
.vxe-input--inner {
padding-right: #{$iconWidth + 0.2em};
}
}
&.type--password,
&.type--number,
&.type--integer,
&.type--date,
&.type--week,
&.type--month,
&.type--year {
.vxe-input--suffix {
right: $iconWidth;
}
}
&.is--suffix {
&.type--password,
&.type--number,
&.type--integer,
&.type--date,
&.type--week,
&.type--month,
&.type--year {
.vxe-input--inner {
padding-right: #{$iconWidth * 2};
}
}
}
&.is--suffix {
&:hover {
.vxe-input--suffix {
&.is--clear {
.vxe-input--suffix-icon {
display: none;
}
.vxe-input--clear-icon {
display: inline;
}
}
}
}
}
&:not(.is--disabled) {
&:not(.is--readonly) {
.vxe-input--suffix {
&:hover {
.vxe-input--clear-icon {
color: $vxe-primary-color;
}
}
}
.vxe-input--extra-suffix {
&:hover {
.vxe-input--password-suffix {
color: $vxe-primary-color;
}
}
}
.vxe-input--number-prev,
.vxe-input--number-next {
&:hover {
color: $vxe-primary-color;
}
}
}
}
}
.vxe-input--password-suffix,
.vxe-input--number-suffix,
.vxe-input--date-picker-suffix {
position: relative;
width: 100%;
height: 100%;
}
.vxe-input--date-picker-icon,
.vxe-input--pwd-icon {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
.vxe-input--date-picker-suffix {
display: flex;
align-items: center;
justify-content: center;
.vxe-input--panel-icon {
@include animatTransition(transform, .2s);
}
}
.vxe-input--number-suffix {
.vxe-input--number-prev,
.vxe-input--number-next {
position: absolute;
left: 0;
height: 50%;
width: 100%;
text-align: center;
}
.vxe-input--number-prev {
top: 0;
}
.vxe-input--number-next {
bottom: 0;
}
.vxe-input--number-prev-icon,
.vxe-input--number-next-icon {
position: absolute;
left: 50%;
transform: translate(-50%, -50%);
}
.vxe-input--number-prev-icon {
top: 65%;
}
.vxe-input--number-next-icon {
top: 35%;
}
}
.vxe-input--panel {
display: none;
position: absolute;
left: 0;
padding: 0.2em 0;
color: $vxe-font-color;
font-size: $vxe-font-size;
text-align: left;
&:not(.is--transfer) {
min-width: 100%;
}
&.is--transfer {
position: fixed;
}
&.animat--leave {
display: block;
opacity: 0;
transform: scaleY(0.5);
transition: transform 0.2s, opacity 0.2s;
transform-origin: 0% 0%;
&[data-placement="top"] {
transform-origin: 0% 100%;
}
}
&.animat--enter {
opacity: 1;
transform: scaleY(1);
}
}
.vxe-input--panel-wrapper {
overflow-x: hidden;
overflow-y: auto;
padding: 0.2em 0;
max-height: 22em;
border-radius: 4px;
background-color: #fff;
border: 1px solid $vxe-table-popup-border-color;
box-shadow: 0 0 6px 2px rgba(0, 0, 0, 0.1);
background-color: #fff;
}
.vxe-input--panel {
&.type--date,
&.type--week,
&.type--month,
&.type--year {
user-select: none;
.vxe-input--panel-wrapper {
padding: 0.8em;
width: 22em;
}
}
&.type--week {
.vxe-input--panel-wrapper {
width: 24em;
}
}
&.type--date{
.vxe-input--date-picker-body {
th {
width: 14.28571%;
}
}
}
&.type--week {
.vxe-input--date-picker-body {
table {
th {
width: 12%;
&:first-child {
width: 16%;
}
}
}
}
}
&.type--month,
&.type--year {
.vxe-input--date-picker-body {
td {
width: 25%;
}
}
}
}
.vxe-input--date-picker-header {
display: flex;
flex-direction: row;
padding-bottom: 0.8em;
.vxe-input--date-picker-type-wrapper {
flex-grow: 1;
}
.vxe-input--date-picker-btn-wrapper {
flex-shrink: 0;
text-align: center;
}
}
.vxe-input--date-picker-type-wrapper {
.vxe-input--date-picker-label,
.vxe-input--date-picker-btn {
padding: 0 0.6em;
display: inline-block;
}
}
.vxe-input--date-picker-btn-wrapper {
display: flex;
flex-direction: row;
.vxe-input--date-picker-btn {
width: 2em;
margin-left: 0.5em;
}
}
.vxe-input--date-picker-label,
.vxe-input--date-picker-btn {
display: inline-block;
height: 2em;
line-height: 2em;
display: flex;
border-radius: 0.2em;
border: 1px solid $vxe-input-border-color;
align-items: center;
justify-content: center;
background-color: $vxe-button-default-background-color;
}
.vxe-input--date-picker-btn {
cursor: pointer;
&:active {
background-color: darken($vxe-button-default-background-color, 3%);
}
}
.vxe-input--date-picker-body {
border-radius: 0.2em;
border: 1px solid $vxe-table-popup-border-color;
table {
border: 0;
width: 100%;
height: 14em;
border-spacing: 0;
border-collapse: separate;
text-align: center;
th {
height: 2.2em;
}
th,
td {
font-size: 0.9em;
font-weight: normal;
}
th {
box-shadow: inset 0 -1px 0 0 $vxe-table-popup-border-color;
}
td {
&.is--prev,
&.is--next {
color: $vxe-disabled-color;
}
&.is--today {
box-shadow: inset 0 0 0 1px $vxe-table-popup-border-color;
&:not(.is--selected) {
&.is--current {
color: $vxe-primary-color;
}
}
}
&.is--hover {
background-color: $vxe-input-date-picker-hover-background-color;
}
&.is--selected {
color: #fff;
background-color: $vxe-input-date-picker-selected-background-color;
}
&:not(.is--disabled) {
cursor: pointer;
}
&.is--disabled {
cursor: no-drop;
color: $vxe-input-disabled-color;
background-color: $vxe-input-disabled-background-color;
}
}
}
.vxe-input--date-week-view {
th {
&:first-child {
box-shadow: inset -1px -1px 0 0 $vxe-table-popup-border-color;
}
}
td {
&:first-child {
box-shadow: inset -1px 0 0 0 $vxe-table-popup-border-color;
}
}
}
}
.vxe-input {
font-size: $vxe-font-size;
height: $vxe-input-height-default;
.vxe-input--inner {
&[type="date"]::-webkit-inner-spin-button {
margin-top: 6px;
}
&[type="date"]::-webkit-inner-spin-button,
&[type="number"]::-webkit-inner-spin-button {
height: 24px;
}
}
&.size--medium {
font-size: $vxe-font-size-medium;
height: $vxe-input-height-medium;
.vxe-input--inner {
&[type="date"]::-webkit-inner-spin-button {
margin-top: 4px;
}
}
}
&.size--small {
font-size: $vxe-font-size-small;
height: $vxe-input-height-small;
.vxe-input--inner {
&[type="date"]::-webkit-inner-spin-button {
margin-top: 2px;
}
}
}
&.size--mini {
font-size: $vxe-font-size-mini;
height: $vxe-input-height-mini;
.vxe-input--inner {
&[type="date"]::-webkit-inner-spin-button {
margin-top: 0;
}
}
}
}
.vxe-dropdown--panel {
font-size: $vxe-font-size;
&.size--medium {
font-size: $vxe-font-size-medium;
}
&.size--small {
font-size: $vxe-font-size-small;
}
&.size--mini {
font-size: $vxe-font-size-mini;
}
}