From 1356eb9e19f55b919da558941f359862992a1501 Mon Sep 17 00:00:00 2001 From: czz <862977248@qq.com> Date: Wed, 23 Jul 2025 13:55:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E4=BA=AB=E8=AE=BE=E5=A4=87=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/common/color/ServiceConstant.dart | 1 + lib/common/util/MyUtils.dart | 47 +- .../mh_controller/device_list_controller.dart | 28 +- .../mhdevice_share_controller.dart | 1 - .../mhdevice_share_controller.g.dart | 4 +- lib/main.dart | 49 +- lib/pages/device_bind/device_calibration.dart | 3 + lib/pages/device_bind/device_share_page.dart | 1 - lib/pages/login/other_login.dart | 2 +- lib/pages/mh_page/BackMovement.dart | 2 +- lib/pages/mh_page/HomeDeviceType.dart | 2 +- lib/pages/mh_page/LanguagePage.dart | 2 +- .../mh_page/ShareDeviceDetailWidget.dart | 652 +++++++++++------- lib/pages/mh_page/ShareUserWidget.dart | 19 +- lib/pages/mh_page/Vital_signs_sensor.dart | 2 +- lib/pages/mh_page/about_us.dart | 32 +- lib/pages/mh_page/address_list_page.dart | 2 +- lib/pages/mh_page/apply_repair_page.dart | 5 +- lib/pages/mh_page/bluetooth.dart | 128 +--- lib/pages/mh_page/book_info_page.dart | 2 +- lib/pages/mh_page/book_success_page.dart | 2 +- lib/pages/mh_page/delete_account.dart | 2 +- lib/pages/mh_page/device/device.dart | 3 +- .../mh_page/device/mht_bind_device_type.dart | 2 +- lib/pages/mh_page/device/mht_people_info.dart | 2 +- lib/pages/mh_page/device_list.dart | 2 +- lib/pages/mh_page/device_people_info.dart | 6 +- lib/pages/mh_page/device_share_page.dart | 5 +- lib/pages/mh_page/edit_address_page.dart | 2 +- lib/pages/mh_page/edit_bed.dart | 8 +- lib/pages/mh_page/experience_store_page.dart | 2 +- lib/pages/mh_page/help/article.dart | 2 +- .../mht_sleep_report_page_return.dart | 2 +- lib/pages/mh_page/homepage/new_Home_page.dart | 2 +- lib/pages/mh_page/issue_list_page.dart | 2 +- lib/pages/mh_page/message/messageDetail.dart | 4 +- lib/pages/mh_page/message_page.dart | 62 +- lib/pages/mh_page/my_experience_page.dart | 2 +- lib/pages/mh_page/new_mine_page.dart | 60 +- lib/pages/mh_page/new_settingPage.dart | 2 +- lib/pages/mh_page/people_info.dart | 2 +- lib/pages/mh_page/privacy_policy.dart | 2 +- lib/pages/mh_page/repair_history_page.dart | 2 +- lib/pages/mh_page/repair_list.dart | 2 +- lib/pages/mh_page/room_picker.dart | 2 +- lib/pages/mh_page/score_page.dart | 2 +- lib/pages/mh_page/sleep_habit.dart | 2 +- lib/pages/mh_page/smys.dart | 3 +- .../mh_page/user/page/edit_userinfo_page.dart | 2 +- .../mh_page/user/page/find_password_page.dart | 2 +- .../mh_page/user/page/mht_login_page.dart | 12 +- .../mh_page/user/page/register_page.dart | 4 +- lib/pages/mh_page/user/page/rxhx_mht.dart | 2 +- .../user/page/update_password_page.dart | 2 +- lib/pages/mh_page/user_agreement_page.dart | 2 +- .../mht_new_sleep_report_page.dart | 2 +- .../new_sleep_report_page copy.dart | 2 +- .../sleep_report/new_sleep_report_page.dart | 4 +- lib/pages/sleep_report/sleep_report_page.dart | 2 +- lib/pages/xiaoe/xiaoe_page.dart | 2 +- lib/routers/mh_routers.dart | 3 +- 61 files changed, 648 insertions(+), 568 deletions(-) diff --git a/lib/common/color/ServiceConstant.dart b/lib/common/color/ServiceConstant.dart index 82d7f18..1db5b05 100644 --- a/lib/common/color/ServiceConstant.dart +++ b/lib/common/color/ServiceConstant.dart @@ -17,6 +17,7 @@ class ServiceConstant { static String person_info = "/api/personnel/info"; //用户资料 static String sleep_report = "/api/device/sleep/data"; //睡眠报告 static String device_share = "/api/device/share"; //分享设备 + static String message_list = "/api/mesasge/list"; //消息列表 static String message_read = "/api/mesasge/read"; //消息未读数量 static String device_show = "/api/device/bind"; //更新设备绑定 diff --git a/lib/common/util/MyUtils.dart b/lib/common/util/MyUtils.dart index c73cf20..a91bf56 100644 --- a/lib/common/util/MyUtils.dart +++ b/lib/common/util/MyUtils.dart @@ -379,24 +379,41 @@ var returnIconButtom = IconButton( icon: Icon(Icons.navigate_before, size: 60.rpx), ); -var returnIconButtomNew = ClickableContainer( +// var returnIconButtomNew = ClickableContainer( +// backgroundColor: Colors.transparent, +// highlightColor: Colors.transparent, +// padding: EdgeInsets.fromLTRB(20.rpx, 20.rpx, 20.rpx, 20.rpx), +// onTap: () => Get.back(), +// child: Container( +// // height: 42.rpx, +// // width: 42.rpx, +// child: SvgPicture.asset( +// 'assets/img/icon/return_buttom.svg', +// width: 42.rpx, +// height: 42.rpx, +// ), +// // SvgPicture.asset( +// // 'assets/img/icon/expand.svg', +// // color: Colors.white, +// // ) +// )); + +Widget returnIconButtomNew({VoidCallback? onBack}) { + return ClickableContainer( backgroundColor: Colors.transparent, highlightColor: Colors.transparent, padding: EdgeInsets.fromLTRB(20.rpx, 20.rpx, 20.rpx, 20.rpx), - onTap: () => Get.back(), - child: Container( - // height: 42.rpx, - // width: 42.rpx, - child: SvgPicture.asset( - 'assets/img/icon/return_buttom.svg', - width: 42.rpx, - height: 42.rpx, - ), - // SvgPicture.asset( - // 'assets/img/icon/expand.svg', - // color: Colors.white, - // ) - )); + onTap: () { + if (onBack != null) onBack(); // 执行回调 + Get.back(); // 返回 + }, + child: SvgPicture.asset( + 'assets/img/icon/return_buttom.svg', + width: 42.rpx, + height: 42.rpx, + ), + ); +} // IconButton( // padding: EdgeInsets.zero, // 去除默认 padding diff --git a/lib/controller/mh_controller/device_list_controller.dart b/lib/controller/mh_controller/device_list_controller.dart index 45eb2df..846bc20 100644 --- a/lib/controller/mh_controller/device_list_controller.dart +++ b/lib/controller/mh_controller/device_list_controller.dart @@ -3,12 +3,14 @@ import 'dart:ui'; import 'package:EasyDartModule/EasyDartModule.dart'; import 'package:ef/ef.dart'; +import 'package:flutter/material.dart'; import 'package:json_annotation/json_annotation.dart'; import 'package:vbvs_app/common/color/ServiceConstant.dart'; import 'package:vbvs_app/common/color/app_uri_status.dart'; import 'package:vbvs_app/common/util/DailyLogUtils.dart'; import 'package:vbvs_app/common/util/MyUtils.dart'; import 'package:vbvs_app/common/util/requestWithLog.dart'; +import 'package:vbvs_app/component/tool/TopSlideNotification.dart'; import 'package:vbvs_app/controller/mh_controller/device.dart'; import 'package:vbvs_app/model/api_response.dart'; @@ -19,7 +21,7 @@ part 'device_list_controller.g.dart'; class DeviceListModel { //设备列表 List deviceList = []; - ListvitalList=[]; + List vitalList = []; @JsonKey(ignore: true) String? keyword; @@ -71,6 +73,7 @@ class DeviceListController extends GetControllerEx { } return ApiResponse(code: -1, msg: "未知错误".tr); // Default return statement } + //体征传感器 getVitalList(String mac) async { try { @@ -133,4 +136,27 @@ class DeviceListController extends GetControllerEx { ); return msg; } + + unbindShareDevice(String id, String mac, BuildContext context) async { + String serviceAddress = ServiceConstant.service_address; + String serviceName = ServiceConstant.server_service; + String serviceApi = ServiceConstant.device_bind; + String queryUrl = "${serviceAddress}${serviceName}${serviceApi}"; + String msg = ''; + + await requestWithLog( + logTitle: '解绑设备', + method: MyHttpMethod.delete, + queryUrl: queryUrl, + data: {"mac": mac, "uid": id}, + onSuccess: (res) { + TopSlideNotification.show(context, + text: res.msg!, textColor: Color(0XFF00C1AA)); + }, + onFailure: (err) { + TopSlideNotification.show(context, + text: err.msg!, textColor: Color(0xFFFF7159)); + }, + ); + } } diff --git a/lib/controller/mh_controller/mhdevice_share_controller.dart b/lib/controller/mh_controller/mhdevice_share_controller.dart index 545a2cc..c8f8abc 100644 --- a/lib/controller/mh_controller/mhdevice_share_controller.dart +++ b/lib/controller/mh_controller/mhdevice_share_controller.dart @@ -33,7 +33,6 @@ class MHDeviceShareModel { // {"type": 2} // ]; List? shareUser = []; - Map mainShare = {}; MHDeviceShareModel(); static MHDeviceShareModel fromJson(Map json) => diff --git a/lib/controller/mh_controller/mhdevice_share_controller.g.dart b/lib/controller/mh_controller/mhdevice_share_controller.g.dart index 4cceecd..1d70fb2 100644 --- a/lib/controller/mh_controller/mhdevice_share_controller.g.dart +++ b/lib/controller/mh_controller/mhdevice_share_controller.g.dart @@ -17,8 +17,7 @@ MHDeviceShareModel _$MHDeviceShareModelFromJson(Map json) => ..offset = (json['offset'] as num).toInt() ..isLoading = json['isLoading'] as bool ..hasMore = json['hasMore'] as bool - ..shareUser = json['shareUser'] as List? - ..mainShare = json['mainShare'] as Map; + ..shareUser = json['shareUser'] as List?; Map _$MHDeviceShareModelToJson(MHDeviceShareModel instance) => { @@ -32,5 +31,4 @@ Map _$MHDeviceShareModelToJson(MHDeviceShareModel instance) => 'isLoading': instance.isLoading, 'hasMore': instance.hasMore, 'shareUser': instance.shareUser, - 'mainShare': instance.mainShare, }; diff --git a/lib/main.dart b/lib/main.dart index d7d5f91..dc164da 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -80,7 +80,7 @@ import 'routers/routers.dart'; Future main() async { WidgetsFlutterBinding.ensureInitialized(); - + final Locale? deviceLocale = Get.deviceLocale; print('系统语言: ${deviceLocale?.languageCode}'); @@ -99,7 +99,7 @@ Future main() async { await initLogin(); await messageStatus(); - startMessagePolling(); + startMessagePolling(selectapp); // 检查网络 Checknetwork.checkNetwork(); // 微信开放平台注册 @@ -139,26 +139,45 @@ initLanguageSetting() { Future initWX() async { Fluwx fluwx = Fluwx(); fluwx.registerApi( - //请填写自己的微信appid - // appId: "wxeb2688220799e2c5",//太和 - appId: "wx929c548fea6af9c7",//眠花糖 - doOnAndroid: true, - doOnIOS: true, - // universalLink: "https://app.he-info.com/theh/", - universalLink: "https://zhmht.swes.com.cn/app/", - ); + //请填写自己的微信appid + // appId: "wxeb2688220799e2c5",//太和 + appId: "wx929c548fea6af9c7", //眠花糖 + doOnAndroid: true, + doOnIOS: true, + // universalLink: "https://app.he-info.com/theh/", + universalLink: "https://zhmht.swes.com.cn/app/", + ); } Timer? _messageTimer; -void startMessagePolling() { - // 避免重复启动 +// void startMessagePolling() { +// // 避免重复启动 +// _messageTimer?.cancel(); + +// _messageTimer = Timer.periodic(Duration(seconds: 10), (timer) async { +// try { +// MessageController messageController = Get.find(); +// messageController.getMessageStatus(); +// // print("轮询消息状态成功"); +// } catch (e) { +// print("轮询消息状态失败: $e"); +// } +// }); +// } +void startMessagePolling(String selectapp) { _messageTimer?.cancel(); _messageTimer = Timer.periodic(Duration(seconds: 10), (timer) async { try { - MessageController messageController = Get.find(); - messageController.getMessageStatus(); - // print("轮询消息状态成功"); + if (selectapp == 'mht') { + if (Get.isRegistered()) { + Get.find().getMessageStatus(); + } + } else { + if (Get.isRegistered()) { + Get.find().getMessageStatus(); + } + } } catch (e) { print("轮询消息状态失败: $e"); } diff --git a/lib/pages/device_bind/device_calibration.dart b/lib/pages/device_bind/device_calibration.dart index 0a40f7a..f46aaa6 100644 --- a/lib/pages/device_bind/device_calibration.dart +++ b/lib/pages/device_bind/device_calibration.dart @@ -90,6 +90,9 @@ class _CalibrationPageState extends State { fontSize: 30.rpx, ), ), + + + Positioned( left: 0, child: returnIconButtomAddCallback(() { diff --git a/lib/pages/device_bind/device_share_page.dart b/lib/pages/device_bind/device_share_page.dart index f785d98..c90eb8c 100644 --- a/lib/pages/device_bind/device_share_page.dart +++ b/lib/pages/device_bind/device_share_page.dart @@ -318,7 +318,6 @@ class _DeviceSharePageState extends State { text: apiResponse.msg!, textColor: themeController.currentColor.sc9); } - }, colors: [ // 渐变色 diff --git a/lib/pages/login/other_login.dart b/lib/pages/login/other_login.dart index b665561..de38d73 100644 --- a/lib/pages/login/other_login.dart +++ b/lib/pages/login/other_login.dart @@ -138,7 +138,7 @@ class _OtherLoginPageState extends State { // height: 25.rpx, // 如果 SVG 中没有固定颜色,使用 color 设置 // color: themeController.currentColor.sc3, // ), - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ), Expanded( diff --git a/lib/pages/mh_page/BackMovement.dart b/lib/pages/mh_page/BackMovement.dart index 9ded08c..03e7338 100644 --- a/lib/pages/mh_page/BackMovement.dart +++ b/lib/pages/mh_page/BackMovement.dart @@ -50,7 +50,7 @@ class _BackMovementPageState extends State { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/HomeDeviceType.dart b/lib/pages/mh_page/HomeDeviceType.dart index d440ee9..914893f 100644 --- a/lib/pages/mh_page/HomeDeviceType.dart +++ b/lib/pages/mh_page/HomeDeviceType.dart @@ -58,7 +58,7 @@ class _HomeDeviceTypeState extends State { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/LanguagePage.dart b/lib/pages/mh_page/LanguagePage.dart index 89426a0..206660f 100644 --- a/lib/pages/mh_page/LanguagePage.dart +++ b/lib/pages/mh_page/LanguagePage.dart @@ -66,7 +66,7 @@ class LanguagePage extends GetView { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/ShareDeviceDetailWidget.dart b/lib/pages/mh_page/ShareDeviceDetailWidget.dart index 0c2b028..9b8ebea 100644 --- a/lib/pages/mh_page/ShareDeviceDetailWidget.dart +++ b/lib/pages/mh_page/ShareDeviceDetailWidget.dart @@ -1,43 +1,60 @@ +import 'dart:io'; + import 'package:ef/base/widget/flutterflow/FlutterFlowTheme.dart'; import 'package:ef/ef.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:flutterflow_ui/flutterflow_ui.dart'; -import 'package:vbvs_app/common/color/appColors.dart'; +import 'package:fluwx/fluwx.dart'; +import 'package:vbvs_app/common/color/ServiceConstant.dart'; 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/tool/CustomCard.dart'; +import 'package:vbvs_app/component/tool/TopSlideNotification.dart'; +import 'package:vbvs_app/controller/mh_controller/device_list_controller.dart'; import 'package:vbvs_app/controller/mh_controller/mhdevice_share_controller.dart'; -import 'package:vbvs_app/pages/common/selectDialog.dart'; +import 'package:vbvs_app/pages/mh_page/test/WebviewTestModel.dart'; import '../../common/color/appFontsize.dart'; class ShareDeviceDetailWidget extends GetView { final scaffoldKey = GlobalKey(); + Map data; + ShareDeviceDetailWidget({super.key, required this.data}); + getLine() { + return Divider( + color: const Color(0XFF929699), + thickness: 0.5.rpx, + ); + } + var opType = 1.obs; + bool isProgrammaticPop = false; // 标记变量 + DateTime? _lastBackPressedTime; // 记录上一次返回的时间 + DeviceListController deviceListController = Get.find(); @override Widget build(BuildContext context) { - MHDeviceShareController deviceShareController = Get.find(); - var shareInfo = deviceShareController.model.mainShare; - RxInt type = 1.obs; - type.value = shareInfo['op_type']; - + opType.value = data['info'][3]['opType']; return GestureDetector( - // onTap: () => FocusScope.of(context).unfocus(),, + // onTap: () => FocusScope.of(context).unfocus(),, + child: Container( + decoration: const BoxDecoration( + image: DecorationImage( + image: AssetImage('assets/images/new_background.png'), // 本地图片 + fit: BoxFit.fill, // 填满整个 Container + ), + ), child: Scaffold( key: scaffoldKey, - backgroundColor: FlutterFlowTheme.of(context).primaryBackground, + backgroundColor: Colors.transparent, appBar: AppBar( backgroundColor: Colors.transparent, automaticallyImplyLeading: false, - iconTheme: IconThemeData(color: Colors.white), + iconTheme: const IconThemeData(color: Colors.white), titleSpacing: 0, - // leading: returnIconButtomAddCallback(() { - // controller.saveDataApi(); - // updateParm(isShowToast: false); - // }), - // leading: returnIconButtomNew, - title: Container( + title: SizedBox( width: double.infinity, height: 180.rpx, child: Stack( @@ -55,265 +72,404 @@ class ShareDeviceDetailWidget extends GetView { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(onBack: () async { + try { + String serviceAddress = ServiceConstant.service_address; + String serviceName = ServiceConstant.server_service; + String serviceApi = ServiceConstant.device_show; + String queryUrl = + "$serviceAddress$serviceName$serviceApi"; + await requestWithLog( + logTitle: "更新设备信息", + method: MyHttpMethod.put, + queryUrl: queryUrl, + data: { + "id": data['info'][4]["id"], + "opType": opType.value + }, + onSuccess: (res) { + TopSlideNotification.show(context, + text: "更新成功".tr, textColor: Color(0XFF00C1AA)); + deviceListController.getDeviceList(); + try { + WebviewTestController webviewTestController = + Get.find(); + webviewTestController.web.jsbridge?.dart + .alterDevice(); + } catch (e) { + ef.log("[h5]通知列表更新错误:$e"); + } + }, + onFailure: (res) { + TopSlideNotification.show(context, + text: "更新失败".tr, textColor: Color(0xFFFF7159)); + }, + ); + } catch (e) { + print(e); + } + }), ), ], ), ), - - actions: [], centerTitle: false, ), - body: Container( - width: MediaQuery.sizeOf(context).width, - height: MediaQuery.sizeOf(context).height * 1, - decoration: BoxDecoration( - color: Color(0xFFF6F6F6), - ), - child: Padding( - padding: EdgeInsetsDirectional.fromSTEB(15, 0, 15, 0), - child: Column( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Padding( - padding: EdgeInsetsDirectional.fromSTEB(0, 13, 0, 0), - child: Container( + body: PopScope( + canPop: false, + onPopInvokedWithResult: (disposition, result) async { + if (isProgrammaticPop) { + // 如果是程序触发,重置标记并忽略 + isProgrammaticPop = false; + return; // 阻止处理 + } + try { + String serviceAddress = ServiceConstant.service_address; + String serviceName = ServiceConstant.server_service; + String serviceApi = ServiceConstant.device_show; + String queryUrl = "$serviceAddress$serviceName$serviceApi"; + await requestWithLog( + logTitle: "更新设备信息", + method: MyHttpMethod.put, + queryUrl: queryUrl, + data: {"id": data['info'][4]["id"], "opType": opType.value}, + onSuccess: (res) { + TopSlideNotification.show(context, + text: "更新成功".tr, textColor: Color(0XFF00C1AA)); + deviceListController.getDeviceList(); + try { + WebviewTestController webviewTestController = Get.find(); + webviewTestController.web.jsbridge?.dart.alterDevice(); + } catch (e) { + ef.log("[h5]通知列表更新错误:$e"); + } + }, + onFailure: (res) { + TopSlideNotification.show(context, + text: "更新失败".tr, textColor: Color(0xFFFF7159)); + }, + ); + } catch (e) { + print(e); + } + if (Platform.isAndroid) { + var flag = await _handleBackPressed(context); // 自定义返回逻辑 + if (flag) { + SystemNavigator.pop(); + } + } + }, + child: Container( + width: MediaQuery.sizeOf(context).width, + height: MediaQuery.sizeOf(context).height * 1, + child: Padding( + padding: + EdgeInsetsDirectional.fromSTEB(30.rpx, 34.rpx, 30.rpx, 0), + child: Column( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( width: MediaQuery.sizeOf(context).width, decoration: BoxDecoration( - color: FlutterFlowTheme.of(context).secondaryBackground, borderRadius: BorderRadius.circular(8), ), - child: Padding( - padding: EdgeInsetsDirectional.fromSTEB(16, 13, 16, 15), - child: Column( + child: Column( mainAxisSize: MainAxisSize.max, crossAxisAlignment: CrossAxisAlignment.start, children: [ - Column( - mainAxisSize: MainAxisSize.max, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - '${shareInfo['userName']}', - style: FlutterFlowTheme.of(context) - .bodyMedium - .override( - fontFamily: 'Readex Pro', - color: Color(0xFF333333), - fontSize: 15, - letterSpacing: 0.0, - fontWeight: FontWeight.bold, - ), - ), - Text( - '分享时间:${MyUtils.timestampToDateString(int.parse(shareInfo['startTime'].toString()))}', - style: FlutterFlowTheme.of(context) - .bodyMedium - .override( - fontFamily: 'Readex Pro', - color: Color(0xFF9EA4B7), - fontSize: 11, - letterSpacing: 0.0, - ), - ), - ].divide(SizedBox(height: 5)), + Padding( + padding: EdgeInsetsDirectional.only( + start: 27.rpx, bottom: 18.rpx), + child: Column( + mainAxisSize: MainAxisSize.max, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + data['info'][0]['v'], + // '${shareInfo['userName']}', + style: FlutterFlowTheme.of(context) + .bodyMedium + .override( + fontFamily: 'Readex Pro', + color: const Color(0xFFFFFFFF), + fontSize: 28.rpx, + letterSpacing: 0.0, + ), + ), + Text( + '分享时间:${data['info'][2]['v']}', + style: FlutterFlowTheme.of(context) + .bodyMedium + .override( + fontFamily: 'Readex Pro', + color: const Color(0xFF9EA4B7), + fontSize: 20.rpx, + letterSpacing: 0.0, + ), + ), + ].divide(SizedBox(height: 10.rpx)), + ), ), - Obx( - () => GestureDetector( - onTap: () { - // 当点击时,将 type 设置为 0(允许控制) - type.value = 1; - controller.updateAll(); - }, - child: Container( - width: MediaQuery.sizeOf(context).width, - constraints: BoxConstraints( - minHeight: 46, - ), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(0), - ), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: - MainAxisAlignment.spaceBetween, + getLine(), + SizedBox( + height: 25.rpx, + ), + Container( + decoration: BoxDecoration( + color: Color(0xFF003058), + borderRadius: BorderRadius.circular(16.rpx)), + child: Padding( + padding: EdgeInsetsDirectional.only( + start: 38.rpx, + top: 50.rpx, + end: 30.rpx, + bottom: 30.rpx), + child: Column( children: [ - Text( - '允许对方控制和查看该设备'.tr, - style: FlutterFlowTheme.of(context) - .bodyMedium - .override( - fontFamily: 'Readex Pro', - color: Color(0xFF333333), - fontSize: 13, - letterSpacing: 0.0, - ), + GestureDetector( + onTap: () { + // 当点击时,将 type 设置为 0(允许控制) + + data['info'][3]['opType'] = 1; + opType.value = 1; + }, + child: Container( + width: MediaQuery.sizeOf(context).width, + constraints: const BoxConstraints( + minHeight: 46, + ), + decoration: BoxDecoration( + borderRadius: + BorderRadius.circular(0), + ), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + '允许对方控制和查看该设备'.tr, + style: FlutterFlowTheme.of( + context) + .bodyMedium + .override( + fontFamily: 'Readex Pro', + color: + const Color(0xFFFFFFFF), + fontSize: 27.rpx, + letterSpacing: 0.0, + ), + ), + Obx(() { + return Container( + height: 33.rpx, + child: AspectRatio( + aspectRatio: 1, + child: Center( + child: Container( + height: 33.rpx, + width: 33.rpx, + decoration: BoxDecoration( + borderRadius: + BorderRadius + .circular( + 33.rpx / 2), + border: Border.all( + width: + opType.value == 1 + ? 1 + : 0.5, + color: + Color(0xFFC8CBD2), + ), + ), + child: opType.value == 1 + ? Center( + child: ClipOval( + child: + Container( + width: + 33.rpx * + 0.6, + height: + 33.rpx * + 0.6, + color: const Color( + 0xFF6BFDAC), + ), + ), + ) + : null, + ), + ), + ), + ); + }) + ], + ), + ), ), - Align( - alignment: AlignmentDirectional(0, -1), - child: Icon( - type.value == 1 - ? Icons.check_circle // 选中时为实心圆 - : Icons - .radio_button_unchecked, // 未选中时为空心圆 - color: type.value == 1 - ? Color(0xFFD3B684) // 选中时的颜色 - : Colors.grey, // 未选中时的颜色 - size: 18, + GestureDetector( + onTap: () { + // 当点击时,将 type 设置为 1(仅允许查看) + data['info'][3]['opType'] = 2; + opType.value = 2; + }, + child: Container( + width: MediaQuery.sizeOf(context).width, + constraints: const BoxConstraints( + minHeight: 46, + ), + decoration: BoxDecoration( + borderRadius: + BorderRadius.circular(0), + ), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + '仅允许对方查看该设备'.tr, + style: FlutterFlowTheme.of( + context) + .bodyMedium + .override( + fontFamily: 'Readex Pro', + color: + const Color(0xFFFFFFFF), + fontSize: 27.rpx, + letterSpacing: 0.0, + ), + ), + Obx(() { + return Container( + height: 33.rpx, + child: AspectRatio( + aspectRatio: 1, + child: Center( + child: Container( + height: 33.rpx, + width: 33.rpx, + decoration: BoxDecoration( + borderRadius: + BorderRadius + .circular( + 33.rpx / 2), + border: Border.all( + width: + opType.value == 2 + ? 1 + : 0.5, + color: + Color(0xFFC8CBD2), + ), + ), + child: opType.value == 2 + ? Center( + child: ClipOval( + child: + Container( + width: + 33.rpx * + 0.6, + height: + 33.rpx * + 0.6, + color: const Color( + 0xFF6BFDAC), + ), + ), + ) + : null, + ), + ), + ), + ); + }) + ], + ), ), ), ], ), - ), - ), - ), - Obx( - () => GestureDetector( - onTap: () { - // 当点击时,将 type 设置为 1(仅允许查看) - type.value = 2; - controller.updateAll(); - }, - child: Container( - width: MediaQuery.sizeOf(context).width, - constraints: BoxConstraints( - minHeight: 46, - ), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(0), - ), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - children: [ - Text( - '仅允许对方查看该设备'.tr, - style: FlutterFlowTheme.of(context) - .bodyMedium - .override( - fontFamily: 'Readex Pro', - color: Color(0xFF333333), - fontSize: 13, - letterSpacing: 0.0, - ), - ), - Align( - alignment: AlignmentDirectional(0, -1), - child: Icon( - type.value == 2 - ? Icons.check_circle // 选中时为实心圆 - : Icons - .radio_button_unchecked, // 未选中时为空心圆 - color: type.value == 2 - ? Color(0xFFD3B684) // 选中时的颜色 - : Colors.grey, // 未选中时的颜色 - size: 18, - ), - ), - ], - ), - ), - ), - ), - ].divide(SizedBox(height: 13)), - ), - ), + )) + ]), ), - ), - Padding( - padding: EdgeInsetsDirectional.fromSTEB( - 15, 0, 15, AppConstants.page_button_bottom_padding), - child: Container( - width: MediaQuery.sizeOf(context).width, - height: MediaQuery.sizeOf(context).height * 0.056, - constraints: BoxConstraints( - minHeight: 46, - ), - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context).secondaryBackground, - ), + Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 0, 0, 0, AppConstants.page_button_bottom_padding), child: Container( - width: MediaQuery.sizeOf(context).width, - height: MediaQuery.sizeOf(context).height * 0.056, - decoration: BoxDecoration( - color: - FlutterFlowTheme.of(context).secondaryBackground, - borderRadius: BorderRadius.circular(12), - ), - child: CustomCard( - borderRadius: 16.rpx, - gradientDirection: GradientDirection.vertical, - onTap: () async {}, - colors: const [ - Color(0xFFFCFCFC), - Color(0xFFF8FAF9), - Color(0XFFECF6F3), - Color(0XFFD9F0E9), - Color(0xFFCEECE3) - ], - child: Container( - width: double.infinity, - height: 90.rpx, - alignment: Alignment.center, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(6), - ), - child: Text("解除分享".tr, - style: TextStyle( - color: const Color(0xFF003058), - fontSize: 30.rpx, - )), + width: MediaQuery.sizeOf(context).width, + height: MediaQuery.sizeOf(context).height * 0.056, + constraints: const BoxConstraints( + minHeight: 46, + ), + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context).secondaryBackground, + borderRadius: BorderRadius.circular(16.rpx), + ), + child: Container( + width: MediaQuery.sizeOf(context).width, + height: MediaQuery.sizeOf(context).height * 0.056, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context) + .secondaryBackground, + borderRadius: BorderRadius.circular(16.rpx), ), - ) - - // FFButtonWidget( - // onPressed: () { - // showCustomConfirmDialog(context, "是否确定删除?").then((v) { - // if ('confirm' == v) { - // // deviceShareController - // // .deleteShare(shareInfo) - // // .then((d) { - // // deviceShareController.initData(); - // // deviceShareController.updateAll(); - // // Get.back(); - // // }); - // // print("showCustomConfirmDialog $v"); - // } - // }); - // }, - // text: '删除', - // options: FFButtonOptions( - // height: 40, - // padding: EdgeInsetsDirectional.fromSTEB(24, 0, 24, 0), - // iconPadding: - // EdgeInsetsDirectional.fromSTEB(0, 0, 0, 0), - // color: Color(0xFFE55E92), - // textStyle: - // FlutterFlowTheme.of(context).titleSmall.override( - // fontFamily: 'Readex Pro', - // color: Colors.white, - // fontSize: 13, - // letterSpacing: 0.0, - // ), - // elevation: 3, - // borderSide: BorderSide( - // color: Colors.transparent, - // width: 1, - // ), - // borderRadius: BorderRadius.circular(8), - // ), - // ), - - ), + child: CustomCard( + borderRadius: 16.rpx, + gradientDirection: GradientDirection.vertical, + onTap: () async { + deviceListController.unbindShareDevice( + data['info'][5]['uid'], data['mac'], context); + }, + colors: const [ + Color(0xFFFCFCFC), + Color(0xFFF8FAF9), + Color(0XFFECF6F3), + Color(0XFFD9F0E9), + Color(0xFFCEECE3) + ], + child: Container( + width: double.infinity, + height: 90.rpx, + alignment: Alignment.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(16.rpx), + ), + child: Text("解除分享".tr, + style: TextStyle( + color: const Color(0xFF003058), + fontSize: 30.rpx, + )), + ), + )), + ), ), - ), - ], + ], + ), ), ), ), ), - ); + )); + } + + Future _handleBackPressed(BuildContext context) async { + final currentTime = DateTime.now(); + // 如果上次点击返回键时间为空,或者间隔超过 1 秒 + if (_lastBackPressedTime == null || + currentTime.difference(_lastBackPressedTime!) > Duration(seconds: 2)) { + _lastBackPressedTime = currentTime; + TopSlideNotification.show( + context, + text: "再按一次退出程序".tr, + ); + return false; // 阻止退出程序 + } else { + return true; // 允许退出程序 + } } } diff --git a/lib/pages/mh_page/ShareUserWidget.dart b/lib/pages/mh_page/ShareUserWidget.dart index abc09ad..544972e 100644 --- a/lib/pages/mh_page/ShareUserWidget.dart +++ b/lib/pages/mh_page/ShareUserWidget.dart @@ -10,17 +10,20 @@ import 'package:vbvs_app/controller/mh_controller/mhdevice_share_controller.dart class ShareUserWidget extends GetView { int index; MHDeviceShareController repairListController; - - ShareUserWidget({required this.index, required this.repairListController}) {} + String mac; + ShareUserWidget( + {required this.index, + required this.repairListController, + required this.mac}) {} @override Widget build(BuildContext context) { var info = repairListController.model.shareUser![index]; + // info = info.add({'mac': mac}); return InkWell( onTap: () { - repairListController.model.mainShare = - repairListController.model.shareUser![index]; - Get.toNamed('/shareDeviceDetail'); + Get.toNamed('/shareDeviceDetail', + arguments: {"mac": mac, "info": info}); }, child: Container( width: MediaQuery.sizeOf(context).width, @@ -62,7 +65,7 @@ class ShareUserWidget extends GetView { child: Align( alignment: const AlignmentDirectional(-1, 0), child: Text( - '${info['userName']}', + '${info[0]['v']}', style: TextStyle( fontFamily: 'Readex Pro', color: Colors.white, @@ -77,9 +80,9 @@ class ShareUserWidget extends GetView { child: Align( alignment: const AlignmentDirectional(-1, 0), child: Text( - info['op_type'] == 1 + info[3]['opType'] == 1 ? '允许对方控制和查看该设备'.tr - : info['op_type'] == 2 + : info[3]['opType'] == 2 ? '仅允许对方查看该设备'.tr : '', style: TextStyle( diff --git a/lib/pages/mh_page/Vital_signs_sensor.dart b/lib/pages/mh_page/Vital_signs_sensor.dart index ed4c37c..f0b6d56 100644 --- a/lib/pages/mh_page/Vital_signs_sensor.dart +++ b/lib/pages/mh_page/Vital_signs_sensor.dart @@ -80,7 +80,7 @@ class _VitalSignsSensorState extends State { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/about_us.dart b/lib/pages/mh_page/about_us.dart index 0e46000..6c74bd4 100644 --- a/lib/pages/mh_page/about_us.dart +++ b/lib/pages/mh_page/about_us.dart @@ -79,7 +79,7 @@ class _MhAboutUsPageState extends State { /// 左边返回按钮 Positioned( left: 0, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), @@ -88,36 +88,6 @@ class _MhAboutUsPageState extends State { actions: [], centerTitle: false, ), - - // body: SafeArea( - // top: true, - // child: Padding( - // padding: EdgeInsets.symmetric(horizontal: 30.rpx), - // child: Column( - // children: [ - // Expanded( - // child: Obx(() { - // if (pdfController.localPdfPath.value == null) { - // return Center(child: CircularProgressIndicator()); - // } else { - // return PDFView( - // filePath: pdfController.localPdfPath.value!, - // autoSpacing: false, - // enableSwipe: true, - // swipeHorizontal: false, - // pageSnap: true, - // fitEachPage: true, - // defaultPage: 0, - // onRender: (pages) => print('PDF 渲染完成,共 $pages 页'), - // onError: (error) => print('PDF 加载错误: $error'), - // ); - // } - // }), - // ), - // ], - // ), - // ), - // ), body: SafeArea( top: true, child: Padding( diff --git a/lib/pages/mh_page/address_list_page.dart b/lib/pages/mh_page/address_list_page.dart index bdc12a9..35ce42e 100644 --- a/lib/pages/mh_page/address_list_page.dart +++ b/lib/pages/mh_page/address_list_page.dart @@ -57,7 +57,7 @@ class AddressListPage extends GetView { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/apply_repair_page.dart b/lib/pages/mh_page/apply_repair_page.dart index 61ec15c..5c84d81 100644 --- a/lib/pages/mh_page/apply_repair_page.dart +++ b/lib/pages/mh_page/apply_repair_page.dart @@ -80,7 +80,7 @@ class ApplyRepairPage extends GetView { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), @@ -701,8 +701,6 @@ class ApplyRepairPage extends GetView { ), ), ), - - Flexible( child: Container( width: MediaQuery.sizeOf( @@ -1401,7 +1399,6 @@ class ApplyRepairPage extends GetView { color: Colors.white, fontSize: 30.rpx, letterSpacing: 0, - fontWeight: FontWeight.w600, ), ), ), diff --git a/lib/pages/mh_page/bluetooth.dart b/lib/pages/mh_page/bluetooth.dart index 1a720e4..7572f62 100644 --- a/lib/pages/mh_page/bluetooth.dart +++ b/lib/pages/mh_page/bluetooth.dart @@ -28,37 +28,8 @@ class _BluetoothPageState extends State { void initState() { super.initState(); obsData = Map.from(widget.data).obs; // 复制成 obs - // String text; - - // if (obsData.containsKey('name') && - // obsData['name'] != null && - // obsData['name'].toString().isNotEmpty) { - // text = obsData['name'].toString(); - // } else { - // text = '未命名'.tr; - // } - - // _calculateTextHalfWidth(text); } - // void _calculateTextHalfWidth(String text) { - // final textSpan = TextSpan( - // text: text, - // style: TextStyle( - // fontSize: 40.rpx, - // height: 1, - // ), - // ); - // final textPainter = TextPainter( - // text: textSpan, - // textDirection: ui.TextDirection.ltr, - // ); - // textPainter.layout(); // 计算文本宽度 - // setState(() { - // _textHalfWidth = textPainter.width / 2; - // }); - // } - BoxConstraints? bodysize; DeviceListController deviceListController = Get.find(); @override @@ -100,7 +71,7 @@ class _BluetoothPageState extends State { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), @@ -236,11 +207,21 @@ class _BluetoothPageState extends State { }); } }), - _buildMenuButton(context, '设备校准', "/mhtCalibrationAfterPage", arguments: obsData,), + _buildMenuButton( + context, + '设备校准', + "/mhtCalibrationAfterPage", + arguments: obsData, + ), _buildMenuButton( context, '体征传感器', "/vitalSignsSensorPage", arguments: obsData), - _buildMenuButton(context, 'WIFI配置', "/mhtWifiAfterPage",arguments: obsData,), + _buildMenuButton( + context, + 'WIFI配置', + "/mhtWifiAfterPage", + arguments: obsData, + ), // _buildMenuButton( // context, '睡眠习惯', "/sleepHabitPage"), _buildMenuButton( @@ -252,7 +233,25 @@ class _BluetoothPageState extends State { context, obsData['bind_type'] == 1 ? '解绑' : '删除', "", - onTap: () {/*...*/}, + onTap: () async { + await deviceListController + .unbindDevice(obsData); + await deviceListController + .getDeviceList(); + + MHTHomeController homeController = + Get.find(); + homeController.selectDevcie.value = ""; + try { + WebviewTestController + webviewTestController = Get.find(); + webviewTestController.web.jsbridge?.dart + .unBindDevice(); + } catch (e) { + ef.log("[h5]通知列表更新报错:$e"); + } + Get.toNamed("/mianPageBottomChange"); + }, ), _buildMenuButton( context, '详情', "/devicePeopleInfo", @@ -330,64 +329,6 @@ class _BluetoothPageState extends State { }); } - // Widget _buildMenuButton( - // BuildContext context, - // String title, - // String? path, { - // Map? arguments, - // VoidCallback? onTap, - // }) { - // return Padding( - // padding: EdgeInsets.only(bottom: 19.rpx), - // child: ClickableContainer( - // backgroundColor: Colors.transparent, - // highlightColor: Color(0XFF055466), - // padding: EdgeInsets.only(left: 0), - // onTap: () { - // // if (path?.isNotEmpty == true) { - // // if (arguments != null) { - // // Get.toNamed(path!, arguments: arguments); - // // } else { - // // Get.toNamed(path!); - // // } - // // } else { - // // TopSlideNotification.show( - // // context, - // // text: "功能开发中...", - // // ); - // // } - // if (onTap != null) { - // onTap(); // 优先执行自定义逻辑 - // } else if (path?.isNotEmpty == true) { - // if (arguments != null) { - // Get.toNamed(path!, arguments: arguments); - // } else { - // Get.toNamed(path!); - // } - // } else { - // TopSlideNotification.show( - // context, - // text: "功能开发中...", - // ); - // } - // }, - // child: Container( - // height: MediaQuery.sizeOf(context).height * 0.0566, - // decoration: BoxDecoration( - // color: const Color(0xFF003058), - // borderRadius: BorderRadius.circular(16.rpx), - // ), - // child: Center( - // child: Text( - // title, - // style: const TextStyle(color: Colors.white, fontSize: 16), - // ), - // ), - // ), - // ), - // ); - // } - Widget _buildMenuButton( BuildContext context, String title, @@ -401,14 +342,15 @@ class _BluetoothPageState extends State { child: ClickableContainer( backgroundColor: Colors.transparent, highlightColor: const Color(0XFF055466), + borderRadius: 16.rpx, padding: EdgeInsets.only(left: 0), onTap: () async { if (onTap != null) { onTap(); // 自定义点击逻辑优先执行 } else if (path?.isNotEmpty == true) { - if (path == "/sleepHabitPage") { + if (path == "/sleepHabitPage") { WebviewTestController webviewTestController = Get.find(); - webviewTestController.web.jsbridge?.dart.toSleepHabit(); + webviewTestController.web.jsbridge?.dart.toSleepHabit(); return; } final result = await Get.toNamed(path!, arguments: arguments); diff --git a/lib/pages/mh_page/book_info_page.dart b/lib/pages/mh_page/book_info_page.dart index af4de27..f5ca1e7 100644 --- a/lib/pages/mh_page/book_info_page.dart +++ b/lib/pages/mh_page/book_info_page.dart @@ -64,7 +64,7 @@ class BookInfoPage extends GetView { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/book_success_page.dart b/lib/pages/mh_page/book_success_page.dart index 85f1ab7..ca5e6e1 100644 --- a/lib/pages/mh_page/book_success_page.dart +++ b/lib/pages/mh_page/book_success_page.dart @@ -63,7 +63,7 @@ class BookSuccessPage extends GetView { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/delete_account.dart b/lib/pages/mh_page/delete_account.dart index 53aedd7..f43a1a7 100644 --- a/lib/pages/mh_page/delete_account.dart +++ b/lib/pages/mh_page/delete_account.dart @@ -50,7 +50,7 @@ class DeletedAccountPage extends GetView { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/device/device.dart b/lib/pages/mh_page/device/device.dart index de59fb3..746692d 100644 --- a/lib/pages/mh_page/device/device.dart +++ b/lib/pages/mh_page/device/device.dart @@ -372,7 +372,8 @@ class DeviceInfoWidget extends GetView { '的分享', style: TextStyle( fontFamily: 'Readex Pro', - fontSize: 21.rpx, + fontSize: + AppFontsize.normal_text_size, letterSpacing: 0, color: Colors.white, ), diff --git a/lib/pages/mh_page/device/mht_bind_device_type.dart b/lib/pages/mh_page/device/mht_bind_device_type.dart index 0a17878..5a4b194 100644 --- a/lib/pages/mh_page/device/mht_bind_device_type.dart +++ b/lib/pages/mh_page/device/mht_bind_device_type.dart @@ -87,7 +87,7 @@ class _MHTBindDeviceTypePageState extends State { /// 左边返回按钮 Positioned( left: 0, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/device/mht_people_info.dart b/lib/pages/mh_page/device/mht_people_info.dart index 400f697..e1b7426 100644 --- a/lib/pages/mh_page/device/mht_people_info.dart +++ b/lib/pages/mh_page/device/mht_people_info.dart @@ -180,7 +180,7 @@ class _MHTPeopleInfoPageState extends State { ), Positioned( left: 20.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), Positioned( right: 30.rpx, diff --git a/lib/pages/mh_page/device_list.dart b/lib/pages/mh_page/device_list.dart index 475da32..97ceb78 100644 --- a/lib/pages/mh_page/device_list.dart +++ b/lib/pages/mh_page/device_list.dart @@ -71,7 +71,7 @@ class _DeviceListPageState extends State { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/device_people_info.dart b/lib/pages/mh_page/device_people_info.dart index 10286c8..2f4c3f3 100644 --- a/lib/pages/mh_page/device_people_info.dart +++ b/lib/pages/mh_page/device_people_info.dart @@ -78,7 +78,7 @@ class DevicePeopleInfo extends GetView { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), @@ -188,10 +188,8 @@ class DevicePeopleInfo extends GetView { "体重:${person["weight"] == null ? "-" : "${person["weight"]}kg"}"), getInfoRow(context, "生日:${person["birthday"] == null ? "-" : time_08_Formatter_pattern(person["birthday"], "yyyy年MM月dd日")}"), - getInfoRow( - context, "电话:${person["tel"] ?? "-"}"), getInfoRow(context, - "紧急联系人:${person["contact"] ?? "-"}"), + "联系方式:${person["contact"] ?? "-"}"), ], ), ); diff --git a/lib/pages/mh_page/device_share_page.dart b/lib/pages/mh_page/device_share_page.dart index 591804c..b12a061 100644 --- a/lib/pages/mh_page/device_share_page.dart +++ b/lib/pages/mh_page/device_share_page.dart @@ -14,7 +14,7 @@ import 'package:vbvs_app/model/api_response.dart'; import 'package:vbvs_app/pages/mh_page/ShareUserWidget.dart'; class ShareDeviceWidget extends GetView { - var data; + Map data; ShareDeviceWidget({super.key, required this.data}); final scaffoldKey = GlobalKey(); final ScrollController scrollController = ScrollController(); @@ -66,7 +66,7 @@ class ShareDeviceWidget extends GetView { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), @@ -464,6 +464,7 @@ class ShareDeviceWidget extends GetView { .entries .map((e) => ShareUserWidget( index: e.key, + mac: data['mac'], repairListController: controller)) .toList() as List) diff --git a/lib/pages/mh_page/edit_address_page.dart b/lib/pages/mh_page/edit_address_page.dart index 171d9c9..069230d 100644 --- a/lib/pages/mh_page/edit_address_page.dart +++ b/lib/pages/mh_page/edit_address_page.dart @@ -81,7 +81,7 @@ class EditAddressPage extends GetView // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/edit_bed.dart b/lib/pages/mh_page/edit_bed.dart index 5cdf5ec..8819470 100644 --- a/lib/pages/mh_page/edit_bed.dart +++ b/lib/pages/mh_page/edit_bed.dart @@ -83,7 +83,7 @@ class _EditBedPageState extends State { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), if (widget.data != null && (widget.data['isNextStep'] != null && @@ -112,7 +112,7 @@ class _EditBedPageState extends State { TopSlideNotification.show(context, text: "修改名称成功".tr); deviceListController.getDeviceList(); - + Map data = {}; final MHTBlueToothController bluetoothController = Get.find(); @@ -120,8 +120,7 @@ class _EditBedPageState extends State { bluetoothController.currentFullDevice; data['_id'] = device!.deviceID; data['isNextStep'] = true; - Get.toNamed("/roomPickerPage", - arguments: data); + Get.toNamed("/roomPickerPage", arguments: data); }, ); }, @@ -148,7 +147,6 @@ class _EditBedPageState extends State { ), ), ) - ], ), ), diff --git a/lib/pages/mh_page/experience_store_page.dart b/lib/pages/mh_page/experience_store_page.dart index 5dd4e0f..431a030 100644 --- a/lib/pages/mh_page/experience_store_page.dart +++ b/lib/pages/mh_page/experience_store_page.dart @@ -96,7 +96,7 @@ class _ExperienceStorePageState extends State { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), Positioned( right: 30.rpx, diff --git a/lib/pages/mh_page/help/article.dart b/lib/pages/mh_page/help/article.dart index 1195661..07b3e91 100644 --- a/lib/pages/mh_page/help/article.dart +++ b/lib/pages/mh_page/help/article.dart @@ -51,7 +51,7 @@ class _HelpArticleState extends State { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/homepage/mht_sleep_report_page_return.dart b/lib/pages/mh_page/homepage/mht_sleep_report_page_return.dart index d17212d..1e6c81c 100644 --- a/lib/pages/mh_page/homepage/mht_sleep_report_page_return.dart +++ b/lib/pages/mh_page/homepage/mht_sleep_report_page_return.dart @@ -254,7 +254,7 @@ class _MhtSleepReportReturnPageState extends State { left: 0, child: Row( children: [ - returnIconButtomNew, + returnIconButtomNew(), Text( '健康报告'.tr, style: TextStyle( diff --git a/lib/pages/mh_page/homepage/new_Home_page.dart b/lib/pages/mh_page/homepage/new_Home_page.dart index 44e7fea..0e356b7 100644 --- a/lib/pages/mh_page/homepage/new_Home_page.dart +++ b/lib/pages/mh_page/homepage/new_Home_page.dart @@ -847,7 +847,7 @@ class _NewHomePageState extends State { fontFamily: 'Readex Pro', color: stringToColor("#85F5FF"), letterSpacing: 0, - fontSize: 30.rpx, + fontSize: 26.rpx, ), ), ], diff --git a/lib/pages/mh_page/issue_list_page.dart b/lib/pages/mh_page/issue_list_page.dart index d538731..0fa4a41 100644 --- a/lib/pages/mh_page/issue_list_page.dart +++ b/lib/pages/mh_page/issue_list_page.dart @@ -65,7 +65,7 @@ class IssueListPage extends GetView { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/message/messageDetail.dart b/lib/pages/mh_page/message/messageDetail.dart index 1a1ec60..a98dd91 100644 --- a/lib/pages/mh_page/message/messageDetail.dart +++ b/lib/pages/mh_page/message/messageDetail.dart @@ -63,7 +63,7 @@ class _MessageDetailPageState extends State { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), @@ -150,7 +150,7 @@ class _MessageDetailPageState extends State { .toList(), ), ), - ].divide(SizedBox(width: 30.rpx)), + ].divide(SizedBox(width: 20.rpx)), ), ], ))), diff --git a/lib/pages/mh_page/message_page.dart b/lib/pages/mh_page/message_page.dart index 82c51af..a99897e 100644 --- a/lib/pages/mh_page/message_page.dart +++ b/lib/pages/mh_page/message_page.dart @@ -77,66 +77,6 @@ class _MessagePageState extends State { @override Widget build(BuildContext context) { - // messageController.messageList.value = [ - // { - // "_id": "6836c3ee4e626030c8000000", - // "type": "app_vsm", - // "data": { - // "title": "实时监测通知", - // "val": [ - // {"k": "设备ID", "v": "48ca43b1b454"}, - // {"k": "使用人员", "v": "bb"}, - // {"k": "消息类型", "v": "呼吸异常"}, - // {"k": "检测值", "v": '26'}, - // {"k": "检测时间", "v": "2025-05-28 16:06:07"} - // ] - // }, - // "level": 3, - // "tid": "67f5d96e26ef310463000000", - // "uid": "68319fe9702cc59bd1000000", - // "status": 0, - // "createTime": "1748419566651" - // }, - // { - // "_id": "6836c3e84e625f30c8000000", - // "type": "app_vsm", - // "data": { - // "title": "实时监测通知", - // "val": [ - // {"k": "设备ID", "v": "48ca43b1b454"}, - // {"k": "使用人员", "v": "bb"}, - // {"k": "消息类型", "v": "心率异常"}, - // {"k": "检测值", "v": '115'}, - // {"k": "检测时间", "v": "2025-05-28 16:06:00"} - // ] - // }, - // "level": 3, - // "tid": "67f5d96e26ef310463000000", - // "uid": "68319fe9702cc59bd1000000", - // "status": 0, - // "createTime": "1748419560486" - // }, - // { - // "_id": "6836bd0c4e625e30c8000000", - // "type": "app_vsm", - // "data": { - // "title": "实时监测通知", - // "val": [ - // {"k": "设备ID", "v": "48ca43b1b454"}, - // {"k": "使用人员", "v": "bb"}, - // {"k": "消息类型", "v": "心率异常"}, - // {"k": "检测值", "v": '107'}, - // {"k": "检测时间", "v": "1748417761000"} - // ] - // }, - // "level": 3, - // "tid": "67f5d96e26ef310463000000", - // "uid": "68319fe9702cc59bd1000000", - // "status": 0, - // "createTime": "1748417804381" - // } - // ]; - SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( statusBarColor: Colors.transparent, statusBarIconBrightness: Brightness.light, @@ -176,7 +116,7 @@ class _MessagePageState extends State { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/my_experience_page.dart b/lib/pages/mh_page/my_experience_page.dart index 3119e99..6101b4d 100644 --- a/lib/pages/mh_page/my_experience_page.dart +++ b/lib/pages/mh_page/my_experience_page.dart @@ -89,7 +89,7 @@ class _MyExperiencePageState extends State { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/new_mine_page.dart b/lib/pages/mh_page/new_mine_page.dart index 4e5ceec..a502b15 100644 --- a/lib/pages/mh_page/new_mine_page.dart +++ b/lib/pages/mh_page/new_mine_page.dart @@ -11,6 +11,7 @@ import 'package:vbvs_app/common/util/MyUtils.dart'; import 'package:vbvs_app/component/tool/ClickableContainer.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/message_controller.dart'; import 'package:vbvs_app/controller/theme_controller/ThemeController.dart'; import 'package:vbvs_app/controller/user_info_controller.dart'; import 'dart:ui' as ui; @@ -28,6 +29,7 @@ class _MinePageState extends State { GlobalController globalController = Get.find(); UserInfoController userInfoController = Get.find(); ThemeController themeController = Get.find(); + MhMessageController messageController = Get.find(); // final GlobalKey _textKey = GlobalKey(); // double _textHalfWidth = 0; @@ -93,35 +95,45 @@ class _MinePageState extends State { automaticallyImplyLeading: false, titleSpacing: 0, actions: [ - ClickableContainer( + Obx(() { + return ClickableContainer( backgroundColor: Colors.transparent, highlightColor: Colors.transparent, padding: EdgeInsets.only(right: 38.rpx), onTap: () { - // if (userInfoController.model.login == - // LoginStatus.LOGIN.code) { - // TopSlideNotification.show( - // context, - // text: "待开发功能".tr, - // ); - // } else { - // TopSlideNotification.show( - // context, - // text: "必须登录提示".tr, - // textColor: themeController.currentColor.sc9, - // ); - // Get.toNamed("/loginPage"); - // } Get.toNamed('/messagePage'); }, - child: Container( - height: 42.rpx, - width: 42.rpx, - child: SvgPicture.asset( - 'assets/img/icon/message.svg', - color: Colors.white, - // color: Colors.white, - ))), + child: Stack( + clipBehavior: Clip.none, + children: [ + Container( + height: 42.rpx, + width: 42.rpx, + child: SvgPicture.asset( + 'assets/img/icon/message.svg', + color: Colors.white, + ), + ), + if (messageController.model.body_message_read == 1 || + messageController.model.system_message_read == 1) + Positioned( + top: -4.rpx, + right: -4.rpx, + child: Container( + width: 14.rpx, + height: 14.rpx, + decoration: BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + border: Border.all( + color: Colors.white, width: 2.rpx), + ), + ), + ), + ], + ), + ); + }) ], ), body: SafeArea( @@ -311,7 +323,7 @@ class _MinePageState extends State { MHTLoginController mhtLoginController = Get.find(); await mhtLoginController - .openWeChatCustomerService(context); + .openWeChatCustomerService(context); }, ), ], diff --git a/lib/pages/mh_page/new_settingPage.dart b/lib/pages/mh_page/new_settingPage.dart index a4eab22..0a3ef7b 100644 --- a/lib/pages/mh_page/new_settingPage.dart +++ b/lib/pages/mh_page/new_settingPage.dart @@ -64,7 +64,7 @@ class _SettingPageState extends State { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/people_info.dart b/lib/pages/mh_page/people_info.dart index b9bd9aa..018482e 100644 --- a/lib/pages/mh_page/people_info.dart +++ b/lib/pages/mh_page/people_info.dart @@ -75,7 +75,7 @@ class PeopleInfoPage extends GetView { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), Positioned( right: 30.rpx, diff --git a/lib/pages/mh_page/privacy_policy.dart b/lib/pages/mh_page/privacy_policy.dart index bd0f70a..80b39e2 100644 --- a/lib/pages/mh_page/privacy_policy.dart +++ b/lib/pages/mh_page/privacy_policy.dart @@ -75,7 +75,7 @@ class _PrivacyPolicyPageState extends State { /// 左边返回按钮 Positioned( left: 0, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/repair_history_page.dart b/lib/pages/mh_page/repair_history_page.dart index 72e7a9e..fb39f29 100644 --- a/lib/pages/mh_page/repair_history_page.dart +++ b/lib/pages/mh_page/repair_history_page.dart @@ -62,7 +62,7 @@ class RepairHistoryListPage extends GetView { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/repair_list.dart b/lib/pages/mh_page/repair_list.dart index 04e35b1..21c34c8 100644 --- a/lib/pages/mh_page/repair_list.dart +++ b/lib/pages/mh_page/repair_list.dart @@ -76,7 +76,7 @@ class DeviceRepairPage extends GetView { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/room_picker.dart b/lib/pages/mh_page/room_picker.dart index 376d13c..137cf41 100644 --- a/lib/pages/mh_page/room_picker.dart +++ b/lib/pages/mh_page/room_picker.dart @@ -103,7 +103,7 @@ class _RoomPickerPageState extends State { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), if (widget.data != null && (widget.data['isNextStep'] != null && diff --git a/lib/pages/mh_page/score_page.dart b/lib/pages/mh_page/score_page.dart index 4a18c0b..66e05f8 100644 --- a/lib/pages/mh_page/score_page.dart +++ b/lib/pages/mh_page/score_page.dart @@ -53,7 +53,7 @@ class ScorePage extends GetView { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/sleep_habit.dart b/lib/pages/mh_page/sleep_habit.dart index cd2d685..d7b701e 100644 --- a/lib/pages/mh_page/sleep_habit.dart +++ b/lib/pages/mh_page/sleep_habit.dart @@ -50,7 +50,7 @@ class _SleepHabitPageState extends State { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/smys.dart b/lib/pages/mh_page/smys.dart index 55105e8..71d8fa6 100644 --- a/lib/pages/mh_page/smys.dart +++ b/lib/pages/mh_page/smys.dart @@ -76,7 +76,7 @@ class Smys extends GetView { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), @@ -131,7 +131,6 @@ class Smys extends GetView { letterSpacing: 0, ), ), - ], ), )), diff --git a/lib/pages/mh_page/user/page/edit_userinfo_page.dart b/lib/pages/mh_page/user/page/edit_userinfo_page.dart index 27ef9a3..0debb0d 100644 --- a/lib/pages/mh_page/user/page/edit_userinfo_page.dart +++ b/lib/pages/mh_page/user/page/edit_userinfo_page.dart @@ -83,7 +83,7 @@ class _UpdateUserPageState extends State { ), Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), Positioned( right: 20.rpx, diff --git a/lib/pages/mh_page/user/page/find_password_page.dart b/lib/pages/mh_page/user/page/find_password_page.dart index 64b4c10..8ff3043 100644 --- a/lib/pages/mh_page/user/page/find_password_page.dart +++ b/lib/pages/mh_page/user/page/find_password_page.dart @@ -71,7 +71,7 @@ class FindPasswordPage extends GetView { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/user/page/mht_login_page.dart b/lib/pages/mh_page/user/page/mht_login_page.dart index f52b2ef..87764cf 100644 --- a/lib/pages/mh_page/user/page/mht_login_page.dart +++ b/lib/pages/mh_page/user/page/mht_login_page.dart @@ -166,7 +166,7 @@ class MHTLoginPage extends GetView { // ), Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), @@ -182,6 +182,7 @@ class MHTLoginPage extends GetView { isProgrammaticPop = false; return; // 阻止处理 } + if (Platform.isAndroid) { var flag = await _handleBackPressed(context); // 自定义返回逻辑 if (flag) { @@ -1273,7 +1274,7 @@ class MHTLoginPage extends GetView { Get.offAndToNamed( "/mianPageBottomChange"); //登陆成功 - // + // } }, colors: [ @@ -1786,8 +1787,8 @@ class MHTLoginPage extends GetView { padding: EdgeInsets.zero, onTap: () async { // loginController.model.isIos == true && - MHTRegisterController - registerController = Get.find(); + MHTRegisterController registerController = + Get.find(); if (registerController .model.register_agree == null || @@ -1804,8 +1805,7 @@ class MHTLoginPage extends GetView { } MHTLoginController loginController = Get.find(); - await loginController - .wxLoginSendAuth(); + await loginController.wxLoginSendAuth(); // TopSlideNotification.show(context, // text: "测试阶段,暂不支持".tr); }, diff --git a/lib/pages/mh_page/user/page/register_page.dart b/lib/pages/mh_page/user/page/register_page.dart index d14dd19..a14589a 100644 --- a/lib/pages/mh_page/user/page/register_page.dart +++ b/lib/pages/mh_page/user/page/register_page.dart @@ -57,7 +57,7 @@ class RegisterPage extends GetView { ), Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), @@ -85,7 +85,7 @@ class RegisterPage extends GetView { height: bodysize!.maxHeight * 1, child: Column( mainAxisSize: MainAxisSize.max, - children: [ + children: [ Align( alignment: AlignmentDirectional(-1, 0), child: Padding( diff --git a/lib/pages/mh_page/user/page/rxhx_mht.dart b/lib/pages/mh_page/user/page/rxhx_mht.dart index 62d7334..0e10a6b 100644 --- a/lib/pages/mh_page/user/page/rxhx_mht.dart +++ b/lib/pages/mh_page/user/page/rxhx_mht.dart @@ -214,7 +214,7 @@ class _RxhxMhtState extends State { // 左侧图标 Positioned( left: 0.rpx, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/user/page/update_password_page.dart b/lib/pages/mh_page/user/page/update_password_page.dart index d08d5d0..1fa12e5 100644 --- a/lib/pages/mh_page/user/page/update_password_page.dart +++ b/lib/pages/mh_page/user/page/update_password_page.dart @@ -71,7 +71,7 @@ class UpdatePasswordPage extends GetView { /// 左边返回按钮 Positioned( left: 0, - child: returnIconButtom, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/mh_page/user_agreement_page.dart b/lib/pages/mh_page/user_agreement_page.dart index d5ef420..cb964ab 100644 --- a/lib/pages/mh_page/user_agreement_page.dart +++ b/lib/pages/mh_page/user_agreement_page.dart @@ -79,7 +79,7 @@ class _UserAgreementPageState extends State { /// 左边返回按钮 Positioned( left: 0, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/sleep_report/mht_new_sleep_report_page.dart b/lib/pages/sleep_report/mht_new_sleep_report_page.dart index 46242d1..4ecc5c3 100644 --- a/lib/pages/sleep_report/mht_new_sleep_report_page.dart +++ b/lib/pages/sleep_report/mht_new_sleep_report_page.dart @@ -180,7 +180,7 @@ class _MHTNewSleepReportPageState extends State { widget.data['arrow'] == true) Positioned( left: 20, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/sleep_report/new_sleep_report_page copy.dart b/lib/pages/sleep_report/new_sleep_report_page copy.dart index 8020048..d12fbf0 100644 --- a/lib/pages/sleep_report/new_sleep_report_page copy.dart +++ b/lib/pages/sleep_report/new_sleep_report_page copy.dart @@ -123,7 +123,7 @@ class _NewSleepReportPageState extends State { /// 左边返回按钮 Positioned( left: 0, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/sleep_report/new_sleep_report_page.dart b/lib/pages/sleep_report/new_sleep_report_page.dart index 62173bb..003a96d 100644 --- a/lib/pages/sleep_report/new_sleep_report_page.dart +++ b/lib/pages/sleep_report/new_sleep_report_page.dart @@ -199,7 +199,7 @@ class _NewSleepReportPageState extends State { // widget.data['arrow'] == true) // Positioned( // left: 0, - // child: returnIconButtomNew, + // child: returnIconButtomNew(), // ), // ], // ), @@ -238,7 +238,7 @@ class _NewSleepReportPageState extends State { widget.data['arrow'] == true) Positioned( left: 0, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/sleep_report/sleep_report_page.dart b/lib/pages/sleep_report/sleep_report_page.dart index db079ff..85231b2 100644 --- a/lib/pages/sleep_report/sleep_report_page.dart +++ b/lib/pages/sleep_report/sleep_report_page.dart @@ -77,7 +77,7 @@ class _SleepReportPageState extends State { /// 左边返回按钮 Positioned( left: 0, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/pages/xiaoe/xiaoe_page.dart b/lib/pages/xiaoe/xiaoe_page.dart index 0606827..d36c716 100644 --- a/lib/pages/xiaoe/xiaoe_page.dart +++ b/lib/pages/xiaoe/xiaoe_page.dart @@ -77,7 +77,7 @@ class _XiaoEPageState extends State { /// 左边返回按钮 Positioned( left: 0, - child: returnIconButtomNew, + child: returnIconButtomNew(), ), ], ), diff --git a/lib/routers/mh_routers.dart b/lib/routers/mh_routers.dart index dc65f00..1407342 100644 --- a/lib/routers/mh_routers.dart +++ b/lib/routers/mh_routers.dart @@ -114,7 +114,8 @@ var mhroutes = { "/aboutUs": (contxt) => MhAboutUsPage(), "/userAgreementPage": (context) => UserAgreementPage(), "/privacyPolicyPage": (context) => PrivacyPolicyPage(), - "/shareDeviceDetail": (context) => ShareDeviceDetailWidget(), + "/shareDeviceDetail": (context, {arguments}) => + ShareDeviceDetailWidget(data: arguments), "/messageDetail": (context, {arguments}) => MessageDetailPage(data: arguments), "/mhtSleepReportReturnPage": (context, {arguments}) =>