diff --git a/assets/miniapp/mhtControl_1.0.0.zip b/assets/miniapp/mhtControl_1.0.0.zip index 99c3bf4..7b2ce61 100644 Binary files a/assets/miniapp/mhtControl_1.0.0.zip and b/assets/miniapp/mhtControl_1.0.0.zip differ diff --git a/lib/pages/main_bottom/component/main_page_b_bottom_change.dart b/lib/pages/main_bottom/component/main_page_b_bottom_change.dart index b238d14..1b1a9de 100644 --- a/lib/pages/main_bottom/component/main_page_b_bottom_change.dart +++ b/lib/pages/main_bottom/component/main_page_b_bottom_change.dart @@ -1,9 +1,12 @@ import 'dart:convert'; +import 'dart:io'; import 'package:ef/ef.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:vbvs_app/common/util/CommonVariables.dart'; import 'package:vbvs_app/component/NullDataComponentWidget.dart'; +import 'package:vbvs_app/component/tool/TopSlideNotification.dart'; import 'package:vbvs_app/controller/user_info_controller.dart'; import 'package:vbvs_app/model/WebSocketMessage.dart'; import 'package:vbvs_app/pages/common/bezier_bottom_navigation_bar.dart'; @@ -107,9 +110,21 @@ class _HomePageState extends State return Center(child: Text('页面 ${titles[selectedIndex]}')); } + + DateTime? _lastBackPressedTime; // 记录上一次返回的时间 @override Widget build(BuildContext context) { - return Scaffold( + return PopScope( + canPop: false, + onPopInvokedWithResult: (disposition, result) async { + if (Platform.isAndroid) { + var flag = await _handleBackPressed(context); // 自定义返回逻辑 + if (flag) { + SystemNavigator.pop(); + } + } + }, + child: Scaffold( backgroundColor: const Color(0xFF011C33), body: IndexedStack( index: selectedIndex, @@ -122,7 +137,7 @@ class _HomePageState extends State path: path, titles: titles, ), - ); + )); } void switchTab(int index) { @@ -228,4 +243,19 @@ class _HomePageState extends State ef.log("[激活控制页面报错]:$e"); } } + + Future _handleBackPressed(BuildContext context) async { + final currentTime = DateTime.now(); + + // 如果上次点击返回键时间为空,或者间隔超过 1 秒 + if (_lastBackPressedTime == null || + currentTime.difference(_lastBackPressedTime!) > Duration(seconds: 2)) { + _lastBackPressedTime = currentTime; + // showToast("再按一次退出程序", color: color_warning, closeTime: 2); + TopSlideNotification.show(context, text: "再滑一次退出程序".tr); + return false; // 阻止退出程序 + } else { + return true; // 允许退出程序 + } + } } diff --git a/lib/pages/mh_page/device/component/DeviceComponentWidget.dart b/lib/pages/mh_page/device/component/DeviceComponentWidget.dart index 1e8a02f..10de659 100644 --- a/lib/pages/mh_page/device/component/DeviceComponentWidget.dart +++ b/lib/pages/mh_page/device/component/DeviceComponentWidget.dart @@ -272,6 +272,15 @@ class _DeviceComponentWidgetState extends State { device: widget.bleDevice.scanResult.device); blueteethBindController.currentDevice = bledevice; blueteethBindController.currentDeviceMac.value = ""; + WidgetsBinding.instance.addPostFrameCallback((_) { + if (homeController + .homeSleepDays.value.isNotEmpty) { + homeController.selectedDayIndex.value = + homeController.homeSleepDays.value.length - + 1; + } + }); + await homeController.getPersonList(); } else { blueteethBindController.resumeScanning(); blueteethBindController.currentDeviceMac.value = ""; diff --git a/lib/pages/mh_page/device/mht_device_calibration.dart b/lib/pages/mh_page/device/mht_device_calibration.dart index d980568..e938fe8 100644 --- a/lib/pages/mh_page/device/mht_device_calibration.dart +++ b/lib/pages/mh_page/device/mht_device_calibration.dart @@ -873,7 +873,6 @@ class _MHTCalibrationPageState extends State { textColor: themeController.currentColor.sc9, ); } - deviceCalibrationController.statusContext.value = ""; deviceCalibrationController.bed_calibration.value == 0; blueteethBindController.cid?.value = ""; @@ -907,7 +906,7 @@ class _MHTCalibrationPageState extends State { data["side"] = currentCalibrationStep.value == 1 ? "A" : "B"; } } - data['cancel'] = true; + // data['cancel'] = true; requestWithLog( logTitle: "设备校准", method: MyHttpMethod.post, diff --git a/lib/pages/mh_page/homepage/controller/mht_home_controller.dart b/lib/pages/mh_page/homepage/controller/mht_home_controller.dart index ae01ffc..891e5cc 100644 --- a/lib/pages/mh_page/homepage/controller/mht_home_controller.dart +++ b/lib/pages/mh_page/homepage/controller/mht_home_controller.dart @@ -404,6 +404,7 @@ class MHTHomeController extends GetControllerEx { queryUrl: queryUrl, onSuccess: (res) { personnelList.value = res.data ?? []; + updateAll(); }, onFailure: (res) { EasyDartModule.logger.warning("请求人员信息列表失败: ${res.msg}"); diff --git a/lib/pages/mh_page/homepage/mht_sleep_report_page.dart b/lib/pages/mh_page/homepage/mht_sleep_report_page.dart index f020e14..a52f68d 100644 --- a/lib/pages/mh_page/homepage/mht_sleep_report_page.dart +++ b/lib/pages/mh_page/homepage/mht_sleep_report_page.dart @@ -125,8 +125,19 @@ class _MhtSleepReportPageState extends State { if (userInfoController.model.login! != null && userInfoController.model.login! == 1) { final list = deviceController.personnelList.value; - if (list.isNotEmpty && - formFieldController.value == null) { + // if (list.isNotEmpty && + // formFieldController.value == null) { + // WidgetsBinding.instance.addPostFrameCallback((_) { + // formFieldController.value = list[0]["mac"]; + // personInfo.value = list[0]; + // homeController.selectPerson.value = list[0]; + // homeController.selectDevcie.value = list[0]["mac"]; + // deviceController + // .getSleeps(formFieldController.value); + // homeController.updateAll(); + // }); + // } + if (list.isNotEmpty) { WidgetsBinding.instance.addPostFrameCallback((_) { formFieldController.value = list[0]["mac"]; personInfo.value = list[0]; @@ -312,7 +323,8 @@ class _MhtSleepReportPageState extends State { Obx(() { if (homeController.selectDevcie.value != null && - homeController.selectDevcie.value!.isNotEmpty) + homeController.selectDevcie.value!.isNotEmpty && + deviceController.personnelList.value.isNotEmpty) return Expanded( child: NewSleepReportPage( data: {