feat: FAB 菜单添加"显示调休"切换,修复个人排班标记样式
- CalendarViewModel 新增 toggleShowLegalHoliday() 方法 - FAB 菜单新增"显示调休"选项,选中高亮反馈开关状态 - DayCell 修复 showLegalHoliday=true 时个人排班标记样式: 从"浅色背景+浅色文字"改为"accent 色实心胶囊+白色文字" 默认模式(showLegalHoliday=false)恢复为无背景、直接浮于单元格 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
8e65ae6f94
commit
7f639f6c24
@ -186,6 +186,13 @@ class CalendarViewModel(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 切换法定调休角标显示。
|
||||||
|
*/
|
||||||
|
fun toggleShowLegalHoliday() {
|
||||||
|
_showLegalHoliday.value = !_showLegalHoliday.value
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 从年视图选择月份后返回月视图。
|
* 从年视图选择月份后返回月视图。
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -388,6 +388,19 @@ fun CalendarMonthView(
|
|||||||
color = MaterialTheme.colorScheme.outlineVariant,
|
color = MaterialTheme.colorScheme.outlineVariant,
|
||||||
modifier = Modifier.padding(horizontal = 8.dp)
|
modifier = Modifier.padding(horizontal = 8.dp)
|
||||||
)
|
)
|
||||||
|
MenuItem(
|
||||||
|
text = "显示调休",
|
||||||
|
selected = showLegalHoliday,
|
||||||
|
onClick = {
|
||||||
|
isMenuExpanded = false
|
||||||
|
viewModel.toggleShowLegalHoliday()
|
||||||
|
}
|
||||||
|
)
|
||||||
|
HorizontalDivider(
|
||||||
|
thickness = 1.dp,
|
||||||
|
color = MaterialTheme.colorScheme.outlineVariant,
|
||||||
|
modifier = Modifier.padding(horizontal = 8.dp)
|
||||||
|
)
|
||||||
MenuItem(
|
MenuItem(
|
||||||
text = "关于",
|
text = "关于",
|
||||||
selected = false,
|
selected = false,
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import androidx.compose.foundation.layout.aspectRatio
|
|||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.shape.CircleShape
|
import androidx.compose.foundation.shape.CircleShape
|
||||||
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
@ -244,6 +245,12 @@ fun DayCell(
|
|||||||
} else {
|
} else {
|
||||||
Modifier.padding(top = 1.dp, end = 2.dp)
|
Modifier.padding(top = 1.dp, end = 2.dp)
|
||||||
}
|
}
|
||||||
|
val shiftBackground = if (showLegalHoliday) {
|
||||||
|
Modifier.background(
|
||||||
|
shiftAccentColor.copy(alpha = shiftAlpha),
|
||||||
|
RoundedCornerShape(4.dp)
|
||||||
|
)
|
||||||
|
} else Modifier
|
||||||
Text(
|
Text(
|
||||||
text = shiftLabel,
|
text = shiftLabel,
|
||||||
color = shiftFgColor.copy(alpha = shiftAlpha),
|
color = shiftFgColor.copy(alpha = shiftAlpha),
|
||||||
@ -253,9 +260,9 @@ fun DayCell(
|
|||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.align(shiftAlignment)
|
.align(shiftAlignment)
|
||||||
.zIndex(1f)
|
.zIndex(1f)
|
||||||
.background(MaterialTheme.colorScheme.background)
|
.then(shiftBackground)
|
||||||
.then(shiftPadding)
|
.then(shiftPadding)
|
||||||
.padding(horizontal = 2.dp)
|
.padding(horizontal = 3.dp, vertical = 1.dp)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if (showLegalHoliday && holidayBadge != null) {
|
if (showLegalHoliday && holidayBadge != null) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user