From 50d708469cbdc7dbc79de6719ac68214627818a3 Mon Sep 17 00:00:00 2001 From: "mr.mojtaba" Date: Sun, 21 Sep 2025 14:32:58 +0330 Subject: [PATCH] feat : new ui --- assets/icons/calendar_tick.svg | 20 + assets/icons/chicken_house.svg | 12 + assets/icons/farm.svg | 9 + assets/images/bg_chicken_pattern.webp | Bin 0 -> 37186 bytes assets/images/poultry_action.webp | Bin 69774 -> 0 bytes assets/vec/calendar_tick.svg.vec | Bin 0 -> 2712 bytes assets/vec/chicken_house.svg.vec | Bin 0 -> 1072 bytes assets/vec/farm.svg.vec | Bin 0 -> 5206 bytes lib/main.dart | 8 +- lib/presentation/pages/modules/view.dart | 223 ++++----- .../pages/poultry_science/genocide/logic.dart | 29 ++ .../pages/poultry_science/genocide/view.dart | 148 +++--- .../killing_registration/view.dart | 466 ++++++++++-------- .../poultry_science/poultry_action/view.dart | 76 ++- .../pages/poultry_science/root/view.dart | 132 ++--- .../lib/presentation/routes/pages.dart | 1 + .../presentation/widget/base_page/view.dart | 10 +- .../lib/presentation/common/app_color.dart | 3 + .../lib/presentation/common/assets.gen.dart | 32 +- .../widget/card/card_icon_widget.dart | 156 +++++- .../widget/check_box/check_box_widget.dart | 45 ++ .../presentation/widget/list_row_item.dart | 3 +- .../core/lib/presentation/widget/widget.dart | 1 + 23 files changed, 872 insertions(+), 502 deletions(-) create mode 100644 assets/icons/calendar_tick.svg create mode 100644 assets/icons/chicken_house.svg create mode 100644 assets/icons/farm.svg create mode 100644 assets/images/bg_chicken_pattern.webp delete mode 100644 assets/images/poultry_action.webp create mode 100644 assets/vec/calendar_tick.svg.vec create mode 100644 assets/vec/chicken_house.svg.vec create mode 100644 assets/vec/farm.svg.vec create mode 100644 packages/core/lib/presentation/widget/check_box/check_box_widget.dart diff --git a/assets/icons/calendar_tick.svg b/assets/icons/calendar_tick.svg new file mode 100644 index 0000000..ba30919 --- /dev/null +++ b/assets/icons/calendar_tick.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + diff --git a/assets/icons/chicken_house.svg b/assets/icons/chicken_house.svg new file mode 100644 index 0000000..a662966 --- /dev/null +++ b/assets/icons/chicken_house.svg @@ -0,0 +1,12 @@ + + + + + + + diff --git a/assets/icons/farm.svg b/assets/icons/farm.svg new file mode 100644 index 0000000..97e350d --- /dev/null +++ b/assets/icons/farm.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/assets/images/bg_chicken_pattern.webp b/assets/images/bg_chicken_pattern.webp new file mode 100644 index 0000000000000000000000000000000000000000..90eca177e2f3531e2ebec4eb08c8dc5be8d96d34 GIT binary patch literal 37186 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 literal 0 HcmV?d00001 diff --git a/assets/images/poultry_action.webp b/assets/images/poultry_action.webp deleted file mode 100644 index 12da843d898c9eac462c9ce4ce46f7d298140c29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69774 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 O4a6CkZGc~$k;p&npK6 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 main() async { Get.put(AppAuthRouteResolver()); Get.put(AuthMiddleware()); - //runApp(MyApp()); + runApp(MyApp()); - runApp(DevicePreview(builder: (context) => ForDevicePreview(),)); + //runApp(DevicePreview(builder: (context) => ForDevicePreview(),)); } class ForDevicePreview extends StatelessWidget { @@ -60,7 +60,7 @@ class ForDevicePreview extends StatelessWidget { } } -/*class MyApp extends StatelessWidget { +class MyApp extends StatelessWidget { const MyApp({super.key}); @override @@ -90,4 +90,4 @@ class ForDevicePreview extends StatelessWidget { ), ); } -}*/ +} diff --git a/lib/presentation/pages/modules/view.dart b/lib/presentation/pages/modules/view.dart index 02dd85d..3f56c85 100644 --- a/lib/presentation/pages/modules/view.dart +++ b/lib/presentation/pages/modules/view.dart @@ -21,129 +21,124 @@ class ModulesPage extends GetView { centerTitle: true, backgroundColor: AppColor.blueNormal, ), - body: Stack( - fit: StackFit.expand, - alignment: Alignment.center, - children: [ - Positioned.fill( - child: Column( - children: [ - SizedBox(height: 12.h), - SliderWidget(widgetTag: "up"), + body: ObxValue((loading) { + if (!controller.isLoading.value) { + return buildMainWidget(); + } + return buildLoading(); + }, controller.isLoading), + ); + } - SizedBox( - height: 244.h, - child: GridView.builder( + Container buildLoading() { + return Container( + color: Colors.grey.withValues(alpha: 0.5), + child: Center(child: CupertinoActivityIndicator(color: AppColor.greenNormal, radius: 30)), + ); + } - padding: EdgeInsets.symmetric(horizontal: 25.w, vertical: 24.h), - itemBuilder: (context, index) { - final module = controller.moduleList[index]; - return CardIcon( - title: module.title, - svgIcon: module.icon, - borderColor: module.borderColor, - backgroundColor: module.backgroundColor, - titleColor: module.titleColor, - onTap: () => controller.onTapCard(module.module, index), - ); - }, - gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 3, - mainAxisSpacing: 22.h, - crossAxisSpacing: 16.w, - ), - physics: NeverScrollableScrollPhysics(), - itemCount: controller.moduleList.length, - ), + Column buildMainWidget() { + return Column( + children: [ + SizedBox(height: 12.h,), + SliderWidget(widgetTag: "up"), + SizedBox(height: 12.h,), + SizedBox( + height: 278.h, + child: GridView.builder( + padding: EdgeInsetsGeometry.symmetric(horizontal: 16.w), + itemBuilder: (context, index) { + final module = controller.moduleList[index]; + return CardIcon( + title: module.title, + svgIcon: module.icon, + borderColor: module.borderColor, + backgroundColor: module.backgroundColor, + titleColor: module.titleColor, + onTap: () => controller.onTapCard(module.module, index), + ); + }, + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 3, + mainAxisSpacing: 22.h, + crossAxisSpacing: 16.w, ), - - Container( - height: 107.h, - margin: EdgeInsets.symmetric(horizontal: 16.w), - padding: EdgeInsets.fromLTRB(11.w, 8.h, 8.w, 12.h), - decoration: BoxDecoration( - gradient: LinearGradient( - begin: Alignment(0.00, 0.50), - end: Alignment(1.00, 0.50), - colors: [const Color(0xFFC9D5FF), Colors.white], - ), - borderRadius: BorderRadius.circular(8), - border: Border.all(width: 1.w, color: const Color(0xFFD3D3D3)), - ), - child: Row( - spacing: 11.w, - children: [ - Expanded( - flex: 2, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - 'آخرین اخبار ', - textAlign: TextAlign.right, - style: AppFonts.yekan16.copyWith( - color: Color(0xFF5B5B5B), - height: 1.90, - ), - ), - ObxValue( - (data) => Text( - data.value ?? - 'اخبار مربوط به جوجه ریزی استان از آخرین روند مطلع شوید...', - maxLines: 2, - style: AppFonts.yekan12.copyWith( - color: Color(0xFF5B5B5B), - height: 1.5, - overflow: TextOverflow.ellipsis, - ), - ), - controller.latestNews, - ), - ], + physics: NeverScrollableScrollPhysics(), + itemCount: controller.moduleList.length, + ), + ), + Container( + height: 107.h, + margin: EdgeInsets.symmetric(horizontal: 16.w), + padding: EdgeInsets.fromLTRB(11.w, 8.h, 8.w, 12.h), + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment(0.00, 0.50), + end: Alignment(1.00, 0.50), + colors: [const Color(0xFFC9D5FF), Colors.white], + ), + borderRadius: BorderRadius.circular(8), + border: Border.all(width: 1.w, color: const Color(0xFFD3D3D3)), + ), + child: Row( + spacing: 11.w, + children: [ + Expanded( + flex: 2, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'آخرین اخبار ', + textAlign: TextAlign.right, + style: AppFonts.yekan16.copyWith( + color: Color(0xFF5B5B5B), + height: 1.90, + ), ), - ), - Column( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Container( - width: 103.w, - height: 24.h, - alignment: Alignment.center, - decoration: ShapeDecoration( - color: Colors.white, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(50.r), - ), - ), - child: Text( - 'اطلاعات بیشتر', - textAlign: TextAlign.right, - style: AppFonts.yekan14, + ObxValue( + (data) => Text( + data.value ?? + 'اخبار مربوط به جوجه ریزی استان از آخرین روند مطلع شوید...', + maxLines: 2, + style: AppFonts.yekan12.copyWith( + color: Color(0xFF5B5B5B), + height: 1.5, + overflow: TextOverflow.ellipsis, ), ), - ], + controller.latestNews, + ), + ], + ), + ), + Column( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Container( + width: 103.w, + height: 24.h, + alignment: Alignment.center, + decoration: ShapeDecoration( + color: Colors.white, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(50.r), + ), + ), + child: Text( + 'اطلاعات بیشتر', + textAlign: TextAlign.right, + style: AppFonts.yekan14, + ), ), ], ), - ), - - SizedBox(height: 12.h), - SliderWidget(height: 160, widgetTag: "down"), - SizedBox(height: 20.h), - ], - ), - ), - ObxValue((loading) { - if (!controller.isLoading.value) return SizedBox.shrink(); - return Container( - color: Colors.grey.withValues(alpha: 0.5), - child: Center( - child: CupertinoActivityIndicator(color: AppColor.greenNormal, radius: 30), + ], ), - ); - }, controller.isLoading), - ], - ), - ); + ), + SizedBox(height: 12.h,), + SliderWidget(height: 160, widgetTag: "down"), + ], + ); } } diff --git a/packages/chicken/lib/presentation/pages/poultry_science/genocide/logic.dart b/packages/chicken/lib/presentation/pages/poultry_science/genocide/logic.dart index bd73ec7..332cc67 100644 --- a/packages/chicken/lib/presentation/pages/poultry_science/genocide/logic.dart +++ b/packages/chicken/lib/presentation/pages/poultry_science/genocide/logic.dart @@ -100,4 +100,33 @@ class GenocideLogic extends GetxController { void toggleExpanded(int index) { expandedIndex.value = expandedIndex.value == index ? -1 : index; } + + + String getRequestType(PoultryOrder item) { + if (item.market ?? false) { + return 'پنل معاملات'; + } else if (item.union ?? false) { + return 'اتحادیه'; + } else { + return 'خرید مستقیم'; + } + } + + String getKillType(PoultryOrder item) { + if (item.export ?? false) { + return 'صادرات'; + } else if (item.freezing ?? false) { + return 'انجماد'; + } else { + return 'عادی'; + } + } + + String getState(PoultryOrder item) { + if (item.stateProcess == 'pending') { + return 'در انتظار تایید'; + } else { + return 'تایید شده'; + } + } } diff --git a/packages/chicken/lib/presentation/pages/poultry_science/genocide/view.dart b/packages/chicken/lib/presentation/pages/poultry_science/genocide/view.dart index 430585c..0cb67fc 100644 --- a/packages/chicken/lib/presentation/pages/poultry_science/genocide/view.dart +++ b/packages/chicken/lib/presentation/pages/poultry_science/genocide/view.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:rasadyar_chicken/data/models/response/poultry_order/poultry_order.dart'; -import 'package:rasadyar_chicken/presentation/routes/routes.dart'; +import 'package:rasadyar_chicken/presentation/pages/poultry_science/killing_registration/view.dart'; import 'package:rasadyar_chicken/presentation/utils/nested_keys_utils.dart'; import 'package:rasadyar_chicken/presentation/widget/base_page/view.dart'; import 'package:rasadyar_chicken/presentation/widget/filter_bottom_sheet.dart'; @@ -23,48 +23,59 @@ class GenocidePage extends GetView { }, filteringWidget: filterBottomSheet(), onBackPressed: () => Get.back(id: poultryFirstKey), - floatingActionButtonLocation: FloatingActionButtonLocation.startFloat, - floatingActionButton: RFab.add( - onPressed: () { - Get.toNamed(ChickenRoutes.killingRegistrationPoultryScience, id: poultryFirstKey); - }, + child: Stack( + fit: StackFit.expand, + children: [ + Positioned.fill(child: poultryOrderListWidget()), + Positioned( + bottom: 130, + right: 16, + child: RFab.add( + onPressed: () { + Get.bottomSheet( + isScrollControlled: true, + backgroundColor: Colors.transparent, + killRegistrationBottomSheet(), + ); + }, + ), + ), + ], ), - widgets: [poultryOrderListWidget()], ); } + //region List and Items Widget poultryOrderListWidget() { - return Expanded( - child: ObxValue((data) { - return RPaginatedListView( - listType: ListType.separated, - resource: data.value, - hasMore: data.value.data?.next != null, - padding: EdgeInsets.fromLTRB(8, 8, 8, 80), - itemBuilder: (context, index) { - var item = data.value.data!.results![index]; - return ObxValue((val) { - return ExpandableListItem2( - selected: val.value.isEqual(index), - onTap: () => controller.toggleExpanded(index), - index: index, - child: itemListWidget(item), - secondChild: itemListExpandedWidget(item), - labelColor: AppColor.blueLight, - labelIcon: Assets.vec.cubeScanSvg.path, - ); - }, controller.expandedIndex); - }, - itemCount: data.value.data?.results?.length ?? 0, - separatorBuilder: (context, index) => SizedBox(height: 8.h), - onLoadMore: () async => controller.getPoultryOrderList(true), - onRefresh: () async { - controller.currentPage.value = 1; - await controller.getPoultryOrderList(); - }, - ); - }, controller.poultryOrderList), - ); + return ObxValue((data) { + return RPaginatedListView( + listType: ListType.separated, + resource: data.value, + hasMore: data.value.data?.next != null, + padding: EdgeInsets.fromLTRB(8, 8, 8, 80), + itemBuilder: (context, index) { + var item = data.value.data!.results![index]; + return ObxValue((val) { + return ExpandableListItem2( + selected: val.value.isEqual(index), + onTap: () => controller.toggleExpanded(index), + index: index, + child: itemListWidget(item), + secondChild: itemListExpandedWidget(item), + labelColor: AppColor.blueLight, + labelIcon: Assets.vec.cubeScanSvg.path, + ); + }, controller.expandedIndex); + }, + itemCount: data.value.data?.results?.length ?? 0, + separatorBuilder: (context, index) => SizedBox(height: 8.h), + onLoadMore: () async => controller.getPoultryOrderList(true), + onRefresh: () async { + controller.currentPage.value = 1; + await controller.getPoultryOrderList(); + }, + ); + }, controller.poultryOrderList); } Container itemListExpandedWidget(PoultryOrder item) { @@ -129,8 +140,8 @@ class GenocidePage extends GetView { title: 'نوع فروش', value: (item.freeSaleInProvince ?? false) ? 'آزاد' : 'دولتی ', ), - buildRow(title: 'نوع کشتار ', value: getKillType(item)), - buildRow(title: 'درخواست', value: getRequestType(item) ?? 'N/A'), + buildRow(title: 'نوع کشتار ', value: controller.getKillType(item)), + buildRow(title: 'درخواست', value: controller.getRequestType(item) ?? 'N/A'), buildRow(title: 'میانگین وزنی', value: '${(item.indexWeight)} (کیلوگرم)'), buildRow(title: 'قیمت مرغدار', value: '${item.amount.separatedByComma} (ریال)'), @@ -138,7 +149,7 @@ class GenocidePage extends GetView { title: 'مانده در سالن ', value: '${item.hatching?.leftOver.separatedByComma ?? 0} (قطعه)', ), - buildRow(title: ' وضعیت', value: getState(item)), + buildRow(title: ' وضعیت', value: controller.getState(item)), Visibility( visible: item.stateProcess == 'pending', @@ -159,13 +170,12 @@ class GenocidePage extends GetView { onPressed: data.value ? null : () => _buildDeleteDialog( - onConfirm: () async { - Get.back(); - await controller.deletePoultryOrder(item.id!); - controller.getPoultryOrderList(); - - }, - ), + onConfirm: () async { + Get.back(); + await controller.deletePoultryOrder(item.id!); + controller.getPoultryOrderList(); + }, + ), ); }, controller.isLoadingDelete), ), @@ -231,34 +241,9 @@ class GenocidePage extends GetView { ); } - String getRequestType(PoultryOrder item) { - if (item.market ?? false) { - return 'پنل معاملات'; - } else if (item.union ?? false) { - return 'اتحادیه'; - } else { - return 'خرید مستقیم'; - } - } - - String getKillType(PoultryOrder item) { - if (item.export ?? false) { - return 'صادرات'; - } else if (item.freezing ?? false) { - return 'انجماد'; - } else { - return 'عادی'; - } - } - - String getState(PoultryOrder item) { - if (item.stateProcess == 'pending') { - return 'در انتظار تایید'; - } else { - return 'تایید شده'; - } - } + //endregion + //region other widgets void _buildDeleteDialog({required VoidCallback onConfirm}) { Get.defaultDialog( title: 'حذف درخواست کشتار', @@ -280,7 +265,6 @@ class GenocidePage extends GetView { ); } - Widget filterBottomSheet() => filterBottomSheetWidget( fromDate: controller.fromDateFilter, onChangedFromDate: (jalali) => controller.fromDateFilter.value = jalali, @@ -289,4 +273,16 @@ class GenocidePage extends GetView { onSubmit: () => controller.getPoultryOrderList(), ); + //endregion + + //region kill registration bottom sheet + Widget killRegistrationBottomSheet() { + return BaseBottomSheet( + height: Get.height * 0.9, + bgColor: Color(0x66E4E4E4), + child: KillingRegistrationPage(), + ); + } + + //endregion } diff --git a/packages/chicken/lib/presentation/pages/poultry_science/killing_registration/view.dart b/packages/chicken/lib/presentation/pages/poultry_science/killing_registration/view.dart index b4fdb60..b234599 100644 --- a/packages/chicken/lib/presentation/pages/poultry_science/killing_registration/view.dart +++ b/packages/chicken/lib/presentation/pages/poultry_science/killing_registration/view.dart @@ -4,8 +4,6 @@ import 'package:rasadyar_chicken/data/models/response/all_poultry/all_poultry.da import 'package:rasadyar_chicken/data/models/response/kill_house_poultry/kill_house_poultry.dart'; import 'package:rasadyar_chicken/data/models/response/kill_request_poultry/kill_request_poultry.dart'; import 'package:rasadyar_chicken/data/models/response/poultry_hatching/poultry_hatching.dart'; -import 'package:rasadyar_chicken/presentation/utils/nested_keys_utils.dart'; -import 'package:rasadyar_chicken/presentation/widget/base_page/view.dart'; import 'package:rasadyar_core/core.dart'; import 'logic.dart'; @@ -15,12 +13,8 @@ class KillingRegistrationPage extends GetView { @override Widget build(BuildContext context) { - return BasePageWithScroll( - hasSearch: false, - hasFilter: false, - routes: controller.routes, - onBackPressed: () => Get.back(id: poultryFirstKey), - widgets: [ + return Column( + children: [ poultryFarmWidget(), poultryUserListWidget(), poultryHatchingWidget(), @@ -38,7 +32,6 @@ class KillingRegistrationPage extends GetView { controller.killsDate.value = jalali; }, ), - loseWidget(), quantityKillsWidget(), averageWeightKillsWidget(), saleTypeWidget(), @@ -55,57 +48,9 @@ class KillingRegistrationPage extends GetView { ); } - Widget informationWidget() { - return Padding( - padding: EdgeInsets.symmetric(horizontal: 20.w, vertical: 10.h), - child: ObxValue( - (data) => Column( - spacing: 8, - children: [ - buildUnitRow( - title: 'تعداد جوجه ریزی', - value: data.value?.quantity.separatedByCommaFa, - unit: 'قطعه', - ), - buildUnitRow( - title: 'جمع تلفات ثبت شده دامپزشک و مرغدار', - value: data.value?.losses.separatedByCommaFa, - unit: 'قطعه', - ), - buildUnitRow( - title: 'باقیمانده', - value: data.value?.leftOver.separatedByCommaFa, - unit: 'قطعه', - ), - buildUnitRow( - title: 'سن مرغ', - value: data.value?.chickenAge.separatedByCommaFa, - unit: 'روز', - ), - buildUnitRow( - title: 'مجوز فروش آزاد', - value: data.value?.freeGovernmentalInfo?.totalFreeCommitmentQuantity.separatedByCommaFa, - unit: 'قطعه', - ), - buildUnitRow( - title: 'مانده فروش آزاد', - value: data - .value - ?.freeGovernmentalInfo - ?.leftTotalFreeCommitmentQuantity - .separatedByCommaFa, - unit: 'قطعه', - ), - ], - ), - controller.selectedPoultryHatching, - ), - ); - } - Widget poultryFarmWidget() { return Padding( - padding: EdgeInsets.symmetric(horizontal: 20.w, vertical: 10.h), + padding: EdgeInsets.symmetric(horizontal: 8.w, vertical: 10.h), child: ObxValue((data) { return ResourceOverlayDropdown( items: data.value, @@ -116,67 +61,203 @@ class KillingRegistrationPage extends GetView { controller.getUserPoultryList(); }, selectedItem: controller.selectedPoultry.value, - itemBuilder: (item) => Text(labelPoultry(item), maxLines: 2), - labelBuilder: (item) => Text(labelPoultry(item)), + itemBuilder: (item) => labelPoultryWidget(item), + labelBuilder: (item) => labelPoultryWidget(item), ); }, controller.allPoultryList), ); } - String labelPoultry(AllPoultry? item) { + Widget labelPoultryWidget(AllPoultry? item) { if (item == null) { - return 'انتخاب مرغداری'; + return Row( + children: [ + Assets.vec.farmSvg.svg( + width: 28.w, + height: 28.h, + colorFilter: const ColorFilter.mode(AppColor.darkGreyDark, BlendMode.srcIn), + ), + SizedBox(width: 4.w), + Text('انتخاب مرغداری', style: AppFonts.yekan14.copyWith(color: AppColor.darkGreyDark)), + ], + ); } else { - return '${item.unitName} (${item.address?.city?.name}) / ${item.user?.fullname} (${item.user?.mobile}) / ${item.lastHatchingRemainQuantity} قطعه '; + return Text( + '${item.unitName} (${item.address?.city?.name})', + maxLines: 2, + ); } } Widget poultryUserListWidget() { - return Padding( - padding: EdgeInsets.symmetric(horizontal: 20.w), - child: ObxValue((data) { - return ResourceOverlayDropdown( - items: data.value, - background: Colors.white, - onChanged: (value) { - controller.clearSelectedStep2(); - controller.selectedKillRequestPoultry.value = value; - controller.getPoultryHatchingList(); - }, - selectedItem: controller.selectedKillRequestPoultry.value, - itemBuilder: (item) => Text(item.unitName ?? '-'), - labelBuilder: (item) => Text(item?.unitName ?? 'محل پرورش'), - ); - }, controller.poultryList), - ); + return ObxValue((data) { + if (data.value == null) { + return SizedBox.shrink(); + } + return Padding( + padding: EdgeInsets.symmetric(horizontal: 8.w), + child: ObxValue((data) { + return ResourceOverlayDropdown( + items: data.value, + background: Colors.white, + onChanged: (value) { + controller.clearSelectedStep2(); + controller.selectedKillRequestPoultry.value = value; + controller.getPoultryHatchingList(); + }, + selectedItem: controller.selectedKillRequestPoultry.value, + itemBuilder: (item) => labelPoultryUser(item), + labelBuilder: (item) => labelPoultryUser(item), + ); + }, controller.poultryList), + ); + }, controller.selectedPoultry); + } + + Widget labelPoultryUser(KillRequestPoultry? item) { + if (item == null) { + return Row( + children: [ + Assets.vec.chickenHouseSvg.svg( + width: 28.w, + height: 28.h, + colorFilter: const ColorFilter.mode(AppColor.darkGreyDark, BlendMode.srcIn), + ), + SizedBox(width: 6.w), + Text('محل پرورش', style: AppFonts.yekan14.copyWith(color: AppColor.darkGreyDark)), + ], + ); + } else { + return Text(item.unitName ?? '-'); + } } Widget poultryHatchingWidget() { - return Padding( - padding: EdgeInsets.symmetric(horizontal: 20.w, vertical: 10.h), - child: ObxValue((data) { - return ResourceOverlayDropdown( - items: data.value, - background: Colors.white, - onChanged: (value) { - controller.selectedPoultryHatching.value = value; - }, - selectedItem: controller.selectedPoultryHatching.value, - itemBuilder: (item) => Text(labelPoultryHatching(item)), - labelBuilder: (item) => Text(labelPoultryHatching(item)), - ); - }, controller.poultryHatchingList), - ); + return ObxValue((data) { + if (data.value == null) { + return SizedBox.shrink(); + } + return Padding( + padding: EdgeInsets.symmetric(horizontal: 8.w, vertical: 10.h), + child: ObxValue((data) { + return ResourceOverlayDropdown( + items: data.value, + background: Colors.white, + onChanged: (value) { + controller.selectedPoultryHatching.value = value; + }, + selectedItem: controller.selectedPoultryHatching.value, + itemBuilder: (item) => labelPoultryHatching(item), + labelBuilder: (item) => labelPoultryHatching(item), + ); + }, controller.poultryHatchingList), + ); + }, controller.selectedKillRequestPoultry); } - String labelPoultryHatching(PoultryHatching? item) { + Widget labelPoultryHatching(PoultryHatching? item) { if (item == null) { - return 'دوره جوجه ریزی'; + return Row( + children: [ + Assets.vec.calendarSvg.svg( + width: 28.w, + height: 28.h, + colorFilter: const ColorFilter.mode(AppColor.darkGreyDark, BlendMode.srcIn), + ), + SizedBox(width: 6.w), + Text('دوره جوجه ریزی', style: AppFonts.yekan14.copyWith(color: AppColor.darkGreyDark)), + ], + ); } else { - return ' دوره ${item.period} سالن ${item.hall} نژاد ${item.chickenBreed} باقیمانده ${item.leftOver} قطعه '; + return Text( + ' دوره ${item.period} سالن ${item.hall} نژاد ${item.chickenBreed} باقیمانده ${item.leftOver} قطعه ', + ); } } + Widget informationWidget() { + return Container( + decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(8)), + margin: EdgeInsets.fromLTRB(8.w, 0, 8.w, 10.h), + padding: EdgeInsets.all(7), + child: ObxValue( + (data) => Column( + spacing: 8, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 4), + child: Text( + 'اطلاعات مرغداری', + textAlign: TextAlign.right, + style: AppFonts.yekan14Bold.copyWith(color: AppColor.blueNormal), + ), + ), + + Container( + decoration: ShapeDecoration( + color: const Color(0xFFEAEFFF), + shape: RoundedRectangleBorder( + side: BorderSide(width: 1, color: const Color(0xFFE0E7FF)), + borderRadius: BorderRadius.circular(8), + ), + ), + padding: EdgeInsets.all(4), + child: buildUnitRow( + title: 'تعداد جوجه ریزی', + value: data.value?.quantity.separatedByCommaFa, + unit: 'قطعه', + ), + ), + + buildUnitRow( + title: 'جمع تلفات ثبت شده دامپزشک و مرغدار', + value: data.value?.losses.separatedByCommaFa, + unit: 'قطعه', + padding: EdgeInsetsGeometry.symmetric(horizontal: 4), + ), + buildUnitRow( + title: 'باقیمانده', + value: data.value?.leftOver.separatedByCommaFa, + unit: 'قطعه', + padding: EdgeInsetsGeometry.symmetric(horizontal: 4), + ), + buildUnitRow( + title: 'سن مرغ', + value: data.value?.chickenAge.separatedByCommaFa, + unit: 'روز', + padding: EdgeInsetsGeometry.symmetric(horizontal: 4), + ), + buildUnitRow( + title: 'مجوز فروش آزاد', + value: + data.value?.freeGovernmentalInfo?.totalFreeCommitmentQuantity.separatedByCommaFa, + unit: 'قطعه', + padding: EdgeInsetsGeometry.symmetric(horizontal: 4), + ), + buildUnitRow( + title: 'مانده فروش آزاد', + value: data + .value + ?.freeGovernmentalInfo + ?.leftTotalFreeCommitmentQuantity + .separatedByCommaFa, + unit: 'قطعه', + padding: EdgeInsetsGeometry.symmetric(horizontal: 4), + ), + buildUnitRow( + title: 'تلفن مرغدار', + value: data.value?.poultry?.userprofile?.mobile, + unit: '', + padding: EdgeInsetsGeometry.symmetric(horizontal: 4), + ), + ], + ), + controller.selectedPoultryHatching, + ), + ); + } + Widget killDateWidget({required Rx date, required Function(Jalali jalali) onChanged}) { return GestureDetector( onTap: () { @@ -184,7 +265,7 @@ class KillingRegistrationPage extends GetView { }, child: Container( height: 40, - margin: EdgeInsets.symmetric(horizontal: 20.w), + margin: EdgeInsets.symmetric(horizontal: 8.w), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(8), @@ -214,22 +295,9 @@ class KillingRegistrationPage extends GetView { ); } - Widget loseWidget() { - return Padding( - padding: EdgeInsets.fromLTRB(20.w, 10.h, 20.w, 0), - child: RTextField( - label: 'تعداد تلفات (قطعه)', - filled: true, - filledColor: Colors.white, - keyboardType: TextInputType.number, - controller: controller.quantityLoseController, - ), - ); - } - Widget quantityKillsWidget() { return Padding( - padding: EdgeInsets.symmetric(horizontal: 20.w, vertical: 10.h), + padding: EdgeInsets.symmetric(horizontal: 8.w, vertical: 10.h), child: RTextField( label: 'تعداد کشتار (قطعه)', filled: true, @@ -266,7 +334,7 @@ class KillingRegistrationPage extends GetView { Widget averageWeightKillsWidget() { return Padding( - padding: EdgeInsets.symmetric(horizontal: 20.w), + padding: EdgeInsets.symmetric(horizontal: 8.w), child: RTextField( label: 'میانگین وزن (کیلوگرم)', filled: true, @@ -299,30 +367,35 @@ class KillingRegistrationPage extends GetView { } Widget saleTypeWidget() { - return Padding( - padding: EdgeInsets.symmetric(horizontal: 20.w, vertical: 10.h), + return Container( + decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(8)), + margin: EdgeInsets.symmetric(horizontal: 8.w, vertical: 10.h), + padding: EdgeInsets.symmetric(horizontal: 10.w, vertical: 4.h), child: ObxValue((data) { - return Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + spacing: 4, children: [ - CustomChip( - title: 'فروش دولتی', - index: 0, - onTap: (int p1) { - - - controller.changeSaleType(); - }, - isSelected: !(data.value), + Text( + 'نوع فروش', + textAlign: TextAlign.center, + style: AppFonts.yekan14Bold.copyWith(color: AppColor.blueNormal), ), - CustomChip( - title: 'فروش آزاد', - index: 1, - onTap: (int p1) { + RadioGroup( + groupValue: data.value ? 1 : 0, + onChanged: (value) { controller.changeSaleType(); - }, - isSelected: data.value, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Radio(value: 0, activeColor: AppColor.blueNormal), + Text('دولتی', style: AppFonts.yekan14.copyWith(color: AppColor.darkGreyDark)), + Spacer(), + Radio(value: 1, activeColor: AppColor.blueNormal), + Text('آزاد', style: AppFonts.yekan14.copyWith(color: AppColor.darkGreyDark)), + ], + ), ), ], ); @@ -331,36 +404,36 @@ class KillingRegistrationPage extends GetView { } Widget priceWidget() { - return ObxValue((data){ - if(!data.value){ + return ObxValue((data) { + if (!data.value) { return Container( height: 40.h, - margin: EdgeInsets.symmetric(horizontal: 20.w), + margin: EdgeInsets.symmetric(horizontal: 8.w), decoration: BoxDecoration( - color: Colors.white, + color: AppColor.greenLight, borderRadius: BorderRadius.circular(8), - border: Border.all(width: 1.w, color: AppColor.darkGreyLight), + border: Border.all(width: 1.w, color: AppColor.whiteNormalHover), ), padding: EdgeInsets.symmetric(horizontal: 11.w, vertical: 4.h), child: Row( spacing: 8, children: [ - Text('قیمت مصوب', style: AppFonts.yekan14.copyWith(color: AppColor.bgDark)), + Text('قیمت مصوب', style: AppFonts.yekan14.copyWith(color: AppColor.textColor)), Spacer(), ObxValue((data) { return Text( ' ${data.value.separatedByCommaFa} ریال', textAlign: TextAlign.center, - style: AppFonts.yekan14.copyWith(color: AppColor.darkGreyDark), + style: AppFonts.yekan14.copyWith(color: AppColor.textColor), ); }, controller.generatedApprovedPrice), ], ), ); - }else{ + } else { return Padding( - padding: EdgeInsets.fromLTRB(20.w, 10.h, 20.w, 0), + padding: EdgeInsets.fromLTRB(8.w, 0, 8.w, 0), child: RTextField( label: 'قیمت پیشنهادی (ریال)', validator: (value) { @@ -368,29 +441,27 @@ class KillingRegistrationPage extends GetView { return 'قیمت پیشنهادی را وارد کنید'; } final price = double.tryParse(value.replaceAll(',', '')); - dLog(controller.priceFreeSaleController.text); - fLog(value); + if (price == null || price <= 0) { return 'قیمت پیشنهادی باید عددی بزرگتر از صفر باشد'; } return null; }, filled: true, - filledColor: Colors.white, + borderColor: AppColor.whiteNormalHover, + filledColor: AppColor.accent1, keyboardType: TextInputType.number, inputFormatters: [FilteringTextInputFormatter.digitsOnly, SeparatorInputFormatter()], controller: controller.priceFreeSaleController, ), ); } - }, controller.isFreeSale); - } Widget buyerListWidget() { return Padding( - padding: EdgeInsets.symmetric(horizontal: 20.w, vertical: 10.h), + padding: EdgeInsets.symmetric(vertical: 10.h, horizontal: 8.w), child: ObxValue((data) { return Visibility( visible: data.value?.provinceAllowChooseKillHouse?.allowState ?? false, @@ -420,56 +491,62 @@ class KillingRegistrationPage extends GetView { } Widget slaughterhouseSelectedWidget() { - return Padding( - padding: EdgeInsets.symmetric(horizontal: 20.w), - child: Wrap( - spacing: 10, - runSpacing: 10, - + return Container( + decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(8)), + margin: EdgeInsets.symmetric(horizontal: 8.w), + padding: EdgeInsets.symmetric(horizontal: 8.w), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ - ObxValue((data) { - return Visibility( - visible: data.value?.permission ?? false, - child: ObxValue( - (data) => CheckBoxChips( - title: 'کشتار برای انجماد', - data: data.value, - onTap: (p1) { - controller.isFreezedSelected.value = !controller.isFreezedSelected.value; - }, - isSelected: data.value, - ), - controller.isFreezedSelected, - ), - ); - }, controller.sellForFreezing), + SizedBox(height: 8.h), + Text('عملیات کشتار', style: AppFonts.yekan14Bold.copyWith(color: AppColor.blueNormal)), + SizedBox(height: 8.h), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + ObxValue((data) { + return Visibility( + visible: data.value?.permission ?? false, + child: ObxValue( + (data) => TitleCheckBox( + title: ' انجماد', + onChanged: (_) { + controller.isFreezedSelected.value = !controller.isFreezedSelected.value; + }, + isSelected: data.value, + ), + controller.isFreezedSelected, + ), + ); + }, controller.sellForFreezing), - ObxValue((data) { - return CheckBoxChips( - title: 'نمایش در پنل معاملات', - data: 0, - onTap: (int p1) { - controller.isMarketSelected.value = !controller.isMarketSelected.value; - }, - isSelected: data.value, - ); - }, controller.isMarketSelected), - - ObxValue((data) { - return Visibility( - visible: data.value?.allow ?? false, - child: ObxValue((data) { - return CheckBoxChips( - title: 'کشتار برای صادرات', - data: data.value, - onTap: (_) { - controller.isExportSelected.value = !controller.isExportSelected.value; + ObxValue((data) { + return TitleCheckBox( + title: 'پنل معاملات', + onChanged: (_) { + controller.isMarketSelected.value = !controller.isMarketSelected.value; }, isSelected: data.value, ); - }, controller.isExportSelected), - ); - }, controller.poultryExport), + }, controller.isMarketSelected), + + ObxValue((data) { + return Visibility( + visible: data.value?.allow ?? false, + child: ObxValue((data) { + return TitleCheckBox( + title: 'صادرات', + isSelected: data.value, + onChanged: (_) { + controller.isExportSelected.value = !controller.isExportSelected.value; + }, + ); + }, controller.isExportSelected), + ); + }, controller.poultryExport), + ], + ), + SizedBox(height: 8.h), ], ), ); @@ -478,11 +555,12 @@ class KillingRegistrationPage extends GetView { Widget submitButtonWidget() { return ObxValue((data) { return Padding( - padding: EdgeInsets.symmetric(horizontal: 20.w, vertical: 20.h), + padding: EdgeInsets.symmetric(horizontal: 8.w, vertical: 12.h), child: RElevated( enabled: data.value, height: 45.h, isFullWidth: true, + disabledBackgroundColor: AppColor.greenDarkHover, backgroundColor: AppColor.greenNormal, textStyle: AppFonts.yekan16Bold.copyWith(color: Colors.white), onPressed: () { diff --git a/packages/chicken/lib/presentation/pages/poultry_science/poultry_action/view.dart b/packages/chicken/lib/presentation/pages/poultry_science/poultry_action/view.dart index 78f7041..65a43db 100644 --- a/packages/chicken/lib/presentation/pages/poultry_science/poultry_action/view.dart +++ b/packages/chicken/lib/presentation/pages/poultry_science/poultry_action/view.dart @@ -11,56 +11,42 @@ class PoultryActionPage extends GetView { @override Widget build(BuildContext context) { return Scaffold( - appBar: chickenAppBar( - hasBack: false, - hasFilter: false, - hasSearch: false, - isBase: false, - ), - body: Column( - children: [ - bannerWidget(), - itemGridWidget(), - ], + appBar: chickenAppBar(hasBack: false, hasFilter: false, hasSearch: false, isBase: false), + body: Container( + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage(Assets.images.bgChickenPattern.path), + fit: BoxFit.cover, + ), + ), + child: gridWidget(), ), ); } - Image bannerWidget() { - return Assets.images.poultryAction.image( - height: 212.h, - width: Get.width.w, - fit: BoxFit.cover, - ); - } - - Widget itemGridWidget() { + Widget gridWidget() { return ObxValue((data) { - return Expanded( - child: GridView.builder( - physics: BouncingScrollPhysics(), - padding: EdgeInsets.symmetric(horizontal: 31.w), - gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 2, - mainAxisSpacing: 24.h, - crossAxisSpacing: 24.w, - ), - itemCount: data.length, - hitTestBehavior: HitTestBehavior.opaque, - itemBuilder: (BuildContext context, int index) { - var item = data[index]; - return CardIcon( - title: item.title, - vecIcon: item.icon, - iconColor: AppColor.blueNormal, - onTap: () async { - Get.toNamed(item.route, id: poultryFirstKey); - }, - ); - }, - ), + return GridView.builder( + physics: BouncingScrollPhysics(), + padding: EdgeInsets.all(16), + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 2, + mainAxisSpacing: 16.h, + crossAxisSpacing: 16.w, + ), + itemCount: data.length, + hitTestBehavior: HitTestBehavior.opaque, + itemBuilder: (BuildContext context, int index) { + var item = data[index]; + return GlassMorphismCardIcon( + title: item.title, + vecIcon: item.icon, + onTap: () async { + Get.toNamed(item.route, id: poultryFirstKey); + }, ); - }, controller.items); + }, + ); + }, controller.items); } - } diff --git a/packages/chicken/lib/presentation/pages/poultry_science/root/view.dart b/packages/chicken/lib/presentation/pages/poultry_science/root/view.dart index 1ce331a..bec17a6 100644 --- a/packages/chicken/lib/presentation/pages/poultry_science/root/view.dart +++ b/packages/chicken/lib/presentation/pages/poultry_science/root/view.dart @@ -42,65 +42,83 @@ class PoultryScienceRootPage extends GetView { }, child: Scaffold( backgroundColor: AppColor.bgLight, - body: IndexedStack( + body: Stack( children: [ - Navigator( - key: Get.nestedKey(poultryFirstKey), - onGenerateRoute: (settings) { - final page = ChickenPages.pages.firstWhere( - (e) => e.name == settings.name, - orElse: () => ChickenPages.pages.firstWhere( - (e) => e.name == ChickenRoutes.actionPoultryScience, + IndexedStack( + children: [ + Navigator( + key: Get.nestedKey(poultryFirstKey), + onGenerateRoute: (settings) { + final page = ChickenPages.pages.firstWhere( + (e) => e.name == settings.name, + orElse: () => ChickenPages.pages.firstWhere( + (e) => e.name == ChickenRoutes.actionPoultryScience, + ), + ); + + return buildRouteFromGetPage(page); + }, + ), + Navigator( + key: Get.nestedKey(poultrySecondKey), + onGenerateRoute: (settings) => GetPageRoute(page: () => controller.pages[1]), + ), + Navigator( + key: Get.nestedKey(poultryThirdKey), + onGenerateRoute: (settings) => GetPageRoute(page: () => controller.pages[2]), + ), + ], + index: data.value, + ), + Positioned( + right: 0, + left: 0, + bottom: 0, + child: RBottomNavigation( + mainAxisAlignment: MainAxisAlignment.spaceAround, + items: [ + RBottomNavigationItem( + label: 'اقدام', + icon: Assets.vec.settingSvg.path, + isSelected: controller.currentPage.value == 0, + onTap: () { + Get.nestedKey( + poultrySecondKey, + )?.currentState?.popUntil((route) => route.isFirst); + + controller.changePage(0); + }, ), - ); - - return buildRouteFromGetPage(page); - }, - ), - Navigator( - key: Get.nestedKey(poultrySecondKey), - onGenerateRoute: (settings) => GetPageRoute(page: () => controller.pages[1]), - ), - Navigator( - key: Get.nestedKey(poultryThirdKey), - onGenerateRoute: (settings) => GetPageRoute(page: () => controller.pages[2]), - ), - ], - index: data.value, - ), - - bottomNavigationBar: RBottomNavigation( - mainAxisAlignment: MainAxisAlignment.spaceAround, - items: [ - RBottomNavigationItem( - label: 'اقدام', - icon: Assets.vec.settingSvg.path, - isSelected: controller.currentPage.value == 0, - onTap: () { - Get.nestedKey(poultrySecondKey)?.currentState?.popUntil((route) => route.isFirst); - - controller.changePage(0); - }, - ), - RBottomNavigationItem( - label: 'خانه', - icon: Assets.vec.homeSvg.path, - isSelected: controller.currentPage.value == 1, - onTap: () { - Get.nestedKey(poultryFirstKey)?.currentState?.popUntil((route) => route.isFirst); - Get.nestedKey(poultryThirdKey)?.currentState?.popUntil((route) => route.isFirst); - controller.changePage(1); - }, - ), - RBottomNavigationItem( - label: 'پروفایل', - icon: Assets.vec.profileCircleSvg.path, - isSelected: controller.currentPage.value == 2, - onTap: () { - Get.nestedKey(poultryFirstKey)?.currentState?.popUntil((route) => route.isFirst); - Get.nestedKey(poultrySecondKey)?.currentState?.popUntil((route) => route.isFirst); - controller.changePage(2); - }, + RBottomNavigationItem( + label: 'خانه', + icon: Assets.vec.homeSvg.path, + isSelected: controller.currentPage.value == 1, + onTap: () { + Get.nestedKey( + poultryFirstKey, + )?.currentState?.popUntil((route) => route.isFirst); + Get.nestedKey( + poultryThirdKey, + )?.currentState?.popUntil((route) => route.isFirst); + controller.changePage(1); + }, + ), + RBottomNavigationItem( + label: 'پروفایل', + icon: Assets.vec.profileCircleSvg.path, + isSelected: controller.currentPage.value == 2, + onTap: () { + Get.nestedKey( + poultryFirstKey, + )?.currentState?.popUntil((route) => route.isFirst); + Get.nestedKey( + poultrySecondKey, + )?.currentState?.popUntil((route) => route.isFirst); + controller.changePage(2); + }, + ), + ], + ), ), ], ), diff --git a/packages/chicken/lib/presentation/routes/pages.dart b/packages/chicken/lib/presentation/routes/pages.dart index 5e93bb0..a66efa2 100644 --- a/packages/chicken/lib/presentation/routes/pages.dart +++ b/packages/chicken/lib/presentation/routes/pages.dart @@ -216,6 +216,7 @@ sealed class ChickenPages { binding: BindingsBuilder(() { Get.lazyPut(() => GenocideLogic()); Get.lazyPut(() => PoultryScienceRootLogic()); + Get.put( KillingRegistrationLogic()); }), ), GetPage( diff --git a/packages/chicken/lib/presentation/widget/base_page/view.dart b/packages/chicken/lib/presentation/widget/base_page/view.dart index d08e4d7..cb56875 100644 --- a/packages/chicken/lib/presentation/widget/base_page/view.dart +++ b/packages/chicken/lib/presentation/widget/base_page/view.dart @@ -10,11 +10,12 @@ class BasePage extends StatefulWidget { const BasePage({ super.key, this.routes, - required this.widgets, + this.widgets, this.routesWidget, this.floatingActionButtonLocation, this.floatingActionButton, this.onSearchChanged, + this.child, this.hasBack = true, this.hasFilter = true, this.hasSearch = true, @@ -30,7 +31,8 @@ class BasePage extends StatefulWidget { final List? routes; final Widget? routesWidget; - final List widgets; + final List? widgets; + final Widget? child; final FloatingActionButtonLocation? floatingActionButtonLocation; final Widget? floatingActionButton; final Widget? filteringWidget; @@ -135,7 +137,9 @@ class _BasePageState extends State { if (!widget.isBase && widget.hasSearch) ...{ SearchWidget(onSearchChanged: widget.onSearchChanged), }, - ...widget.widgets, + + if (widget.child != null) ...{Expanded(child: widget.child!)}, + ...?widget.widgets, ], ), floatingActionButtonLocation: widget.floatingActionButtonLocation, diff --git a/packages/core/lib/presentation/common/app_color.dart b/packages/core/lib/presentation/common/app_color.dart index 40069d1..65121cb 100644 --- a/packages/core/lib/presentation/common/app_color.dart +++ b/packages/core/lib/presentation/common/app_color.dart @@ -171,6 +171,9 @@ class AppColor { static const Color textColorLight = Color(0xFFB2B2B2); static const Color iconColor = Color(0xFF444444); // #444444 rgb(68, 68, 68) static const Color borderColor = Color(0xFFC7CFCD); // #C7CFCD rgb(199, 207, 205)` + static const Color unselectTextColor = Color(0xFF888888); // + static const Color accent1 = Color(0xffffe5ce); // + //endregion diff --git a/packages/core/lib/presentation/common/assets.gen.dart b/packages/core/lib/presentation/common/assets.gen.dart index 7fa3542..2eeca3a 100644 --- a/packages/core/lib/presentation/common/assets.gen.dart +++ b/packages/core/lib/presentation/common/assets.gen.dart @@ -68,6 +68,9 @@ class $AssetsIconsGen { /// File path: assets/icons/calendar_search_outline.svg SvgGenImage get calendarSearchOutline => const SvgGenImage('assets/icons/calendar_search_outline.svg'); + /// File path: assets/icons/calendar_tick.svg + SvgGenImage get calendarTick => const SvgGenImage('assets/icons/calendar_tick.svg'); + /// File path: assets/icons/call.svg SvgGenImage get call => const SvgGenImage('assets/icons/call.svg'); @@ -80,6 +83,9 @@ class $AssetsIconsGen { /// File path: assets/icons/chicken.svg SvgGenImage get chicken => const SvgGenImage('assets/icons/chicken.svg'); + /// File path: assets/icons/chicken_house.svg + SvgGenImage get chickenHouse => const SvgGenImage('assets/icons/chicken_house.svg'); + /// File path: assets/icons/chicken_map_marker.svg SvgGenImage get chickenMapMarker => const SvgGenImage('assets/icons/chicken_map_marker.svg'); @@ -149,6 +155,9 @@ class $AssetsIconsGen { /// File path: assets/icons/excel_download.svg SvgGenImage get excelDownload => const SvgGenImage('assets/icons/excel_download.svg'); + /// File path: assets/icons/farm.svg + SvgGenImage get farm => const SvgGenImage('assets/icons/farm.svg'); + /// File path: assets/icons/filter.svg SvgGenImage get filter => const SvgGenImage('assets/icons/filter.svg'); @@ -334,10 +343,12 @@ class $AssetsIconsGen { calendar, calendarSearch, calendarSearchOutline, + calendarTick, call, check, checkSquare, chicken, + chickenHouse, chickenMapMarker, clipboardEye, clipboardTask, @@ -361,6 +372,7 @@ class $AssetsIconsGen { edit, empty, excelDownload, + farm, filter, filterOutline, gps, @@ -424,6 +436,9 @@ class $AssetsIconsGen { class $AssetsImagesGen { const $AssetsImagesGen(); + /// File path: assets/images/bg_chicken_pattern.webp + AssetGenImage get bgChickenPattern => const AssetGenImage('assets/images/bg_chicken_pattern.webp'); + /// File path: assets/images/chicken.png AssetGenImage get chicken => const AssetGenImage('assets/images/chicken.png'); @@ -439,20 +454,17 @@ class $AssetsImagesGen { /// File path: assets/images/place_holder.png AssetGenImage get placeHolder => const AssetGenImage('assets/images/place_holder.png'); - /// File path: assets/images/poultry_action.webp - AssetGenImage get poultryAction => const AssetGenImage('assets/images/poultry_action.webp'); - /// File path: assets/images/select_role.webp AssetGenImage get selectRole => const AssetGenImage('assets/images/select_role.webp'); /// List of all assets List get values => [ + bgChickenPattern, chicken, innerSplash, liveChicken, outterSplash, placeHolder, - poultryAction, selectRole, ]; } @@ -516,6 +528,9 @@ class $AssetsVecGen { /// File path: assets/vec/calendar_search_outline.svg.vec SvgGenImage get calendarSearchOutlineSvg => const SvgGenImage.vec('assets/vec/calendar_search_outline.svg.vec'); + /// File path: assets/vec/calendar_tick.svg.vec + SvgGenImage get calendarTickSvg => const SvgGenImage.vec('assets/vec/calendar_tick.svg.vec'); + /// File path: assets/vec/call.svg.vec SvgGenImage get callSvg => const SvgGenImage.vec('assets/vec/call.svg.vec'); @@ -528,6 +543,9 @@ class $AssetsVecGen { /// File path: assets/vec/chicken.svg.vec SvgGenImage get chickenSvg => const SvgGenImage.vec('assets/vec/chicken.svg.vec'); + /// File path: assets/vec/chicken_house.svg.vec + SvgGenImage get chickenHouseSvg => const SvgGenImage.vec('assets/vec/chicken_house.svg.vec'); + /// File path: assets/vec/chicken_map_marker.svg.vec SvgGenImage get chickenMapMarkerSvg => const SvgGenImage.vec('assets/vec/chicken_map_marker.svg.vec'); @@ -597,6 +615,9 @@ class $AssetsVecGen { /// File path: assets/vec/excel_download.svg.vec SvgGenImage get excelDownloadSvg => const SvgGenImage.vec('assets/vec/excel_download.svg.vec'); + /// File path: assets/vec/farm.svg.vec + SvgGenImage get farmSvg => const SvgGenImage.vec('assets/vec/farm.svg.vec'); + /// File path: assets/vec/filter.svg.vec SvgGenImage get filterSvg => const SvgGenImage.vec('assets/vec/filter.svg.vec'); @@ -782,10 +803,12 @@ class $AssetsVecGen { calendarSvg, calendarSearchSvg, calendarSearchOutlineSvg, + calendarTickSvg, callSvg, checkSvg, checkSquareSvg, chickenSvg, + chickenHouseSvg, chickenMapMarkerSvg, clipboardEyeSvg, clipboardTaskSvg, @@ -809,6 +832,7 @@ class $AssetsVecGen { editSvg, emptySvg, excelDownloadSvg, + farmSvg, filterSvg, filterOutlineSvg, gpsSvg, diff --git a/packages/core/lib/presentation/widget/card/card_icon_widget.dart b/packages/core/lib/presentation/widget/card/card_icon_widget.dart index dd2800a..378e212 100644 --- a/packages/core/lib/presentation/widget/card/card_icon_widget.dart +++ b/packages/core/lib/presentation/widget/card/card_icon_widget.dart @@ -20,7 +20,7 @@ class CardIcon extends StatelessWidget { this.borderWidth = 1, this.iconWidth = 48, this.iconHeight = 48, - this.iconColor , + this.iconColor, }) : assert((svgIcon != null) || (vecIcon != null), 'Either svgIcon or vecIcon must be provided'); final String title; @@ -39,10 +39,11 @@ class CardIcon extends StatelessWidget { final double width; final double height; + //icon final double iconWidth; final double iconHeight; - final Color? iconColor ; + final Color? iconColor; @override Widget build(BuildContext context) { @@ -67,13 +68,17 @@ class CardIcon extends StatelessWidget { fit: BoxFit.cover, width: iconWidth.w, height: iconHeight.h, - colorFilter: iconColor!= null ? ColorFilter.mode(iconColor!, BlendMode.srcIn) : null, + colorFilter: iconColor != null + ? ColorFilter.mode(iconColor!, BlendMode.srcIn) + : null, ) : SvgGenImage.vec(vecIcon!).svg( fit: BoxFit.fill, width: iconWidth.w, height: iconHeight.h, - colorFilter: iconColor!= null ? ColorFilter.mode(iconColor!, BlendMode.srcIn) : null, + colorFilter: iconColor != null + ? ColorFilter.mode(iconColor!, BlendMode.srcIn) + : null, ), Text( title, @@ -86,3 +91,146 @@ class CardIcon extends StatelessWidget { ); } } + +class GlassMorphismCardIcon extends StatelessWidget { + const GlassMorphismCardIcon({ + super.key, + required this.title, + this.svgIcon, + + this.vecIcon, + this.onTap, + this.titleColor = AppColor.iconColor, + this.spacing = 20, + this.titleStyle, + this.borderColor = AppColor.blueNormal, + this.backgroundColor = Colors.white, + this.borderRadius = 35, + this.width = 180, + this.labelHeight = 80, + this.height = 180, + this.borderWidth = 1, + this.iconWidth = 48, + this.iconHeight = 48, + this.iconColor, + }) : assert((svgIcon != null) || (vecIcon != null), 'Either svgIcon or vecIcon must be provided'); + + final String title; + final int spacing; + + final String? svgIcon; + final String? vecIcon; + final VoidCallback? onTap; + final Color titleColor; + final TextStyle? titleStyle; + + final Color borderColor; + final Color backgroundColor; + final double borderRadius; + final double borderWidth; + + final double width; + final double height; + final double labelHeight; + + //icon + final double iconWidth; + final double iconHeight; + final Color? iconColor; + + @override + Widget build(BuildContext context) { + return Container( + width: width.w, + height: height.h, + + decoration: BoxDecoration(borderRadius: BorderRadius.circular(35.r)), + child: InkWell( + onTap: onTap, + child: Stack( + children: [ + + Positioned.fill( + child: Container( + width: width.w, + height: height.h, + + decoration: BoxDecoration( + color: Colors.white54, + border: Border.all(width: 1, color: Colors.white), + borderRadius: BorderRadius.circular(borderRadius), + boxShadow: [ + BoxShadow( + color: Colors.black12, + blurRadius: 5, + offset: Offset(10, 12), + ), + ], + + ), + child: InkWell( + onTap: onTap, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox(height: labelHeight.h + 35.h), + Padding( + padding: EdgeInsets.symmetric(horizontal: 8.w), + child: Text( + title, + textAlign: TextAlign.center, + style: + titleStyle ?? + AppFonts.yekan20Bold.copyWith(color: titleColor, height: 1.20), + ), + ), + ], + ), + ), + ), + ), + Positioned( + top: 0, + left: 0, + right: 0, + child: Container( + height: labelHeight.h, + width: width.w, + decoration: BoxDecoration( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(borderRadius), + topRight: Radius.circular(borderRadius), + ), + gradient: LinearGradient( + colors: [Color(0xff00b6bc), Color(0xff003ae0)], + begin: Alignment.centerLeft, + end: Alignment.centerRight, + ), + ), + child: Center( + child: svgIcon != null + ? SvgGenImage(svgIcon!).svg( + fit: BoxFit.cover, + width: iconWidth.w, + height: iconHeight.h, + colorFilter: ColorFilter.mode(iconColor ?? Colors.white, BlendMode.srcIn), + ) + : SvgGenImage.vec(vecIcon!).svg( + fit: BoxFit.fill, + width: iconWidth.w, + height: iconHeight.h, + colorFilter: ColorFilter.mode(iconColor ?? Colors.white, BlendMode.srcIn), + ), + ), + ), + ), + + + + + ], + ), + ), + ); + } +} diff --git a/packages/core/lib/presentation/widget/check_box/check_box_widget.dart b/packages/core/lib/presentation/widget/check_box/check_box_widget.dart new file mode 100644 index 0000000..67ce7e4 --- /dev/null +++ b/packages/core/lib/presentation/widget/check_box/check_box_widget.dart @@ -0,0 +1,45 @@ +import 'package:flutter/material.dart'; +import 'package:rasadyar_core/core.dart'; + +class TitleCheckBox extends StatelessWidget { + const TitleCheckBox({ + super.key, + this.selectedColor, + this.unSelectedColor, + required this.title, + required this.isSelected, + required this.onChanged, + }); + + final Color? selectedColor; + final Color? unSelectedColor; + final String title; + final bool isSelected; + final Function(bool?) onChanged; + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: () { + onChanged(!isSelected); + }, + child: Row( + children: [ + Checkbox( + value: isSelected, + onChanged: onChanged, + activeColor: selectedColor ?? AppColor.blueNormal, + visualDensity: VisualDensity.compact, + side: BorderSide(width: 1.w, color: AppColor.unselectTextColor), + ), + Text( + title, + style: isSelected + ? AppFonts.yekan14Bold.copyWith(color: AppColor.blueNormal) + : AppFonts.yekan12.copyWith(color: AppColor.unselectTextColor), + ), + ], + ), + ); + } +} diff --git a/packages/core/lib/presentation/widget/list_row_item.dart b/packages/core/lib/presentation/widget/list_row_item.dart index dfb4d15..115862b 100644 --- a/packages/core/lib/presentation/widget/list_row_item.dart +++ b/packages/core/lib/presentation/widget/list_row_item.dart @@ -82,9 +82,10 @@ Widget buildUnitRow({ TextStyle? titleStyle, TextStyle? valueStyle, TextStyle? unitStyle, + EdgeInsetsGeometry? padding, }) { return Padding( - padding: const EdgeInsets.symmetric(vertical: 4.0), + padding: padding ?? const EdgeInsets.symmetric(vertical: 4.0), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ diff --git a/packages/core/lib/presentation/widget/widget.dart b/packages/core/lib/presentation/widget/widget.dart index 14a84c9..9000624 100644 --- a/packages/core/lib/presentation/widget/widget.dart +++ b/packages/core/lib/presentation/widget/widget.dart @@ -3,6 +3,7 @@ export 'bottom_navigation/r_bottom_navigation.dart'; export 'bottom_navigation/wave_bottom_navigation.dart'; export 'bottom_sheet/base_bottom_sheet.dart'; export 'bottom_sheet/date_picker_bottom_sheet.dart'; +export 'check_box/check_box_widget.dart'; //buttons export 'buttons/buttons.dart'; export 'card/card_icon_widget.dart';