diff --git a/lib/main/lockDetail/lockDetail/lockDetail_page.dart b/lib/main/lockDetail/lockDetail/lockDetail_page.dart index a4f4ec1d..400c0c2a 100755 --- a/lib/main/lockDetail/lockDetail/lockDetail_page.dart +++ b/lib/main/lockDetail/lockDetail/lockDetail_page.dart @@ -93,6 +93,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 +115,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 +156,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( 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(