Daisy 10f1496d57 1,锁详情页新增虹膜、手掌的入口
2,新增虹膜列表页面
3,新增添加永久、限时、循环类型虹膜界面
4,新增添加虹膜手势过程页面
2024-04-09 17:20:14 +08:00

382 lines
11 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import '../../../../appRouters.dart';
import '../../../../app_settings/app_colors.dart';
import '../../../../tools/titleAppBar.dart';
import '../../../../translations/trans_lib.dart';
import '../../entity/lockListInfo_entity.dart';
import 'demoModeLockDetail_logic.dart';
class DemoModeLockDetailPage extends StatefulWidget {
const DemoModeLockDetailPage({Key? key}) : super(key: key);
@override
State<DemoModeLockDetailPage> createState() => _DemoModeLockDetailPageState();
}
class _DemoModeLockDetailPageState extends State<DemoModeLockDetailPage> {
final logic = Get.put(DemoModeLockDetailLogic());
// final state = Get.find<DemoModeLockDetailLogic>().state;
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar(
barTitle: "演示模式",
haveBack: true,
backgroundColor: AppColors.mainColor,
),
body: ListView(
children: [
Container(
width: 1.sw,
height: 1.sh - ScreenUtil().statusBarHeight,
color: Colors.white,
child: Column(
children: [
topTip(),
topWidget(),
Expanded(child: bottomWidget())
],
),
),
],
));
}
Widget topTip() {
return Container(
// height: 120.h,
width: 1.sw,
margin: EdgeInsets.all(15.w),
child: Column(
children: [
Row(
children: [
Expanded(
child: Text("提示:当前界面为展示界面,添加设备后才能继续使用",
style: TextStyle(
fontSize: 24.sp, color: AppColors.mainColor))),
],
),
],
),
);
}
Widget topWidget() {
// KeyInfos keyInfo = widget.lockMainEntity.data!.keyInfos![0];
return Column(
mainAxisSize: MainAxisSize.min,
children: [
SizedBox(height: 30.h),
Stack(
alignment: Alignment.centerRight,
children: [
Align(
alignment: Alignment.center,
child: Text(
"TMH_78f16712781a",
style:
TextStyle(fontSize: 22.sp, fontWeight: FontWeight.w400),
)),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Text(
"100%",
style: TextStyle(
fontSize: 18.sp, color: AppColors.darkGrayTextColor),
),
SizedBox(width: 2.w),
Image.asset(
'images/main/icon_main_cell.png',
width: 30.w,
height: 24.w,
),
SizedBox(width: 30.w),
],
),
],
),
SizedBox(height: 30.h),
Container(
// width: 1.sw,
color: Colors.white,
height: 280.w,
child: Stack(
children: [
Center(
child: GestureDetector(
onTap: () {
gotoLogin();
},
child: Image.asset('images/main/icon_main_openLockBtn.png',
width: 268.w, height: 268.w),
)),
],
),
),
SizedBox(height: 30.h),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'门已上锁',
style: TextStyle(
fontSize: 26.sp,
color: Colors.black,
fontWeight: FontWeight.w500),
),
],
),
SizedBox(
height: 6.h,
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
TranslationLoader.lanKeys!.clickUnlockAndHoldDownClose!.tr,
style: TextStyle(
fontSize: 22.sp,
color: AppColors.btnDisableColor,
fontWeight: FontWeight.w500),
),
],
),
SizedBox(
height: 30.h,
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Image.asset(
'images/icon_electronicKey_admin.png',
width: 24.w,
height: 20.w,
),
SizedBox(
width: 6.w,
),
Text(
'超级管理员',
style:
TextStyle(fontSize: 20.sp, color: AppColors.btnDisableColor),
),
SizedBox(
width: 80.w,
),
Image.asset(
'images/main/icon_main_remoteUnlocking_grey.png',
// state.keyInfos.value.remoteEnable == 1
// ? 'images/main/icon_main_remoteUnlocking.png'
// : 'images/main/icon_main_remoteUnlocking_grey.png',
width: 24.w,
height: 20.w,
// color: state.keyInfos.value.remoteEnable == 1
// ? AppColors.btnDisableColor
// : AppColors.mainColor,
),
SizedBox(
width: 6.w,
),
Text(
'网关设备',
style:
TextStyle(fontSize: 20.sp, color: AppColors.btnDisableColor),
),
],
),
SizedBox(
height: 20.h,
),
Divider(
height: 1,
color: AppColors.greyLineColor,
indent: 20.w,
endIndent: 20.w,
)
],
);
}
Widget bottomWidget() {
return Container(
margin: EdgeInsets.only(left: 10.w, right: 10.w, top: 40.h),
// color: Colors.blue,
child: SizedBox(
child: GridView.count(
crossAxisCount: 4,
// childAspectRatio: 3,
crossAxisSpacing: 20.w,
mainAxisSpacing: 0.h,
physics: const NeverScrollableScrollPhysics(),
children: getShowWidget()),
),
);
}
List<Widget> getShowWidget() {
var showWidgetArr = <Widget>[];
// 考勤
// if (state.keyInfos.value.isAttendance == 1) {
showWidgetArr.add(bottomItem('images/main/icon_main_clockingIn.png',
TranslationLoader.lanKeys!.checkingIn!.tr, () {
// gotoLogin();
Get.toNamed(Routers.checkingInListPage,
arguments: LockListInfoItemEntity());
}));
// }
var defaultWidgetArr = [
// 电子钥匙
bottomItem('images/main/icon_main_electronicKey.png',
TranslationLoader.lanKeys!.electronicKey!.tr, () {
// gotoLogin();
Get.toNamed(Routers.electronicKeyListPage,
arguments: {"keyInfo": LockListInfoItemEntity()});
}),
// 密码
bottomItem('images/main/icon_main_password.png',
TranslationLoader.lanKeys!.password!.tr, () {
// gotoLogin();
Get.toNamed(Routers.passwordKeyListPage,
arguments: {"keyInfo": LockListInfoItemEntity()});
}),
// ic卡
bottomItem('images/main/icon_main_icCard.png',
TranslationLoader.lanKeys!.card!.tr, () {
// gotoLogin();
Get.toNamed(Routers.cardListPage, arguments: {"lockId": 0});
}),
// 指纹
bottomItem('images/main/icon_main_fingerprint.png',
TranslationLoader.lanKeys!.fingerprint!.tr, () {
// gotoLogin();
Get.toNamed(Routers.fingerprintListPage,
arguments: {"lockId": 1, "fromType": 1});
}),
// 遥控
bottomItem('images/main/icon_main_remoteControl.png',
TranslationLoader.lanKeys!.remoteControl!.tr, () {
gotoLogin();
// Get.toNamed(Routers.otherTypeKeyListPage, arguments: {
// "lockId": "2",
// "fromType": 2
// });
}),
];
showWidgetArr.addAll(defaultWidgetArr);
//可视对讲门锁新增->人脸
showWidgetArr.add(
bottomItem('images/main/icon_face.png', '人脸', () {
// gotoLogin();
Get.toNamed(Routers.faceListPage, arguments: {
"lockId": 1,
});
}),
);
//可视对讲门锁新增->监控
showWidgetArr.add(
bottomItem('images/main/icon_catEyes.png', '监控', () {
gotoLogin();
// Navigator.pushNamed(context, Routers.otherTypeKeyListPage,
// arguments: 1);
// Toast.show(msg: "功能暂未开放");
}),
);
var endWiddget = [
// 授权管理员
bottomItem('images/main/icon_main_authorizedAdmin.png',
TranslationLoader.lanKeys!.authorizedAdmin!.tr, () {
// gotoLogin();
Get.toNamed(Routers.authorizedAdminListPage,
arguments: {"keyInfo": LockListInfoItemEntity()});
}),
// 操作记录
bottomItem('images/main/icon_main_operatingRecord.png',
TranslationLoader.lanKeys!.operatingRecord!.tr, () {
// gotoLogin();
Get.toNamed(Routers.lockOperatingRecordPage,
arguments: {"keyInfo": LockListInfoItemEntity()});
}),
// 视频日志
bottomItem('images/main/icon_lockDetail_videoLog.png', "视频日志", () {
//视频日志
Get.toNamed(Routers.videoLogPage);
}),
// 消息提醒
bottomItem('images/main/icon_lockDetail_messageReminding.png', "消息提醒",
() {
Get.toNamed(Routers.msgNotificationPage);
}),
// 设置
bottomItem(
'images/main/icon_main_set.png', TranslationLoader.lanKeys!.set!.tr,
() {
Get.toNamed(Routers.demoModeLockSetPage);
}),
];
showWidgetArr.addAll(endWiddget);
return showWidgetArr;
}
Widget bottomItem(String iconUrl, String name, Function() onClick) {
var width = 42.w;
var height = 42.h;
return GestureDetector(
onTap: onClick,
child: Container(
// height: 300.h,
color: Colors.white,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
width: width,
height: height,
child: Image.asset(iconUrl,
width: width, height: height, fit: BoxFit.fitWidth),
),
SizedBox(height: 10.w),
Expanded(
child: Text(name,
style: TextStyle(
fontSize: 20.sp, color: AppColors.blackColor),
textAlign: TextAlign.center))
],
)),
);
}
void gotoLogin() {
// Get.toNamed(Routers.selectLockTypePage);
logic.showToast("演示模式");
}
}