magiccube-vue3
Version:
vue3-js版组件库
270 lines (225 loc) • 5.69 kB
text/less
@import './theme';
@import './picker-common';
.mc-city-picker{
.mc-picker-common-picker();
&__result{
.mc-picker-common-result-panel();
&--wrap{
.mc-picker-common-result-tag-wrap();
}
&--name{
.mc-picker-common-result-tag-name();
}
&--close{
.mc-picker-common-result-tag-close();
}
&--amount{
.mc-picker-common-result-tag-amount();
}
&--keyword{
.mc-picker-common-result-tag-keyword();
&__clear{
margin-right: 16px;
}
}
&--placeholder{
.mc-picker-common-result-tag-placeholder();
}
&--arrow{
.mc-picker-common-result-arrow()
}
&--single{
.mc-pciker-common-result-single()
}
}
&.disabled{
.mc-fuzzy-search__result{
.mc-picker-common-picker-disabled();
}
}
}
.mc-city{
position: absolute;
top: 50%;
left: 50%;
z-index: @popup-inner-z;
width: 680px;
box-shadow: 0 0 10px 0 rgba(0,0,0,.4);
background: #fff;
transform: translateY(-50%);
@city-border-style: 1px solid #e8e8e8;
&__header{
display: flex;
align-items: center;
padding: 16px 24px 12px;
&--left{
flex: 1;
}
&--right{
text-align: right;
}
&--title{
font-size: 16px;
}
&--tips{
margin-left: 8px;
font-size: 12px;
color: #666;
}
}
&__review{
padding: 0 24px;
border-bottom: @city-border-style;
}
&__body{
position: relative;
padding: 24px;
&--toolbar{
display: flex;
align-items: center;
position: relative;
z-index: 1;
margin-bottom: -1px;
&__tag{
padding: 5px 16px;
color: @color-font-nav;
border: @city-border-style;
border-bottom: 0;
cursor: pointer;
&.active{
color: @color-font;
background: #fafafa;
}
}
&__search{
position: absolute;
top: -6px;
right: 0;
width: 250px;
}
&__dropdown{
position: absolute;
width: 100%;
max-height: 150px;
border: 1px solid #eee;
border-radius: @border-radius;
box-shadow: @popup-shadow;
overflow-y: auto;
& > li{
padding: 5px 10px;
cursor: pointer;
&.selected{
color: @color-default;
}
&:hover{
background: #bef0ff40;
}
}
}
}
&--content{
padding: 24px 0 12px;
height: 442px;
background: #fafafa;
border: @city-border-style;
overflow-y: auto;
}
&--panel:not(:last-child){
margin-bottom: 24px;
}
&--title{
margin-bottom: 12px;
padding: 0 24px;
font-size: 16px;
}
&--list{
&__wrap{
display: inline-block;
padding: 8px 16px;
width: 105px;
}
}
}
&__arrow{
position: relative;
margin-left: 4px;
padding: 0 6px;
&::after{
content: '';
display: block;
position: absolute;
top: 50%;
left: 50%;
width: 6px;
height: 6px;
border: 1px solid #ccc;
transform: translate(-50%, -50%) rotate(32deg) skew(-16deg, 10deg);
transform-origin: 60% 50%;
border-top: 0;
border-left: 0;
}
}
}
.mc-city-tag{
display: inline-block;
height: 32px;
color: @color-font-nav;
border-radius: @border-radius;
cursor: pointer;
&.review{
margin-right: 12px;
margin-bottom: 12px;
color: #fff;
background: @color-default;
cursor: default;
}
&.active{
color: #fff;
background: @color-default;
}
&.include:not(.active){
color: @color-default;
}
&__wrap{
display: flex;
align-items: center;
height: 100%;
}
&__text{
padding: 0 8px;
}
&__close{
position: relative;
padding: 0 8px;
width: 28px;
height: 10px;
border-left: 1px solid rgba(255, 255, 255, .8);
cursor: pointer;
&::before{
content: '';
display: block;
position: absolute;
top: 45%;
left: 50%;
transform: translate(-50%, -95%) rotate(45deg);
width: 5px;
height: 5px;
border: 1px solid #fff;
border-top: 0;
border-left: 0;
}
&::after{
content: '';
display: block;
position: absolute;
right: 50%;
bottom: 40%;
transform: translate(50%, 95%) rotate(45deg);
width: 5px;
height: 5px;
border: 1px solid #fff;
border-bottom: 0;
border-right: 0;
}
}
}