From f9cffeb49f9318be71d4206973557c69cbc53de8 Mon Sep 17 00:00:00 2001 From: anfe <448468458@qq.com> Date: Mon, 17 Jun 2024 15:52:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E4=BF=AE=E6=94=B9=E5=BC=80=E9=94=81?= =?UTF-8?q?=E9=A1=B5=20ui?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lockDetail/lockDetail_page.dart | 189 ++++++++++++------ .../lockSet/lockSet/lockSet_logic.dart | 16 +- 2 files changed, 132 insertions(+), 73 deletions(-) diff --git a/lib/main/lockDetail/lockDetail/lockDetail_page.dart b/lib/main/lockDetail/lockDetail/lockDetail_page.dart index 9c235587..199ff1f2 100755 --- a/lib/main/lockDetail/lockDetail/lockDetail_page.dart +++ b/lib/main/lockDetail/lockDetail/lockDetail_page.dart @@ -1,6 +1,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -60,7 +61,9 @@ class _LockDetailPageState extends State _initRefreshLockDetailInfoDataEventAction(); logic.initReplySubscription(); logic.initLockSetOpenOrCloseCheckInRefreshLockDetailWithAttendanceAction(); - logic.loadData(lockListInfoItemEntity: widget.lockListInfoItemEntity, isOnlyOneData: widget.isOnlyOneData); + logic.loadData( + lockListInfoItemEntity: widget.lockListInfoItemEntity, + isOnlyOneData: widget.isOnlyOneData); } @override @@ -95,35 +98,50 @@ class _LockDetailPageState extends State final String lockAlias = state.keyInfos.value.lockAlias!; return Stack( children: [ - Column( - children: [ - SizedBox( - height: 15.h, - ), - Padding( - padding: EdgeInsets.symmetric(horizontal: 24.w), - child: Text( - lockAlias, - textAlign: TextAlign.center, - style: TextStyle(fontSize: 24.sp, color: Colors.black), + SingleChildScrollView( + child: Column( + children: [ + SizedBox( + height: 15.h, ), - ), - SizedBox( - height: 35.h, - ), - xhjInfoView(), - SizedBox( - height: 35.h, - ), - labelText('images/icon_slider_horizontal.png', '功能'.tr, () { - Get.to(LockDetailListPage( - title: '功能'.tr, items: getBottomWidget())); - }), - labelText('images/icon_puzzlepiece_extension.png', '配件'.tr, () { - Get.to(LockDetailListPage( - title: '配件'.tr, items: getAttachmentWidget())); - }), - ], + Padding( + padding: EdgeInsets.symmetric(horizontal: 24.w), + child: Text( + lockAlias, + textAlign: TextAlign.center, + style: TextStyle(fontSize: 24.sp, color: Colors.black), + ), + ), + SizedBox( + height: 35.h, + ), + xhjInfoView(), + SizedBox( + height: 35.h, + ), + labelText( + img: 'images/icon_slider_horizontal.png', + text: '功能'.tr, + child: bottomWidget()), + labelText( + img: 'images/icon_puzzlepiece_extension.png', + text: '配件'.tr, + child: attachmentWidget()), + btnText( + img: 'images/main/icon_main_set.png', + text: TranslationLoader.lanKeys!.set!.tr, + onTap: () { + if (state.openDoorBtnisUneable.value == false) { + return; + } + Get.toNamed(Routers.lockSetPage, + arguments: { + 'lockId': state.keyInfos.value.lockId, + 'isOnlyOneData': state.isOnlyOneData + }); + }), + ], + ), ), Visibility( visible: state.iSClosedUnlockSuccessfulPopup.value, @@ -139,7 +157,8 @@ class _LockDetailPageState extends State ); } - Widget labelText(String img, String text, var onTap) { + Widget btnText( + {required String img, required String text, required var onTap}) { return GestureDetector( onTap: onTap, child: Container( @@ -152,16 +171,19 @@ class _LockDetailPageState extends State BoxShadow( color: Colors.black.withOpacity(0.15), offset: const Offset(0, 0), - blurRadius: 10.r, + blurRadius: 5.r, spreadRadius: 0, ), ]), child: Row( children: [ - Image.asset( - img, - width: 32.r, - height: 32.r, + FlavorsImg( + black: true, + child: Image.asset( + img, + width: 32.r, + height: 32.r, + ), ), SizedBox( width: 15.w, @@ -181,6 +203,49 @@ class _LockDetailPageState extends State ); } + Widget labelText( + {required String img, required String text, required Widget child}) { + return Container( + margin: EdgeInsets.symmetric(horizontal: 0.05.sw, vertical: 15.h), + padding: EdgeInsets.symmetric(horizontal: 0.05.sw, vertical: 20.h), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16.r), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.15), + offset: const Offset(0, 0), + blurRadius: 5.r, + spreadRadius: 0, + ), + ]), + child: Column( + children: [ + Row( + children: [ + Image.asset( + img, + width: 32.r, + height: 32.r, + ), + SizedBox( + width: 15.w, + ), + Text( + text, + style: TextStyle(fontSize: 24.sp, color: AppColors.blackColor), + ), + ], + ), + SizedBox( + height: 18.h, + ), + child, + ], + ), + ); + } + Widget xhjInfoView() { return Container( width: 0.9.sw, @@ -294,7 +359,7 @@ class _LockDetailPageState extends State BoxShadow( color: Colors.black.withOpacity(0.3), offset: const Offset(0, 0), - blurRadius: 10.r, + blurRadius: 15.r, spreadRadius: 0, ), ]), @@ -836,6 +901,7 @@ class _LockDetailPageState extends State // childAspectRatio: 3, crossAxisSpacing: 20.w, mainAxisSpacing: 0.h, + shrinkWrap: true, physics: const NeverScrollableScrollPhysics(), children: getAttachmentWidget()), ); @@ -880,7 +946,8 @@ class _LockDetailPageState extends State crossAxisCount: 4, // childAspectRatio: 3, crossAxisSpacing: 25.h, - mainAxisSpacing: 0.h, + mainAxisSpacing: 5.h, + shrinkWrap: true, physics: const NeverScrollableScrollPhysics(), children: getBottomWidget()), ); @@ -922,13 +989,15 @@ class _LockDetailPageState extends State })); // 设置 - showWidgetArr.add(bottomItem('images/main/icon_main_set.png', - TranslationLoader.lanKeys!.set!.tr, true, () { - Get.toNamed(Routers.lockSetPage, arguments: { - 'lockId': state.keyInfos.value.lockId, - 'isOnlyOneData': state.isOnlyOneData - }); - })); + if (F.isSKY) { + showWidgetArr.add(bottomItem('images/main/icon_main_set.png', + TranslationLoader.lanKeys!.set!.tr, true, () { + Get.toNamed(Routers.lockSetPage, arguments: { + 'lockId': state.keyInfos.value.lockId, + 'isOnlyOneData': state.isOnlyOneData + }); + })); + } return showWidgetArr; } @@ -1106,17 +1175,19 @@ class _LockDetailPageState extends State }), ); - endWiddget.add( - // 设置 - bottomItem('images/main/icon_main_set.png', - TranslationLoader.lanKeys!.set!.tr, true, () { - // logic.clickItemBtnAction(10); - Get.toNamed(Routers.lockSetPage, arguments: { - 'lockId': state.keyInfos.value.lockId, - 'isOnlyOneData': state.isOnlyOneData, - }); - }), - ); + if (F.isSKY) { + endWiddget.add( + // 设置 + bottomItem('images/main/icon_main_set.png', + TranslationLoader.lanKeys!.set!.tr, true, () { + // logic.clickItemBtnAction(10); + Get.toNamed(Routers.lockSetPage, arguments: { + 'lockId': state.keyInfos.value.lockId, + 'isOnlyOneData': state.isOnlyOneData, + }); + }), + ); + } showWidgetArr.addAll(endWiddget); return showWidgetArr; } @@ -1158,13 +1229,13 @@ class _LockDetailPageState extends State xhjCall: () => Container( color: Colors.white, margin: EdgeInsets.symmetric(vertical: 5.h), - padding: EdgeInsets.symmetric(vertical: 15.h, horizontal: 15.w), - child: Row( + child: Column( crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, children: [ SizedBox( width: 42.w, - height: 42.h, + height: 42.w, child: FlavorsImg( black: true, child: Image.asset(iconUrl, @@ -1176,7 +1247,7 @@ class _LockDetailPageState extends State fit: BoxFit.fitWidth), ), ), - SizedBox(width: 20.w), + SizedBox(height: 20.h), Text( name, style: TextStyle( diff --git a/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart b/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart index ccb615d3..2d75668b 100755 --- a/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart +++ b/lib/main/lockDetail/lockSet/lockSet/lockSet_logic.dart @@ -569,15 +569,10 @@ class LockSetLogic extends BaseGetXController { ); if (entity.errorCode!.codeIsSuccessful) { BlueManage().connectDeviceMacAddress = ''; - final bool isXHJ = F.isXHJ; final bool isOnlyOneData = state.isOnlyOneData.value == true; await Future.delayed(const Duration(milliseconds: 200)) .then((e) { - if (isXHJ) { - Get.close(3); - } else { - Get.close(isOnlyOneData ? 1 : 2); - } + Get.close(isOnlyOneData ? 1 : 2); }); SchedulerBinding.instance.addPostFrameCallback((_) { eventBus.fire(RefreshLockListInfoDataEvent()); @@ -594,17 +589,10 @@ class LockSetLogic extends BaseGetXController { state.deleteAdministratorIsHaveAllData.value == true ? 1 : 0); if (entity.errorCode!.codeIsSuccessful) { BlueManage().connectDeviceMacAddress = ''; - - final bool isXHJ = F.isXHJ; final bool isOnlyOneData = state.isOnlyOneData.value == true; await Future.delayed(const Duration(milliseconds: 200)) .then((e) { - if (isXHJ) { - Get.close(3); - } else { - final int onlyOneDataInt = isOnlyOneData ? 1 : 2; - Get.close(onlyOneDataInt); - } + Get.close(isOnlyOneData ? 1 : 2); }); SchedulerBinding.instance.addPostFrameCallback((_) { eventBus.fire(RefreshLockListInfoDataEvent());