From ec5e454cddf2fc710dad06fa776943f9cfbdf8f1 Mon Sep 17 00:00:00 2001 From: Daisy <> Date: Thu, 21 Sep 2023 10:05:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E5=A4=9A=E8=AE=BE=E7=BD=AE=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E9=9F=B3=E6=8E=A5=E5=8F=A3=E5=AF=B9=E6=8E=A5=20?= =?UTF-8?q?=E8=A7=A6=E6=91=B8=E5=BC=80=E9=94=81=E6=8E=A5=E5=8F=A3=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5=E9=80=BB=E8=BE=91=E6=9C=AA=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{ => entity}/userSettingInfoEntity.dart | 48 +++++++++--------- .../mineSet/lockScreen/lockScreen_page.dart | 49 +++++++++++++++++-- star_lock/lib/mine/mineSet/mineSet_page.dart | 46 +++++++++++++++-- star_lock/lib/network/api.dart | 4 +- star_lock/lib/network/api_provider.dart | 6 +++ star_lock/lib/network/api_repository.dart | 19 +++++-- 6 files changed, 137 insertions(+), 35 deletions(-) rename star_lock/lib/mine/mineSet/{ => entity}/userSettingInfoEntity.dart (88%) diff --git a/star_lock/lib/mine/mineSet/userSettingInfoEntity.dart b/star_lock/lib/mine/mineSet/entity/userSettingInfoEntity.dart similarity index 88% rename from star_lock/lib/mine/mineSet/userSettingInfoEntity.dart rename to star_lock/lib/mine/mineSet/entity/userSettingInfoEntity.dart index 069f207b..e84bd014 100644 --- a/star_lock/lib/mine/mineSet/userSettingInfoEntity.dart +++ b/star_lock/lib/mine/mineSet/entity/userSettingInfoEntity.dart @@ -30,17 +30,17 @@ class UserSettingInfoEntity { class UserSettingInfoData { UserSettings? userSettings; - Null? hasXmeyeLock; - Null? hasMoreService; - Null? isReply; - Null? paidUserStatus; - Null? hasAdvert; - Null? hasAlexa; - Null? isUserSettingCompleted; - Null? hasPaidFeature; - Null? hasCameraLock; - Null? hasGoogleHome; - Null? alertMode; + int? hasXmeyeLock; + int? hasMoreService; + int? isReply; + int? paidUserStatus; + int? hasAdvert; + int? hasAlexa; + int? isUserSettingCompleted; + int? hasPaidFeature; + int? hasCameraLock; + int? hasGoogleHome; + int? alertMode; UserSettingInfoData( {this.userSettings, @@ -94,19 +94,19 @@ class UserSettingInfoData { } class UserSettings { - Null? touchUnlockFlag; - Null? modifyManagePwdFlag; - Null? gesturePassword; - Null? resetFlag; - Null? delManagerFlag; - Null? hideExpiredAccessFlag; - Null? sendKeyFlag; - Null? viberateFlag; - Null? lockScreen; - Null? authorizeFlag; - Null? sendPwdFlag; - Null? alertToneFlag; - Null? status; + int? touchUnlockFlag; + int? modifyManagePwdFlag; + String? gesturePassword; + int? resetFlag; + int? delManagerFlag; + int? hideExpiredAccessFlag; + int? sendKeyFlag; + int? viberateFlag; + int? lockScreen; + int? authorizeFlag; + int? sendPwdFlag; + int? alertToneFlag; + int? status; UserSettings( {this.touchUnlockFlag, diff --git a/star_lock/lib/mine/mineSet/lockScreen/lockScreen_page.dart b/star_lock/lib/mine/mineSet/lockScreen/lockScreen_page.dart index 1105eb9b..9951a0c1 100644 --- a/star_lock/lib/mine/mineSet/lockScreen/lockScreen_page.dart +++ b/star_lock/lib/mine/mineSet/lockScreen/lockScreen_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/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/submitBtn.dart'; @@ -15,8 +19,30 @@ class LockScreenPage extends StatefulWidget { } class _LockScreenPageState extends State { + bool _isOn = true; + bool _isFirst = false; + + @override + void initState() { + super.initState(); + + _isFirst = true; + } + @override Widget build(BuildContext context) { + if (_isFirst) { + dynamic obj = ModalRoute.of(context)?.settings.arguments; + if (obj != null && (obj["isOn"] != null)) { + int getValue = obj["isOn"]; + if (getValue == 1) { + _isOn = true; + } else { + _isOn = false; + } + } + } + return Scaffold( backgroundColor: AppColors.mainBackgroundColor, appBar: TitleAppBar( @@ -46,7 +72,7 @@ class _LockScreenPageState extends State { children: [ Expanded( child: Text( - "${TranslationLoader.lanKeys!.currentMode!.tr} : ${TranslationLoader.lanKeys!.opened!.tr}", + "${TranslationLoader.lanKeys!.currentMode!.tr} : ${_isOn == true ? TranslationLoader.lanKeys!.opened!.tr : TranslationLoader.lanKeys!.closed!.tr}", style: TextStyle(fontWeight: FontWeight.w600, fontSize: 22.sp), )), @@ -56,10 +82,27 @@ class _LockScreenPageState extends State { height: 40.h, ), SubmitBtn( - btnName: TranslationLoader.lanKeys!.closed!.tr, - onClick: () {}), + btnName: _isOn == true + ? TranslationLoader.lanKeys!.open!.tr + : TranslationLoader.lanKeys!.closed!.tr, + onClick: () { + _isFirst = false; + setState(() { + _isOn = !_isOn; + }); + changeSettingsRequest(); + }), ], ), )); } + + //锁屏/隐藏无效开锁权限 1:锁屏 2:隐藏无效开锁权限 + Future changeSettingsRequest() async { + ExpireLockListEntity entity = + await ApiRepository.to.changeSettings(_isOn == true ? '1' : '2', '1'); + if (entity.errorCode!.codeIsSuccessful) { + Toast.show(msg: '操作成功'); + } + } } diff --git a/star_lock/lib/mine/mineSet/mineSet_page.dart b/star_lock/lib/mine/mineSet/mineSet_page.dart index 99b04481..0063d0bb 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/mine/mineSet/entity/userSettingInfoEntity.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'; @@ -24,11 +25,13 @@ class _MineSetPageState extends State { late bool _isPrompTone = false; //提示音 late bool _isTouchUnlock = false; //触摸开锁 late bool _isPushNotification = false; //消息推送 + late UserSettingInfoData _userInfoData; @override void initState() { super.initState(); + _userInfoData = UserSettingInfoData(); userSettingsInfoRequest(); } @@ -143,7 +146,12 @@ class _MineSetPageState extends State { isHaveLine: true, isHaveDirection: true, action: () { - Navigator.pushNamed(context, Routers.lockScreenPage); + Navigator.pushNamed(context, Routers.lockScreenPage, + arguments: { + 'isOn': _userInfoData.userSettings!.lockScreen + }).then((value) { + userSettingsInfoRequest(); + }); }), CommonItem( leftTitel: TranslationLoader @@ -244,10 +252,25 @@ class _MineSetPageState extends State { ); } +//用户信息 Future userSettingsInfoRequest() async { - ExpireLockListEntity entity = await ApiRepository.to.userSettingsInfo(); + UserSettingInfoEntity entity = await ApiRepository.to.userSettingsInfo(); if (entity.errorCode!.codeIsSuccessful) { - setState(() {}); + setState(() { + _userInfoData = entity.data!; + //提示音 + if (_userInfoData.alertMode == 1) { + _isPrompTone = true; + } else { + _isPrompTone = false; + } + //触摸开锁 + if (_userInfoData.userSettings!.touchUnlockFlag! == 1) { + _isTouchUnlock = true; + } else { + _isTouchUnlock = false; + } + }); } } @@ -256,7 +279,20 @@ class _MineSetPageState extends State { ExpireLockListEntity entity = await ApiRepository.to .setAlertMode('1', _isPrompTone == true ? '1' : '2'); if (entity.errorCode!.codeIsSuccessful) { - setState(() {}); + setState(() { + userSettingsInfoRequest(); + }); + } + } + + //更新触摸开锁 + Future updateTouchUnlockRequest() async { + ExpireLockListEntity entity = await ApiRepository.to + .setTouchUnlockFlag(_isTouchUnlock == true ? '1' : '2'); + if (entity.errorCode!.codeIsSuccessful) { + setState(() { + userSettingsInfoRequest(); + }); } } @@ -278,8 +314,10 @@ class _MineSetPageState extends State { setState(() { if (switchIndex == 0) { _isPrompTone = !_isPrompTone; + updatePrompToneRequest(); } else if (switchIndex == 1) { _isTouchUnlock = !_isTouchUnlock; + updateTouchUnlockRequest(); } else if (switchIndex == 2) { _isPushNotification = !_isPushNotification; } diff --git a/star_lock/lib/network/api.dart b/star_lock/lib/network/api.dart index e98037ab..8d2e3a75 100644 --- a/star_lock/lib/network/api.dart +++ b/star_lock/lib/network/api.dart @@ -99,6 +99,8 @@ abstract class Api { final String updateAdministratorURL = '/authorizedAdmin/update'; //管理员姓名/有效期/远程开锁修改 final String expireLockListURL = '/keyUser/listExpireUser'; //即将到期的锁列表 - final String setAlertModeURL = '/user/setAlertMode'; //提示音 final String userSettingsInfoURL = '/user/userSettingsInfo'; //个人设置信息 + final String setAlertModeURL = '/user/setAlertMode'; //提示音 + final String setTouchUnlockFlagURL = '/user/setTouchUnlockFlag'; //触摸开锁 + final String changeSettingsURL = '/user/changeSettings'; //锁屏/隐藏无效开锁权限 } diff --git a/star_lock/lib/network/api_provider.dart b/star_lock/lib/network/api_provider.dart index 47caffaa..31176f8b 100644 --- a/star_lock/lib/network/api_provider.dart +++ b/star_lock/lib/network/api_provider.dart @@ -955,6 +955,12 @@ class ApiProvider extends BaseProvider { setAlertModeURL.toUrl, jsonEncode({'alertMode': alertMode, 'isOn': isOn})); + Future changeSettings(String isOn, String type) => + post(changeSettingsURL.toUrl, jsonEncode({'isOn': isOn, 'type': type})); + + Future setTouchUnlockFlag(String isOn) => + post(setTouchUnlockFlagURL.toUrl, jsonEncode({'isOn': isOn})); + Future userSettingsInfo() => post(userSettingsInfoURL.toUrl, jsonEncode({})); diff --git a/star_lock/lib/network/api_repository.dart b/star_lock/lib/network/api_repository.dart index ff783c86..f5a42068 100644 --- a/star_lock/lib/network/api_repository.dart +++ b/star_lock/lib/network/api_repository.dart @@ -9,6 +9,7 @@ import 'package:star_lock/main/lockDetail/lcokSet/basicInformation/lockSeletGrou 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/authorizedAdministrator/authorizedAdminListEntity.dart'; +import 'package:star_lock/mine/mineSet/entity/userSettingInfoEntity.dart'; import 'package:star_lock/mine/mineSet/lockUserManage/expireLockList/expireLockListEntity.dart'; import 'package:star_lock/mine/mineSet/lockUserManage/keyListByUserEntity.dart'; import '../common/safetyVerification/entity/CheckSafetyVerificationEntity.dart'; @@ -656,12 +657,24 @@ class ApiRepository { return ExpireLockListEntity.fromJson(res.body); } - //个人设置信息 - Future userSettingsInfo() async { - final res = await apiProvider.userSettingsInfo(); + //触摸开锁 + Future setTouchUnlockFlag(String isOn) async { + final res = await apiProvider.setTouchUnlockFlag(isOn); return ExpireLockListEntity.fromJson(res.body); } + //触摸开锁 + Future changeSettings(String isOn, String type) async { + final res = await apiProvider.changeSettings(isOn, type); + return ExpireLockListEntity.fromJson(res.body); + } + + //个人设置信息 + Future userSettingsInfo() async { + final res = await apiProvider.userSettingsInfo(); + return UserSettingInfoEntity.fromJson(res.body); + } + // 开启考勤 获取考勤信息 Future openCheckingInData( {required String lockId}) async {