diff --git a/images/main/icon_lockDetail_needNetwork.png b/images/main/icon_lockDetail_needNetwork.png new file mode 100644 index 00000000..32a741f0 Binary files /dev/null and b/images/main/icon_lockDetail_needNetwork.png differ diff --git a/lib/main/lockDetail/lockDetail/lockDetail_page.dart b/lib/main/lockDetail/lockDetail/lockDetail_page.dart index 63d46fa0..f4193511 100755 --- a/lib/main/lockDetail/lockDetail/lockDetail_page.dart +++ b/lib/main/lockDetail/lockDetail/lockDetail_page.dart @@ -253,6 +253,72 @@ class _LockDetailPageState extends State crossAxisAlignment: CrossAxisAlignment.center, children: [ const Spacer(), + Positioned( + child: GestureDetector( + onTap: () { + ShowTipView().showSureAlertDialog( + "${"锁电量更新时间:".tr}${DateTool().dateToYMDHNString(state.keyInfos.value.electricQuantityDate!.toString())}"); + }, + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Image.asset(showElectricIcon(state.electricQuantity.value), + width: 30.w, height: 24.w), + SizedBox(width: 2.w), + Text('${state.electricQuantity.value}%', + style: TextStyle( + fontSize: 18.sp, + color: AppColors.darkGrayTextColor)), + SizedBox(width: 2.w), + Icon( + Icons.info, // 使用内置的 warning 图标,它是一个叹号 + color: AppColors.mainColor, // 设置图标颜色为红色 + size: 25.w, // 设置图标大小为 30 + ), + SizedBox(width: 20.w), + ], + ), + SizedBox( + height: 15.h, + ), + Visibility( + visible: state + .keyInfos.value.lockFeature!.isSupportBackupBattery == + 1, + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + FlavorsImg( + child: Image.asset( + showElectricIcon( + state.electricQuantityStandby.value), + width: 30.w, + height: 24.w), + ), + SizedBox(width: 2.w), + Text('${state.electricQuantityStandby.value}%', + style: TextStyle( + fontSize: 18.sp, + color: AppColors.darkGrayTextColor)), + SizedBox(width: 2.w), + FlavorsImg( + child: Icon( + Icons.info, // 使用内置的 warning 图标,它是一个叹号 + color: AppColors.mainColor, // 设置图标颜色为红色 + size: 25.w, // 设置图标大小为 30 + ), + ), + SizedBox(width: 20.w), + ], + ), + ) + ], + ), + )), GestureDetector( onTap: () { if (state.openDoorBtnisUneable.value == true) { @@ -282,7 +348,7 @@ class _LockDetailPageState extends State spreadRadius: 0, ), ]), - margin: EdgeInsets.only(top: 20.h), + margin: EdgeInsets.only(top: 0.h), child: Stack( alignment: AlignmentDirectional.center, children: [ @@ -326,10 +392,10 @@ class _LockDetailPageState extends State Padding( padding: EdgeInsets.only(left: 15.w, right: 00.w, bottom: 15.h), child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, + mainAxisAlignment: MainAxisAlignment.center, children: [ Column( - crossAxisAlignment: CrossAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( TranslationLoader @@ -339,76 +405,12 @@ class _LockDetailPageState extends State fontSize: 20.sp, ), ), + SizedBox( + height: 16.h, + ), adminInfoView(center: false, max: false), ], ), - GestureDetector( - onTap: () { - ShowTipView().showSureAlertDialog( - "${"锁电量更新时间:".tr}${DateTool().dateToYMDHNString(state.keyInfos.value.electricQuantityDate!.toString())}"); - }, - child: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Image.asset( - showElectricIcon(state.electricQuantity.value), - width: 30.w, - height: 24.w), - SizedBox(width: 2.w), - Text('${state.electricQuantity.value}%', - style: TextStyle( - fontSize: 18.sp, - color: AppColors.darkGrayTextColor)), - SizedBox(width: 2.w), - Icon( - Icons.info, // 使用内置的 warning 图标,它是一个叹号 - color: AppColors.mainColor, // 设置图标颜色为红色 - size: 25.w, // 设置图标大小为 30 - ), - SizedBox(width: 20.w), - ], - ), - SizedBox( - height: 15.h, - ), - Visibility( - visible: state.keyInfos.value.lockFeature! - .isSupportBackupBattery == - 1, - child: Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - FlavorsImg( - child: Image.asset( - showElectricIcon( - state.electricQuantityStandby.value), - width: 30.w, - height: 24.w), - ), - SizedBox(width: 2.w), - Text('${state.electricQuantityStandby.value}%', - style: TextStyle( - fontSize: 18.sp, - color: AppColors.darkGrayTextColor)), - SizedBox(width: 2.w), - FlavorsImg( - child: Icon( - Icons.info, // 使用内置的 warning 图标,它是一个叹号 - color: AppColors.mainColor, // 设置图标颜色为红色 - size: 25.w, // 设置图标大小为 30 - ), - ), - SizedBox(width: 20.w), - ], - ), - ) - ], - ), - ) ], ), ) @@ -760,6 +762,24 @@ class _LockDetailPageState extends State ? AppColors.mainColor : AppColors.btnDisableColor), ), + if (add) SizedBox(width: 20.w) else SizedBox(width: 40.w), + FlavorsImg( + child: Image.asset('images/main/icon_lockDetail_needNetwork.png', + width: 24.w, + height: 20.w, + color: state.keyInfos.value.appUnlockOnline == 1 + ? AppColors.mainColor + : AppColors.btnDisableColor), + ), + SizedBox(width: 6.w), + Text( + '手机需联网', + style: TextStyle( + fontSize: 20.sp, + color: state.keyInfos.value.appUnlockOnline == 1 + ? AppColors.mainColor + : AppColors.btnDisableColor), + ), if (add) ...[ const Spacer(), GestureDetector( diff --git a/lib/main/lockMian/entity/lockListInfo_entity.dart b/lib/main/lockMian/entity/lockListInfo_entity.dart index c3a63756..b3c62d17 100755 --- a/lib/main/lockMian/entity/lockListInfo_entity.dart +++ b/lib/main/lockMian/entity/lockListInfo_entity.dart @@ -133,6 +133,7 @@ class LockListInfoItemEntity { LockFeature? lockFeature; LockSetting? lockSetting; int? hasGateway; + int? appUnlockOnline; String? mac; LockListInfoItemEntity({ @@ -169,6 +170,7 @@ class LockListInfoItemEntity { this.model, this.vendor, this.hasGateway, + this.appUnlockOnline, this.mac, }); @@ -212,6 +214,7 @@ class LockListInfoItemEntity { ? LockSetting.fromJson(json['lockSetting']) : null; hasGateway = json['hasGateway']; + appUnlockOnline = json['appUnlockOnline']; mac = json['mac']; } @@ -256,6 +259,7 @@ class LockListInfoItemEntity { data['lockSetting'] = lockSetting!.toJson(); } data['hasGateway'] = hasGateway; + data['appUnlockOnline'] = appUnlockOnline; data['mac'] = mac; return data; }