diff --git a/assets/icons/cube_card.svg b/assets/icons/cube_card.svg new file mode 100644 index 0000000..d20d965 --- /dev/null +++ b/assets/icons/cube_card.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/excel_download.svg b/assets/icons/excel_download.svg index a1c7e4b..b2597c5 100644 --- a/assets/icons/excel_download.svg +++ b/assets/icons/excel_download.svg @@ -1,12 +1,18 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/assets/icons/pdf_download.svg b/assets/icons/pdf_download.svg index bb80401..fb17107 100644 --- a/assets/icons/pdf_download.svg +++ b/assets/icons/pdf_download.svg @@ -1,12 +1,15 @@ - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/assets/vec/cube_card.svg.vec b/assets/vec/cube_card.svg.vec new file mode 100644 index 0000000..786a6e3 Binary files /dev/null and b/assets/vec/cube_card.svg.vec differ diff --git a/assets/vec/excel_download.svg.vec b/assets/vec/excel_download.svg.vec index 623671d..9d5ec2e 100644 Binary files a/assets/vec/excel_download.svg.vec and b/assets/vec/excel_download.svg.vec differ diff --git a/assets/vec/pdf_download.svg.vec b/assets/vec/pdf_download.svg.vec index b74b222..50636b5 100644 Binary files a/assets/vec/pdf_download.svg.vec and b/assets/vec/pdf_download.svg.vec differ diff --git a/packages/core/lib/presentation/common/assets.gen.dart b/packages/core/lib/presentation/common/assets.gen.dart index 4bbf174..aa17d8b 100644 --- a/packages/core/lib/presentation/common/assets.gen.dart +++ b/packages/core/lib/presentation/common/assets.gen.dart @@ -100,6 +100,9 @@ class $AssetsIconsGen { /// File path: assets/icons/cube_bottom_rotation.svg SvgGenImage get cubeBottomRotation => const SvgGenImage('assets/icons/cube_bottom_rotation.svg'); + /// File path: assets/icons/cube_card.svg + SvgGenImage get cubeCard => const SvgGenImage('assets/icons/cube_card.svg'); + /// File path: assets/icons/cube_rotate.svg SvgGenImage get cubeRotate => const SvgGenImage('assets/icons/cube_rotate.svg'); @@ -293,6 +296,7 @@ class $AssetsIconsGen { cow, cube, cubeBottomRotation, + cubeCard, cubeRotate, cubeScan, cubeSearch, @@ -453,6 +457,9 @@ class $AssetsVecGen { /// File path: assets/vec/cube_bottom_rotation.svg.vec SvgGenImage get cubeBottomRotationSvg => const SvgGenImage.vec('assets/vec/cube_bottom_rotation.svg.vec'); + /// File path: assets/vec/cube_card.svg.vec + SvgGenImage get cubeCardSvg => const SvgGenImage.vec('assets/vec/cube_card.svg.vec'); + /// File path: assets/vec/cube_rotate.svg.vec SvgGenImage get cubeRotateSvg => const SvgGenImage.vec('assets/vec/cube_rotate.svg.vec'); @@ -646,6 +653,7 @@ class $AssetsVecGen { cowSvg, cubeSvg, cubeBottomRotationSvg, + cubeCardSvg, cubeRotateSvg, cubeScanSvg, cubeSearchSvg, diff --git a/packages/inspection/lib/presentation/pages/statistics/view.dart b/packages/inspection/lib/presentation/pages/statistics/view.dart index e369e6f..4d05d6e 100644 --- a/packages/inspection/lib/presentation/pages/statistics/view.dart +++ b/packages/inspection/lib/presentation/pages/statistics/view.dart @@ -150,57 +150,102 @@ class StatisticsPage extends GetView { ), SizedBox(height: 8.h), Container( - height: 152.h, + decoration: BoxDecoration( borderRadius: BorderRadius.circular(8), border: Border.all(color: AppColor.lightGreyNormalHover, width: 1), ), - child: Padding( - padding: const EdgeInsets.fromLTRB(0, 10, 0, 13), - child: Row( - spacing: 8, - children: [ - Expanded( - child: ObxValue( - (data) => _informationLabelCard( - title: 'تعداد تراکنش ها', - titleColor: AppColor.blueNormal, - isLoading: data.value == null, - description: 25369654.separatedByComma, - iconPath: Assets.vec.cubeSearchSvg.path, - iconColor: AppColor.blueNormal, - bgDescriptionColor: Colors.white, - gradient: LinearGradient( - begin: Alignment.topCenter, - end: Alignment.bottomCenter, - colors: [AppColor.blueLight, Colors.white], + padding: EdgeInsets.all(8), + child: Column( + spacing: 8, + children: [ + Row( + spacing: 8, + children: [ + Expanded( + child: ObxValue( + (data) => _informationLabelCard( + title: 'تعداد تراکنش ها', + titleColor: AppColor.blueNormal, + isLoading: data.value == null, + description: 25369654.separatedByComma, + iconPath: Assets.vec.cubeScanSvg.path, + bgDescriptionColor: Colors.white, + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [AppColor.blueLight, Colors.white], + ), ), + controller.s1, ), - controller.s1, ), - ), - Expanded( - child: ObxValue((data) { - return _informationLabelCard( - title: 'جمع تراکنش ها', - isLoading: data.value == null, - description: data.value.separatedByComma ?? '0', - unit: 'ريال', - iconPath: Assets.vec.cubeWattingSvg.path, - bgDescriptionColor: Colors.white, - gradient: LinearGradient( - begin: Alignment.topCenter, - end: Alignment.bottomCenter, - colors: [const Color(0xFFFFE7BB), Colors.white], - ), - ); - }, controller.s2), - ), - ], - ), + Expanded( + child: ObxValue((data) { + return _informationLabelCard( + title: 'جمع تراکنش ها', + isLoading: data.value == null, + description: data.value.separatedByComma ?? '0', + unit: 'ريال', + iconPath: Assets.vec.cubeCardSvg.path, + bgDescriptionColor: Colors.white, + titleColor: AppColor.greenDarkHover, + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [AppColor.greenLightHover, Colors.white], + ), + ); + }, controller.s2), + ), + ], + ), + Row( + spacing: 16, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + RElevated( + width: 160.w, + height: 40.h, + backgroundColor: AppColor.greenNormal, + onPressed: () {}, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Assets.vec.excelDownloadSvg.svg( + width: 24.w, + height: 24.h, + colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn), + ), + SizedBox(width: 4.w), + Text('EXCEL', style: AppFonts.yekan14.copyWith(color: Colors.white)), + ], + ), + ), + ROutlinedElevated( + width: 160.w, + height: 40.h, + borderColor: AppColor.error, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Assets.vec.pdfDownloadSvg.svg( + width: 24.w, + height: 24.h, + colorFilter: const ColorFilter.mode(AppColor.error, BlendMode.srcIn), + ), + SizedBox(width: 4.w), + Text('PDF', style: AppFonts.yekan14.copyWith(color: AppColor.error)), + ], + ), + ), + ], + ), + ], ), ), + SizedBox(height: 8.h), ], ), ); @@ -239,7 +284,6 @@ class StatisticsPage extends GetView { }) { return Container( height: 82.h, - margin: EdgeInsets.symmetric(horizontal: 12.w), decoration: BoxDecoration( borderRadius: BorderRadius.circular(8), border: Border.all(color: AppColor.lightGreyNormalHover, width: 1), @@ -249,10 +293,10 @@ class StatisticsPage extends GetView { children: [ // Left side with icon and title Expanded( - flex: 2, + flex: 91, child: Container( height: 82.h, - padding: EdgeInsets.all(8), + padding: EdgeInsets.all(4), decoration: BoxDecoration( color: gradient == null ? bgLabelColor : null, borderRadius: BorderRadius.only( @@ -263,7 +307,7 @@ class StatisticsPage extends GetView { ), child: Column( mainAxisAlignment: MainAxisAlignment.center, - spacing: 4, + spacing: 8, children: [ SvgGenImage.vec(iconPath).svg( width: 24, @@ -285,7 +329,7 @@ class StatisticsPage extends GetView { ), // Right side with description and unit Expanded( - flex: 3, + flex: 109, child: Container( decoration: BoxDecoration( color: bgDescriptionColor, @@ -302,13 +346,13 @@ class StatisticsPage extends GetView { children: [ Text( description, - textAlign: TextAlign.right, - style: AppFonts.yekan16.copyWith(color: AppColor.mediumGreyDarkActive), + textAlign: TextAlign.center, + style: AppFonts.yekan14.copyWith(color: AppColor.mediumGreyDarkActive), ), Visibility( visible: unit != null, child: Text( - unit, + unit ?? '', textAlign: TextAlign.center, style: AppFonts.yekan12.copyWith(color: AppColor.mediumGreyDarkActive), ),