improvement.

design_3.0_asset_delivery_module
Sikander Saleem 5 months ago
parent dfef9aadb7
commit f9b101c233

@ -9,56 +9,59 @@ import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart'; import 'package:test_sa/views/widgets/requests/request_status.dart';
class AssetDetailCardView extends StatelessWidget { class AssetDetailCardView extends StatelessWidget {
WorkOrderData workOrder; // WorkOrderData workOrder;
AssetDetailCardView({super.key,required this.workOrder}); AssetDetailCardView({
super.key,
});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Row( return Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Column( Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
StatusLabel( // StatusLabel(
label: workOrder.priority?.name, // label: workOrder.priority?.name,
id: workOrder.priority!.id!, // id: workOrder.priority!.id!,
radius: 4, // radius: 4,
textColor: AppColor.getPriorityStatusTextColor(context, workOrder.priority!.id!), // textColor: AppColor.getPriorityStatusTextColor(context, workOrder.priority!.id!),
backgroundColor: AppColor.getPriorityStatusColor(context, workOrder.priority!.id!), // backgroundColor: AppColor.getPriorityStatusColor(context, workOrder.priority!.id!),
), // ),
8.height, // 8.height,
Text( Text(
context.translation.assetInformation, context.translation.assetInformation,
style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
), ),
// 8.height, // 8.height,
Text( Text(
'${context.translation.serialNo}: ${workOrder.workOrderContactPerson[0].name ?? '-'}', '${context.translation.serialNo}: ${"workOrder.workOrderContactPerson[0].name" ?? '-'}',
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
), ),
Text( Text(
'${context.translation.manufacture}: ${workOrder.workOrderContactPerson[0].name}', '${context.translation.manufacture}: ${"workOrder.workOrderContactPerson[0].name"}',
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
), ),
Text( Text(
'${context.translation.model}: ${workOrder.workOrderContactPerson[0].name}', '${context.translation.model}: ${"workOrder.workOrderContactPerson[0].name"}',
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
), ),
Text( Text(
'${context.translation.site}: ${workOrder.workOrderContactPerson[0].name}', '${context.translation.site}: ${"workOrder.workOrderContactPerson[0].name"}',
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
), ),
Text( Text(
'${context.translation.department}: ${workOrder.workOrderContactPerson[0].name}', '${context.translation.department}: ${"workOrder.workOrderContactPerson[0].name"}',
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
),Text( ),
'${context.translation.supplier}: ${workOrder.workOrderContactPerson[0].name}', Text(
'${context.translation.supplier}: ${"workOrder.workOrderContactPerson[0].name"}',
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
),Text( ),
'${'Remarks'.addTranslation}: ${workOrder.workOrderContactPerson[0].name}', Text(
'${'Remarks'.addTranslation}: ${"workOrder.workOrderContactPerson[0].name"}',
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120), style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
), ),
], ],
@ -67,28 +70,28 @@ class AssetDetailCardView extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: [
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
'edit_icon'.toSvgAsset().onPress((){ 'edit_icon'.toSvgAsset().onPress(() {
//Handle edit... //Handle edit...
}), }),
20.width, 20.width,
'delete_icon'.toSvgAsset().onPress((){ 'delete_icon'.toSvgAsset().onPress(() {
//handle delete.. //handle delete..
}) })
], ],
), ),
20.height, 20.height,
Container( Container(
height: 100, height: 100,
width:100, width: 100,
color: Colors.red, color: Colors.red,
child: 'edit_icon'.toSvgAsset().center, child: 'edit_icon'.toSvgAsset().center,
) )
],
],) )
], ],
).toShadowContainer(context); ).toShadowContainer(context);
} }

@ -35,28 +35,17 @@ class _AssetInventoryDetailViewState extends State<AssetInventoryDetailView> {
? const CircularProgressIndicator(color: AppColor.primary10).center ? const CircularProgressIndicator(color: AppColor.primary10).center
: requestProvider.currentWorkOrder == null : requestProvider.currentWorkOrder == null
? const NoDataFound() ? const NoDataFound()
: Column( : ListView(
children: [ padding: const EdgeInsets.all(16),
SingleChildScrollView( children: [
padding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth), requestDetailCard(context, requestProvider.currentWorkOrder!.data!),
child: Column( 12.height,
mainAxisSize: MainAxisSize.min, siteListCard(context, requestProvider.currentWorkOrder!.data!),
crossAxisAlignment: CrossAxisAlignment.start, ],
children: [ );
requestDetailCard(context, requestProvider.currentWorkOrder!.data!),
12.height,
siteListCard(context, requestProvider.currentWorkOrder!.data!),
// 20.height,
],
),
).expanded,
],
);
}); });
} }
TextStyle infoTextStyle(context) => AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120); TextStyle infoTextStyle(context) => AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120);
Widget requestDetailCard(BuildContext context, WorkOrderData workOrder) { Widget requestDetailCard(BuildContext context, WorkOrderData workOrder) {

@ -256,7 +256,6 @@ class _AssetInventoryFormViewState extends State<AssetInventoryFormView> {
setState(() {}); setState(() {});
}, },
), ),
12.height,
12.height, 12.height,
SingleItemDropDownMenu<Site, SiteProvider>( SingleItemDropDownMenu<Site, SiteProvider>(

@ -40,8 +40,8 @@ class _AssetInventoryPageState extends State<AssetInventoryPage> {
Future<void> getInitialData() async { Future<void> getInitialData() async {
_assetInventoryProvider = Provider.of<AssetInventoryProvider>(context, listen: false); _assetInventoryProvider = Provider.of<AssetInventoryProvider>(context, listen: false);
ServiceRequestDetailProvider _provider = Provider.of<ServiceRequestDetailProvider>(context, listen: false); // ServiceRequestDetailProvider _provider = Provider.of<ServiceRequestDetailProvider>(context, listen: false);
await _provider.getWorkOrderById(id: widget.sessionId); // await _provider.getWorkOrderById(id: widget.sessionId);
} }
@override @override
@ -89,21 +89,16 @@ class _AssetInventoryPageState extends State<AssetInventoryPage> {
TabBarView( TabBarView(
children: [ children: [
AssetInventoryDetailView(sessionModel: SessionModel(),), AssetInventoryDetailView(sessionModel: SessionModel(),),
AssetInventoryScanAssetView(workOrderData: Provider.of<ServiceRequestDetailProvider>(context,listen: false).currentWorkOrder!.data!,), AssetInventoryScanAssetView(),
], ],
).expanded, ).expanded,
SafeArea( FooterActionButton.footerContainer(
top: false, context: context,
right: false, child: AppFilledButton(
left: false, buttonColor: AppColor.primary10,
child: FooterActionButton.footerContainer( label: 'Scan Assets'.addTranslation,
context: context, onPressed: _scanAsset,
child: AppFilledButton( // buttonColor: AppColor.primary10,
buttonColor: AppColor.primary10,
label: 'Scan Assets'.addTranslation,
onPressed: _scanAsset,
// buttonColor: AppColor.primary10,
),
), ),
).toShadowContainer(context, padding: 0, showShadow: false, borderRadius: 0), ).toShadowContainer(context, padding: 0, showShadow: false, borderRadius: 0),
], ],

@ -1,4 +1,3 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/int_extensions.dart';
@ -12,42 +11,41 @@ import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
import 'asset_detail_card_view.dart'; import 'asset_detail_card_view.dart';
class AssetInventoryScanAssetView extends StatelessWidget { class AssetInventoryScanAssetView extends StatelessWidget {
WorkOrderData workOrderData ; AssetInventoryScanAssetView({Key? key}) : super(key: key);
AssetInventoryScanAssetView({Key? key,required this.workOrderData}) : super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return SafeArea( return SingleChildScrollView(
child: SingleChildScrollView( padding: EdgeInsets.all(16),
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
ListView.separated( ListView.separated(
physics: const NeverScrollableScrollPhysics(), physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true, shrinkWrap: true,
padding: EdgeInsets.zero, padding: EdgeInsets.zero,
itemBuilder: (cxt, index) => AssetDetailCardView(workOrder:workOrderData), itemBuilder: (cxt, index) => AssetDetailCardView(),
separatorBuilder: (cxt, index) => 12.height, separatorBuilder: (cxt, index) => 12.height,
itemCount: 4), itemCount: 4),
12.height, 12.height,
AppFilledButton( AppFilledButton(
label: "Add Asset".addTranslation, label: "Add Asset".addTranslation,
maxWidth: true, maxWidth: true,
height: 70, height: 70,
textColor: AppColor.textColor(context), textColor: AppColor.textColor(context),
buttonColor: context.isDark ? AppColor.neutral60 : AppColor.white10, buttonColor: context.isDark ? AppColor.neutral60 : AppColor.white10,
icon: Icon(Icons.add_circle, color: AppColor.blueStatus(context)), icon: Icon(Icons.add_circle, color: AppColor.blueStatus(context)),
showIcon: true, showIcon: true,
onPressed:()=> _addAsset(context), onPressed: () => _addAsset(context),
), ),
], ],
).paddingOnly(start: 16, end: 16,),
), ),
); );
} }
void _addAsset(BuildContext context ){
void _addAsset(BuildContext context) {
//TODO need to confirm navigation... //TODO need to confirm navigation...
Navigator.push(context, MaterialPageRoute(builder: (contxt) => const AssetInventoryFormView())); Navigator.push(context, MaterialPageRoute(builder: (contxt) => const AssetInventoryFormView()));
} }
} }

@ -56,15 +56,15 @@ class _PickSiteInformationViewState extends State<PickSiteInformationView> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
_requestDetailProvider = Provider.of<ServiceRequestDetailProvider>(context, listen: false); _requestDetailProvider = Provider.of<ServiceRequestDetailProvider>(context, listen: false);
return Scaffold( return Scaffold(
key: _scaffoldKey, key: _scaffoldKey,
appBar: DefaultAppBar( appBar: DefaultAppBar(
title: 'Inventory Session Request'.addTranslation, title: 'Inventory Session Request'.addTranslation,
titleStyle: AppTextStyles.heading3.copyWith(fontWeight: FontWeight.w500, color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), titleStyle: AppTextStyles.heading3.copyWith(fontWeight: FontWeight.w500, color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
), ),
body: Column( body: Column(
children: [ children: [
SingleChildScrollView( ListView(
child: Column( padding: const EdgeInsets.only(left: 16, right: 16, top: 16),
children: [ children: [
siteInfoCard(context), siteInfoCard(context),
12.height, 12.height,
@ -82,38 +82,30 @@ class _PickSiteInformationViewState extends State<PickSiteInformationView> {
), ),
12.height, 12.height,
], ],
).paddingOnly(start: 16, end: 16, top: 16), ).expanded,
).expanded, FooterActionButton.footerContainer(
FooterActionButton.footerContainer( context: context,
context: context, child: AppFilledButton(buttonColor: AppColor.primary10, label: context.translation.save, maxWidth: true, onPressed: _onSave),
child: AppFilledButton(buttonColor: AppColor.primary10, label: context.translation.save, maxWidth: true, onPressed: _onSave), ),
), ],
], ));
)
);
} }
void _addAsset(){
Navigator.push(context, MaterialPageRoute(builder: (contxt) => const AssetInventoryFormView()));
}
Widget assetDetailCard(BuildContext context, WorkOrderData workOrder) {
return Column( void _addAsset() {
mainAxisSize: MainAxisSize.min, Navigator.push(context, MaterialPageRoute(builder: (contxt) => const AssetInventoryFormView()));
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ListView.separated(
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
padding: EdgeInsets.zero,
itemBuilder: (cxt, index) => AssetDetailCardView(workOrder:workOrder),
separatorBuilder: (cxt, index) => 12.height,
itemCount: 4),
],
);
} }
Widget assetDetailCard(BuildContext context, WorkOrderData workOrder) {
return ListView.separated(
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
padding: EdgeInsets.zero,
itemBuilder: (cxt, index) => AssetDetailCardView(),
separatorBuilder: (cxt, index) => 12.height,
itemCount: 4);
}
Widget siteInfoCard(BuildContext context,){ Widget siteInfoCard(BuildContext context) {
return Column( return Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [

Loading…
Cancel
Save