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.
297 lines
4.8 KiB
Plaintext
297 lines
4.8 KiB
Plaintext
.container {
|
|
padding: 20px;
|
|
background: #fff;
|
|
height: 100vh;
|
|
}
|
|
|
|
.header {
|
|
display: flex;
|
|
align-items: center;
|
|
margin-bottom: 20px;
|
|
|
|
.titleBar {
|
|
width: 3px;
|
|
height: 16px;
|
|
background: #2E4CD4;
|
|
margin-right: 12px;
|
|
}
|
|
|
|
.title {
|
|
margin: 0;
|
|
font-size: 14px;
|
|
font-weight: 500;
|
|
color: #333;
|
|
}
|
|
}
|
|
|
|
.toolbar {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 20px;
|
|
padding: 0 10px;
|
|
|
|
.toolbarLeft {
|
|
flex: 1;
|
|
}
|
|
|
|
.toolbarRight {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 15px;
|
|
}
|
|
}
|
|
|
|
// 图例样式
|
|
.legend {
|
|
display: flex;
|
|
gap: 20px;
|
|
|
|
.legendItem {
|
|
display: flex;
|
|
align-items: center;
|
|
font-size: 13px;
|
|
color: #666;
|
|
gap: 6px;
|
|
}
|
|
|
|
.legendDot {
|
|
width: 12px;
|
|
height: 12px;
|
|
border-radius: 2px;
|
|
display: inline-block;
|
|
|
|
&.onduty {
|
|
background: #D4F4DD;
|
|
}
|
|
|
|
&.leave {
|
|
background: #FFE7BA;
|
|
}
|
|
|
|
&.vacation {
|
|
background: #FFD6E0;
|
|
}
|
|
|
|
&.none {
|
|
background: #E8E8E8;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 日期范围和周导航
|
|
.dateRange {
|
|
font-size: 13px;
|
|
color: #666;
|
|
}
|
|
|
|
.weekNav {
|
|
display: flex;
|
|
gap: 0;
|
|
border: 1px solid #d9d9d9;
|
|
border-radius: 2px;
|
|
overflow: hidden;
|
|
|
|
.navButton {
|
|
border: none;
|
|
border-radius: 0;
|
|
background: #fff;
|
|
color: #666;
|
|
height: 28px;
|
|
font-size: 13px;
|
|
border-right: 1px solid #d9d9d9;
|
|
|
|
&:last-child {
|
|
border-right: none;
|
|
}
|
|
|
|
&:hover {
|
|
background: #f5f5f5;
|
|
color: #333;
|
|
}
|
|
}
|
|
|
|
.navButtonActive {
|
|
background: #2E4CD4 !important;
|
|
color: #fff !important;
|
|
border: none;
|
|
|
|
&:hover {
|
|
background: #1e3bb8 !important;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 表格样式
|
|
.scheduleTable {
|
|
width: 100%;
|
|
overflow-x: auto;
|
|
border: 1px solid #E5E5E5;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
table-layout: fixed;
|
|
|
|
th, td {
|
|
border: 1px solid #E5E5E5;
|
|
text-align: center;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
// 表头样式
|
|
thead {
|
|
background: #FAFAFA;
|
|
|
|
th {
|
|
padding: 12px 8px;
|
|
font-weight: 500;
|
|
color: #333;
|
|
font-size: 13px;
|
|
}
|
|
}
|
|
|
|
tbody {
|
|
td {
|
|
padding: 0;
|
|
height: 120px;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 第一列(班次列)样式
|
|
.shiftHeader {
|
|
width: 140px;
|
|
background: #FAFAFA;
|
|
color: #666;
|
|
}
|
|
|
|
.shiftCell {
|
|
background: #FAFAFA;
|
|
padding: 15px 10px !important;
|
|
|
|
.shiftName {
|
|
font-size: 14px;
|
|
font-weight: 500;
|
|
color: #333;
|
|
margin-bottom: 5px;
|
|
}
|
|
|
|
.shiftTime {
|
|
font-size: 12px;
|
|
color: #999;
|
|
}
|
|
}
|
|
|
|
// 日期表头
|
|
.dayHeader {
|
|
width: calc((100% - 140px) / 7);
|
|
|
|
.dayName {
|
|
font-size: 13px;
|
|
color: #333;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.dayDate {
|
|
font-size: 12px;
|
|
color: #999;
|
|
font-weight: normal;
|
|
}
|
|
}
|
|
|
|
// 排班单元格
|
|
.scheduleCell {
|
|
position: relative;
|
|
padding: 0 !important;
|
|
|
|
// 不同状态的背景色
|
|
&.bg_onduty {
|
|
background: #D4F4DD;
|
|
}
|
|
|
|
&.bg_leave {
|
|
background: #FFE7BA;
|
|
}
|
|
|
|
&.bg_vacation {
|
|
background: #FFD6E0;
|
|
}
|
|
|
|
&.bg_none {
|
|
background: #F5F5F5;
|
|
}
|
|
|
|
&.bg_mixed {
|
|
background: linear-gradient(135deg, #D4F4DD 50%, #FFD6E0 50%);
|
|
}
|
|
}
|
|
|
|
.emptyCell {
|
|
width: 100%;
|
|
height: 120px;
|
|
}
|
|
|
|
.cellContent {
|
|
width: 100%;
|
|
height: 120px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 5px;
|
|
padding: 10px;
|
|
}
|
|
|
|
.personItem {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 3px;
|
|
|
|
.personName {
|
|
font-size: 13px;
|
|
color: #333;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.statusTag {
|
|
font-size: 11px;
|
|
padding: 2px 6px;
|
|
border-radius: 2px;
|
|
|
|
&.onduty {
|
|
color: #52C41A;
|
|
}
|
|
|
|
&.leave {
|
|
color: #FA8C16;
|
|
}
|
|
|
|
&.vacation {
|
|
color: #F5222D;
|
|
}
|
|
|
|
&.none {
|
|
color: transparent;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 响应式
|
|
@media screen and (max-width: 1400px) {
|
|
.table {
|
|
font-size: 12px;
|
|
}
|
|
|
|
.personName {
|
|
font-size: 12px !important;
|
|
}
|
|
|
|
.statusTag {
|
|
font-size: 10px !important;
|
|
}
|
|
}
|