From 6af8d36184cdebc65c2f094fd8b8f357f0baadba Mon Sep 17 00:00:00 2001 From: DaisyWu <18682150237@163.com> Date: Wed, 7 May 2025 18:30:19 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20xhj=E3=80=81sky=20=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E9=A1=B5=E9=9D=A2=E6=89=8B=E6=9C=BA=E9=82=AE=E7=AE=B1?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E4=BF=AE=E6=94=B9=EF=BC=9A=E2=80=9C=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E7=B3=BB=E7=BB=9F=E8=AF=AD=E8=A8=80=E6=98=AF=E9=9D=9E?= =?UTF-8?q?=E4=B8=AD=E6=96=87=E7=AE=80=E4=BD=93=EF=BC=8C=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E9=82=AE=E7=AE=B1=E6=B3=A8=E5=86=8C=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../register/starLock_register_page.dart | 27 +++----- .../register/starLock_register_state.dart | 25 +++++--- .../register/starLock_register_xhj_page.dart | 63 +++++++++---------- 3 files changed, 54 insertions(+), 61 deletions(-) diff --git a/lib/login/register/starLock_register_page.dart b/lib/login/register/starLock_register_page.dart index e9d599e9..a1d2c7ff 100755 --- a/lib/login/register/starLock_register_page.dart +++ b/lib/login/register/starLock_register_page.dart @@ -76,7 +76,6 @@ class _StarLockRegisterPageState extends State { Container( width: 340.w, height: 60.h, - // color: Colors.red, decoration: BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(30.h)), border: @@ -119,28 +118,22 @@ class _StarLockRegisterPageState extends State { child: Obx( () => Container( height: 60.h, - // color: Colors.red, - decoration: state.isIphoneType.value - ? null - : BoxDecoration( + decoration: !state.isIphoneType.value + ? BoxDecoration( color: AppColors.mainColor, - borderRadius: BorderRadius.all( - Radius.circular( - 30.h, - ), - ), + borderRadius: + BorderRadius.all(Radius.circular(30.h)), border: Border.all( - width: 1.0, - color: AppColors.greyLineColor, - ), - ), + width: 1.0, + color: AppColors.greyLineColor)) + : null, child: Center( child: Text( '邮箱'.tr, style: TextStyle( - color: state.isIphoneType.value - ? Colors.black - : Colors.white, + color: !state.isIphoneType.value + ? Colors.white + : Colors.black, ), ), ), diff --git a/lib/login/register/starLock_register_state.dart b/lib/login/register/starLock_register_state.dart index 3555bd0c..6e6aa5e9 100755 --- a/lib/login/register/starLock_register_state.dart +++ b/lib/login/register/starLock_register_state.dart @@ -3,8 +3,11 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; class StarLockRegisterState { - StarLockRegisterState() { + // 根据系统语言设置默认选中的tab + final Locale? systemLocale = Get.deviceLocale; + isIphoneType.value = systemLocale?.languageCode == 'zh'; + resetResend(); } final TextEditingController phoneOrEmailController = TextEditingController(); @@ -22,16 +25,21 @@ class StarLockRegisterState { RxString verificationCode = ''.obs; RxString xWidth = ''.obs; // 滑动验证码滑动位置 RxBool isIphoneType = true.obs; - RxBool canSub = false.obs;// 是否能提交 + RxBool canSub = false.obs; // 是否能提交 RxBool agree = false.obs; - RxBool canSendCode = false.obs;// 是否能发送验证码 + RxBool canSendCode = false.obs; // 是否能发送验证码 // bool get isEmail => RegexUtil.isEmail(phoneOrEmailStr.value); // bool get isIphone => RegexUtil.isMobileSimple(phoneOrEmailStr.value); - bool get pwdIsOK => pwd.value.isNotEmpty && surePwd.value.isNotEmpty && pwd.value.length >= 8 && surePwd.value.length >= 8; - bool get codeIsOK => verificationCode.value.isNotEmpty && verificationCode.value.length >= 6 ; + bool get pwdIsOK => + pwd.value.isNotEmpty && + surePwd.value.isNotEmpty && + pwd.value.length >= 8 && + surePwd.value.length >= 8; + bool get codeIsOK => + verificationCode.value.isNotEmpty && verificationCode.value.length >= 6; - RxBool canResend = false.obs;// 是否能重新发送,就是验证码倒计时之后的重新发送 + RxBool canResend = false.obs; // 是否能重新发送,就是验证码倒计时之后的重新发送 RxString btnText = ''.obs; int totalSeconds = 120; int currentSecond = 120; @@ -39,9 +47,8 @@ class StarLockRegisterState { void resetResend() { canResend.value = totalSeconds == currentSecond; - btnText.value = !canResend.value - ? '$currentSecond s' - : btnText.value = '获取验证码'.tr; + btnText.value = + !canResend.value ? '$currentSecond s' : btnText.value = '获取验证码'.tr; } void onClose() { diff --git a/lib/login/register/starLock_register_xhj_page.dart b/lib/login/register/starLock_register_xhj_page.dart index de914623..038f85f6 100755 --- a/lib/login/register/starLock_register_xhj_page.dart +++ b/lib/login/register/starLock_register_xhj_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -74,6 +73,7 @@ class _StarLockRegisterPageState extends State { height: 80.h, child: DefaultTabController( length: 2, + initialIndex: state.isIphoneType.value ? 0 : 1, child: TabBar( onTap: (int index) { state.isIphoneType.value = index == 0; @@ -84,10 +84,7 @@ class _StarLockRegisterPageState extends State { }), dividerHeight: 0, indicatorSize: TabBarIndicatorSize.tab, - tabs: [ - Text('手机'.tr), - Text('邮箱'.tr) - ], + tabs: [Text('手机'.tr), Text('邮箱'.tr)], indicatorColor: AppColors.mainColor, labelStyle: TextStyle(color: AppColors.mainColor, fontSize: 26.sp), @@ -144,7 +141,7 @@ class _StarLockRegisterPageState extends State { logic.checkNext(state.phoneOrEmailController); }, leftWidget: SizedBox(), - label:state.isIphoneType.value ? '请输入手机号'.tr : '请输入邮箱'.tr, + label: state.isIphoneType.value ? '请输入手机号'.tr : '请输入邮箱'.tr, keyboardType: TextInputType.number, inputFormatters: [ LengthLimitingTextInputFormatter(30), @@ -163,7 +160,7 @@ class _StarLockRegisterPageState extends State { Text( '密码必须是8-20位,至少包括数字/字母/符号中的2种'.tr, style: - TextStyle(color: AppColors.placeholderTextColor, fontSize: 20.sp), + TextStyle(color: AppColors.placeholderTextColor, fontSize: 20.sp), ), LoginInput( controller: state.sureController, @@ -235,32 +232,31 @@ class _StarLockRegisterPageState extends State { Widget _buildBottomAgreement() { return Padding( - padding: EdgeInsets.only(bottom:20.w), + padding: EdgeInsets.only(bottom: 20.w), child: Row( mainAxisAlignment: MainAxisAlignment.start, children: [ Obx(() => GestureDetector( - onTap: () { - state.agree.value = !state.agree.value; - logic.changeAgreeState(); - }, - child: Container( - width: 40.w, - height: 40.w, - // color: Colors.red, - padding: EdgeInsets.only( - left: 5.w, - right: 10.w, - ), - child: Image.asset( - state.agree.value - ? 'images/icon_round_select.png' - : 'images/icon_round_unSelect.png', - width: 20.w, - height: 20.w, - ), - ) - )), + onTap: () { + state.agree.value = !state.agree.value; + logic.changeAgreeState(); + }, + child: Container( + width: 40.w, + height: 40.w, + // color: Colors.red, + padding: EdgeInsets.only( + left: 5.w, + right: 10.w, + ), + child: Image.asset( + state.agree.value + ? 'images/icon_round_select.png' + : 'images/icon_round_unSelect.png', + width: 20.w, + height: 20.w, + ), + ))), SizedBox( width: 10.w, ), @@ -268,14 +264,12 @@ class _StarLockRegisterPageState extends State { child: RichText( text: TextSpan( text: '我已阅读并同意'.tr, - style: - TextStyle(color: const Color(0xff333333), fontSize: 20.sp), + style: TextStyle(color: const Color(0xff333333), fontSize: 20.sp), children: [ WidgetSpan( alignment: PlaceholderAlignment.middle, child: GestureDetector( - child: Text( - '《${'用户协议'.tr}》', + child: Text('《${'用户协议'.tr}》', style: TextStyle( color: AppColors.mainColor, fontSize: 20.sp)), onTap: () { @@ -289,8 +283,7 @@ class _StarLockRegisterPageState extends State { WidgetSpan( alignment: PlaceholderAlignment.middle, child: GestureDetector( - child: Text( - '《${'隐私政策'.tr}》', + child: Text('《${'隐私政策'.tr}》', style: TextStyle( color: AppColors.mainColor, fontSize: 20.sp)), onTap: () { From d6dba6e3dd02e7d78eb58d48f12810b4b9d0708f Mon Sep 17 00:00:00 2001 From: DaisyWu <18682150237@163.com> Date: Fri, 9 May 2025 13:39:05 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E2=80=9C=E4=B8=8A=E4=BC=A0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=88=90=E5=8A=9F=E5=90=8E=EF=BC=8C=E6=8C=87=E7=BA=B9?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=B2=A1=E6=98=BE=E7=A4=BA=E5=87=BA=E6=9D=A5?= =?UTF-8?q?=EF=BC=8C=E5=BF=85=E9=A1=BB=E4=B8=8B=E6=8B=89=E5=88=B7=E6=96=B0?= =?UTF-8?q?=E6=89=8D=E6=98=BE=E7=A4=BA=E2=80=9D=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fingerprintList_logic.dart | 5 +- .../lockSet/uploadData/uploadData_logic.dart | 292 +++++++++++------- 2 files changed, 180 insertions(+), 117 deletions(-) diff --git a/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_logic.dart b/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_logic.dart index d65269cd..f2a1a7d9 100755 --- a/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_logic.dart +++ b/lib/main/lockDetail/fingerprint/fingerprintList/fingerprintList_logic.dart @@ -405,6 +405,7 @@ class FingerprintListLogic extends BaseGetXController { _teamEvent = eventBus .on() .listen((OtherTypeRefreshListEvent event) async { + // 立即刷新数据 await getFingerprintsListData(isRefresh: true); }); } @@ -459,8 +460,10 @@ class FingerprintListLogic extends BaseGetXController { final bool? isDemoMode = await Storage.getBool(ifIsDemoModeOrNot); if (isDemoMode == false) { _initReplySubscription(); + _initRefreshAction(); - // _initRefreshAction(); + // 初始加载数据 + await getFingerprintsListData(isRefresh: true); } } diff --git a/lib/main/lockDetail/lockSet/uploadData/uploadData_logic.dart b/lib/main/lockDetail/lockSet/uploadData/uploadData_logic.dart index 3fea8596..b032bb97 100644 --- a/lib/main/lockDetail/lockSet/uploadData/uploadData_logic.dart +++ b/lib/main/lockDetail/lockSet/uploadData/uploadData_logic.dart @@ -1,4 +1,3 @@ - import 'dart:async'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; @@ -7,6 +6,8 @@ import 'package:star_lock/blue/io_protocol/io_updataLockRemoteControlList.dart'; import 'package:star_lock/login/login/entity/LoginEntity.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/tools/commonDataManage.dart'; +import 'package:star_lock/tools/eventBusEventManage.dart'; +import 'package:star_lock/tools/storage.dart'; import '../../../../app_settings/app_settings.dart'; import '../../../../blue/blue_manage.dart'; @@ -21,48 +22,56 @@ import '../../../../blue/io_tool/io_tool.dart'; import '../../../../blue/io_tool/manager_event_bus.dart'; import '../../../../blue/sender_manage.dart'; import '../../../../network/api_repository.dart'; -import '../../../../tools/storage.dart'; import 'uploadData_state.dart'; -class UploadDataLogic extends BaseGetXController{ - UploadDataState state = UploadDataState(); +class UploadDataLogic extends BaseGetXController { + final UploadDataState state = UploadDataState(); // 监听蓝牙协议返回结果 late StreamSubscription _replySubscription; void _initReplySubscription() { - _replySubscription = EventBusManager().eventBus!.on().listen((Reply reply) async { + _replySubscription = + EventBusManager().eventBus!.on().listen((Reply reply) async { // 上传数据获取锁密码列表 - if (reply is UpdataLockPasswordListReply && (state.ifCurrentScreen.value == true)) { + if (reply is UpdataLockPasswordListReply && + (state.ifCurrentScreen.value == true)) { _replyUpdataLockPasswordListReply(reply); } // 上传数据获取锁卡列表 - if (reply is UpdataLockCardListReply && (state.ifCurrentScreen.value == true)) { + if (reply is UpdataLockCardListReply && + (state.ifCurrentScreen.value == true)) { _replyUpdataLockCardListReply(reply); } // 上传数据获取锁指纹列表 - if (reply is UpdataLockFingerprintListReply && (state.ifCurrentScreen.value == true)) { + if (reply is UpdataLockFingerprintListReply && + (state.ifCurrentScreen.value == true)) { _replyUpdataLockFingerprintListReply(reply); } // 上传数据获取锁人脸列表 - if (reply is UpdataLockFaceListReply && (state.ifCurrentScreen.value == true)) { + if (reply is UpdataLockFaceListReply && + (state.ifCurrentScreen.value == true)) { _replyUpdataLockFaceListReply(reply); } // 上传数据获取锁掌静脉列表 - if (reply is UpdataLockPalmVeinListReply && (state.ifCurrentScreen.value == true)) { + if (reply is UpdataLockPalmVeinListReply && + (state.ifCurrentScreen.value == true)) { _replyUpdataLockPalmVeinListReply(reply); } // 上传数据获取锁遥控 - if (reply is UpdataLockRemoteControlListReply && (state.ifCurrentScreen.value == true)) { + if (reply is UpdataLockRemoteControlListReply && + (state.ifCurrentScreen.value == true)) { _replyUpdataLockRemoteControlListReply(reply); } // 上传数据获取锁设置 - if (reply is UpdataLockSetReply && (state.ifCurrentScreen.value == true) && (state.ifSeletUpdataBtnState == true)) { + if (reply is UpdataLockSetReply && + (state.ifCurrentScreen.value == true) && + (state.ifSeletUpdataBtnState == true)) { _replyUpdataLockSetReply(reply); } }); @@ -71,21 +80,22 @@ class UploadDataLogic extends BaseGetXController{ // 上传数据获取锁密码列表 Future _replyUpdataLockPasswordListReply(Reply reply) async { final int status = reply.data[2]; - switch(status){ + switch (status) { case 0x00: - //成功 + //成功 cancelBlueConnetctToastTimer(); final int dataLength = reply.data[8]; - state.uploadPasswordDataList.addAll(reply.data.sublist(9, reply.data.length)); - if(dataLength == 10){ + state.uploadPasswordDataList + .addAll(reply.data.sublist(9, reply.data.length)); + if (dataLength == 10) { // 当数据是10的时候继续请求 state.uploadPasswordPage = state.uploadPasswordPage + 1; final List token = reply.data.sublist(3, 7); showEasyLoading(); updataLockPasswordList(token, state.uploadPasswordPage); - }else{ + } else { // dismissEasyLoading(); // 当数据不是10的时候解析数据上传 @@ -95,12 +105,15 @@ class UploadDataLogic extends BaseGetXController{ // }else{ // // 如果不是空的解析数据上传 state.indexCount.value = state.indexCount.value + 1; - _lockDataUpload(uploadType:2, recordType:2, records:state.uploadPasswordDataList); + _lockDataUpload( + uploadType: 2, + recordType: 2, + records: state.uploadPasswordDataList); // } } break; case 0x06: - //无权限 + //无权限 final List token = reply.data.sublist(3, 7); final List saveStrList = changeIntListToStringList(token); Storage.setStringList(saveBlueToken, saveStrList); @@ -120,14 +133,15 @@ class UploadDataLogic extends BaseGetXController{ // 上传数据获取锁卡列表 Future _replyUpdataLockCardListReply(Reply reply) async { final int status = reply.data[2]; - switch(status){ + switch (status) { case 0x00: //成功 cancelBlueConnetctToastTimer(); final int dataLength = reply.data[8]; - state.uploadCardDataList.addAll(reply.data.sublist(9, reply.data.length)); - if(dataLength == 10){ + state.uploadCardDataList + .addAll(reply.data.sublist(9, reply.data.length)); + if (dataLength == 10) { // 当数据是10的时候继续请求 state.uploadCardPage = state.uploadCardPage + 1; @@ -135,7 +149,7 @@ class UploadDataLogic extends BaseGetXController{ showEasyLoading(); updataLockCardList(token, state.uploadCardPage); - }else{ + } else { // // 当数据不是10的时候解析数据上传 // if(state.uploadCardDataList.isEmpty){ // // 如果是空的直接上传下一个 @@ -143,12 +157,13 @@ class UploadDataLogic extends BaseGetXController{ // }else{ // // 如果不是空的解析数据上传 state.indexCount.value = state.indexCount.value + 1; - _lockDataUpload(uploadType:2, recordType:3, records:state.uploadCardDataList); + _lockDataUpload( + uploadType: 2, recordType: 3, records: state.uploadCardDataList); // } } break; case 0x06: - //无权限 + //无权限 final List token = reply.data.sublist(3, 7); final List saveStrList = changeIntListToStringList(token); Storage.setStringList(saveBlueToken, saveStrList); @@ -167,14 +182,15 @@ class UploadDataLogic extends BaseGetXController{ // 上传数据获取锁指纹列表 Future _replyUpdataLockFingerprintListReply(Reply reply) async { final int status = reply.data[2]; - switch(status){ + switch (status) { case 0x00: - //成功 + //成功 cancelBlueConnetctToastTimer(); final int dataLength = reply.data[8]; - state.uploadFingerprintDataList.addAll(reply.data.sublist(9, reply.data.length)); - if(dataLength == 10){ + state.uploadFingerprintDataList + .addAll(reply.data.sublist(9, reply.data.length)); + if (dataLength == 10) { // 当数据是10的时候继续请求 state.uploadFingerprintPage = state.uploadFingerprintPage + 1; @@ -182,7 +198,7 @@ class UploadDataLogic extends BaseGetXController{ showEasyLoading(); updataLockFingerprintList(token, state.uploadFingerprintPage); - }else{ + } else { // // 当数据不是10的时候解析数据上传 // if(state.uploadFingerprintDataList.isEmpty){ // // 如果是空的直接上传下一个 @@ -190,12 +206,15 @@ class UploadDataLogic extends BaseGetXController{ // }else{ // // 如果不是空的解析数据上传 state.indexCount.value = state.indexCount.value + 1; - _lockDataUpload(uploadType:2, recordType:4, records:state.uploadFingerprintDataList); + _lockDataUpload( + uploadType: 2, + recordType: 4, + records: state.uploadFingerprintDataList); // } } break; case 0x06: - //无权限 + //无权限 final List token = reply.data.sublist(3, 7); final List saveStrList = changeIntListToStringList(token); Storage.setStringList(saveBlueToken, saveStrList); @@ -214,14 +233,15 @@ class UploadDataLogic extends BaseGetXController{ // 上传数据获取锁人脸列表解析 Future _replyUpdataLockFaceListReply(Reply reply) async { final int status = reply.data[2]; - switch(status){ + switch (status) { case 0x00: //成功 cancelBlueConnetctToastTimer(); final int dataLength = reply.data[8]; - state.uploadFaceDataList.addAll(reply.data.sublist(9, reply.data.length)); - if(dataLength == 10){ + state.uploadFaceDataList + .addAll(reply.data.sublist(9, reply.data.length)); + if (dataLength == 10) { // 当数据是10的时候继续请求 state.uploadFacePage = state.uploadFacePage + 1; @@ -229,20 +249,21 @@ class UploadDataLogic extends BaseGetXController{ showEasyLoading(); updataLockFaceList(token, state.uploadFacePage); - }else{ + } else { // // 当数据不是10的时候解析数据上传 // if(state.uploadFaceDataList.isEmpty){ // // 如果是空的直接上传下一个 // getUpdataLockPalmVeinList(); // }else{ - // 如果不是空的解析数据上传 + // 如果不是空的解析数据上传 state.indexCount.value = state.indexCount.value + 1; - _lockDataUpload(uploadType:2, recordType:5, records:state.uploadFaceDataList); + _lockDataUpload( + uploadType: 2, recordType: 5, records: state.uploadFaceDataList); // } } break; case 0x06: - //无权限 + //无权限 final List token = reply.data.sublist(3, 7); final List saveStrList = changeIntListToStringList(token); Storage.setStringList(saveBlueToken, saveStrList); @@ -261,14 +282,15 @@ class UploadDataLogic extends BaseGetXController{ // 上传数据获取锁掌静脉列表解析 Future _replyUpdataLockPalmVeinListReply(Reply reply) async { final int status = reply.data[2]; - switch(status){ + switch (status) { case 0x00: //成功 cancelBlueConnetctToastTimer(); final int dataLength = reply.data[8]; - state.uploadPalmVeinDataList.addAll(reply.data.sublist(9, reply.data.length)); - if(dataLength == 10){ + state.uploadPalmVeinDataList + .addAll(reply.data.sublist(9, reply.data.length)); + if (dataLength == 10) { // 当数据是10的时候继续请求 state.uploadPalmVeinPage = state.uploadPalmVeinPage + 1; @@ -276,7 +298,7 @@ class UploadDataLogic extends BaseGetXController{ showEasyLoading(); updataLockPalmVeinList(token, state.uploadPalmVeinPage); - }else{ + } else { // // 当数据不是10的时候解析数据上传 // if(state.uploadPalmVeinDataList.isEmpty){ // // 不需要上传 如果是空的直接上传下一个 @@ -284,12 +306,15 @@ class UploadDataLogic extends BaseGetXController{ // }else{ // // 如果不是空的解析数据上传 state.indexCount.value = state.indexCount.value + 1; - _lockDataUpload(uploadType:2, recordType:6, records:state.uploadPalmVeinDataList); + _lockDataUpload( + uploadType: 2, + recordType: 6, + records: state.uploadPalmVeinDataList); // } } break; case 0x06: - //无权限 + //无权限 final List token = reply.data.sublist(3, 7); final List saveStrList = changeIntListToStringList(token); Storage.setStringList(saveBlueToken, saveStrList); @@ -308,14 +333,15 @@ class UploadDataLogic extends BaseGetXController{ // 上传数据获取锁遥控列表解析 Future _replyUpdataLockRemoteControlListReply(Reply reply) async { final int status = reply.data[2]; - switch(status){ + switch (status) { case 0x00: //成功 cancelBlueConnetctToastTimer(); final int dataLength = reply.data[8]; - state.uploadRemoteControlDataList.addAll(reply.data.sublist(9, reply.data.length)); - if(dataLength == 10){ + state.uploadRemoteControlDataList + .addAll(reply.data.sublist(9, reply.data.length)); + if (dataLength == 10) { // 当数据是10的时候继续请求 state.uploadRemoteControlPage = state.uploadRemoteControlPage + 1; @@ -323,7 +349,7 @@ class UploadDataLogic extends BaseGetXController{ showEasyLoading(); updataLockRemoteControlList(token, state.uploadRemoteControlPage); - }else{ + } else { // // 当数据不是10的时候解析数据上传 // if(state.uploadPalmVeinDataList.isEmpty){ // // 不需要上传 如果是空的直接上传下一个 @@ -331,12 +357,15 @@ class UploadDataLogic extends BaseGetXController{ // }else{ // // 如果不是空的解析数据上传 state.indexCount.value = state.indexCount.value + 1; - _lockDataUpload(uploadType:2, recordType:7, records:state.uploadRemoteControlDataList); + _lockDataUpload( + uploadType: 2, + recordType: 7, + records: state.uploadRemoteControlDataList); // } } break; case 0x06: - //无权限 + //无权限 final List token = reply.data.sublist(3, 7); final List saveStrList = changeIntListToStringList(token); Storage.setStringList(saveBlueToken, saveStrList); @@ -355,17 +384,19 @@ class UploadDataLogic extends BaseGetXController{ // 上传数据获取锁设置解析 Future _replyUpdataLockSetReply(Reply reply) async { final int status = reply.data[2]; - switch(status){ + switch (status) { case 0x00: //成功 state.indexCount.value = state.indexCount.value + 1; cancelBlueConnetctToastTimer(); - state.uploadLockSetDataList.addAll(reply.data.sublist(7, reply.data.length)); - _lockDataUpload(uploadType:1, recordType:0, records:state.uploadLockSetDataList); + state.uploadLockSetDataList + .addAll(reply.data.sublist(7, reply.data.length)); + _lockDataUpload( + uploadType: 1, recordType: 0, records: state.uploadLockSetDataList); break; case 0x06: - //无权限 + //无权限 final List token = reply.data.sublist(3, 7); final List saveStrList = changeIntListToStringList(token); Storage.setStringList(saveBlueToken, saveStrList); @@ -383,18 +414,19 @@ class UploadDataLogic extends BaseGetXController{ // 上传数据获取锁密码列表 Future getUpdataLockPasswordList() async { - if(state.sureBtnState.value == 1){ + if (state.sureBtnState.value == 1) { return; } state.sureBtnState.value = 1; showEasyLoading(); - showBlueConnetctToastTimer(action: (){ + showBlueConnetctToastTimer(action: () { dismissEasyLoading(); AppLog.log('上传密码列表获取超时 关闭加载菊花'); state.sureBtnState.value = 0; }); - BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async { + BlueManage().blueSendData(BlueManage().connectDeviceName, + (BluetoothConnectionState connectionState) async { if (connectionState == BluetoothConnectionState.connected) { final List? token = await Storage.getStringList(saveBlueToken); final List getTokenList = changeStringListToIntList(token!); @@ -405,7 +437,7 @@ class UploadDataLogic extends BaseGetXController{ dismissEasyLoading(); cancelBlueConnetctToastTimer(); state.sureBtnState.value = 0; - if(state.ifCurrentScreen.value == true){ + if (state.ifCurrentScreen.value == true) { showBlueConnetctToast(); } } @@ -414,7 +446,8 @@ class UploadDataLogic extends BaseGetXController{ // 公共的获取密码列表 Future updataLockPasswordList(List token, int page) async { - final List? privateKey = await Storage.getStringList(saveBluePrivateKey); + final List? privateKey = + await Storage.getStringList(saveBluePrivateKey); final List getPrivateKeyList = changeStringListToIntList(privateKey!); final List? signKey = await Storage.getStringList(saveBlueSignKey); @@ -428,19 +461,19 @@ class UploadDataLogic extends BaseGetXController{ token: token, needAuthor: 1, signKey: signKeyDataList, - privateKey: getPrivateKeyList - ); + privateKey: getPrivateKeyList); } // 上传数据获取锁Card列表 Future getUpdataLockCardList() async { showEasyLoading(); - showBlueConnetctToastTimer(action: (){ + showBlueConnetctToastTimer(action: () { dismissEasyLoading(); state.indexCount.value = 0; state.sureBtnState.value = 0; }); - BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async { + BlueManage().blueSendData(BlueManage().connectDeviceName, + (BluetoothConnectionState connectionState) async { if (connectionState == BluetoothConnectionState.connected) { final List? token = await Storage.getStringList(saveBlueToken); final List getTokenList = changeStringListToIntList(token!); @@ -451,7 +484,7 @@ class UploadDataLogic extends BaseGetXController{ cancelBlueConnetctToastTimer(); state.sureBtnState.value = 0; state.indexCount.value = 0; - if(state.ifCurrentScreen.value == true){ + if (state.ifCurrentScreen.value == true) { showBlueConnetctToast(); } } @@ -460,7 +493,8 @@ class UploadDataLogic extends BaseGetXController{ // 公共的获取Card列表 Future updataLockCardList(List token, int page) async { - final List? privateKey = await Storage.getStringList(saveBluePrivateKey); + final List? privateKey = + await Storage.getStringList(saveBluePrivateKey); final List getPrivateKeyList = changeStringListToIntList(privateKey!); final List? signKey = await Storage.getStringList(saveBlueSignKey); @@ -474,19 +508,19 @@ class UploadDataLogic extends BaseGetXController{ token: token, needAuthor: 1, signKey: signKeyDataList, - privateKey: getPrivateKeyList - ); + privateKey: getPrivateKeyList); } // 上传数据获取锁指纹列表 Future getUpdataLockFingerprintList() async { showEasyLoading(); - showBlueConnetctToastTimer(action: (){ + showBlueConnetctToastTimer(action: () { dismissEasyLoading(); state.indexCount.value = 0; state.sureBtnState.value = 0; }); - BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async { + BlueManage().blueSendData(BlueManage().connectDeviceName, + (BluetoothConnectionState connectionState) async { if (connectionState == BluetoothConnectionState.connected) { final List? token = await Storage.getStringList(saveBlueToken); final List getTokenList = changeStringListToIntList(token!); @@ -497,7 +531,7 @@ class UploadDataLogic extends BaseGetXController{ cancelBlueConnetctToastTimer(); state.sureBtnState.value = 0; state.indexCount.value = 0; - if(state.ifCurrentScreen.value == true){ + if (state.ifCurrentScreen.value == true) { showBlueConnetctToast(); } } @@ -506,7 +540,8 @@ class UploadDataLogic extends BaseGetXController{ // 公共的获取指纹列表 Future updataLockFingerprintList(List token, int page) async { - final List? privateKey = await Storage.getStringList(saveBluePrivateKey); + final List? privateKey = + await Storage.getStringList(saveBluePrivateKey); final List getPrivateKeyList = changeStringListToIntList(privateKey!); final List? signKey = await Storage.getStringList(saveBlueSignKey); @@ -520,19 +555,19 @@ class UploadDataLogic extends BaseGetXController{ token: token, needAuthor: 1, signKey: signKeyDataList, - privateKey: getPrivateKeyList - ); + privateKey: getPrivateKeyList); } // 上传数据获取锁人脸列表 Future getUpdataLockFaceList() async { showEasyLoading(); - showBlueConnetctToastTimer(action: (){ + showBlueConnetctToastTimer(action: () { dismissEasyLoading(); state.indexCount.value = 0; state.sureBtnState.value = 0; }); - BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async { + BlueManage().blueSendData(BlueManage().connectDeviceName, + (BluetoothConnectionState connectionState) async { if (connectionState == BluetoothConnectionState.connected) { final List? token = await Storage.getStringList(saveBlueToken); final List getTokenList = changeStringListToIntList(token!); @@ -543,7 +578,7 @@ class UploadDataLogic extends BaseGetXController{ cancelBlueConnetctToastTimer(); state.sureBtnState.value = 0; state.indexCount.value = 0; - if(state.ifCurrentScreen.value == true){ + if (state.ifCurrentScreen.value == true) { showBlueConnetctToast(); } } @@ -552,7 +587,8 @@ class UploadDataLogic extends BaseGetXController{ // 公共的获取人脸列表 Future updataLockFaceList(List token, int page) async { - final List? privateKey = await Storage.getStringList(saveBluePrivateKey); + final List? privateKey = + await Storage.getStringList(saveBluePrivateKey); final List getPrivateKeyList = changeStringListToIntList(privateKey!); final List? signKey = await Storage.getStringList(saveBlueSignKey); @@ -566,20 +602,19 @@ class UploadDataLogic extends BaseGetXController{ token: token, needAuthor: 1, signKey: signKeyDataList, - privateKey: getPrivateKeyList - ); + privateKey: getPrivateKeyList); } - // 上传数据获取锁掌静脉列表 Future getUpdataLockPalmVeinList() async { showEasyLoading(); - showBlueConnetctToastTimer(action: (){ + showBlueConnetctToastTimer(action: () { dismissEasyLoading(); state.indexCount.value = 0; state.sureBtnState.value = 0; }); - BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async { + BlueManage().blueSendData(BlueManage().connectDeviceName, + (BluetoothConnectionState connectionState) async { if (connectionState == BluetoothConnectionState.connected) { final List? token = await Storage.getStringList(saveBlueToken); final List getTokenList = changeStringListToIntList(token!); @@ -590,7 +625,7 @@ class UploadDataLogic extends BaseGetXController{ cancelBlueConnetctToastTimer(); state.sureBtnState.value = 0; state.indexCount.value = 0; - if(state.ifCurrentScreen.value == true){ + if (state.ifCurrentScreen.value == true) { showBlueConnetctToast(); } } @@ -599,7 +634,8 @@ class UploadDataLogic extends BaseGetXController{ // 公共的获取掌静脉列表 Future updataLockPalmVeinList(List token, int page) async { - final List? privateKey = await Storage.getStringList(saveBluePrivateKey); + final List? privateKey = + await Storage.getStringList(saveBluePrivateKey); final List getPrivateKeyList = changeStringListToIntList(privateKey!); final List? signKey = await Storage.getStringList(saveBlueSignKey); @@ -613,30 +649,31 @@ class UploadDataLogic extends BaseGetXController{ token: token, needAuthor: 1, signKey: signKeyDataList, - privateKey: getPrivateKeyList - ); + privateKey: getPrivateKeyList); } // 上传数据获取锁遥控列表 Future getUpdataLockRemoteControlList() async { showEasyLoading(); - showBlueConnetctToastTimer(action: (){ + showBlueConnetctToastTimer(action: () { dismissEasyLoading(); state.indexCount.value = 0; state.sureBtnState.value = 0; }); - BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async { + BlueManage().blueSendData(BlueManage().connectDeviceName, + (BluetoothConnectionState connectionState) async { if (connectionState == BluetoothConnectionState.connected) { final List? token = await Storage.getStringList(saveBlueToken); final List getTokenList = changeStringListToIntList(token!); - updataLockRemoteControlList(getTokenList, state.uploadRemoteControlPage); + updataLockRemoteControlList( + getTokenList, state.uploadRemoteControlPage); } else if (connectionState == BluetoothConnectionState.disconnected) { dismissEasyLoading(); cancelBlueConnetctToastTimer(); state.sureBtnState.value = 0; state.indexCount.value = 0; - if(state.ifCurrentScreen.value == true){ + if (state.ifCurrentScreen.value == true) { showBlueConnetctToast(); } } @@ -645,7 +682,8 @@ class UploadDataLogic extends BaseGetXController{ // 公共的获取遥控列表 Future updataLockRemoteControlList(List token, int page) async { - final List? privateKey = await Storage.getStringList(saveBluePrivateKey); + final List? privateKey = + await Storage.getStringList(saveBluePrivateKey); final List getPrivateKeyList = changeStringListToIntList(privateKey!); final List? signKey = await Storage.getStringList(saveBlueSignKey); @@ -659,19 +697,19 @@ class UploadDataLogic extends BaseGetXController{ token: token, needAuthor: 1, signKey: signKeyDataList, - privateKey: getPrivateKeyList - ); + privateKey: getPrivateKeyList); } // 上传数据获取设置 Future getUpdataLockSet() async { showEasyLoading(); - showBlueConnetctToastTimer(action: (){ + showBlueConnetctToastTimer(action: () { dismissEasyLoading(); state.indexCount.value = 0; state.sureBtnState.value = 0; }); - BlueManage().blueSendData(BlueManage().connectDeviceName, (BluetoothConnectionState connectionState) async { + BlueManage().blueSendData(BlueManage().connectDeviceName, + (BluetoothConnectionState connectionState) async { if (connectionState == BluetoothConnectionState.connected) { final List? token = await Storage.getStringList(saveBlueToken); final List getTokenList = changeStringListToIntList(token!); @@ -682,7 +720,7 @@ class UploadDataLogic extends BaseGetXController{ cancelBlueConnetctToastTimer(); state.sureBtnState.value = 0; state.indexCount.value = 0; - if(state.ifCurrentScreen.value == true){ + if (state.ifCurrentScreen.value == true) { showBlueConnetctToast(); } } @@ -691,7 +729,8 @@ class UploadDataLogic extends BaseGetXController{ // 公共的上传锁设置 Future updataLockSet(List token) async { - final List? privateKey = await Storage.getStringList(saveBluePrivateKey); + final List? privateKey = + await Storage.getStringList(saveBluePrivateKey); final List getPrivateKeyList = changeStringListToIntList(privateKey!); final List? signKey = await Storage.getStringList(saveBlueSignKey); @@ -703,32 +742,29 @@ class UploadDataLogic extends BaseGetXController{ token: token, needAuthor: 1, signKey: signKeyDataList, - privateKey: getPrivateKeyList - ); + privateKey: getPrivateKeyList); } // 锁数据上传服务器 - Future _lockDataUpload({ - required int uploadType, - required int recordType, - required List records - }) async{ + Future _lockDataUpload( + {required int uploadType, + required int recordType, + required List records}) async { final LoginEntity entity = await ApiRepository.to.lockDataUpload( lockId: CommonDataManage().currentKeyInfo.lockId!, - uploadType:uploadType, + uploadType: uploadType, recordType: recordType, - records:records, - isUnShowLoading: false - ); - if(entity.errorCode!.codeIsSuccessful){ - if(uploadType == 1){ + records: records, + isUnShowLoading: false); + if (entity.errorCode!.codeIsSuccessful) { + if (uploadType == 1) { // 1设置 state.indexCount.value = 0; state.sureBtnState.value = 0; showToast('上传成功'.tr); - }else{ + } else { // 2开门方式 - switch(recordType){ + switch (recordType) { // case 1: // // 电子钥匙 // @@ -761,13 +797,38 @@ class UploadDataLogic extends BaseGetXController{ break; } } - }else{ + } else { state.indexCount.value = 0; state.sureBtnState.value = 0; dismissEasyLoading(); } } + // 上传数据成功后的回调 + void onUploadSuccess() { + // 发送事件通知指纹列表刷新 + eventBus.fire(OtherTypeRefreshListEvent()); + // 返回上一页 + Get.back(); + } + + // 在上传数据成功的地方调用 + Future uploadData() async { + try { + // ... existing upload code ... + + // 假设这是上传成功的标志 + bool uploadSuccess = true; // 这里需要根据实际的上传结果来设置 + + if (uploadSuccess) { + onUploadSuccess(); + } + } catch (e) { + // 处理错误 + print('Upload failed: $e'); + } + } + @override void onReady() { super.onReady(); @@ -783,5 +844,4 @@ class UploadDataLogic extends BaseGetXController{ _replySubscription.cancel(); } - -} \ No newline at end of file +}