mirror of
https://gitee.com/baidu/amis.git
synced 2024-12-05 05:18:34 +08:00
856c5a82f2
* 优化 combo 的 tabs 模式样式 * empty 文案没翻译问题修复 * 换成 div
296 lines
6.1 KiB
SCSS
296 lines
6.1 KiB
SCSS
.#{$ns}Combo {
|
||
&-placeholder {
|
||
color: var(--text--muted-color);
|
||
padding-top: var(--Form-label-paddingTop);
|
||
}
|
||
|
||
&-toolbarBtn {
|
||
line-height: var(--Combo-toolbarBtn-lineHeight);
|
||
height: var(--Combo-toolbarBtn-height);
|
||
color: var(--Combo-toolbarBtn-color);
|
||
padding: var(--Combo-toolbarBtn-paddingY) var(--Combo-toolbarBtn-paddingX);
|
||
cursor: pointer;
|
||
|
||
&:hover {
|
||
color: var(--Combo-toolbarBtn-onHover-color);
|
||
}
|
||
}
|
||
|
||
&-setNullBtn {
|
||
margin-top: var(--gap-xs);
|
||
display: inline-block;
|
||
}
|
||
|
||
&-addBtn {
|
||
> svg {
|
||
width: var(--Combo-addBtn-fontSize);
|
||
height: var(--Combo-addBtn-fontSize);
|
||
}
|
||
|
||
font-size: var(--Combo-addBtn-fontSize);
|
||
|
||
@include button-size(
|
||
var(--Combo-addBtn-paddingY),
|
||
var(--Combo-addBtn-paddingX),
|
||
var(--Combo-addBtn-fontSize),
|
||
var(--Combo-addBtn-lineHeight),
|
||
var(--Combo-addBtn-borderRadius),
|
||
var(--Combo-addBtn-height)
|
||
);
|
||
|
||
@include button-variant(
|
||
var(--Combo-addBtn-bg),
|
||
var(--Combo-addBtn-border),
|
||
var(--Combo-addBtn-color),
|
||
var(--Combo-addBtn-onHover-bg),
|
||
var(--Combo-addBtn-onHover-border),
|
||
var(--Combo-addBtn-onHover-color),
|
||
var(--Combo-addBtn-onActive-bg),
|
||
var(--Combo-addBtn-onActive-border),
|
||
var(--Combo-addBtn-onActive-color)
|
||
);
|
||
|
||
&.is-disabled {
|
||
pointer-events: none;
|
||
opacity: var(--Button-onDisabled-opacity);
|
||
}
|
||
}
|
||
|
||
&-delBtn {
|
||
color: var(--icon-color);
|
||
cursor: pointer;
|
||
|
||
&:hover {
|
||
color: var(--icon-onHover-color);
|
||
}
|
||
}
|
||
|
||
&-tab-delBtn {
|
||
color: var(--icon-color);
|
||
cursor: pointer;
|
||
margin-left: var(--gap-sm);
|
||
display: inline-block;
|
||
|
||
> svg {
|
||
width: px2rem(11px);
|
||
height: px2rem(11px);
|
||
}
|
||
|
||
&:hover {
|
||
color: var(--icon-onHover-color);
|
||
}
|
||
}
|
||
|
||
&-items {
|
||
&:empty {
|
||
display: none;
|
||
|
||
+ .#{$ns}Combo-toolbar {
|
||
padding-top: calc(
|
||
(var(--Form-input-height) - var(--Combo-addBtn-height)) / 2
|
||
);
|
||
}
|
||
}
|
||
|
||
margin-bottom: var(--Combo-items-marginBottom);
|
||
}
|
||
|
||
&-item {
|
||
background: var(--Page-main-bg);
|
||
}
|
||
|
||
&-itemDrager {
|
||
cursor: move;
|
||
|
||
> a {
|
||
color: var(--icon-color);
|
||
|
||
&:hover {
|
||
color: var(--icon-onHover-color);
|
||
}
|
||
}
|
||
|
||
svg {
|
||
width: px2rem(16px);
|
||
height: px2rem(16px);
|
||
}
|
||
}
|
||
|
||
&--hor {
|
||
.#{$ns}Combo-item {
|
||
display: flex;
|
||
flex-wrap: nowrap;
|
||
}
|
||
|
||
.#{$ns}Combo-item + .#{$ns}Combo-item {
|
||
margin-top: var(--Combo--horizontal-item-gap);
|
||
}
|
||
|
||
.#{$ns}Combo-itemInner {
|
||
flex-basis: 0;
|
||
flex-grow: 1;
|
||
}
|
||
|
||
.#{$ns}Combo-itemTag {
|
||
margin-right: var(--gap-sm);
|
||
|
||
label {
|
||
color: var(--info);
|
||
margin-right: var(--gap-sm);
|
||
}
|
||
}
|
||
|
||
.#{$ns}Combo-delBtn {
|
||
margin-left: var(--gap-xs);
|
||
display: flex;
|
||
white-space: nowrap;
|
||
align-items: flex-start;
|
||
padding-top: var(--Form-label-paddingTop);
|
||
|
||
&.is-disabled {
|
||
pointer-events: none;
|
||
opacity: var(--Button-onDisabled-opacity);
|
||
}
|
||
}
|
||
|
||
&.is-draggable .#{$ns}Combo-toolbar {
|
||
padding-left: px2rem(24px);
|
||
}
|
||
|
||
.#{$ns}Combo-itemDrager {
|
||
padding: var(--Combo--horizontal-dragger-top) px2rem(6px) 0 0;
|
||
}
|
||
}
|
||
|
||
// &--ver {
|
||
// .#{$ns}Combo-item {
|
||
// background: var(--white);
|
||
// }
|
||
// }
|
||
|
||
&--ver:not(&--noBorder) {
|
||
@include clearfix();
|
||
> .#{$ns}Combo-items {
|
||
margin: calc(var(--Combo--vertical-item-gap) * -2)
|
||
calc(var(--Combo--vertical-item-gap) * -2) 0
|
||
calc(var(--Combo--vertical-item-gap) * -2);
|
||
|
||
> .#{$ns}Combo-placeholder {
|
||
margin: calc(var(--Combo--vertical-item-gap) * 2);
|
||
}
|
||
}
|
||
|
||
.#{$ns}Combo-itemTag {
|
||
text-align: right;
|
||
|
||
label {
|
||
color: var(--info);
|
||
margin-right: var(--gap-sm);
|
||
}
|
||
}
|
||
|
||
// 不严格点会命中 combo 里面嵌套 combo 的情况,so sad.
|
||
> .#{$ns}Combo-item,
|
||
> .#{$ns}Combo-items > .#{$ns}Combo-item {
|
||
border: var(--Combo--vertical-item-borderWidth) dashed
|
||
var(--Combo--vertical-item-borderColor);
|
||
padding: var(--Combo--vertical-item-paddingY)
|
||
var(--Combo--vertical-item-paddingX);
|
||
position: relative;
|
||
}
|
||
|
||
> .#{$ns}Combo-items > .#{$ns}Combo-item {
|
||
margin: calc(var(--Combo--vertical-item-gap) * 2);
|
||
}
|
||
|
||
> .#{$ns}Combo-items > .#{$ns}Combo-item > .#{$ns}Combo-delBtn {
|
||
position: absolute;
|
||
opacity: 0;
|
||
top: var(--gap-xs);
|
||
right: var(--gap-xs);
|
||
}
|
||
|
||
&:not(.is-disabled) > .#{$ns}Combo-item:hover,
|
||
&:not(.is-disabled) > .#{$ns}Combo-items > .#{$ns}Combo-item:hover {
|
||
border-color: var(--Combo--vertical-item-onHover-borderColor);
|
||
// border-style: solid;
|
||
|
||
> .#{$ns}Combo-delBtn {
|
||
opacity: 1;
|
||
}
|
||
}
|
||
|
||
> .#{$ns}Combo-items > .#{$ns}Combo-item > .#{$ns}Combo-itemDrager {
|
||
position: absolute;
|
||
top: var(--Combo--horizontal-dragger-top);
|
||
left: px2rem(-30px);
|
||
}
|
||
|
||
&.is-draggable {
|
||
> .#{$ns}Combo-items > .#{$ns}Combo-item {
|
||
margin-left: px2rem(35px);
|
||
}
|
||
> .#{$ns}Combo-toolbar {
|
||
padding-left: px2rem(25px);
|
||
}
|
||
}
|
||
}
|
||
|
||
&-item--dragging {
|
||
position: relative;
|
||
|
||
&:after {
|
||
content: '';
|
||
display: block;
|
||
position: absolute;
|
||
z-index: 5;
|
||
left: 0;
|
||
top: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
background: rgba(0, 0, 0, 0.1);
|
||
}
|
||
}
|
||
}
|
||
|
||
.#{$ns}ComboTabs > .#{$ns}Tabs-links {
|
||
@include clearfix();
|
||
}
|
||
|
||
.#{$ns}ComboTabs-addLink {
|
||
float: right;
|
||
> a svg {
|
||
margin-right: var(--gap-xs);
|
||
}
|
||
}
|
||
|
||
.#{$ns}Combo-dragableTip {
|
||
color: var(--text--muted-color);
|
||
font-size: var(--fontSizeSm);
|
||
margin-left: var(--gap-xs);
|
||
|
||
&:empty {
|
||
display: none;
|
||
}
|
||
}
|
||
|
||
.#{$ns}ComboControl.is-inline {
|
||
.#{$ns}Combo--hor .#{$ns}Combo-itemInner {
|
||
flex-grow: unset;
|
||
flex-basis: unset;
|
||
}
|
||
|
||
.#{$ns}Combo--ver .#{$ns}Combo-item {
|
||
display: inline-block;
|
||
min-width: var(--Form-control-widthBase);
|
||
}
|
||
}
|
||
|
||
@include media-breakpoint-up(sm) {
|
||
.#{$ns}Combo-form .#{$ns}Form-item:last-child {
|
||
margin-bottom: 0;
|
||
}
|
||
}
|