You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
salary-management-oneself/src/components/reactChart/OrgChart.less

173 lines
3.3 KiB
Plaintext

@node-color: #1890ff;
@line-width: 1px;
@line-color: @node-color;
@expand-icon-size: 16px;
.text-overflow-ellipsis() {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.org-chart {
&-container {
display: flex;
justify-content: center;
margin-top: 26px;
}
&-table {
border-collapse: separate;
border-spacing: 0;
line-height: 1.5715;
.expand-icon {
display: inline-block;
width: @expand-icon-size;
height: @expand-icon-size;
border-radius: 50%;
background-color: @line-color;
position: absolute;
left: 50%;
bottom: 0;
margin-left: -@expand-icon-size / 2;
margin-bottom: -@expand-icon-size / 2;
z-index: 99;
cursor: pointer;
&-expanded,
&-collapsed {
&::before {
content: '';
width: 8px;
height: 2px;
background-color: #fff;
position: absolute;
top: 7px;
left: 4px;
}
}
&-collapsed {
&::after {
content: '';
width: 2px;
height: 8px;
background-color: #fff;
position: absolute;
top: 4px;
left: 7px;
}
}
&:hover {
background-color: darken(@line-color, 5%);
}
}
td {
text-align: center;
padding: 0;
vertical-align: top;
&.hidden {
display: none !important;
}
}
&-node {
display: inline-block;
//border: 1px solid @node-color;
//padding: 0.5rem;
margin: 0 5px;
cursor: pointer;
}
&-line {
height: 20px;
position: relative;
&:not(&-children) {
&:before {
content: '';
position: absolute;
top: 0;
width: @line-width;
height: 100%;
background-color: @line-color;
}
}
&-children {
&:nth-child(odd) {
border-right: @line-width solid @line-color;
}
&:not(:first-child, :last-child) {
border-top: @line-width solid @line-color;
}
}
}
// 水平
&&-horizontal {
.expand-icon {
top: 50%;
bottom: auto;
left: auto;
right: 0;
margin: -@expand-icon-size / 2 -@expand-icon-size / 2 auto auto;
}
td {
vertical-align: middle;
}
tr {
&:nth-child(odd) {
> .org-chart-table-line-children {
border-bottom: @line-width solid @line-color;
}
}
&:not(:first-child, :last-child) {
> .org-chart-table-line-children {
border-left: @line-width solid @line-color;
}
}
}
.org-chart-table {
&-node {
margin: 5px 0;
width: 120px;
&-content {
.text-overflow-ellipsis();
}
}
&-line {
height: auto;
width: 20px;
&:not(&-children) {
&:before {
top: auto;
left: 0;
width: 100%;
height: @line-width;
}
}
&-children {
&:nth-child(odd),
&:not(:first-child, :last-child) {
border: none;
}
}
}
}
}
}
}