更新睡眠报告页面和控制页面无设备的显示

This commit is contained in:
wyf
2025-08-01 14:04:19 +08:00
parent 12a53ac36c
commit 31e823eb16
8 changed files with 420 additions and 207 deletions

View File

@@ -6,6 +6,7 @@ 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/homepage/controller/mht_home_controller.dart';
import 'package:vbvs_app/pages/mh_page/test/WebviewTestModel.dart';
class MattressControlPage extends StatefulWidget {
@@ -18,50 +19,56 @@ class MattressControlPage extends StatefulWidget {
class _MattressControlPageState extends State<MattressControlPage> {
final controller = Get.put(ControlCardController());
UserInfoController userInfoController = Get.find();
MHTHomeController deviceController = 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(
child: Stack(
children: [
// Background Image
Container(
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(backgroundImage),
fit: BoxFit.fill,
),
),
),
child: Obx(() {
final isLoggedIn = userInfoController.model.login == 1;
final hasDevice = deviceController.deviceList.values.isNotEmpty;
// 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),
final showNoLoginView = !isLoggedIn || !hasDevice;
final backgroundImage = showNoLoginView
? 'assets/images/noLoginControl.png'
: 'assets/images/new_background.png';
return Stack(
children: [
// 背景图片
Container(
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(backgroundImage),
fit: BoxFit.fill,
),
),
),
// 遮罩层:未登录或无设备时显示
if (showNoLoginView)
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: WebviewTestView(),
// 主内容
Scaffold(
backgroundColor: Colors.transparent,
body: SafeArea(
child: WebviewTestView(),
),
),
),
],
),
],
);
}),
),
);
}