更新
This commit is contained in:
@@ -9,7 +9,9 @@ import 'package:vbvs_app/component/home_page/SleepDataModuleWidget.dart';
|
||||
import 'package:vbvs_app/component/home_page/SleepDateWidget.dart';
|
||||
import 'package:vbvs_app/component/tool/ClickableContainer.dart';
|
||||
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||
import 'package:vbvs_app/controller/device/body_device_controller.dart';
|
||||
import 'package:vbvs_app/controller/theme_controller/ThemeController.dart';
|
||||
import 'package:vbvs_app/enum/DataStatus.dart';
|
||||
|
||||
class DynamicReportDetailWidget extends StatefulWidget {
|
||||
final List<SleepDateWidget> sleepDateWidgets;
|
||||
@@ -32,6 +34,7 @@ class _DynamicReportDetailWidgetState extends State<DynamicReportDetailWidget> {
|
||||
final ThemeController themeController = Get.find();
|
||||
final ScrollController _scrollController = ScrollController();
|
||||
bool _hasScrolled = false;
|
||||
BodyDeviceController bodyDeviceController = Get.find();
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
@@ -74,8 +77,7 @@ class _DynamicReportDetailWidgetState extends State<DynamicReportDetailWidget> {
|
||||
SizedBox(height: 33.rpx),
|
||||
_buildSleepDateWidgets(),
|
||||
SizedBox(height: 20.rpx),
|
||||
if (!AppConstants.is_test_account)
|
||||
_buildSleepDataModuleWidgets(),
|
||||
if (!AppConstants.is_test_account) _buildSleepDataModuleWidgets(),
|
||||
],
|
||||
),
|
||||
),
|
||||
@@ -95,13 +97,20 @@ class _DynamicReportDetailWidgetState extends State<DynamicReportDetailWidget> {
|
||||
onTap: () async {
|
||||
await Get.toNamed("/bodyDevice", arguments: targetDevice);
|
||||
},
|
||||
child: Text(
|
||||
'${targetDevice['person']?['name'] == null ? '未命名'.tr : targetDevice['person']['name']}',
|
||||
style: TextStyle(
|
||||
fontFamily: 'Inter',
|
||||
fontSize: 30.rpx,
|
||||
letterSpacing: 0.0,
|
||||
color: themeController.currentColor.sc3,
|
||||
child: Container(
|
||||
constraints: BoxConstraints(
|
||||
maxWidth: MediaQuery.sizeOf(context).width * 0.6,
|
||||
),
|
||||
child: Text(
|
||||
'${targetDevice['person']?['name'] == null ? '未命名'.tr : targetDevice['person']['name']}',
|
||||
style: TextStyle(
|
||||
fontFamily: 'Inter',
|
||||
fontSize: 30.rpx,
|
||||
letterSpacing: 0.0,
|
||||
color: themeController.currentColor.sc3,
|
||||
),
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
),
|
||||
),
|
||||
@@ -183,6 +192,18 @@ class _DynamicReportDetailWidgetState extends State<DynamicReportDetailWidget> {
|
||||
}
|
||||
|
||||
Widget _buildSleepDataModuleWidgets() {
|
||||
// homePageSleepFlag
|
||||
//widget.targetDevice['mac']
|
||||
if (bodyDeviceController.homePageSleepFlag[widget.targetDevice['mac']] ==
|
||||
DataStatus.Loading.code) {
|
||||
return Container(
|
||||
height: 200.rpx,
|
||||
alignment: Alignment.center,
|
||||
child: CircularProgressIndicator(
|
||||
color: themeController.currentColor.sc1,
|
||||
),
|
||||
);
|
||||
}
|
||||
if (widget.sleepDataModuleWidgets.isEmpty) {
|
||||
return Container(
|
||||
height: 200.rpx,
|
||||
@@ -207,16 +228,34 @@ class _DynamicReportDetailWidgetState extends State<DynamicReportDetailWidget> {
|
||||
// );
|
||||
// }
|
||||
|
||||
// return Container(
|
||||
// width: double.infinity,
|
||||
// height: 200.rpx,
|
||||
// child: SingleChildScrollView(
|
||||
// scrollDirection: Axis.horizontal,
|
||||
// child: Row(
|
||||
// children: widget.sleepDataModuleWidgets
|
||||
// .map((widget) => widget)
|
||||
// .toList()
|
||||
// .divide(SizedBox(width: 14.rpx)),
|
||||
// ),
|
||||
// ),
|
||||
// );
|
||||
var aa = widget.sleepDataModuleWidgets
|
||||
// 过滤:当 data 中存在 'show' 且其为 false 时排除该元素
|
||||
.where((item) => item.data?['show'] != false)
|
||||
// 保持元素本身(SleepDataModuleWidget)
|
||||
.map((item) => item)
|
||||
.toList();
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
height: 200.rpx,
|
||||
child: SingleChildScrollView(
|
||||
scrollDirection: Axis.horizontal,
|
||||
child: Row(
|
||||
children: widget.sleepDataModuleWidgets
|
||||
.map((widget) => widget)
|
||||
.toList()
|
||||
.divide(SizedBox(width: 14.rpx)),
|
||||
children:
|
||||
// 保留你原来的 divide 间隔处理
|
||||
aa.divide(SizedBox(width: 14.rpx)),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user