feat : out of the province

This commit is contained in:
2025-06-16 09:06:20 +03:30
parent 77d5f3be3e
commit f9a43c3ca7
4 changed files with 75 additions and 57 deletions

View File

@@ -30,7 +30,7 @@ class SalesOutOfProvincePage extends GetView<SalesOutOfProvinceLogic> {
Text('خارج استان', style: AppFonts.yekan16Bold.copyWith(color: Colors.white)),
],
),
additionalActions: [
/* additionalActions: [
Assets.vec.searchSvg.svg(
width: 24,
height: 24,
@@ -43,15 +43,31 @@ class SalesOutOfProvincePage extends GetView<SalesOutOfProvinceLogic> {
colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn),
),
SizedBox(width: 8),
],
],*/
),
body: Column(
children: [
_typeOuterInfoCard(
title: 'خرید خارج استان',
iconPath: Assets.vec.searchSvg.path,
backgroundColor: AppColor.blueLight,
foregroundColor: AppColor.blueNormal,
Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
spacing: 8,
children: [
Expanded(
child: _typeOuterInfoCard(
title: 'خرید خارج استان',
iconPath: Assets.vec.cubeBottomRotationSvg.path,
foregroundColor: AppColor.blueNormal,
),
),
Expanded(
child: _typeOuterInfoCard(
title: 'فروش خارج استان',
iconPath: Assets.vec.cubeTopRotationSvg.path,
foregroundColor: AppColor.greenDark,
),
),
],
),
),
/* SizedBox(height: 12),
@@ -142,61 +158,45 @@ class SalesOutOfProvincePage extends GetView<SalesOutOfProvinceLogic> {
);
}
Container _typeOuterInfoCard({
required String title,
required String iconPath,
required Color backgroundColor,
required Color foregroundColor,
}) {
Container _typeOuterInfoCard({required String title, required String iconPath, required Color foregroundColor}) {
return Container(
height: 110,
decoration: BoxDecoration(borderRadius: BorderRadius.circular(8)),
clipBehavior: Clip.hardEdge,
child: Stack(
alignment: Alignment.topCenter,
height: (Get.width - 24) / 2,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(8),
border: Border.all(width: 1, color: foregroundColor),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Positioned(
bottom: 0,
right: 0,
left: 0,
child: Container(
height: 120,
decoration: BoxDecoration(
color: backgroundColor,
borderRadius: BorderRadius.circular(8),
border: Border.all(width: 1, color: foregroundColor),
),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
spacing: 4,
children: [
Text(
title,
textAlign: TextAlign.right,
style: AppFonts.yekan14.copyWith(color: AppColor.mediumGreyDarkActive),
),
],
),
),
),
Positioned(
top: 0,
child: Container(
width: 50,
height: 50,
decoration: ShapeDecoration(
color: backgroundColor,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30),
side: BorderSide(width: 1, color: foregroundColor),
),
),
child: Center(
Stack(
clipBehavior: Clip.none,
alignment: Alignment.center,
children: [
Positioned(
top: -41,
child: SvgGenImage.vec(
iconPath,
).svg(width: 36, height: 36, colorFilter: ColorFilter.mode(foregroundColor, BlendMode.srcIn)),
).svg(width: 45, height: 45, colorFilter: ColorFilter.mode(foregroundColor, BlendMode.srcIn)),
),
),
Assets.vec.shoppingBasketSvg.svg(
width: 55,
height: 60,
colorFilter: ColorFilter.mode(foregroundColor, BlendMode.srcIn),
fit: BoxFit.cover,
),
],
),
const SizedBox(height: 15),
Text(
title,
textAlign: TextAlign.right,
style: AppFonts.yekan16Bold.copyWith(color: foregroundColor),
),
],
),

View File

@@ -150,6 +150,9 @@ class $AssetsIconsGen {
/// File path: assets/icons/setting.svg
SvgGenImage get setting => const SvgGenImage('assets/icons/setting.svg');
/// File path: assets/icons/shopping_basket.svg
SvgGenImage get shoppingBasket => const SvgGenImage('assets/icons/shopping_basket.svg');
/// File path: assets/icons/tag_label.svg
SvgGenImage get tagLabel => const SvgGenImage('assets/icons/tag_label.svg');
@@ -227,6 +230,7 @@ class $AssetsIconsGen {
search,
securityTime,
setting,
shoppingBasket,
tagLabel,
tagUser,
trash,
@@ -407,6 +411,9 @@ class $AssetsVecGen {
/// File path: assets/vec/setting.svg.vec
SvgGenImage get settingSvg => const SvgGenImage.vec('assets/vec/setting.svg.vec');
/// File path: assets/vec/shopping_basket.svg.vec
SvgGenImage get shoppingBasketSvg => const SvgGenImage.vec('assets/vec/shopping_basket.svg.vec');
/// File path: assets/vec/tag_label.svg.vec
SvgGenImage get tagLabelSvg => const SvgGenImage.vec('assets/vec/tag_label.svg.vec');
@@ -484,6 +491,7 @@ class $AssetsVecGen {
searchSvg,
securityTimeSvg,
settingSvg,
shoppingBasketSvg,
tagLabelSvg,
tagUserSvg,
trashSvg,