840 lines
29 KiB
Dart
Executable File
840 lines
29 KiB
Dart
Executable File
import 'package:flutter/cupertino.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:star_lock/main/lockDetail/lockSet/lockSet/checkingInInfoData_entity.dart';
|
|
import 'package:star_lock/main/lockDetail/lockSet/lockSet/lockSet_state.dart';
|
|
import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart';
|
|
|
|
import '../../../../appRouters.dart';
|
|
import '../../../../app_settings/app_colors.dart';
|
|
import '../../../../tools/EasyRefreshTool.dart';
|
|
import '../../../../tools/appRouteObserver.dart';
|
|
import '../../../../tools/commonItem.dart';
|
|
|
|
import '../../../../tools/showTipView.dart';
|
|
import '../../../../tools/submitBtn.dart';
|
|
import '../../../../tools/titleAppBar.dart';
|
|
import '../../../../translations/trans_lib.dart';
|
|
import 'lockSetInfo_entity.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 WidgetsBindingObserver, RouteAware {
|
|
final LockSetLogic logic = Get.put(LockSetLogic());
|
|
final LockSetState state = Get.find<LockSetLogic>().state;
|
|
|
|
Future<void> getHttpData() async {
|
|
logic.getLockSettingInfoData().then((LockSetInfoEntity value) {
|
|
setState(() {});
|
|
});
|
|
}
|
|
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
|
|
WidgetsBinding.instance.addObserver(this);
|
|
|
|
logic.initLoadDataAction(() {
|
|
setState(() {});
|
|
});
|
|
|
|
getHttpData();
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return GetBuilder<LockSetLogic>(builder: (LockSetLogic logic) {
|
|
return Scaffold(
|
|
backgroundColor: AppColors.mainBackgroundColor,
|
|
appBar: TitleAppBar(
|
|
barTitle: TranslationLoader.lanKeys!.set!.tr,
|
|
haveBack: true,
|
|
backgroundColor: AppColors.mainColor),
|
|
body: EasyRefreshTool(
|
|
onRefresh: () {
|
|
getHttpData();
|
|
},
|
|
child: Column(
|
|
children: <Widget>[
|
|
Expanded(
|
|
child: Obx(() => ListView(
|
|
children: getListWidget(),
|
|
)),
|
|
),
|
|
],
|
|
),
|
|
));
|
|
});
|
|
}
|
|
|
|
// 根据权限显示不同的列表
|
|
List<Widget> getListWidget() {
|
|
if (state.lockBasicInfo.value.isLockOwner == 1 ||
|
|
state.lockBasicInfo.value.keyRight == 1) {
|
|
// 超级管理员、授权管理员
|
|
return getAllWidget();
|
|
} else {
|
|
return getNormalWidget();
|
|
}
|
|
}
|
|
|
|
// 普通用户
|
|
List<Widget> getNormalWidget() {
|
|
final List<Widget> showWidgetArr = <Widget>[
|
|
// 基本信息
|
|
CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.basicInformation!.tr,
|
|
rightTitle: '',
|
|
isHaveLine: false,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.basicInformationPage,
|
|
arguments: <String, LockSetInfoData>{
|
|
'lockSetInfoData': state.lockSetInfoData.value
|
|
});
|
|
}),
|
|
SizedBox(height: 10.h),
|
|
// 自动闭锁
|
|
Obx(() => Visibility(
|
|
visible: state.lockFeature.value.autoLock == 1,
|
|
child: CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.automaticBlocking!.tr,
|
|
rightTitle: (state.lockSettingInfo.value.autoLock ?? 0) > 0
|
|
? '${state.lockSetInfoData.value.lockSettingInfo!.autoLockSecond ?? 0}s'
|
|
: TranslationLoader.lanKeys!.closed!.tr,
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
// isHaveRightWidget: true,
|
|
// rightWidget: rightText((state.lockSetInfoData.value.lockSetting!.autoLock ?? 0) > 0
|
|
// ? "${state.lockSetInfoData.value.lockSetting!.autoLockSecond ?? 0}s"
|
|
// : TranslationLoader.lanKeys!.closed!.tr),
|
|
action: () {
|
|
Get.toNamed(Routers.automaticBlockingPage,
|
|
arguments: <String, LockSetInfoData>{
|
|
'lockSetInfoData': state.lockSetInfoData.value,
|
|
// 'lockBasicInfo': state.lockBasicInfo.value
|
|
});
|
|
}))),
|
|
// 常开模式
|
|
Obx(() => Visibility(
|
|
visible: state.lockFeature.value.passageMode == 1,
|
|
child: CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.normallyOpenMode!.tr,
|
|
rightTitle: (state.lockSettingInfo.value.passageMode ?? 0) == 1
|
|
? TranslationLoader.lanKeys!.opened!.tr
|
|
: TranslationLoader.lanKeys!.closed!.tr,
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.normallyOpenModePage,
|
|
arguments: <String, Object>{
|
|
'lockSetInfoData': state.lockSetInfoData.value,
|
|
'lockBasicInfo': state.lockBasicInfo.value
|
|
});
|
|
}))),
|
|
Visibility(
|
|
visible: true,
|
|
child: CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.lockTime!.tr,
|
|
rightTitle: '',
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.lockTimePage,
|
|
arguments: <String, LockSetInfoData>{
|
|
'lockSetInfoData': state.lockSetInfoData.value
|
|
});
|
|
})),
|
|
SizedBox(height: 30.h),
|
|
Container(
|
|
padding: EdgeInsets.only(left: 20.w, right: 20.w, bottom: 30.h),
|
|
child: SubmitBtn(
|
|
btnName: TranslationLoader.lanKeys!.delete!.tr,
|
|
isDelete: true,
|
|
onClick: () async {
|
|
// logic.deletUserAction();
|
|
// logic.deletLockInfoData();
|
|
// showDeletAlertDialog(context);
|
|
// showDeletPasswordAlertDialog(context);
|
|
final bool isNetWork =
|
|
await LockMainLogic.to()?.judgeTheNetwork() ?? false;
|
|
if (!isNetWork) {
|
|
return;
|
|
}
|
|
logic.deleyLockLogicOfRoles();
|
|
}),
|
|
),
|
|
];
|
|
return showWidgetArr;
|
|
}
|
|
|
|
// 授权管理员、超级管理员字段
|
|
List<Widget> getAllWidget() {
|
|
final List<Widget> showWidgetArr = <Widget>[
|
|
// 基本信息
|
|
CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.basicInformation!.tr,
|
|
rightTitle: '',
|
|
isHaveLine: false,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.basicInformationPage,
|
|
arguments: <String, LockSetInfoData>{
|
|
'lockSetInfoData': state.lockSetInfoData.value
|
|
});
|
|
}),
|
|
SizedBox(height: 10.h),
|
|
//by DaisyWu 田总:移至锁详情配件区
|
|
// 门磁
|
|
// Obx(() => Visibility(
|
|
// visible: state.lockFeature.value.doorStatus == 1 ? true : false,
|
|
// child: CommonItem(
|
|
// leftTitel: TranslationLoader.lanKeys!.doorMagnetic!.tr,
|
|
// rightTitle: "",
|
|
// isHaveLine: true,
|
|
// isHaveDirection: true,
|
|
// action: () {
|
|
// Get.toNamed(Routers.doorMagneticPage);
|
|
// // Toast.show(msg: "功能暂未开放");
|
|
// }))),
|
|
// // 无线键盘
|
|
// Obx(() => Visibility(
|
|
// visible: state.lockFeature.value.wirelessKeyboard == 1 ? true : false,
|
|
// child: CommonItem(
|
|
// leftTitel: TranslationLoader.lanKeys!.wirelessKeyboard!.tr,
|
|
// rightTitle: "",
|
|
// isHaveLine: true,
|
|
// isHaveDirection: true,
|
|
// action: () {
|
|
// Get.toNamed(Routers.wirelessKeyboardPage);
|
|
// // Toast.show(msg: "功能暂未开放");
|
|
// }))),
|
|
// // 照明
|
|
// Obx(() => Visibility(
|
|
// visible: state.lockFeature.value.lightingTime == 1 ? true : false,
|
|
// child: CommonItem(
|
|
// leftTitel: TranslationLoader.lanKeys!.illumination!.tr,
|
|
// rightTitle: "",
|
|
// isHaveLine: true,
|
|
// isHaveDirection: true,
|
|
// action: () {
|
|
// logic.showToast("功能暂未开放");
|
|
// }))),
|
|
// 开门器
|
|
// Visibility(
|
|
// visible: state.lockFeature.value.doorStatus == 1 ? true : false,
|
|
// child: CommonItem(
|
|
// leftTitel: TranslationLoader.lanKeys!.doorOpener!.tr,
|
|
// rightTitle: "",
|
|
// isHaveLine: false,
|
|
// isHaveDirection: true,
|
|
// action: () {
|
|
// logic.showToast("功能暂未开放");
|
|
// })),
|
|
// SizedBox(height: 10.h),
|
|
// 自动闭锁
|
|
Obx(() => Visibility(
|
|
visible: state.lockFeature.value.autoLock == 1,
|
|
child: CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.automaticBlocking!.tr,
|
|
rightTitle: state.lockSettingInfo.value.autoLock! > 0
|
|
? '${state.lockSetInfoData.value.lockSettingInfo!.autoLockSecond}s'
|
|
: TranslationLoader.lanKeys!.closed!.tr,
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
// isHaveRightWidget: true,
|
|
// rightWidget: rightText((state.lockSetInfoData.value.lockSetting!.autoLock ?? 0) > 0
|
|
// ? "${state.lockSetInfoData.value.lockSetting!.autoLockSecond ?? 0}s"
|
|
// : TranslationLoader.lanKeys!.closed!.tr),
|
|
action: () {
|
|
Get.toNamed(Routers.automaticBlockingPage,
|
|
arguments: <String, LockSetInfoData>{
|
|
'lockSetInfoData': state.lockSetInfoData.value
|
|
});
|
|
}))),
|
|
// 锁声音
|
|
Obx(() {
|
|
String titleStr = '';
|
|
if ((state.lockSettingInfo.value.lockSound ?? 0) == 1) {
|
|
switch (state.lockSettingInfo.value.lockSoundVolume ?? 0) {
|
|
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!.higher!.tr;
|
|
break;
|
|
case 5:
|
|
titleStr = TranslationLoader.lanKeys!.high!.tr;
|
|
break;
|
|
}
|
|
} else {
|
|
titleStr = TranslationLoader.lanKeys!.closed!.tr;
|
|
}
|
|
return Visibility(
|
|
visible: state.lockFeature.value.lockSound == 1,
|
|
child: CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.lockSound!.tr,
|
|
rightTitle: titleStr,
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.lockSoundSetPage,
|
|
arguments: <String, LockSetInfoData>{
|
|
'lockSetInfoData': state.lockSetInfoData.value
|
|
});
|
|
}));
|
|
}),
|
|
// 防撬报警
|
|
Obx(() => Visibility(
|
|
visible: state.lockFeature.value.antiPrySwitch == 1,
|
|
child: CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.burglarAlarm!.tr,
|
|
rightTitle: (state.lockSettingInfo.value.antiPrySwitch ?? 0) == 1
|
|
? TranslationLoader.lanKeys!.opened!.tr
|
|
: TranslationLoader.lanKeys!.closed!.tr,
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.burglarAlarmPage,
|
|
arguments: <String, LockSetInfoData>{
|
|
'lockSetInfoData': state.lockSetInfoData.value
|
|
});
|
|
}))),
|
|
SizedBox(height: 10.h),
|
|
// 常开模式
|
|
Obx(() => Visibility(
|
|
visible: state.lockFeature.value.passageMode == 1,
|
|
// visible: true,
|
|
child: CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.normallyOpenMode!.tr,
|
|
rightTitle: (state.lockSettingInfo.value.passageMode ?? 0) == 1
|
|
? TranslationLoader.lanKeys!.opened!.tr
|
|
: TranslationLoader.lanKeys!.closed!.tr,
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.normallyOpenModePage,
|
|
arguments: <String, LockSetInfoData>{
|
|
'lockSetInfoData': state.lockSetInfoData.value
|
|
});
|
|
}))),
|
|
// 远程开锁
|
|
Obx(() => Visibility(
|
|
visible: state.lockFeature.value.remoteUnlock == 1,
|
|
child: CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.remoteUnlocking!.tr,
|
|
rightTitle: (state.lockSettingInfo.value.remoteUnlock ?? 0) == 1
|
|
? TranslationLoader.lanKeys!.opened!.tr
|
|
: TranslationLoader.lanKeys!.closed!.tr,
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.remoteUnlockingPage,
|
|
arguments: <String, LockSetInfoData>{
|
|
'lockSetInfoData': state.lockSetInfoData.value
|
|
});
|
|
}))),
|
|
// 重置键
|
|
Obx(() => Visibility(
|
|
visible: state.lockBasicInfo.value.isLockOwner == 1 &&
|
|
state.lockFeature.value.resetSwitch == 1,
|
|
child: CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.resetButton!.tr,
|
|
rightTitle: (state.lockSettingInfo.value.resetSwitch ?? 0) == 1
|
|
? TranslationLoader.lanKeys!.opened!.tr
|
|
: TranslationLoader.lanKeys!.closed!.tr,
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.resetButtonPage,
|
|
arguments: <String, LockSetInfoData>{
|
|
'lockSetInfoData': state.lockSetInfoData.value
|
|
});
|
|
}))),
|
|
SizedBox(height: 10.h),
|
|
//---田总新增展示
|
|
// Obx(() =>
|
|
// 面容开锁
|
|
Visibility(
|
|
visible: state.lockFeature.value.d3Face == 1,
|
|
child: CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.faceUnlocks!.tr,
|
|
rightTitle: '',
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.faceUnlockPage,
|
|
arguments: <String, LockSetInfoData>{
|
|
'lockSetInfoData': state.lockSetInfoData.value
|
|
});
|
|
})),
|
|
// ),
|
|
// 消息提醒
|
|
Visibility(
|
|
visible: true,
|
|
child: CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.messageReminding!.tr,
|
|
rightTitle: '',
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.msgNotificationPage,
|
|
arguments: <String, int?>{
|
|
'lockId': state.lockSetInfoData.value.lockId
|
|
});
|
|
})),
|
|
//猫眼设置
|
|
Obx(() => Visibility(
|
|
visible: state.lockFeature.value.isSupportCatEye == 1,
|
|
child: CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.catEyeSet!.tr,
|
|
rightTitle: '',
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.catEyeSetPage,
|
|
arguments: <String, LockSetInfoData>{
|
|
'lockSetInfoData': state.lockSetInfoData.value
|
|
});
|
|
}))),
|
|
// Obx(() =>
|
|
//自动亮屏已包括至面容开锁模块
|
|
// Visibility(
|
|
// visible: true,
|
|
// child: CommonItem(
|
|
// leftTitel: '自动亮屏',
|
|
// rightTitle: "",
|
|
// isHaveLine: true,
|
|
// isHaveDirection: true,
|
|
// action: () {})),
|
|
// ),
|
|
|
|
// Obx(() =>
|
|
//感应距离已包括至面容开锁模块
|
|
// Visibility(
|
|
// visible: true,
|
|
// child: CommonItem(
|
|
// leftTitel: '感应距离',
|
|
// rightTitle: "",
|
|
// isHaveLine: true,
|
|
// isHaveDirection: true,
|
|
// action: () {
|
|
// Toast.show(msg: "功能暂未开放");
|
|
// })),
|
|
// ),
|
|
// Obx(() =>
|
|
// 开门方向设置
|
|
Visibility(
|
|
visible: state.lockFeature.value.openDirection == 1,
|
|
child: CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.openingDirectionSet!.tr,
|
|
rightTitle: '',
|
|
isHaveDirection: true,
|
|
isHaveLine: true,
|
|
action: () {
|
|
Get.toNamed(Routers.openDoorDirectionPage,
|
|
arguments: <String, LockSetInfoData>{
|
|
'lockSetInfoData': state.lockSetInfoData.value
|
|
});
|
|
})),
|
|
// 电机功率设置
|
|
Visibility(
|
|
visible: state.lockFeature.value.motorTorsion == 1,
|
|
child: CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.motorPowerSetting!.tr,
|
|
rightTitle: '',
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.motorPowerPage);
|
|
})),
|
|
// 蓝牙广播(关闭则不能使用蓝牙主动开锁)
|
|
/* 2024-01-12 会议确定去掉“蓝牙广播” by DaisyWu
|
|
Obx(() => Visibility(
|
|
visible: true,
|
|
child: CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.bluetoothBroadcast!.tr,
|
|
rightTitle: "",
|
|
isHaveLine: true,
|
|
isHaveRightWidget: true,
|
|
rightWidget: _lockBlueBroadcastSwitch()))),
|
|
SizedBox(height: 10.h),
|
|
*/
|
|
//-----新增至此
|
|
SizedBox(height: 10.h),
|
|
// 标记房态
|
|
// Obx(() {
|
|
// var title = "";
|
|
// if (state.lockStatus.value.roomStatus == 1) {
|
|
// title = TranslationLoader.lanKeys!.checkedIn!.tr;
|
|
// } else if (state.lockStatus.value.roomStatus == 0) {
|
|
// title = TranslationLoader.lanKeys!.leisure!.tr;
|
|
// }
|
|
// return Visibility(
|
|
// visible: state.lockStatus.value.roomStatus == 1 ? true : false,
|
|
// child: CommonItem(
|
|
// leftTitel: TranslationLoader.lanKeys!.markedHouseState!.tr,
|
|
// rightTitle: title,
|
|
// isHaveLine: true,
|
|
// isHaveDirection: true,
|
|
// action: () {
|
|
// Get.toNamed(Routers.markedHouseStatePage, arguments: {
|
|
// 'lockSetInfoData': state.lockSetInfoData.value
|
|
// });
|
|
// }));
|
|
// }),
|
|
// 考勤
|
|
Obx(
|
|
() => Visibility(
|
|
visible: state.lockBasicInfo.value.isLockOwner == 1 &&
|
|
state.lockFeature.value.attendance == 1,
|
|
child: CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.checkingIn!.tr,
|
|
rightTitle: '',
|
|
isHaveLine: true,
|
|
isHaveRightWidget: true,
|
|
rightWidget: _openCheckInSwitch())),
|
|
),
|
|
// 开锁提醒
|
|
Obx(
|
|
() => Visibility(
|
|
visible: state.lockBasicInfo.value.isLockOwner == 1 &&
|
|
state.lockFeature.value.unlockReminder == 1,
|
|
child: CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.unlockReminder!.tr,
|
|
rightTitle: '',
|
|
isHaveLine: true,
|
|
isHaveRightWidget: true,
|
|
rightWidget: _lockRemindSwitch())),
|
|
),
|
|
// APP开锁时是否需联网
|
|
Obx(
|
|
() => Visibility(
|
|
visible: state.lockBasicInfo.value.isLockOwner == 1 &&
|
|
state.lockFeature.value.appUnlockOnline == 1,
|
|
child: CommonItem(
|
|
leftTitel: TranslationLoader
|
|
.lanKeys!.whetherInternetRequiredWhenUnlocking!.tr,
|
|
rightTitle: '',
|
|
isHaveLine: false,
|
|
isHaveRightWidget: true,
|
|
rightWidget: _openLockNeedOnlineSwitch()),
|
|
),
|
|
),
|
|
SizedBox(height: 10.h),
|
|
// wifi配网
|
|
Obx(
|
|
() => Visibility(
|
|
visible: state.lockFeature.value.wifi == 1,
|
|
child: CommonItem(
|
|
leftTitel:
|
|
TranslationLoader.lanKeys!.wifiDistributionNetwork!.tr,
|
|
rightTitle: '',
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.wifiListPage,
|
|
arguments: <String, LockSetInfoData>{
|
|
'lockSetInfoData': state.lockSetInfoData.value
|
|
});
|
|
// Get.toNamed(Routers.configuringWifiPage, arguments: {
|
|
// 'lockSetInfoData': state.lockSetInfoData.value
|
|
// });
|
|
})),
|
|
),
|
|
// Obx(() =>
|
|
// 锁时间
|
|
Visibility(
|
|
visible: true,
|
|
child: CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.lockTime!.tr,
|
|
rightTitle: '',
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.lockTimePage,
|
|
arguments: <String, LockSetInfoData>{
|
|
'lockSetInfoData': state.lockSetInfoData.value
|
|
});
|
|
})),
|
|
// ),
|
|
// Obx(() =>
|
|
// 诊断
|
|
// Visibility(
|
|
// visible: true,
|
|
// child: CommonItem(
|
|
// leftTitel: TranslationLoader.lanKeys!.diagnose!.tr,
|
|
// rightTitle: "",
|
|
// isHaveLine: true,
|
|
// isHaveDirection: true,
|
|
// action: () {
|
|
// Get.toNamed(Routers.diagnosePage, arguments: {
|
|
// 'lockSetInfoData': state.lockSetInfoData.value
|
|
// });
|
|
// })),
|
|
// ),
|
|
// Obx(() =>
|
|
// 上传数据
|
|
Visibility(
|
|
visible: true,
|
|
child: CommonItem(
|
|
leftTitel: TranslationLoader.lanKeys!.uploadData!.tr,
|
|
rightTitle: '',
|
|
isHaveLine: true,
|
|
isHaveDirection: true,
|
|
action: () {
|
|
Get.toNamed(Routers.uploadDataPage);
|
|
})),
|
|
// ),
|
|
// Obx(() =>
|
|
// Visibility(
|
|
// visible: true,
|
|
// child: CommonItem(
|
|
// leftTitel: TranslationLoader
|
|
// .lanKeys!.importOtherLockData!.tr,
|
|
// rightTitle: "",
|
|
// isHaveLine: true,
|
|
// isHaveDirection: true,
|
|
// action: () {
|
|
// Get.toNamed(Routers.importOtherLockDataPage);
|
|
// })),
|
|
// ),
|
|
// Obx(() =>
|
|
// 锁升级
|
|
Visibility(
|
|
visible: true,
|
|
child: 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, bottom: 30.h),
|
|
child: SubmitBtn(
|
|
btnName: TranslationLoader.lanKeys!.delete!.tr,
|
|
isDelete: true,
|
|
onClick: () {
|
|
// logic.deletUserAction();
|
|
|
|
// logic.deletLockInfoData();
|
|
// showDeletAlertDialog(context);
|
|
// showDeleteAdministratorIsHaveAllDataDialog(context);
|
|
logic.deleyLockLogicOfRoles();
|
|
}),
|
|
),
|
|
];
|
|
|
|
return showWidgetArr;
|
|
}
|
|
|
|
Widget rightText(String rightTitle) {
|
|
return Text(rightTitle,
|
|
textAlign: TextAlign.end,
|
|
style: TextStyle(fontSize: 22.sp, color: AppColors.darkGrayTextColor));
|
|
}
|
|
|
|
// 开启考勤
|
|
CupertinoSwitch _openCheckInSwitch() {
|
|
return CupertinoSwitch(
|
|
activeColor: CupertinoColors.activeBlue,
|
|
trackColor: CupertinoColors.systemGrey5,
|
|
thumbColor: CupertinoColors.white,
|
|
value: state.isAttendance.value == 1,
|
|
onChanged: (bool value) {
|
|
logic.openCheckingInData(
|
|
(CheckingInInfoDataEntity checkingInInfoDataEntity) {
|
|
if (checkingInInfoDataEntity.data!.companyId == 0) {
|
|
// logic.showCupertinoAlertDialog(context);
|
|
ShowTipView().showIosTipWithContentDialog('创建公司后,考勤功能才能使用'.tr, () {
|
|
// 删除锁
|
|
Get.toNamed(Routers.checkInCreatCompanyPage,
|
|
arguments: <String, LockSetInfoData>{
|
|
'lockSetInfoData': state.lockSetInfoData.value
|
|
});
|
|
});
|
|
} else {
|
|
logic.setLockSetGeneralSetting();
|
|
}
|
|
});
|
|
},
|
|
);
|
|
}
|
|
|
|
// 开锁提醒
|
|
CupertinoSwitch _lockRemindSwitch() {
|
|
return CupertinoSwitch(
|
|
activeColor: CupertinoColors.activeBlue,
|
|
trackColor: CupertinoColors.systemGrey5,
|
|
thumbColor: CupertinoColors.white,
|
|
value: state.isUnlockReminder.value == 1,
|
|
onChanged: (bool value) {
|
|
logic.setLockPickingReminder();
|
|
},
|
|
);
|
|
}
|
|
|
|
// APP开锁时是否需联网
|
|
CupertinoSwitch _openLockNeedOnlineSwitch() {
|
|
return CupertinoSwitch(
|
|
activeColor: CupertinoColors.activeBlue,
|
|
trackColor: CupertinoColors.systemGrey5,
|
|
thumbColor: CupertinoColors.white,
|
|
value: state.isOpenLockNeedOnline.value == 1,
|
|
onChanged: state.sureBtnState.value == 1 ? null : (bool value) {
|
|
setState(() {
|
|
logic.sendBurglarAlarm(55);
|
|
});
|
|
},
|
|
);
|
|
}
|
|
|
|
// 异常警告
|
|
// CupertinoSwitch _lockExceptionWarningsSwitch() {
|
|
// return CupertinoSwitch(
|
|
// activeColor: CupertinoColors.activeBlue,
|
|
// trackColor: CupertinoColors.systemGrey5,
|
|
// thumbColor: CupertinoColors.white,
|
|
// value: (state.isOpenExceptionWarnings.value) == 1 ? true : false,
|
|
// onChanged: (value) {
|
|
// setState(() {
|
|
// logic.sendBurglarAlarm(62);
|
|
// });
|
|
// },
|
|
// );
|
|
// }
|
|
|
|
// 逗留警告
|
|
// CupertinoSwitch _lockStayWarnSwitch() {
|
|
// return CupertinoSwitch(
|
|
// activeColor: CupertinoColors.activeBlue,
|
|
// trackColor: CupertinoColors.systemGrey5,
|
|
// thumbColor: CupertinoColors.white,
|
|
// value: (state.isOpenExceptionWarnings.value) == 1 ? true : false,
|
|
// onChanged: (value) {
|
|
// setState(() {
|
|
// logic.sendBurglarAlarm(61);
|
|
// });
|
|
// },
|
|
// );
|
|
// }
|
|
|
|
// 支持蓝牙广播
|
|
// CupertinoSwitch _lockBlueBroadcastSwitch() {
|
|
// return CupertinoSwitch(
|
|
// activeColor: CupertinoColors.activeBlue,
|
|
// trackColor: CupertinoColors.systemGrey5,
|
|
// thumbColor: CupertinoColors.white,
|
|
// value: state.isOpenBlueBroadcast.value == 1,
|
|
// onChanged: (bool value) {
|
|
// setState(() {
|
|
// logic.sendBurglarAlarm(56);
|
|
// });
|
|
// },
|
|
// );
|
|
// }
|
|
//
|
|
// CupertinoSwitch _otherUnHaveDoneSwitch() {
|
|
// return CupertinoSwitch(
|
|
// activeColor: CupertinoColors.activeBlue,
|
|
// trackColor: CupertinoColors.systemGrey5,
|
|
// thumbColor: CupertinoColors.white,
|
|
// value: false,
|
|
// onChanged: (bool value) {
|
|
// logic.showToast('功能暂未开放');
|
|
// },
|
|
// );
|
|
// }
|
|
|
|
@override
|
|
void didChangeDependencies() {
|
|
super.didChangeDependencies();
|
|
|
|
/// 路由订阅
|
|
AppRouteObserver().routeObserver.subscribe(this, ModalRoute.of(context)!);
|
|
}
|
|
|
|
@override
|
|
void didChangeAppLifecycleState(AppLifecycleState state) {
|
|
if (state == AppLifecycleState.paused) {
|
|
// 应用程序推入后台时清空输入框内容
|
|
logic.state.passwordTF.clear();
|
|
}
|
|
}
|
|
|
|
@override
|
|
void dispose() {
|
|
/// 取消路由订阅
|
|
AppRouteObserver().routeObserver.unsubscribe(this);
|
|
WidgetsBinding.instance.removeObserver(this);
|
|
super.dispose();
|
|
}
|
|
|
|
/// 从上级界面进入 当前界面即将出现
|
|
@override
|
|
void didPush() {
|
|
super.didPush();
|
|
|
|
state.ifCurrentScreen.value = true;
|
|
}
|
|
|
|
/// 返回上一个界面 当前界面即将消失
|
|
@override
|
|
void didPop() {
|
|
super.didPop();
|
|
|
|
logic.cancelBlueConnetctToastTimer();
|
|
if (EasyLoading.isShow) {
|
|
EasyLoading.dismiss(animation: true);
|
|
}
|
|
// if (state.deletWaitScanTimer != null) {
|
|
// state.deletWaitScanTimer!.cancel();
|
|
// }
|
|
// if (state.deletWaitScanCompleter != null &&
|
|
// !state.deletWaitScanCompleter!.isCompleted) {
|
|
// state.deletWaitScanCompleter!.complete();
|
|
// }
|
|
state.ifCurrentScreen.value = false;
|
|
}
|
|
|
|
/// 从下级返回 当前界面即将出现
|
|
@override
|
|
void didPopNext() {
|
|
super.didPopNext();
|
|
|
|
state.ifCurrentScreen.value = true;
|
|
}
|
|
|
|
/// 进入下级界面 当前界面即将消失
|
|
@override
|
|
void didPushNext() {
|
|
super.didPushNext();
|
|
|
|
logic.cancelBlueConnetctToastTimer();
|
|
if (EasyLoading.isShow) {
|
|
EasyLoading.dismiss(animation: true);
|
|
}
|
|
state.ifCurrentScreen.value = false;
|
|
}
|
|
}
|