work order list ui changed.

main_design2.0
Sikander Saleem 2 years ago
parent 0170c6f5cb
commit 0e30fef10c

@ -0,0 +1,8 @@
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="0.5" y="0.5" width="47" height="47" rx="23.5" fill="white" stroke="#EAF1F4"/>
<g opacity="0.5">
<path d="M26.5703 25.9869C26.3589 26.1982 26.0976 26.3596 25.8145 26.4541L23.0799 27.3655C22.8826 27.4314 22.6768 27.4648 22.4685 27.4648C21.952 27.4648 21.4664 27.2637 21.1012 26.8984C20.58 26.3771 20.4011 25.6189 20.6342 24.9197L21.5457 22.1852C21.64 21.902 21.8016 21.6406 22.0128 21.4294L27.919 15.5232H16.3633C15.0602 15.5232 14 16.5834 14 17.8865V31.6365C14 32.9396 15.0602 33.9997 16.3633 33.9997H30.1133C31.4164 33.9997 32.4766 32.9396 32.4766 31.6365V20.0807L26.5703 25.9869Z" fill="#163A51"/>
<path d="M22.9243 22.341C22.8535 22.4118 22.8002 22.498 22.7686 22.593L21.8571 25.3275C21.7799 25.5591 21.8401 25.8144 22.0128 25.987C22.1854 26.1597 22.4407 26.22 22.6723 26.1427L25.4069 25.2312C25.5018 25.1996 25.588 25.1463 25.6588 25.0755L33.7104 17.0239L30.9759 14.2894L22.9243 22.341Z" fill="#163A51"/>
<path d="M34.47 12.3144C34.0505 11.8949 33.3704 11.8949 32.9509 12.3144L31.8875 13.3778L34.622 16.1123L35.6854 15.0489C36.1049 14.6294 36.1049 13.9493 35.6854 13.5298L34.47 12.3144Z" fill="#163A51"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -254,5 +254,7 @@
"pickAsset" : "Pick Asset",
"firstAction" : "First Action",
"workOrder" : "Work Orders",
"viewWorkOrder" : "View All Work Order"
"createWorkOrder" : "Create Work Order",
"viewWorkOrder" : "View All Work Order",
"serviceDetails": "Service Details"
}

@ -185,7 +185,7 @@ class ServiceRequestDetailsPage extends StatelessWidget {
}
return Scaffold(
appBar: DefaultAppBar(title: context.translation.serviceRequest),
appBar: DefaultAppBar(title: context.translation.serviceDetails),
backgroundColor: const Color(0xfff8f9fb),
body: SafeArea(
child: FutureBuilder(

@ -4,15 +4,21 @@ import 'package:test_sa/controllers/providers/api/service_requests_provider.dart
import 'package:test_sa/controllers/providers/api/user_provider.dart';
import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/enums/user_types.dart';
import 'package:test_sa/models/service_request/search_work_order.dart';
import 'package:test_sa/models/service_request/service_request.dart';
import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
import 'package:test_sa/new_views/common_widgets/default_app_bar.dart';
import 'package:test_sa/views/app_style/sizing.dart';
import 'package:test_sa/views/pages/user/requests/work_order/create_service_report.dart';
import 'package:test_sa/views/pages/user/requests/work_order/future_service_report.dart';
import 'package:test_sa/views/widgets/buttons/app_button.dart';
import 'package:test_sa/views/widgets/requests/info_row.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart';
import 'package:test_sa/views/widgets/titles/app_sub_title.dart';
class WorkOrderListPage extends StatelessWidget {
@ -32,7 +38,7 @@ class WorkOrderListPage extends StatelessWidget {
serviceRequestsProvider = Provider.of<ServiceRequestsProvider>(context);
serviceRequest = ModalRoute.of(context).settings.arguments;
}
print("serviceRequest.statusValue:${serviceRequest.statusValue}");
return Scaffold(
appBar: DefaultAppBar(title: context.translation.workOrder),
backgroundColor: const Color(0xfff8f9fb),
@ -42,79 +48,46 @@ class WorkOrderListPage extends StatelessWidget {
builder: (context, snap) {
workOrders = snap.data as List<SearchWorkOrder>;
if (snap.connectionState == ConnectionState.waiting) return Center(child: CircularProgressIndicator());
if (snap.connectionState == ConnectionState.done && (snap.data?.length ?? 0) != 0) {
return SingleChildScrollView(
child: Column(
return Column(
children: [
ListView.separated(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
padding: EdgeInsets.all(21),
itemCount: workOrders.length,
separatorBuilder: (czt, index) => 21.height,
padding: const EdgeInsets.all(16),
itemCount: workOrders?.length ?? 0,
separatorBuilder: (czt, index) => 8.height,
itemBuilder: (context, index) {
Color itemColor = index % 2 == 0 ? Theme.of(context).colorScheme.primary : Theme.of(context).colorScheme.onPrimary;
Color onItemColor = index % 2 != 0 ? Theme.of(context).colorScheme.primary : Theme.of(context).colorScheme.onPrimary;
return ElevatedButton(
style: ElevatedButton.styleFrom(
padding: EdgeInsets.symmetric(vertical: 8, horizontal: 8),
primary: itemColor.withOpacity(.7),
return Container(
decoration: ShapeDecoration(
color: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(AppStyle.getBorderRadius(context)),
borderRadius: BorderRadius.circular(20),
),
shadows: const [BoxShadow(color: Color(0x07000000), blurRadius: 14, offset: Offset(0, 0), spreadRadius: 0)],
),
//padding: EdgeInsets.symmetric(vertical: 8,horizontal: 8),
onPressed: () {
// onPressed(request);
},
child: Column(
children: [
RequestInfoRow(
title: context.translation.callId,
content: serviceRequest.requestCode,
),
RequestInfoRow(
title: context.translation.orderWorkNumber,
info: workOrders[index].workOrderNo.toString(),
),
RequestInfoRow(
title: context.translation.visitDate,
info: workOrders[index].visitDate,
),
RequestInfoRow(title: context.translation.assignedEmployee, info: workOrders[index].assignedEmployee?.name ?? ""),
RequestInfoRow(
title: context.translation.assetSN,
info: workOrders[index].callRequest.asset.assetSerialNo,
),
RequestInfoRow(
title: context.translation.assetName,
info: workOrders[index].callRequest.asset.modelDefinition.assetName,
),
RequestInfoRow(
title: context.translation.assetNumber,
info: workOrders[index].callRequest.asset.assetNumber,
),
RequestInfoRow(
title: context.translation.model,
info: workOrders[index].callRequest.asset.modelDefinition.modelName,
),
RequestInfoRow(
title: context.translation.site,
info: workOrders[index].callRequest.asset.site.custName,
),
RequestInfoRow(
title: "Call last Situation",
info: workOrders[index].currentSituation.name ?? '',
),
_userProvider.user.type == UsersTypes.engineer && workOrders[index].workOrderNo != null
? Padding(
padding: EdgeInsets.all(32),
child: AButton(
text: context.translation.editServiceReport,
onPressed: serviceRequest.statusValue == 5 || serviceRequest.statusValue == 3
? null
: () {
Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
StatusLabel(label: workOrders[index].currentSituation.name, textColor: AppColor.orange60, backgroundColor: AppColor.orange40),
8.height,
Text(serviceRequest.requestCode, style: AppTextStyles.heading5.copyWith(color: const Color(0xFF3B3D4A))),
],
).expanded,
if (serviceRequest.statusValue != 5 && serviceRequest.statusValue != 3)
"edit".toSvgAsset(height: 48, width: 48).onPress(() {
Navigator.of(context).push(
MaterialPageRoute(
builder: (_) => FutureServiceReport(
@ -122,57 +95,80 @@ class WorkOrderListPage extends StatelessWidget {
workOrder: workOrders[index],
)),
);
},
),
)
: SizedBox.shrink(),
})
],
),
);
},
),
if (_userProvider.user.type == UsersTypes.engineer)
Center(
child: Padding(
padding: const EdgeInsets.all(32),
child: AButton(
text: "Create Work Order",
onPressed: serviceRequest.statusValue == 5 || serviceRequest.statusValue == 3
? null
: () {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => CreateServiceReport(request: serviceRequest)));
},
),
8.height,
Row(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'${context.translation.assetName}: ${workOrders[index].callRequest.asset.modelDefinition.assetName}',
style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575)),
),
Text(
'${context.translation.status}: ${workOrders[index].currentSituation.name}',
style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575)),
),
],
).expanded,
Text(workOrders[index].visitDate.toServiceRequestCardFormat, textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: const Color(0xFF3B3D4A))),
],
),
);
} else {
return Column(
Text(
'${context.translation.orderWorkNumber}: ${workOrders[index].workOrderNo}',
style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575)),
),
Text(
'${context.translation.assignedEmployee}: ${workOrders[index].assignedEmployee?.name ?? ""}',
style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575)),
),
Text('${context.translation.assetSN}: ${workOrders[index].callRequest.asset.assetSerialNo ?? ""}', style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575))),
Text('${context.translation.assetName}: ${workOrders[index].callRequest.asset.modelDefinition.assetName ?? ""}',
style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575))),
Text('${context.translation.assetNumber}: ${workOrders[index].callRequest.asset.assetNumber ?? ""}', style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575))),
Text('${context.translation.model}: ${workOrders[index].callRequest.asset.modelDefinition.modelName ?? ""}',
style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575))),
Text('${context.translation.site}: ${workOrders[index].callRequest.asset.site.custName ?? ""}', style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575))),
Text('${"Call last Situation"}: ${workOrders[index].calllastSituation.name ?? '' ?? ""}', style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575))),
16.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Expanded(
child: Center(
child: ASubTitle(context.translation.dataNotFound),
Text(
'View Details',
style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF4A8DB7)),
),
4.width,
const Icon(
Icons.arrow_forward,
color: Color(0xFF4A8DB7),
size: 14,
)
],
),
],
).paddingAll(16).onPress(() {
// onPressed(request);
}),
],
),
if (_userProvider.user.type == UsersTypes.engineer)
Center(
child: Padding(
padding: const EdgeInsets.all(32),
child: AButton(
text: "Create Work Order",
onPressed: serviceRequest.statusValue == 5 || serviceRequest.statusValue == 3
? null
: () {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => CreateServiceReport(request: serviceRequest)));
);
},
),
),
),
).expanded,
if (_userProvider.user.type != UsersTypes.engineer && (serviceRequest.statusValue != 5 && serviceRequest.statusValue != 3))
AppFilledButton(
label: context.translation.createWorkOrder,
maxWidth: true,
onPressed: () {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => CreateServiceReport(request: serviceRequest)));
}).paddingOnly(start: 16, end: 16, bottom: 16)
],
);
}
},
)));
}

Loading…
Cancel
Save