From 9678ff9e9053faecbb0ed1c0d6c5c882ad2a389c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AD=8F=E5=B0=91=E9=98=B3?= <786612630@qq.com> Date: Fri, 19 Jan 2024 18:15:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=80=83=E5=8B=A4=E6=A8=A1?= =?UTF-8?q?=E5=9D=97bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/icon_checkInRankingListTop.png | Bin 9686 -> 0 bytes .../icon_lockDetail_checkInRanking_cd.png | Bin 0 -> 5185 bytes .../icon_lockDetail_checkInRanking_qf.png | Bin 0 -> 11558 bytes .../icon_lockDetail_checkInRanking_zd.png | Bin 0 -> 10819 bytes .../checkingInListMonth_entity.dart | 2 +- .../checkingInList/checkingInList_page.dart | 36 +++++- .../checkingInSet/checkingInSet_logic.dart | 14 +++ .../checkingInSet/checkingInSet_page.dart | 31 ++++- .../checkingInAddStaff_page.dart | 12 +- .../checkingInStaffList_entity.dart | 2 +- .../automaticBlocking_logic.dart | 116 ++++++++--------- .../burglarAlarm/burglarAlarm_logic.dart | 108 ++++++++-------- .../lcokSet/lockSet/lockSet_logic.dart | 60 ++++----- .../lockSoundSet/lockSoundSet_logic.dart | 118 +++++++++--------- .../lcokSet/motorPower/motorPower_logic.dart | 58 ++++----- .../normallyOpenMode_logic.dart | 118 +++++++++--------- .../openDoorDirection_logic.dart | 108 ++++++++-------- .../remoteUnlocking_logic.dart | 108 ++++++++-------- .../resetButton/resetButton_logic.dart | 108 ++++++++-------- .../lockDetail/lockDetail_logic.dart | 3 +- .../mine/addLock/saveLock/saveLock_logic.dart | 2 +- star_lock/lib/network/api.dart | 7 +- star_lock/lib/network/api_provider.dart | 8 ++ star_lock/lib/network/api_repository.dart | 7 ++ 24 files changed, 554 insertions(+), 472 deletions(-) delete mode 100644 star_lock/images/main/icon_checkInRankingListTop.png create mode 100644 star_lock/images/main/icon_lockDetail_checkInRanking_cd.png create mode 100644 star_lock/images/main/icon_lockDetail_checkInRanking_qf.png create mode 100644 star_lock/images/main/icon_lockDetail_checkInRanking_zd.png diff --git a/star_lock/images/main/icon_checkInRankingListTop.png b/star_lock/images/main/icon_checkInRankingListTop.png deleted file mode 100644 index 0a6070e022b60a13dccd7c4d4b213e98ecc3d325..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9686 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 NWF!>D>%JO?{14F+Iv@Z5 diff --git a/star_lock/images/main/icon_lockDetail_checkInRanking_cd.png b/star_lock/images/main/icon_lockDetail_checkInRanking_cd.png new file mode 100644 index 0000000000000000000000000000000000000000..f70a3ddd3b077d9a0df2d981fc0f1e306bed3fe2 GIT binary patch literal 5185 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 literal 0 HcmV?d00001 diff --git a/star_lock/images/main/icon_lockDetail_checkInRanking_zd.png b/star_lock/images/main/icon_lockDetail_checkInRanking_zd.png new file mode 100644 index 0000000000000000000000000000000000000000..0b23413d5facadedafd922c5e9c8dc30c6dfea7a GIT binary patch literal 10819 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 Nl$g9|jj%!B{{yV31Wy0} literal 0 HcmV?d00001 diff --git a/star_lock/lib/main/lockDetail/checkingIn/checkingInList/checkingInListMonth_entity.dart b/star_lock/lib/main/lockDetail/checkingIn/checkingInList/checkingInListMonth_entity.dart index 859c5002..ec6fc9ae 100644 --- a/star_lock/lib/main/lockDetail/checkingIn/checkingInList/checkingInListMonth_entity.dart +++ b/star_lock/lib/main/lockDetail/checkingIn/checkingInList/checkingInListMonth_entity.dart @@ -37,7 +37,7 @@ class AttendanceRecordMonthList { String? staffName; int? staffId; int? attendanceType; - String? countryCode; + int? countryCode; int? openingTimeStart; String? attendanceWay; int? avgTime; diff --git a/star_lock/lib/main/lockDetail/checkingIn/checkingInList/checkingInList_page.dart b/star_lock/lib/main/lockDetail/checkingIn/checkingInList/checkingInList_page.dart index 8cea4db3..9f3a965f 100644 --- a/star_lock/lib/main/lockDetail/checkingIn/checkingInList/checkingInList_page.dart +++ b/star_lock/lib/main/lockDetail/checkingIn/checkingInList/checkingInList_page.dart @@ -71,9 +71,19 @@ class _CheckingInListPageState extends State { child: Column( children: [ SizedBox(height: 30.h), - Image.asset('images/main/icon_checkInRankingListTop.png', width: 120.w, height: 120.w), + Obx(() => Container( + width: 110.w, + height: 110.w, + padding: EdgeInsets.all(10.w), + decoration: BoxDecoration( + color: AppColors.mainColor, + borderRadius: BorderRadius.circular(60.w), + ), + child: Image.asset(getTopImg(), width: 120.w, height: 120.w) + ) + ), SizedBox(height: 10.h), - Text(TranslationLoader.lanKeys!.noAttendanceRecord!.tr, style: TextStyle(fontSize: 24.sp)), + Obx(() => Text(getTopTitle(), style: TextStyle(color: Colors.black, fontSize: 24.sp))), SizedBox(height: 30.h), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, @@ -295,7 +305,7 @@ class _CheckingInListPageState extends State { child: Row( children: [ SizedBox(width: 30.w,), - Text("1", style: TextStyle(fontSize: 20.sp),), + Text("${index+1}", style: TextStyle(fontSize: 20.sp),), SizedBox(width: 20.w,), Image.asset('images/controls_user.png', width: 40.w, height: 40.w,), // Container( @@ -387,4 +397,24 @@ class _CheckingInListPageState extends State { }); }); } + + String getTopImg(){ + if(state.listType.value == "1"){ + return "images/main/icon_lockDetail_checkInRanking_zd.png"; + }else if(state.listType.value == "2"){ + return "images/main/icon_lockDetail_checkInRanking_cd.png"; + }else{ + return "images/main/icon_lockDetail_checkInRanking_qf.png"; + } + } + + String getTopTitle(){ + if(state.listType.value == "1"){ + return "无考勤记录"; + }else if(state.listType.value == "2"){ + return "大家干劲十足"; + }else{ + return "工作时长未出炉"; + } + } } diff --git a/star_lock/lib/main/lockDetail/checkingIn/checkingInSet/checkingInSet_logic.dart b/star_lock/lib/main/lockDetail/checkingIn/checkingInSet/checkingInSet_logic.dart index 89aad458..8d93cd34 100644 --- a/star_lock/lib/main/lockDetail/checkingIn/checkingInSet/checkingInSet_logic.dart +++ b/star_lock/lib/main/lockDetail/checkingIn/checkingInSet/checkingInSet_logic.dart @@ -1,7 +1,10 @@ +import 'package:get/get.dart'; + import '../../../../network/api_repository.dart'; import '../../../../tools/baseGetXController.dart'; import '../../../../tools/dateTool.dart'; +import '../../../../tools/eventBusEventManage.dart'; import 'checkingInSet_state.dart'; class CheckingInSetLogic extends BaseGetXController{ @@ -57,6 +60,17 @@ class CheckingInSetLogic extends BaseGetXController{ } } + // 删除公司 + void deletCompanyData() async{ + var entity = await ApiRepository.to.deletCompanyData( + companyId:state.checkingInSetInfo.value.companyId!, + ); + if(entity.errorCode!.codeIsSuccessful){ + eventBus.fire(LockSetChangeSetRefreshLockDetailWithType(0, "0")); + Get.close(2); + } + } + // late StreamSubscription _teamEvent; // void _initLoadDataAction() { // _teamEvent = eventBus.on().listen((event) { diff --git a/star_lock/lib/main/lockDetail/checkingIn/checkingInSet/checkingInSet_page.dart b/star_lock/lib/main/lockDetail/checkingIn/checkingInSet/checkingInSet_page.dart index 17d89e9f..f80251fe 100644 --- a/star_lock/lib/main/lockDetail/checkingIn/checkingInSet/checkingInSet_page.dart +++ b/star_lock/lib/main/lockDetail/checkingIn/checkingInSet/checkingInSet_page.dart @@ -1,3 +1,4 @@ +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -122,7 +123,9 @@ class _CheckingInSetPageState extends State { isDelete: true, margin: EdgeInsets.only(left: 30.w, right: 30.w, top: 20.w), padding: EdgeInsets.only(top: 20.w, bottom: 20.w), - onClick: () {}), + onClick: () { + showDeletCompanyAlertDialog(context); + }), ], ), ); @@ -196,4 +199,30 @@ class _CheckingInSetPageState extends State { ); } + void showDeletCompanyAlertDialog(context) { + showCupertinoDialog( + context: context, + builder: (context) { + return CupertinoAlertDialog( + title: const Text("提示"), + content: const Text('是否删除?'), + actions: [ + CupertinoDialogAction( + child: Text(TranslationLoader.lanKeys!.cancel!.tr), + onPressed: () { + Get.back(); + }, + ), + CupertinoDialogAction( + child: Text(TranslationLoader.lanKeys!.sure!.tr), + onPressed: () { + Get.back(); + logic.deletCompanyData(); + }, + ), + ], + ); + }, + ); + } } diff --git a/star_lock/lib/main/lockDetail/checkingIn/checkingInStaff/checkingInSetAddStaff/checkingInAddStaff_page.dart b/star_lock/lib/main/lockDetail/checkingIn/checkingInStaff/checkingInSetAddStaff/checkingInAddStaff_page.dart index de196a7d..a7b4cdf4 100644 --- a/star_lock/lib/main/lockDetail/checkingIn/checkingInStaff/checkingInSetAddStaff/checkingInAddStaff_page.dart +++ b/star_lock/lib/main/lockDetail/checkingIn/checkingInStaff/checkingInSetAddStaff/checkingInAddStaff_page.dart @@ -125,8 +125,7 @@ class _CheckingInAddStaffPageState extends State { )), // 当选择密码、卡、指纹时显示 Obx(() => Visibility( - visible: (state.seletPrintingMethodType.value != "1" && - state.appUnHaveAccount.value) + visible: (state.seletPrintingMethodType.value != "1" && state.appUnHaveAccount.value) ? true : false, child: CommonItem( @@ -135,13 +134,10 @@ class _CheckingInAddStaffPageState extends State { isHaveRightWidget: true, rightWidget: Row( children: [ - Obx(() => Text(state.getDataPassword.value, - style: TextStyle(fontSize: 24.sp))), + Obx(() => Text(state.getDataPassword.value, style: TextStyle(fontSize: 24.sp))), + SizedBox(width: 30.w), SizedBox( - width: 30.w, - ), - SizedBox( - width: 130.w, + width: 150.w, height: 40.h, child: ElevatedButton( style: ElevatedButton.styleFrom( diff --git a/star_lock/lib/main/lockDetail/checkingIn/checkingInStaff/checkingInSetStaffList/checkingInStaffList_entity.dart b/star_lock/lib/main/lockDetail/checkingIn/checkingInStaff/checkingInSetStaffList/checkingInStaffList_entity.dart index d52c0140..d34af350 100644 --- a/star_lock/lib/main/lockDetail/checkingIn/checkingInStaff/checkingInSetStaffList/checkingInStaffList_entity.dart +++ b/star_lock/lib/main/lockDetail/checkingIn/checkingInStaff/checkingInSetStaffList/checkingInStaffList_entity.dart @@ -36,7 +36,7 @@ class CheckingInAddStaffListItemEntity { String? staffName; int? staffId; int? attendanceType; - String? countryCode; + int? countryCode; String? attendanceWay; CheckingInAddStaffListItemEntity( diff --git a/star_lock/lib/main/lockDetail/lcokSet/automaticBlocking/automaticBlocking_logic.dart b/star_lock/lib/main/lockDetail/lcokSet/automaticBlocking/automaticBlocking_logic.dart index 8bd033a7..d84e3fa0 100644 --- a/star_lock/lib/main/lockDetail/lcokSet/automaticBlocking/automaticBlocking_logic.dart +++ b/star_lock/lib/main/lockDetail/lcokSet/automaticBlocking/automaticBlocking_logic.dart @@ -59,43 +59,43 @@ class AutomaticBlockingLogic extends BaseGetXController{ } // 读取支持功能(带参数) - if(reply is ReadSupportFunctionsWithParametersReply) { - _readSupportFunctionsWithParametersReply(reply); - } + // if(reply is ReadSupportFunctionsWithParametersReply) { + // _readSupportFunctionsWithParametersReply(reply); + // } }); } // 读取支持功能带参数数据解析 - Future _readSupportFunctionsWithParametersReply(Reply reply) async { - int status = reply.data[2]; - switch(status){ - case 0x00: - //成功 - print("${reply.commandType}数据解析成功"); - state.autoLockTime.value = reply.data[7].toString(); - break; - case 0x06: - //无权限 - print("${reply.commandType}需要鉴权"); - - break; - case 0x07: - //无权限 - print("${reply.commandType}用户无权限"); - - break; - case 0x09: - // 权限校验错误 - print("${reply.commandType}权限校验错误"); - - break; - default: - //失败 - print("${reply.commandType}失败"); - - break; - } - } + // Future _readSupportFunctionsWithParametersReply(Reply reply) async { + // int status = reply.data[2]; + // switch(status){ + // case 0x00: + // //成功 + // print("${reply.commandType}数据解析成功"); + // state.autoLockTime.value = reply.data[7].toString(); + // break; + // case 0x06: + // //无权限 + // print("${reply.commandType}需要鉴权"); + // + // break; + // case 0x07: + // //无权限 + // print("${reply.commandType}用户无权限"); + // + // break; + // case 0x09: + // // 权限校验错误 + // print("${reply.commandType}权限校验错误"); + // + // break; + // default: + // //失败 + // print("${reply.commandType}失败"); + // + // break; + // } + // } // 设置自动落锁数据解析 Future _replySetSupportFunctionsWithParameters(Reply reply) async { @@ -133,30 +133,30 @@ class AutomaticBlockingLogic extends BaseGetXController{ } // 读取支持功能-带参数 - Future _readSupportFunctionsWithParameters() async { - BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState connectionState) async { - if (connectionState == DeviceConnectionState.connected) { - var privateKey = await Storage.getStringList(saveBluePrivateKey); - List getPrivateKeyList = changeStringListToIntList(privateKey!); - - var token = await Storage.getStringList(saveBlueToken); - List getTokenList = changeStringListToIntList(token!); - - var publicKey = await Storage.getStringList(saveBluePublicKey); - List getPublicKeyList = changeStringListToIntList(publicKey!); - - IoSenderManage.readSupportFunctionsWithParametersCommand( - keyID: state.lockSetInfoData.value.lockBasicInfo!.keyId.toString(), - userID: await Storage.getUid(), - featureBit: 29, - token: getTokenList, - needAuthor: 1, - publicKey: getPublicKeyList, - privateKey: getPrivateKeyList - ); - } - }); - } + // Future _readSupportFunctionsWithParameters() async { + // BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState connectionState) async { + // if (connectionState == DeviceConnectionState.connected) { + // var privateKey = await Storage.getStringList(saveBluePrivateKey); + // List getPrivateKeyList = changeStringListToIntList(privateKey!); + // + // var token = await Storage.getStringList(saveBlueToken); + // List getTokenList = changeStringListToIntList(token!); + // + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List getPublicKeyList = changeStringListToIntList(publicKey!); + // + // IoSenderManage.readSupportFunctionsWithParametersCommand( + // keyID: state.lockSetInfoData.value.lockBasicInfo!.keyId.toString(), + // userID: await Storage.getUid(), + // featureBit: 29, + // token: getTokenList, + // needAuthor: 1, + // publicKey: getPublicKeyList, + // privateKey: getPrivateKeyList + // ); + // } + // }); + // } // 设置支持功能(带参数) Future sendAutoLock() async { @@ -228,7 +228,7 @@ class AutomaticBlockingLogic extends BaseGetXController{ super.onInit(); print("onInit()"); - _readSupportFunctionsWithParameters(); + // _readSupportFunctionsWithParameters(); } @override diff --git a/star_lock/lib/main/lockDetail/lcokSet/burglarAlarm/burglarAlarm_logic.dart b/star_lock/lib/main/lockDetail/lcokSet/burglarAlarm/burglarAlarm_logic.dart index 9f0a0179..e312ab26 100644 --- a/star_lock/lib/main/lockDetail/lcokSet/burglarAlarm/burglarAlarm_logic.dart +++ b/star_lock/lib/main/lockDetail/lcokSet/burglarAlarm/burglarAlarm_logic.dart @@ -44,39 +44,39 @@ class BurglarAlarmLogic extends BaseGetXController{ } // 读取支持功能(带参数) - if(reply is ReadSupportFunctionsNoParametersReply) { - _readSupportFunctionsWithParametersReply(reply); - } + // if(reply is ReadSupportFunctionsNoParametersReply) { + // _readSupportFunctionsWithParametersReply(reply); + // } }); } // 读取支持功能带参数数据解析 - Future _readSupportFunctionsWithParametersReply(Reply reply) async { - int status = reply.data[2]; - switch(status){ - case 0x00: - //成功 - print("${reply.commandType}数据解析成功"); - state.burglarAlarmEnable.value = reply.data[6]; - break; - case 0x06: - //无权限 - print("${reply.commandType}需要鉴权"); - break; - case 0x07: - //无权限 - print("${reply.commandType}用户无权限"); - break; - case 0x09: - // 权限校验错误 - print("${reply.commandType}权限校验错误"); - break; - default: - //失败 - print("${reply.commandType}失败"); - break; - } - } + // Future _readSupportFunctionsWithParametersReply(Reply reply) async { + // int status = reply.data[2]; + // switch(status){ + // case 0x00: + // //成功 + // print("${reply.commandType}数据解析成功"); + // state.burglarAlarmEnable.value = reply.data[6]; + // break; + // case 0x06: + // //无权限 + // print("${reply.commandType}需要鉴权"); + // break; + // case 0x07: + // //无权限 + // print("${reply.commandType}用户无权限"); + // break; + // case 0x09: + // // 权限校验错误 + // print("${reply.commandType}权限校验错误"); + // break; + // default: + // //失败 + // print("${reply.commandType}失败"); + // break; + // } + // } // 设置自动落锁数据解析 Future _replySetSupportFunctionsWithParameters(Reply reply) async { @@ -114,30 +114,30 @@ class BurglarAlarmLogic extends BaseGetXController{ } // 读取支持功能-带参数 - Future _readSupportFunctionsNoParameters() async { - BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState connectionState) async { - if (connectionState == DeviceConnectionState.connected) { - var privateKey = await Storage.getStringList(saveBluePrivateKey); - List getPrivateKeyList = changeStringListToIntList(privateKey!); - - var token = await Storage.getStringList(saveBlueToken); - List getTokenList = changeStringListToIntList(token!); - - var publicKey = await Storage.getStringList(saveBluePublicKey); - List getPublicKeyList = changeStringListToIntList(publicKey!); - - IoSenderManage.readSupportFunctionsNoParametersCommand( - keyID: state.lockSetInfoData.value.lockBasicInfo!.keyId.toString(), - userID: await Storage.getUid(), - featureBit: 30, - token: getTokenList, - needAuthor: 1, - publicKey: getPublicKeyList, - privateKey: getPrivateKeyList - ); - } - }); - } + // Future _readSupportFunctionsNoParameters() async { + // BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState connectionState) async { + // if (connectionState == DeviceConnectionState.connected) { + // var privateKey = await Storage.getStringList(saveBluePrivateKey); + // List getPrivateKeyList = changeStringListToIntList(privateKey!); + // + // var token = await Storage.getStringList(saveBlueToken); + // List getTokenList = changeStringListToIntList(token!); + // + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List getPublicKeyList = changeStringListToIntList(publicKey!); + // + // IoSenderManage.readSupportFunctionsNoParametersCommand( + // keyID: state.lockSetInfoData.value.lockBasicInfo!.keyId.toString(), + // userID: await Storage.getUid(), + // featureBit: 30, + // token: getTokenList, + // needAuthor: 1, + // publicKey: getPublicKeyList, + // privateKey: getPrivateKeyList + // ); + // } + // }); + // } // 设置支持功能(带参数) Future sendBurglarAlarm() async { @@ -197,7 +197,7 @@ class BurglarAlarmLogic extends BaseGetXController{ super.onInit(); print("onInit()"); - _readSupportFunctionsNoParameters(); + // _readSupportFunctionsNoParameters(); } @override diff --git a/star_lock/lib/main/lockDetail/lcokSet/lockSet/lockSet_logic.dart b/star_lock/lib/main/lockDetail/lcokSet/lockSet/lockSet_logic.dart index e7cea7c2..1e911a59 100644 --- a/star_lock/lib/main/lockDetail/lcokSet/lockSet/lockSet_logic.dart +++ b/star_lock/lib/main/lockDetail/lcokSet/lockSet/lockSet_logic.dart @@ -51,9 +51,9 @@ class LockSetLogic extends BaseGetXController { } // 读取支持功能(不带参数) - if ((reply is ReadSupportFunctionsNoParametersReply) && (state.settingUpSupportFeatures == 56)) { - _readSupportFunctionsWithParametersReply(reply); - } + // if ((reply is ReadSupportFunctionsNoParametersReply) && (state.settingUpSupportFeatures == 56)) { + // _readSupportFunctionsWithParametersReply(reply); + // } }); } @@ -176,33 +176,33 @@ class LockSetLogic extends BaseGetXController { } // 读取支持功能带参数数据解析 - Future _readSupportFunctionsWithParametersReply(Reply reply) async { - int status = reply.data[2]; - switch (status) { - case 0x00: - //成功 - print("${reply.commandType}数据解析成功"); - state.isOpenBlueBroadcast.value = reply.data[6]; - print("isOpenBlueBroadcast:${state.isOpenBlueBroadcast.value}"); - break; - case 0x06: - //无权限 - print("${reply.commandType}需要鉴权"); - break; - case 0x07: - //无权限 - print("${reply.commandType}用户无权限"); - break; - case 0x09: - // 权限校验错误 - print("${reply.commandType}权限校验错误"); - break; - default: - //失败 - print("${reply.commandType}失败"); - break; - } - } + // Future _readSupportFunctionsWithParametersReply(Reply reply) async { + // int status = reply.data[2]; + // switch (status) { + // case 0x00: + // //成功 + // print("${reply.commandType}数据解析成功"); + // state.isOpenBlueBroadcast.value = reply.data[6]; + // print("isOpenBlueBroadcast:${state.isOpenBlueBroadcast.value}"); + // break; + // case 0x06: + // //无权限 + // print("${reply.commandType}需要鉴权"); + // break; + // case 0x07: + // //无权限 + // print("${reply.commandType}用户无权限"); + // break; + // case 0x09: + // // 权限校验错误 + // print("${reply.commandType}权限校验错误"); + // break; + // default: + // //失败 + // print("${reply.commandType}失败"); + // break; + // } + // } // 锁设置数据解析 Future _replySetSupportFunctionsWithParameters(Reply reply) async { diff --git a/star_lock/lib/main/lockDetail/lcokSet/lockSoundSet/lockSoundSet_logic.dart b/star_lock/lib/main/lockDetail/lcokSet/lockSoundSet/lockSoundSet_logic.dart index 344dc8b4..0784dcc2 100644 --- a/star_lock/lib/main/lockDetail/lcokSet/lockSoundSet/lockSoundSet_logic.dart +++ b/star_lock/lib/main/lockDetail/lcokSet/lockSoundSet/lockSoundSet_logic.dart @@ -45,44 +45,44 @@ class LockSoundSetLogic extends BaseGetXController { } // 读取支持功能(带参数) - if(reply is ReadSupportFunctionsWithParametersReply) { - _readSupportFunctionsWithParametersReply(reply); - } + // if(reply is ReadSupportFunctionsWithParametersReply) { + // _readSupportFunctionsWithParametersReply(reply); + // } }); } // 读取支持功能带参数数据解析 - Future _readSupportFunctionsWithParametersReply(Reply reply) async { - int status = reply.data[2]; - switch(status){ - case 0x00: - //成功 - print("${reply.commandType}数据解析成功"); - // state.autoLockTime.value = reply.data[7].toString(); - - break; - case 0x06: - //无权限 - print("${reply.commandType}需要鉴权"); - - break; - case 0x07: - //无权限 - print("${reply.commandType}用户无权限"); - - break; - case 0x09: - // 权限校验错误 - print("${reply.commandType}权限校验错误"); - - break; - default: - //失败 - print("${reply.commandType}失败"); - - break; - } - } + // Future _readSupportFunctionsWithParametersReply(Reply reply) async { + // int status = reply.data[2]; + // switch(status){ + // case 0x00: + // //成功 + // print("${reply.commandType}数据解析成功"); + // // state.autoLockTime.value = reply.data[7].toString(); + // + // break; + // case 0x06: + // //无权限 + // print("${reply.commandType}需要鉴权"); + // + // break; + // case 0x07: + // //无权限 + // print("${reply.commandType}用户无权限"); + // + // break; + // case 0x09: + // // 权限校验错误 + // print("${reply.commandType}权限校验错误"); + // + // break; + // default: + // //失败 + // print("${reply.commandType}失败"); + // + // break; + // } + // } // 设置支持功能解析 Future _replySetSupportFunctionsWithParameters(Reply reply) async { @@ -120,30 +120,30 @@ class LockSoundSetLogic extends BaseGetXController { } // 读取支持功能-带参数 - Future _readSupportFunctionsWithParameters() async { - BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState connectionState) async { - if (connectionState == DeviceConnectionState.connected) { - var privateKey = await Storage.getStringList(saveBluePrivateKey); - List getPrivateKeyList = changeStringListToIntList(privateKey!); - - var token = await Storage.getStringList(saveBlueToken); - List getTokenList = changeStringListToIntList(token!); - - var publicKey = await Storage.getStringList(saveBluePublicKey); - List getPublicKeyList = changeStringListToIntList(publicKey!); - - IoSenderManage.readSupportFunctionsWithParametersCommand( - keyID: state.lockSetInfoData.value.lockBasicInfo!.keyId.toString(), - userID: await Storage.getUid(), - featureBit: 33, - token: getTokenList, - needAuthor: 1, - publicKey: getPublicKeyList, - privateKey: getPrivateKeyList - ); - } - }); - } + // Future _readSupportFunctionsWithParameters() async { + // BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState connectionState) async { + // if (connectionState == DeviceConnectionState.connected) { + // var privateKey = await Storage.getStringList(saveBluePrivateKey); + // List getPrivateKeyList = changeStringListToIntList(privateKey!); + // + // var token = await Storage.getStringList(saveBlueToken); + // List getTokenList = changeStringListToIntList(token!); + // + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List getPublicKeyList = changeStringListToIntList(publicKey!); + // + // IoSenderManage.readSupportFunctionsWithParametersCommand( + // keyID: state.lockSetInfoData.value.lockBasicInfo!.keyId.toString(), + // userID: await Storage.getUid(), + // featureBit: 33, + // token: getTokenList, + // needAuthor: 1, + // publicKey: getPublicKeyList, + // privateKey: getPrivateKeyList + // ); + // } + // }); + // } // 设置支持功能(带参数) Future sendLockSound() async { @@ -212,7 +212,7 @@ class LockSoundSetLogic extends BaseGetXController { super.onInit(); print("onInit()"); - _readSupportFunctionsWithParameters(); + // _readSupportFunctionsWithParameters(); } @override diff --git a/star_lock/lib/main/lockDetail/lcokSet/motorPower/motorPower_logic.dart b/star_lock/lib/main/lockDetail/lcokSet/motorPower/motorPower_logic.dart index acb35164..8556b6f8 100644 --- a/star_lock/lib/main/lockDetail/lcokSet/motorPower/motorPower_logic.dart +++ b/star_lock/lib/main/lockDetail/lcokSet/motorPower/motorPower_logic.dart @@ -42,39 +42,39 @@ class MotorPowerLogic extends BaseGetXController { } // 读取支持功能(带参数) - if(reply is ReadSupportFunctionsNoParametersReply) { - _readSupportFunctionsWithParametersReply(reply); - } + // if(reply is ReadSupportFunctionsNoParametersReply) { + // _readSupportFunctionsWithParametersReply(reply); + // } }); } // 读取支持功能带参数数据解析 - Future _readSupportFunctionsWithParametersReply(Reply reply) async { - int status = reply.data[2]; - switch(status){ - case 0x00: - //成功 - print("${reply.commandType}数据解析成功"); - state.motorTorsion.value = reply.data[6]; - break; - case 0x06: - //无权限 - print("${reply.commandType}需要鉴权"); - break; - case 0x07: - //无权限 - print("${reply.commandType}用户无权限"); - break; - case 0x09: - // 权限校验错误 - print("${reply.commandType}权限校验错误"); - break; - default: - //失败 - print("${reply.commandType}失败"); - break; - } - } + // Future _readSupportFunctionsWithParametersReply(Reply reply) async { + // int status = reply.data[2]; + // switch(status){ + // case 0x00: + // //成功 + // print("${reply.commandType}数据解析成功"); + // state.motorTorsion.value = reply.data[6]; + // break; + // case 0x06: + // //无权限 + // print("${reply.commandType}需要鉴权"); + // break; + // case 0x07: + // //无权限 + // print("${reply.commandType}用户无权限"); + // break; + // case 0x09: + // // 权限校验错误 + // print("${reply.commandType}权限校验错误"); + // break; + // default: + // //失败 + // print("${reply.commandType}失败"); + // break; + // } + // } // 设置自动落锁数据解析 Future _replySetSupportFunctionsWithParameters(Reply reply) async { diff --git a/star_lock/lib/main/lockDetail/lcokSet/normallyOpenMode/normallyOpenMode_logic.dart b/star_lock/lib/main/lockDetail/lcokSet/normallyOpenMode/normallyOpenMode_logic.dart index 75ab6c3f..adb18730 100644 --- a/star_lock/lib/main/lockDetail/lcokSet/normallyOpenMode/normallyOpenMode_logic.dart +++ b/star_lock/lib/main/lockDetail/lcokSet/normallyOpenMode/normallyOpenMode_logic.dart @@ -65,44 +65,44 @@ class NormallyOpenModeLogic extends BaseGetXController{ } // 读取支持功能(带参数) - if(reply is ReadSupportFunctionsWithParametersReply) { - _readSupportFunctionsWithParametersReply(reply); - } + // if(reply is ReadSupportFunctionsWithParametersReply) { + // _readSupportFunctionsWithParametersReply(reply); + // } }); } // 读取支持功能带参数数据解析 - Future _readSupportFunctionsWithParametersReply(Reply reply) async { - int status = reply.data[2]; - switch(status){ - case 0x00: - //成功 - print("${reply.commandType}数据解析成功"); - state.isOpenNormallyOpenMode.value = reply.data[4] == 0 ? false : true; - - break; - case 0x06: - //无权限 - print("${reply.commandType}需要鉴权"); - - break; - case 0x07: - //无权限 - print("${reply.commandType}用户无权限"); - - break; - case 0x09: - // 权限校验错误 - print("${reply.commandType}权限校验错误"); - - break; - default: - //失败 - print("${reply.commandType}失败"); - - break; - } - } + // Future _readSupportFunctionsWithParametersReply(Reply reply) async { + // int status = reply.data[2]; + // switch(status){ + // case 0x00: + // //成功 + // print("${reply.commandType}数据解析成功"); + // state.isOpenNormallyOpenMode.value = reply.data[4] == 0 ? false : true; + // + // break; + // case 0x06: + // //无权限 + // print("${reply.commandType}需要鉴权"); + // + // break; + // case 0x07: + // //无权限 + // print("${reply.commandType}用户无权限"); + // + // break; + // case 0x09: + // // 权限校验错误 + // print("${reply.commandType}权限校验错误"); + // + // break; + // default: + // //失败 + // print("${reply.commandType}失败"); + // + // break; + // } + // } // 设置自动落锁数据解析 Future _replySetSupportFunctionsWithParameters(Reply reply) async { @@ -140,30 +140,30 @@ class NormallyOpenModeLogic extends BaseGetXController{ } // 读取支持功能-带参数 - Future _readSupportFunctionsWithParameters() async { - BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState connectionState) async { - if (connectionState == DeviceConnectionState.connected) { - var privateKey = await Storage.getStringList(saveBluePrivateKey); - List getPrivateKeyList = changeStringListToIntList(privateKey!); - - var token = await Storage.getStringList(saveBlueToken); - List getTokenList = changeStringListToIntList(token!); - - var publicKey = await Storage.getStringList(saveBluePublicKey); - List getPublicKeyList = changeStringListToIntList(publicKey!); - - IoSenderManage.readSupportFunctionsWithParametersCommand( - keyID: state.lockSetInfoData.value.lockBasicInfo!.keyId.toString(), - userID: await Storage.getUid(), - featureBit: 50, - token: getTokenList, - needAuthor: 1, - publicKey: getPublicKeyList, - privateKey: getPrivateKeyList - ); - } - }); - } + // Future _readSupportFunctionsWithParameters() async { + // BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState connectionState) async { + // if (connectionState == DeviceConnectionState.connected) { + // var privateKey = await Storage.getStringList(saveBluePrivateKey); + // List getPrivateKeyList = changeStringListToIntList(privateKey!); + // + // var token = await Storage.getStringList(saveBlueToken); + // List getTokenList = changeStringListToIntList(token!); + // + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List getPublicKeyList = changeStringListToIntList(publicKey!); + // + // IoSenderManage.readSupportFunctionsWithParametersCommand( + // keyID: state.lockSetInfoData.value.lockBasicInfo!.keyId.toString(), + // userID: await Storage.getUid(), + // featureBit: 50, + // token: getTokenList, + // needAuthor: 1, + // publicKey: getPublicKeyList, + // privateKey: getPrivateKeyList + // ); + // } + // }); + // } // 设置支持功能(带参数) Future sendAutoLock() async { @@ -256,7 +256,7 @@ class NormallyOpenModeLogic extends BaseGetXController{ super.onInit(); print("onInit()"); - _readSupportFunctionsWithParameters(); + // _readSupportFunctionsWithParameters(); } @override diff --git a/star_lock/lib/main/lockDetail/lcokSet/openDoorDirection/openDoorDirection_logic.dart b/star_lock/lib/main/lockDetail/lcokSet/openDoorDirection/openDoorDirection_logic.dart index fac236c9..0f782546 100644 --- a/star_lock/lib/main/lockDetail/lcokSet/openDoorDirection/openDoorDirection_logic.dart +++ b/star_lock/lib/main/lockDetail/lcokSet/openDoorDirection/openDoorDirection_logic.dart @@ -44,39 +44,39 @@ class OpenDoorDirectionLogic extends BaseGetXController { } // 读取支持功能(带参数) - if(reply is ReadSupportFunctionsNoParametersReply) { - _readSupportFunctionsWithParametersReply(reply); - } + // if(reply is ReadSupportFunctionsNoParametersReply) { + // _readSupportFunctionsWithParametersReply(reply); + // } }); } // 读取支持功能带参数数据解析 - Future _readSupportFunctionsWithParametersReply(Reply reply) async { - int status = reply.data[2]; - switch(status){ - case 0x00: - //成功 - print("${reply.commandType}数据解析成功"); - state.openDirectionValue.value = reply.data[6]; - break; - case 0x06: - //无权限 - print("${reply.commandType}需要鉴权"); - break; - case 0x07: - //无权限 - print("${reply.commandType}用户无权限"); - break; - case 0x09: - // 权限校验错误 - print("${reply.commandType}权限校验错误"); - break; - default: - //失败 - print("${reply.commandType}失败"); - break; - } - } + // Future _readSupportFunctionsWithParametersReply(Reply reply) async { + // int status = reply.data[2]; + // switch(status){ + // case 0x00: + // //成功 + // print("${reply.commandType}数据解析成功"); + // state.openDirectionValue.value = reply.data[6]; + // break; + // case 0x06: + // //无权限 + // print("${reply.commandType}需要鉴权"); + // break; + // case 0x07: + // //无权限 + // print("${reply.commandType}用户无权限"); + // break; + // case 0x09: + // // 权限校验错误 + // print("${reply.commandType}权限校验错误"); + // break; + // default: + // //失败 + // print("${reply.commandType}失败"); + // break; + // } + // } // 设置自动落锁数据解析 Future _replySetSupportFunctionsWithParameters(Reply reply) async { @@ -111,30 +111,30 @@ class OpenDoorDirectionLogic extends BaseGetXController { } // 读取支持功能-带参数 - Future _readSupportFunctionsNoParameters() async { - BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState connectionState) async { - if (connectionState == DeviceConnectionState.connected) { - var privateKey = await Storage.getStringList(saveBluePrivateKey); - List getPrivateKeyList = changeStringListToIntList(privateKey!); - - var token = await Storage.getStringList(saveBlueToken); - List getTokenList = changeStringListToIntList(token!); - - var publicKey = await Storage.getStringList(saveBluePublicKey); - List getPublicKeyList = changeStringListToIntList(publicKey!); - - IoSenderManage.readSupportFunctionsNoParametersCommand( - keyID: state.lockSetInfoData.value.lockBasicInfo!.keyId.toString(), - userID: await Storage.getUid(), - featureBit: 41, - token: getTokenList, - needAuthor: 1, - publicKey: getPublicKeyList, - privateKey: getPrivateKeyList - ); - } - }); - } + // Future _readSupportFunctionsNoParameters() async { + // BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState connectionState) async { + // if (connectionState == DeviceConnectionState.connected) { + // var privateKey = await Storage.getStringList(saveBluePrivateKey); + // List getPrivateKeyList = changeStringListToIntList(privateKey!); + // + // var token = await Storage.getStringList(saveBlueToken); + // List getTokenList = changeStringListToIntList(token!); + // + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List getPublicKeyList = changeStringListToIntList(publicKey!); + // + // IoSenderManage.readSupportFunctionsNoParametersCommand( + // keyID: state.lockSetInfoData.value.lockBasicInfo!.keyId.toString(), + // userID: await Storage.getUid(), + // featureBit: 41, + // token: getTokenList, + // needAuthor: 1, + // publicKey: getPublicKeyList, + // privateKey: getPrivateKeyList + // ); + // } + // }); + // } // 设置支持功能(带参数) Future sendOpenDoorDirection() async { @@ -182,7 +182,7 @@ class OpenDoorDirectionLogic extends BaseGetXController { super.onInit(); print("onInit()"); - _readSupportFunctionsNoParameters(); + // _readSupportFunctionsNoParameters(); } @override diff --git a/star_lock/lib/main/lockDetail/lcokSet/remoteUnlocking/remoteUnlocking_logic.dart b/star_lock/lib/main/lockDetail/lcokSet/remoteUnlocking/remoteUnlocking_logic.dart index 1f26a280..a40fe439 100644 --- a/star_lock/lib/main/lockDetail/lcokSet/remoteUnlocking/remoteUnlocking_logic.dart +++ b/star_lock/lib/main/lockDetail/lcokSet/remoteUnlocking/remoteUnlocking_logic.dart @@ -43,39 +43,39 @@ class RemoteUnlockingLogic extends BaseGetXController{ } // 读取支持功能(带参数) - if(reply is ReadSupportFunctionsNoParametersReply) { - _readSupportFunctionsWithParametersReply(reply); - } + // if(reply is ReadSupportFunctionsNoParametersReply) { + // _readSupportFunctionsWithParametersReply(reply); + // } }); } // 读取支持功能带参数数据解析 - Future _readSupportFunctionsWithParametersReply(Reply reply) async { - int status = reply.data[2]; - switch(status){ - case 0x00: - //成功 - print("${reply.commandType}数据解析成功"); - state.remoteEnable.value = reply.data[6]; - break; - case 0x06: - //无权限 - print("${reply.commandType}需要鉴权"); - break; - case 0x07: - //无权限 - print("${reply.commandType}用户无权限"); - break; - case 0x09: - // 权限校验错误 - print("${reply.commandType}权限校验错误"); - break; - default: - //失败 - print("${reply.commandType}失败"); - break; - } - } + // Future _readSupportFunctionsWithParametersReply(Reply reply) async { + // int status = reply.data[2]; + // switch(status){ + // case 0x00: + // //成功 + // print("${reply.commandType}数据解析成功"); + // state.remoteEnable.value = reply.data[6]; + // break; + // case 0x06: + // //无权限 + // print("${reply.commandType}需要鉴权"); + // break; + // case 0x07: + // //无权限 + // print("${reply.commandType}用户无权限"); + // break; + // case 0x09: + // // 权限校验错误 + // print("${reply.commandType}权限校验错误"); + // break; + // default: + // //失败 + // print("${reply.commandType}失败"); + // break; + // } + // } // 设置自动落锁数据解析 Future _replySetSupportFunctionsWithParameters(Reply reply) async { @@ -113,30 +113,30 @@ class RemoteUnlockingLogic extends BaseGetXController{ } // 读取支持功能-带参数 - Future _readSupportFunctionsNoParameters() async { - BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState connectionState) async { - if (connectionState == DeviceConnectionState.connected) { - var privateKey = await Storage.getStringList(saveBluePrivateKey); - List getPrivateKeyList = changeStringListToIntList(privateKey!); - - var token = await Storage.getStringList(saveBlueToken); - List getTokenList = changeStringListToIntList(token!); - - var publicKey = await Storage.getStringList(saveBluePublicKey); - List getPublicKeyList = changeStringListToIntList(publicKey!); - - IoSenderManage.readSupportFunctionsNoParametersCommand( - keyID: state.lockSetInfoData.value.lockBasicInfo!.keyId.toString(), - userID: await Storage.getUid(), - featureBit: 28, - token: getTokenList, - needAuthor: 1, - publicKey: getPublicKeyList, - privateKey: getPrivateKeyList - ); - } - }); - } + // Future _readSupportFunctionsNoParameters() async { + // BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState connectionState) async { + // if (connectionState == DeviceConnectionState.connected) { + // var privateKey = await Storage.getStringList(saveBluePrivateKey); + // List getPrivateKeyList = changeStringListToIntList(privateKey!); + // + // var token = await Storage.getStringList(saveBlueToken); + // List getTokenList = changeStringListToIntList(token!); + // + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List getPublicKeyList = changeStringListToIntList(publicKey!); + // + // IoSenderManage.readSupportFunctionsNoParametersCommand( + // keyID: state.lockSetInfoData.value.lockBasicInfo!.keyId.toString(), + // userID: await Storage.getUid(), + // featureBit: 28, + // token: getTokenList, + // needAuthor: 1, + // publicKey: getPublicKeyList, + // privateKey: getPrivateKeyList + // ); + // } + // }); + // } // 设置支持功能(带参数) 远程开锁 Future sendBurglarAlarm() async { @@ -196,7 +196,7 @@ class RemoteUnlockingLogic extends BaseGetXController{ super.onInit(); print("onInit()"); - _readSupportFunctionsNoParameters(); + // _readSupportFunctionsNoParameters(); } @override diff --git a/star_lock/lib/main/lockDetail/lcokSet/resetButton/resetButton_logic.dart b/star_lock/lib/main/lockDetail/lcokSet/resetButton/resetButton_logic.dart index f9fe02aa..da0580cb 100644 --- a/star_lock/lib/main/lockDetail/lcokSet/resetButton/resetButton_logic.dart +++ b/star_lock/lib/main/lockDetail/lcokSet/resetButton/resetButton_logic.dart @@ -44,39 +44,39 @@ class ResetButtonLogic extends BaseGetXController{ } // 读取支持功能(带参数) - if(reply is ReadSupportFunctionsNoParametersReply) { - _readSupportFunctionsWithParametersReply(reply); - } + // if(reply is ReadSupportFunctionsNoParametersReply) { + // _readSupportFunctionsWithParametersReply(reply); + // } }); } // 读取支持功能带参数数据解析 - Future _readSupportFunctionsWithParametersReply(Reply reply) async { - int status = reply.data[2]; - switch(status){ - case 0x00: - //成功 - print("${reply.commandType}数据解析成功"); - state.resetButtonEnable.value = reply.data[6]; - break; - case 0x06: - //无权限 - print("${reply.commandType}需要鉴权"); - break; - case 0x07: - //无权限 - print("${reply.commandType}用户无权限"); - break; - case 0x09: - // 权限校验错误 - print("${reply.commandType}权限校验错误"); - break; - default: - //失败 - print("${reply.commandType}失败"); - break; - } - } + // Future _readSupportFunctionsWithParametersReply(Reply reply) async { + // int status = reply.data[2]; + // switch(status){ + // case 0x00: + // //成功 + // print("${reply.commandType}数据解析成功"); + // state.resetButtonEnable.value = reply.data[6]; + // break; + // case 0x06: + // //无权限 + // print("${reply.commandType}需要鉴权"); + // break; + // case 0x07: + // //无权限 + // print("${reply.commandType}用户无权限"); + // break; + // case 0x09: + // // 权限校验错误 + // print("${reply.commandType}权限校验错误"); + // break; + // default: + // //失败 + // print("${reply.commandType}失败"); + // break; + // } + // } // 设置自动落锁数据解析 Future _replySetSupportFunctionsWithParameters(Reply reply) async { @@ -114,30 +114,30 @@ class ResetButtonLogic extends BaseGetXController{ } // 读取支持功能-带参数 - Future _readSupportFunctionsNoParameters() async { - BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState connectionState) async { - if (connectionState == DeviceConnectionState.connected) { - var privateKey = await Storage.getStringList(saveBluePrivateKey); - List getPrivateKeyList = changeStringListToIntList(privateKey!); - - var token = await Storage.getStringList(saveBlueToken); - List getTokenList = changeStringListToIntList(token!); - - var publicKey = await Storage.getStringList(saveBluePublicKey); - List getPublicKeyList = changeStringListToIntList(publicKey!); - - IoSenderManage.readSupportFunctionsNoParametersCommand( - keyID: state.lockSetInfoData.value.lockBasicInfo!.keyId.toString(), - userID: await Storage.getUid(), - featureBit: 31, - token: getTokenList, - needAuthor: 1, - publicKey: getPublicKeyList, - privateKey: getPrivateKeyList - ); - } - }); - } + // Future _readSupportFunctionsNoParameters() async { + // BlueManage().bludSendData(BlueManage().connectDeviceName, (DeviceConnectionState connectionState) async { + // if (connectionState == DeviceConnectionState.connected) { + // var privateKey = await Storage.getStringList(saveBluePrivateKey); + // List getPrivateKeyList = changeStringListToIntList(privateKey!); + // + // var token = await Storage.getStringList(saveBlueToken); + // List getTokenList = changeStringListToIntList(token!); + // + // var publicKey = await Storage.getStringList(saveBluePublicKey); + // List getPublicKeyList = changeStringListToIntList(publicKey!); + // + // IoSenderManage.readSupportFunctionsNoParametersCommand( + // keyID: state.lockSetInfoData.value.lockBasicInfo!.keyId.toString(), + // userID: await Storage.getUid(), + // featureBit: 31, + // token: getTokenList, + // needAuthor: 1, + // publicKey: getPublicKeyList, + // privateKey: getPrivateKeyList + // ); + // } + // }); + // } // 设置支持功能(带参数) Future sendBurglarAlarm() async { @@ -197,7 +197,7 @@ class ResetButtonLogic extends BaseGetXController{ super.onInit(); print("onInit()"); - _readSupportFunctionsNoParameters(); + // _readSupportFunctionsNoParameters(); } @override diff --git a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_logic.dart b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_logic.dart index 66cd304d..b7d9343d 100644 --- a/star_lock/lib/main/lockDetail/lockDetail/lockDetail_logic.dart +++ b/star_lock/lib/main/lockDetail/lockDetail/lockDetail_logic.dart @@ -594,8 +594,7 @@ class LockDetailLogic extends BaseGetXController { // 获取手机联网token,根据锁设置里面获取的开锁时是否联网来判断是否调用这个接口 void getLockNetToken() async { - LockNetTokenEntity entity = await ApiRepository.to - .getLockNetToken(lockId: state.keyInfos.value.lockId.toString()); + LockNetTokenEntity entity = await ApiRepository.to.getLockNetToken(lockId: state.keyInfos.value.lockId.toString()); if (entity.errorCode!.codeIsSuccessful) { state.lockNetToken = entity.data!.token!; print("state.lockNetToken:${state.lockNetToken}"); diff --git a/star_lock/lib/mine/addLock/saveLock/saveLock_logic.dart b/star_lock/lib/mine/addLock/saveLock/saveLock_logic.dart index 593ad4c1..296fc809 100644 --- a/star_lock/lib/mine/addLock/saveLock/saveLock_logic.dart +++ b/star_lock/lib/mine/addLock/saveLock/saveLock_logic.dart @@ -399,6 +399,7 @@ class SaveLockLogic extends BaseGetXController { ); if (entity.errorCode!.codeIsSuccessful) { state.lockId = entity.data!.lockId!; + eventBus.fire(RefreshLockListInfoDataEvent()); senderCustomPasswords(); // BlueManage().disconnect(BlueManage().connectDeviceMacAddress); @@ -459,7 +460,6 @@ class SaveLockLogic extends BaseGetXController { void backAction(){ BlueManage().disconnect(BlueManage().connectDeviceMacAddress); - eventBus.fire(RefreshLockListInfoDataEvent()); Get.close(state.isFromMap == 1 ? 6 : 7); } diff --git a/star_lock/lib/network/api.dart b/star_lock/lib/network/api.dart index 68145668..ef58acb2 100644 --- a/star_lock/lib/network/api.dart +++ b/star_lock/lib/network/api.dart @@ -69,10 +69,9 @@ abstract class Api { final String lockDiagnoseUrl = '/room/uploadLockInfo'; // 锁诊断 final String getServerDatetimeUrl = '/check/getServerDatetime'; // 获取服务器当前时间 final String getLockVersionInfoUrl = '/room/update'; // 获取锁当前版本信息 - final String openCheckingInURL = - '/attendanceCompany/isExistenceCompany'; // 开启考勤获取是否有公司 - final String setCheckInCreateCompanyURL = - '/attendanceCompany/add'; // 设置考勤时创建公司 + final String openCheckingInURL = '/attendanceCompany/isExistenceCompany'; // 开启考勤获取是否有公司 + final String setCheckInCreateCompanyURL = '/attendanceCompany/add'; // 设置考勤时创建公司 + final String deleteCompanyURL = '/vacation/delete'; // 删除公司 final String getAttendanceRecordListByDateURL = '/attendanceRecord/listByDate'; // 获取考勤列表-早到榜日榜 diff --git a/star_lock/lib/network/api_provider.dart b/star_lock/lib/network/api_provider.dart index 7cdd771f..6ec68b45 100644 --- a/star_lock/lib/network/api_provider.dart +++ b/star_lock/lib/network/api_provider.dart @@ -740,6 +740,14 @@ class ApiProvider extends BaseProvider { 'workStartTime': workStartTime, })); + // 删除公司 + Future deletCompanyData(int companyId) => post( + deleteCompanyURL.toUrl, + jsonEncode({ + 'companyId': companyId, + }), + isUnShowLoading: true); + // 获取开锁提醒 Future setLockPickingReminderData(int lockId, int unlockReminderPush) => post(updateLockSettingUrl.toUrl, diff --git a/star_lock/lib/network/api_repository.dart b/star_lock/lib/network/api_repository.dart index c5c3a563..f13b04c6 100644 --- a/star_lock/lib/network/api_repository.dart +++ b/star_lock/lib/network/api_repository.dart @@ -923,6 +923,13 @@ class ApiRepository { return LoginEntity.fromJson(res.body); } + // 删除公司 + Future deletCompanyData( + {required int companyId}) async { + final res = await apiProvider.deletCompanyData(companyId); + return CheckingInInfoDataEntity.fromJson(res.body); + } + // 设置锁开锁提醒 Future setLockPickingReminderData({ required int lockId,