排班在右侧时沿用法定调休样式:surface 底 + 彩色文字

默认布局(showLegalHoliday=false)下,右上角排班从实心胶囊改为
surface 背景圆 + 班=primary/休=error 彩色文字,与开启法定调休
时右上角角标视觉规范一致。左上角(showLegalHoliday=true)保持
实心胶囊样式不变,用于区分两类信息。
This commit is contained in:
meyou 2026-05-16 19:32:44 +08:00
parent 043bd9824b
commit 6618c1863a

View File

@ -251,19 +251,23 @@ fun DayCell(
}
}
if (shiftKind != null) {
val shiftBgColor = if (shiftKind == ShiftKind.WORK) {
val shiftAccentColor = if (shiftKind == ShiftKind.WORK) {
MaterialTheme.colorScheme.primary
} else {
MaterialTheme.colorScheme.error
}
val shiftFgColor = if (shiftKind == ShiftKind.WORK) {
val shiftOnAccentColor = if (shiftKind == ShiftKind.WORK) {
MaterialTheme.colorScheme.onPrimary
} else {
MaterialTheme.colorScheme.onError
}
val shiftLabel = if (shiftKind == ShiftKind.WORK) "" else ""
val shiftAlpha = if (isCurrentMonth) 1f else 0.38f
// showLegalHoliday=true 时排班让位左上角,法定调休占右上角;否则排班独占右上角
// 右上角(默认)沿用法定调休视觉:surface 背景 + 彩色文字;
// 左上角(showLegalHoliday=true 时)用实心胶囊,与右上角法定调休区分。
val shiftBgColor =
if (showLegalHoliday) shiftAccentColor else MaterialTheme.colorScheme.surface
val shiftFgColor = if (showLegalHoliday) shiftOnAccentColor else shiftAccentColor
val shiftAlignment = if (showLegalHoliday) Alignment.TopStart else Alignment.TopEnd
val shiftPadding = if (showLegalHoliday) {
Modifier.padding(top = 1.dp, start = 2.dp)