feat:更新目标模块

This commit is contained in:
2025-12-02 17:55:43 +08:00
parent 8a71ea542e
commit 86852cc47d
7 changed files with 207 additions and 64 deletions

View File

@@ -161,9 +161,33 @@ class _RecordDailyState extends State<RecordDaily> {
provider.type = type;
if (provider.isEditing) {
_initRecord(provider);
switch (provider.type) {
case RecordType.weight:
provider.updateWeight(_record.weight);
break;
case RecordType.sport:
provider.updateSportProject(_record.sportProject);
provider.updateSportDuration(_record.sportDuration);
break;
case RecordType.sleep:
provider.updateSleepStartTime(_record.sleepStartTime);
provider.updateSleepEndTime(_record.sleepEndTime);
break;
}
} else {
_defaultRecord(provider);
switch (provider.type) {
case RecordType.weight:
provider.updateWeight(70);
break;
case RecordType.sport:
provider.updateSportProject('跑步');
provider.updateSportDuration(30);
break;
case RecordType.sleep:
provider.updateSleepStartTime('');
provider.updateSleepEndTime('');
break;
}
}
showDialog(
@@ -211,42 +235,22 @@ class _RecordDailyState extends State<RecordDaily> {
);
}
void _initRecord(HealthProvider provider) {
switch (provider.type) {
case RecordType.weight:
provider.updateWeight(_record.weight);
break;
case RecordType.sport:
provider.updateSportProject(_record.sportProject);
provider.updateSportDuration(_record.sportDuration);
break;
case RecordType.sleep:
provider.updateSleepStartTime(_record.sleepStartTime);
provider.updateSleepEndTime(_record.sleepEndTime);
break;
}
}
void _resetRecord() {
final provider = context.read<HealthProvider>();
if (!provider.isEditing) {
_defaultRecord(provider);
}
}
void _defaultRecord(HealthProvider provider) {
switch (provider.type) {
case RecordType.weight:
provider.updateWeight(70);
break;
case RecordType.sport:
provider.updateSportProject('跑步');
provider.updateSportDuration(30);
break;
case RecordType.sleep:
provider.updateSleepStartTime('');
provider.updateSleepEndTime('');
break;
switch (provider.type) {
case RecordType.weight:
provider.updateWeight(0);
break;
case RecordType.sport:
provider.updateSportProject('跑步');
provider.updateSportDuration(0);
break;
case RecordType.sleep:
provider.updateSleepStartTime('');
provider.updateSleepEndTime('');
break;
}
}
}
@@ -257,6 +261,10 @@ class _RecordDailyState extends State<RecordDaily> {
setState(() {
_record = service.getAllRecordByDate(provider.date);
});
provider.updateLatestWeight(service.getLatestWeight());
provider.updateTotalSpot(service.getTotalSport());
provider.updateAvgSleep(service.getAvgSleep());
}
Widget _buildRecordContent(RecordType type) {
@@ -277,7 +285,7 @@ class _RecordDailyState extends State<RecordDaily> {
final startTime = _record.sleepStartTime;
final endTime = _record.sleepEndTime;
if (startTime.isNotEmpty && endTime.isNotEmpty) {
final duration = calculateDuration(startTime, endTime);
final duration = calSleepDuration(startTime, endTime);
title = "入睡 $startTime · 起床 $endTime · ${duration}";
} else if (startTime.isNotEmpty) {
title = "入睡 $startTime";