# Conflicts: # star_lock/lib/appRouters.dart # star_lock/lib/main/lockDetail/lcokSet/lockSet/lockSet_page.dart # star_lock/lib/main/lockDetail/lockDetail/lockDetail_page.dart # star_lock/lib/network/api_repository.dart
403 lines
15 KiB
Dart
403 lines
15 KiB
Dart
import 'dart:async';
|
|
|
|
import 'package:flutter/cupertino.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/appRouteObserver.dart';
|
|
import '../../../../tools/commonItem.dart';
|
|
import '../../../../tools/eventBusEventManage.dart';
|
|
import '../../../../tools/showIosTipView.dart';
|
|
import '../../../../tools/submitBtn.dart';
|
|
import '../../../../tools/titleAppBar.dart';
|
|
import '../../../../tools/toast.dart';
|
|
import '../../../../translations/trans_lib.dart';
|
|
import 'lockSet_logic.dart';
|
|
|
|
class LockSetPage extends StatefulWidget {
|
|
const LockSetPage({Key? key}) : super(key: key);
|
|
|
|
@override
|
|
State<LockSetPage> createState() => _LockSetPageState();
|
|
}
|
|
|
|
class _LockSetPageState extends State<LockSetPage> with RouteAware {
|
|
final logic = Get.put(LockSetLogic());
|
|
final state = Get.find<LockSetLogic>().state;
|
|
StreamSubscription? _passCurrentLockInformationEvent;
|
|
|
|
@override
|
|
void initState() {
|
|
// TODO: implement initState
|
|
super.initState();
|
|
|
|
logic.initLoadDataAction(() {
|
|
setState(() {});
|
|
});
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
backgroundColor: AppColors.mainBackgroundColor,
|
|
appBar: TitleAppBar(
|
|
barTitle: TranslationLoader.lanKeys!.set!.tr,
|
|
haveBack: true,
|
|
backgroundColor: AppColors.mainColor),
|
|
body: Column(
|
|
children: [
|
|
Expanded(
|
|
child: ListView(
|
|
children: [
|
|
CommonItem(
|
|
leftTitel:
|
|
TranslationLoader.lanKeys!.basicInformation!.tr,
|
|
rightTitle: "",
|
|
isHaveLine: false,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.basicInformationPage, arguments: {
|
|
'keyInfo': state.getKeyInfosData.value
|
|
});
|
|
}),
|
|
SizedBox(
|
|
height: 10.h,
|
|
),
|
|
CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.doorMagnetic!.tr,
|
|
rightTitle: "",
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.doorMagneticPage);
|
|
// Toast.show(msg: "功能暂未开放");
|
|
}),
|
|
CommonItem(
|
|
leftTitel:
|
|
TranslationLoader.lanKeys!.wirelessKeyboard!.tr,
|
|
rightTitle: "",
|
|
isHaveLine: false,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.wirelessKeyboardPage);
|
|
// Toast.show(msg: "功能暂未开放");
|
|
}),
|
|
SizedBox(
|
|
height: 10.h,
|
|
),
|
|
Obx(() => CommonItem(
|
|
leftTitel:
|
|
TranslationLoader.lanKeys!.automaticBlocking!.tr,
|
|
rightTitle: state.getKeyInfosData.value.autoLockTime! > -1
|
|
? "${state.getKeyInfosData.value.autoLockTime!.toString()}s"
|
|
: TranslationLoader.lanKeys!.closed!.tr,
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.automaticBlockingPage,
|
|
arguments: state.getKeyInfosData.value);
|
|
})),
|
|
Obx(() {
|
|
var titleStr = "";
|
|
if (state.getKeyInfosData.value.lockSound == 1) {
|
|
switch (state.getKeyInfosData.value.volume) {
|
|
case 1:
|
|
titleStr = TranslationLoader.lanKeys!.low!.tr;
|
|
break;
|
|
case 2:
|
|
titleStr = TranslationLoader.lanKeys!.lower!.tr;
|
|
break;
|
|
case 3:
|
|
titleStr = TranslationLoader.lanKeys!.medium!.tr;
|
|
break;
|
|
case 4:
|
|
titleStr = TranslationLoader.lanKeys!.high!.tr;
|
|
break;
|
|
case 5:
|
|
titleStr = TranslationLoader.lanKeys!.higher!.tr;
|
|
break;
|
|
}
|
|
} else {
|
|
titleStr = TranslationLoader.lanKeys!.closed!.tr;
|
|
}
|
|
return CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.lockSound!.tr,
|
|
rightTitle: titleStr,
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.lockSoundSetPage,
|
|
arguments: state.getKeyInfosData.value);
|
|
});
|
|
}),
|
|
Obx(() => CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.burglarAlarm!.tr,
|
|
rightTitle: state.getKeyInfosData.value.tamperAlert == 1
|
|
? TranslationLoader.lanKeys!.opened!.tr
|
|
: TranslationLoader.lanKeys!.closed!.tr,
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.burglarAlarmPage,
|
|
arguments: state.getKeyInfosData.value);
|
|
})),
|
|
SizedBox(
|
|
height: 10.h,
|
|
),
|
|
Obx(
|
|
() => CommonItem(
|
|
leftTitel:
|
|
TranslationLoader.lanKeys!.normallyOpenMode!.tr,
|
|
rightTitle: state.getKeyInfosData.value.passageMode == 1
|
|
? TranslationLoader.lanKeys!.opened!.tr
|
|
: TranslationLoader.lanKeys!.closed!.tr,
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.normallyOpenModePage,
|
|
arguments: state.getKeyInfosData.value);
|
|
}),
|
|
),
|
|
Obx(() => CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.remoteUnlocking!.tr,
|
|
rightTitle: state.getKeyInfosData.value.remoteEnable == 1
|
|
? TranslationLoader.lanKeys!.opened!.tr
|
|
: TranslationLoader.lanKeys!.closed!.tr,
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.remoteUnlockingPage,
|
|
arguments: state.getKeyInfosData.value);
|
|
})),
|
|
Obx(() => CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.resetButton!.tr,
|
|
rightTitle: state.getKeyInfosData.value.resetButton == 1
|
|
? TranslationLoader.lanKeys!.opened!.tr
|
|
: TranslationLoader.lanKeys!.closed!.tr,
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.resetButtonPage,
|
|
arguments: state.getKeyInfosData.value);
|
|
})),
|
|
SizedBox(
|
|
height: 10.h,
|
|
),
|
|
Obx(() {
|
|
var title = "";
|
|
if (state.getKeyInfosData.value.roomStatus == 1) {
|
|
title = TranslationLoader.lanKeys!.checkedIn!.tr;
|
|
} else if (state.getKeyInfosData.value.roomStatus == 2) {
|
|
title = TranslationLoader.lanKeys!.leisure!.tr;
|
|
}
|
|
return CommonItem(
|
|
leftTitel:
|
|
TranslationLoader.lanKeys!.markedHouseState!.tr,
|
|
rightTitle: title,
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.markedHouseStatePage,
|
|
arguments: state.getKeyInfosData.value);
|
|
});
|
|
}),
|
|
CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.checkingIn!.tr,
|
|
rightTitle: "",
|
|
isHaveLine: true,
|
|
isHaveRightWidget: true,
|
|
rightWidget:
|
|
SizedBox(width: 60.w, child: _openCheckInSwitch())),
|
|
CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.unlockReminder!.tr,
|
|
rightTitle: "",
|
|
isHaveLine: false,
|
|
isHaveRightWidget: true,
|
|
rightWidget:
|
|
SizedBox(width: 60.w, child: _lockRemindSwitch())),
|
|
SizedBox(
|
|
height: 10.h,
|
|
),
|
|
CommonItem(
|
|
leftTitel: TranslationLoader
|
|
.lanKeys!.wifiDistributionNetwork!.tr,
|
|
rightTitle: "",
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.configuringWifiPage);
|
|
}),
|
|
CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.lockTime!.tr,
|
|
rightTitle: "",
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.lockTimePage,
|
|
arguments: state.getKeyInfosData.value);
|
|
}),
|
|
CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.diagnose!.tr,
|
|
rightTitle: "",
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.diagnosePage,
|
|
arguments: state.getKeyInfosData.value);
|
|
}),
|
|
CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.uploadData!.tr,
|
|
rightTitle: "",
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.uploadDataPage);
|
|
}),
|
|
CommonItem(
|
|
leftTitel:
|
|
TranslationLoader.lanKeys!.importOtherLockData!.tr,
|
|
rightTitle: "",
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.importOtherLockDataPage);
|
|
}),
|
|
CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.lockEscalation!.tr,
|
|
rightTitle: "",
|
|
isHaveLine: false,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.lockEscalationPage);
|
|
}),
|
|
SizedBox(
|
|
height: 30.h,
|
|
),
|
|
Container(
|
|
padding: EdgeInsets.only(left: 20.w, right: 20.w),
|
|
child: SubmitBtn(
|
|
btnName: TranslationLoader.lanKeys!.delete!.tr,
|
|
isDelete: true,
|
|
onClick: () {
|
|
logic.deletUserAction();
|
|
// logic.deletLockInfoData();
|
|
}),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
],
|
|
));
|
|
}
|
|
|
|
CupertinoSwitch _openCheckInSwitch() {
|
|
return CupertinoSwitch(
|
|
activeColor: CupertinoColors.activeBlue,
|
|
trackColor: CupertinoColors.systemGrey5,
|
|
thumbColor: CupertinoColors.white,
|
|
value: (state.getKeyInfosData.value.isAttendance == 1) ? true : false,
|
|
onChanged: (value) {
|
|
setState(() {
|
|
int isOnStr;
|
|
if (value == true) {
|
|
isOnStr = 1;
|
|
} else {
|
|
isOnStr = 2;
|
|
}
|
|
|
|
logic.openCheckingInData((checkingInInfoDataEntity) {
|
|
if (checkingInInfoDataEntity.data!.companyId == 0) {
|
|
showCupertinoAlertDialog(context);
|
|
} else {
|
|
logic.setLockSetGeneralSetting(isOnStr.toString());
|
|
}
|
|
});
|
|
});
|
|
},
|
|
);
|
|
}
|
|
|
|
CupertinoSwitch _lockRemindSwitch() {
|
|
return CupertinoSwitch(
|
|
activeColor: CupertinoColors.activeBlue,
|
|
trackColor: CupertinoColors.systemGrey5,
|
|
thumbColor: CupertinoColors.white,
|
|
value: state.isLockPickingReminder.value == 1 ? true : false,
|
|
onChanged: (value) {
|
|
setState(() {
|
|
state.isLockPickingReminder.value =
|
|
state.isLockPickingReminder.value == 1 ? 2 : 1;
|
|
logic.setLockPickingReminder();
|
|
});
|
|
},
|
|
);
|
|
}
|
|
|
|
void showCupertinoAlertDialog(
|
|
BuildContext context,
|
|
) {
|
|
showDialog(
|
|
context: context,
|
|
builder: (BuildContext context) {
|
|
return ShowIosTipView(
|
|
title: "提示",
|
|
tipTitle: "创建公司号,考勤功能才能使用",
|
|
sureClick: () {
|
|
//
|
|
Navigator.pop(context);
|
|
Get.toNamed(Routers.checkInCreatCompanyPage,
|
|
arguments: state.getKeyInfosData.value);
|
|
},
|
|
cancelClick: () {
|
|
Navigator.pop(context);
|
|
},
|
|
);
|
|
},
|
|
);
|
|
}
|
|
|
|
@override
|
|
void didChangeDependencies() {
|
|
// TODO: implement didChangeDependencies
|
|
super.didChangeDependencies();
|
|
|
|
/// 路由订阅
|
|
AppRouteObserver().routeObserver.subscribe(this, ModalRoute.of(context)!);
|
|
}
|
|
|
|
@override
|
|
void dispose() {
|
|
// TODO: implement dispose
|
|
/// 取消路由订阅
|
|
AppRouteObserver().routeObserver.unsubscribe(this);
|
|
super.dispose();
|
|
}
|
|
|
|
/// 界面从上一个界面进入 当前界面即将出现
|
|
@override
|
|
void didPush() {
|
|
print("lockSet===didPush");
|
|
}
|
|
|
|
/// 界面返回上一个界面 当前界面即将消失
|
|
@override
|
|
void didPop() {
|
|
print("lockSet===didPop");
|
|
}
|
|
|
|
/// 当前界面从下一级返回 当前界面即将出现
|
|
@override
|
|
void didPopNext() {
|
|
print("lockSet===didPopNext");
|
|
}
|
|
|
|
/// 当前界面进入下一个界面 当前界面即将消失
|
|
@override
|
|
void didPushNext() {
|
|
print("lockSet===didPushNext");
|
|
}
|
|
}
|