更新一级睡眠报告页面

This commit is contained in:
wyf
2025-08-07 08:53:26 +08:00
parent d5f8efb79e
commit 88a03a361c
11 changed files with 416 additions and 140 deletions

View File

@@ -9,6 +9,7 @@ import 'package:vbvs_app/common/color/app_uri_status.dart';
import 'package:vbvs_app/common/util/FitTool.dart';
import 'package:vbvs_app/common/util/MyUtils.dart';
import 'package:vbvs_app/common/util/requestWithLog.dart';
import 'package:vbvs_app/component/NullDataComponentWidget.dart';
import 'package:vbvs_app/component/tool/ClickableContainer.dart';
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
import 'package:vbvs_app/controller/date/CalendarController.dart';
@@ -19,10 +20,8 @@ import 'package:vbvs_app/pages/common/selectDialog.dart';
import 'package:vbvs_app/pages/main_bottom/component/main_page_b_bottom_change.dart';
import 'package:vbvs_app/pages/mh_page/homepage/controller/mht_home_controller.dart';
import 'package:vbvs_app/pages/sleep_report/component/SleepScoreWidget.dart';
import 'package:vbvs_app/pages/sleep_report/component/SleepView.dart';
import 'package:vbvs_app/pages/sleep_report/component/Vital_signs.dart';
import 'package:vbvs_app/pages/sleep_report/component/new_sleep_view.dart';
import 'package:vbvs_app/pages/sleep_report/new_sleep_report_page.dart';
class MhtSleepReportPage extends StatefulWidget {
const MhtSleepReportPage({super.key});
@@ -41,6 +40,7 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
final RxBool isRightLimit = false.obs;
var formFieldController = FormFieldController<String>(null);
var personInfo = {}.obs;
Rx<bool> isLoading = false.obs;
@override
void initState() {
@@ -332,6 +332,9 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
}
}).toList(),
onChanged: (val) {
sleepReportController
.sleepReport
.value = {};
final list =
deviceController
.personnelList
@@ -363,9 +366,15 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
.value =
formFieldController
.value!;
deviceController.getSleeps(
formFieldController
.value);
// deviceController.getSleeps(
// formFieldController
// .value);
String data =
MyUtils.formatDate(
calendarController
.selectedDate
.value!);
loadSleepReport(data);
homeController
.updateAll();
}
@@ -469,45 +478,58 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
}),
Obx(() {
if (homeController.selectDevcie.value != null &&
if (userInfoController.model.login! == null ||
userInfoController.model.login! == 0 ||
deviceController.personnelList.value.isEmpty) {
return Container();
}
final bool hasValidData = homeController
.selectDevcie.value !=
null &&
homeController.selectDevcie.value!.isNotEmpty &&
deviceController.personnelList.value.isNotEmpty &&
sleepReportController.sleepReport.value != null) {
return Expanded(
child: SingleChildScrollView(
child: Column(
children: [
getTimeWidget(),
SleepScoreWidget(
sleepReport:
sleepReportController.sleepReport.value,
showLabelWrap: false,
),
NewSleepViewWidget(
sleepReport:
sleepReportController.sleepReport.value),
SizedBox(height: 25.rpx),
VitalSignsWidget(
sleepReport:
sleepReportController.sleepReport.value)
],
sleepReportController.sleepReport.value != null &&
sleepReportController.sleepReport.value.isNotEmpty;
// child: NewSleepReportPage(
// data: {
// "tag": "123",
// 'date': DateTime.now().millisecondsSinceEpoch,
// 'mac'.tr: homeController.selectDevcie.value,
// 'person': homeController.selectPerson.value,
// 'backgroundImg':
// 'assets/images/new_background.png',
// 'arrow': false,
// 'noBackImg': true,
// 'person_show': false,
// },
// ),
)));
}
return Container();
return Expanded(
child: SingleChildScrollView(
child: Column(
children: [
getTimeWidget(), // 始终显示
isLoading.value
? Padding(
padding: EdgeInsets.fromLTRB(
0, 30.rpx, 0, 0),
child: Center(
child: CircularProgressIndicator()),
)
: hasValidData
? Column(
children: [
SleepScoreWidget(
sleepReport:
sleepReportController
.sleepReport.value,
showLabelWrap: false,
),
NewSleepViewWidget(
sleepReport:
sleepReportController
.sleepReport.value,
),
SizedBox(height: 25.rpx),
VitalSignsWidget(
sleepReport:
sleepReportController
.sleepReport.value,
),
],
)
: NullDataWidget(), // 无数据时
],
),
),
);
}),
],
);
@@ -636,17 +658,20 @@ class _MhtSleepReportPageState extends State<MhtSleepReportPage> {
}
void loadSleepReport(String data) {
isLoading.value = true;
requestWithLog(
logTitle: "查询睡眠报告",
method: MyHttpMethod.get,
queryUrl:
"https://sleepdata.he-info.com/api/analysis/sleep/analysis?mac=${homeController.selectDevcie.value}&time=${data}&type=${sleepReportController.model.type}",
onSuccess: (res) {
isLoading.value = false;
print(res);
sleepReportController.sleepReport.value = res.data;
sleepReportController.updateAll();
},
onFailure: (res) {
isLoading.value = false;
if (MainPageBBottomChange.getCurrentIndex() != null) {
if (MainPageBBottomChange.getCurrentIndex() == 1) {
TopSlideNotification.show(context,

View File

@@ -632,9 +632,7 @@ class _NewHomePageState extends State<NewHomePage> {
personInfo
.value,
'backgroundImg':
'assets/images/new_background.png',
'date':
timeMillis,
'assets/images/new_background.png',
// 'backgroundColor':stringToColor("#003058"),
'person_show':
false,