improvement.

design_3.0_asset_inventory_module
Sikander Saleem 4 weeks 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';
class AssetDetailCardView extends StatelessWidget {
WorkOrderData workOrder;
// WorkOrderData workOrder;
AssetDetailCardView({super.key,required this.workOrder});
AssetDetailCardView({
super.key,
});
@override
Widget build(BuildContext context) {
return Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
StatusLabel(
label: workOrder.priority?.name,
id: workOrder.priority!.id!,
radius: 4,
textColor: AppColor.getPriorityStatusTextColor(context, workOrder.priority!.id!),
backgroundColor: AppColor.getPriorityStatusColor(context, workOrder.priority!.id!),
),
8.height,
// StatusLabel(
// label: workOrder.priority?.name,
// id: workOrder.priority!.id!,
// radius: 4,
// textColor: AppColor.getPriorityStatusTextColor(context, workOrder.priority!.id!),
// backgroundColor: AppColor.getPriorityStatusColor(context, workOrder.priority!.id!),
// ),
// 8.height,
Text(
context.translation.assetInformation,
style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
),
// 8.height,
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),
),
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),
),
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),
),
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),
),
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),
),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),
),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),
),
],
@ -67,28 +70,28 @@ class AssetDetailCardView extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
'edit_icon'.toSvgAsset().onPress((){
//Handle edit...
}),
20.width,
'delete_icon'.toSvgAsset().onPress((){
//handle delete..
})
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
'edit_icon'.toSvgAsset().onPress(() {
//Handle edit...
}),
20.width,
'delete_icon'.toSvgAsset().onPress(() {
//handle delete..
})
],
),
20.height,
Container(
height: 100,
width:100,
width: 100,
color: Colors.red,
child: 'edit_icon'.toSvgAsset().center,
)
],)
],
)
],
).toShadowContainer(context);
}

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

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

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

@ -1,4 +1,3 @@
import 'package:flutter/material.dart';
import 'package:test_sa/extensions/context_extension.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';
class AssetInventoryScanAssetView extends StatelessWidget {
WorkOrderData workOrderData ;
AssetInventoryScanAssetView({Key? key,required this.workOrderData}) : super(key: key);
AssetInventoryScanAssetView({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return SafeArea(
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ListView.separated(
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
padding: EdgeInsets.zero,
itemBuilder: (cxt, index) => AssetDetailCardView(workOrder:workOrderData),
separatorBuilder: (cxt, index) => 12.height,
itemCount: 4),
12.height,
AppFilledButton(
label: "Add Asset".addTranslation,
maxWidth: true,
height: 70,
textColor: AppColor.textColor(context),
buttonColor: context.isDark ? AppColor.neutral60 : AppColor.white10,
icon: Icon(Icons.add_circle, color: AppColor.blueStatus(context)),
showIcon: true,
onPressed:()=> _addAsset(context),
),
],
).paddingOnly(start: 16, end: 16,),
return SingleChildScrollView(
padding: EdgeInsets.all(16),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ListView.separated(
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
padding: EdgeInsets.zero,
itemBuilder: (cxt, index) => AssetDetailCardView(),
separatorBuilder: (cxt, index) => 12.height,
itemCount: 4),
12.height,
AppFilledButton(
label: "Add Asset".addTranslation,
maxWidth: true,
height: 70,
textColor: AppColor.textColor(context),
buttonColor: context.isDark ? AppColor.neutral60 : AppColor.white10,
icon: Icon(Icons.add_circle, color: AppColor.blueStatus(context)),
showIcon: true,
onPressed: () => _addAsset(context),
),
],
),
);
}
void _addAsset(BuildContext context ){
void _addAsset(BuildContext context) {
//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) {
_requestDetailProvider = Provider.of<ServiceRequestDetailProvider>(context, listen: false);
return Scaffold(
key: _scaffoldKey,
appBar: DefaultAppBar(
title: 'Inventory Session Request'.addTranslation,
titleStyle: AppTextStyles.heading3.copyWith(fontWeight: FontWeight.w500, color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
),
body: Column(
children: [
SingleChildScrollView(
child: Column(
key: _scaffoldKey,
appBar: DefaultAppBar(
title: 'Inventory Session Request'.addTranslation,
titleStyle: AppTextStyles.heading3.copyWith(fontWeight: FontWeight.w500, color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
),
body: Column(
children: [
ListView(
padding: const EdgeInsets.only(left: 16, right: 16, top: 16),
children: [
siteInfoCard(context),
12.height,
@ -82,38 +82,30 @@ class _PickSiteInformationViewState extends State<PickSiteInformationView> {
),
12.height,
],
).paddingOnly(start: 16, end: 16, top: 16),
).expanded,
FooterActionButton.footerContainer(
context: context,
child: AppFilledButton(buttonColor: AppColor.primary10, label: context.translation.save, maxWidth: true, onPressed: _onSave),
),
],
)
);
).expanded,
FooterActionButton.footerContainer(
context: context,
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(
mainAxisSize: MainAxisSize.min,
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),
],
);
void _addAsset() {
Navigator.push(context, MaterialPageRoute(builder: (contxt) => const AssetInventoryFormView()));
}
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(
crossAxisAlignment: CrossAxisAlignment.start,
children: [

Loading…
Cancel
Save