From 5f190aa58731f82b8accb08bcd3f40ad5c36f8ff Mon Sep 17 00:00:00 2001 From: anfe <448468458@qq.com> Date: Wed, 5 Jun 2024 17:36:46 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=20=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E7=94=B5=E6=B1=A0=E5=90=8E=EF=BC=8C=E5=85=B6=E4=BB=96=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E7=9A=84=E7=94=B5=E6=B1=A0=E6=B2=A1=E6=9C=89=E8=AF=95?= =?UTF-8?q?=E8=AF=95=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lockDetail/lockDetail_logic.dart | 13 ++++ .../lockDetail/lockDetail_page.dart | 17 ++--- .../lockDetail/lockDetail_state.dart | 41 +++++----- .../basicInformation_logic.dart | 15 ++++ .../uploadElectricQuantity_logic.dart | 76 ++++++++++++------- lib/main/lockMian/lockMain/lockMain_page.dart | 8 +- lib/tools/eventBusEventManage.dart | 2 +- 7 files changed, 111 insertions(+), 61 deletions(-) diff --git a/lib/main/lockDetail/lockDetail/lockDetail_logic.dart b/lib/main/lockDetail/lockDetail/lockDetail_logic.dart index 5d481374..97985703 100755 --- a/lib/main/lockDetail/lockDetail/lockDetail_logic.dart +++ b/lib/main/lockDetail/lockDetail/lockDetail_logic.dart @@ -522,5 +522,18 @@ class LockDetailLogic extends BaseGetXController { @override void onInit() { super.onInit(); + state.LockSetChangeSetRefreshLockDetailWithTypeSubscription = eventBus + .on() + .listen((LockSetChangeSetRefreshLockDetailWithType event) { + if (event.type == 4) { + final int electricQuantity = + int.tryParse(event.setResult['electricQuantity']) ?? 0; + state.electricQuantity.value = electricQuantity; + state.keyInfos.value.electricQuantity = electricQuantity; + state.keyInfos.value.electricQuantityDate = + event.setResult['uploadElectricQuantityDate'] ?? 0; + state.keyInfos.refresh(); + } + }); } } diff --git a/lib/main/lockDetail/lockDetail/lockDetail_page.dart b/lib/main/lockDetail/lockDetail/lockDetail_page.dart index e06f5eca..099b1b18 100755 --- a/lib/main/lockDetail/lockDetail/lockDetail_page.dart +++ b/lib/main/lockDetail/lockDetail/lockDetail_page.dart @@ -29,15 +29,14 @@ import '../../lockMian/entity/lockListInfo_entity.dart'; import 'lockDetail_logic.dart'; class LockDetailPage extends StatefulWidget { + const LockDetailPage( + {required this.isOnlyOneData, + required this.lockListInfoItemEntity, + Key? key}) + : super(key: key); final bool isOnlyOneData; final LockListInfoItemEntity lockListInfoItemEntity; - const LockDetailPage( - {Key? key, - required this.isOnlyOneData, - required this.lockListInfoItemEntity}) - : super(key: key); - @override State createState() => _LockDetailPageState(); } @@ -50,7 +49,6 @@ class _LockDetailPageState extends State @override void initState() { - // TODO: implement initState super.initState(); listeningAnimations(); @@ -1438,8 +1436,9 @@ class _LockDetailPageState extends State state.closedUnlockSuccessfulTimer?.cancel(); _lockRefreshLockDetailInfoDataEvent?.cancel(); state.replySubscription.cancel(); - state.lockSetOpenOrCloseCheckInRefreshLockDetailWithAttendanceEvent! - .cancel(); + state.lockSetOpenOrCloseCheckInRefreshLockDetailWithAttendanceEvent + ?.cancel(); + state.LockSetChangeSetRefreshLockDetailWithTypeSubscription?.cancel(); if (state.animationController != null) { state.animationController!.dispose(); state.animationController = null; diff --git a/lib/main/lockDetail/lockDetail/lockDetail_state.dart b/lib/main/lockDetail/lockDetail/lockDetail_state.dart index 8318d96d..80245575 100755 --- a/lib/main/lockDetail/lockDetail/lockDetail_state.dart +++ b/lib/main/lockDetail/lockDetail/lockDetail_state.dart @@ -12,44 +12,45 @@ class LockDetailState { late StreamSubscription replySubscription; StreamSubscription? lockSetOpenOrCloseCheckInRefreshLockDetailWithAttendanceEvent; + StreamSubscription? LockSetChangeSetRefreshLockDetailWithTypeSubscription; - String lockNetToken = "0"; + String lockNetToken = '0'; int differentialTime = 0; int lockUserNo = 0; - var senderUserId = 0; - var isOnlyOneData = false; + int senderUserId = 0; + bool isOnlyOneData = false; - var isAttendance = 0.obs; // 是否开启考勤 - var isOpenLockNeedOnline = 0.obs; // APP开锁时是否需联网 - var electricQuantity = 0.obs; // 电量 - var electricQuantityStandby = 0.obs; // 备用电池电量 - var isOpenPassageMode = 0.obs; // 是否开启了常开模式 - var lockAlias = "".obs; // 锁名字 + RxInt isAttendance = 0.obs; // 是否开启考勤 + RxInt isOpenLockNeedOnline = 0.obs; // APP开锁时是否需联网 + RxInt electricQuantity = 0.obs; // 电量 + RxInt electricQuantityStandby = 0.obs; // 备用电池电量 + RxInt isOpenPassageMode = 0.obs; // 是否开启了常开模式 + RxString lockAlias = ''.obs; // 锁名字 // var currentDeviceUUid = "".obs; // 当前设备的uuid - var ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示 - var iSClosedUnlockSuccessfulPopup = false.obs; // 是否关闭了开锁成功弹窗 - var iSOpenLock = true.obs; // 是开锁还是关锁 + RxBool ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示 + RxBool iSClosedUnlockSuccessfulPopup = false.obs; // 是否关闭了开锁成功弹窗 + RxBool iSOpenLock = true.obs; // 是开锁还是关锁 Timer? closedUnlockSuccessfulTimer; - var bottomBtnisEable = true.obs; // 是否不可用 用于限制底部按钮是否可用 - var openDoorBtnisUneable = true.obs; // 当钥匙状态不能使用的情况下开锁按钮禁止使用,默认可用 + RxBool bottomBtnisEable = true.obs; // 是否不可用 用于限制底部按钮是否可用 + RxBool openDoorBtnisUneable = true.obs; // 当钥匙状态不能使用的情况下开锁按钮禁止使用,默认可用 - var openDoorModel = 0;// 离线开门0, 在线开门2 离线关门32 在线关门34 + int openDoorModel = 0;// 离线开门0, 在线开门2 离线关门32 在线关门34 //过渡动画控制器 AnimationController? animationController; // var lockState = 0.obs;// 0未连接普通状态 1连接开锁中(展示动画) 2已连接开锁成功 3检测可用性 4连接失败 5连接失败重连中 - var openLockBtnState = 0.obs; // 0普通状态(未转动) 1连接中(转动状态) + RxInt openLockBtnState = 0.obs; // 0普通状态(未转动) 1连接中(转动状态) // var connectState = 0.obs;// 0未连接 1连接 final PageController pageController = PageController(); - var currentPage = 0.obs; + RxInt currentPage = 0.obs; - var operateDate = 0; // 按日期查询消息记录的时间戳 - var logCountPage = 10; // 蓝牙记录一页多少个 - var nextAuthTime = 0.obs; // 下次认证时间 + int operateDate = 0; // 按日期查询消息记录的时间戳 + int logCountPage = 10; // 蓝牙记录一页多少个 + RxInt nextAuthTime = 0.obs; // 下次认证时间 // LockDetailState() { // Map map = Get.arguments; // lockCount = map["lockCount"]; diff --git a/lib/main/lockDetail/lockSet/basicInformation/basicInformation/basicInformation_logic.dart b/lib/main/lockDetail/lockSet/basicInformation/basicInformation/basicInformation_logic.dart index 27b818b7..0e783b3f 100755 --- a/lib/main/lockDetail/lockSet/basicInformation/basicInformation/basicInformation_logic.dart +++ b/lib/main/lockDetail/lockSet/basicInformation/basicInformation/basicInformation_logic.dart @@ -20,6 +20,7 @@ class BasicInformationLogic extends BaseGetXController { // 下级界面修改成功后传递数据 StreamSubscription? _passCurrentLockInformationEvent; + StreamSubscription? lockSetChangeSetRefreshLockDetailWithTypeSubscription; void initLoadDataAction(BlockSetStateCallback blockSetStateCallback) { // 蓝牙协议通知传输跟蓝牙之外的数据传输类不一样 eventBus @@ -29,6 +30,19 @@ class BasicInformationLogic extends BaseGetXController { state.lockSetInfoData.value = event.lockSetInfoData; blockSetStateCallback(); }); + + lockSetChangeSetRefreshLockDetailWithTypeSubscription = eventBus + .on() + .listen((LockSetChangeSetRefreshLockDetailWithType event) { + if (event.type == 4) { + final int electricQuantity = + int.tryParse(event.setResult['electricQuantity']) ?? 0; + state.lockBasicInfo.value.electricQuantity = electricQuantity; + state.lockBasicInfo.value.electricQuantityDate = + event.setResult['uploadElectricQuantityDate']; + state.lockBasicInfo.refresh(); + } + }); } @override @@ -43,5 +57,6 @@ class BasicInformationLogic extends BaseGetXController { void onClose() { super.onClose(); _passCurrentLockInformationEvent?.cancel(); + lockSetChangeSetRefreshLockDetailWithTypeSubscription?.cancel(); } } diff --git a/lib/main/lockDetail/lockSet/basicInformation/uploadElectricQuantity/uploadElectricQuantity_logic.dart b/lib/main/lockDetail/lockSet/basicInformation/uploadElectricQuantity/uploadElectricQuantity_logic.dart index 9a921cdd..abf06090 100755 --- a/lib/main/lockDetail/lockSet/basicInformation/uploadElectricQuantity/uploadElectricQuantity_logic.dart +++ b/lib/main/lockDetail/lockSet/basicInformation/uploadElectricQuantity/uploadElectricQuantity_logic.dart @@ -23,19 +23,22 @@ class UploadElectricQuantityLogic extends BaseGetXController { final UploadElectricQuantityState state = UploadElectricQuantityState(); //电量更新请求 - Future uploadElectricQuantityRequest(String electricQuantity, String electricQuantityStandby) async { - final KeyOperationRecordEntity entity = await ApiRepository.to.uploadElectricQuantity( - electricQuantity:electricQuantity, - electricQuantityStandby: electricQuantityStandby, - lockId: state.lockSetInfoData.value.lockId.toString(), - isUnShowLoading: false - ); + Future uploadElectricQuantityRequest( + String electricQuantity, String electricQuantityStandby) async { + final KeyOperationRecordEntity entity = await ApiRepository.to + .uploadElectricQuantity( + electricQuantity: electricQuantity, + electricQuantityStandby: electricQuantityStandby, + lockId: state.lockSetInfoData.value.lockId.toString(), + isUnShowLoading: false); if (entity.errorCode!.codeIsSuccessful) { showToast('锁电量更新成功'.tr, something: () { eventBus .fire(PassCurrentLockInformationEvent(state.lockSetInfoData.value)); - eventBus.fire( - LockSetChangeSetRefreshLockDetailWithType(4, electricQuantity)); + eventBus.fire(LockSetChangeSetRefreshLockDetailWithType(4, { + 'electricQuantity': electricQuantity, + 'uploadElectricQuantityDate': state.uploadElectricQuantityDate.value, + })); eventBus.fire(RefreshLockListInfoDataEvent()); }); } @@ -57,8 +60,10 @@ class UploadElectricQuantityLogic extends BaseGetXController { (BluetoothConnectionState deviceConnectionState) async { if (deviceConnectionState == BluetoothConnectionState.connected) { dismissEasyLoading(); - final List? privateKey = await Storage.getStringList(saveBluePrivateKey); - final List getPrivateKeyList = changeStringListToIntList(privateKey!); + final List? privateKey = + await Storage.getStringList(saveBluePrivateKey); + final List getPrivateKeyList = + changeStringListToIntList(privateKey!); IoSenderManage.senderGetStarLockStatuInfo( lockID: BlueManage().connectDeviceName, userID: await Storage.getUid(), @@ -67,7 +72,8 @@ class UploadElectricQuantityLogic extends BaseGetXController { isBeforeAddUser: false, privateKey: getPrivateKeyList, ); - } else if (deviceConnectionState == BluetoothConnectionState.disconnected) { + } else if (deviceConnectionState == + BluetoothConnectionState.disconnected) { dismissEasyLoading(); cancelBlueConnetctToastTimer(); state.sureBtnState.value = 0; @@ -80,6 +86,7 @@ class UploadElectricQuantityLogic extends BaseGetXController { // 获取解析后的数据 late StreamSubscription _replySubscription; + void _initReplySubscription() { _replySubscription = EventBusManager().eventBus!.on().listen((Reply reply) { @@ -102,20 +109,27 @@ class UploadElectricQuantityLogic extends BaseGetXController { // 电池剩余电量 final int battRemCap = reply.data[132]; - state.lockSetInfoData.value.lockBasicInfo!.electricQuantity = battRemCap; + state.lockSetInfoData.value.lockBasicInfo!.electricQuantity = + battRemCap; // 备用电池剩余电量 final int battRemCapStandby = reply.data[133]; - state.lockSetInfoData.value.lockBasicInfo!.electricQuantityStandby = battRemCapStandby; + state.lockSetInfoData.value.lockBasicInfo!.electricQuantityStandby = + battRemCapStandby; - state.uploadElectricQuantityDate.value = DateTime.now().millisecondsSinceEpoch; - state.lockSetInfoData.value.lockBasicInfo!.electricQuantityDate = DateTime.now().millisecondsSinceEpoch; - uploadElectricQuantityRequest(battRemCap.toString(), battRemCapStandby.toString()); + state.uploadElectricQuantityDate.value = + DateTime.now().millisecondsSinceEpoch; + state.lockSetInfoData.value.lockBasicInfo!.electricQuantityDate = + DateTime.now().millisecondsSinceEpoch; + uploadElectricQuantityRequest( + battRemCap.toString(), battRemCapStandby.toString()); break; case 0x06: //无权限 - final List? privateKey = await Storage.getStringList(saveBluePrivateKey); - final List getPrivateKeyList = changeStringListToIntList(privateKey!); + final List? privateKey = + await Storage.getStringList(saveBluePrivateKey); + final List getPrivateKeyList = + changeStringListToIntList(privateKey!); IoSenderManage.senderGetStarLockStatuInfo( lockID: BlueManage().connectDeviceName, userID: await Storage.getUid(), @@ -125,7 +139,6 @@ class UploadElectricQuantityLogic extends BaseGetXController { privateKey: getPrivateKeyList, ); - break; default: //失败 @@ -134,22 +147,27 @@ class UploadElectricQuantityLogic extends BaseGetXController { } // 从服务器获取锁的时间 开锁时传入 - Future getServerDatetime() async{ - final GetServerDatetimeEntity entity = await ApiRepository.to.getServerDatetimeData(); - if(entity.errorCode!.codeIsSuccessful){ - state.differentialTime = entity.data!.date! ~/ 1000 - DateTime.now().millisecondsSinceEpoch ~/ 1000; + Future getServerDatetime() async { + final GetServerDatetimeEntity entity = + await ApiRepository.to.getServerDatetimeData(); + if (entity.errorCode!.codeIsSuccessful) { + state.differentialTime = entity.data!.date! ~/ 1000 - + DateTime.now().millisecondsSinceEpoch ~/ 1000; // AppLog.log("entity.data!.date! ~/ 1000:${entity.data!.date! ~/ 1000} DateTime.now().millisecondsSinceEpoch ~/ 1000:${DateTime.now().millisecondsSinceEpoch ~/ 1000} 服务器时间差:${state.differentialTime}"); } } - int getLocalTime(){ - return DateTime.now().millisecondsSinceEpoch ~/ 1000 + state.differentialTime; + int getLocalTime() { + return DateTime.now().millisecondsSinceEpoch ~/ 1000 + + state.differentialTime; } - int getUTCTime(){ - final DateTime utcTime = DateTime.fromMillisecondsSinceEpoch(getLocalTime()*1000, isUtc: true); + int getUTCTime() { + final DateTime utcTime = + DateTime.fromMillisecondsSinceEpoch(getLocalTime() * 1000, isUtc: true); - final String appointmentDate = DateTool().getYMDHNDateStringWithDateTime(utcTime, 1); + final String appointmentDate = + DateTool().getYMDHNDateStringWithDateTime(utcTime, 1); final int utcTimeValue = DateTool().dateToTimestamp(appointmentDate, 1); AppLog.log('appointmentDate: $appointmentDate utcTimeValue:$utcTimeValue'); return utcTimeValue ~/ 1000; diff --git a/lib/main/lockMian/lockMain/lockMain_page.dart b/lib/main/lockMian/lockMain/lockMain_page.dart index 2d52b952..4400e484 100755 --- a/lib/main/lockMian/lockMain/lockMain_page.dart +++ b/lib/main/lockMian/lockMain/lockMain_page.dart @@ -50,9 +50,13 @@ class _StarLockMainPageState extends State with BaseWidget { if (clearScanDevices) { BlueManage().scanDevices.clear(); } - if (mounted) { + + WidgetsBinding.instance.addPostFrameCallback((_) async { setState(() {}); - } + }); + // if (mounted) { + // setState(() {}); + // } } @override diff --git a/lib/tools/eventBusEventManage.dart b/lib/tools/eventBusEventManage.dart index bf19c88b..c72c44ae 100755 --- a/lib/tools/eventBusEventManage.dart +++ b/lib/tools/eventBusEventManage.dart @@ -77,7 +77,7 @@ class LockGroupEditGroupLockRefreshEvent { /// 锁设置里面开启关闭刷新锁详情 class LockSetChangeSetRefreshLockDetailWithType { int type; // 0 考勤 1开锁时是否需联网 2常开模式 3修改了锁名字 4修改了电量 5远程开锁 - String setResult; + dynamic setResult; LockSetChangeSetRefreshLockDetailWithType(this.type, this.setResult); } From 9158ce71e7a25061ad7a4b5458fea83d42e36d16 Mon Sep 17 00:00:00 2001 From: Daisy <> Date: Wed, 5 Jun 2024 18:24:59 +0800 Subject: [PATCH 2/3] =?UTF-8?q?1=EF=BC=8C=E6=96=B0=E5=A2=9E=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E9=82=AE=E4=BB=B6=E6=A8=A1=E7=89=88=E5=88=97=E8=A1=A8?= =?UTF-8?q?API=E5=AF=B9=E6=8E=A5=E5=8F=8A=E9=80=BB=E8=BE=91=E5=A4=84?= =?UTF-8?q?=E7=90=86=202=EF=BC=8C=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E9=82=AE=E4=BB=B6=E6=A8=A1=E7=89=88=EF=BC=88?= =?UTF-8?q?=E7=94=B5=E5=AD=90=E9=92=A5=E5=8C=99=E3=80=81=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=EF=BC=89API=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- images/lan/lan_en.json | 1 + images/lan/lan_keys.json | 1 + images/lan/lan_zh.json | 1 + ...eAddedServicesNoteAndEmailDetail_page.dart | 10 +++------- .../newSMSTemplate_entity.dart | 2 ++ .../newSMSTemplate_logic.dart | 13 ++++++------ .../newSMSTemplate_page.dart | 4 ++-- .../newSMSTemplate_state.dart | 8 +++----- .../customSMSTemplateList_logic.dart | 4 +++- .../customSMSTemplateList_page.dart | 14 +++++++++++-- .../customSMSTemplateList_state.dart | 6 ++++++ lib/network/api.dart | 4 ++-- lib/network/api_provider.dart | 13 ++++++++---- lib/network/api_repository.dart | 20 +++++++++---------- 14 files changed, 61 insertions(+), 40 deletions(-) diff --git a/images/lan/lan_en.json b/images/lan/lan_en.json index 0b0258d2..447da036 100755 --- a/images/lan/lan_en.json +++ b/images/lan/lan_en.json @@ -863,6 +863,7 @@ "六": "Sat", "日": "Sun", "新建短信模版":"New SMS template", + "新建邮件模版":"New email template", "自定义短信模版":"Custom SMS template", "自定义邮件模版":"Custom email template", "名称":"Name", diff --git a/images/lan/lan_keys.json b/images/lan/lan_keys.json index 2925e81b..1f83013b 100755 --- a/images/lan/lan_keys.json +++ b/images/lan/lan_keys.json @@ -895,6 +895,7 @@ "六":"六", "日":"日", "新建短信模版":"新建短信模版", + "新建邮件模版":"新建邮件模版", "自定义短信模版":"自定义短信模版", "自定义邮件模版":"自定义邮件模版", "名称":"名称", diff --git a/images/lan/lan_zh.json b/images/lan/lan_zh.json index 451f0f62..3c3bedf6 100755 --- a/images/lan/lan_zh.json +++ b/images/lan/lan_zh.json @@ -863,6 +863,7 @@ "六": "六", "日": "日", "新建短信模版":"新建短信模版", + "新建邮件模版":"新建邮件模版", "自定义短信模版":"自定义短信模版", "自定义邮件模版":"自定义邮件模版", "名称":"名称", diff --git a/lib/mine/valueAddedServices/valueAddedServicesNoteAndEmailDetail/valueAddedServicesNoteAndEmailDetail_page.dart b/lib/mine/valueAddedServices/valueAddedServicesNoteAndEmailDetail/valueAddedServicesNoteAndEmailDetail_page.dart index 0b1c7a8a..13301dc9 100755 --- a/lib/mine/valueAddedServices/valueAddedServicesNoteAndEmailDetail/valueAddedServicesNoteAndEmailDetail_page.dart +++ b/lib/mine/valueAddedServices/valueAddedServicesNoteAndEmailDetail/valueAddedServicesNoteAndEmailDetail_page.dart @@ -111,13 +111,9 @@ class _ValueAddedServicesNoteAndEmailDetailPageState children: [ GestureDetector( onTap: () { - if (type == 1) { - Navigator.pushNamed( - context, Routers.customSMSTemplateListPage); - } else { - Navigator.pushNamed(context, - Routers.valueAddedServicesListEmailTemplatePage); - } + Navigator.pushNamed( + context, Routers.customSMSTemplateListPage, + arguments: {'type': type}); }, child: Row( children: [ diff --git a/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/newSMSTemplate_entity.dart b/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/newSMSTemplate_entity.dart index 9e65f85a..780f4f2f 100644 --- a/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/newSMSTemplate_entity.dart +++ b/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/newSMSTemplate_entity.dart @@ -46,6 +46,8 @@ class SMSTemplateData { String? tips = ''; int? id; String? name; + int? type; + bool? isUpdate = false; Map toJson() { final Map data = {}; diff --git a/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/newSMSTemplate_logic.dart b/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/newSMSTemplate_logic.dart index 52cc0378..0bd6c527 100644 --- a/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/newSMSTemplate_logic.dart +++ b/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/newSMSTemplate_logic.dart @@ -14,12 +14,11 @@ class NewSMSTemplateLogic extends BaseGetXController { //获取默认模板-- 1:电子钥匙 2:密码 Future getDefaultTemplate() async { - final NewSMSTemplateEntity entity = - await ApiRepository.to.getDefaultTemplate(type: 1); + final NewSMSTemplateEntity entity = await ApiRepository.to + .getDefaultTemplate(type: state.currentTemplate.value.type ?? 0); if (entity.errorCode!.codeIsSuccessful) { state.templateList.value = entity.dataList ?? []; if (state.templateList.isNotEmpty) { - // state.templateTypeText.value = state.templateList[0].name ?? ''; state.currentTemplate.value = state.templateList.firstWhere( (SMSTemplateData element) => element.name == state.templateList[0].name, @@ -29,14 +28,14 @@ class NewSMSTemplateLogic extends BaseGetXController { } } - //获取默认模板-- 1:电子钥匙 2:密码 + //新建模板-- 1:电子钥匙 2:密码 Future addSMSTemplate() async { if (state.templateNameTf.text.isEmpty) { showToast('请输入模板名称'); return; } - final LoginEntity entity = await ApiRepository.to.addSMSTemplate( - type: 1, + final LoginEntity entity = await ApiRepository.to.addTemplateService( + type: state.templateType.value, name: state.templateNameTf.text, fixedKey: state.currentTemplate.value.fixedKey ?? '', contentType: state.currentTemplate.value.contentType ?? 0, @@ -200,7 +199,7 @@ class NewSMSTemplateLogic extends BaseGetXController { Future onReady() async { super.onReady(); - if (state.isUpdate.value == false) { + if (state.currentTemplate.value.isUpdate == false) { getDefaultTemplate(); } } diff --git a/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/newSMSTemplate_page.dart b/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/newSMSTemplate_page.dart index 160f1f0c..b61a7e2e 100755 --- a/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/newSMSTemplate_page.dart +++ b/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/newSMSTemplate_page.dart @@ -28,7 +28,7 @@ class _NewSMSTemplatePageState extends State { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, appBar: TitleAppBar( - barTitle: '新建短信模版'.tr, + barTitle: state.templateType.value == 1 ? '新建短信模版'.tr : '新建邮件模版'.tr, haveBack: true, backgroundColor: AppColors.mainColor, ), @@ -46,7 +46,7 @@ class _NewSMSTemplatePageState extends State { child: SubmitBtn( btnName: TranslationLoader.lanKeys!.save!.tr, onClick: () { - if (state.isUpdate.value == true) { + if (state.currentTemplate.value.isUpdate == true) { logic.updateTemplateInfo(); } else { logic.addSMSTemplate(); diff --git a/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/newSMSTemplate_state.dart b/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/newSMSTemplate_state.dart index 74f97315..2da43402 100644 --- a/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/newSMSTemplate_state.dart +++ b/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesAddSMSTemplate/newSMSTemplate_state.dart @@ -9,10 +9,10 @@ class NewSMSTemplateState { final Map map = Get.arguments; currentTemplate.value = map['currentTemplate']; currentTemplate.refresh(); - isUpdate.value = true; templateNameTf.text = currentTemplate.value.name ?? ''; templateOneTf.text = currentTemplate.value.regards ?? ''; templateTwoTf.text = currentTemplate.value.tips ?? ''; + templateType.value = currentTemplate.value.type ?? 0; } } @@ -20,7 +20,7 @@ class NewSMSTemplateState { final TextStyle highStyle = TextStyle(color: const Color(0xFFEEDFA8), fontSize: 20.sp); -//默认样式 + //默认样式 final TextStyle defaultStyle = TextStyle(color: Colors.black, fontSize: 20.sp); @@ -30,9 +30,7 @@ class NewSMSTemplateState { RxBool isVip = false.obs; RxList templateList = [].obs; - // RxString templateTypeText = '电子钥匙'.tr.obs; - // RxString templateContentText = ''.obs; //模版内容 Rx currentTemplate = SMSTemplateData().obs; RxBool isShowDate = false.obs; - RxBool isUpdate = false.obs; + RxInt templateType = 0.obs; } diff --git a/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/customSMSTemplateList_logic.dart b/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/customSMSTemplateList_logic.dart index cbfe55b4..12c38ebf 100644 --- a/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/customSMSTemplateList_logic.dart +++ b/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/customSMSTemplateList_logic.dart @@ -21,7 +21,9 @@ class CustomSMSTemplateListLogic extends BaseGetXController { } final CustomSMSTemplateListEntity entity = await ApiRepository.to .getSMSTemplateList( - type: 1, pageNo: pageNo, pageSize: int.parse(pageSize)); + type: state.type.value, + pageNo: pageNo, + pageSize: int.parse(pageSize)); if (entity.errorCode!.codeIsSuccessful) { state.smsTemplateList.value = entity.data?.list ?? []; diff --git a/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/customSMSTemplateList_page.dart b/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/customSMSTemplateList_page.dart index 01c34643..88a3c7a2 100755 --- a/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/customSMSTemplateList_page.dart +++ b/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/customSMSTemplateList_page.dart @@ -41,7 +41,7 @@ class _CustomSMSTemplateListPageState extends State { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, appBar: TitleAppBar( - barTitle: '自定义短信模版'.tr, + barTitle: state.type.value == 1 ? '自定义短信模版'.tr : '自定义邮件模版'.tr, haveBack: true, backgroundColor: AppColors.mainColor), body: EasyRefreshTool( @@ -65,7 +65,15 @@ class _CustomSMSTemplateListPageState extends State { left: 30.w, right: 30.w, top: 30.w, bottom: 30.w), padding: EdgeInsets.only(top: 25.w, bottom: 25.w), onClick: () async { - final result = await Get.toNamed(Routers.newSMSTemplatePage); + final SMSTemplateData templateData = SMSTemplateData(); + templateData.type = state.type.value; + templateData.isUpdate = false; + templateData.typeName = + templateData.contentType == 1 ? '电子钥匙' : '密码'; + final result = await Get.toNamed(Routers.newSMSTemplatePage, + arguments: { + 'currentTemplate': templateData + }); if (result != null) { logic.getSMSTemplateListRequest(isRefresh: true); } @@ -195,6 +203,8 @@ class _CustomSMSTemplateListPageState extends State { templateData.template = itemData.template; templateData.contentType = itemData.contentType; templateData.typeName = templateData.contentType == 1 ? '电子钥匙' : '密码'; + templateData.type = itemData.type; + templateData.isUpdate = true; final result = await Get.toNamed(Routers.newSMSTemplatePage, arguments: { 'currentTemplate': templateData diff --git a/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/customSMSTemplateList_state.dart b/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/customSMSTemplateList_state.dart index 2b5198d2..89f65961 100644 --- a/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/customSMSTemplateList_state.dart +++ b/lib/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/customSMSTemplateList_state.dart @@ -4,6 +4,11 @@ import 'package:get/get.dart'; import 'package:star_lock/mine/valueAddedServices/valueAddedServicesSMSTemplate/valueAddedServicesListSMSTemplate/customSMSTemplateList_entity.dart'; class CustomSMSTemplateListState { + CustomSMSTemplateListState() { + if (Get.arguments != null) { + type.value = Get.arguments['type']; + } + } //高亮样式 final TextStyle highStyle = TextStyle(color: const Color(0xFFEEDFA8), fontSize: 20.sp); @@ -14,4 +19,5 @@ class CustomSMSTemplateListState { RxBool isVip = false.obs; RxList smsTemplateList = [].obs; + RxInt type = 0.obs; } diff --git a/lib/network/api.dart b/lib/network/api.dart index d3f5b998..1764a28e 100755 --- a/lib/network/api.dart +++ b/lib/network/api.dart @@ -243,12 +243,12 @@ abstract class Api { final String getNoticeTemplateURL = '/key/getNoticeTemplate'; //获取短信或者邮箱模板 final String appGetAppInfoURL = '/app/getAppInfo'; //获取APP基本信息 final String appGetFwVersionURL = '/app/getFwVersion'; //获取固件信息 - final String smsTemplateListURL = '/v2/service/listSmsTemplate'; //获取短信模板列表 + final String smsTemplateListURL = '/v2/service/listTemplate'; //获取短信模板列表 final String emailTemplateListURL = '/v2/service/listEmailTemplate'; //获取邮件模板列表 final String getDefaultTemplateURL = '/v2/service/getDefaultTemplate'; //获取默认模板 - final String addSMSTemplateURL = '/v2/service/addSmsTemplate'; //添加短信模板 + final String addTemplateServiceURL = '/v2/service/addTemplate'; //添加短信模板 final String keydetail = ' /key/detail'; //获取钥匙详情 final String updateTemplateInfoURL = '/v2/service/update'; //更新模板信息 final String deleteTemplateURL = '/v2/service/delete'; //删除模板 diff --git a/lib/network/api_provider.dart b/lib/network/api_provider.dart index 693e5d7b..e7b27134 100755 --- a/lib/network/api_provider.dart +++ b/lib/network/api_provider.dart @@ -614,8 +614,13 @@ class ApiProvider extends BaseProvider { post(deleteElectronicKeyURL.toUrl, jsonEncode({'uid': uid, 'includeUnderlings': includeUnderlings})); - Future updateAdministrator(String uid, String keyName, - String endDate, String startDate, int isOnlyManageSelf, int keyType) => + Future updateAdministrator( + String uid, + String keyName, + String endDate, + String startDate, + int isOnlyManageSelf, + int keyType) => post( updateAdministratorURL.toUrl, jsonEncode({ @@ -2185,10 +2190,10 @@ class ApiProvider extends BaseProvider { ); // 添加短信模板 - Future> addSMSTemplate(int type, String name, + Future> addTemplateService(int type, String name, int contentType, String regards, String tips, String fixedKey) => post( - addSMSTemplateURL.toUrl, + addTemplateServiceURL.toUrl, jsonEncode({ 'type': type, 'name': name, diff --git a/lib/network/api_repository.dart b/lib/network/api_repository.dart index ef85485e..954aeaae 100755 --- a/lib/network/api_repository.dart +++ b/lib/network/api_repository.dart @@ -644,14 +644,14 @@ class ApiRepository { } //更新授权管理员 - Future updateAdministrator( - {required String uid, - required String keyName, - required String endDate, - required String startDate, - required int isOnlyManageSelf, - required int keyType, - }) async { + Future updateAdministrator({ + required String uid, + required String keyName, + required String endDate, + required String startDate, + required int isOnlyManageSelf, + required int keyType, + }) async { final res = await apiProvider.updateAdministrator( uid, keyName, endDate, startDate, isOnlyManageSelf, keyType); return AdministratorDetailEntity.fromJson(res.body); @@ -2209,14 +2209,14 @@ class ApiRepository { } // 添加短信模板 - Future addSMSTemplate( + Future addTemplateService( {required int type, required String name, required int contentType, required String regards, required String tips, required String fixedKey}) async { - final Response res = await apiProvider.addSMSTemplate( + final Response res = await apiProvider.addTemplateService( type, name, contentType, regards, tips, fixedKey); return LoginEntity.fromJson(res.body); } From ce46917c48f3a2b7950d95c8fe8407e70b0e7712 Mon Sep 17 00:00:00 2001 From: anfe <448468458@qq.com> Date: Wed, 5 Jun 2024 18:38:03 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=20test=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/main/lockMian/lockMain/lockMain_page.dart | 2 +- test/widget_test.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/main/lockMian/lockMain/lockMain_page.dart b/lib/main/lockMian/lockMain/lockMain_page.dart index 4400e484..34319dbe 100755 --- a/lib/main/lockMian/lockMain/lockMain_page.dart +++ b/lib/main/lockMian/lockMain/lockMain_page.dart @@ -55,7 +55,7 @@ class _StarLockMainPageState extends State with BaseWidget { setState(() {}); }); // if (mounted) { - // setState(() {}); + // setSŒe(() {}); // } } diff --git a/test/widget_test.dart b/test/widget_test.dart index 1c7575bf..a9af1c20 100755 --- a/test/widget_test.dart +++ b/test/widget_test.dart @@ -13,7 +13,7 @@ import 'package:star_lock/app.dart'; void main() { testWidgets('Counter increments smoke test', (WidgetTester tester) async { // Build our app and trigger a frame. - await tester.pumpWidget(const MyApp()); + await tester.pumpWidget(MyApp(isLogin: false)); // Verify that our counter starts at 0. expect(find.text('0'), findsOneWidget);