diff --git a/assets/file.json b/assets/file.json index 4f005ac..a17f89b 100644 --- a/assets/file.json +++ b/assets/file.json @@ -1,3 +1,3 @@ [ - "assets/miniapp/mhtControl_1.0.31.zip" + "assets/miniapp/mhtControl_1.0.35.zip" ] \ No newline at end of file diff --git a/assets/miniapp/mhtControl_1.0.31.zip b/assets/miniapp/mhtControl_1.0.35.zip similarity index 97% rename from assets/miniapp/mhtControl_1.0.31.zip rename to assets/miniapp/mhtControl_1.0.35.zip index dccfe5e..dfbfd25 100644 Binary files a/assets/miniapp/mhtControl_1.0.31.zip and b/assets/miniapp/mhtControl_1.0.35.zip differ diff --git a/lib/controller/user_info_controller.dart b/lib/controller/user_info_controller.dart index 50326f3..7861919 100644 --- a/lib/controller/user_info_controller.dart +++ b/lib/controller/user_info_controller.dart @@ -212,7 +212,7 @@ class UserInfoController extends GetControllerEx { box.write('user', userInfoController.model.user!.toJson()); // 存储用户信息 userInfoController.updateAll(); } - return apiResponse; + return res; } else { return ApiResponse(code: -1, msg: "服务器.失败".tr); } diff --git a/lib/main.dart b/lib/main.dart index 0c37553..73921de 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -64,6 +64,7 @@ import 'package:vbvs_app/controller/time/countdown_controller.dart'; import 'package:vbvs_app/controller/weather/weather_controller.dart'; import 'package:vbvs_app/language/AppLanguage.dart'; import 'package:vbvs_app/model/CustomThemeColor.dart'; +import 'package:vbvs_app/model/api_response.dart'; import 'package:vbvs_app/model/user_data.dart'; import 'package:vbvs_app/pages/mh_page/MattressControl.dart'; import 'package:vbvs_app/pages/mh_page/device/component/mht_device_calibration_controller.dart'; @@ -257,6 +258,21 @@ Future initLogin() async { final box = GetStorage(); UserInfoController userInfoController = Get.find(); String? token = box.read('token'); + if (token != null) { + // 根据token去请求 + // await userInfoController.autoLogin(token); + EasyDartModule.dio.token = token; + ApiResponse apiResponse = await userInfoController.getUserInfo(); + if (apiResponse.code != 1) { + userInfoController.model.login = 0; + EasyDartModule.dio.token = null; + } else { + userInfoController.model.login = 1; + } + } else { + // 如果没有 token,则将用户标记为未登录 + userInfoController.model.login = 0; + } try { Map? userMap = box.read('user'); if (userMap != null) { @@ -266,16 +282,6 @@ Future initLogin() async { } catch (e) { print(e); } - - if (token != null) { - userInfoController.model.login = 1; - // 根据token去请求 - // await userInfoController.autoLogin(token); - EasyDartModule.dio.token = token; - } else { - // 如果没有 token,则将用户标记为未登录 - userInfoController.model.login = 0; - } } //处理绑定未完成的数据 diff --git a/lib/pages/mh_page/device/mht_people_info.dart b/lib/pages/mh_page/device/mht_people_info.dart index e1b7426..9e17098 100644 --- a/lib/pages/mh_page/device/mht_people_info.dart +++ b/lib/pages/mh_page/device/mht_people_info.dart @@ -599,7 +599,7 @@ class _MHTPeopleInfoPageState extends State { MainAxisAlignment.spaceBetween, children: [ Text( - '联系人', + '联系方式'.tr, style: TextStyle( fontFamily: 'Readex Pro', color: Color(0xFF9EA4B7), @@ -622,7 +622,7 @@ class _MHTPeopleInfoPageState extends State { decoration: InputDecoration( fillColor: Colors.transparent, filled: true, - hintText: "请输入联系人", + hintText: "请输入联系方式", hintStyle: TextStyle( color: Colors.white), border: InputBorder.none, 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 891e5cc..2ab5d1b 100644 --- a/lib/pages/mh_page/homepage/controller/mht_home_controller.dart +++ b/lib/pages/mh_page/homepage/controller/mht_home_controller.dart @@ -2,6 +2,7 @@ import 'dart:convert'; import 'package:EasyDartModule/EasyDartModule.dart'; import 'package:ef/ef.dart'; +import 'package:flutter/src/widgets/framework.dart'; import 'package:flutterflow_ui/flutterflow_ui.dart'; import 'package:json_annotation/json_annotation.dart'; import 'package:vbvs_app/common/color/ServiceConstant.dart'; @@ -9,6 +10,7 @@ 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/model/api_response.dart'; part 'mht_home_controller.g.dart'; // 由json_serializable自动生成的部分 @@ -480,7 +482,7 @@ class MHTHomeController extends GetControllerEx { ); } - Future getHomeSleeps(String? mac) async { + Future getHomeSleeps(String? mac, BuildContext context) async { String serviceAddress = ServiceConstant.service_address; String serviceName = ServiceConstant.server_service; String serviceApi = ServiceConstant.sleep_report; @@ -544,6 +546,8 @@ class MHTHomeController extends GetControllerEx { }, onFailure: (res) { EasyDartModule.logger.warning("请求睡眠信息列表失败: ${res.msg}"); + TopSlideNotification.show(context, + text: "请求失败".tr, textColor: themeController.currentColor.sc9); }, ); } diff --git a/lib/pages/mh_page/homepage/new_Home_page.dart b/lib/pages/mh_page/homepage/new_Home_page.dart index 0e356b7..b30345d 100644 --- a/lib/pages/mh_page/homepage/new_Home_page.dart +++ b/lib/pages/mh_page/homepage/new_Home_page.dart @@ -308,55 +308,108 @@ class _NewHomePageState extends State { Obx(() { if (userInfoController.model.login! == null || userInfoController.model.login! == 0) { + // return Padding( + // padding: EdgeInsetsDirectional.fromSTEB( + // 30.rpx, 0, 30.rpx, 80.rpx), + // child: ClickableContainer( + // backgroundColor: Colors.transparent, + // highlightColor: Colors.transparent, + // padding: EdgeInsets.all(0), + // onTap: () { + // if (userInfoController.model.login == null || + // userInfoController.model.login == 0) { + // TopSlideNotification.show(context, + // text: "请先登录".tr, + // textColor: themeController.currentColor.sc9); + // Get.toNamed("/loginPage"); + // } else { + // Get.toNamed("/mHTDeviceTypePage"); + // } + // }, + // child: Container( + // width: MediaQuery.sizeOf(context).width, + // height: 302.rpx, + // padding: + // EdgeInsets.only(top: 90.rpx, bottom: 80.rpx), + // decoration: BoxDecoration( + // borderRadius: BorderRadius.circular(borderRadius), + // border: Border.all( + // color: stringToColor("#85F5FF"), // 边框颜色 + // width: 1.rpx, // 边框宽度 + // ), + // ), + // child: Column( + // mainAxisSize: MainAxisSize.max, + // mainAxisAlignment: MainAxisAlignment.center, + // children: [ + // SvgPicture.asset( + // 'assets/images/icon/add.svg', + // width: 42.rpx, + // height: 42.rpx, + // ), + // SizedBox( + // height: 32.rpx, + // ), + // Text( + // '添加一台新设备'.tr, + // style: TextStyle( + // color: stringToColor("#85F5FF"), + // fontSize: + // AppConstants().normal_text_fontSize, + // letterSpacing: 0, + // ), + // ), + // ], + // ), + // ), + // ), + // ); + return Padding( padding: EdgeInsetsDirectional.fromSTEB( - 30.rpx, 0, 30.rpx, 80.rpx), + 30.rpx, 0.rpx, 30.rpx, 100.rpx), child: ClickableContainer( - backgroundColor: Colors.transparent, - highlightColor: Colors.transparent, - padding: EdgeInsets.all(0), onTap: () { - if (userInfoController.model.login == null || - userInfoController.model.login == 0) { - TopSlideNotification.show(context, - text: "请先登录".tr, - textColor: themeController.currentColor.sc9); - Get.toNamed("/loginPage"); - } else { - Get.toNamed("/mHTDeviceTypePage"); - } + // 点击逻辑 + Get.toNamed("/mHTDeviceTypePage"); }, + backgroundColor: Colors.transparent, + highlightColor: themeController.currentColor + .sc21, // 这里可以自定义高亮色,透明就用 Colors.transparent + borderRadius: borderRadius, + padding: EdgeInsetsDirectional.fromSTEB( + 0.rpx, 0, 0.rpx, 0), child: Container( - width: MediaQuery.sizeOf(context).width, - height: 302.rpx, - padding: - EdgeInsets.only(top: 90.rpx, bottom: 80.rpx), + height: 92.rpx, + alignment: Alignment.center, decoration: BoxDecoration( - borderRadius: BorderRadius.circular(borderRadius), border: Border.all( color: stringToColor("#85F5FF"), // 边框颜色 width: 1.rpx, // 边框宽度 ), + borderRadius: BorderRadius.circular(borderRadius), ), - child: Column( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, + child: Row( + mainAxisSize: MainAxisSize.min, children: [ + // Icon( + // Icons.add, + // size: 60.rpx, + // color: stringToColor("#85F5FF"), + // ), SvgPicture.asset( 'assets/images/icon/add.svg', width: 42.rpx, height: 42.rpx, ), - SizedBox( - height: 32.rpx, - ), + SizedBox(width: 20.rpx), Text( - '添加一台新设备'.tr, + '添加新设备'.tr, style: TextStyle( + fontFamily: 'Readex Pro', color: stringToColor("#85F5FF"), - fontSize: - AppConstants().normal_text_fontSize, letterSpacing: 0, + fontSize: 26.rpx, ), ), ], @@ -381,8 +434,8 @@ class _NewHomePageState extends State { personInfo.value = list[0]; homeController.selectPerson.value = list[0]; homeController.selectDevcie.value = list[0]["mac"]; - deviceController - .getHomeSleeps(formFieldController.value); + deviceController.getHomeSleeps( + formFieldController.value, context); homeController.updateAll(); }); } @@ -492,7 +545,8 @@ class _NewHomePageState extends State { deviceController .getHomeSleeps( formFieldController - .value); + .value, + context); homeController .updateAll(); } @@ -741,59 +795,113 @@ class _NewHomePageState extends State { ), ), if (homeController.bindDeviceNum.value == 0) + // Padding( + // padding: EdgeInsetsDirectional.fromSTEB( + // 30.rpx, 0, 30.rpx, 80.rpx), + // child: ClickableContainer( + // backgroundColor: Colors.transparent, + // highlightColor: Colors.transparent, + // padding: EdgeInsets.all(0), + // onTap: () { + // if (userInfoController.model.login == + // null || + // userInfoController.model.login == 0) { + // TopSlideNotification.show(context, + // text: "请先登录".tr, + // textColor: + // themeController.currentColor.sc9); + // Get.toNamed("/loginPage"); + // } else { + // Get.toNamed("/mHTDeviceTypePage"); + // } + // }, + // child: Container( + // width: MediaQuery.sizeOf(context).width, + // height: 302.rpx, + // padding: EdgeInsets.only( + // top: 90.rpx, bottom: 80.rpx), + // decoration: BoxDecoration( + // borderRadius: + // BorderRadius.circular(borderRadius), + // border: Border.all( + // color: stringToColor("#85F5FF"), // 边框颜色 + // width: 1.rpx, // 边框宽度 + // ), + // ), + // child: Column( + // mainAxisSize: MainAxisSize.max, + // mainAxisAlignment: + // MainAxisAlignment.center, + // children: [ + // SvgPicture.asset( + // 'assets/images/icon/add.svg', + // width: 42.rpx, + // height: 42.rpx, + // ), + // SizedBox( + // height: 32.rpx, + // ), + // Text( + // '添加一台新设备'.tr, + // style: TextStyle( + // color: stringToColor("#85F5FF"), + // fontSize: AppConstants() + // .normal_text_fontSize, + // letterSpacing: 0, + // ), + // ), + // ], + // ), + // ), + // ), + // ), + Padding( padding: EdgeInsetsDirectional.fromSTEB( - 30.rpx, 0, 30.rpx, 80.rpx), + 30.rpx, 0.rpx, 30.rpx, 100.rpx), child: ClickableContainer( - backgroundColor: Colors.transparent, - highlightColor: Colors.transparent, - padding: EdgeInsets.all(0), onTap: () { - if (userInfoController.model.login == - null || - userInfoController.model.login == 0) { - TopSlideNotification.show(context, - text: "请先登录".tr, - textColor: - themeController.currentColor.sc9); - Get.toNamed("/loginPage"); - } else { - Get.toNamed("/mHTDeviceTypePage"); - } + // 点击逻辑 + Get.toNamed("/mHTDeviceTypePage"); }, + backgroundColor: Colors.transparent, + highlightColor: themeController.currentColor + .sc21, // 这里可以自定义高亮色,透明就用 Colors.transparent + borderRadius: borderRadius, + padding: EdgeInsetsDirectional.fromSTEB( + 0.rpx, 0, 0.rpx, 0), child: Container( - width: MediaQuery.sizeOf(context).width, - height: 302.rpx, - padding: EdgeInsets.only( - top: 90.rpx, bottom: 80.rpx), + height: 92.rpx, + alignment: Alignment.center, decoration: BoxDecoration( - borderRadius: - BorderRadius.circular(borderRadius), border: Border.all( color: stringToColor("#85F5FF"), // 边框颜色 width: 1.rpx, // 边框宽度 ), + borderRadius: + BorderRadius.circular(borderRadius), ), - child: Column( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: - MainAxisAlignment.center, + child: Row( + mainAxisSize: MainAxisSize.min, children: [ + // Icon( + // Icons.add, + // size: 60.rpx, + // color: stringToColor("#85F5FF"), + // ), SvgPicture.asset( 'assets/images/icon/add.svg', width: 42.rpx, height: 42.rpx, ), - SizedBox( - height: 32.rpx, - ), + SizedBox(width: 20.rpx), Text( - '添加一台新设备'.tr, + '添加新设备'.tr, style: TextStyle( + fontFamily: 'Readex Pro', color: stringToColor("#85F5FF"), - fontSize: AppConstants() - .normal_text_fontSize, letterSpacing: 0, + fontSize: 26.rpx, ), ), ], diff --git a/lib/pages/mh_page/message/messageDetail.dart b/lib/pages/mh_page/message/messageDetail.dart index ee16cd3..edfb9e8 100644 --- a/lib/pages/mh_page/message/messageDetail.dart +++ b/lib/pages/mh_page/message/messageDetail.dart @@ -10,6 +10,8 @@ import 'package:vbvs_app/component/tool/TopSlideNotification.dart'; import 'package:vbvs_app/controller/mh_controller/message_controller.dart'; import 'package:vbvs_app/controller/mh_controller/mhdevice_share_controller.dart'; import 'package:vbvs_app/model/api_response.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 MessageDetailPage extends StatefulWidget { final data; @@ -183,6 +185,45 @@ class _MessageDetailPageState extends State { messageController.getMessageList(widget.data['type']); messageController.updateAll(); //todo 更新设备列表 + MHTHomeController homeController = Get.find(); + //更新设备列表 + homeController.getPersonList(); + //请求绑定设备列表 + // homeController.getSleepReport(); + homeController.getDeviceNum().then((apiResponse) { + if (apiResponse.code != HttpStatusCodes.ok) { + TopSlideNotification.show( + Get.context!, + text: apiResponse.msg!, + textColor: themeController.currentColor.sc9, + ); + } + }); + homeController.getDeviceList(group: 'room').then((apiResponse) { + if (apiResponse.code != HttpStatusCodes.ok) { + try { + WebviewTestController webviewTestController = Get.find(); + webviewTestController.web.jsbridge?.dart.alterDevice(); + } catch (e) { + ef.log("[h5]通知列表更新报错:$e"); + } + TopSlideNotification.show( + Get.context!, + text: apiResponse.msg!, + textColor: themeController.currentColor.sc9, + ); + } else { + //请求睡眠报告 + // deviceController.getSleepReport(); + } + }); + WidgetsBinding.instance.addPostFrameCallback((_) { + if (homeController.homeSleepDays.value.isNotEmpty) { + homeController.selectedDayIndex.value = + homeController.homeSleepDays.value.length - 1; + } + }); + await homeController.getPersonList(); } else { TopSlideNotification.show(context, text: apiResponse.msg!, textColor: Color(0XFFFF7159)); diff --git a/lib/pages/mh_page/new_mine_page.dart b/lib/pages/mh_page/new_mine_page.dart index e12f0d7..d2fca74 100644 --- a/lib/pages/mh_page/new_mine_page.dart +++ b/lib/pages/mh_page/new_mine_page.dart @@ -318,6 +318,20 @@ class _MinePageState extends State { '购买和使用智能床过程中,如果遇到疑问可与客服进行联系', path: "", onTap: () async { + UserInfoController userInfoController = + Get.find(); + int loginStatus = + userInfoController.model.login!; + if (loginStatus != 1) { + TopSlideNotification.show( + context, + text: "必须登录提示".tr, + textColor: + themeController.currentColor.sc9, + ); + Get.toNamed("/loginPage"); + return; + } MHTLoginController mhtLoginController = Get.find(); await mhtLoginController diff --git a/lib/pages/mh_page/test/WebviewTestModel.dart b/lib/pages/mh_page/test/WebviewTestModel.dart index 0545f0a..1f1f89d 100644 --- a/lib/pages/mh_page/test/WebviewTestModel.dart +++ b/lib/pages/mh_page/test/WebviewTestModel.dart @@ -37,8 +37,8 @@ class WebviewTestController extends GetControllerEx { web = WebviewHelper( isheadless: false, jsbridge: buildsdk( - // father: this, - // clientId: '494641114', + father: this, + clientId: '494641114', // dbgserverUrl: 'ws://192.168.1.2:9001', ), settings: buildsettings(), 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 0820e5b..e38bb2f 100644 --- a/lib/pages/mh_page/user/page/mht_login_page.dart +++ b/lib/pages/mh_page/user/page/mht_login_page.dart @@ -184,10 +184,11 @@ class MHTLoginPage extends GetView { } if (Platform.isAndroid) { - var flag = await _handleBackPressed(context); // 自定义返回逻辑 - if (flag) { - SystemNavigator.pop(); - } + // var flag = await _handleBackPressed(context); // 自定义返回逻辑 + // if (flag) { + // SystemNavigator.pop(); + // } + Get.back(); } }, child: Align( @@ -961,10 +962,8 @@ class MHTLoginPage extends GetView { ), ), ), - ); }), - Obx(() { return Visibility( visible: controller.model.loginStyle == 2 @@ -1221,7 +1220,6 @@ class MHTLoginPage extends GetView { ), ), ), - ); }), Padding(