feat: 设置界面增加文件名模板配置项

This commit is contained in:
Developer
2026-04-23 18:33:11 +08:00
parent 427e9166b3
commit f7172869af

View File

@@ -60,6 +60,7 @@ fun SettingsScreen(
var titleStyle by remember { mutableStateOf(WatermarkStyle.Default) } var titleStyle by remember { mutableStateOf(WatermarkStyle.Default) }
var defaultTheme by remember { mutableStateOf("") } var defaultTheme by remember { mutableStateOf("") }
var recorderName by remember { mutableStateOf("") } var recorderName by remember { mutableStateOf("") }
var fileNameTemplate by remember { mutableStateOf("{project}_{inspector}_{date}") }
// 加载配置 // 加载配置
scope.launch { scope.launch {
@@ -80,9 +81,12 @@ fun SettingsScreen(
scope.launch { scope.launch {
preferencesManager.defaultTheme.collect { defaultTheme = it } preferencesManager.defaultTheme.collect { defaultTheme = it }
} }
scope.launch { scope.launch {
preferencesManager.recorderName.collect { recorderName = it } preferencesManager.recorderName.collect { recorderName = it }
} }
scope.launch {
preferencesManager.fileNameTemplate.collect { fileNameTemplate = it }
}
Scaffold( Scaffold(
topBar = { topBar = {
@@ -105,6 +109,7 @@ fun SettingsScreen(
preferencesManager.setTitleStyle(titleStyle) preferencesManager.setTitleStyle(titleStyle)
preferencesManager.setDefaultTheme(defaultTheme) preferencesManager.setDefaultTheme(defaultTheme)
preferencesManager.setRecorderName(recorderName) preferencesManager.setRecorderName(recorderName)
preferencesManager.setFileNameTemplate(fileNameTemplate)
} }
// 返回主界面 // 返回主界面
onNavigateBack() onNavigateBack()
@@ -291,15 +296,34 @@ fun SettingsScreen(
Divider() Divider()
SettingsItem(title = "记录人信息") { SettingsItem(title = "记录人信息") {
OutlinedTextField( OutlinedTextField(
value = recorderName, value = recorderName,
onValueChange = { scope.launch { preferencesManager.setRecorderName(it) } }, onValueChange = { scope.launch { preferencesManager.setRecorderName(it) } },
label = { Text("姓名/工号") }, label = { Text("姓名/工号") },
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
singleLine = true singleLine = true
) )
} }
Divider()
SettingsItem(title = "文件名模板") {
OutlinedTextField(
value = fileNameTemplate,
onValueChange = { scope.launch { preferencesManager.setFileNameTemplate(it) } },
label = { Text("文件名模板") },
placeholder = { Text("{project}_{inspector}_{date}") },
modifier = Modifier.fillMaxWidth(),
singleLine = true
)
Spacer(modifier = Modifier.height(4.dp))
Text(
text = "可用占位符:{project} {device} {inspector} {date} {time}",
style = MaterialTheme.typography.bodySmall,
color = Color.Gray
)
}
} }
Spacer(modifier = Modifier.height(16.dp)) Spacer(modifier = Modifier.height(16.dp))