diff --git a/assets/icons/virtual_tag.svg b/assets/icons/virtual_tag.svg new file mode 100644 index 0000000..1f8b8aa --- /dev/null +++ b/assets/icons/virtual_tag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/vec/place_holder.svg.vec b/assets/vec/place_holder.svg.vec new file mode 100644 index 0000000..caeb6bf Binary files /dev/null and b/assets/vec/place_holder.svg.vec differ diff --git a/assets/vec/virtual_tag.svg.vec b/assets/vec/virtual_tag.svg.vec new file mode 100644 index 0000000..3d6d199 Binary files /dev/null and b/assets/vec/virtual_tag.svg.vec differ diff --git a/lib/presentation/common/assets.dart b/lib/presentation/common/assets.dart index 295cf2d..e199492 100644 --- a/lib/presentation/common/assets.dart +++ b/lib/presentation/common/assets.dart @@ -38,43 +38,9 @@ class Assets { static const String iconsTrash = 'assets/icons/trash.svg'; static const String iconsUser = 'assets/icons/user.svg'; static const String iconsUserSquare = 'assets/icons/user_square.svg'; + static const String iconsVirtualTag = 'assets/icons/virtual_tag.svg'; static const String imagesInnerSplash = 'assets/images/inner_splash.webp'; static const String imagesOutterSplash = 'assets/images/outter_splash.webp'; static const String imagesPlaceHolder = 'assets/images/place_holder.png'; - static const String vecAddSvg = 'assets/vec/add.svg.vec'; - static const String vecArrowLeftSvg = 'assets/vec/arrow_left.svg.vec'; - static const String vecArrowRightSvg = 'assets/vec/arrow_right.svg.vec'; - static const String vecBgHeaderUserProfileSvg = 'assets/vec/bg_header_user_profile.svg.vec'; - static const String vecCalendarSearchSvg = 'assets/vec/calendar_search.svg.vec'; - static const String vecCalendarSvg = 'assets/vec/calendar.svg.vec'; - static const String vecCallSvg = 'assets/vec/call.svg.vec'; - static const String vecDiagramSvg = 'assets/vec/diagram.svg.vec'; - static const String vecDownloadSvg = 'assets/vec/download.svg.vec'; - static const String vecEditSvg = 'assets/vec/edit.svg.vec'; - static const String vecExcelDownloadSvg = 'assets/vec/excel_download.svg.vec'; - static const String vecFilterSvg = 'assets/vec/filter.svg.vec'; - static const String vecGpsSvg = 'assets/vec/gps.svg.vec'; - static const String vecInformationSvg = 'assets/vec/information.svg.vec'; - static const String vecInspectionSvg = 'assets/vec/inspection.svg.vec'; - static const String vecKeySvg = 'assets/vec/key.svg.vec'; - static const String vecLiveStockSvg = 'assets/vec/liveStock.svg.vec'; - static const String vecLogoutSvg = 'assets/vec/logout.svg.vec'; - static const String vecMapMarkerSvg = 'assets/vec/map_marker.svg.vec'; - static const String vecMapSvg = 'assets/vec/map.svg.vec'; - static const String vecMessageAddSvg = 'assets/vec/message_add.svg.vec'; - static const String vecPdfDownloadSvg = 'assets/vec/pdf_download.svg.vec'; - static const String vecPictureFrameSvg = 'assets/vec/picture_frame.svg.vec'; - static const String vecProfileCircleSvg = 'assets/vec/profile_circle.svg.vec'; - static const String vecProfileUserSvg = 'assets/vec/profile_user.svg.vec'; - static const String vecReceiptDiscountSvg = 'assets/vec/receipt_discount.svg.vec'; - static const String vecScanBarcodeSvg = 'assets/vec/scan_barcode.svg.vec'; - static const String vecScanSvg = 'assets/vec/scan.svg.vec'; - static const String vecSearchSvg = 'assets/vec/search.svg.vec'; - static const String vecSecurityTimeSvg = 'assets/vec/security_time.svg.vec'; - static const String vecSettingSvg = 'assets/vec/setting.svg.vec'; - static const String vecTagUserSvg = 'assets/vec/tag_user.svg.vec'; - static const String vecTrashSvg = 'assets/vec/trash.svg.vec'; - static const String vecUserSquareSvg = 'assets/vec/user_square.svg.vec'; - static const String vecUserSvg = 'assets/vec/user.svg.vec'; } diff --git a/packages/core/lib/presentation/common/assets.gen.dart b/packages/core/lib/presentation/common/assets.gen.dart index 7604588..aeec0dd 100644 --- a/packages/core/lib/presentation/common/assets.gen.dart +++ b/packages/core/lib/presentation/common/assets.gen.dart @@ -123,6 +123,9 @@ class $AssetsIconsGen { /// File path: assets/icons/user_square.svg SvgGenImage get userSquare => const SvgGenImage('assets/icons/user_square.svg'); + /// File path: assets/icons/virtual_tag.svg + SvgGenImage get virtualTag => const SvgGenImage('assets/icons/virtual_tag.svg'); + /// List of all assets List get values => [ add, @@ -161,6 +164,7 @@ class $AssetsIconsGen { trash, user, userSquare, + virtualTag, ]; } @@ -252,6 +256,9 @@ class $AssetsVecGen { /// File path: assets/vec/picture_frame.svg.vec SvgGenImage get pictureFrameSvg => const SvgGenImage.vec('assets/vec/picture_frame.svg.vec'); + /// File path: assets/vec/place_holder.svg.vec + SvgGenImage get placeHolderSvg => const SvgGenImage.vec('assets/vec/place_holder.svg.vec'); + /// File path: assets/vec/profile_circle.svg.vec SvgGenImage get profileCircleSvg => const SvgGenImage.vec('assets/vec/profile_circle.svg.vec'); @@ -288,6 +295,9 @@ class $AssetsVecGen { /// File path: assets/vec/user_square.svg.vec SvgGenImage get userSquareSvg => const SvgGenImage.vec('assets/vec/user_square.svg.vec'); + /// File path: assets/vec/virtual_tag.svg.vec + SvgGenImage get virtualTagSvg => const SvgGenImage.vec('assets/vec/virtual_tag.svg.vec'); + /// List of all assets List get values => [ addSvg, @@ -313,6 +323,7 @@ class $AssetsVecGen { messageAddSvg, pdfDownloadSvg, pictureFrameSvg, + placeHolderSvg, profileCircleSvg, profileUserSvg, receiptDiscountSvg, @@ -325,6 +336,7 @@ class $AssetsVecGen { trashSvg, userSvg, userSquareSvg, + virtualTagSvg, ]; } diff --git a/packages/livestock/lib/presentation/page/tagging/view.dart b/packages/livestock/lib/presentation/page/tagging/view.dart index 235d4c0..8623a91 100644 --- a/packages/livestock/lib/presentation/page/tagging/view.dart +++ b/packages/livestock/lib/presentation/page/tagging/view.dart @@ -37,10 +37,7 @@ class TaggingPage extends GetView { SizedBox(width: 4), IconButton( onPressed: () { - Get.bottomSheet( - _buildBottomSheet(), - isScrollControlled: true, - ); + Get.bottomSheet(_buildBottomSheet(), isScrollControlled: true); }, style: IconButton.styleFrom( backgroundColor: AppColor.blueNormal, @@ -53,78 +50,139 @@ class TaggingPage extends GetView { ), Expanded( - child: Card( - clipBehavior: Clip.hardEdge, - color: Colors.white, - child: GridView.builder( - padding: EdgeInsets.symmetric(horizontal: 20, vertical: 10), - itemCount: 20, - gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 2, - crossAxisSpacing: 12, - mainAxisSpacing: 8, - ), - itemBuilder: (context, index) { - return Container( - decoration: ShapeDecoration( - color: AppColor.lightGreyLightHover, - shape: RoundedRectangleBorder( - side: BorderSide(width: 1, color: AppColor.blackLightHover), - borderRadius: BorderRadius.circular(8), - ), - ), - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceAround, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, + child: ListView.separated( + padding: EdgeInsets.symmetric(horizontal: 10, vertical: 10), + itemCount: 20, + itemBuilder: (context, index) { + return Container( + width: Get.width, + height: 85, + decoration: BoxDecoration( + color: + index < 5 + ? AppColor.yellowNormal + : index < 12 + ? AppColor.greenLightActive + : AppColor.blueLight, + borderRadius: BorderRadius.circular(8), + ), + child: Row( + children: [ + SizedBox(width: 5), + Expanded( + child: Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.only( + topRight: Radius.circular(8), + bottomRight: Radius.circular(8), + ), + border: Border.all( + color: + index < 5 + ? AppColor.yellowNormal + : index < 12 + ? AppColor.greenLightActive + : AppColor.blueLight, + width: 2, + ), + ), + child: Column( children: [ - Assets.vec.editSvg.svg( - width: 16, - height: 16, - colorFilter: ColorFilter.mode(AppColor.blueNormal, BlendMode.srcIn), - ), - Assets.vec.trashSvg.svg( - width: 16, - height: 16, - colorFilter: ColorFilter.mode(AppColor.error, BlendMode.srcIn), - ), + SizedBox(height: 10), + Expanded(child: Row( + children: [ + SizedBox(width: 10,), + Container( + padding: EdgeInsets.all(8), + alignment: AlignmentDirectional.center, + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.black54,), + child: Text((index+1).toString(),style: AppFonts.yekan18.copyWith(color: Colors.white),), + ), + + Expanded( + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + Container( + padding: EdgeInsets.all(8), + alignment: AlignmentDirectional.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + color: Colors.black26,), + child: Text('ماده',style: AppFonts.yekan14.copyWith(color: AppColor.darkGreyDark),), + ), + Container( + padding: EdgeInsets.all(8), + alignment: AlignmentDirectional.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + color: Colors.black26,), + child: Text('18 ماه',style: AppFonts.yekan14.copyWith(color: AppColor.darkGreyDark),), + ), + Container( + padding: EdgeInsets.all(8), + alignment: AlignmentDirectional.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + color: Colors.black26,), + child: Text('سرابی',style: AppFonts.yekan14.copyWith(color: AppColor.darkGreyDark),), + ), + ], + ), + ), + ], + )), + SizedBox(height: 10), + Expanded(child: + Row( + children: [ + SizedBox(width: 10,), + Text('پلاک : 1212115112512', style: AppFonts.yekan14.copyWith(color: AppColor.darkGreyDark)), + Spacer(), + Assets.vec.editSvg.svg( + width: 24, + height: 24, + colorFilter: ColorFilter.mode(AppColor.blueNormal, BlendMode.srcIn), + ), + SizedBox(width: 10), + Assets.vec.trashSvg.svg( + width: 24, + height: 24, + colorFilter: ColorFilter.mode(AppColor.error, BlendMode.srcIn)), + SizedBox(width: 10,), + ], + + )), + ], ), - Text( - 'گوسفند ماده', - textAlign: TextAlign.center, - style: AppFonts.yekan14.copyWith(color: AppColor.blueNormal), - ), - SizedBox(height: 10), - Text( - 'سن : 18 ماه', - textAlign: TextAlign.center, - style: AppFonts.yekan12.copyWith(color: AppColor.darkGreyNormal), - ), - Text( - 'نوع نژاد', - textAlign: TextAlign.center, - style: AppFonts.yekan14.copyWith(color: AppColor.bgDark), - ), - Text( - '1212115112512', - textAlign: TextAlign.center, - style: AppFonts.yekan14.copyWith(color: AppColor.blueNormal), - ), - Text( - 'نوع پلاک', - textAlign: TextAlign.center, - style: AppFonts.yekan14.copyWith(color: AppColor.bgDark), - ), - ], + ), ), - ), - ); - }, - ), + + Container( + width: 20, + child: Center( + child: RotatedBox( + quarterTurns: 3, + child: Text( + index < 5 + ? 'گاو' + : index < 12 + ? 'گوسفند' + : 'مرغ', + style: AppFonts.yekan8, + textAlign: TextAlign.center, + ), + ), + ), + ), + ], + ), + ); + }, separatorBuilder: (BuildContext context, int index) =>SizedBox(height: 4,) ), ), @@ -144,6 +202,85 @@ class TaggingPage extends GetView { ); } + Widget _buildOldPage() { + return Expanded( + child: Card( + clipBehavior: Clip.hardEdge, + color: Colors.white, + child: GridView.builder( + padding: EdgeInsets.symmetric(horizontal: 20, vertical: 10), + itemCount: 20, + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 2, + crossAxisSpacing: 12, + mainAxisSpacing: 8, + ), + itemBuilder: (context, index) { + return Container( + decoration: ShapeDecoration( + color: AppColor.lightGreyLightHover, + shape: RoundedRectangleBorder( + side: BorderSide(width: 1, color: AppColor.blackLightHover), + borderRadius: BorderRadius.circular(8), + ), + ), + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Assets.vec.editSvg.svg( + width: 16, + height: 16, + colorFilter: ColorFilter.mode(AppColor.blueNormal, BlendMode.srcIn), + ), + Assets.vec.trashSvg.svg( + width: 16, + height: 16, + colorFilter: ColorFilter.mode(AppColor.error, BlendMode.srcIn), + ), + ], + ), + Text( + 'گوسفند ماده', + textAlign: TextAlign.center, + style: AppFonts.yekan14.copyWith(color: AppColor.blueNormal), + ), + SizedBox(height: 10), + Text( + 'سن : 18 ماه', + textAlign: TextAlign.center, + style: AppFonts.yekan12.copyWith(color: AppColor.darkGreyNormal), + ), + Text( + 'نوع نژاد', + textAlign: TextAlign.center, + style: AppFonts.yekan14.copyWith(color: AppColor.bgDark), + ), + Text( + '1212115112512', + textAlign: TextAlign.center, + style: AppFonts.yekan14.copyWith(color: AppColor.blueNormal), + ), + Text( + 'نوع پلاک', + textAlign: TextAlign.center, + style: AppFonts.yekan14.copyWith(color: AppColor.bgDark), + ), + ], + ), + ), + ); + }, + ), + ), + ); + + } + Widget _buildBottomSheet() { return BaseBottomSheet( child: Column(