From d6e85aeea2a17950e1e5df733f1ed6f67e2efdcd Mon Sep 17 00:00:00 2001 From: wyf <494641114@qq.com> Date: Tue, 1 Jul 2025 21:01:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=8E=A7=E5=88=B6=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/img/icon/xiaoyi.svg | 4 - .../weather/weather_controller.dart | 4 + lib/pages/common/selectDialog.dart | 22 +- lib/pages/mh_page/bluetooth.dart | 12 +- lib/pages/mh_page/device/device.dart | 25 +- .../device/mht_blueteeth_device_page.dart | 39 ++- lib/pages/mh_page/device/mht_people_info.dart | 306 +++++++++--------- .../device/model/BlueToothDataModel.dart | 16 +- .../homepage/mht_sleep_report_page.dart | 16 +- lib/pages/mh_page/homepage/new_Home_page.dart | 54 ++-- lib/pages/mh_page/test/WebviewTestModel.dart | 9 +- .../sleep_report/chart/TimeSeriesChart.dart | 3 +- .../component/HeartChangeWidget.dart | 19 +- .../sleep_report/new_sleep_report_page.dart | 57 +++- pubspec.yaml | 2 +- 15 files changed, 350 insertions(+), 238 deletions(-) diff --git a/assets/img/icon/xiaoyi.svg b/assets/img/icon/xiaoyi.svg index 66738d1..b4c5fba 100644 --- a/assets/img/icon/xiaoyi.svg +++ b/assets/img/icon/xiaoyi.svg @@ -1,5 +1 @@ -<<<<<<< HEAD - -======= ->>>>>>> 13eb25e1c30dcd81c87aa85bcb5306ca0931ed21 diff --git a/lib/controller/weather/weather_controller.dart b/lib/controller/weather/weather_controller.dart index d3109ab..53ea313 100644 --- a/lib/controller/weather/weather_controller.dart +++ b/lib/controller/weather/weather_controller.dart @@ -81,6 +81,10 @@ class WeatherModelController extends GetControllerEx { List placemarks = []; // placemarks = await placemarkFromCoordinates(position.latitude, position.longitude, // localeIdentifier: language); + placemarks = await placemarkFromCoordinates( + position.latitude, + position.longitude, + ); if (placemarks.isNotEmpty) { model.cityName = placemarks[0].locality ?? "未知数据".tr; diff --git a/lib/pages/common/selectDialog.dart b/lib/pages/common/selectDialog.dart index 3284ddf..eedb6d1 100644 --- a/lib/pages/common/selectDialog.dart +++ b/lib/pages/common/selectDialog.dart @@ -195,9 +195,9 @@ Future showDateSelectionDialog(BuildContext context, width: 100.rpx, height: 60.rpx, alignment: Alignment.center, - child: Text("确认", + child: Text("确定", style: TextStyle( - fontSize: 30.rpx, color: Colors.white)), + fontSize: 30.rpx, color: stringToColor("#84F5FF"))), ), ), ], @@ -348,10 +348,10 @@ Future showWeightPickerDialog( width: 100.rpx, height: 60.rpx, child: Text( - "确认", + "确定", style: TextStyle( fontSize: 30.rpx, - color: Colors.white, + color: stringToColor("#84F5FF"), ), ), )), @@ -475,10 +475,10 @@ Future showHeightPickerDialog( width: 100.rpx, height: 60.rpx, child: Text( - "确认", + "确定", style: TextStyle( fontSize: 30.rpx, - color: Colors.white, + color: stringToColor("#84F5FF"), ), ), )), @@ -701,7 +701,7 @@ Future showDayTimeSelectionDialog( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.center, children: [ - // 顶部栏:取消 - 标题 - 确认 + // 顶部栏:取消 - 标题 - 确定 Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ @@ -742,9 +742,9 @@ Future showDayTimeSelectionDialog( width: 100.rpx, height: 60.rpx, alignment: Alignment.center, - child: Text("确认".tr, + child: Text("确定".tr, style: TextStyle( - fontSize: 30.rpx, color: Colors.white)), + fontSize: 30.rpx, color: stringToColor("#84F5FF"))), ), ), ], @@ -879,9 +879,9 @@ Future showOneSelectionDialog( alignment: Alignment.center, width: 100.rpx, height: 60.rpx, - child: Text("确认".tr, + child: Text("确定".tr, style: TextStyle( - fontSize: 30.rpx, color: Colors.white)), + fontSize: 30.rpx, color: stringToColor("#84F5FF"))), ), ), ], diff --git a/lib/pages/mh_page/bluetooth.dart b/lib/pages/mh_page/bluetooth.dart index e22fd13..dd11fca 100644 --- a/lib/pages/mh_page/bluetooth.dart +++ b/lib/pages/mh_page/bluetooth.dart @@ -9,6 +9,7 @@ import 'package:vbvs_app/component/tool/TopSlideNotification.dart'; import 'package:vbvs_app/controller/mh_controller/device_list_controller.dart'; import 'package:vbvs_app/model/api_response.dart'; import 'package:vbvs_app/pages/device_bind/componnet/bind_dialog.dart'; +import 'package:vbvs_app/pages/mh_page/homepage/controller/mht_home_controller.dart'; import 'package:vbvs_app/pages/mh_page/test/WebviewTestModel.dart'; class BluetoothPage extends StatefulWidget { @@ -166,8 +167,11 @@ class _BluetoothPageState extends State { context, '详情', "/devicePeopleInfo", arguments: obsData), _buildMenuButton( - context, '人员资料', "/peopleInfoPage", - arguments: obsData,), + context, + '人员资料', + "/peopleInfoPage", + arguments: obsData, + ), _buildMenuButton( context, '房间选择', "/roomPickerPage", arguments: obsData), @@ -194,6 +198,10 @@ class _BluetoothPageState extends State { .unbindDevice(obsData); await deviceListController .getDeviceList(); + MHTHomeController homeController = + Get.find(); + homeController.selectDevcie.value = + ""; try { WebviewTestController webviewTestController = diff --git a/lib/pages/mh_page/device/device.dart b/lib/pages/mh_page/device/device.dart index 7933cca..377314c 100644 --- a/lib/pages/mh_page/device/device.dart +++ b/lib/pages/mh_page/device/device.dart @@ -4,11 +4,14 @@ import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutterflow_ui/flutterflow_ui.dart'; import 'package:vbvs_app/common/color/appFontsize.dart'; +import 'package:vbvs_app/common/util/DailyLogUtils.dart'; import 'package:vbvs_app/common/util/FitTool.dart'; import 'package:vbvs_app/common/util/MyUtils.dart'; import 'package:vbvs_app/component/tool/TopSlideNotification.dart'; import 'package:vbvs_app/controller/main_bottom/global_controller.dart'; import 'package:vbvs_app/controller/mh_controller/device_list_controller.dart'; +import 'package:vbvs_app/pages/main_bottom/component/main_page_b_bottom_change.dart'; +import 'package:vbvs_app/pages/mh_page/test/WebviewTestModel.dart'; class DeviceInfoWidget extends GetView { int index; @@ -200,8 +203,26 @@ class DeviceInfoWidget extends GetView { width: 150.rpx, height: 90.rpx, child: FFButtonWidget( - onPressed: () { - // deviceControllerChange(device); + onPressed: () async { + try { + WebviewTestController webviewTestController = + Get.find(); + var future = webviewTestController + .web.jsbridge?.dart + .appToHtmlDevice(device); + Future.delayed(Duration(seconds: 5), () { + return; + }); + await future; + await webviewTestController.web.jsbridge?.dart + .pageActive(); + MainPageBBottomChange.jumpTo(2); + Get.until((route) => + Get.currentRoute == + "/mianPageBottomChange"); + } catch (e) { + DailyLogUtils.writeError("发生异常: $e"); + } }, text: '控制', options: FFButtonOptions( diff --git a/lib/pages/mh_page/device/mht_blueteeth_device_page.dart b/lib/pages/mh_page/device/mht_blueteeth_device_page.dart index 28a3461..dac5edb 100644 --- a/lib/pages/mh_page/device/mht_blueteeth_device_page.dart +++ b/lib/pages/mh_page/device/mht_blueteeth_device_page.dart @@ -170,8 +170,28 @@ class _MHTBlueteethDevicePageState extends State { mac: r.device.remoteId.str.replaceAll(':', '')); }).toList(); + final currentDevices = mhtBlueToothController.model.blueRawData ?? []; + final newDevices = []; + + for (var newDevice in filteredResults) { + // 检查设备是否已存在 + final existingIndex = + currentDevices.indexWhere((d) => d.mac == newDevice.mac); + + if (existingIndex >= 0) { + // 更新已有设备信息(如信号强度) + currentDevices[existingIndex] = newDevice; + } else { + // 添加新设备 + newDevices.add(newDevice); + } + } + setState(() { - mhtBlueToothController.model.blueRawData = filteredResults; + mhtBlueToothController.model.blueRawData = [ + ...currentDevices, + ...newDevices + ]; }); }); @@ -189,6 +209,7 @@ class _MHTBlueteethDevicePageState extends State { void _startPeriodicScan() { _timer = Timer.periodic(Duration(seconds: 10), (timer) { if (mhtBlueToothController.shouldScan.value && !isScanning) { + _removeOldDevices(); // 先清理老旧设备 _startScanning(); } }); @@ -693,4 +714,20 @@ class _MHTBlueteethDevicePageState extends State { ), ); } + + void _removeOldDevices() { + final now = DateTime.now(); + final currentDevices = mhtBlueToothController.model.blueRawData ?? []; + + // 移除30秒内未出现的设备 + final updatedDevices = currentDevices.where((device) { + return now.difference(device.lastSeen) < Duration(seconds: 30); + }).toList(); + + if (updatedDevices.length != currentDevices.length) { + setState(() { + mhtBlueToothController.model.blueRawData = updatedDevices; + }); + } + } } diff --git a/lib/pages/mh_page/device/mht_people_info.dart b/lib/pages/mh_page/device/mht_people_info.dart index e9c8610..d60a111 100644 --- a/lib/pages/mh_page/device/mht_people_info.dart +++ b/lib/pages/mh_page/device/mht_people_info.dart @@ -39,7 +39,7 @@ class _MHTPeopleInfoPageState extends State { peopleList.add({ 'mac': device?.macA, 'gender': "男", - 'id':device!.macAID, + 'id': device!.macAID, }); // Initialize person B if exists @@ -47,7 +47,7 @@ class _MHTPeopleInfoPageState extends State { peopleList.add({ 'mac': device.macB, 'gender': "男", - 'id':device!.macBID, + 'id': device!.macBID, }); } @@ -113,7 +113,7 @@ class _MHTPeopleInfoPageState extends State { ? DateFormat('yyyy-MM-dd').format(personData['birthday']) : personData['birthday'], 'contact': personData['contact'], - 'id':personData['id'], + 'id': personData['id'], }; await requestWithLog( logTitle: "保存用户信息", @@ -124,7 +124,8 @@ class _MHTPeopleInfoPageState extends State { print(res); }, onFailure: (res) { - TopSlideNotification.show(context,text: res.msg!,textColor: themeController.currentColor.sc9); + TopSlideNotification.show(context, + text: res.msg!, textColor: themeController.currentColor.sc9); print(res); }, ); @@ -306,42 +307,42 @@ class _MHTPeopleInfoPageState extends State { width: double.infinity, height: 90.rpx, decoration: BoxDecoration(), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Text( - '性别', - style: TextStyle( - fontFamily: 'Readex Pro', - color: Color(0xFF9EA4B7), - fontSize: 30.rpx, - letterSpacing: 0, - ), - ), - InkWell( - onTap: () { - FocusScope.of(context) - .requestFocus(FocusNode()); - Future.delayed( - const Duration(milliseconds: 250), - () { - showOneSelectionDialog(context, - arr: ["女", "男"], - checkIndex: peopleList[index] - ['gender'] == - "女" - ? 0 - : 1, checkChange: (sindex) { - setState(() { - peopleList[index]['gender'] = - sindex == 0 ? "女" : "男"; - }); - }).then((d) {}); + child: InkWell( + onTap: () { + FocusScope.of(context) + .requestFocus(FocusNode()); + Future.delayed( + const Duration(milliseconds: 250), + () { + showOneSelectionDialog(context, + arr: ["女", "男"], + checkIndex: peopleList[index] + ['gender'] == + "女" + ? 0 + : 1, checkChange: (sindex) { + setState(() { + peopleList[index]['gender'] = + sindex == 0 ? "女" : "男"; }); - }, - child: Row( + }).then((d) {}); + }); + }, + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + '性别', + style: TextStyle( + fontFamily: 'Readex Pro', + color: Color(0xFF9EA4B7), + fontSize: 30.rpx, + letterSpacing: 0, + ), + ), + Row( mainAxisSize: MainAxisSize.max, children: [ Container( @@ -365,8 +366,8 @@ class _MHTPeopleInfoPageState extends State { ), ], ), - ), - ], + ], + ), ), ), getLine(), @@ -376,43 +377,42 @@ class _MHTPeopleInfoPageState extends State { margin: EdgeInsets.only( left: 40.rpx, right: 35.rpx), decoration: BoxDecoration(), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Text( - '身高(cm)', - style: TextStyle( - fontFamily: 'Readex Pro', - color: Color(0xFF9EA4B7), - fontSize: 30.rpx, - letterSpacing: 0, + child: InkWell( + onTap: () { + FocusScope.of(context).unfocus(); + Future.delayed( + const Duration(milliseconds: 250), + () { + showHeightPickerDialog( + context, + initialHeight: int.tryParse( + peopleList[index]['height'] ?? + '170') ?? + 170, + onConfirm: (int selectedHeight) { + setState(() { + peopleList[index]['height'] = + selectedHeight.toString(); + }); + }, + ); + }); + }, + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + '身高(cm)', + style: TextStyle( + fontFamily: 'Readex Pro', + color: Color(0xFF9EA4B7), + fontSize: 30.rpx, + letterSpacing: 0, + ), ), - ), - InkWell( - onTap: () { - FocusScope.of(context).unfocus(); - Future.delayed( - const Duration(milliseconds: 250), - () { - showHeightPickerDialog( - context, - initialHeight: int.tryParse( - peopleList[index] - ['height'] ?? - '170') ?? - 170, - onConfirm: (int selectedHeight) { - setState(() { - peopleList[index]['height'] = - selectedHeight.toString(); - }); - }, - ); - }); - }, - child: Row( + Row( children: [ Text( peopleList[index]['height'] != @@ -431,8 +431,8 @@ class _MHTPeopleInfoPageState extends State { size: 48.rpx), ], ), - ), - ], + ], + ), ), ), getLine(), @@ -442,39 +442,39 @@ class _MHTPeopleInfoPageState extends State { margin: EdgeInsets.only( left: 40.rpx, right: 35.rpx), decoration: BoxDecoration(), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Text( - '体重(kg)', - style: TextStyle( - fontFamily: 'Readex Pro', - color: Color(0xFF9EA4B7), - fontSize: 30.rpx, - letterSpacing: 0, + child: InkWell( + onTap: () { + FocusScope.of(context).unfocus(); + Future.delayed( + const Duration(milliseconds: 250), + () { + showWeightPickerDialog( + context, + initialWeight: "0", + onConfirm: (int selectedWeight) { + setState(() { + peopleList[index]['weight'] = + selectedWeight.toString(); + }); + }, + ); + }); + }, + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + '体重(kg)', + style: TextStyle( + fontFamily: 'Readex Pro', + color: Color(0xFF9EA4B7), + fontSize: 30.rpx, + letterSpacing: 0, + ), ), - ), - InkWell( - onTap: () { - FocusScope.of(context).unfocus(); - Future.delayed( - const Duration(milliseconds: 250), - () { - showWeightPickerDialog( - context, - initialWeight: "0", - onConfirm: (int selectedWeight) { - setState(() { - peopleList[index]['weight'] = - selectedWeight.toString(); - }); - }, - ); - }); - }, - child: Row( + Row( children: [ Text( peopleList[index]['weight'] != @@ -493,8 +493,8 @@ class _MHTPeopleInfoPageState extends State { size: 48.rpx), ], ), - ), - ], + ], + ), ), ), getLine(), @@ -504,46 +504,44 @@ class _MHTPeopleInfoPageState extends State { margin: EdgeInsets.only( left: 40.rpx, right: 35.rpx), decoration: BoxDecoration(), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Text( - '生日', - style: TextStyle( - fontFamily: 'Readex Pro', - color: Color(0xFF9EA4B7), - fontSize: 30.rpx, - letterSpacing: 0, - ), - ), - InkWell( - onTap: () { - FocusScope.of(context) - .requestFocus(FocusNode()); - Future.delayed( - const Duration(milliseconds: 250), - () { - showDateSelectionDialog(context, - checkDate: peopleList[index] - ['birthday'] is DateTime - ? peopleList[index] - ['birthday'] - : DateTime.tryParse( - peopleList[index][ - 'birthday'] ?? - '') ?? - DateTime.now(), - checkChange: (DateTime d) { - setState(() { - peopleList[index]['birthday'] = - d; - }); - }).then((d) {}); + child: InkWell( + onTap: () { + FocusScope.of(context) + .requestFocus(FocusNode()); + Future.delayed( + const Duration(milliseconds: 250), + () { + showDateSelectionDialog(context, + checkDate: peopleList[index] + ['birthday'] is DateTime + ? peopleList[index]['birthday'] + : DateTime.tryParse( + peopleList[index] + ['birthday'] ?? + '') ?? + DateTime.now(), + checkChange: (DateTime d) { + setState(() { + peopleList[index]['birthday'] = d; }); - }, - child: Row( + }).then((d) {}); + }); + }, + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + '生日', + style: TextStyle( + fontFamily: 'Readex Pro', + color: Color(0xFF9EA4B7), + fontSize: 30.rpx, + letterSpacing: 0, + ), + ), + Row( mainAxisSize: MainAxisSize.max, children: [ Container( @@ -574,8 +572,8 @@ class _MHTPeopleInfoPageState extends State { ), ], ), - ), - ], + ], + ), ), ), getLine(), diff --git a/lib/pages/mh_page/device/model/BlueToothDataModel.dart b/lib/pages/mh_page/device/model/BlueToothDataModel.dart index b23d194..af062fa 100644 --- a/lib/pages/mh_page/device/model/BlueToothDataModel.dart +++ b/lib/pages/mh_page/device/model/BlueToothDataModel.dart @@ -1,7 +1,7 @@ import 'package:flutter_blue_plus/flutter_blue_plus.dart'; class BlueToothDataModel { - String name;//设备型号 + String name; // 设备型号 bool bind; String mac; ScanResult scanResult; @@ -10,6 +10,7 @@ class BlueToothDataModel { int type; String? macAID; String? macBID; + DateTime lastSeen; // 添加的最后可见时间字段 BlueToothDataModel({ this.name = '', @@ -19,6 +20,7 @@ class BlueToothDataModel { required this.type, this.macA = '', this.macB = '', + required this.lastSeen, // 添加到构造函数参数 }); factory BlueToothDataModel.fromScanResult(ScanResult result, int type, @@ -28,6 +30,14 @@ class BlueToothDataModel { name.isNotEmpty ? name : (result.advertisementData.localName ?? ''); return BlueToothDataModel( - name: finalName, bind: bind, mac: mac, scanResult: result, type: type); + name: finalName, + bind: bind, + mac: mac, + scanResult: result, + type: type, + macA: '', // 保持原有默认值 + macB: '', // 保持原有默认值 + lastSeen: DateTime.now(), // 设置为当前时间 + ); } -} +} \ No newline at end of file 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 58ec9ca..146549c 100644 --- a/lib/pages/mh_page/homepage/mht_sleep_report_page.dart +++ b/lib/pages/mh_page/homepage/mht_sleep_report_page.dart @@ -4,6 +4,7 @@ import 'package:flutterflow_ui/flutterflow_ui.dart'; 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/component/NullDataComponentWidget.dart'; import 'package:vbvs_app/component/tool/TopSlideNotification.dart'; import 'package:vbvs_app/controller/user_info_controller.dart'; import 'package:vbvs_app/pages/mh_page/homepage/controller/mht_home_controller.dart'; @@ -38,11 +39,11 @@ class _MhtSleepReportPageState extends State { deviceController.getDeviceList(group: 'room').then((apiResponse) { if (apiResponse.code != HttpStatusCodes.ok) { if (context.mounted) { - TopSlideNotification.show( - context, - text: apiResponse.msg!, - textColor: themeController.currentColor.sc9, - ); + // TopSlideNotification.show( + // context, + // text: apiResponse.msg!, + // textColor: themeController.currentColor.sc9, + // ); } } else { //请求睡眠报告 @@ -257,6 +258,9 @@ class _MhtSleepReportPageState extends State { ), ); } + if (userInfoController.model.login != null && + userInfoController.model.login == 1) + return Expanded(child: NullDataWidget()); return Container(); }), @@ -273,7 +277,7 @@ class _MhtSleepReportPageState extends State { 'backgroundImg': 'assets/images/new_background.png', 'arrow': false, - 'noBackImg':true, + 'noBackImg': true, }, ), ); diff --git a/lib/pages/mh_page/homepage/new_Home_page.dart b/lib/pages/mh_page/homepage/new_Home_page.dart index c72abe3..0e9a4de 100644 --- a/lib/pages/mh_page/homepage/new_Home_page.dart +++ b/lib/pages/mh_page/homepage/new_Home_page.dart @@ -45,20 +45,20 @@ class _NewHomePageState extends State { // homeController.getSleepReport(); deviceController.getDeviceNum().then((apiResponse) { if (apiResponse.code != HttpStatusCodes.ok) { - TopSlideNotification.show( - Get.context!, - text: apiResponse.msg!, - textColor: themeController.currentColor.sc9, - ); + // TopSlideNotification.show( + // Get.context!, + // text: apiResponse.msg!, + // textColor: themeController.currentColor.sc9, + // ); } }); deviceController.getDeviceList(group: 'room').then((apiResponse) { if (apiResponse.code != HttpStatusCodes.ok) { - TopSlideNotification.show( - Get.context!, - text: apiResponse.msg!, - textColor: themeController.currentColor.sc9, - ); + // TopSlideNotification.show( + // Get.context!, + // text: apiResponse.msg!, + // textColor: themeController.currentColor.sc9, + // ); } else { //请求睡眠报告 // deviceController.getSleepReport(); @@ -105,11 +105,11 @@ class _NewHomePageState extends State { Widget build(BuildContext context) { deviceController.getDeviceList(group: 'room').then((apiResponse) { if (apiResponse.code != HttpStatusCodes.ok) { - TopSlideNotification.show( - context, - text: apiResponse.msg!, - textColor: themeController.currentColor.sc9, - ); + // TopSlideNotification.show( + // context, + // text: apiResponse.msg!, + // textColor: themeController.currentColor.sc9, + // ); } else { //请求睡眠报告 // deviceController.getSleepReport(); @@ -121,21 +121,21 @@ class _NewHomePageState extends State { //请求绑定设备列表 // homeController.getSleepReport(); deviceController.getDeviceNum().then((apiResponse) { - if (apiResponse.code != HttpStatusCodes.ok) { - TopSlideNotification.show( - Get.context!, - text: apiResponse.msg!, - textColor: themeController.currentColor.sc9, - ); - } + // if (apiResponse.code != HttpStatusCodes.ok) { + // TopSlideNotification.show( + // Get.context!, + // text: apiResponse.msg!, + // textColor: themeController.currentColor.sc9, + // ); + // } }); deviceController.getDeviceList(group: 'room').then((apiResponse) { if (apiResponse.code != HttpStatusCodes.ok) { - TopSlideNotification.show( - Get.context!, - text: apiResponse.msg!, - textColor: themeController.currentColor.sc9, - ); + // TopSlideNotification.show( + // Get.context!, + // text: apiResponse.msg!, + // textColor: themeController.currentColor.sc9, + // ); } else { //请求睡眠报告 // deviceController.getSleepReport(); diff --git a/lib/pages/mh_page/test/WebviewTestModel.dart b/lib/pages/mh_page/test/WebviewTestModel.dart index 7646d81..a9d1e2b 100644 --- a/lib/pages/mh_page/test/WebviewTestModel.dart +++ b/lib/pages/mh_page/test/WebviewTestModel.dart @@ -32,8 +32,8 @@ class WebviewTestController extends GetControllerEx { WebviewTestController() : super(WebviewTestModel()) { web = WebviewHelper( jsbridge: buildsdk( - // father: this, - // clientId: '494641114', + father: this, + clientId: '494641114', // dbgserverUrl: 'ws://192.168.1.2:9001', ), settings: buildsettings(), @@ -61,10 +61,6 @@ class WebviewTestController extends GetControllerEx { return true; }); bridge.sdk.selectDevice((args) async { -<<<<<<< HEAD - ef.log('selectDevice: $args'); - selectDevice = args[0]; -======= try { ef.log('selectDevice: $args'); selectDevice = args[0]; @@ -82,7 +78,6 @@ class WebviewTestController extends GetControllerEx { //查询人员信息 ->>>>>>> 13eb25e1c30dcd81c87aa85bcb5306ca0931ed21 return true; }); bridge.sdk.updateBlueToothStatus((args) async { diff --git a/lib/pages/sleep_report/chart/TimeSeriesChart.dart b/lib/pages/sleep_report/chart/TimeSeriesChart.dart index f3ce82f..b4975a4 100644 --- a/lib/pages/sleep_report/chart/TimeSeriesChart.dart +++ b/lib/pages/sleep_report/chart/TimeSeriesChart.dart @@ -1,6 +1,5 @@ -import 'package:flutter/material.dart'; import 'package:fl_chart/fl_chart.dart'; -import 'package:vbvs_app/common/color/appConstants.dart'; +import 'package:flutter/material.dart'; import 'package:vbvs_app/common/util/FitTool.dart'; import 'package:vbvs_app/common/util/MyUtils.dart'; diff --git a/lib/pages/sleep_report/component/HeartChangeWidget.dart b/lib/pages/sleep_report/component/HeartChangeWidget.dart index 7e4b92c..13aa542 100644 --- a/lib/pages/sleep_report/component/HeartChangeWidget.dart +++ b/lib/pages/sleep_report/component/HeartChangeWidget.dart @@ -148,13 +148,16 @@ class _HeartChangeWidgetState extends State { alignment: MainAxisAlignment.center, widget1: Row( children: [ - Text( - '${data['name']}', - maxLines: 1, - overflow: TextOverflow.ellipsis, - style: TextStyle( - color: themeController.currentColor.sc3, - fontSize: AppConstants().normal_text_fontSize, + Expanded( + child: Text( + '${data['name']}', + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: TextStyle( + color: themeController.currentColor.sc3, + fontSize: + AppConstants().normal_text_fontSize, + ), ), ), ClickableContainer( @@ -261,7 +264,7 @@ class _HeartChangeWidgetState extends State { ), ); } catch (e) { - es.EasyDartModule.logger.error("打鼾监测绘制异常${e}"); + es.EasyDartModule.logger.error("打鼾监测绘制异常${e}"); return Container(); } } diff --git a/lib/pages/sleep_report/new_sleep_report_page.dart b/lib/pages/sleep_report/new_sleep_report_page.dart index 7252701..2e69418 100644 --- a/lib/pages/sleep_report/new_sleep_report_page.dart +++ b/lib/pages/sleep_report/new_sleep_report_page.dart @@ -6,10 +6,10 @@ import 'package:vbvs_app/common/color/appConstants.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'; -import 'package:vbvs_app/controller/home/home_controller.dart'; import 'package:vbvs_app/controller/sleep/sleep_report_controller.dart'; import 'package:vbvs_app/language/AppLanguage.dart'; import 'package:vbvs_app/pages/common/selectDialog.dart'; @@ -147,8 +147,15 @@ class _NewSleepReportPageState extends State { _scrollToTargetComponent(sleepReportController.sleepReport); }, onFailure: (res) { - TopSlideNotification.show(context, - text: res.msg!, textColor: themeController.currentColor.sc9); + if (MainPageBBottomChange.getCurrentIndex() != null) { + if (MainPageBBottomChange.getCurrentIndex() == 1) { + TopSlideNotification.show(context, + text: res.msg!, textColor: themeController.currentColor.sc9); + } + } else { + TopSlideNotification.show(context, + text: res.msg!, textColor: themeController.currentColor.sc9); + } sleepReportController.sleepReport.value = {}; sleepReportController.updateAll(); print(res); @@ -609,6 +616,12 @@ class _NewSleepReportPageState extends State { ), ), ), + if (sleepReport.value == null || + sleepReport.value.isEmpty) + Container( + height: 500.rpx, + child: NullDataWidget(), + ), Padding( padding: EdgeInsetsDirectional.fromSTEB( 30.rpx, 0.rpx, 30.rpx, 0), @@ -851,8 +864,16 @@ class _NewSleepReportPageState extends State { sleepReportController.updateAll(); }, onFailure: (res) { - TopSlideNotification.show(context, - text: res.msg!, textColor: themeController.currentColor.sc9); + if (MainPageBBottomChange.getCurrentIndex() != null) { + if (MainPageBBottomChange.getCurrentIndex() == 1) { + TopSlideNotification.show(context, + text: res.msg!, + textColor: themeController.currentColor.sc9); + } + } else { + TopSlideNotification.show(context, + text: res.msg!, textColor: themeController.currentColor.sc9); + } sleepReportController.sleepReport.value = {}; sleepReportController.updateAll(); print(res); @@ -890,8 +911,16 @@ class _NewSleepReportPageState extends State { sleepReportController.updateAll(); }, onFailure: (res) { - TopSlideNotification.show(context, - text: res.msg!, textColor: themeController.currentColor.sc9); + if (MainPageBBottomChange.getCurrentIndex() != null) { + if (MainPageBBottomChange.getCurrentIndex() == 1) { + TopSlideNotification.show(context, + text: res.msg!, + textColor: themeController.currentColor.sc9); + } + } else { + TopSlideNotification.show(context, + text: res.msg!, textColor: themeController.currentColor.sc9); + } sleepReportController.sleepReport.value = {}; sleepReportController.updateAll(); print(res); @@ -974,9 +1003,17 @@ class _NewSleepReportPageState extends State { sleepReportController.updateAll(); }, onFailure: (res) { - TopSlideNotification.show(context, - text: res.msg!, - textColor: themeController.currentColor.sc9); + if (MainPageBBottomChange.getCurrentIndex() != null) { + if (MainPageBBottomChange.getCurrentIndex() == 1) { + TopSlideNotification.show(context, + text: res.msg!, + textColor: themeController.currentColor.sc9); + } + } else { + TopSlideNotification.show(context, + text: res.msg!, + textColor: themeController.currentColor.sc9); + } sleepReportController.sleepReport.value = {}; sleepReportController.updateAll(); print(res); diff --git a/pubspec.yaml b/pubspec.yaml index 729babb..ebb1971 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -66,7 +66,7 @@ dependencies: easyweb: git: url: https://gitea.wslpc.real.he-info.cn:94/flutter/easyweb.git - ref: e86d515f77 + ref: main archive: ^4.0.0