import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:star_lock/appRouters.dart'; import 'package:star_lock/main/lockDetail/lcokSet/msgNotification/msgNotification_logic.dart'; import '../../../../app_settings/app_colors.dart'; import '../../../../tools/commonItem.dart'; import '../../../../tools/titleAppBar.dart'; class MsgNotificationPage extends StatefulWidget { const MsgNotificationPage({Key? key}) : super(key: key); @override State createState() => _MsgNotificationPageState(); } class _MsgNotificationPageState extends State { final logic = Get.put(MsgNotificationLogic()); final state = Get.find().state; //高亮样式 final TextStyle titleStyle = TextStyle( color: Colors.black, fontSize: 24.sp, fontWeight: FontWeight.w500); //默认样式 final TextStyle subTipsStyle = TextStyle(color: AppColors.placeholderTextColor, fontSize: 22.sp); late InlineSpan tipsPreviewSpan = TextSpan(children: [ TextSpan(text: '添加和使用面容开锁时:\n', style: titleStyle), TextSpan( text: '\n1、请尽量保持单人在门前操作;\n2、请站立在门锁正前方约0.5~0.8米,面向门锁;\n3、请保持脸部无遮挡,露出五官;\n4、面容识别异常时,可触摸数字键盘任意按键,手动重启人脸识别。', style: subTipsStyle), ]); @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.white, appBar: TitleAppBar( barTitle: '消息提醒', haveBack: true, backgroundColor: AppColors.mainColor), body: SingleChildScrollView( child: _buildMainItem(), )); } Widget _buildMainItem() { return Column( children: [ Container( alignment: Alignment.centerLeft, margin: EdgeInsets.only(left: 40.w, top: 40.h, bottom: 30.h), child: Text( '门锁通知', style: TextStyle(color: AppColors.msgNoticeTextColor, fontSize: 24.sp), ), ), CommonItem( leftTitel: '开门通知', rightTitle: "已启用", isHaveLine: false, isHaveDirection: true, action: () { Get.toNamed(Routers.openDoorNotifyPage); }, ), SizedBox( height: 20.h, ), CommonItem( leftTitel: 'N天未开门', rightTitle: "已启用", isHaveLine: false, isHaveDirection: true, action: () { Get.toNamed(Routers.nDaysUnopenedPage); }, ), // SizedBox( // height: 20.h, // ), // Obx(() => CommonItem( // leftTitel: '离家开门', // rightTitle: "", // isHaveLine: false, // isHaveRightWidget: true, // rightWidget: // SizedBox(width: 60.w, height: 50.h, child: _switch(1)))), SizedBox( height: 20.h, ), Obx(() => CommonItem( leftTitel: '门未关好', rightTitle: "", isHaveLine: false, isHaveRightWidget: true, rightWidget: SizedBox(width: 60.w, height: 50.h, child: _switch(2)))), SizedBox( height: 20.h, ), CommonItem( leftTitel: '防拆报警', rightTitle: "已启用", isHaveLine: false, isHaveDirection: true, ), SizedBox( height: 20.h, ), CommonItem( leftTitel: '低电量提醒', rightTitle: "已启用", isHaveLine: false, isHaveDirection: true, action: () { Get.toNamed(Routers.lowBatteryReminderPage); }, ), SizedBox( height: 20.h, ), CommonItem( leftTitel: '胁迫开门', rightTitle: "", isHaveLine: true, isHaveDirection: true, action: () { Get.toNamed(Routers.coerceOpenDoorPage); }, ), SizedBox( height: 30.h, ), Container( alignment: Alignment.centerLeft, margin: EdgeInsets.only(left: 40.w, top: 40.h, bottom: 30.h), child: Text( '门铃通知', style: TextStyle(color: AppColors.msgNoticeTextColor, fontSize: 24.sp), ), ), Obx(() => CommonItem( leftTitel: '有人按门铃', rightTitle: "", isHaveLine: true, isHaveRightWidget: true, rightWidget: SizedBox(width: 60.w, height: 50.h, child: _switch(3)))), SizedBox( height: 30.h, ), Container( alignment: Alignment.centerLeft, margin: EdgeInsets.only(left: 40.w, top: 40.h, bottom: 30.h), child: Text( '猫眼通知', style: TextStyle(color: AppColors.msgNoticeTextColor, fontSize: 24.sp), ), ), Obx(() => CommonItem( leftTitel: '有人出现在门口', rightTitle: "", isHaveLine: false, isHaveRightWidget: true, rightWidget: SizedBox(width: 60.w, height: 50.h, child: _switch(4)))), SizedBox( height: 60.h, ) ], ); } CupertinoSwitch _switch(int getIndex) { bool isCheck = false; switch (getIndex) { //离家开门 case 1: isCheck = state.isLeaveHomeOpenDoor.value; break; //门未关好 case 2: isCheck = state.isDoorNotShut.value; break; //有人按门铃 case 3: isCheck = state.isSomeoneRing.value; break; //有人出现在门口 case 4: isCheck = state.isSomeoneAppeared.value; break; default: } return CupertinoSwitch( activeColor: CupertinoColors.activeBlue, trackColor: CupertinoColors.systemGrey5, thumbColor: CupertinoColors.white, value: isCheck, onChanged: (value) { switch (getIndex) { //离家开门 case 1: state.isLeaveHomeOpenDoor.value = value; break; //门未关好 case 2: state.isDoorNotShut.value = value; break; //有人按门铃 case 3: state.isSomeoneRing.value = value; break; //有人出现在门口 case 4: state.isSomeoneAppeared.value = value; break; default: } }, ); } }