From 41338d839241116768318b9060732330c0e534b3 Mon Sep 17 00:00:00 2001 From: Daisy <> Date: Mon, 25 Sep 2023 14:29:57 +0800 Subject: [PATCH 1/2] =?UTF-8?q?1=EF=BC=8C=E6=96=B0=E5=A2=9EAPP=E6=89=93?= =?UTF-8?q?=E5=BC=80=E6=97=B6=E9=9C=80=E8=81=94=E7=BD=91=E7=9A=84=E9=94=81?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=8F=8A=E9=A1=B5=E9=9D=A2=E9=80=BB=E8=BE=91?= =?UTF-8?q?=202=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=88=B0=E6=9C=9F=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E4=BF=AE=E6=94=B9=E6=97=A5=E6=9C=9F=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E5=8F=8A=E6=8E=A5=E5=8F=A3=E8=B0=83=E8=AF=95=E9=80=BB=E8=BE=91?= =?UTF-8?q?=203=EF=BC=8C=E6=96=B0=E5=A2=9E=E9=80=80=E5=87=BA=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- star_lock/lib/appRouters.dart | 25 ++-- ...ppUnlockNeedMobileNetworkingLock_page.dart | 77 +++++++++-- .../selectLockListEntity.dart | 70 ++++++++++ .../adminDetailChangeDate_page.dart | 40 ------ .../administratorDetails_page.dart | 10 +- .../expireLockChangeDate_page.dart | 121 ++++++++++++++++++ .../expireLockList/expireLockList_page.dart | 4 +- star_lock/lib/mine/mineSet/mineSet_page.dart | 16 ++- star_lock/lib/network/api.dart | 4 + star_lock/lib/network/api_provider.dart | 10 ++ star_lock/lib/network/api_repository.dart | 19 +++ 11 files changed, 327 insertions(+), 69 deletions(-) create mode 100644 star_lock/lib/mine/mineSet/appUnlockNeedMobileNetworkingLock/selectLockListEntity.dart create mode 100644 star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireLockChangeDate_page.dart diff --git a/star_lock/lib/appRouters.dart b/star_lock/lib/appRouters.dart index 6aed0cf8..62479be0 100644 --- a/star_lock/lib/appRouters.dart +++ b/star_lock/lib/appRouters.dart @@ -1,5 +1,3 @@ - - import 'package:get/get.dart'; import 'package:star_lock/common/safetyVerification/safetyVerification_binding.dart'; import 'package:star_lock/login/register/starLock_register_binding.dart'; @@ -15,6 +13,7 @@ import 'package:star_lock/mine/mineSet/authorizedAdministrator/addAuthorizedAdmi import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorDetails/adminDetailChangeDate_page.dart'; import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorDetails/administratorDetails_page.dart'; import 'package:star_lock/mine/mineSet/lockGroup/lockGroupList_page.dart'; +import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockChangeDate_page.dart'; import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockList_page.dart'; import 'package:star_lock/mine/mineSet/lockUserManage/lockUserManageList_Page.dart'; import 'package:star_lock/mine/mineSet/mineSet_page.dart'; @@ -162,10 +161,14 @@ abstract class Routers { static const passwordKeyManagePage = '/PasswordKeyManagePage'; // 密码钥匙 static const passwordKeyDetailPage = '/PasswordKeyDetailPage'; // 密码钥匙详情 static const otherTypeKeyListPage = '/OtherTypeKeyListPage'; // 卡、指纹、遥控钥匙列表 - static const otherTypeKeyDetailPage = '/OtherTypeKeyDetailPage'; // 卡、指纹、遥控钥匙详情 - static const otherTypeKeyManagePage = '/OtherTypeKeyManagePage'; // 卡、指纹、遥控钥匙添加 - static const otherTypeKeyChangeDatePage = '/OtherTypeKeyChangeDatePage'; // 卡、指纹、遥控钥匙详情修改日期 - static const otherTypeKeyChangeValidityDatePage = '/OtherTypeKeyChangeValidityDatePage'; // 卡、指纹、遥控钥匙详情修改有效期 + static const otherTypeKeyDetailPage = + '/OtherTypeKeyDetailPage'; // 卡、指纹、遥控钥匙详情 + static const otherTypeKeyManagePage = + '/OtherTypeKeyManagePage'; // 卡、指纹、遥控钥匙添加 + static const otherTypeKeyChangeDatePage = + '/OtherTypeKeyChangeDatePage'; // 卡、指纹、遥控钥匙详情修改日期 + static const otherTypeKeyChangeValidityDatePage = + '/OtherTypeKeyChangeValidityDatePage'; // 卡、指纹、遥控钥匙详情修改有效期 static const addFingerprintTipPage = '/AddFingerprintTipPage'; // 添加指纹提示 static const addFingerprintPage = '/AddFingerprintPage'; // 添加指纹 @@ -223,7 +226,8 @@ abstract class Routers { '/CheckingInSetHolidaysPage'; // 节假日设置 static const checkingInAddHolidaysPage = '/CheckingInAddHolidaysPage'; // 添加假日 static const checkingInDetailPage = '/CheckingInDetailPage'; // 考勤详情 - static const checkingInDeletHolidaysPage = '/CheckingInDeletHolidaysPage'; // 删除考勤 + static const checkingInDeletHolidaysPage = + '/CheckingInDeletHolidaysPage'; // 删除考勤 static const mineSetPage = '/MineSetPage'; // 我的设置 static const mineMultiLanguagePage = '/MineMultiLanguagePage'; // 我的设置 @@ -317,6 +321,8 @@ abstract class Routers { static const adminDetailChangeDatePage = '/adminDetailChangeDatePage'; //管理员详情修改生效时间 static const adminLockListPage = '/adminLockListPage'; //管理员详情的锁列表 + static const expireLockChangeDatePage = + '/expireLockChangeDatePage'; //即将到期列表有效期修改 } abstract class AppRouters { @@ -798,6 +804,9 @@ abstract class AppRouters { GetPage(name: Routers.addICCardPage, page: () => const AddICCardPage()), GetPage( name: Routers.adminDetailChangeDatePage, - page: () => const AdminDetailChangeDatePage()) + page: () => const AdminDetailChangeDatePage()), + GetPage( + name: Routers.expireLockChangeDatePage, + page: () => const ExpireLockChangeDatePage()) ]; } diff --git a/star_lock/lib/mine/mineSet/appUnlockNeedMobileNetworkingLock/appUnlockNeedMobileNetworkingLock_page.dart b/star_lock/lib/mine/mineSet/appUnlockNeedMobileNetworkingLock/appUnlockNeedMobileNetworkingLock_page.dart index 72799c6e..656e1c67 100644 --- a/star_lock/lib/mine/mineSet/appUnlockNeedMobileNetworkingLock/appUnlockNeedMobileNetworkingLock_page.dart +++ b/star_lock/lib/mine/mineSet/appUnlockNeedMobileNetworkingLock/appUnlockNeedMobileNetworkingLock_page.dart @@ -1,6 +1,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:star_lock/mine/mineSet/appUnlockNeedMobileNetworkingLock/selectLockListEntity.dart'; +import 'package:star_lock/network/api_repository.dart'; +import 'package:star_lock/tools/baseGetXController.dart'; +import 'package:star_lock/tools/toast.dart'; import '../../../app_settings/app_colors.dart'; import '../../../tools/commonItem.dart'; @@ -18,6 +22,16 @@ class APPUnlockNeedMobileNetworkingLockPage extends StatefulWidget { class _APPUnlockNeedMobileNetworkingLockPageState extends State { + List lockItemList = []; + List selectLockIdList = []; + + @override + void initState() { + super.initState(); + + mockNetworkDataRequest(); + } + @override Widget build(BuildContext context) { return Scaffold( @@ -73,19 +87,22 @@ class _APPUnlockNeedMobileNetworkingLockPageState SizedBox(height: 15.h), Expanded( child: ListView.builder( - itemCount: 10, + itemCount: lockItemList.length, itemBuilder: (c, index) { - return _gatewatListItem( - 'images/mine/icon_mine_gatewayListMainIcon.png', - "星锁网关", - "在线", - "2", () { - // Navigator.pushNamed(context, Routers.gatewayDetailPage); - }); + LockItemData itemData = lockItemList[index]; + // itemData.isCheck = false; + return _gatewatListItem(itemData); }), ), SubmitBtn( - btnName: TranslationLoader.lanKeys!.sure!.tr, onClick: () {}), + btnName: TranslationLoader.lanKeys!.sure!.tr, + onClick: () { + if (selectLockIdList.isNotEmpty) { + setAppUnlockMustOnlineRequest(); + } else { + Toast.show(msg: '请选择需设置的锁'); + } + }), SizedBox( height: 40.h, ) @@ -93,10 +110,18 @@ class _APPUnlockNeedMobileNetworkingLockPageState )); } - Widget _gatewatListItem(String lockTypeIcon, String gateWayName, - String isOnline, String lockNumber, Function() action) { + Widget _gatewatListItem(LockItemData itemData) { return GestureDetector( - onTap: action, + onTap: () { + setState(() { + itemData.isCheck = !itemData.isCheck; + if (itemData.isCheck == true) { + selectLockIdList.add(itemData.lockId); + } else { + selectLockIdList.remove(itemData.lockId); + } + }); + }, child: Container( height: 80.h, margin: const EdgeInsets.only(bottom: 2), @@ -112,7 +137,9 @@ class _APPUnlockNeedMobileNetworkingLockPageState width: 15.w, ), Image.asset( - 'images/icon_round_unSelet.png', + itemData.isCheck == true + ? 'images/icon_round_selet.png' + : 'images/icon_round_unSelet.png', width: 30.w, height: 30.w, ), @@ -120,7 +147,7 @@ class _APPUnlockNeedMobileNetworkingLockPageState width: 10.w, ), Text( - "MCBN01_8f3106", + itemData.lockAlias ?? "", style: TextStyle(fontSize: 22.sp, fontWeight: FontWeight.w600), ) ], @@ -128,4 +155,26 @@ class _APPUnlockNeedMobileNetworkingLockPageState ), ); } + + //请求锁列表 + Future> mockNetworkDataRequest() async { + SelectLockListEntity entity = await ApiRepository.to.selectLockList(); + List dataList = []; + if (entity.errorCode!.codeIsSuccessful) { + dataList = entity.data!.list!; + setState(() { + lockItemList = dataList; + }); + } + return dataList; + } + + //APP开锁时需手机联网的锁 + Future setAppUnlockMustOnlineRequest() async { + SelectLockListEntity entity = + await ApiRepository.to.setAppUnlockMustOnline(selectLockIdList); + if (entity.errorCode!.codeIsSuccessful) { + Toast.show(msg: '操作成功'); + } + } } diff --git a/star_lock/lib/mine/mineSet/appUnlockNeedMobileNetworkingLock/selectLockListEntity.dart b/star_lock/lib/mine/mineSet/appUnlockNeedMobileNetworkingLock/selectLockListEntity.dart new file mode 100644 index 00000000..e1b957ae --- /dev/null +++ b/star_lock/lib/mine/mineSet/appUnlockNeedMobileNetworkingLock/selectLockListEntity.dart @@ -0,0 +1,70 @@ +class SelectLockListEntity { + int? errorCode; + String? description; + String? errorMsg; + Data? data; + + SelectLockListEntity( + {this.errorCode, this.description, this.errorMsg, this.data}); + + SelectLockListEntity.fromJson(Map json) { + errorCode = json['errorCode']; + description = json['description']; + errorMsg = json['errorMsg']; + data = json['data'] != null ? Data.fromJson(json['data']) : null; + } + + Map toJson() { + final Map data = {}; + data['errorCode'] = errorCode; + data['description'] = description; + data['errorMsg'] = errorMsg; + if (this.data != null) { + data['data'] = this.data!.toJson(); + } + return data; + } +} + +class Data { + List? list; + + Data({this.list}); + + Data.fromJson(Map json) { + if (json['list'] != null) { + list = []; + json['list'].forEach((v) { + list!.add(LockItemData.fromJson(v)); + }); + } + } + + Map toJson() { + final Map data = {}; + if (list != null) { + data['list'] = list!.map((v) => v.toJson()).toList(); + } + return data; + } +} + +class LockItemData { + int? lockId; + String? lockAlias; + bool isCheck = false; + + LockItemData({this.lockId, this.lockAlias, required this.isCheck}); + + LockItemData.fromJson(Map json) { + lockId = json['lockId']; + lockAlias = json['lockAlias']; + } + + Map toJson() { + final Map data = {}; + data['lockId'] = lockId; + data['lockAlias'] = lockAlias; + return data; + } +} diff --git a/star_lock/lib/mine/mineSet/authorizedAdministrator/administratorDetails/adminDetailChangeDate_page.dart b/star_lock/lib/mine/mineSet/authorizedAdministrator/administratorDetails/adminDetailChangeDate_page.dart index e18f0510..0535d515 100644 --- a/star_lock/lib/mine/mineSet/authorizedAdministrator/administratorDetails/adminDetailChangeDate_page.dart +++ b/star_lock/lib/mine/mineSet/authorizedAdministrator/administratorDetails/adminDetailChangeDate_page.dart @@ -113,46 +113,6 @@ class _AdminDetailChangeDatePage extends State { } } -/* - //修改钥匙名称请求 - Future updateKeyDateRequest() async { - KeyOperationRecordEntity entity = await ApiRepository.to.updateKeyDate( - itemData.keyId.toString(), - itemData.lockId.toString(), - _failureDateTime.millisecondsSinceEpoch.toString(), - endDay, - '', - _effectiveDateTime.millisecondsSinceEpoch.toString(), - startDay, - weekDays); - if (entity.errorCode!.codeIsSuccessful) { - print("修改要是名称成功啦啦啦啦啦"); - Toast.show(msg: "修改成功"); - setState(() { - Navigator.pop(context); - }); - } - } - - //更新密码请求 - Future updatePwdRequest() async { - PasswordKeyEntity entity = await ApiRepository.to.updatePasswordKey( - lockId, - pwdId, - '', - '', - _effectiveDateTime.millisecondsSinceEpoch.toString(), - _failureDateTime.millisecondsSinceEpoch.toString(), - ''); - if (entity.errorCode!.codeIsSuccessful) { - Toast.show(msg: "修改成功"); - setState(() { - Navigator.pop(context); - }); - } - } - */ - String intToStr(int v) { return (v < 10) ? "0$v" : "$v"; } diff --git a/star_lock/lib/mine/mineSet/authorizedAdministrator/administratorDetails/administratorDetails_page.dart b/star_lock/lib/mine/mineSet/authorizedAdministrator/administratorDetails/administratorDetails_page.dart index fda48f48..f2e2c3f5 100644 --- a/star_lock/lib/mine/mineSet/authorizedAdministrator/administratorDetails/administratorDetails_page.dart +++ b/star_lock/lib/mine/mineSet/authorizedAdministrator/administratorDetails/administratorDetails_page.dart @@ -229,7 +229,7 @@ class _AdministratorDetailsPageState extends State { onChanged: (value) { setState(() { _isOnRemote = !_isOnRemote; - updateAdministratorRequest(); + updateAdministratorRequest(true); }); }, ); @@ -247,7 +247,7 @@ class _AdministratorDetailsPageState extends State { } //更新管理员信息请求 - Future updateAdministratorRequest() async { + Future updateAdministratorRequest(bool isRemote) async { String isRemoteUnlock = _isOnRemote == true ? '1' : '2'; ElectronicKeyListEntity entity = await ApiRepository.to.updateAdministrator( itemData.uid.toString(), @@ -259,7 +259,9 @@ class _AdministratorDetailsPageState extends State { print("修改管理员信息成功啦啦啦啦啦"); Toast.show(msg: "修改成功"); setState(() { - Navigator.pop(context); + if (isRemote) { + Navigator.pop(context); + } }); } } @@ -289,7 +291,7 @@ class _AdministratorDetailsPageState extends State { sureClick: () { //发送编辑钥匙名称请求 if (_changeNameController.text.isNotEmpty) { - updateAdministratorRequest(); + updateAdministratorRequest(false); } }, cancelClick: () { diff --git a/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireLockChangeDate_page.dart b/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireLockChangeDate_page.dart new file mode 100644 index 00000000..c71279e9 --- /dev/null +++ b/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireLockChangeDate_page.dart @@ -0,0 +1,121 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_pickers/pickers.dart'; +import 'package:flutter_pickers/time_picker/model/date_mode.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyDetail/keyOperationRecordEntity.dart'; +import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockListEntity.dart'; +import 'package:star_lock/network/api_repository.dart'; +import 'package:star_lock/tools/baseGetXController.dart'; +import 'package:star_lock/tools/toast.dart'; + +import '../../../../../app_settings/app_colors.dart'; +import '../../../../../tools/commonItem.dart'; +import '../../../../../tools/titleAppBar.dart'; +import '../../../../../translations/trans_lib.dart'; + +class ExpireLockChangeDatePage extends StatefulWidget { + const ExpireLockChangeDatePage({Key? key}) : super(key: key); + + @override + State createState() => + _ExpireLockChangeDatePageState(); +} + +class _ExpireLockChangeDatePageState extends State { + ExpireLockItem itemData = ExpireLockItem(); + + String _selectEffectiveDate = ''; //生效时间 + String _selectFailureDate = ''; //失效时间 + late DateTime _effectiveDateTime; + late DateTime _failureDateTime; + + @override + Widget build(BuildContext context) { + dynamic obj = ModalRoute.of(context)?.settings.arguments; + if (obj != null && (obj["itemData"] != null)) { + itemData = obj["itemData"]; + } + + return Scaffold( + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar( + barTitle: + "${TranslationLoader.lanKeys!.amend!.tr}${TranslationLoader.lanKeys!.periodValidity!.tr}", + haveBack: true, + backgroundColor: AppColors.mainColor, + actionsList: [ + TextButton( + child: Text( + TranslationLoader.lanKeys!.sure!.tr, + style: TextStyle(color: Colors.white, fontSize: 24.sp), + ), + onPressed: () { + updateKeyDateRequest(); + }, + ), + ], + ), + body: buildMainUI(), + ); + } + + Widget buildMainUI() { + return Column( + children: [ + CommonItem( + leftTitel: TranslationLoader.lanKeys!.effectiveTime!.tr, + rightTitle: _selectEffectiveDate, + isHaveLine: true, + isHaveDirection: true, + action: () { + Pickers.showDatePicker(context, mode: DateMode.YMDHM, + onConfirm: (p) { + setState(() { + _selectEffectiveDate = + '${p.year}-${intToStr(p.month!)}-${intToStr(p.day!)} ${intToStr(p.hour!)}:${intToStr(p.minute!)}'; + _effectiveDateTime = DateTime.parse(_selectEffectiveDate); + }); + }); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.failureTime!.tr, + rightTitle: _selectFailureDate, + isHaveDirection: true, + action: () { + Pickers.showDatePicker(context, mode: DateMode.YMDHM, + onConfirm: (p) { + setState(() { + _selectFailureDate = + '${p.year}-${intToStr(p.month!)}-${intToStr(p.day!)} ${intToStr(p.hour!)}:${intToStr(p.minute!)}'; + _failureDateTime = DateTime.parse(_selectFailureDate); + }); + }); + }), + ], + ); + } + + //修改有效期请求 + Future updateKeyDateRequest() async { + KeyOperationRecordEntity entity = await ApiRepository.to.updateKeyDate( + itemData.keyId.toString(), + itemData.lockId.toString(), + _failureDateTime.millisecondsSinceEpoch.toString(), + '', + '', + _effectiveDateTime.millisecondsSinceEpoch.toString(), + '', []); + if (entity.errorCode!.codeIsSuccessful) { + print("修改要是名称成功啦啦啦啦啦"); + Toast.show(msg: "修改成功"); + setState(() { + Navigator.pop(context); + }); + } + } + + String intToStr(int v) { + return (v < 10) ? "0$v" : "$v"; + } +} diff --git a/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireLockList_page.dart b/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireLockList_page.dart index b8e37a62..c4ee6008 100644 --- a/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireLockList_page.dart +++ b/star_lock/lib/mine/mineSet/lockUserManage/expireLockList/expireLockList_page.dart @@ -83,8 +83,8 @@ class _ExpireLockListPageState extends State { Widget _electronicKeyItem(ExpireLockItem itemData) { return GestureDetector( onTap: () { - Navigator.pushNamed(context, Routers.ownedKeyListPage, - arguments: {'uid': itemData.uid}); + Navigator.pushNamed(context, Routers.expireLockChangeDatePage, + arguments: {"itemData": itemData}); }, child: Container( height: 90.h, diff --git a/star_lock/lib/mine/mineSet/mineSet_page.dart b/star_lock/lib/mine/mineSet/mineSet_page.dart index 2d06b967..602ff4c8 100644 --- a/star_lock/lib/mine/mineSet/mineSet_page.dart +++ b/star_lock/lib/mine/mineSet/mineSet_page.dart @@ -2,6 +2,7 @@ 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/login/login/entity/LoginEntity.dart'; import 'package:star_lock/mine/mineSet/entity/userSettingInfoEntity.dart'; import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockListEntity.dart'; import 'package:star_lock/network/api_repository.dart'; @@ -243,7 +244,10 @@ class _MineSetPageState extends State { SubmitBtn( btnName: TranslationLoader.lanKeys!.logout!.tr, isDelete: true, - onClick: () {}), + onClick: () { + //退出登录 + userLogoutRequest(); + }), Container( padding: EdgeInsets.only(right: 30.w), // color: Colors.red, @@ -301,6 +305,16 @@ class _MineSetPageState extends State { } } + //退出登录请求 + Future userLogoutRequest() async { + LoginEntity entity = await ApiRepository.to.userLogout(); + if (entity.errorCode!.codeIsSuccessful) { + setState(() { + Get.offNamedUntil(Routers.starLockLoginPage, (route) => false); + }); + } + } + //更新触摸开锁 Future updateTouchUnlockRequest() async { ExpireLockListEntity entity = await ApiRepository.to diff --git a/star_lock/lib/network/api.dart b/star_lock/lib/network/api.dart index f3eac6e5..a40f1aca 100644 --- a/star_lock/lib/network/api.dart +++ b/star_lock/lib/network/api.dart @@ -105,4 +105,8 @@ abstract class Api { final String setAlertModeURL = '/user/setAlertMode'; //提示音 final String setTouchUnlockFlagURL = '/user/setTouchUnlockFlag'; //触摸开锁 final String changeSettingsURL = '/user/changeSettings'; //锁屏/隐藏无效开锁权限 + final String selectLockListURL = '/room/listForTransfer'; //选择锁列表 + final String setAppUnlockMustOnlineURL = + '/room/setAppUnlockMustOnline'; //APP开锁时需手机联网的锁 + final String userLogoutURL = '/user/logout'; //退出登录 } diff --git a/star_lock/lib/network/api_provider.dart b/star_lock/lib/network/api_provider.dart index 3e12cea9..fba110fd 100644 --- a/star_lock/lib/network/api_provider.dart +++ b/star_lock/lib/network/api_provider.dart @@ -402,6 +402,13 @@ class ApiProvider extends BaseProvider { Future lockGroupList(String type) => post(lockGroupListURL.toUrl, jsonEncode({'type': type})); + Future selectLockList() => + post(selectLockListURL.toUrl, jsonEncode({})); + +//APP开锁时需手机联网的锁 + Future setAppUnlockMustOnline(List lockIdList) => post( + setAppUnlockMustOnlineURL.toUrl, jsonEncode({'lockIdList': lockIdList})); + Future deleteElectronicKey(String keyId) => post(deleteElectronicKeyURL.toUrl, jsonEncode({'keyId': keyId})); @@ -1055,6 +1062,9 @@ class ApiProvider extends BaseProvider { 'countryCode': countryCode, 'usernameType': usernameType })); + +//退出登录 + Future userLogout() => get(userLogoutURL.toUrl); } extension ExtensionString on String { diff --git a/star_lock/lib/network/api_repository.dart b/star_lock/lib/network/api_repository.dart index 1e146aaf..bc8e88b0 100644 --- a/star_lock/lib/network/api_repository.dart +++ b/star_lock/lib/network/api_repository.dart @@ -8,6 +8,7 @@ import 'package:star_lock/main/lockDetail/lcokSet/basicInformation/basicInformat import 'package:star_lock/main/lockDetail/lcokSet/basicInformation/lockSeletGrouping/LockGroupListEntity.dart'; import 'package:star_lock/main/lockDetail/passwordKey/passwordKeyList/passwordKeyListEntity.dart'; import 'package:star_lock/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKeyEntity.dart'; +import 'package:star_lock/mine/mineSet/appUnlockNeedMobileNetworkingLock/selectLockListEntity.dart'; import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorDetails/administratorDetailEntity.dart'; import 'package:star_lock/mine/mineSet/authorizedAdministrator/authorizedAdminListEntity.dart'; import 'package:star_lock/mine/mineSet/entity/userSettingInfoEntity.dart'; @@ -388,6 +389,18 @@ class ApiRepository { return MassSendLockGroupListEntity.fromJson(res.body); } + //选择锁列表 + Future selectLockList() async { + final res = await apiProvider.selectLockList(); + return SelectLockListEntity.fromJson(res.body); + } + + //APP开锁时需手机联网的锁 + Future setAppUnlockMustOnline(List lockIdList) async { + final res = await apiProvider.setAppUnlockMustOnline(lockIdList); + return SelectLockListEntity.fromJson(res.body); + } + //删除电子钥匙 Future deleteElectronicKey(String keyId) async { final res = await apiProvider.deleteElectronicKey(keyId); @@ -1032,4 +1045,10 @@ class ApiRepository { lockId, cardId, cardUserNo); return LoginEntity.fromJson(res.body); } + + // 退出登录 + Future userLogout() async { + final res = await apiProvider.userLogout(); + return LoginEntity.fromJson(res.body); + } } From 073a7ad38b87ea7e216e398cf34803c08b58dad1 Mon Sep 17 00:00:00 2001 From: Daisy <> Date: Tue, 26 Sep 2023 11:47:36 +0800 Subject: [PATCH 2/2] =?UTF-8?q?1=EF=BC=8C=E6=9B=B4=E5=A4=9A=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E9=A1=B5=E9=9D=A2=E6=96=B0=E5=A2=9E=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E7=AE=A1=E7=90=86=202=EF=BC=8C=E4=BF=AE=E5=A4=8D=E9=80=80?= =?UTF-8?q?=E5=87=BA=E7=99=BB=E5=BD=95=E5=88=87=E6=8D=A2=E8=B4=A6=E5=8F=B7?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E6=8A=A5=E9=94=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lib/login/login/starLock_login_state.dart | 11 +- .../mine/mineSet/mineSet/mineSet_logic.dart | 86 +++ .../mine/mineSet/mineSet/mineSet_page.dart | 504 ++++++++---------- .../mine/mineSet/mineSet/mineSet_state.dart | 14 + .../{entity => }/userSettingInfoEntity.dart | 0 star_lock/lib/network/api_repository.dart | 3 +- 6 files changed, 324 insertions(+), 294 deletions(-) create mode 100644 star_lock/lib/mine/mineSet/mineSet/mineSet_logic.dart create mode 100644 star_lock/lib/mine/mineSet/mineSet/mineSet_state.dart rename star_lock/lib/mine/mineSet/mineSet/{entity => }/userSettingInfoEntity.dart (100%) diff --git a/star_lock/lib/login/login/starLock_login_state.dart b/star_lock/lib/login/login/starLock_login_state.dart index 17f894f1..ddd026a4 100644 --- a/star_lock/lib/login/login/starLock_login_state.dart +++ b/star_lock/lib/login/login/starLock_login_state.dart @@ -1,11 +1,9 @@ - import 'package:flutter/material.dart'; import 'package:get/get.dart'; import '../../tools/store_service.dart'; -class StarLockLoginState{ - +class StarLockLoginState { var passwordShow = true.obs; var agree = false.obs; @@ -23,8 +21,7 @@ class StarLockLoginState{ } void onClose() { - emailOrPhoneController.dispose(); - pwdController.dispose(); + // emailOrPhoneController.dispose(); + // pwdController.dispose(); } - -} \ No newline at end of file +} diff --git a/star_lock/lib/mine/mineSet/mineSet/mineSet_logic.dart b/star_lock/lib/mine/mineSet/mineSet/mineSet_logic.dart new file mode 100644 index 00000000..056922d9 --- /dev/null +++ b/star_lock/lib/mine/mineSet/mineSet/mineSet_logic.dart @@ -0,0 +1,86 @@ +import 'dart:async'; +import 'package:get/get.dart'; +import 'package:star_lock/appRouters.dart'; +import 'package:star_lock/login/login/entity/LoginEntity.dart'; +import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockListEntity.dart'; +import 'package:star_lock/mine/mineSet/mineSet/mineSet_state.dart'; +import 'package:star_lock/tools/storage.dart'; +import '../../../../network/api_repository.dart'; +import '../../../../tools/baseGetXController.dart'; + +class MineSetLogic extends BaseGetXController { + final MineSetState state = MineSetState(); + //用户信息 + Future userSettingsInfoRequest() async { + var entity = await ApiRepository.to.userSettingsInfo(); + if (entity.errorCode!.codeIsSuccessful) { + state.userInfoData.value = entity.data!; + state.userSetting.value = entity.data!.userSettings!; + state.lockScreen.value = entity.data!.userSettings!.lockScreen!; + state.hideExpiredAccessFlag.value = + entity.data!.userSettings!.hideExpiredAccessFlag!; + + //提示音 + if (entity.data!.alertMode == 1) { + state.isPrompTone.value = true; + } else { + state.isPrompTone.value = false; + } + //触摸开锁 + if (entity.data!.userSettings!.touchUnlockFlag! == 1) { + state.isTouchUnlock.value = true; + } else { + state.isTouchUnlock.value = false; + } + } + } + + //更新提示音 + Future updatePrompToneRequest() async { + ExpireLockListEntity entity = await ApiRepository.to + .setAlertMode('1', state.isPrompTone.value == true ? '1' : '2'); + if (entity.errorCode!.codeIsSuccessful) { + userSettingsInfoRequest(); + } + } + + //退出登录请求 + Future userLogoutRequest() async { + LoginEntity entity = await ApiRepository.to.userLogout(); + if (entity.errorCode!.codeIsSuccessful) { + logOut(); + Get.offNamedUntil(Routers.starLockLoginPage, (route) => false); + } + } + + ///退出登录 + void logOut() async { + await Storage.setString('userLoginData', ''); + } + + //更新触摸开锁 + Future updateTouchUnlockRequest() async { + ExpireLockListEntity entity = await ApiRepository.to + .setTouchUnlockFlag(state.isTouchUnlock.value == true ? '1' : '2'); + if (entity.errorCode!.codeIsSuccessful) { + userSettingsInfoRequest(); + } + } + + @override + void onReady() { + // TODO: implement onReady + super.onReady(); + } + + @override + void onInit() { + // TODO: implement onInit + super.onInit(); + } + + @override + void onClose() { + // TODO: implement onClose + } +} diff --git a/star_lock/lib/mine/mineSet/mineSet/mineSet_page.dart b/star_lock/lib/mine/mineSet/mineSet/mineSet_page.dart index 952241f2..e6558fc1 100644 --- a/star_lock/lib/mine/mineSet/mineSet/mineSet_page.dart +++ b/star_lock/lib/mine/mineSet/mineSet/mineSet_page.dart @@ -2,18 +2,13 @@ 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/login/login/entity/LoginEntity.dart'; -import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockListEntity.dart'; -import 'package:star_lock/network/api_repository.dart'; -import 'package:star_lock/tools/baseGetXController.dart'; - +import 'package:star_lock/mine/mineSet/mineSet/mineSet_logic.dart'; import '../../../appRouters.dart'; import '../../../app_settings/app_colors.dart'; import '../../../tools/commonItem.dart'; import '../../../tools/submitBtn.dart'; import '../../../tools/titleAppBar.dart'; import '../../../translations/trans_lib.dart'; -import 'entity/userSettingInfoEntity.dart'; class MineSetPage extends StatefulWidget { const MineSetPage({Key? key}) : super(key: key); @@ -23,219 +18,204 @@ class MineSetPage extends StatefulWidget { } class _MineSetPageState extends State { - late bool _isPrompTone = false; //提示音 - late bool _isTouchUnlock = false; //触摸开锁 - late bool _isPushNotification = false; //消息推送 - late UserSettingInfoData _userInfoData; + final logic = Get.put(MineSetLogic()); + final state = Get.find().state; @override void initState() { super.initState(); - _userInfoData = UserSettingInfoData(); - userSettingsInfoRequest(); + logic.userSettingsInfoRequest(); } @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: AppColors.mainBackgroundColor, - appBar: TitleAppBar( - barTitle: TranslationLoader.lanKeys!.moreSet!.tr, - haveBack: true, - backgroundColor: AppColors.mainColor), - body: Column( - children: [ - Expanded( - child: ListView( - children: [ - CommonItem( - leftTitel: TranslationLoader.lanKeys!.prompTone!.tr, - rightTitle: "", - isHaveLine: true, - isHaveRightWidget: true, - rightWidget: SizedBox( - width: 60.w, height: 50.h, child: _switch(0))), - CommonItem( - leftTitel: TranslationLoader.lanKeys!.touchUnlock!.tr, - rightTitle: "", - isHaveLine: true, - isHaveRightWidget: true, - rightWidget: SizedBox( - width: 60.w, height: 50.h, child: _switch(1))), - CommonItem( - leftTitel: - TranslationLoader.lanKeys!.pushNotification!.tr, - rightTitle: "", - isHaveRightWidget: true, - rightWidget: SizedBox( - width: 60.w, height: 50.h, child: _switch(2))), - SizedBox( - height: 10.h, - ), - CommonItem( - leftTitel: - TranslationLoader.lanKeys!.lockUserManagement!.tr, - rightTitle: "", - isHaveLine: true, - isHaveDirection: true, - action: () { - Navigator.pushNamed( - context, Routers.lockUserManageLisPage); - }), - CommonItem( - leftTitel: TranslationLoader.lanKeys!.authorizedAdmin!.tr, - rightTitle: "", - isHaveLine: true, - isHaveDirection: true, - action: () { - Navigator.pushNamed( - context, Routers.authorizedAdministratorListPage); - }), - //by DaisyWu 新增--权限管理 - CommonItem( - leftTitel: - TranslationLoader.lanKeys!.authorityManagement!.tr, - rightTitle: "", - isHaveLine: true, - isHaveDirection: true, - action: () { - Navigator.pushNamed( - context, Routers.authorityManagementPage); - }), - CommonItem( - leftTitel: TranslationLoader.lanKeys!.lockGroup!.tr, - rightTitle: "", - isHaveLine: true, - isHaveDirection: true, - action: () { - Navigator.pushNamed(context, Routers.lockGroupListPage); - }), - CommonItem( - leftTitel: - TranslationLoader.lanKeys!.transferSmartLock!.tr, - rightTitle: "", - isHaveLine: true, - isHaveDirection: true, - action: () { - Navigator.pushNamed( - context, Routers.transferSmartLockPage); - }), - CommonItem( - leftTitel: TranslationLoader.lanKeys!.transferGateway!.tr, - rightTitle: "", - isHaveDirection: true, - action: () { - Navigator.pushNamed( - context, Routers.selectGetewayListPage); - }), - SizedBox( - height: 10.h, - ), - CommonItem( - leftTitel: TranslationLoader.lanKeys!.multiLanguage!.tr, - rightTitle: "简体中文", - isHaveLine: true, - isHaveDirection: true, - action: () { - Navigator.pushNamed( - context, Routers.mineMultiLanguagePage); - }), - CommonItem( - leftTitel: TranslationLoader.lanKeys!.lockScreen!.tr, - rightTitle: _userInfoData.userSettings != null - ? (_userInfoData.userSettings!.lockScreen == 1 - ? TranslationLoader.lanKeys!.opened!.tr - : TranslationLoader.lanKeys!.closed!.tr) - : TranslationLoader.lanKeys!.closed!.tr, - isHaveLine: true, - isHaveDirection: true, - action: () { - Navigator.pushNamed(context, Routers.lockScreenPage, - arguments: { - 'isOn': _userInfoData.userSettings!.lockScreen - }).then((value) { - userSettingsInfoRequest(); - }); - }), - CommonItem( - leftTitel: TranslationLoader - .lanKeys!.hideInvalidUnlockPermissions!.tr, - rightTitle: _userInfoData.userSettings != null - ? (_userInfoData - .userSettings!.hideExpiredAccessFlag == - 1 - ? TranslationLoader.lanKeys!.opened!.tr - : TranslationLoader.lanKeys!.closed!.tr) - : TranslationLoader.lanKeys!.closed!.tr, - isHaveLine: true, - isHaveDirection: true, - action: () { - Navigator.pushNamed( - context, Routers.hideInvalidUnlockPermissionsPage, - arguments: { - 'isOn': _userInfoData - .userSettings!.hideExpiredAccessFlag - }).then((value) { - userSettingsInfoRequest(); - }); - }), - CommonItem( - leftTitel: TranslationLoader.lanKeys! - .appUnlockRequiresMobilePhoneAccessToTheLock!.tr, - rightTitle: "", - isHaveLine: true, - isHaveDirection: true, - action: () { - Navigator.pushNamed(context, - Routers.aPPUnlockNeedMobileNetworkingLockPage); - }), - SizedBox( - height: 10.h, - ), - CommonItem( - leftTitel: "Amazon Alexa", - rightTitle: "", - isHaveLine: true, - isHaveDirection: true, - action: () {}), - CommonItem( - leftTitel: "Google Home", - rightTitle: "", - isHaveLine: true, - isHaveDirection: true, - action: () {}), - // CommonItem(leftTitel:TranslationLoader.lanKeys!.valueAddedServices!.tr, rightTitle:"", isHaveDirection: true, action: (){ - // - // }), - SizedBox( - height: 50.h, - ), - // CommonItem(leftTitel:TranslationLoader.lanKeys!.about!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - // - // }), - // SizedBox(height: 10.h,), - // CommonItem(leftTitel:TranslationLoader.lanKeys!.userAgreement!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - // - // }), - // CommonItem(leftTitel:TranslationLoader.lanKeys!.privacyPolicy!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - // - // }), - // CommonItem(leftTitel:TranslationLoader.lanKeys!.personalInformationCollectionList!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - // - // }), - // CommonItem(leftTitel:TranslationLoader.lanKeys!.applicationPermissionDescription!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - // - // }), - // CommonItem(leftTitel:TranslationLoader.lanKeys!.thirdPartyInformationSharingList!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ - // - // }), - keyBottomWidget() - ], - ), - ), - ], - )); + backgroundColor: AppColors.mainBackgroundColor, + appBar: TitleAppBar( + barTitle: TranslationLoader.lanKeys!.moreSet!.tr, + haveBack: true, + backgroundColor: AppColors.mainColor), + body: SingleChildScrollView( + child: getListDataView(), + ), + ); + } + + Widget getListDataView() { + return Column( + children: [ + CommonItem( + leftTitel: TranslationLoader.lanKeys!.prompTone!.tr, + rightTitle: "", + isHaveLine: true, + isHaveRightWidget: true, + rightWidget: SizedBox( + width: 60.w, + height: 50.h, + child: Obx(() => _isPrompToneSwitch()))), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.touchUnlock!.tr, + rightTitle: "", + isHaveLine: true, + isHaveRightWidget: true, + rightWidget: SizedBox( + width: 60.w, + height: 50.h, + child: Obx(() => _isTouchUnlockSwitch()))), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.pushNotification!.tr, + rightTitle: "", + isHaveRightWidget: true, + rightWidget: SizedBox( + width: 60.w, + height: 50.h, + child: Obx(() => _isPushNotificationSwitch()))), + SizedBox( + height: 10.h, + ), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.lockUserManagement!.tr, + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.lockUserManageLisPage); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.authorizedAdmin!.tr, + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.authorizedAdministratorListPage); + }), + //by DaisyWu 新增--权限管理 + CommonItem( + leftTitel: TranslationLoader.lanKeys!.authorityManagement!.tr, + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.authorityManagementPage); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.lockGroup!.tr, + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.lockGroupListPage); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.transferSmartLock!.tr, + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.transferSmartLockPage); + }), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.transferGateway!.tr, + rightTitle: "", + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.selectGetewayListPage); + }), + SizedBox( + height: 10.h, + ), + CommonItem( + leftTitel: TranslationLoader.lanKeys!.multiLanguage!.tr, + rightTitle: "简体中文", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.mineMultiLanguagePage); + }), + Obx(() => CommonItem( + leftTitel: TranslationLoader.lanKeys!.lockScreen!.tr, + rightTitle: (state.lockScreen.value == 1 + ? TranslationLoader.lanKeys!.opened!.tr + : TranslationLoader.lanKeys!.closed!.tr), + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed(context, Routers.lockScreenPage, + arguments: {'isOn': state.lockScreen.value}).then((value) { + logic.userSettingsInfoRequest(); + }); + })), + Obx(() => CommonItem( + leftTitel: + TranslationLoader.lanKeys!.hideInvalidUnlockPermissions!.tr, + rightTitle: (state.hideExpiredAccessFlag.value == 1 + ? TranslationLoader.lanKeys!.opened!.tr + : TranslationLoader.lanKeys!.closed!.tr), + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.hideInvalidUnlockPermissionsPage, + arguments: {'isOn': state.hideExpiredAccessFlag.value}) + .then((value) { + logic.userSettingsInfoRequest(); + }); + })), + CommonItem( + leftTitel: TranslationLoader + .lanKeys!.appUnlockRequiresMobilePhoneAccessToTheLock!.tr, + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () { + Navigator.pushNamed( + context, Routers.aPPUnlockNeedMobileNetworkingLockPage); + }), + SizedBox( + height: 10.h, + ), + CommonItem( + leftTitel: "Amazon Alexa", + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () {}), + CommonItem( + leftTitel: "Google Home", + rightTitle: "", + isHaveLine: true, + isHaveDirection: true, + action: () {}), + // CommonItem(leftTitel:TranslationLoader.lanKeys!.valueAddedServices!.tr, rightTitle:"", isHaveDirection: true, action: (){ + // + // }), + SizedBox( + height: 50.h, + ), + // CommonItem(leftTitel:TranslationLoader.lanKeys!.about!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + // + // }), + // SizedBox(height: 10.h,), + // CommonItem(leftTitel:TranslationLoader.lanKeys!.userAgreement!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + // + // }), + // CommonItem(leftTitel:TranslationLoader.lanKeys!.privacyPolicy!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + // + // }), + // CommonItem(leftTitel:TranslationLoader.lanKeys!.personalInformationCollectionList!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + // + // }), + // CommonItem(leftTitel:TranslationLoader.lanKeys!.applicationPermissionDescription!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + // + // }), + // CommonItem(leftTitel:TranslationLoader.lanKeys!.thirdPartyInformationSharingList!.tr, rightTitle:"", isHaveLine: true, isHaveDirection: true, action: (){ + // + // }), + keyBottomWidget() + ], + ); } Widget keyBottomWidget() { @@ -246,7 +226,7 @@ class _MineSetPageState extends State { isDelete: true, onClick: () { //退出登录 - userLogoutRequest(); + logic.userLogoutRequest(); }), Container( padding: EdgeInsets.only(right: 30.w), @@ -272,86 +252,40 @@ class _MineSetPageState extends State { ); } -//用户信息 - Future userSettingsInfoRequest() async { - UserSettingInfoEntity entity = await ApiRepository.to.userSettingsInfo(); - if (entity.errorCode!.codeIsSuccessful) { - setState(() { - _userInfoData = entity.data!; - //提示音 - if (_userInfoData.alertMode == 1) { - _isPrompTone = true; - } else { - _isPrompTone = false; - } - //触摸开锁 - if (_userInfoData.userSettings!.touchUnlockFlag! == 1) { - _isTouchUnlock = true; - } else { - _isTouchUnlock = false; - } - }); - } - } - - //更新提示音 - Future updatePrompToneRequest() async { - ExpireLockListEntity entity = await ApiRepository.to - .setAlertMode('1', _isPrompTone == true ? '1' : '2'); - if (entity.errorCode!.codeIsSuccessful) { - setState(() { - userSettingsInfoRequest(); - }); - } - } - - //退出登录请求 - Future userLogoutRequest() async { - LoginEntity entity = await ApiRepository.to.userLogout(); - if (entity.errorCode!.codeIsSuccessful) { - setState(() { - Get.offNamedUntil(Routers.starLockLoginPage, (route) => false); - }); - } - } - - //更新触摸开锁 - Future updateTouchUnlockRequest() async { - ExpireLockListEntity entity = await ApiRepository.to - .setTouchUnlockFlag(_isTouchUnlock == true ? '1' : '2'); - if (entity.errorCode!.codeIsSuccessful) { - setState(() { - userSettingsInfoRequest(); - }); - } - } - - CupertinoSwitch _switch(int switchIndex) { - bool isOn = false; - if (switchIndex == 0) { - isOn = _isPrompTone; - } else if (switchIndex == 1) { - isOn = _isTouchUnlock; - } else if (switchIndex == 2) { - isOn = _isPushNotification; - } + CupertinoSwitch _isPrompToneSwitch() { return CupertinoSwitch( activeColor: CupertinoColors.activeBlue, trackColor: CupertinoColors.systemGrey5, thumbColor: CupertinoColors.white, - value: isOn, + value: state.isPrompTone.value, onChanged: (value) { - setState(() { - if (switchIndex == 0) { - _isPrompTone = !_isPrompTone; - updatePrompToneRequest(); - } else if (switchIndex == 1) { - _isTouchUnlock = !_isTouchUnlock; - updateTouchUnlockRequest(); - } else if (switchIndex == 2) { - _isPushNotification = !_isPushNotification; - } - }); + state.isPrompTone.value = !state.isPrompTone.value; + logic.updatePrompToneRequest(); + }, + ); + } + + CupertinoSwitch _isTouchUnlockSwitch() { + return CupertinoSwitch( + activeColor: CupertinoColors.activeBlue, + trackColor: CupertinoColors.systemGrey5, + thumbColor: CupertinoColors.white, + value: state.isTouchUnlock.value, + onChanged: (value) { + state.isTouchUnlock.value = !state.isTouchUnlock.value; + logic.updateTouchUnlockRequest(); + }, + ); + } + + CupertinoSwitch _isPushNotificationSwitch() { + return CupertinoSwitch( + activeColor: CupertinoColors.activeBlue, + trackColor: CupertinoColors.systemGrey5, + thumbColor: CupertinoColors.white, + value: state.isPushNotification.value, + onChanged: (value) { + state.isPushNotification.value = !state.isPushNotification.value; }, ); } diff --git a/star_lock/lib/mine/mineSet/mineSet/mineSet_state.dart b/star_lock/lib/mine/mineSet/mineSet/mineSet_state.dart new file mode 100644 index 00000000..76d6832b --- /dev/null +++ b/star_lock/lib/mine/mineSet/mineSet/mineSet_state.dart @@ -0,0 +1,14 @@ +import 'package:get/get.dart'; +import 'package:star_lock/mine/mineSet/mineSet/userSettingInfoEntity.dart'; + +class MineSetState { + final userInfoData = UserSettingInfoData().obs; + final userSetting = UserSettings().obs; + + var isPrompTone = false.obs; //提示音 + var isTouchUnlock = false.obs; //触摸开锁 + var isPushNotification = false.obs; //消息推送 + + var lockScreen = 2.obs; //锁屏 + var hideExpiredAccessFlag = 2.obs; //隐藏无效开锁 +} diff --git a/star_lock/lib/mine/mineSet/mineSet/entity/userSettingInfoEntity.dart b/star_lock/lib/mine/mineSet/mineSet/userSettingInfoEntity.dart similarity index 100% rename from star_lock/lib/mine/mineSet/mineSet/entity/userSettingInfoEntity.dart rename to star_lock/lib/mine/mineSet/mineSet/userSettingInfoEntity.dart diff --git a/star_lock/lib/network/api_repository.dart b/star_lock/lib/network/api_repository.dart index 06f20209..5c606d69 100644 --- a/star_lock/lib/network/api_repository.dart +++ b/star_lock/lib/network/api_repository.dart @@ -5,7 +5,6 @@ import 'package:star_lock/main/lockDetail/electronicKey/electronicKeyList/entity import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/lockUserList/lockUserListEntity.dart'; import 'package:star_lock/main/lockDetail/electronicKey/massSendElectronicKey/massSendLockGroupList/massSendLockGroupListEntity.dart'; import 'package:star_lock/main/lockDetail/lcokSet/basicInformation/basicInformation/KeyDetailEntity.dart'; -import 'package:star_lock/main/lockDetail/lcokSet/basicInformation/lockSeletGrouping/LockGroupListEntity.dart'; import 'package:star_lock/main/lockDetail/passwordKey/passwordKeyList/passwordKeyListEntity.dart'; import 'package:star_lock/main/lockDetail/passwordKey/passwordKey_perpetual/passwordKeyEntity.dart'; import 'package:star_lock/mine/mineSet/appUnlockNeedMobileNetworkingLock/selectLockListEntity.dart'; @@ -13,6 +12,7 @@ import 'package:star_lock/mine/mineSet/authorizedAdministrator/administratorDeta import 'package:star_lock/mine/mineSet/authorizedAdministrator/authorizedAdminListEntity.dart'; import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockListEntity.dart'; import 'package:star_lock/mine/mineSet/lockUserManage/keyListByUserEntity.dart'; +import 'package:star_lock/mine/mineSet/mineSet/userSettingInfoEntity.dart'; import '../common/safetyVerification/entity/CheckSafetyVerificationEntity.dart'; import '../common/safetyVerification/entity/SafetyVerificationEntity.dart'; import '../login/login/entity/LoginEntity.dart'; @@ -34,7 +34,6 @@ import '../main/lockDetail/otherTypeKey/addICCard/addICCard_entity.dart'; import '../main/lockDetail/otherTypeKey/otherTypeKeyList/fingerprintListData_entity.dart'; import '../main/lockMian/entity/lockInfoEntity.dart'; import '../mine/addLock/saveLock/entity/SaveLockEntity.dart'; -import '../mine/mineSet/mineSet/entity/userSettingInfoEntity.dart'; import '../mine/mineSet/transferGateway/selectGetewayList_entity.dart'; import '../mine/mineSet/transferSmartLock/recipientInformation/recipientInformation_entity.dart'; import '../mine/mineSet/transferSmartLock/transferSmartLockList/transferSmartLock_entity.dart';