loan & cm item view ui changes

main_production_RSG
Sikander Saleem 2 months ago
parent 8864e122bc
commit a722635dfe

@ -10,6 +10,9 @@ import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/new_models/dashboard_detail.dart';
import 'package:test_sa/modules/internal_audit_module/pages/equipment_internal_audit/equipment_internal_audit_detail_page.dart';
import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/views/widgets/item_views/info_date_widget.dart';
import 'package:test_sa/views/widgets/item_views/info_header_widget.dart';
import 'package:test_sa/views/widgets/item_views/info_text_widget.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart';
import 'loan_equipment_detail_page.dart';
@ -36,30 +39,12 @@ class LoanEquipmentItemView extends StatelessWidget {
backgroundColor: AppColor.getRequestStatusColorByName(context, requestData!.statusName!),
),
1.width.expanded,
Text(
requestData!.transactionDate?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
],
),
8.height,
(requestData?.typeTransaction ?? "Loan Request").heading5(context),
infoWidget(label: context.translation.requestType, value: requestData?.requestTypeName, context: context),
infoWidget(label: context.translation.requestNo, value: requestData?.requestNo, context: context),
// infoWidget(label: context.translation.site, value: requestData?., context: context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
InfoDateWidget(requestData!.transactionDate ?? ""),
],
),
InfoHeaderWidget(requestData?.typeTransaction ?? "Loan Request"),
InfoTextWidget(label: context.translation.requestType, value: requestData?.requestTypeName),
InfoTextWidget(label: context.translation.requestNo, value: requestData?.requestNo, showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.push(context, MaterialPageRoute(builder: (context) => LoanEquipmentDetailPage(loanId: requestDetails!.id!)));
@ -67,6 +52,7 @@ class LoanEquipmentItemView extends StatelessWidget {
}
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
spacing: 1,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
@ -77,41 +63,16 @@ class LoanEquipmentItemView extends StatelessWidget {
backgroundColor: AppColor.getRequestStatusColorByName(context, requestDetails?.status!),
),
1.width.expanded,
Text(
requestDetails!.date?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
],
),
8.height,
(requestDetails?.nameOfType ?? "Loan Request").heading5(context),
8.height,
infoWidget(label: context.translation.requestType, value: requestDetails!.requestType, context: context),
infoWidget(label: context.translation.requestNo, value: requestDetails!.requestNo, context: context),
infoWidget(label: context.translation.site, value: requestDetails!.site, context: context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
InfoDateWidget(requestDetails!.date ?? ""),
],
),
InfoHeaderWidget(requestDetails?.nameOfType ?? "Loan Request"),
InfoTextWidget(label: context.translation.requestType, value: requestDetails!.requestType),
InfoTextWidget(label: context.translation.requestNo, value: requestDetails!.requestNo),
InfoTextWidget(label: context.translation.site, value: requestDetails!.site, showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.push(context, MaterialPageRoute(builder: (context) => LoanEquipmentDetailPage(loanId: requestDetails!.id!)));
});
}
Widget infoWidget({required String label, String? value, required BuildContext context}) {
if (value != null && value.isNotEmpty) {
return '$label: $value'.bodyText(context);
}
return const SizedBox();
}
}

@ -12,6 +12,9 @@ import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/new_models/dashboard_detail.dart';
import 'package:test_sa/modules/cm_module/cm_detail_page.dart';
import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/views/widgets/item_views/info_date_widget.dart';
import 'package:test_sa/views/widgets/item_views/info_header_widget.dart';
import 'package:test_sa/views/widgets/item_views/info_text_widget.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart';
class ServiceRequestItemView extends StatelessWidget {
@ -46,39 +49,16 @@ class ServiceRequestItemView extends StatelessWidget {
backgroundColor: AppColor.getHistoryLogStatusColorByName(requestData!.statusName!),
),
1.width.expanded,
Text(requestData!.transactionDate!.toServiceRequestCardFormat,
textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50)),
InfoDateWidget(requestData!.transactionDate!),
],
),
8.height,
(requestData?.typeTransaction ?? context.translation.correctiveMaintenance).heading5(context),
8.height,
'CM Number: ${requestData!.requestNo}'.bodyText(context),
'${context.translation.assetNumber}: ${requestData?.assetNumber}'.bodyText(context),
'${context.translation.assetName}: ${requestData?.assetName?.cleanupWhitespace.capitalizeFirstOfEach}'.bodyText(context),
// '${context.translation.assetNumber}: ${request.assetNo}'.bodyText(context),
// '${context.translation.requestType}: ${requestData!.requestTypeName}'.bodyText(context),
InfoHeaderWidget(requestData?.typeTransaction ?? context.translation.correctiveMaintenance),
InfoTextWidget(label: "CM Number", value: requestData!.requestNo),
InfoTextWidget(label: context.translation.assetNumber, value: requestData!.assetNumber),
InfoTextWidget(label: context.translation.assetName, value: requestData?.assetName?.cleanupWhitespace.capitalizeFirstOfEach, showArrow: requestData?.statusName == 'Canceled' ? false : true),
if (requestData?.statusName == 'Canceled') ...[
'${context.translation.rejectionReason}: ${requestData?.rejectReason}'.bodyText(context),
InfoTextWidget(label: context.translation.rejectionReason, value: requestData?.rejectReason, showArrow: true),
],
8.height,
Row(
// mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(
Icons.arrow_forward,
color: AppColor.blueStatus(context),
size: 14,
)
],
),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
await Navigator.of(context).push(MaterialPageRoute(builder: (_) => CMDetailPage(requestId: requestData!.id!, moduleId: requestData!.transactionNo!)));
@ -91,6 +71,7 @@ class ServiceRequestItemView extends StatelessWidget {
return Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
spacing: 1,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
@ -109,35 +90,14 @@ class ServiceRequestItemView extends StatelessWidget {
backgroundColor: AppColor.getRequestStatusColorByName(context, requestDetails!.status),
),
1.width.expanded,
Text(requestDetails!.date!.toServiceRequestCardFormat, textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50)),
],
),
8.height,
(requestDetails!.nameOfType ?? context.translation.correctiveMaintenance).heading5(context),
8.height,
// '${context.translation.requestType}: ${requestDetails!.requestType}'.bodyText(context),
'CM Number: ${requestDetails!.requestNo}'.bodyText(context),
'${context.translation.assetNumber}: ${requestDetails!.assetNo}'.bodyText(context),
'${context.translation.serialNo}: ${requestDetails!.assetSN}'.bodyText(context),
'${context.translation.assetName}: ${requestDetails!.assetName?.cleanupWhitespace.capitalizeFirstOfEach}'.bodyText(context),
8.height,
Row(
// mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(
Icons.arrow_forward,
color: AppColor.blueStatus(context),
size: 14,
)
InfoDateWidget(requestDetails!.date!),
],
),
InfoHeaderWidget(requestDetails?.nameOfType ?? context.translation.correctiveMaintenance),
InfoTextWidget(label: "CM Number", value: requestDetails!.requestNo),
InfoTextWidget(label: context.translation.assetNumber, value: requestDetails!.assetNo),
InfoTextWidget(label: context.translation.serialNo, value: requestDetails!.assetSN, showEmptyValue: true),
InfoTextWidget(label: context.translation.assetName, value: requestDetails!.assetName?.cleanupWhitespace.capitalizeFirstOfEach, showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => CMDetailPage(requestId: requestDetails!.id!, moduleId: requestDetails!.transactionType!)));

@ -0,0 +1,13 @@
import 'package:flutter/material.dart';
import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/new_views/app_style/app_color.dart';
class InfoDateWidget extends StatelessWidget {
final String date;
InfoDateWidget(this.date, {Key? key}) : super(key: key);
@override
Widget build(BuildContext context) => Text(date.toServiceRequestCardFormat, textAlign: TextAlign.end, style: AppTextStyles.tinyFont2.copyWith(color: AppColor.text9Color(context)));
}

@ -0,0 +1,12 @@
import 'package:flutter/material.dart';
import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/new_views/app_style/app_color.dart';
class InfoHeaderWidget extends StatelessWidget {
final String label;
InfoHeaderWidget(this.label, {Key? key}) : super(key: key);
@override
Widget build(BuildContext context) => Text(label, style: AppTextStyles.bodyText.copyWith(color: AppColor.textStyleColor(context)));
}

@ -0,0 +1,37 @@
import 'package:flutter/material.dart';
import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/new_views/app_style/app_color.dart';
class InfoTextWidget extends StatelessWidget {
String? value;
final String label;
final bool showEmptyValue;
final bool showArrow;
InfoTextWidget({required this.label, this.value, this.showEmptyValue = false, this.showArrow = false, Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
Widget text;
if (showEmptyValue) {
text = Text('$label: ${value ?? ""}', style: AppTextStyles.bodyText2.copyWith(color: AppColor.lightTextColor(context)));
} else if (value?.isNotEmpty ?? false) {
text = Text('$label: $value', style: AppTextStyles.bodyText2.copyWith(color: AppColor.lightTextColor(context)));
} else {
text = const SizedBox();
}
if (showArrow) {
text = Row(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
text.expanded,
const SizedBox(width: 4),
"arrow_right".toSvgAsset(width: 17, color: AppColor.primary10),
],
);
}
return text;
}
}

@ -28,7 +28,7 @@ class StatusLabel extends StatelessWidget {
if (label?.toLowerCase() == 'Waiting for quotation'.toLowerCase()) label = context.translation.waitingForQuotation;
return Container(
padding: const EdgeInsets.symmetric(vertical: 6, horizontal: 10),
padding: const EdgeInsets.symmetric(vertical: 4, horizontal: 8),
alignment: labelInCenter ? Alignment.center : null,
decoration: ShapeDecoration(
color: backgroundColor,

Loading…
Cancel
Save