更新打鼾图显示

This commit is contained in:
wyf
2025-12-20 17:41:31 +08:00
parent 8e7411cf92
commit ee9965e3df
9 changed files with 529 additions and 235 deletions

View File

@@ -37,18 +37,18 @@ class _SnoreViewWidgetWidgetState extends State<BreathePauseNewWidget> {
@override
Widget build(BuildContext context) {
try {
if (widget.sleepReport == null ||
widget.sleepReport is! Map ||
widget.sleepReport.isEmpty) {
return Container();
if (APPPackageType.TH.code == AppConstants().ent_type) {
if (widget.sleepReport == null ||
widget.sleepReport is! Map ||
widget.sleepReport.isEmpty) {
return Container();
}
}
List standard = widget.sleepReport['brs'] ?? [];
final Map? result = standard.cast<Map>().firstWhere(
(element) => element['id'] == 302,
orElse: () => <dynamic, dynamic>{},
);
int threshold = 0;
if (result != null && result.isNotEmpty) {
final rangeValue = result['range'];
@@ -58,16 +58,8 @@ class _SnoreViewWidgetWidgetState extends State<BreathePauseNewWidget> {
threshold = int.tryParse(rangeValue) ?? 0;
}
}
List<Map<String, dynamic>> data =
(widget.sleepReport['asp'] as List).cast<Map<String, dynamic>>();
// data = [
// {"st": 1763494195669, "value": 11},
// {"st": 1763494278485, "value": 18},
// {"st": 1763494293453, "value": 18},
// {"st": 1763494352321, "value": 14},
// {"st": 1763494606757, "value": 12}
// ];
List<Map<String, dynamic>> showLabel = convertToShowLabel(data);
double maxTimes = 70;
try {

View File

@@ -53,7 +53,7 @@ Widget DailyDataWidget(
sleepReport: sleepReport,
highlightItem: data['itemName'],
),
// SnoreViewWidgetWidget(sleepReport: sleepReport),
SnoreViewWidgetWidget(sleepReport: sleepReport),
BreathePauseNewWidget(sleepReport: sleepReport),
HeartHealthWidget(sleepReport: sleepReport),
DiseasePercentsWidget(sleepReport: sleepReport),

View File

@@ -1,5 +1,3 @@
import 'dart:math';
import 'package:EasyDartModule/EasyDartModule.dart' as es;
import 'package:ef/ef.dart';
import 'package:flutter/material.dart';
@@ -10,7 +8,6 @@ import 'package:vbvs_app/common/util/MyUtils.dart';
import 'package:vbvs_app/component/tool/ClickableContainer.dart';
import 'package:vbvs_app/enum/APPPackageType.dart';
import 'package:vbvs_app/pages/device_bind/componnet/bind_dialog.dart';
import 'package:vbvs_app/pages/sleep_report/chart/LineChartByRange.dart';
import 'package:vbvs_app/pages/sleep_report/chart/SnoreChart.dart';
class SnoreViewWidgetWidget extends StatefulWidget {
@@ -45,7 +42,10 @@ class _SnoreViewWidgetWidgetState extends State<SnoreViewWidgetWidget> {
widget.sleepReport.isEmpty) {
return Container();
}
double maxY = 70;
// if (APPPackageType.TH.code == AppConstants().ent_type) {
// return Container();
// }
double maxY = 250;
var startTime = widget.sleepReport['startTime'];
var endTime = widget.sleepReport['endTime'];
List snoreValues = [];
@@ -54,6 +54,35 @@ class _SnoreViewWidgetWidgetState extends State<SnoreViewWidgetWidget> {
List lightSnore = widget.sleepReport['ssp']['data'][0];
List heavySnore = widget.sleepReport['ssp']['data'][1];
// lightSnore = [
// ...lightSnore,
// {
// 'st': widget.sleepReport['startTime'] + 2 * 60 * 60 * 1000, // 开始后2小时
// 'et': widget.sleepReport['startTime'] + 2 * 60 * 65 * 1000, // 持续5分钟
// 'value': 25,
// },
// {
// 'st': widget.sleepReport['startTime'] + 4 * 60 * 60 * 1000, // 开始后4小时
// 'et': widget.sleepReport['startTime'] + 4 * 60 * 68 * 1000, // 持续8分钟
// 'value': 18,
// }
// ];
// // 添加模拟数据到重度打鼾列表
// heavySnore = [
// ...heavySnore,
// {
// 'st': widget.sleepReport['startTime'] + 3 * 60 * 60 * 1000, // 开始后3小时
// 'et': widget.sleepReport['startTime'] + 3 * 60 * 62 * 1000, // 持续2分钟
// 'value': 68,
// },
// {
// 'st': widget.sleepReport['startTime'] + 5 * 60 * 60 * 1000, // 开始后5小时
// 'et': widget.sleepReport['startTime'] + 5 * 60 * 64 * 1000, // 持续4分钟
// 'value': 72,
// }
// ];
List<Map> processedLightSnore = lightSnore.map((item) {
return {
...item,
@@ -202,7 +231,7 @@ class _SnoreViewWidgetWidgetState extends State<SnoreViewWidgetWidget> {
startTime: startTime,
endTime: endTime,
maxYValue: maxY, // 最大值可自定义
yStepCount: 7, // 分4段0, 5, 10, 15, 20
yStepCount: 3, // 分4段0, 5, 10, 15, 20
),
),
Padding(