diff --git a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_page.dart b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_page.dart index 9986ff1e..4d3ff9b2 100755 --- a/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_page.dart +++ b/lib/main/lockDetail/electronicKey/massSendElectronicKey/massSendElectronicKey/massSendElectronicKey_page.dart @@ -205,7 +205,7 @@ class _MassSendElectronicKeyPageState extends State { action: () async { final result = await Get.toNamed(Routers.massSendLockGroupListPage, arguments: { - 'keyLimits': '1', + 'keyLimits': '2', 'lockIdList': state.lockIdList }); if (result != null && result.isNotEmpty) { diff --git a/lib/main/lockDetail/lockDetail/lockDetail_page.dart b/lib/main/lockDetail/lockDetail/lockDetail_page.dart index a4f4ec1d..b49677af 100755 --- a/lib/main/lockDetail/lockDetail/lockDetail_page.dart +++ b/lib/main/lockDetail/lockDetail/lockDetail_page.dart @@ -10,6 +10,7 @@ import 'package:star_lock/app_settings/app_colors.dart'; import 'package:star_lock/flavors.dart'; import 'package:star_lock/main/lockDetail/lockDetail/lockDetail_list_page.dart'; import 'package:star_lock/main/lockDetail/lockDetail/lockDetail_state.dart'; +import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart'; import 'package:star_lock/tools/aliyunRealNameAuth/aliyunRealNameAuthHandle.dart'; import 'package:star_lock/tools/showCupertinoAlertView.dart'; import 'package:star_lock/tools/showTipView.dart'; @@ -93,6 +94,18 @@ class _LockDetailPageState extends State //鑫泓佳布局 Widget xhjWidget() { + final bool isShowTip = (state.keyInfos.value.keyType == + XSConstantMacro.keyTypeTime || + state.keyInfos.value.keyType == + XSConstantMacro.keyTypeLoop) && // 限时、循环 + (DateTool().compareTimeGetDaysFromNow(state.keyInfos.value.endDate!) <= + 15 && + DateTool() + .compareTimeGetDaysFromNow(state.keyInfos.value.endDate!) >= + 0) && // 0到30天 + (state.keyInfos.value.keyStatus == XSConstantMacro.keyStatusNormalUse || + state.keyInfos.value.keyStatus == + XSConstantMacro.keyStatusWaitReceive); return Scaffold( backgroundColor: Colors.white, body: Obx(() { @@ -103,7 +116,7 @@ class _LockDetailPageState extends State child: Column( children: [ SizedBox( - height: 10.h, + height: isShowTip ? 70.h : 10.h, ), Padding( padding: EdgeInsets.symmetric(horizontal: 24.w), @@ -144,6 +157,23 @@ class _LockDetailPageState extends State ], ), ), + Visibility( + visible: isShowTip, + child: Container( + // height: 30.h, + color: const Color(0xFFFBEFD4), + padding: EdgeInsets.only(top: 8.h, bottom: 8.h), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "${"钥匙将在".tr}${DateTool().compareTimeGetDaysFromNow(state.keyInfos.value.endDate!)}${"天后失效".tr}", + style: TextStyle( + color: const Color(0xffCBA74B), fontSize: 24.sp)) + ], + ), + ), + ), Visibility( visible: state.iSClosedUnlockSuccessfulPopup.value, child: Container( @@ -1404,11 +1434,16 @@ class _LockDetailPageState extends State if (state.openLockBtnState.value == 1) { return; } + final bool isNetWork = LockMainLogic.to()?.judgeTheNetwork() ?? false; + final bool isOpenLockNeedOnline = state.isOpenLockNeedOnline.value == 0; + if (!isOpenLockNeedOnline && !isNetWork) { + return; + } state.iSOpenLock.value = true; state.openLockBtnState.value = 1; state.animationController!.forward(); AppLog.log('点击开锁'); - if (state.isOpenLockNeedOnline.value == 0) { + if (isOpenLockNeedOnline) { // 不需要联网 state.openDoorModel = 0; AppLog.log('点击开锁 state.openDoorModel = 0 不需要联网'); diff --git a/lib/main/lockMian/lockList/lockList_logic.dart b/lib/main/lockMian/lockList/lockList_logic.dart index b06b7f1f..57247151 100755 --- a/lib/main/lockMian/lockList/lockList_logic.dart +++ b/lib/main/lockMian/lockList/lockList_logic.dart @@ -1,5 +1,6 @@ import 'dart:async'; +import 'package:common_utils/common_utils.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/scheduler.dart'; import 'package:flutter_blue_plus/flutter_blue_plus.dart'; @@ -30,7 +31,8 @@ class LockListLogic extends BaseGetXController { LockListInfoGroupEntity? entity; List get groupDataList { - final List list = _groupDataList.map((e)=>e.copy()).toList(); + final List list = + _groupDataList.map((GroupList e) => e.copy()).toList(); if (state.searchStr.value != '' && state.showSearch.value) { list.forEach((GroupList element) { element.lockList?.removeWhere((LockListInfoItemEntity element) => @@ -141,6 +143,28 @@ class LockListLogic extends BaseGetXController { return ''; } + //判断是否要显示提示 + bool getShowType(LockListInfoItemEntity keyInfo) { + final List keyTypes = [ + XSConstantMacro.keyTypeTime, + XSConstantMacro.keyTypeLoop + ]; + final List keyStatus = [ + XSConstantMacro.keyStatusWaitIneffective, + XSConstantMacro.keyStatusFrozen, + XSConstantMacro.keyStatusExpired, + ]; + final DateTime endDate = + DateTime.fromMillisecondsSinceEpoch(keyInfo.endDate ?? 0); + final DateTime now = DateTime.now(); + final bool isKeyType = keyTypes.contains(keyInfo.keyType); + final bool isKeyStatus = keyStatus.contains(keyInfo.keyStatus); + final Duration difference = endDate.difference(now); + final bool isExpirationSoon = isKeyType && difference.inDays <= 15; + final bool isShow = isKeyType && isKeyStatus || isExpirationSoon; + return isShow; + } + /// 以下为删除逻辑 void deleyLockLogicOfRoles() { if (state.lockListInfoItemEntity.isLockOwner == 1) { diff --git a/lib/main/lockMian/lockList/lockList_page.dart b/lib/main/lockMian/lockList/lockList_page.dart index ccfc714d..d97b3c0c 100755 --- a/lib/main/lockMian/lockList/lockList_page.dart +++ b/lib/main/lockMian/lockList/lockList_page.dart @@ -14,7 +14,6 @@ import 'lockListGroup_view.dart'; import 'lockList_logic.dart'; class LockListPage extends StatefulWidget { - const LockListPage({required this.lockListInfoGroupEntity, Key? key}) : super(key: key); final LockListInfoGroupEntity lockListInfoGroupEntity; @@ -229,13 +228,7 @@ class _LockListPageState extends State with RouteAware { )), SizedBox(height: 20.h), Visibility( - visible: (keyInfo.keyType == XSConstantMacro.keyTypeTime || - keyInfo.keyType == XSConstantMacro.keyTypeLoop) && - (keyInfo.keyStatus == - XSConstantMacro.keyStatusWaitIneffective || - keyInfo.keyStatus == XSConstantMacro.keyStatusFrozen || - keyInfo.keyStatus == XSConstantMacro.keyStatusExpired), - // visible: true, + visible: logic.getShowType(keyInfo), child: Row( children: [ SizedBox(width: 30.w), diff --git a/lib/main/lockMian/lockList/lockList_xhj_page.dart b/lib/main/lockMian/lockList/lockList_xhj_page.dart index c86fdaaa..47d6fce9 100755 --- a/lib/main/lockMian/lockList/lockList_xhj_page.dart +++ b/lib/main/lockMian/lockList/lockList_xhj_page.dart @@ -360,14 +360,7 @@ class _LockListXHJPageState extends State with RouteAware { ], ), Visibility( - visible: (keyInfo.keyType == XSConstantMacro.keyTypeTime || - keyInfo.keyType == XSConstantMacro.keyTypeLoop) && - (keyInfo.keyStatus == - XSConstantMacro.keyStatusWaitIneffective || - keyInfo.keyStatus == - XSConstantMacro.keyStatusFrozen || - keyInfo.keyStatus == - XSConstantMacro.keyStatusExpired), + visible: logic.getShowType(keyInfo), child: Padding( padding: EdgeInsets.only(top: 5.h), child: Row( diff --git a/lib/main/lockMian/lockMain/lockMain_logic.dart b/lib/main/lockMian/lockMain/lockMain_logic.dart index b4d2ba83..6bd0b1ee 100755 --- a/lib/main/lockMian/lockMain/lockMain_logic.dart +++ b/lib/main/lockMian/lockMain/lockMain_logic.dart @@ -179,7 +179,7 @@ class LockMainLogic extends BaseGetXController { list.lockList ??= []; final int keyIndex = lockList.indexWhere( - (LockListInfoItemEntity lock) => lock.keyId == keyId) ?? + (LockListInfoItemEntity lock) => lock.lockId == lockId) ?? -1; if (keyIndex != -1) { //已存在 diff --git a/lib/tools/push/message_management.dart b/lib/tools/push/message_management.dart index 429dcc36..c274d858 100644 --- a/lib/tools/push/message_management.dart +++ b/lib/tools/push/message_management.dart @@ -24,6 +24,7 @@ class MessageManagement { if (extra.isEmpty) { return; } + AppLog.log(message.toString()); _shuntingBus(extra); }