feat : SalesOutOfProvincePage main page

This commit is contained in:
2025-06-15 11:24:35 +03:30
parent a893545403
commit 448834ecb2
8 changed files with 126 additions and 63 deletions

View File

@@ -0,0 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.9399 22.6496C10.4599 22.6496 9.9899 22.5296 9.5499 22.2896C8.6699 21.7996 8.1399 20.9096 8.1399 19.9096V14.6096C8.1399 14.1096 7.8099 13.3596 7.4999 12.9796L3.7599 9.01961C3.1299 8.38961 2.6499 7.30961 2.6499 6.49961V4.19961C2.6499 2.59961 3.8599 1.34961 5.3999 1.34961H18.5999C20.1199 1.34961 21.3499 2.57961 21.3499 4.09961V6.29961C21.3499 7.34961 20.7199 8.53961 20.1299 9.12961L15.7999 12.9596C15.3799 13.3096 15.0499 14.0796 15.0499 14.6996V18.9996C15.0499 19.8896 14.4899 20.9196 13.7899 21.3396L12.4099 22.2296C11.9599 22.5096 11.4499 22.6496 10.9399 22.6496ZM5.3999 2.84961C4.6999 2.84961 4.1499 3.43961 4.1499 4.19961V6.49961C4.1499 6.86961 4.4499 7.58961 4.8299 7.96961L8.6399 11.9796C9.1499 12.6096 9.6499 13.6596 9.6499 14.5996V19.8996C9.6499 20.5496 10.0999 20.8696 10.2899 20.9696C10.7099 21.1996 11.2199 21.1996 11.6099 20.9596L12.9999 20.0696C13.2799 19.8996 13.5599 19.3596 13.5599 18.9996V14.6996C13.5599 13.6296 14.0799 12.4496 14.8299 11.8196L19.1099 8.02961C19.4499 7.68961 19.8599 6.87961 19.8599 6.28961V4.09961C19.8599 3.40961 19.2999 2.84961 18.6099 2.84961H5.3999Z" fill="white"/>
<path d="M6.00017 10.7503C5.86017 10.7503 5.73017 10.7103 5.60017 10.6403C5.25017 10.4203 5.14017 9.95026 5.36017 9.60026L10.2902 1.70026C10.5102 1.35026 10.9702 1.24026 11.3202 1.46026C11.6702 1.68026 11.7802 2.14026 11.5602 2.49026L6.63017 10.3903C6.49017 10.6203 6.25017 10.7503 6.00017 10.7503Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -1,6 +1,4 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.33333 12.6667C10.2789 12.6667 12.6667 10.2789 12.6667 7.33333C12.6667 4.38781 10.2789 2 7.33333 2C4.38781 2 2 4.38781 2 7.33333C2 10.2789 4.38781 12.6667 7.33333 12.6667Z"
stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M14.0001 13.9996L11.1001 11.0996" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round"/>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11 19C15.4183 19 19 15.4183 19 11C19 6.58172 15.4183 3 11 3C6.58172 3 3 6.58172 3 11C3 15.4183 6.58172 19 11 19Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M21.0004 21.0004L16.6504 16.6504" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 524 B

After

Width:  |  Height:  |  Size: 432 B

Binary file not shown.

Binary file not shown.

View File

@@ -1,4 +1,3 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:rasadyar_chicken/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart';
import 'package:rasadyar_core/core.dart';
@@ -11,25 +10,108 @@ class SalesOutOfProvincePage extends GetView<SalesOutOfProvinceLogic> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppColor.bgLight,
appBar: RAppBar(
title: 'رصدطیور',
iconTitle: Assets.vec.chickenSvg.path,
titleTextStyle:AppFonts.yekan16Bold.copyWith(color: Colors.white),
titleTextStyle: AppFonts.yekan16Bold.copyWith(color: Colors.white),
centerTitle: true,
hasBack: false,
leading: Row(children: [Text('مباشر', style: AppFonts.yekan16Bold.copyWith(color: Colors.white))]),
leadingWidth: 130,
leading: Row(
mainAxisSize: MainAxisSize.min,
spacing: 6,
children: [
Assets.vec.cubeSearchSvg.svg(
width: 24,
height: 24,
colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn),
),
body: SingleChildScrollView(
child: Column(
Text('خارج استان', style: AppFonts.yekan16Bold.copyWith(color: Colors.white)),
],
),
additionalActions: [
Assets.vec.searchSvg.svg(
width: 24,
height: 24,
colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn),
),
SizedBox(width: 8),
Assets.vec.filterOutlineSvg.svg(
width: 20,
height: 20,
colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn),
),
SizedBox(width: 8),
],
),
body: Column(
children: [
SizedBox(height: 12),
ObxValue(
(model) => summaryOfInformation(model.value),
controller.stewardFreeDashboard,
ObxValue((model) => summaryOfInformation(model.value), controller.stewardFreeDashboard),
Expanded(
child: ListView.separated(
padding: const EdgeInsets.fromLTRB(8, 12, 8, 100),
shrinkWrap: true,
physics: BouncingScrollPhysics(),
itemBuilder: (BuildContext context, int index) {
return Container(
padding: EdgeInsets.symmetric(horizontal: 8, vertical: 10),
decoration: BoxDecoration(color: Colors.white, borderRadius: BorderRadius.circular(8)),
child: Column(
spacing: 8,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Assets.vec.editSvg.svg(
width: 20,
height: 20,
colorFilter: ColorFilter.mode(AppColor.blueNormal, BlendMode.srcIn),
),
Text(
'لرستان - خرم آباد',
textAlign: TextAlign.center,
style: AppFonts.yekan16.copyWith(color: AppColor.greenDark),
),
Assets.vec.trashSvg.svg(
width: 20,
height: 20,
colorFilter: ColorFilter.mode(AppColor.error, BlendMode.srcIn),
),
],
),
Container(
height: 32,
padding: EdgeInsets.symmetric(horizontal: 4),
decoration: ShapeDecoration(
color: AppColor.blueLight,
shape: RoundedRectangleBorder(
side: BorderSide(width: 1, color: AppColor.blueLightHover),
borderRadius: BorderRadius.circular(8),
),
),
child: buildRow('تاریخ', '07:15:00 - 1402/07/01'),
),
buildRow('مشخصات فروشنده', 'افلاک - 09203659874'),
buildRow('وزن خریداری شده', '200 کیلوگرم'),
buildRow('لاشه خریداری شده', '200 عدد'),
],
),
);
},
separatorBuilder: (BuildContext context, int index) => SizedBox(height: 6),
itemCount: 3,
),
),
],
),
floatingActionButton: RFab.add(onPressed: () {}),
floatingActionButtonLocation: FloatingActionButtonLocation.startFloat,
);
}
@@ -39,14 +121,7 @@ class SalesOutOfProvincePage extends GetView<SalesOutOfProvinceLogic> {
Padding(
padding: const EdgeInsets.symmetric(horizontal: 8),
child: Row(
children: [
Text(
'خلاصه اطلاعات',
style: AppFonts.yekan16Bold.copyWith(
color: AppColor.blueNormal,
),
),
],
children: [Text('خلاصه اطلاعات', style: AppFonts.yekan16Bold.copyWith(color: AppColor.blueNormal))],
),
),
Container(
@@ -65,15 +140,9 @@ class SalesOutOfProvincePage extends GetView<SalesOutOfProvinceLogic> {
spacing: 10,
children: [
const SizedBox(height: 12),
buildRow(
'تعداد کل بارها',
model.totalQuantity?.toString() ?? '0',
),
buildRow('تعداد کل بارها', model.totalQuantity?.toString() ?? '0'),
buildRow('تعداد کل', model.totalBars?.toString() ?? '0'),
buildRow(
'وزن کل (کیلوگرم)',
model.totalWeight?.toString() ?? '0',
),
buildRow('وزن کل (کیلوگرم)', model.totalWeight?.toString() ?? '0'),
],
),
),
@@ -92,9 +161,7 @@ class SalesOutOfProvincePage extends GetView<SalesOutOfProvinceLogic> {
child: Text(
title,
textAlign: TextAlign.right,
style: AppFonts.yekan14.copyWith(
color: AppColor.darkGreyDarkHover,
),
style: AppFonts.yekan14.copyWith(color: AppColor.darkGreyDarkHover),
),
),
Flexible(
@@ -102,9 +169,7 @@ class SalesOutOfProvincePage extends GetView<SalesOutOfProvinceLogic> {
child: Text(
value,
textAlign: TextAlign.left,
style: AppFonts.yekan14.copyWith(
color: AppColor.darkGreyDarkHover,
),
style: AppFonts.yekan14.copyWith(color: AppColor.darkGreyDarkHover),
),
),
],
@@ -112,8 +177,6 @@ class SalesOutOfProvincePage extends GetView<SalesOutOfProvinceLogic> {
);
}
/* Widget inventoryWidget() {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 8.0),

View File

@@ -72,6 +72,9 @@ class $AssetsIconsGen {
/// File path: assets/icons/filter.svg
SvgGenImage get filter => const SvgGenImage('assets/icons/filter.svg');
/// File path: assets/icons/filter_outline.svg
SvgGenImage get filterOutline => const SvgGenImage('assets/icons/filter_outline.svg');
/// File path: assets/icons/gps.svg
SvgGenImage get gps => const SvgGenImage('assets/icons/gps.svg');
@@ -192,6 +195,7 @@ class $AssetsIconsGen {
edit,
excelDownload,
filter,
filterOutline,
gps,
home,
information,
@@ -317,6 +321,9 @@ class $AssetsVecGen {
/// File path: assets/vec/filter.svg.vec
SvgGenImage get filterSvg => const SvgGenImage.vec('assets/vec/filter.svg.vec');
/// File path: assets/vec/filter_outline.svg.vec
SvgGenImage get filterOutlineSvg => const SvgGenImage.vec('assets/vec/filter_outline.svg.vec');
/// File path: assets/vec/gps.svg.vec
SvgGenImage get gpsSvg => const SvgGenImage.vec('assets/vec/gps.svg.vec');
@@ -437,6 +444,7 @@ class $AssetsVecGen {
editSvg,
excelDownloadSvg,
filterSvg,
filterOutlineSvg,
gpsSvg,
homeSvg,
informationSvg,

View File

@@ -1,9 +1,6 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:rasadyar_core/core.dart';
import 'package:rasadyar_core/presentation/common/app_color.dart';
import 'package:rasadyar_core/presentation/common/app_fonts.dart';
class RAppBar extends StatelessWidget implements PreferredSizeWidget {
final String title;
@@ -49,22 +46,14 @@ class RAppBar extends StatelessWidget implements PreferredSizeWidget {
title: Row(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: [Text(title),
if (iconTitle != null)...{
const SizedBox(width: 8)
},
if (iconTitle != null)...{
SvgGenImage.vec(iconTitle!).svg(
width: 24,
height: 24,
)
}
]),
children: [
Text(title),
if (iconTitle != null) ...{const SizedBox(width: 8)},
if (iconTitle != null) ...{SvgGenImage.vec(iconTitle!).svg(width: 24, height: 24)},
],
),
leadingWidth: leadingWidth?.toDouble(),
leading: leading != null ? Padding(padding: const EdgeInsets.only(right: 16), child: leading) : null,
leading: leading != null ? Padding(padding: const EdgeInsets.only(right: 6), child: leading) : null,
titleSpacing: 8,
actions: [
if (additionalActions != null) ...additionalActions!,

View File

@@ -20,3 +20,4 @@ export 'chips/r_chips.dart';
export 'overlay_dropdown_widget/view.dart';
export 'inputs/input_fixed_hint.dart';
export 'bottom_sheet/base_bottom_sheet.dart';
export 'buttons/fab.dart';