diff --git a/assets/images/noLoginControl.png b/assets/images/noLoginControl.png new file mode 100644 index 0000000..e8ef804 Binary files /dev/null and b/assets/images/noLoginControl.png differ diff --git a/assets/images/noLoginSleep.jpg b/assets/images/noLoginSleep.jpg new file mode 100644 index 0000000..4f221a1 Binary files /dev/null and b/assets/images/noLoginSleep.jpg differ diff --git a/lib/pages/mh_page/MattressControl.dart b/lib/pages/mh_page/MattressControl.dart index 37e21f7..de5c202 100644 --- a/lib/pages/mh_page/MattressControl.dart +++ b/lib/pages/mh_page/MattressControl.dart @@ -1,8 +1,11 @@ +import 'dart:ui'; + import 'package:ef/ef.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:flutter_switch/flutter_switch.dart'; import 'package:vbvs_app/common/util/FitTool.dart'; +import 'package:vbvs_app/controller/user_info_controller.dart'; import 'package:vbvs_app/pages/mh_page/test/WebviewTestModel.dart'; class MattressControlPage extends StatefulWidget { @@ -14,105 +17,53 @@ class MattressControlPage extends StatefulWidget { class _MattressControlPageState extends State { final controller = Get.put(ControlCardController()); + UserInfoController userInfoController = Get.find(); int selectedIndex = 1; // 当前选中的tab索引 + @override Widget build(BuildContext context) { + final isLoggedIn = userInfoController.model.login == 1; + final backgroundImage = isLoggedIn + ? 'assets/images/new_background.png' + : 'assets/images/noLoginControl.png'; + return LayoutBuilder( - builder: (context, bodySize) => GestureDetector( - // // onTap: () => FocusScope.of(context).unfocus(),, - child: Container( - decoration: const BoxDecoration( - image: DecorationImage( - image: - AssetImage('assets/images/new_background.png'), // 本地图片 - fit: BoxFit.fill, // 填满整个 Container + builder: (context, bodySize) => GestureDetector( + child: Stack( + children: [ + // Background Image + Container( + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage(backgroundImage), + fit: BoxFit.fill, + ), + ), + ), + + // Blur overlay when not logged in + if (!isLoggedIn) + Positioned.fill( + child: BackdropFilter( + filter: ImageFilter.blur(sigmaX: 5.0, sigmaY: 5.0), + child: Container( + color: Colors.black.withOpacity(0.5), ), ), - child: Scaffold( - backgroundColor: Colors.transparent, - // 顶部返回 + 设备选择 + 蓝牙图标 + 设置按钮 - // appBar: AppBar( - // backgroundColor: Colors.transparent, - // automaticallyImplyLeading: false, - // titleSpacing: 0, - // elevation: 0, - // title: SizedBox( - // width: double.infinity, - // height: 180.rpx, - // child: Row( - // mainAxisAlignment: MainAxisAlignment.start, - // children: [ - // SizedBox(width: 20.rpx), - // returnIconButtomNew, - // SizedBox(width: 26.rpx), - // Container( - // decoration: BoxDecoration( - // color: Color(0xFF003058), - // borderRadius: BorderRadius.circular(30.rpx), - // ), - // constraints: BoxConstraints( - // minHeight: 60.rpx, - // maxHeight: 60.rpx, - // maxWidth: 260.rpx, - // minWidth: 260.rpx), - // padding: EdgeInsets.symmetric( - // horizontal: 20.rpx), // 加左右边距 - // child: DropdownButton( - // value: 'Eason Chan', - // underline: const SizedBox(), - // dropdownColor: Colors.blueGrey, - // iconEnabledColor: Colors.white, - // style: const TextStyle(color: Colors.white), - // isExpanded: true, - // items: const [ - // DropdownMenuItem( - // value: 'Eason Chan', - // child: Text('Eason Chan'), - // ), - // DropdownMenuItem( - // value: 'Anna', - // child: Text('Anna'), - // ), - // ], - // onChanged: (_) {}, - // ), - // ), - // ], - // )), - // actions: [ - // ClickableContainer( - // backgroundColor: Colors.transparent, - // highlightColor: Colors.transparent, - // padding: EdgeInsets.only(right: 69.rpx), - // onTap: () {}, - // child: Icon( - // Icons.bluetooth, - // color: Colors.white, - // size: 42.rpx, - // ), - // ), - // ClickableContainer( - // backgroundColor: Colors.transparent, - // highlightColor: Colors.transparent, - // padding: EdgeInsets.only(right: 38.rpx), - // onTap: () { - // Get.toNamed('/bluetoothPage', arguments: data); - // }, - // child: Icon(Icons.tune, - // color: Colors.white, size: 42.rpx)) - // ], - // centerTitle: false, - // ), + ), - body: SafeArea( - child: WebviewTestView( - // oncreate: (widget) { - // return WebviewTestController(); - // }, - ), - ), - )))); + // Main Content + Scaffold( + backgroundColor: Colors.transparent, + body: SafeArea( + child: WebviewTestView(), + ), + ), + ], + ), + ), + ); } // 床体图示 @@ -121,16 +72,16 @@ class _MattressControlPageState extends State { padding: EdgeInsets.fromLTRB(0, 38.rpx, 0, 63.rpx), child: Image.asset( 'assets/images/bed_control.png', - width: MediaQuery.of(context).size.width * 0.7, // 你需要准备这个图像资源 + width: MediaQuery.of(context).size.width * 0.7, height: 193.rpx, ), ); } Widget _buildModeSelector(BuildContext context) { - final screenWidth = MediaQuery.of(context).size.width - 60.rpx; // 左右各30 + final screenWidth = MediaQuery.of(context).size.width - 60.rpx; final spacing = 20.0.rpx; - final thirdWidth = 215.rpx; // 三个卡片两个间距 + final thirdWidth = 215.rpx; final tabCount = 3; final tabWidth = screenWidth / tabCount; final sideMargin = (tabWidth - thirdWidth) / 2; @@ -146,7 +97,9 @@ class _MattressControlPageState extends State { return Expanded( child: GestureDetector( onTap: () { - selectedIndex = index; + setState(() { + selectedIndex = index; + }); }, child: _selectorTab( labels[index], @@ -157,7 +110,6 @@ class _MattressControlPageState extends State { ); }), ), - // 白线指示器 Positioned( bottom: 0, left: selectedIndex * tabWidth + sideMargin, @@ -192,7 +144,7 @@ class _MattressControlPageState extends State { ), ), ), - if (isSelected) SizedBox(height: 15.rpx), // 保留间距,避免文字和线重叠 + if (isSelected) SizedBox(height: 15.rpx), ], ), ); @@ -216,7 +168,6 @@ class _MattressControlPageState extends State { final firstRow = allCards.sublist(0, 3); final restCards = allCards.sublist(3); - // 后续每行两个 List>> chunkedRows = []; for (int i = 0; i < restCards.length; i += 2) { int end = (i + 2 < restCards.length) ? i + 2 : restCards.length; @@ -228,11 +179,10 @@ class _MattressControlPageState extends State { padding: EdgeInsets.symmetric(horizontal: 30.rpx, vertical: 30.rpx), child: Column( children: [ - // 第一行:三个卡片 Row( children: List.generate(firstRow.length * 2 - 1, (index) { if (index.isOdd) { - return SizedBox(width: spacing); // 卡片间距 + return SizedBox(width: spacing); } else { final item = firstRow[index ~/ 2]; return Expanded( @@ -241,14 +191,12 @@ class _MattressControlPageState extends State { index ~/ 2, item['title'], item['time'], - // null, // 不再使用固定宽度 ), ); } }), ), SizedBox(height: spacing), - // 其余每行两个卡片 ...chunkedRows.map((row) { return Padding( padding: EdgeInsets.only(bottom: spacing), @@ -264,7 +212,6 @@ class _MattressControlPageState extends State { index ~/ 2, item['title'], item['time'], - // null, ), ); } @@ -282,12 +229,10 @@ class _MattressControlPageState extends State { int index, String title, String time, - // double width, ) { final controller = Get.find(); return Container( - // width: width, height: 241.rpx, decoration: BoxDecoration( color: const Color(0xFF003058), @@ -344,6 +289,5 @@ class _MattressControlPageState extends State { } class ControlCardController extends GetxController { - // 共9个卡片,每个卡片有自己的开关状态 final List switchStates = List.generate(9, (index) => false.obs); } 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 f31bf19..15e82c0 100644 --- a/lib/pages/mh_page/homepage/mht_sleep_report_page.dart +++ b/lib/pages/mh_page/homepage/mht_sleep_report_page.dart @@ -1,3 +1,5 @@ +import 'dart:ui'; + import 'package:ef/ef.dart'; import 'package:flutter/material.dart'; import 'package:flutterflow_ui/flutterflow_ui.dart'; @@ -5,7 +7,6 @@ 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'; import 'package:vbvs_app/pages/sleep_report/new_sleep_report_page.dart'; @@ -52,292 +53,314 @@ class _MhtSleepReportPageState extends State { }); int login = userInfoController.model.login!; return GestureDetector( - // // 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( - backgroundColor: Colors.transparent, - body: SafeArea( - child: Container( - width: MediaQuery.sizeOf(context).width, - height: MediaQuery.sizeOf(context).height, - child: Column( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: (userInfoController.model.login! != null && - userInfoController.model.login! == 1) - ? MainAxisAlignment.start - : MainAxisAlignment.center, - children: [ - //未登录 - Obx(() { - if (userInfoController.model.login! == null || - userInfoController.model.login! == 0) { - return Center( - child: InkWell( - onTap: () => Get.toNamed("/loginPage"), - child: RichText( - text: TextSpan( - children: [ - WidgetSpan( - child: Stack( - children: [ - Text( - "登录", - style: TextStyle( - color: stringToColor("#84F5FF"), - fontSize: 30.rpx, - ), - ), - Positioned( - bottom: 0, // 控制下划线与文字的间距 - left: 0, - right: 0, - child: Container( - height: 1, // 下划线粗细 - color: stringToColor("#84F5FF"), - ), - ), - ], - ), - ), - TextSpan( - text: "查看睡眠报告", - style: TextStyle( - color: Colors.white, - fontSize: 30.rpx, - ), - ), - ], - ), - ), - ), - ); - } - return Container(); - }), - //已登录 - Obx(() { - if (userInfoController.model.login! != null && - userInfoController.model.login! == 1) { - final list = deviceController.personnelList.value; - // if (list.isNotEmpty && - // formFieldController.value == null) { - // WidgetsBinding.instance.addPostFrameCallback((_) { - // formFieldController.value = list[0]["mac"]; - // personInfo.value = list[0]; - // homeController.selectPerson.value = list[0]; - // homeController.selectDevcie.value = list[0]["mac"]; - // deviceController - // .getSleeps(formFieldController.value); - // homeController.updateAll(); - // }); - // } - if (list.isNotEmpty) { - WidgetsBinding.instance.addPostFrameCallback((_) { - formFieldController.value = list[0]["mac"]; - personInfo.value = list[0]; - homeController.selectPerson.value = list[0]; - homeController.selectDevcie.value = list[0]["mac"]; - deviceController.getSleeps(formFieldController.value); - homeController.updateAll(); - }); - } - //themeController.currentColor.sc5, - if (homeController.personnelList.value.length != 0) - return Padding( - padding: EdgeInsetsDirectional.fromSTEB( - 0.rpx, 40.rpx, 30.rpx, 10.rpx), - child: Container( - width: MediaQuery.sizeOf(context).width, - constraints: BoxConstraints( - minHeight: 60.rpx, - ), - decoration: BoxDecoration( - color: Colors.transparent, - borderRadius: BorderRadius.circular(20.rpx), - ), - child: Padding( - padding: EdgeInsetsDirectional.fromSTEB( - 30.rpx, 16.rpx, 16.rpx, 25.rpx), - child: Container( - width: MediaQuery.sizeOf(context).width, - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: - MainAxisAlignment.spaceBetween, + child: Stack( + children: [ + // Background Container + Container( + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage((userInfoController.model.login! != null && + userInfoController.model.login! == 1) + ? 'assets/images/new_background.png' + : "assets/images/noLoginSleep.jpg"), + fit: BoxFit.fill, + ), + ), + ), + // Blur overlay when not logged in + if (userInfoController.model.login == null || + userInfoController.model.login != 1) + Positioned.fill( + child: BackdropFilter( + filter: ImageFilter.blur(sigmaX: 5.0, sigmaY: 5.0), + child: Container( + color: Colors.black.withOpacity(0.5), + ), + ), + ), + // Main content + Scaffold( + backgroundColor: Colors.transparent, + body: SafeArea( + child: Container( + width: MediaQuery.sizeOf(context).width, + height: MediaQuery.sizeOf(context).height, + child: Column( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: (userInfoController.model.login! != null && + userInfoController.model.login! == 1) + ? MainAxisAlignment.start + : MainAxisAlignment.center, + children: [ + //未登录 + Obx(() { + if (userInfoController.model.login! == null || + userInfoController.model.login! == 0) { + return Center( + child: InkWell( + onTap: () => Get.toNamed("/loginPage"), + child: RichText( + text: TextSpan( children: [ - Text( - '健康报告'.tr, + TextSpan( + text: "请先", style: TextStyle( - fontFamily: 'Readex Pro', - color: themeController.currentColor.sc3, - letterSpacing: 0, + color: Colors.white, fontSize: 30.rpx, ), ), - ScrollbarTheme( - data: ScrollbarThemeData( - thumbColor: MaterialStateProperty.all( - Colors.transparent), - trackColor: MaterialStateProperty.all( - Colors.transparent), - trackBorderColor: - MaterialStateProperty.all( - Colors.transparent), + WidgetSpan( + child: Stack( + children: [ + Text( + "登录", + style: TextStyle( + color: stringToColor("#84F5FF"), + fontSize: 30.rpx, + ), + ), + Positioned( + bottom: 0, + left: 0, + right: 0, + child: Container( + height: 1, + color: stringToColor("#84F5FF"), + ), + ), + ], + ), + ), + TextSpan( + text: "后,再查看睡眠报告", + style: TextStyle( + color: Colors.white, + fontSize: 30.rpx, ), - child: ValueListenableBuilder( - valueListenable: formFieldController, - builder: (c, a, s) => ClipRRect( - borderRadius: - BorderRadius.circular(36.rpx), - child: Theme( - data: Theme.of(context).copyWith( - splashColor: Colors.transparent, - highlightColor: - Colors.transparent, - hoverColor: Colors.transparent, - ), - child: - FlutterFlowDropDown( - controller: formFieldController, - options: deviceController - .personnelList.value - .map( - (d) => "${d["mac"]}") - .toList(), - optionLabels: deviceController - .personnelList.value - .map((d) { - var s = d["name"] ?? d["mac"]; - if (s == null) { - return ""; - } else { - return "$s"; - } - }).toList(), - onChanged: (val) { - final list = deviceController - .personnelList.value; - final selectedPerson = - list.firstWhere( - (element) => - element['mac'] == val, - orElse: () => - null, // 防止找不到时报错 - ); - homeController.selectPerson - .value = selectedPerson; - personInfo.value = - selectedPerson; - - homeController - .selectedDayIndex = - (6).obs; - print("$val"); - if (val == null) { - homeController - .sleepDays.value = []; - } else { - homeController.selectDevcie - .value = - formFieldController - .value!; - deviceController.getSleeps( - formFieldController - .value); - homeController.updateAll(); - } - }, - width: 300.rpx, - height: 81.rpx, - maxHeight: 300.rpx, - textStyle: TextStyle( - fontSize: 28.rpx, - overflow: - TextOverflow.ellipsis, - color: Colors.white, - ), - hintText: '', - icon: Icon( - Icons - .keyboard_arrow_down_rounded, - color: - stringToColor("#FFFFFF"), - size: 30.rpx, - ), - fillColor: - stringToColor("#184468"), - elevation: 2, - borderColor: Colors.transparent, - borderWidth: 2, - borderRadius: 100.rpx, - margin: EdgeInsetsDirectional - .fromSTEB(32.rpx, 8.rpx, - 32.rpx, 8.rpx), - hidesUnderline: true, - isOverButton: false, - isSearchable: false, - isMultiSelect: false, - ), - ))), ), ], ), ), ), - ), - ); - } - if (userInfoController.model.login != null && - userInfoController.model.login == 1) - return Expanded(child: NullDataWidget()); - return Container(); - }), + ); + } + return Container(); + }), + //已登录 + Obx(() { + if (userInfoController.model.login! != null && + userInfoController.model.login! == 1) { + final list = deviceController.personnelList.value; + if (list.isNotEmpty) { + WidgetsBinding.instance.addPostFrameCallback((_) { + formFieldController.value = list[0]["mac"]; + personInfo.value = list[0]; + homeController.selectPerson.value = list[0]; + homeController.selectDevcie.value = list[0]["mac"]; + deviceController + .getSleeps(formFieldController.value); + homeController.updateAll(); + }); + } + if (homeController.personnelList.value.length != 0) + return Padding( + padding: EdgeInsetsDirectional.fromSTEB( + 0.rpx, 40.rpx, 30.rpx, 10.rpx), + child: Container( + width: MediaQuery.sizeOf(context).width, + constraints: BoxConstraints( + minHeight: 60.rpx, + ), + decoration: BoxDecoration( + color: Colors.transparent, + borderRadius: BorderRadius.circular(20.rpx), + ), + child: Padding( + padding: EdgeInsetsDirectional.fromSTEB( + 30.rpx, 16.rpx, 16.rpx, 25.rpx), + child: Container( + width: MediaQuery.sizeOf(context).width, + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + Text( + '健康报告'.tr, + style: TextStyle( + fontFamily: 'Readex Pro', + color: + themeController.currentColor.sc3, + letterSpacing: 0, + fontSize: 30.rpx, + ), + ), + ScrollbarTheme( + data: ScrollbarThemeData( + thumbColor: MaterialStateProperty.all( + Colors.transparent), + trackColor: MaterialStateProperty.all( + Colors.transparent), + trackBorderColor: + MaterialStateProperty.all( + Colors.transparent), + ), + child: ValueListenableBuilder( + valueListenable: + formFieldController, + builder: (c, a, s) => ClipRRect( + borderRadius: + BorderRadius.circular( + 36.rpx), + child: Theme( + data: Theme.of(context) + .copyWith( + splashColor: + Colors.transparent, + highlightColor: + Colors.transparent, + hoverColor: + Colors.transparent, + ), + child: FlutterFlowDropDown< + String>( + controller: + formFieldController, + options: deviceController + .personnelList.value + .map((d) => + "${d["mac"]}") + .toList(), + optionLabels: + deviceController + .personnelList.value + .map((d) { + var s = + d["name"] ?? d["mac"]; + if (s == null) { + return ""; + } else { + return "$s"; + } + }).toList(), + onChanged: (val) { + final list = + deviceController + .personnelList + .value; + final selectedPerson = + list.firstWhere( + (element) => + element['mac'] == + val, + orElse: () => null, + ); + homeController + .selectPerson + .value = + selectedPerson; + personInfo.value = + selectedPerson; - Obx(() { - if (homeController.selectDevcie.value != null && - homeController.selectDevcie.value!.isNotEmpty && - deviceController.personnelList.value.isNotEmpty) - return Expanded( - child: NewSleepReportPage( - data: { - "tag": "123", - 'date': DateTime.now().millisecondsSinceEpoch, - 'mac': homeController.selectDevcie.value, - 'person': homeController.selectPerson.value, - 'backgroundImg': 'assets/images/new_background.png', - 'arrow': false, - 'noBackImg': true, - 'person_show': false, - }, - ), - ); - // } - return Container(); - }), + homeController + .selectedDayIndex = + (6).obs; + print("$val"); + if (val == null) { + homeController.sleepDays + .value = []; + } else { + homeController + .selectDevcie + .value = + formFieldController + .value!; + deviceController.getSleeps( + formFieldController + .value); + homeController + .updateAll(); + } + }, + width: 300.rpx, + height: 81.rpx, + maxHeight: 300.rpx, + textStyle: TextStyle( + fontSize: 28.rpx, + overflow: + TextOverflow.ellipsis, + color: Colors.white, + ), + hintText: '', + icon: Icon( + Icons + .keyboard_arrow_down_rounded, + color: stringToColor( + "#FFFFFF"), + size: 30.rpx, + ), + fillColor: stringToColor( + "#184468"), + elevation: 2, + borderColor: + Colors.transparent, + borderWidth: 2, + borderRadius: 100.rpx, + margin: + EdgeInsetsDirectional + .fromSTEB( + 32.rpx, + 8.rpx, + 32.rpx, + 8.rpx), + hidesUnderline: true, + isOverButton: false, + isSearchable: false, + isMultiSelect: false, + ), + ))), + ), + ], + ), + ), + ), + ), + ); + } + if (userInfoController.model.login != null && + userInfoController.model.login == 1) + return Expanded(child: NullDataWidget()); + return Container(); + }), - // Expanded( - // child: NewSleepReportPage( - // data: { - // "tag": "123", - // 'date': DateTime.now().millisecondsSinceEpoch, - // 'mac': homeController.selectDevcie.value, - // 'person': homeController.selectPerson.value, - // 'backgroundImg': 'assets/images/new_background.png', - // }, - // ), - // ), - // } - ], + Obx(() { + if (homeController.selectDevcie.value != null && + homeController.selectDevcie.value!.isNotEmpty && + deviceController.personnelList.value.isNotEmpty) + return Expanded( + child: NewSleepReportPage( + data: { + "tag": "123", + 'date': DateTime.now().millisecondsSinceEpoch, + 'mac': homeController.selectDevcie.value, + 'person': homeController.selectPerson.value, + 'backgroundImg': + 'assets/images/new_background.png', + 'arrow': false, + 'noBackImg': true, + 'person_show': false, + }, + ), + ); + return Container(); + }), + ], + ), + ), ), ), - ), + ], ), - )); + ); } } diff --git a/lib/pages/mh_page/people_info.dart b/lib/pages/mh_page/people_info.dart index 018482e..91777cd 100644 --- a/lib/pages/mh_page/people_info.dart +++ b/lib/pages/mh_page/people_info.dart @@ -746,7 +746,7 @@ class PeopleInfoPage extends GetView { fillColor: Colors .transparent, filled: true, - hintText: "请输入联系人", + hintText: "请输入联系方式", hintStyle: TextStyle( color: Colors.white), diff --git a/lib/pages/mh_page/test/WebviewTestModel.dart b/lib/pages/mh_page/test/WebviewTestModel.dart index 1f1f89d..91a5cf7 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(), @@ -166,7 +166,7 @@ class WebviewTestController extends GetControllerEx { bridge.sdk.webPageBuild((args) async { ef.log('网页加载完成: $args[0]'); try { - initFlag.value = true; + initFlag.value = true; return true; } catch (e) { ef.log("[网页加载失败]:$e"); @@ -176,7 +176,7 @@ class WebviewTestController extends GetControllerEx { // bridge.sdk.bluetoothConnect((args) async { // ef.log('[蓝牙连接失败]: $args[0]'); // try { - // selectDevice['blueToothStatus'] = 2; + // selectDevice['blueToothStatus'] = 2; // return true; // } catch (e) { // ef.log("[蓝牙连接失败]:$e"); @@ -238,7 +238,7 @@ class WebviewTestController extends GetControllerEx { // 删除已有的同 mac 项 instantData.removeWhere((element) => element['mac'] == mac); // 添加新的数据 - instantData.add(newData); + instantData.add(newData); } } } catch (e) { @@ -350,7 +350,6 @@ class WebviewTestView extends GetComponent { .updateDeviceList(deviceController.deviceList.values); } }); - return Scaffold( backgroundColor: Colors.transparent, body: Column( @@ -371,6 +370,13 @@ class WebviewTestView extends GetComponent { child: RichText( text: TextSpan( children: [ + TextSpan( + text: "请先", + style: TextStyle( + color: Colors.white, + fontSize: 30.rpx, + ), + ), WidgetSpan( child: Stack( children: [ @@ -394,7 +400,7 @@ class WebviewTestView extends GetComponent { ), ), TextSpan( - text: "进行设备控制", + text: "后,再进行设备控制", style: TextStyle( color: Colors.white, fontSize: 30.rpx,