Files
tuiche/lib/pages/mh_page/MattressControl.dart
2026-02-05 15:25:20 +08:00

77 lines
2.4 KiB
Dart

import 'dart:ui';
import 'package:ef/ef.dart';
import 'package:flutter/material.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 {
const MattressControlPage({super.key});
@override
State<MattressControlPage> createState() => _MattressControlPageState();
}
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) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
child: Obx(() {
final isLoggedIn = userInfoController.model.login == 1;
final hasDevice = deviceController.deviceList.values.isNotEmpty;
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),
),
),
),
// 主内容
Scaffold(
backgroundColor: Colors.transparent,
body: SafeArea(
child: WebviewTestView(),
),
),
],
);
}),
),
);
}
}
class ControlCardController extends GetxController {
final List<RxBool> switchStates = List.generate(9, (index) => false.obs);
}