89 lines
2.7 KiB
Dart
89 lines
2.7 KiB
Dart
import 'dart:ui';
|
|
import 'dart:io'; // 添加这个导入
|
|
|
|
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) {
|
|
// 如果是 iOS 平台,使用 PopScope 禁用左滑返回
|
|
if (Platform.isIOS) {
|
|
return PopScope(
|
|
canPop: false, // 禁用返回手势
|
|
child: buildContent(),
|
|
);
|
|
}
|
|
return buildContent();
|
|
}
|
|
|
|
// 将原有的 build 内容提取到这个方法中
|
|
Widget buildContent() {
|
|
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);
|
|
} |