diff --git a/lib/config/config.dart b/lib/config/config.dart index a0bf52be..63ff8954 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -50,6 +50,14 @@ const GET_PATIENT_AppointmentHistory = const GET_PATIENT_VITAL_SIGN = 'Services/Doctors.svc/REST/Doctor_GetPatientVitalSign'; +///Er Nearest +const GET_NEAREST_HOSPITAL= + 'Services/Patients.svc/REST/Patient_GetProjectAvgERWaitingTime'; + + + + + ///Reports const REPORTS = 'Services/Doctors.svc/REST/GetPatientMedicalReportStatusInfo'; const INSERT_REQUEST_FOR_MEDICAL_REPORT = @@ -164,7 +172,6 @@ const SESSION_ID = 'TMRhVmkGhOsvamErw'; const IS_DENTAL_ALLOWED_BACKEND = false; const PATIENT_TYPE = 1; const PATIENT_TYPE_ID = 1; - var DeviceTypeID = Platform.isIOS ? 1 : 2; const LANGUAGE_ID = 2; const GET_PHARMCY_ITEMS = "Services/Lists.svc/REST/GetPharmcyItems_Region"; diff --git a/lib/core/model/er/projectavgerwaitingtime.dart b/lib/core/model/er/projectavgerwaitingtime.dart new file mode 100644 index 00000000..9b21ec66 --- /dev/null +++ b/lib/core/model/er/projectavgerwaitingtime.dart @@ -0,0 +1,104 @@ +class ProjectAvgERWaitingTime { + int iD; + int projectID; + int avgTimeInMinutes; + String avgTimeInHHMM; + dynamic distanceInKilometers; + String latitude; + String longitude; + String phoneNumber; + String projectImageURL; + String projectName; + + ProjectAvgERWaitingTime( + {this.iD, + this.projectID, + this.avgTimeInMinutes, + this.avgTimeInHHMM, + this.distanceInKilometers, + this.latitude, + this.longitude, + this.phoneNumber, + this.projectImageURL, + this.projectName}); + + ProjectAvgERWaitingTime.fromJson(Map json) { + iD = json['ID']; + projectID = json['ProjectID']; + avgTimeInMinutes = json['AvgTimeInMinutes']; + avgTimeInHHMM = json['AvgTimeInHHMM']; + distanceInKilometers = json['DistanceInKilometers']; + latitude = json['Latitude']; + longitude = json['Longitude']; + phoneNumber = json['PhoneNumber']; + projectImageURL = json['ProjectImageURL']; + projectName = json['ProjectName']; + } + + Map toJson() { + final Map data = new Map(); + data['ID'] = this.iD; + data['ProjectID'] = this.projectID; + data['AvgTimeInMinutes'] = this.avgTimeInMinutes; + data['AvgTimeInHHMM'] = this.avgTimeInHHMM; + data['DistanceInKilometers'] = this.distanceInKilometers; + data['Latitude'] = this.latitude; + data['Longitude'] = this.longitude; + data['PhoneNumber'] = this.phoneNumber; + data['ProjectImageURL'] = this.projectImageURL; + data['ProjectName'] = this.projectName; + return data; + } +} +//class ProjectAvgERWaitingTime { +// int iD; +// int projectID; +// int avgTimeInMinutes; +// String avgTimeInHHMM; +// String distanceInKilometers; +// String latitude; +// String longitude; +// String phoneNumber; +// String projectImageURL; +// String projectName; +// +// ProjectAvgERWaitingTime( +// {this.iD, +// this.projectID, +// this.avgTimeInMinutes, +// this.avgTimeInHHMM, +// this.distanceInKilometers, +// this.latitude, +// this.longitude, +// this.phoneNumber, +// this.projectImageURL, +// this.projectName}); +// +// ProjectAvgERWaitingTime.fromJson(Map json) { +// iD = json['ID']; +// projectID = json['ProjectID']; +// avgTimeInMinutes = json['AvgTimeInMinutes']; +// avgTimeInHHMM = json['AvgTimeInHHMM']; +// distanceInKilometers = json['DistanceInKilometers']; +// latitude = json['Latitude']; +// longitude = json['Longitude']; +// phoneNumber = json['PhoneNumber']; +// projectImageURL = json['ProjectImageURL']; +// projectName = json['ProjectName']; +// } +// +// Map toJson() { +// final Map data = new Map(); +// data['ID'] = this.iD; +// data['ProjectID'] = this.projectID; +// data['AvgTimeInMinutes'] = this.avgTimeInMinutes; +// data['AvgTimeInHHMM'] = this.avgTimeInHHMM; +// data['DistanceInKilometers'] = this.distanceInKilometers; +// data['Latitude'] = this.latitude; +// data['Longitude'] = this.longitude; +// data['PhoneNumber'] = this.phoneNumber; +// data['ProjectImageURL'] = this.projectImageURL; +// data['ProjectName'] = this.projectName; +// return data; +// } +//} \ No newline at end of file diff --git a/lib/core/model/er_service/projectavgerwaitingtime.dart b/lib/core/model/er_service/projectavgerwaitingtime.dart deleted file mode 100644 index 7d5f8ca4..00000000 --- a/lib/core/model/er_service/projectavgerwaitingtime.dart +++ /dev/null @@ -1,52 +0,0 @@ -class ProjectAvgERWaitingTime { - int iD; - int projectID; - int avgTimeInMinutes; - String avgTimeInHHMM; - double distanceInKilometers; - String latitude; - String longitude; - String phoneNumber; - String projectImageURL; - String projectName; - - ProjectAvgERWaitingTime( - {this.iD, - this.projectID, - this.avgTimeInMinutes, - this.avgTimeInHHMM, - this.distanceInKilometers, - this.latitude, - this.longitude, - this.phoneNumber, - this.projectImageURL, - this.projectName}); - - ProjectAvgERWaitingTime.fromJson(Map json) { - iD = json['ID']; - projectID = json['ProjectID']; - avgTimeInMinutes = json['AvgTimeInMinutes']; - avgTimeInHHMM = json['AvgTimeInHHMM']; - distanceInKilometers = json['DistanceInKilometers']; - latitude = json['Latitude']; - longitude = json['Longitude']; - phoneNumber = json['PhoneNumber']; - projectImageURL = json['ProjectImageURL']; - projectName = json['ProjectName']; - } - - Map toJson() { - final Map data = new Map(); - data['ID'] = this.iD; - data['ProjectID'] = this.projectID; - data['AvgTimeInMinutes'] = this.avgTimeInMinutes; - data['AvgTimeInHHMM'] = this.avgTimeInHHMM; - data['DistanceInKilometers'] = this.distanceInKilometers; - data['Latitude'] = this.latitude; - data['Longitude'] = this.longitude; - data['PhoneNumber'] = this.phoneNumber; - data['ProjectImageURL'] = this.projectImageURL; - data['ProjectName'] = this.projectName; - return data; - } -} \ No newline at end of file diff --git a/lib/core/service/er/er_service.dart b/lib/core/service/er/er_service.dart new file mode 100644 index 00000000..bd3b6116 --- /dev/null +++ b/lib/core/service/er/er_service.dart @@ -0,0 +1,43 @@ +import 'package:diplomaticquarterapp/config/config.dart'; +import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; +import 'package:diplomaticquarterapp/core/model/er/projectavgerwaitingtime.dart'; +import '../base_service.dart'; + +class ErService extends BaseService { + List projectAvgERWaitingTimeModelList = List(); + + Map body = Map(); + String Latitude = ""; + String Longitude = ""; + String PhoneNumber = ""; + + Future getProjectAvgERWaitingTimeOrders({int id, int projectID}) async { + hasError = false; + + if (id != null && projectID != null) { + body['ID'] = id; + body['ProjectID'] = projectID; + } + var lat = await sharedPref.getDouble(USER_LAT); + var long = await sharedPref.getDouble(USER_LONG); + body['Latitude'] = lat ?? 0; + body['Longitude'] = long ?? 0; + + await baseAppClient.post(GET_NEAREST_HOSPITAL, + onSuccess: (dynamic response, int statusCode) { + projectAvgERWaitingTimeModelList.clear(); + response['List_ProjectAvgERWaitingTime'].forEach((vital) { + projectAvgERWaitingTimeModelList + .add(ProjectAvgERWaitingTime.fromJson(vital)); + }); + projectAvgERWaitingTimeModelList.forEach((element) { + Latitude = '${element.latitude}'; + Longitude = '${element.longitude}'; + PhoneNumber = '${element.phoneNumber}'; + }); + }, onFailure: (String error, int statusCode) { + hasError = true; + super.error = error; + }, body: body); + } +} diff --git a/lib/core/viewModels/er/near_hospital_view_model.dart b/lib/core/viewModels/er/near_hospital_view_model.dart new file mode 100644 index 00000000..f12aa28f --- /dev/null +++ b/lib/core/viewModels/er/near_hospital_view_model.dart @@ -0,0 +1,31 @@ +import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; +import 'package:diplomaticquarterapp/core/model/er/projectavgerwaitingtime.dart'; + +import 'package:diplomaticquarterapp/core/service/er/er_service.dart'; +import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart'; +import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/BranchView.dart'; + +import '../../../locator.dart'; + +class NearHospitalViewModel extends BaseViewModel { + ErService _erService = locator(); + + List get ProjectAvgERWaitingTimeModeList => + _erService.projectAvgERWaitingTimeModelList; + + getProjectAvgERWaitingTimeOrders({int id, int projectID}) async { + setState(ViewState.Busy); + + if (id != null && projectID != null) { + await _erService.getProjectAvgERWaitingTimeOrders( + id: id, projectID: projectID); + } else { + await _erService.getProjectAvgERWaitingTimeOrders(); + } + if (_erService.hasError) { + error = _erService.error; + setState(ViewState.Error); + } else + setState(ViewState.Idle); + } +} diff --git a/lib/locator.dart b/lib/locator.dart index 6839fbc2..f676717d 100644 --- a/lib/locator.dart +++ b/lib/locator.dart @@ -5,6 +5,7 @@ import 'package:get_it/get_it.dart'; import 'core/service/appointment_rate_service.dart'; import 'core/service/dashboard_service.dart'; +import 'core/service/er/er_service.dart'; import 'core/service/feedback/feedback_service.dart'; import 'core/service/hospital_service.dart'; import 'core/service/medical/labs_service.dart'; @@ -15,6 +16,7 @@ import 'core/service/medical/radiology_service.dart'; import 'core/service/medical/reports_monthly_service.dart'; import 'core/service/medical/vital_sign_service.dart'; import 'core/viewModels/appointment_rate_view_model.dart'; +import 'core/viewModels/er/near_hospital_view_model.dart'; import 'core/viewModels/feedback/feedback_view_model.dart'; import 'core/service/medical/reports_service.dart'; import 'core/viewModels/hospital_view_model.dart'; @@ -56,6 +58,7 @@ void setupLocator() { locator.registerLazySingleton(() => QrService()); locator.registerFactory(() => VaccineService()); locator.registerLazySingleton(() => ReportsMonthlyService()); + locator.registerLazySingleton(() => ErService()); /// View Model locator.registerFactory(() => HospitalViewModel()); @@ -74,5 +77,6 @@ void setupLocator() { locator.registerFactory(() => AppointmentRateViewModel()); locator.registerFactory(() => QrViewModel()); locator.registerFactory(() => ReportsMonthlyViewModel()); + locator.registerFactory(() => NearHospitalViewModel()); } diff --git a/lib/pages/ErService/AmbulanceReq.dart b/lib/pages/ErService/AmbulanceReq.dart new file mode 100644 index 00000000..e69de29b diff --git a/lib/pages/ErService/ErOptions.dart b/lib/pages/ErService/ErOptions.dart index 33de54b9..6b6166bb 100644 --- a/lib/pages/ErService/ErOptions.dart +++ b/lib/pages/ErService/ErOptions.dart @@ -1,6 +1,6 @@ import 'package:diplomaticquarterapp/uitl/location_util.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; -//import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; + import 'package:flutter/material.dart'; import '../../uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/pages/ErService/widgets/card_common.dart'; @@ -37,12 +37,12 @@ class _ErOptionsState extends State { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text(TranslationBase.of(context).searchBy, - style: TextStyle( - fontSize: 24.0, - letterSpacing: 1.0, - fontWeight: FontWeight.bold, - color: new Color(0xFF60686b))), +// Text(TranslationBase.of(context).searchBy, +// style: TextStyle( +// fontSize: 24.0, +// letterSpacing: 1.0, +// fontWeight: FontWeight.bold, +// color: new Color(0xFF60686b))), Container( margin: EdgeInsets.fromLTRB(0.0, 10.0, 0.0, 10.0), child: Row( @@ -55,6 +55,7 @@ class _ErOptionsState extends State { text: TranslationBase.of(context).ambulancerequest, subText: TranslationBase.of(context).requestA, type: 0, + ), ), Expanded( @@ -63,6 +64,7 @@ class _ErOptionsState extends State { text: TranslationBase.of(context).nearester, subText: TranslationBase.of(context).locationa, type: 1), + ) ], ), diff --git a/lib/pages/ErService/NearestEr.dart b/lib/pages/ErService/NearestEr.dart index eba0dd4f..e167770b 100644 --- a/lib/pages/ErService/NearestEr.dart +++ b/lib/pages/ErService/NearestEr.dart @@ -1,144 +1,348 @@ +import 'package:diplomaticquarterapp/core/viewModels/er/near_hospital_view_model.dart'; +import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/uitl/location_util.dart'; +import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; +import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import '../../uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/pages/ErService/widgets/card_common.dart'; -class NearestEr extends StatefulWidget { - final bool isAppbar; +import 'widgets/card_position.dart'; - const NearestEr({Key key, this.isAppbar}) : super(key: key); - @override - _NearestErState createState() => _NearestErState(); -} +class NearestEr extends StatelessWidget { + static const String _url = "assets/images/"; -class _NearestErState extends State { - LocationUtils locationUtils; - @override - void initState() { - locationUtils = - new LocationUtils(isShowConfirmDialog: true, context: context); - WidgetsBinding.instance - .addPostFrameCallback((_) => locationUtils.getCurrentLocation()); + int appointmentNo; + int projectID; + + NearestEr({this.appointmentNo, this.projectID}); - super.initState(); - } @override Widget build(BuildContext context) { - return AppScaffold( - isShowAppBar: widget.isAppbar, - appBarTitle: TranslationBase.of(context).bookAppo, - body: Container( - margin: EdgeInsets.fromLTRB(10.0, 20.0, 10.0, 10.0), - child: ListView( + return BaseView( + onModelReady: appointmentNo != null && projectID != null + ? (model) => model.getProjectAvgERWaitingTimeOrders( + id: appointmentNo, projectID: projectID) + : (model) => model.getProjectAvgERWaitingTimeOrders(), + builder: (_, mode, widget) => AppScaffold( + isShowAppBar: true, + appBarTitle: 'Nearest ER', + baseViewModel: mode, + body: mode.ProjectAvgERWaitingTimeModeList.length > 0 + ? Container( + child: ListView( + children: [ + Text( + "\nThis service Displays nearest branch\n among all the branches of All Habib \n medical Group based on your current Location", + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 18.0, + letterSpacing: 1.0, + fontWeight: FontWeight.w900, + color: new Color(0xFF60686b))), + Container( + margin: EdgeInsets.fromLTRB(0.0, 10.0, 0.0, 10.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: CardPosition( + text: mode + .ProjectAvgERWaitingTimeModeList[0] + .projectName + .toString(), + image: + 'assets/images/new-design/find_us_icon.png', + subText: mode + .ProjectAvgERWaitingTimeModeList[0] + .distanceInKilometers + .toString(), + type: mode + .ProjectAvgERWaitingTimeModeList[0].iD + .toString(), + telephone: mode + .ProjectAvgERWaitingTimeModeList[0] + .phoneNumber + .toString(), + networkImage: mode + .ProjectAvgERWaitingTimeModeList[0] + .projectImageURL + .toString(), + latitude: mode + .ProjectAvgERWaitingTimeModeList[0] + .latitude, + longitude: mode + .ProjectAvgERWaitingTimeModeList[0] + .longitude, + projectname: mode + .ProjectAvgERWaitingTimeModeList[0] + .projectName, + ), + flex: 0, + ), + Expanded( + child: CardPosition( + text: mode + .ProjectAvgERWaitingTimeModeList[1] + .projectName + .toString(), + image: + 'assets/images/new-design/find_us_icon.png', + subText: mode + .ProjectAvgERWaitingTimeModeList[1] + .distanceInKilometers + .toString(), + type: mode + .ProjectAvgERWaitingTimeModeList[1].iD + .toString(), + telephone: mode + .ProjectAvgERWaitingTimeModeList[1] + .phoneNumber + .toString(), + networkImage: mode + .ProjectAvgERWaitingTimeModeList[1] + .projectImageURL + .toString(), + latitude: mode + .ProjectAvgERWaitingTimeModeList[1] + .latitude, + longitude: mode + .ProjectAvgERWaitingTimeModeList[1] + .longitude, + projectname: mode + .ProjectAvgERWaitingTimeModeList[1] + .projectName, + ), + flex: 0, + ) + ], + ), + Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: CardPosition( +// mode +// .vitalSignResModelList[ +// mode.vitalSignResModelList.length - 1] +// .heightCm +// .toString() + text: mode + .ProjectAvgERWaitingTimeModeList[2] + .projectName + .toString(), + image: + 'assets/images/new-design/find_us_icon.png', - children: [ - Text(TranslationBase.of(context).searchBy, - style: TextStyle( - fontSize: 24.0, - letterSpacing: 1.0, - fontWeight: FontWeight.bold, - color: new Color(0xFF60686b))), - Container( - margin: EdgeInsets.fromLTRB(0.0, 10.0, 0.0, 10.0), + subText: mode + .ProjectAvgERWaitingTimeModeList[2] + .distanceInKilometers + .toString(), + type: mode + .ProjectAvgERWaitingTimeModeList[2].iD + .toString(), + telephone: mode + .ProjectAvgERWaitingTimeModeList[2] + .phoneNumber + .toString(), + networkImage: mode + .ProjectAvgERWaitingTimeModeList[2] + .projectImageURL + .toString(), + latitude: mode + .ProjectAvgERWaitingTimeModeList[2] + .latitude, + longitude: mode + .ProjectAvgERWaitingTimeModeList[2] + .longitude, + projectname: mode + .ProjectAvgERWaitingTimeModeList[2] + .projectName, + ), + flex: 0, + ), + Expanded( + child: CardPosition( +// mode +// .vitalSignResModelList[ +// mode.vitalSignResModelList.length - 1] +// .heightCm +// .toString() + text: mode + .ProjectAvgERWaitingTimeModeList[3] + .projectName + .toString(), + image: + 'assets/images/new-design/find_us_icon.png', - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: CardCommonEr( - image: 'assets/images/new-design/find_us_icon.png', - text: TranslationBase.of(context).ambulancerequest, - subText: TranslationBase.of(context).requestA, - type: 0, - ), - flex: 0, - ), - Expanded( - child: CardCommonEr( - image: 'assets/images/new-design/find_us_icon.png', - text: TranslationBase.of(context).nearester, - subText: TranslationBase.of(context).locationa, - type: 1), - flex: 0, + subText: mode + .ProjectAvgERWaitingTimeModeList[3] + .distanceInKilometers + .toString(), + type: mode + .ProjectAvgERWaitingTimeModeList[3].iD + .toString(), + telephone: mode + .ProjectAvgERWaitingTimeModeList[3] + .phoneNumber + .toString(), + networkImage: mode + .ProjectAvgERWaitingTimeModeList[3] + .projectImageURL + .toString(), + latitude: mode + .ProjectAvgERWaitingTimeModeList[3] + .latitude, + longitude: mode + .ProjectAvgERWaitingTimeModeList[3] + .longitude, + projectname: mode + .ProjectAvgERWaitingTimeModeList[3] + .projectName, + ), + flex: 0, + ) + ], + ), + Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: CardPosition( +// mode +// .vitalSignResModelList[ +// mode.vitalSignResModelList.length - 1] +// .heightCm +// .toString() + text: mode + .ProjectAvgERWaitingTimeModeList[4] + .projectName + .toString(), + image: + 'assets/images/new-design/find_us_icon.png', - ) - ], - ), - Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: CardCommonEr( - image: 'assets/images/new-design/find_us_icon.png', - text: TranslationBase.of(context).ambulancerequest, - subText: TranslationBase.of(context).requestA, - type: 0, - ), - flex: 0, - ), - Expanded( - child: CardCommonEr( - image: 'assets/images/new-design/find_us_icon.png', - text: TranslationBase.of(context).nearester, - subText: TranslationBase.of(context).locationa, - type: 1), - flex: 0, - ) - ], - ), - Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: CardCommonEr( - image: 'assets/images/new-design/find_us_icon.png', - text: TranslationBase.of(context).ambulancerequest, - subText: TranslationBase.of(context).requestA, - type: 0, - ), - flex: 0, - ), - Expanded( - child: CardCommonEr( - image: 'assets/images/new-design/find_us_icon.png', - text: TranslationBase.of(context).nearester, - subText: TranslationBase.of(context).locationa, - type: 1), - flex: 0, - - ) - ], - ), - Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: CardCommonEr( - image: 'assets/images/new-design/find_us_icon.png', - text: TranslationBase.of(context).ambulancerequest, - subText: TranslationBase.of(context).requestA, - type: 0, - - ), - flex: 0, - ), - - ], - ), - ], + subText: mode + .ProjectAvgERWaitingTimeModeList[4] + .distanceInKilometers + .toString(), + type: mode + .ProjectAvgERWaitingTimeModeList[4].iD + .toString(), + telephone: mode + .ProjectAvgERWaitingTimeModeList[4] + .phoneNumber + .toString(), + networkImage: mode + .ProjectAvgERWaitingTimeModeList[4] + .projectImageURL + .toString(), + latitude: mode + .ProjectAvgERWaitingTimeModeList[4] + .latitude, + longitude: mode + .ProjectAvgERWaitingTimeModeList[4] + .longitude, + projectname: mode + .ProjectAvgERWaitingTimeModeList[4] + .projectName, + ), + flex: 0, + ), + Expanded( + child: CardPosition( + text: mode + .ProjectAvgERWaitingTimeModeList[5] + .projectName + .toString(), + image: + 'assets/images/new-design/find_us_icon.png', + subText: mode + .ProjectAvgERWaitingTimeModeList[5] + .distanceInKilometers + .toString(), + type: mode + .ProjectAvgERWaitingTimeModeList[5].iD + .toString(), + telephone: mode + .ProjectAvgERWaitingTimeModeList[5] + .phoneNumber + .toString(), + networkImage: mode + .ProjectAvgERWaitingTimeModeList[5] + .projectImageURL + .toString(), + latitude: mode + .ProjectAvgERWaitingTimeModeList[5] + .latitude, + longitude: mode + .ProjectAvgERWaitingTimeModeList[5] + .longitude, + projectname: mode + .ProjectAvgERWaitingTimeModeList[5] + .projectName, + ), + flex: 0, + ) + ], + ), + Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: CardPosition( + text: mode + .ProjectAvgERWaitingTimeModeList[6] + .projectName + .toString(), + image: + 'assets/images/new-design/find_us_icon.png', + subText: mode + .ProjectAvgERWaitingTimeModeList[6] + .distanceInKilometers + .toString(), + type: mode + .ProjectAvgERWaitingTimeModeList[6].iD + .toString(), + telephone: mode + .ProjectAvgERWaitingTimeModeList[6] + .phoneNumber + .toString(), + networkImage: mode + .ProjectAvgERWaitingTimeModeList[6] + .projectImageURL + .toString(), + latitude: mode + .ProjectAvgERWaitingTimeModeList[6] + .latitude, + longitude: mode + .ProjectAvgERWaitingTimeModeList[6] + .longitude, + projectname: mode + .ProjectAvgERWaitingTimeModeList[6] + .projectName, + ), + flex: 0, + ), + ], + ), + ], + )), + ], + ), ) - ), - ], - ), + : Center( + child: Texts('No Data'), + ), ), ); } } + diff --git a/lib/pages/ErService/widgets/card_common.dart b/lib/pages/ErService/widgets/card_common.dart index 124c73c4..c65789c5 100644 --- a/lib/pages/ErService/widgets/card_common.dart +++ b/lib/pages/ErService/widgets/card_common.dart @@ -1,6 +1,10 @@ //import 'package:diplomaticquarterapp/pages/BookAppointment/Search.dart'; +import 'package:diplomaticquarterapp/pages/BookAppointment/Search.dart'; +import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; +import '../NearestEr.dart'; + class CardCommonEr extends StatelessWidget { final image; final text; @@ -17,6 +21,7 @@ class CardCommonEr extends StatelessWidget { return GestureDetector( onTap: () { navigateToSearch(context, this.type); + print("=============this.type============="+this.type); }, child: Container( margin: EdgeInsets.fromLTRB(9.0, 9.0, 9.0, 9.0), @@ -54,6 +59,26 @@ class CardCommonEr extends StatelessWidget { } Future navigateToSearch(context, type) async { +//===Switch case=== + if(type==0) + {print("========Ambalunce=========");} + else{ + print("=========Nearest ER==========="); + +// Navigator.push( +// context, +// +// FadePage( +// // page: NearestEr(isAppbar: true,))); +// page: NearestEr())); + Navigator.push( + context, + FadePage( + page: NearestEr())); + + } + + // Navigator.push( // context, // MaterialPageRoute( diff --git a/lib/pages/ErService/widgets/card_position.dart b/lib/pages/ErService/widgets/card_position.dart new file mode 100644 index 00000000..4c649fc5 --- /dev/null +++ b/lib/pages/ErService/widgets/card_position.dart @@ -0,0 +1,126 @@ +//import 'package:diplomaticquarterapp/pages/BookAppointment/Search.dart'; +import 'package:diplomaticquarterapp/config/size_config.dart'; +import 'package:diplomaticquarterapp/pages/BookAppointment/Search.dart'; +import 'package:flutter/material.dart'; +import 'package:giffy_dialog/giffy_dialog.dart'; +import 'package:url_launcher/url_launcher.dart'; +import 'package:maps_launcher/maps_launcher.dart'; + + +import '../NearestEr.dart'; + +class CardPosition extends StatelessWidget { + final image; + final text; + final subText; + final type; + final telephone; + final networkImage; + final latitude; + final longitude; + final projectname; + const CardPosition( + { + @required this.image, + @required this.text, + @required this.subText, + @required this.type, + @required this.telephone, + @required this.networkImage , + @required this.latitude, + @required this.longitude, + @required this.projectname , + }); + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: () { + navigateToSearch(context, this.type,this.telephone,this.networkImage,this.latitude,this.longitude,this.projectname); + + }, + child: Container( + width:190, + margin: EdgeInsets.fromLTRB(7.0, 7.0, 7.0, 7.0), + decoration: BoxDecoration(boxShadow: [ + BoxShadow(color: Colors.grey[400], blurRadius: 2.0, spreadRadius: 0.0) + ], borderRadius: BorderRadius.circular(10), color: Colors.white), + child: Column( + + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + margin: EdgeInsets.fromLTRB(10.0, 10.0, 10.0, 0.0), + child: Text(this.text, + overflow: TextOverflow.clip, + style: TextStyle( + color: Colors.black, + letterSpacing: 1.0, + fontSize: 2 * SizeConfig.textMultiplier)), + ), + Container( + alignment: Alignment.center, + margin: EdgeInsets.fromLTRB(0.0, 0.0, 10.0, 8.0), + child: Image.asset(this.image, width: 60.0, height: 60.0), + ), + Container( + margin: EdgeInsets.fromLTRB(10.0, 0.0, 10.0, 0.0), + child: Text(this.subText, + overflow: TextOverflow.clip, + style: TextStyle( + color: Color(0xFFc5272d), letterSpacing: 1.0, fontSize: 15.0)), + ), + + ], + ), + ), + ); + } + + Future navigateToSearch(context, type,telephone,networkImage,latitude,longitude,projectname) async { + +//===Switch case=== + print("================"+type); + print("================"+telephone); + print("================"+networkImage); + + showDialog( + context: context,builder: (_) => AssetGiffyDialog( + title: Text(projectname, + style: TextStyle( + fontSize: 22.0, fontWeight: FontWeight.w600), + ),image:Image.network(networkImage, fit: BoxFit.cover,), + + buttonOkText:Text("LOCATION"), + buttonOkColor: Colors.grey, + buttonCancelText:Text('CAll') , + buttonCancelColor: Colors.grey, + onOkButtonPressed: () { MapsLauncher.launchCoordinates(double.parse(latitude),double.parse(longitude),projectname);}, + onCancelButtonPressed :() {launch("tel://" +telephone);} + +// double.parse( +// _medicineProvider.pharmaciesList[index]["Latitude"]), +// double.parse( +// _medicineProvider.pharmaciesList[index]["Longitude"]), +// _medicineProvider.pharmaciesList[index] +// ["LocationDescription"]); + //launch("tel://" +telephone); +//================ +// MapsLauncher.launchCoordinates( +// double.parse( +// _medicineProvider.pharmaciesList[index]["Latitude"]), +// double.parse( +// _medicineProvider.pharmaciesList[index]["Longitude"]), +// _medicineProvider.pharmaciesList[index] +// ["LocationDescription"]); +//================= + + + + ) ); + + } + + } + + diff --git a/pubspec.yaml b/pubspec.yaml index ea73a56b..64b3ac1f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -31,6 +31,8 @@ dependencies: # Permissions permission_handler: ^5.0.0+hotfix.3 device_info: ^0.4.2+4 +#popub + giffy_dialog: ^1.8.0 # Flutter Html View flutter_html: ^1.0.2