This commit is contained in:
wyf
2025-11-14 15:12:35 +08:00
parent 7e44998240
commit 18bd13a7b6
18 changed files with 431 additions and 112 deletions

BIN
assets/img/heartPic1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
assets/img/heartPic2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

BIN
assets/img/heartPic3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
assets/img/heartPic4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

View File

@@ -552,5 +552,10 @@
"MAC号": "MAC Address", "MAC号": "MAC Address",
"微信用户": "WeChat User", "微信用户": "WeChat User",
"其他设备正在绑定中,是否终止其他设备绑定?": "Another device is binding. Terminate?", "其他设备正在绑定中,是否终止其他设备绑定?": "Another device is binding. Terminate?",
"未配置网络提示": "Network Not Configured" "未配置网络提示": "Network Not Configured",
"图形参考": "Graph Reference",
"正常心率窦性图": "Normal Sinus Rhythm Chart",
"窦性心律不齐图": "Sinus Arrhythmia Chart",
"持续性房颤图": " Continuous Ventricular Flutter Chart",
"阵法性房颤图": " Arrhythmia Chart"
} }

View File

@@ -116,7 +116,7 @@
}, },
"绑定成功": { "绑定成功": {
"标题": "绑定完成", "标题": "绑定完成",
"绑定成功": "配置成功! ", "绑定成功": "绑定成功! ",
"分享标题": "是否进行分享?", "分享标题": "是否进行分享?",
"分享内容": "设备绑定成功后,如需对朋友或家人共享我的睡眠情况,可以进行立即分享,分享成功后,对方即可享受查看该设备权限,可以收到该设备的睡眠报告。", "分享内容": "设备绑定成功后,如需对朋友或家人共享我的睡眠情况,可以进行立即分享,分享成功后,对方即可享受查看该设备权限,可以收到该设备的睡眠报告。",
"立即分享": "立即分享", "立即分享": "立即分享",
@@ -554,5 +554,10 @@
"睡眠报告提示": "本页内容非医疗标准,数据仅供参考", "睡眠报告提示": "本页内容非医疗标准,数据仅供参考",
"MAC号": "MAC号", "MAC号": "MAC号",
"微信用户": "微信用户", "微信用户": "微信用户",
"其他设备正在绑定中,是否终止其他设备绑定?": "其他设备正在绑定中,是否终止其他设备绑定?" "其他设备正在绑定中,是否终止其他设备绑定?": "其他设备正在绑定中,是否终止其他设备绑定?",
"图形参考":"图像参考",
"正常心率窦性图":"正常心率窦性图",
"窦性心律不齐图":"窦性心律不齐图",
"持续性房颤图":"持续性房颤图",
"阵法性房颤图":"阵法性房颤图"
} }

View File

@@ -549,5 +549,10 @@
"MAC号": "MAC號", "MAC号": "MAC號",
"微信用户": "微信用戶", "微信用户": "微信用戶",
"其他设备正在绑定中,是否终止其他设备绑定?": "其他設備正在綁定中,是否終止其他設備綁定?", "其他设备正在绑定中,是否终止其他设备绑定?": "其他設備正在綁定中,是否終止其他設備綁定?",
"未配置网络提示": "當前設備未進行網路配置,是否確認跳過網路配置?" "未配置网络提示": "當前設備未進行網路配置,是否確認跳過網路配置?",
"图形参考": "圖形參考",
"正常心率窦性图": "正常心率竇性圖",
"窦性心律不齐图": "竇性心律不齊圖",
"持续性房颤图": "持續性房顫圖",
"阵法性房颤图": "陣法性房顫圖"
} }

View File

@@ -629,5 +629,10 @@
"睡眠报告通知": "Sleep Report Notification", "睡眠报告通知": "Sleep Report Notification",
"糖管家": "SweetyKeeper", "糖管家": "SweetyKeeper",
"蓝牙已断开,请点击下方刷新按钮重试": "Bluetooth disconnected, please click the refresh button below to retry", "蓝牙已断开,请点击下方刷新按钮重试": "Bluetooth disconnected, please click the refresh button below to retry",
"设备维护": "Device Maintenance" "设备维护": "Device Maintenance",
"图形参考": "Graph Reference",
"正常心率窦性图": "Normal Sinus Rhythm Chart",
"窦性心律不齐图": "Sinus Arrhythmia Chart",
"持续性房颤图": " Continuous Ventricular Flutter Chart",
"阵法性房颤图": " Arrhythmia Chart"
} }

View File

@@ -615,18 +615,18 @@
"在床时长": "在床时长", "在床时长": "在床时长",
"生命体征指的是睡眠周期的整体数据。": "生命体征指的是睡眠周期的整体数据。", "生命体征指的是睡眠周期的整体数据。": "生命体征指的是睡眠周期的整体数据。",
"头像限制": "头像图片不能超过5MB", "头像限制": "头像图片不能超过5MB",
"睡眠报告提示":"本页内容非医疗标准,数据仅供参考", "睡眠报告提示": "本页内容非医疗标准,数据仅供参考",
"MAC号": "MAC号", "MAC号": "MAC号",
"web控制更新":"web控制更新", "web控制更新": "web控制更新",
"新版本号": "新版本号", "新版本号": "新版本号",
"点击确认退出app重新进入": "点击确认退出app重新进入", "点击确认退出app重新进入": "点击确认退出app重新进入",
"设备升级": "设备升级", "设备升级": "设备升级",
"最新版本": "最新版本", "最新版本": "最新版本",
"升级进度": "升级进度", "升级进度": "升级进度",
"立即升级": "立即升级", "立即升级": "立即升级",
"取消升级": "取消升级", "取消升级": "取消升级",
"通知设置": "通知设置", "通知设置": "通知设置",
"睡眠报告通知":"睡眠报告通知", "睡眠报告通知": "睡眠报告通知",
"糖管家": "糖管家", "糖管家": "糖管家",
"蓝牙连接成功": "蓝牙连接成功", "蓝牙连接成功": "蓝牙连接成功",
"蓝牙已断开,请点击下方刷新按钮重试": "蓝牙已断开,请点击下方刷新按钮重试", "蓝牙已断开,请点击下方刷新按钮重试": "蓝牙已断开,请点击下方刷新按钮重试",
@@ -636,6 +636,10 @@
"重置": "重置", "重置": "重置",
"升级": "升级", "升级": "升级",
"自动升级": "自动升级", "自动升级": "自动升级",
"超出数量限制,请等待": "超出数量限制,请等待" "超出数量限制,请等待": "超出数量限制,请等待",
"图形参考": "图像参考",
"正常心率窦性图": "正常心率窦性图",
"窦性心律不齐图": "窦性心律不齐图",
"持续性房颤图": "持续性房颤图",
"阵法性房颤图": "阵法性房颤图"
} }

View File

@@ -625,9 +625,14 @@
"立即升级": "立即升級", "立即升级": "立即升級",
"取消升级": "取消升級", "取消升级": "取消升級",
"通知设置": "通知設置", "通知设置": "通知設置",
"睡眠报告通知":"睡眠報告通知", "睡眠报告通知": "睡眠報告通知",
"糖管家":"糖管家", "糖管家": "糖管家",
"蓝牙连接成功":"糖管家", "蓝牙连接成功": "糖管家",
"蓝牙已断开,请点击下方刷新按钮重试": "蓝牙已斷開,請點擊下方刷新按鈕重試", "蓝牙已断开,请点击下方刷新按钮重试": "蓝牙已斷開,請點擊下方刷新按鈕重試",
"设备维护": "設備維護" "设备维护": "設備維護",
"图形参考": "圖形參考",
"正常心率窦性图": "正常心率竇性圖",
"窦性心律不齐图": "竇性心律不齊圖",
"持续性房颤图": "持續性房顫圖",
"阵法性房颤图": "陣法性房顫圖"
} }

View File

@@ -611,29 +611,32 @@ class _InstantBodyPageState extends State<InstantBodyPage>
SizedBox( SizedBox(
height: 40.rpx, height: 40.rpx,
), ),
Column( Padding(
children: [ padding: EdgeInsets.fromLTRB(46.rpx, 0, 46.rpx, 0),
Text( child: Column(
"MAC号".tr + children: [
": ${widget.personInfo['mac'] ?? '未知数据'.tr}", Text(
style: TextStyle( "MAC号".tr +
color: themeController.currentColor.sc4, ": ${widget.personInfo['mac'] ?? '未知数据'.tr}",
fontSize: style: TextStyle(
AppConstants().middler_text_fontSize, color: themeController.currentColor.sc4,
fontSize:
AppConstants().middler_text_fontSize,
),
), ),
), SizedBox(
SizedBox( height: 4.rpx,
height: 4.rpx,
),
Text(
"睡眠报告提示".tr,
style: TextStyle(
color: themeController.currentColor.sc4,
fontSize:
AppConstants().middler_text_fontSize,
), ),
), Text(
], "睡眠报告提示".tr,
style: TextStyle(
color: themeController.currentColor.sc4,
fontSize:
AppConstants().middler_text_fontSize,
),
),
],
),
), ),
SizedBox( SizedBox(
height: 40.rpx, height: 40.rpx,

View File

@@ -694,9 +694,47 @@ class _BlueteethDevicePageState extends State<BlueteethDevicePage> {
), ),
), ),
), ),
// Obx(() {
// if (blueteethBindController
// .model.betDevicelist!.isNotEmpty) {
// return Expanded(
// child: Container(
// width: double.infinity,
// child: SingleChildScrollView(
// child: Column(
// mainAxisSize: MainAxisSize.max,
// children: [
// ...blueteethBindController.model.blelist!
// .map((device) {
// return SingleBlueteethDeviceCompoentWidget(
// // device: device,
// bleDevice: device,
// );
// })
// .toList()
// .divide(SizedBox(height: 30.rpx))
// .addToEnd(SizedBox(height: 30.rpx)),
// ],
// ),
// ),
// ),
// );
// }
// return Container();
// }),
Obx(() { Obx(() {
if (blueteethBindController if (blueteethBindController
.model.betDevicelist!.isNotEmpty) { .model.betDevicelist!.isNotEmpty) {
// 对 blelist 进行排序(按 rssi 降序)
final sortedList = [
...blueteethBindController.model.blelist!
];
sortedList.sort((a, b) {
final rssiA = a.rssi ?? -999; // 防止空值
final rssiB = b.rssi ?? -999;
return rssiB.compareTo(rssiA); // rssi 大的排前面
});
return Expanded( return Expanded(
child: Container( child: Container(
width: double.infinity, width: double.infinity,
@@ -704,10 +742,9 @@ class _BlueteethDevicePageState extends State<BlueteethDevicePage> {
child: Column( child: Column(
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
children: [ children: [
...blueteethBindController.model.blelist! ...sortedList
.map((device) { .map((device) {
return SingleBlueteethDeviceCompoentWidget( return SingleBlueteethDeviceCompoentWidget(
// device: device,
bleDevice: device, bleDevice: device,
); );
}) })

View File

@@ -50,7 +50,7 @@ class _DataShowWidgetState extends State<DataShowWidget> {
children: [ children: [
// 放入传入的 widget1 // 放入传入的 widget1
Container( Container(
width: MediaQuery.sizeOf(context).width * 0.33, // 固定宽度 width: MediaQuery.sizeOf(context).width * 0.35, // 固定宽度
decoration: BoxDecoration(), decoration: BoxDecoration(),
child: Align( child: Align(
alignment: Alignment.centerLeft, alignment: Alignment.centerLeft,
@@ -64,7 +64,7 @@ class _DataShowWidgetState extends State<DataShowWidget> {
), ),
// 放入传入的 widget2 // 放入传入的 widget2
Container( Container(
width: MediaQuery.sizeOf(context).width * 0.15, // 固定宽度 width: MediaQuery.sizeOf(context).width * 0.21, // 固定宽度
decoration: BoxDecoration(), decoration: BoxDecoration(),
child: Align( child: Align(
alignment: widget.alignment == MainAxisAlignment.start alignment: widget.alignment == MainAxisAlignment.start
@@ -77,7 +77,7 @@ class _DataShowWidgetState extends State<DataShowWidget> {
), ),
// 放入传入的 widget3 // 放入传入的 widget3
Container( Container(
width: MediaQuery.sizeOf(context).width * 0.25, // 固定宽度 width: MediaQuery.sizeOf(context).width * 0.29, // 固定宽度
decoration: BoxDecoration(), decoration: BoxDecoration(),
child: Align( child: Align(
alignment: widget.alignment == MainAxisAlignment.start alignment: widget.alignment == MainAxisAlignment.start
@@ -89,18 +89,18 @@ class _DataShowWidgetState extends State<DataShowWidget> {
), ),
), ),
// 放入传入的 widget4 // 放入传入的 widget4
Container( // Container(
width: MediaQuery.sizeOf(context).width * 0.12, // 固定宽度 // width: MediaQuery.sizeOf(context).width * 0.12, // 固定宽度
decoration: BoxDecoration(), // decoration: BoxDecoration(),
child: Align( // child: Align(
alignment: widget.alignment == MainAxisAlignment.start // alignment: widget.alignment == MainAxisAlignment.start
? Alignment.centerLeft // ? Alignment.centerLeft
: widget.alignment == MainAxisAlignment.center // : widget.alignment == MainAxisAlignment.center
? Alignment.center // ? Alignment.center
: Alignment.centerRight, // 同样设置对齐 // : Alignment.centerRight, // 同样设置对齐
child: widget.widget4, // 显示传入的 widget4 // child: widget.widget4, // 显示传入的 widget4
), // ),
), // ),
], ],
), ),
), ),

View File

@@ -126,7 +126,7 @@ class _BreathPauseWidgetState extends State<BreathPauseWidget> {
), ),
); );
} catch (e) { } catch (e) {
es.EasyDartModule.logger.error("打鼾监测绘制异常${e}"); es.EasyDartModule.logger.error("打鼾监测绘制异常${e}");
return Container(); return Container();
} }
} }

View File

@@ -77,6 +77,8 @@ class _SnoreViewWidgetWidgetState extends State<BreathePauseNewWidget> {
int roundedMaxTimes = (maxTimes / 10).ceil() * 10; int roundedMaxTimes = (maxTimes / 10).ceil() * 10;
var startTime = widget.sleepReport['startTime']; var startTime = widget.sleepReport['startTime'];
var endTime = widget.sleepReport['endTime']; var endTime = widget.sleepReport['endTime'];
if (showLabel.isEmpty) return const SizedBox();
return Container( return Container(
width: double.infinity, width: double.infinity,
decoration: BoxDecoration( decoration: BoxDecoration(

View File

@@ -76,7 +76,8 @@ class _HeartChangeWidgetState extends State<HeartChangeWidget> {
14.rpx, 10.rpx, 14.rpx, 10.rpx), // 14.rpx, 10.rpx, 14.rpx, 10.rpx), //
borderRadius: 0.rpx, // 圆形点击区域 borderRadius: 0.rpx, // 圆形点击区域
onTap: () { onTap: () {
if (AppConstants().ent_type == APPPackageType.MHT.code) { if (AppConstants().ent_type ==
APPPackageType.MHT.code) {
showTipDialog( showTipDialog(
context, context,
Container( Container(
@@ -251,7 +252,9 @@ class _HeartChangeWidgetState extends State<HeartChangeWidget> {
maxLines: 1, maxLines: 1,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
style: TextStyle( style: TextStyle(
color: themeController.currentColor.sc3, color:
getColorByRange(data['value'], data['range']),
// color: themeController.currentColor.sc3,
fontSize: AppConstants().normal_text_fontSize, fontSize: AppConstants().normal_text_fontSize,
), ),
), ),
@@ -334,4 +337,33 @@ class _HeartChangeWidgetState extends State<HeartChangeWidget> {
}; };
}).toList(); }).toList();
} }
getColorByRange(double value, String? range) {
try {
// 1. 空、"-"、null 都直接返回默认颜色
if (range == null || range.toString().isEmpty || range == "-") {
return themeController.currentColor.sc3;
}
// 2. 拆分范围,例如 "70-150"
final parts = range.split('-');
if (parts.length != 2) {
return themeController.currentColor.sc3; // 格式不对直接默认
}
final min = int.parse(parts[0].trim());
final max = int.parse(parts[1].trim());
// 3. 判断是否在范围内
if (value < min || value > max) {
// 不在范围 → 返回 danger 色
return themeController.currentColor.sc9;
}
// 在范围 → 正常色
return themeController.currentColor.sc3;
} catch (e) {
// 任意解析错误都回默认
return themeController.currentColor.sc3;
}
}
} }

View File

@@ -4,9 +4,11 @@ import 'package:ef/ef.dart';
import 'package:fl_chart/fl_chart.dart'; import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:flutterflow_ui/flutterflow_ui.dart';
import 'package:vbvs_app/common/color/appConstants.dart'; import 'package:vbvs_app/common/color/appConstants.dart';
import 'package:vbvs_app/common/util/FitTool.dart'; import 'package:vbvs_app/common/util/FitTool.dart';
import 'package:vbvs_app/common/util/MyUtils.dart'; import 'package:vbvs_app/common/util/MyUtils.dart';
import 'package:vbvs_app/component/base/THFlutterFlowDropDown.dart';
import 'package:vbvs_app/component/tool/ClickableContainer.dart'; import 'package:vbvs_app/component/tool/ClickableContainer.dart';
import 'package:vbvs_app/enum/APPPackageType.dart'; import 'package:vbvs_app/enum/APPPackageType.dart';
import 'package:vbvs_app/pages/device_bind/componnet/bind_dialog.dart'; import 'package:vbvs_app/pages/device_bind/componnet/bind_dialog.dart';
@@ -174,9 +176,222 @@ class _HeartPointWidgetState extends State<HeartPointWidget> {
), ),
), ),
), ),
// SizedBox( SizedBox(
// height: 31.rpx, height: 31.rpx,
// ), ),
Row(
children: [
Text(
"图形参考".tr,
style: TextStyle(
color: themeController.currentColor.sc3,
fontSize: AppConstants().middler_text_fontSize),
),
],
),
SizedBox(
height: 31.rpx,
),
// Row(
// // 使用 start 避免 spaceBetween 抵消 divide 的间隔
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// children: [
// // 第 1 个
// Column(
// mainAxisSize: MainAxisSize.min,
// children: [
// Image.asset(
// "assets/img/heartPic1.png",
// width: 120.rpx,
// height: 120.rpx,
// ),
// SizedBox(height: 10),
// Text(
// '正常心率窦性图'.tr, // ← 替换文字
// style: TextStyle(
// fontSize: AppConstants().small_text_fontSize,
// color: themeController.currentColor.sc3),
// ),
// ],
// ),
// // 第 2 个
// Column(
// mainAxisSize: MainAxisSize.min,
// children: [
// Image.asset(
// "assets/img/heartPic2.png",
// width: 120.rpx,
// height: 120.rpx,
// ),
// SizedBox(height: 10),
// Text(
// '窦性心律不齐图'.tr, // ← 替换文字
// style: TextStyle(
// fontSize: AppConstants().small_text_fontSize,
// color: themeController.currentColor.sc3),
// ),
// ],
// ),
// // 第 3 个
// Column(
// mainAxisSize: MainAxisSize.min,
// children: [
// Image.asset(
// "assets/img/heartPic3.png",
// width: 120.rpx,
// height: 120.rpx,
// ),
// SizedBox(height: 10),
// Text(
// '持续性房颤图'.tr, // ← 替换文字
// style: TextStyle(
// fontSize: AppConstants().small_text_fontSize,
// color: themeController.currentColor.sc3),
// ),
// ],
// ),
// // 第 4 个
// Column(
// mainAxisSize: MainAxisSize.min,
// children: [
// Image.asset(
// "assets/img/heartPic3.png",
// width: 120.rpx,
// height: 120.rpx,
// ),
// SizedBox(height: 10),
// Text(
// '阵法性房颤图'.tr, // ← 替换文字
// style: TextStyle(
// fontSize: AppConstants().small_text_fontSize,
// color: themeController.currentColor.sc3),
// ),
// ],
// ),
// ].divide(
// SizedBox(width: 20.rpx),
// ),
// )
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
// 第 1 个
SizedBox(
width: (MediaQuery.sizeOf(context).width - 60.rpx * 3) / 4,
child: Column(
children: [
Image.asset(
"assets/img/heartPic1.png",
width: 120.rpx,
height: 120.rpx,
),
SizedBox(height: 10),
SizedBox(
height: 60.rpx, // 👈 固定说明文字高度
child: Text(
'正常心率窦性图'.tr,
maxLines: 2,
overflow: TextOverflow.ellipsis,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: AppConstants().small_text_fontSize,
color: themeController.currentColor.sc3,
),
),
),
],
),
),
// 第 2 个
SizedBox(
width: (MediaQuery.sizeOf(context).width - 60.rpx * 3) / 4,
child: Column(
children: [
Image.asset(
"assets/img/heartPic2.png",
width: 120.rpx,
height: 120.rpx,
),
SizedBox(height: 10),
SizedBox(
height: 60.rpx,
child: Text(
'窦性心律不齐图'.tr,
maxLines: 2,
overflow: TextOverflow.ellipsis,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: AppConstants().small_text_fontSize,
color: themeController.currentColor.sc3,
),
),
),
],
),
),
// 第 3 个
SizedBox(
width: (MediaQuery.sizeOf(context).width - 60.rpx * 3) / 4,
child: Column(
children: [
Image.asset(
"assets/img/heartPic3.png",
width: 120.rpx,
height: 120.rpx,
),
SizedBox(height: 10),
SizedBox(
height: 60.rpx,
child: Text(
'持续性房颤图'.tr,
maxLines: 2,
overflow: TextOverflow.ellipsis,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: AppConstants().small_text_fontSize,
color: themeController.currentColor.sc3,
),
),
),
],
),
),
// 第 4 个
SizedBox(
width: (MediaQuery.sizeOf(context).width - 60.rpx * 3) / 4,
child: Column(
children: [
Image.asset(
"assets/img/heartPic3.png",
width: 120.rpx,
height: 120.rpx,
),
SizedBox(height: 10),
SizedBox(
height: 60.rpx,
child: Text(
'阵法性房颤图'.tr,
maxLines: 2,
overflow: TextOverflow.ellipsis,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: AppConstants().small_text_fontSize,
color: themeController.currentColor.sc3,
),
),
),
],
),
),
].divide(SizedBox(width: 20.rpx)),
),
], ],
), ),
), ),

View File

@@ -877,63 +877,64 @@ class _NewSleepReportPageState extends State<NewSleepReportPage> {
// } // }
// }), // }),
Obx(() { Obx(() {
if (sleepReportController.isLoading.value) {
if (sleepReportController.isLoading.value) { return Center(
return Center( child: CircularProgressIndicator(
child: CircularProgressIndicator( strokeWidth: 2,
strokeWidth: 2, valueColor: AlwaysStoppedAnimation<Color>(
valueColor: AlwaysStoppedAnimation<Color>( themeController.currentColor.sc1,
themeController.currentColor.sc1,
),
), ),
),
);
}
switch (sleepReportController.model.type) {
case 1:
return DailyDataWidget(
sleepReport,
sleepCardKey,
heartRateCardKey,
breatheCardKey,
widget.data);
case 2:
return WeekDataWidget(
sleepReport,
widget.data,
); );
} case 3:
switch (sleepReportController.model.type) { return MonthDataWidget(
case 1: sleepReport,
return DailyDataWidget( widget.data,
sleepReport, );
sleepCardKey, default:
heartRateCardKey, return NullDataWidget();
breatheCardKey, }
widget.data);
case 2:
return WeekDataWidget(
sleepReport,
widget.data,
);
case 3:
return MonthDataWidget(
sleepReport,
widget.data,
);
default:
return NullDataWidget();
}
}), }),
Column( Padding(
children: [ padding: EdgeInsets.fromLTRB(46.rpx, 0, 46.rpx, 0),
Text( child: Column(
"MAC号".tr + children: [
": ${widget.data['mac'] ?? '未知数据'.tr}", Text(
style: TextStyle( "MAC号".tr +
color: themeController.currentColor.sc4, ": ${widget.data['mac'] ?? '未知数据'.tr}",
fontSize: style: TextStyle(
AppConstants().middler_text_fontSize, color: themeController.currentColor.sc4,
fontSize:
AppConstants().middler_text_fontSize,
),
), ),
), SizedBox(
SizedBox( height: 4.rpx,
height: 4.rpx,
),
Text(
"睡眠报告提示".tr,
style: TextStyle(
color: themeController.currentColor.sc4,
fontSize:
AppConstants().middler_text_fontSize,
), ),
), Text(
], "睡眠报告提示".tr,
style: TextStyle(
color: themeController.currentColor.sc4,
fontSize:
AppConstants().middler_text_fontSize,
),
),
],
),
), ),
SizedBox( SizedBox(
height: 40.rpx, height: 40.rpx,