feat : content list

This commit is contained in:
2025-05-27 14:31:50 +03:30
parent a3327dd708
commit b935f3f12a
6 changed files with 223 additions and 107 deletions

View File

@@ -0,0 +1 @@
<svg id="flat" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><circle cx="256" cy="256" fill="#a1dcff" r="232"/><path d="m437.25 265.48-11.1 22.2a43.994 43.994 0 0 1 -39.35 24.32h-73.31a43.5 43.5 0 0 0 -43.5 43.5v132.08q-6.945.42-13.99.42c-128.13 0-232-103.87-232-232a232.241 232.241 0 0 1 6.81-56h191.18a68.43 68.43 0 0 1 -32.33-70.01l.33-1.99 80 24h54.3a45.277 45.277 0 0 1 30.71 12.01l76.63 70.74a25.985 25.985 0 0 1 5.62 30.73z" fill="#a1dcff"/><path d="m437.25 265.48-11.1 22.2a43.994 43.994 0 0 1 -39.35 24.32h-73.31a43.5 43.5 0 0 0 -43.5 43.5v132.08q-6.945.42-13.99.42c-128.13 0-232-103.87-232-232a232.241 232.241 0 0 1 6.81-56h191.18a68.43 68.43 0 0 1 -32.33-70.01l.33-1.99 80 24h54.3a45.277 45.277 0 0 1 30.71 12.01l76.63 70.74a25.985 25.985 0 0 1 5.62 30.73z" fill="#7a4922"/><path d="m222.193 186.844-46.678 15.799-30.878 62.479 62.478 30.878 30.878-62.478z" fill="#ecab2c"/><g fill="#b5cf7f"><path d="m182.562 360a55.637 55.637 0 0 1 -39.6-16.4 8 8 0 0 1 11.312-11.315 39.994 39.994 0 0 0 53.888 2.444 8 8 0 1 1 10.248 12.287 56.064 56.064 0 0 1 -35.848 12.984z"/><path d="m182.562 392a87.424 87.424 0 0 1 -62.226-25.774 8 8 0 1 1 11.314-11.315 71.985 71.985 0 0 0 97 4.4 8 8 0 1 1 10.25 12.289 88.1 88.1 0 0 1 -56.338 20.4z"/><path d="m182.562 328a23.843 23.843 0 0 1 -16.971-7.029 8 8 0 1 1 11.314-11.315 7.992 7.992 0 0 0 10.773.49 8 8 0 0 1 10.25 12.286 24.034 24.034 0 0 1 -15.366 5.568z"/></g><circle cx="325.993" cy="200" fill="#5b3719" r="16"/><path d="m277.993 152 9.373-9.373a77.254 77.254 0 0 1 54.627-22.627l-4.031 2.687a44.847 44.847 0 0 0 -19.25 29.313z" fill="#e6e5e0"/></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Binary file not shown.

View File

@@ -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';
}

View File

@@ -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<SvgGenImage> 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<SvgGenImage> 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,
];
}

View File

@@ -37,10 +37,7 @@ class TaggingPage extends GetView<TaggingLogic> {
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<TaggingLogic> {
),
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<TaggingLogic> {
);
}
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(