amis/scss/components/_list.scss
吴多益 174567ecdc
feat:crud、table、list、card 支持自定义点击某一行的行为 (#2725)
* feat:crud、table、list、card 支持自定义点击某一行的行为

* 修复转 JSON Schema 报错
2021-10-20 10:05:02 +08:00

250 lines
4.7 KiB
SCSS

.#{$ns}List {
position: relative;
&-items {
border-radius: var(--List-borderRadius);
border: var(--List-borderWidth) solid var(--List-borderColor);
background: var(--List-bg);
margin-bottom: var(--gap-sm);
}
&-toolbar {
@include clearfix();
display: flex;
flex-wrap: wrap;
margin: 0 var(--List-toolbar-marginX) var(--List-toolbar-marginY);
}
&-actions {
display: inline-block;
> * {
margin-right: var(--Crud-toolbar-gap);
}
}
&-header {
padding: var(--List-toolbar-marginY) var(--List-toolbar-marginX);
> * + .#{$ns}Button,
> * + .#{$ns}ButtonGroup,
> * + .#{$ns}ButtonToolbar {
margin-left: var(--Crud-toolbar-gap);
}
}
&-header + &-toolbar {
padding-top: 0;
}
&-heading {
padding: var(--gap-xs) 0;
}
&-fixedTop {
position: absolute;
background: var(--white);
z-index: -1;
opacity: 0;
box-shadow: var(--List-fixedTop-boxShadow);
// padding: var(--gap-sm);
&.in {
position: fixed;
opacity: 1;
z-index: $zindex-affix;
}
.#{$ns}Cards-toolbar {
margin-bottom: 0;
}
&:empty {
display: none;
}
}
&--unsaved &-heading {
background: var(--List--unsaved-heading-bg);
color: var(--List--unsaved-heading-color);
padding: var(--gap-xs) var(--gap-sm);
margin-bottom: var(--gap-sm);
}
&-dragTip {
width: 100%;
color: var(--info);
clear: both;
margin-top: var(--gap-xs);
}
&-placeholder {
color: var(--text--muted-color);
text-align: center;
min-height: var(--List-placeholder-height);
line-height: var(--List-placeholder-height);
}
}
.#{$ns}ListGroup {
max-width: px2rem(400px);
display: flex;
flex-direction: column;
&-item {
position: relative;
display: block;
padding: var(--ListItem-paddingY) var(--ListItem-paddingX);
margin-bottom: px2rem(-1px);
background: var(--white);
border: var(--ListItem-borderWidth) solid var(--List-borderColor);
&:first-child {
border-top-left-radius: var(--borderRadius);
border-top-right-radius: var(--borderRadius);
}
&:last-child {
border-bottom-left-radius: var(--borderRadius);
border-bottom-right-radius: var(--borderRadius);
margin-bottom: 0;
}
&:hover {
// todo
z-index: 1;
}
&.is-active {
// todo
z-index: 2;
}
&.is-disabled {
color: var(--text--muted-color);
}
}
&--expanded {
.#{$ns}ListGroup-item {
border-radius: var(--borderRadius);
margin-bottom: var(--gap-sm);
&:last-child {
margin-bottom: 0;
}
}
}
}
.#{$ns}ListItem {
@include clearfix();
& + & {
border-top: var(--ListItem-borderWidth) solid var(--ListItem-borderColor);
}
position: relative;
display: block;
padding: var(--ListItem-paddingY) var(--ListItem-paddingX);
&:nth-child(even) {
background: var(--ListItem--strip-bg);
}
&-checkBtn {
float: left;
margin-right: var(--gap-sm);
}
&-dragBtn {
cursor: move;
float: left;
margin-right: var(--gap-sm);
}
&-actions {
float: right;
}
&--actions-at-left &-actions {
float: left;
margin-right: var(--gap-base);
}
&-title {
margin: 0;
padding: 0;
font-size: var(--fontSizeBase);
color: var(--text--loud-color);
font-weight: var(--fontWeightNormal);
}
&-content {
overflow: hidden;
}
&-field {
position: relative;
display: flex;
flex-wrap: nowrap;
}
&-fieldValue {
position: relative;
flex-basis: 0;
flex-grow: 1;
max-width: 100%;
width: 0;
overflow: hidden;
text-overflow: ellipsis;
}
&-fieldLabel {
width: px2rem(150px);
color: var(--text--muted-color);
}
&.is-checked {
background: var(--ListItem-onChecked-bg);
border-color: var(--ListItem-onChecked-borderColor);
color: var(--ListItem-onChecked-color);
+ .#{$ns}ListItem {
border-color: var(--ListItem-onChecked-borderColor);
}
.#{$ns}ListItem-fieldLabel {
color: var(--ListItem-onChecked-fieldLabel-color);
}
}
&.is-modified,
&.is-moved {
background: var(--ListItem-onModified-bg);
border-color: var(--ListItem-onModified-borderColor);
color: var(--ListItem-onModified-color);
+ .#{$ns}ListItem {
border-color: var(--ListItem-onModified-borderColor);
}
.#{$ns}ListItem-fieldLabel {
color: var(--ListItem-onModified-fieldLabel-color);
}
}
&.is-dragging {
opacity: var(--ListItem-onDragging-opacity);
}
&--hasItemAction {
cursor: pointer;
}
&--hasItemAction:hover {
color: var(--ListMenu-item--onHover-color);
background: var(--ListMenu-item--onHover-bg);
}
}