# Conflicts:
#	lib/pages/ContactUs/findus/hospitrals_page.dart
#	lib/pages/ContactUs/findus/pharmacies_page.dart
er_location
haroon amjad 5 years ago
commit 06798ef327

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

@ -64,7 +64,9 @@ const GET_FINDUS_REQUEST=
'Services/Lists.svc/REST/Get_HMG_Locations';
///LiveChat
const GET_LIVECHAT_REQUEST=
'Services/Patients.svc/REST/GetPatientICProjects';
///Reports

@ -227,7 +227,10 @@ const Map<String, Map<String, String>> localizedValues = {
'ar': 'مسح فوق رمز الاستجابة السريعة للتحقق في الجهاز في المستشفى'
},
"sendEmail": {"en": "Send Email", "ar": "ارسال نسخة"},
"EmailSentSuccessfully": {"en": "Email Sent Successfully", "ar": "تم إرسال البريد الإلكتروني بنجاح"},
"EmailSentSuccessfully": {
"en": "Email Sent Successfully",
"ar": "تم إرسال البريد الإلكتروني بنجاح"
},
"close": {"en": "Close", "ar": "مغلق"},
"booked": {"en": "Booked", "ar": "محجوز"},
"confirmed": {"en": "Confirmed", "ar": "مؤكد"},
@ -367,22 +370,32 @@ const Map<String, Map<String, String>> localizedValues = {
"consultation": {"en": "Consultation", "ar": "استشارة"},
"logs": {"en": "Logs", "ar": "السجلات"},
"textToSpeech": {"en": "How May I Help You?", "ar": "كيف يمكنني مساعدتك؟"},
"locationDialogMessage": {"en": "Allow the HMG app to access your location will assist you in showing the hospitals according to the nearest to you.", "ar": "السماح لتطبيق مجموعة الحبيب الطبية بالوصول إلى موقعك سيساعدك في إظهار المستشفيات وفقًا للأقرب إليك."},
"parking":{"en":"Parking","ar":"مواقف"},
"alhabiServices":{"en":"HMG Service","ar":"خدمات الحبيب"},
"parkingTitle":{"en":"Car service, car service, service to save parking information, return to it later, 1- By clicking on (Read the code), save the parking data. 2- By clicking on the button (view my car park), it shows you the cars location in Google Maps. 3- Read another position by pressing the Clear Position Data button.","ar":" خدمة المواقف، تتيح هذه الخدمة للمستخدم معلومات عن موقف السيارة ليسهل عليه العودة لها لاحقاً ، 1- بالضغط على زر(قراءة الكود) تستطيع حفظ البيانات الخاصة بالموقف. 2-بالضغط على زر(عرض موقف سيارتي) يعرض لك موقع السيارة في خرائط قوقل. 3- لإعادة قراءة موقف آخرعن طريق الضغط على زر(مسح بيانات الموقف). "},
"readBarcode":{"en":"Read Barcode","ar":"قراءة الكود"},
"showMyPark":{"en":"Show My Park","ar":"عرض بارك"},
"clearMyData":{"en":"clear My Data","ar":"امسح البيانات"},
"floor":{"en":"Floor:","ar":"الطابق"},
"gate":{"en":"Gate:","ar":"بوابة"},
"building":{"en":"Building:","ar":"المبنى"},
"branch":{"en":"Branch:","ar":"الفرع"},
"emergencyServices":{"en":"Emergency Services:","ar":"خدمات الطوارئ"},
"nearester":{"en":"Nearest ER:","ar":"أقرب طوارى"},
"locationa":{"en":"location:","ar":"الموقع"},
"ambulancerequest":{"en":"Ambulance :","ar":"طلب نقل "},
"requestA":{"en":"Request:","ar":"اسعاف"},
"locationDialogMessage": {
"en":
"Allow the HMG app to access your location will assist you in showing the hospitals according to the nearest to you.",
"ar":
"السماح لتطبيق مجموعة الحبيب الطبية بالوصول إلى موقعك سيساعدك في إظهار المستشفيات وفقًا للأقرب إليك."
},
"parking": {"en": "Parking", "ar": "مواقف"},
"alhabiServices": {"en": "HMG Service", "ar": "خدمات الحبيب"},
"parkingTitle": {
"en":
"Car service, car service, service to save parking information, return to it later, 1- By clicking on (Read the code), save the parking data. 2- By clicking on the button (view my car park), it shows you the cars location in Google Maps. 3- Read another position by pressing the Clear Position Data button.",
"ar":
" خدمة المواقف، تتيح هذه الخدمة للمستخدم معلومات عن موقف السيارة ليسهل عليه العودة لها لاحقاً ، 1- بالضغط على زر(قراءة الكود) تستطيع حفظ البيانات الخاصة بالموقف. 2-بالضغط على زر(عرض موقف سيارتي) يعرض لك موقع السيارة في خرائط قوقل. 3- لإعادة قراءة موقف آخرعن طريق الضغط على زر(مسح بيانات الموقف). "
},
"readBarcode": {"en": "Read Barcode", "ar": "قراءة الكود"},
"showMyPark": {"en": "Show My Park", "ar": "عرض بارك"},
"clearMyData": {"en": "clear My Data", "ar": "امسح البيانات"},
"floor": {"en": "Floor:", "ar": "الطابق"},
"gate": {"en": "Gate:", "ar": "بوابة"},
"building": {"en": "Building:", "ar": "المبنى"},
"branch": {"en": "Branch:", "ar": "الفرع"},
"emergencyServices": {"en": "Emergency Services:", "ar": "خدمات الطوارئ"},
"nearester": {"en": "Nearest ER:", "ar": "أقرب طوارى"},
"locationa": {"en": "location:", "ar": "الموقع"},
"ambulancerequest": {"en": "Ambulance :", "ar": "طلب نقل "},
"requestA": {"en": "Request:", "ar": "اسعاف"},
"MyAppointments": {"en": "My Appointments", "ar": "مواعيدي"},
"NoBookedAppointments": {
"en": "No Booked Appointments",
@ -450,43 +463,75 @@ const Map<String, Map<String, String>> localizedValues = {
"OrderDetails": {"en": "Order Details", "ar": "تفاصيل الطلب"},
"VitalSign": {"en": "Vital Sign", "ar": "العلامة حيوية"},
"MonthlyReports": {"en": "Monthly Reports", "ar": "تقارير شهرية"},
"km":{"en":"KMs:","ar":"كم"},
"PatientHealthSummaryReport":{"en":"Patient Health Summary Report","ar":" ملخص التقارير الشهرية"},
"ToViewTheTermsAndConditions":{"en":"To View The Terms And Conditions Report","ar":" عرض الشروط والأحكام "},
"ClickHere":{"en":"Click here","ar":"أنقر هنا"},
"IAgreeToTheTermsAndConditions":{"en":"I agree to the terms and conditions ","ar":"أوافق على الشروط والاحكام "},
"IAgreeToTheTermsAndConditionsSubtitle":{"en":"I agree to the terms and conditions ","ar":"هذا ملخص التقرير الصحي الشهري و الذي يسرد المؤشرات الصحية و نتائج التحاليل لأخر الزيارات. يرجى ملاحظة أن هذا التقرير هو تقرير يتم ارساله بشكل آلي من النظام و لا يعتبر رسمي و لا تؤخذ عليه أي قرارات طبية"},
"Save":{"en":"Save","ar":"حفظ "},
"UserAgreement":{"en":"User Agreement","ar":"اتفاقية الخصوصية "},
"UpdateSuccessfully":{"en":"Update Successfully","ar":"تم التحديث بنجاح"},
"CHECK_VACCINE_AVAILABILITY":{"en":"CHECK VACCINE AVAILABILITY","ar":"تحقق من توافر اللقاح"},
"MyVaccinesAvailability":{"en":"MyVaccinesAvailability","ar":"توفر لقاحي"},
"PaymentService":{"en":"Payment Service","ar":"خدمة المدفوعات"},
"PaymentOnline":{"en":"Service","ar":"الالكتروني"},
"OnlineCheckIn":{"en":"Online Check-In","ar":"مدفوعات معلقة"},
"MyBalances":{"en":"My Balances","ar":"رصيدي"},
"BalanceAmount":{"en":"Balance Amount","ar":"رصيدالحساب"},
"TotalBalance":{"en":"Total Balance","ar":"الرصيد الكلي"},
"CreateAdvancedPayment":{"en":"Create Advanced Payment","ar":"إنشاء دفعة مقدمة"},
"AdvancePayment":{"en":"Advance Payment","ar":"الدفع مقدما"},
"AdvancePaymentLabel":{
"en":"You can create and add an Advanced Payment for you account or other accounts.",
"ar":"يمكنك تحويل مبلغ لحسابك لدى المجموعة أو لحساب احد المراجعين"},
"FileNumber":{"en":"File Number","ar":"رقم الملف"},
"Amount":{"en":"Amount *","ar":"المبلغ *"},
"DepositorEmail":{"en":"Depositor Email *","ar":"البريد الإلكتروني للمودع *"},
"Notes":{"en":"Notes","ar":"ملاحظات"},
"SelectPatientName":{"en":"Select Patient Name","ar":"اختر اسم المريض"},
"SelectFamilyPatientName":{"en":"Family Members","ar":"أفراد الأسرة"},
"SelectHospital":{"en":"Select Hospital","ar":"اختر المستشفى"},
"MyAccount":{"en":"My Account","ar":"حسابي"},
"OtherAccount":{"en":"Other Account","ar":"حساب آخر"},
"SelectBeneficiary":{"en":"Select Beneficiary","ar":"حدد المستفيد"},
"ConfirmThePayment":{"en":"Confirm The Payment","ar":"تأكيد عملية الدفع"},
"DepositorName":{"en":"Depositor Name","ar":"اسم المودع *"},
"MobileNumber":{"en":"Mobile Number","ar":"رقم الجوال"},
"Ok":{"en":"Ok","ar":"حسنا"},
"TheVerificationCodeExpiresIn":{"en":"The Verification Code Expires In","ar":"تنتهي صلاحية رمز التحقق في"},
"PleaseEnterTheVerificationCode":{"en":"Please enter the verification code send to","ar":"الرجاء إدخال رمز التحقق المرسل إلى"},
"km": {"en": "KMs:", "ar": "كم"},
"PatientHealthSummaryReport": {
"en": "Patient Health Summary Report",
"ar": " ملخص التقارير الشهرية"
},
"ToViewTheTermsAndConditions": {
"en": "To View The Terms And Conditions Report",
"ar": " عرض الشروط والأحكام "
},
"ClickHere": {"en": "Click here", "ar": "أنقر هنا"},
"IAgreeToTheTermsAndConditions": {
"en": "I agree to the terms and conditions ",
"ar": "أوافق على الشروط والاحكام "
},
"IAgreeToTheTermsAndConditionsSubtitle": {
"en": "I agree to the terms and conditions ",
"ar":
"هذا ملخص التقرير الصحي الشهري و الذي يسرد المؤشرات الصحية و نتائج التحاليل لأخر الزيارات. يرجى ملاحظة أن هذا التقرير هو تقرير يتم ارساله بشكل آلي من النظام و لا يعتبر رسمي و لا تؤخذ عليه أي قرارات طبية"
},
"Save": {"en": "Save", "ar": "حفظ "},
"UserAgreement": {"en": "User Agreement", "ar": "اتفاقية الخصوصية "},
"UpdateSuccessfully": {"en": "Update Successfully", "ar": "تم التحديث بنجاح"},
"CHECK_VACCINE_AVAILABILITY": {
"en": "CHECK VACCINE AVAILABILITY",
"ar": "تحقق من توافر اللقاح"
},
"MyVaccinesAvailability": {
"en": "MyVaccinesAvailability",
"ar": "توفر لقاحي"
},
"PaymentService": {"en": "Payment Service", "ar": "خدمة المدفوعات"},
"PaymentOnline": {"en": "Service", "ar": "الالكتروني"},
"OnlineCheckIn": {"en": "Online Check-In", "ar": "مدفوعات معلقة"},
"MyBalances": {"en": "My Balances", "ar": "رصيدي"},
"BalanceAmount": {"en": "Balance Amount", "ar": "رصيدالحساب"},
"TotalBalance": {"en": "Total Balance", "ar": "الرصيد الكلي"},
"CreateAdvancedPayment": {
"en": "Create Advanced Payment",
"ar": "إنشاء دفعة مقدمة"
},
"AdvancePayment": {"en": "Advance Payment", "ar": "الدفع مقدما"},
"AdvancePaymentLabel": {
"en":
"You can create and add an Advanced Payment for you account or other accounts.",
"ar": "يمكنك تحويل مبلغ لحسابك لدى المجموعة أو لحساب احد المراجعين"
},
"FileNumber": {"en": "File Number", "ar": "رقم الملف"},
"Amount": {"en": "Amount *", "ar": "المبلغ *"},
"DepositorEmail": {
"en": "Depositor Email *",
"ar": "البريد الإلكتروني للمودع *"
},
"Notes": {"en": "Notes", "ar": "ملاحظات"},
"SelectPatientName": {"en": "Select Patient Name", "ar": "اختر اسم المريض"},
"SelectFamilyPatientName": {"en": "Family Members", "ar": "أفراد الأسرة"},
"SelectHospital": {"en": "Select Hospital", "ar": "اختر المستشفى"},
"MyAccount": {"en": "My Account", "ar": "حسابي"},
"OtherAccount": {"en": "Other Account", "ar": "حساب آخر"},
"SelectBeneficiary": {"en": "Select Beneficiary", "ar": "حدد المستفيد"},
"ConfirmThePayment": {"en": "Confirm The Payment", "ar": "تأكيد عملية الدفع"},
"DepositorName": {"en": "Depositor Name", "ar": "اسم المودع *"},
"MobileNumber": {"en": "Mobile Number", "ar": "رقم الجوال"},
"Ok": {"en": "Ok", "ar": "حسنا"},
"TheVerificationCodeExpiresIn": {
"en": "The Verification Code Expires In",
"ar": "تنتهي صلاحية رمز التحقق في"
},
"PleaseEnterTheVerificationCode": {
"en": "Please enter the verification code send to",
"ar": "الرجاء إدخال رمز التحقق المرسل إلى"
},
};

@ -0,0 +1,54 @@
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
class GetPatientICProjectsModel {
int id;
String projectName;
String projectNameN;
String value;
dynamic languageId;
DateTime createdOn;
String createdBy;
dynamic editedOn;
dynamic editedBy;
bool isActive;
GetPatientICProjectsModel(
{this.id,
this.projectName,
this.projectNameN,
this.value,
this.languageId,
this.createdOn,
this.createdBy,
this.editedOn,
this.editedBy,
this.isActive});
GetPatientICProjectsModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
projectName = json['ProjectName'];
projectNameN = json['ProjectNameN'];
value = json['Value'];
languageId = json['LanguageId'];
createdOn = DateUtil.convertStringToDate(json['CreatedOn']);
createdBy = json['CreatedBy'];
editedOn = json['EditedOn'];
editedBy = json['EditedBy'];
isActive = json['IsActive'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['ProjectName'] = this.projectName;
data['ProjectNameN'] = this.projectNameN;
data['Value'] = this.value;
data['LanguageId'] = this.languageId;
data['CreatedOn'] = this.createdOn;
data['CreatedBy'] = this.createdBy;
data['EditedOn'] = this.editedOn;
data['EditedBy'] = this.editedBy;
data['IsActive'] = this.isActive;
return data;
}
}

@ -4,8 +4,7 @@ import 'package:diplomaticquarterapp/core/model/contactus/get_hmg_locations.dart
import '../base_service.dart';
class FindusService extends BaseService {
//List<PatientER_RRT_GetAllTransportationMethodListModel> AmModelList = List();
//Map<String, dynamic> body = Map();
List<GetHMGLocationsModel> FindusModelList = List();
List<GetHMGLocationsModel> FindusHospitalModelList = List();

@ -0,0 +1,39 @@
import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/model/contactus/get_hmg_locations.dart';
import 'package:diplomaticquarterapp/core/model/contactus/get_patientI_cprojects.dart';
import '../base_service.dart';
class LiveChatService extends BaseService{
List<GetPatientICProjectsModel> LivechatModelList=List();
Map<String, dynamic> body = Map();
Future getAllLiveChatOrders() async {
hasError = false;
body['List_PatientICProjects'] =false;
await baseAppClient.post(GET_LIVECHAT_REQUEST,
onSuccess: (dynamic response, int statusCode) {
LivechatModelList.clear();
response['List_PatientICProjects'].forEach((vital) {
LivechatModelList.add(GetPatientICProjectsModel.fromJson(vital));
});
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: body);
}
}

@ -0,0 +1,33 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/contactus/get_patientI_cprojects.dart';
import 'package:diplomaticquarterapp/core/service/contactus/livechat_service.dart';
import '../base_view_model.dart';
import '../../../locator.dart';
class LiveChatViewModel extends BaseViewModel{
LiveChatService _liveChatService =locator<LiveChatService>();
List<GetPatientICProjectsModel> get LiveChatModelList=>
_liveChatService.LivechatModelList;
getLiveChatRequestOrders() async {
setState(ViewState.Busy);
await _liveChatService.getAllLiveChatOrders();
if (_liveChatService.hasError) {
error = _liveChatService.error;
setState(ViewState.Error);
} else
setState(ViewState.Idle);
}
}

@ -5,6 +5,7 @@ import 'package:get_it/get_it.dart';
import 'core/service/appointment_rate_service.dart';
import 'core/service/contactus/finadus_service.dart';
import 'core/service/contactus/livechat_service.dart';
import 'core/service/dashboard_service.dart';
import 'core/service/er/am_service.dart';
import 'core/service/er/er_service.dart';
@ -21,6 +22,7 @@ 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/contactus/findus_view_model.dart';
import 'core/viewModels/contactus/livechat_view_model.dart';
import 'core/viewModels/er/am_request_view_model.dart';
import 'core/viewModels/er/near_hospital_view_model.dart';
import 'core/viewModels/feedback/feedback_view_model.dart';
@ -73,6 +75,7 @@ void setupLocator() {
locator.registerLazySingleton(() => PatientSickLeaveService());
locator.registerLazySingleton(() => MyBalanceService());
locator.registerLazySingleton(() => FindusService());
locator.registerLazySingleton(() => LiveChatService());
/// View Model
locator.registerFactory(() => HospitalViewModel());
@ -96,5 +99,6 @@ void setupLocator() {
locator.registerFactory(() => PatientSickLeaveViewMode());
locator.registerFactory(() => MyBalanceViewModel());
locator.registerFactory(() => FindusViewModel());
locator.registerFactory(() => LiveChatViewModel());
}

@ -1,10 +1,21 @@
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/health_converter.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/parking_page.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/BookingOptions.dart';
import 'package:diplomaticquarterapp/pages/ErService/ErOptions.dart';
import 'package:diplomaticquarterapp/pages/ToDoList/ToDo.dart';
import 'package:diplomaticquarterapp/pages/family/my-family.dart';
import 'package:diplomaticquarterapp/pages/insurance/insurance_update_screen.dart';
import 'package:diplomaticquarterapp/pages/livecare/livecare_home.dart';
import 'package:diplomaticquarterapp/pages/medical/medical_profile_page.dart';
import 'package:diplomaticquarterapp/pages/paymentService/payment_service.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.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 'package:diplomaticquarterapp/widgets/data_display/services)contaniner.dart';
class AllHabibMedicalService extends StatefulWidget {
@override
@ -17,31 +28,273 @@ class _AllHabibMedicalServiceState extends State<AllHabibMedicalService> {
return AppScaffold(
isShowAppBar: true,
appBarTitle: TranslationBase.of(context).alhabiServices,
body: ListView(
children: <Widget>[
InkWell(
onTap: ()=> Navigator.push(context, FadePage(page: ParkingPage())),
child: Container(
height: 50,
margin: EdgeInsets.all(8),
decoration: BoxDecoration(
color: Colors.white,
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(7),
),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Texts(
TranslationBase.of(context).parking,
fontSize: 16,
)
],
),
),
body: Column(
children: [
Expanded(
child: ListView(
scrollDirection: Axis.vertical,
physics: AlwaysScrollableScrollPhysics(),
shrinkWrap: true,
children: [
Container(
width: double.infinity,
height: 190,
decoration: BoxDecoration(
image: DecorationImage(
image: ExactAssetImage('assets/images/timeline_bg.png'),
fit: BoxFit.cover,
),
),
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 10.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Health Weather Indicators',
style: TextStyle(
color: Colors.white,
fontSize: 22.0,
fontWeight: FontWeight.w600,
),
),
SizedBox(
height: 35.0,
),
Text(
'Health Tips Based On Current Weather',
style: TextStyle(
color: Colors.white,
),
),
]),
),
),
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(
page: MedicalProfilePage(),
),
),
imageLocation:
'assets/images/new-design/my_file_bottom_bar.png',
title: TranslationBase.of(context).myMedicalFile,
),
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(
page: LiveCareHome(),
),
),
imageLocation: 'assets/images/new-design/liveCare_ar_bg.png',
title: TranslationBase.of(context).livecare,
),
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(
page: BookingOptions(
isAppbar: true,
),
),
),
imageLocation:
'assets/images/new-design/booking_icon_active.png',
title: TranslationBase.of(context).bookAppo,
),
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(
page: PaymentService(),
),
),
imageLocation:
'assets/images/al-habib_online_payment_service_icon.png',
title: TranslationBase.of(context).onlinePaymentService,
),
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(),
),
imageLocation:
'assets/images/al-habib_online_payment_service_icon.png',
title: 'Covid-19- Drive-Thru Test',
),
ServicesContainer(
onTap: () {
Navigator.push(
context,
FadePage(
page: ErOptions(
isAppbar: true,
),
),
);
},
imageLocation: 'assets/images/emergency_service_image.png',
title: TranslationBase.of(context).emergencyService,
),
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(
page: ParkingPage(),
),
),
imageLocation: 'assets/images/pharmacy_logo.png',
title: 'Pharmacy'),
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(
page: InsuranceUpdate(),
),
),
imageLocation:
'assets/images/medical/insurance_card_icon.png',
title: TranslationBase.of(context).updateInsurance,
),
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(),
),
imageLocation: 'assets/images/ereferral_service_icon.png',
title: 'E-Referral',
),
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(
page: MyFamily(),
),
),
imageLocation:
'assets/images/new-design/family_menu_icon_red.png',
title: 'My Family',
),
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(),
),
imageLocation:
'assets/images/new-design/children_vaccines_icon.png',
title: 'Child Vaccines',
),
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(
page: ToDo(),
),
),
imageLocation:
'assets/images/new-design/upcoming_icon_bottom_bar.png',
title: TranslationBase.of(context).todoList,
),
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(),
),
imageLocation: 'assets/images/new-design/body_icon.png',
title: 'Symptom Checker'),
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(),
),
imageLocation: 'assets/images/new-design/blood_icon.png',
title: 'Blood Donation',
),
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(),
),
imageLocation:
'assets/images/new-design/health_calculator_icon.png',
title: 'Health Calculators',
),
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(
//page: HealthConverter(),
),
),
imageLocation:
'assets/images/new-design/health_convertor_icon.png',
title: 'Health Converter',
),
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(
page: ParkingPage(),
),
),
imageLocation: 'assets/images/new-design/water_icon.png',
title: 'H2O',
),
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(),
),
imageLocation: 'assets/images/new-design/smartwatch_icon.png',
title: TranslationBase.of(context).smartWatches,
),
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(
page: ParkingPage(),
),
),
imageLocation:
'assets/images/new-design/parking_system_icon.png',
title: TranslationBase.of(context).parking,
),
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(
page: ParkingPage(),
),
),
imageLocation:
'assets/images/new-design/virtual_tour_icon.png',
title: 'Virtual Tour',
),
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(
page: ParkingPage(),
),
),
imageLocation:
'assets/images/new-design/twitter_dashboard_icon.png',
title: 'Latest News',
),
ServicesContainer(
onTap: () => Navigator.push(
context,
FadePage(
page: ParkingPage(),
),
),
imageLocation: 'assets/images/new-design/find_us_icon.png',
title: 'Find Us',
),
],
),
),
],

@ -0,0 +1,94 @@
// import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
// import 'package:diplomaticquarterapp/widgets/data_display/medical/medical_profile_item.dart';
// import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
// import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
// import 'package:flutter/material.dart';
//
// import 'health_converter/blood_sugar.dart';
//
// class HealthConverter extends StatefulWidget {
// @override
// _HealthConverterState createState() => _HealthConverterState();
// }
//
// class _HealthConverterState extends State<HealthConverter> {
// @override
// Widget build(BuildContext context) {
// return AppScaffold(
// isShowAppBar: true,
// appBarTitle: 'Health Converter',
// body: Column(
// children: [
// Container(
// width: double.infinity,
// height: 30,
// ),
// Row(
// children: [
// Expanded(
// flex: 1,
// child: InkWell(
// onTap: () {
// Navigator.push(
// context,
// FadePage(page: BloodSugar()),
// );
// },
// child: MedicalProfileItem(
// title: 'Blood',
// imagePath: 'blood_sugar_icon.png',
// subTitle: 'Sugar',
// ),
// ),
// ),
// Expanded(
// flex: 1,
// child: InkWell(
// onTap: () {
// Navigator.push(
// context,
// FadePage(
// // page: [](),
// ),
// );
// },
// child: MedicalProfileItem(
// title: 'Blood',
// imagePath: 'blood_cholesterol_icon.png',
// subTitle: 'Cholesterol',
// ),
// ),
// ),
// ],
// ),
// Row(
// children: [
// Expanded(
// flex: 1,
// child: InkWell(
// onTap: () {
// Navigator.push(
// context,
// FadePage(
// // page: [](),
// ),
// );
// },
// child: MedicalProfileItem(
// title: 'Triglycerides',
// imagePath: 'triglycerides_blood_icon.png',
// subTitle: 'Fat in blood',
// ),
// ),
// ),
// Expanded(
// flex: 1,
// child: Container(),
// ),
// ],
// )
// ],
// ),
// );
// }
// }

@ -0,0 +1,208 @@
// import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
// import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
// import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
// import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
// import 'package:flutter/material.dart';
// import 'package:flutter/services.dart';
//
// const activeCardColor = Color(0xff70777A);
// const inactiveCardColor = Color(0xffFAFAFd);
//
// class BloodSugar extends StatefulWidget {
// @override
// _BloodSugarState createState() => _BloodSugarState();
// }
//
// Color color;
//
// class _BloodSugarState extends State<BloodSugar> {
// Color cardMGColor = inactiveCardColor;
// Color cardMMOLColor = inactiveCardColor;
//
// void updateColor(int type) {
// //MG/DLT card
// if (type == 1) {
// if (cardMGColor == inactiveCardColor) {
// cardMGColor = activeCardColor;
// cardMMOLColor = inactiveCardColor;
// } else {
// cardMGColor = inactiveCardColor;
// }
// }
// if (type == 2) {
// if (cardMMOLColor == inactiveCardColor) {
// cardMMOLColor = activeCardColor;
// cardMGColor = inactiveCardColor;
// } else {
// cardMMOLColor = inactiveCardColor;
// }
// }
// }
//
// bool _visible = false;
//
// TextEditingController textController = new TextEditingController();
// String finalValue;
//
// @override
// Widget build(BuildContext context) {
// return AppScaffold(
// isShowAppBar: true,
// appBarTitle: 'Blood Sugar Conversion',
// body: Padding(
// padding: const EdgeInsets.all(16.0),
// child: Column(
// //crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Container(
// width: 350.0,
// child: Text(
// 'Convert blood sugar/glucose from mmol/l (UK standard) to mg/dlt (US standard) and vice versa.',
// //textAlign: TextAlign.center,
// style: TextStyle(fontSize: 20.0),
// ),
// ),
// SizedBox(
// height: 15.0,
// ),
// Container(
// color: Colors.white,
// height: 120.0,
// child: Padding(
// padding: const EdgeInsets.all(8.0),
// child: Column(
// //crossAxisAlignment: CrossAxisAlignment.end,
// children: [
// Padding(
// padding: const EdgeInsets.symmetric(horizontal: 15.0),
// child: Row(
// children: [
// Texts(
// 'Convert from',
// )
// ],
// ),
// ),
// SizedBox(
// height: 9.0,
// ),
// Row(
// mainAxisAlignment: MainAxisAlignment.spaceEvenly,
// children: [
// GestureDetector(
// onTap: () {
// setState(() {
// updateColor(1);
// finalValue = textController.text * 3;
// });
// },
// child: Container(
// height: 55.0,
// width: 150.0,
// decoration: BoxDecoration(
// color: cardMGColor,
// borderRadius: BorderRadius.circular(10.0),
// ),
// child: Padding(
// padding: const EdgeInsets.symmetric(
// vertical: 0.0, horizontal: 18.0),
// child: Texts('MG/DLt TO \nMMOL/L'),
// ),
// ),
// ),
// GestureDetector(
// onTap: () {
// setState(() {
// updateColor(2);
// finalValue = textController.text * 6;
// });
// },
// child: Container(
// height: 55.0,
// width: 150.0,
// decoration: BoxDecoration(
// color: cardMMOLColor,
// borderRadius: BorderRadius.circular(10.0),
// ),
// child: Padding(
// padding:
// const EdgeInsets.symmetric(horizontal: 16.0),
// child: Texts('MG/DLt TO\n MMOL/L'),
// ),
// ),
// ),
// ],
// ),
// ],
// ),
// ),
// ),
// SizedBox(
// height: 25.0,
// ),
// Container(
// height: 55.0,
// color: Colors.white,
// child: TextFormField(
// controller: textController,
// inputFormatters: <TextInputFormatter>[
// FilteringTextInputFormatter.digitsOnly
// ],
// keyboardType: TextInputType.number,
// decoration: InputDecoration(
// labelText: " Enter the reading value",
// ),
// ),
// ),
// SizedBox(
// height: 5.0,
// ),
// Visibility(
// visible: _visible,
// child: Container(
// height: 95.0,
// width: 350.0,
// decoration: BoxDecoration(
// color: Colors.white,
// border: Border.all(color: Colors.black),
// borderRadius: BorderRadius.circular(15.0),
// ),
// child: Padding(
// padding: const EdgeInsets.all(8.0),
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// mainAxisAlignment: MainAxisAlignment.center,
// children: [
// Texts('Result:'),
// Text(
// finalValue.toString(),
// style: TextStyle(fontSize: 35.0),
// ),
// ],
// ),
// ),
// ),
// ),
// SizedBox(
// height: 15.0,
// ),
// Flexible(
// child: Container(
// height: 100.0,
// width: 150.0,
// child: Button(
// label: 'CALCULATE',
// onTap: () {
// setState(() {
// _visible = !_visible;
// });
// },
// ),
// ),
// ),
// ],
// ),
// ),
// );
// }
// }

@ -0,0 +1,169 @@
import 'package:diplomaticquarterapp/core/viewModels/contactus/findus_view_model.dart';
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/viewModels/contactus/livechat_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
class HospitalsLiveChatPage extends StatefulWidget {
@override
_HospitalsLiveChatPageState createState() => _HospitalsLiveChatPageState();
}
class _HospitalsLiveChatPageState extends State<HospitalsLiveChatPage> {
int tappedIndex;
String chat;
@override
void initState() {
super.initState();
tappedIndex = -1;
chat = "";
}
@override
Widget build(BuildContext context) {
return BaseView<LiveChatViewModel>(
onModelReady: (model) => model.getLiveChatRequestOrders(),
builder: (_, model, widget) => AppScaffold(
baseViewModel: model,
body: SingleChildScrollView(
child: Container(
margin: EdgeInsets.only(left: 15, right: 15),
child: Column(
children: [
SizedBox(
height: 20,
),
Container(
width: double.infinity,
height: 200,
decoration: BoxDecoration(
image: DecorationImage(
image: ExactAssetImage(
'assets/images/dashboard_top_bg.png'),
fit: BoxFit.cover),
),
child: Texts(
'You can now talk directly to the appointments department by chat or request a call back\n \nChoose Hospital :',
color: Colors.white,
textAlign: TextAlign.center,
),
),
///////////
...List.generate(
model.LiveChatModelList.length,
(index) => Container(
margin:
EdgeInsets.only(left: 20, right: 20, bottom: 20),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
border: Border.all(color: Colors.white, width: 0.5),
borderRadius: BorderRadius.all(Radius.circular(5)),
color: tappedIndex == index
? Colors.red
: Colors.white,
),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
InkWell(
onTap: () {
setState(() {
tappedIndex = index;
chat =
"http://chat.dshmg.com:7788/hmgchatapp/hmgchattest/Index.aspx?Name=${model.user.firstName}&PatientID=${model.user.patientID}&MobileNo=${model.user.mobileNumber}&Language=en&WorkGroup=${model.LiveChatModelList[index].value}";
});
},
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
Expanded(
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceAround,
crossAxisAlignment:
CrossAxisAlignment.center,
children: <Widget>[
Expanded(
flex: 4,
child: Container(
margin: EdgeInsets.only(
left: 5, right: 5),
child: Texts(
'${model.LiveChatModelList[index].projectName}',
color:
tappedIndex == index
? Colors.white
: Colors.black,
textAlign:
TextAlign.center,
))), //model.cOCItemList[index].cOCTitl
Expanded(
flex: 1,
child: Row(
children: [
IconButton(
icon: Icon(
Icons
.arrow_forward_rounded,
color:
tappedIndex == index
? Colors.white
: Colors.black,
),
tooltip: '',
onPressed: () {
setState(() {});
},
),
],
),
),
],
),
),
],
),
)
],
),
),
)),
SizedBox(
height: 100,
),
],
),
),
),
bottomSheet: Container(
height: MediaQuery.of(context).size.height * 0.13,
width: double.infinity,
padding: EdgeInsets.all(8.0),
child: Center(
child: Container(
height: MediaQuery.of(context).size.height * 0.1,
width: MediaQuery.of(context).size.width * 0.8,
child: Button(
label: 'ٍStart',
loading: model.state == ViewState.BusyLocal,
onTap: () {
print("chat=" + chat);
launch(chat);
},
),
),
),
),
),
);
}
}

@ -0,0 +1,117 @@
import 'dart:ui';
import 'package:diplomaticquarterapp/pages/ContactUs/LiveChat/pharmaciesLivechat_page.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'hospitalsLivechat_page.dart';
class LiveChatPage extends StatefulWidget {
@override
_LiveChatPageState createState() => _LiveChatPageState();
}
class _LiveChatPageState extends State<LiveChatPage> with SingleTickerProviderStateMixin{
TabController _tabController;
@override
void initState() {
super.initState();
_tabController = TabController(length: 2, vsync: this);
}
@override
void dispose() {
super.dispose();
_tabController.dispose();
}
@override
@override
Widget build(BuildContext context) {
return AppScaffold(
isShowAppBar: true,
appBarTitle: 'Locations',
body: Scaffold(
extendBodyBehindAppBar: true,
appBar: PreferredSize(
preferredSize: Size.fromHeight(65.0),
child: Stack(
children: <Widget>[
Positioned(
bottom: 1,
left: 0,
right: 0,
child: BackdropFilter(
filter: ImageFilter.blur(sigmaX: 10, sigmaY: 10),
child: Container(
color: Theme.of(context)
.scaffoldBackgroundColor
.withOpacity(0.8),
height: 70.0,
),
),
),
Center(
child: Container(
height: 60.0,
margin: EdgeInsets.only(top: 10.0),
width: MediaQuery.of(context).size.width * 0.9,
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
color: Theme.of(context).dividerColor,
width: 0.7),
),
color: Colors.white),
child: Center(
child: TabBar(
isScrollable: true,
controller: _tabController,
indicatorWeight: 5.0,
indicatorSize: TabBarIndicatorSize.label,
indicatorColor: Colors.red[800],
labelColor: Theme.of(context).primaryColor,
labelPadding:
EdgeInsets.only(top: 4.0, left: 18.0, right: 18.0),
unselectedLabelColor: Colors.grey[800],
tabs: [
Container(
width: MediaQuery.of(context).size.width * 0.30,
child: Center(
child: Texts(' Hospitals '),
),
),
Container(
width: MediaQuery.of(context).size.width * 0.30,
child: Center(
child: Texts(' Pharmacies '),
),
),
],
),
),
),
),
],
),
),
body: Column(
children: <Widget>[
Expanded(
child: TabBarView(
physics: BouncingScrollPhysics(),
controller: _tabController,
children: <Widget>[
HospitalsLiveChatPage(),//SendFeedbackPage(),
PhamaciesLiveChatPage()
//StatusFeedbackPage()
],
),
)
],
),
),
);
}
}

@ -0,0 +1,90 @@
import 'package:diplomaticquarterapp/core/viewModels/contactus/findus_view_model.dart';
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/viewModels/contactus/livechat_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
class PhamaciesLiveChatPage extends StatefulWidget {
@override
_PhamaciesLiveChatPageState createState() => _PhamaciesLiveChatPageState();
}
class _PhamaciesLiveChatPageState extends State<PhamaciesLiveChatPage> {
int tappedIndex;
String chat;
@override
void initState()
{
super.initState();
tappedIndex=-1;
chat="";
}
@override
Widget build(BuildContext context) {
return BaseView<LiveChatViewModel>(
onModelReady: (model) => model.getLiveChatRequestOrders(),
builder: (_, model, widget) => AppScaffold(
baseViewModel: model,
body: SingleChildScrollView(
child: Container(
margin: EdgeInsets.only(left: 15,right: 15),
child: Column(
children: [
SizedBox(height: 20,),
Container(
width: double.infinity,
height: 200,
decoration: BoxDecoration(
image: DecorationImage(
image: ExactAssetImage(
''),
fit: BoxFit.cover),
),
child: Texts('You can now talk directly to the pharmacist by chat or request a call back',color: Colors.black,textAlign: TextAlign.center,),
),
///////////
SizedBox(height: 100,),
],
),
),
),
bottomSheet: Container(
height: MediaQuery.of(context).size.height * 0.13,
width: double.infinity,
padding: EdgeInsets.all(8.0),
child: Center(
child: Container(
height: MediaQuery.of(context).size.height * 0.1,
width: MediaQuery.of(context).size.width * 0.8,
child: Button(
label: 'ٍStart',
loading: model.state == ViewState.BusyLocal,
onTap: () {
print("chat="+chat);
chat="http://chat.dshmg.com:7788/EPharmacyChat/EIndex.aspx?CustomerID=undefined&Name=${model.user.firstName}&MobileNo=${model.user.mobileNumber}&Language=1";
launch(chat);
},
),
),
),
),
),
);
}
}

@ -6,6 +6,7 @@ import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.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';
class HospitalsPage extends StatefulWidget {
@ -32,55 +33,76 @@ class _HospitalsPageState extends State<HospitalsPage> {
borderRadius: BorderRadius.all(Radius.circular(5)),
color: Colors.white,
),
// margin: EdgeInsets.all(4),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
// SizedBox(height: 8,),
Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: <Widget>[
Expanded(
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment:
CrossAxisAlignment.start,
CrossAxisAlignment.center,
children: <Widget>[
Container(
width: 70,
height: 70,
// margin: EdgeInsets.only(right: 15),
child: Image.network(model.FindusHospitalModelList[index].projectImageURL.toString())),
Container(child: Texts('${model.FindusHospitalModelList[index].locationName}')),//model.cOCItemList[index].cOCTitl
IconButton(
icon: Icon(Icons.location_on, color: Colors.red[900]),
tooltip: 'Increase volume by 10',
onPressed: () {
setState(() {
MapsLauncher.launchCoordinates(double.parse(model.FindusHospitalModelList[index].latitude),double.parse(model.FindusHospitalModelList[index].longitude),model.FindusHospitalModelList[index].locationName);
// _volume += 10;
});
InkWell(
onTap:(){
showDialog(
context: context,builder: (_) => AssetGiffyDialog(
title: Text(model.FindusHospitalModelList[index].locationName,
style: TextStyle(
fontSize: 22.0, fontWeight: FontWeight.w600),
),image:Image.network(model.FindusHospitalModelList[index].projectImageURL.toString(), fit: BoxFit.cover,),
buttonCancelText:Text('cancel') ,
buttonCancelColor: Colors.grey,
onlyCancelButton: true,
) );
},
child: Container(
width: 70,
height: 70,
child: Image.network(model.FindusHospitalModelList[index].projectImageURL.toString())),
),
IconButton(
icon: Icon(Icons.phone),
tooltip: 'Increase volume by 10',
onPressed: () {
setState(() {
// _volume += 10;
launch("tel://" +model.FindusHospitalModelList[index].phoneNumber);
});
},
Expanded(
flex: 4,
child: Container(
margin: EdgeInsets.only(left: 5,right: 5),
child: Texts('${model.FindusHospitalModelList[index].locationName}',textAlign: TextAlign.center,))),//model.cOCItemList[index].cOCTitl
Expanded(
flex: 2,
child: Row(
children: [
IconButton(
icon: Icon(Icons.location_on,color: Colors.red,),
tooltip: 'Increase volume by 10',
onPressed: () {
setState(() {
MapsLauncher.launchCoordinates(double.parse(model.FindusHospitalModelList[index].latitude),double.parse(model.FindusHospitalModelList[index].longitude),model.FindusHospitalModelList[index].locationName);
// _volume += 10;
});
},
),
IconButton(
icon: Icon(Icons.phone,color: Colors.red,),
tooltip: 'Increase volume by 10',
onPressed: () {
setState(() {
// _volume += 10;
launch("tel://" +model.FindusHospitalModelList[index].phoneNumber);
});
},
),
],
),
),
// Texts(
// 'Number :${model.FindusHospitalModelList[index].locationName}',
// variant: 'overline',
// ),
],
),
),
@ -93,9 +115,63 @@ class _HospitalsPageState extends State<HospitalsPage> {
),
),
)),
SizedBox(height: 8,),
Container(width: double.infinity,
height: 45,color: Colors.red,),
height: 100,color: Colors.white,
child: Row(
mainAxisSize:MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
IconButton(
icon: new Image.asset('assets/images/new-design/youtube.png'),
iconSize: 70,
tooltip: 'Youtube',
onPressed: () {
setState(() {
launch("https://www.youtube.com/c/DrsulaimanAlhabibHospitals");
});
},
),
IconButton(
icon: new Image.asset('assets/images/new-design/linkedin.png'),
tooltip: 'LinkedIn',
iconSize: 70,
onPressed: () {
setState(() {
launch("https://www.youtube.com/c/DrsulaimanAlhabibHospitals");
});
},
),
IconButton(
icon: new Image.asset('assets/images/new-design/twitter.png'),
tooltip: 'Twitter',
iconSize: 70,
onPressed: () {
setState(() {
launch("https://twitter.com/HMG");
});
},
),
IconButton(
icon: new Image.asset('assets/images/new-design/facebook.png'),
tooltip: 'facebook',
iconSize: 70,
onPressed: () {
setState(() {
launch("https://www.facebook.com/DrSulaimanAlHabib?ref=tn_tnmn");
});
},
),
],
),
),
],
),
),

@ -1,4 +1,3 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/viewModels/contactus/findus_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
@ -8,6 +7,8 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:giffy_dialog/giffy_dialog.dart';
import 'package:maps_launcher/maps_launcher.dart';
import 'package:url_launcher/url_launcher.dart';
class PharmaciesPage extends StatefulWidget {
@override
@ -18,116 +19,218 @@ class _PharmaciesPageState extends State<PharmaciesPage> {
@override
Widget build(BuildContext context) {
return BaseView<FindusViewModel>(
onModelReady: (model) => model.getFindUsRequestOrders(),//model.getCOC(),
onModelReady: (model) => model.getFindUsRequestOrders(), //model.getCOC(),
builder: (_, model, widget) => AppScaffold(
baseViewModel: model,
body: Container(
margin: EdgeInsets.only(top: 8.0,left: 8.0,right: 8.0 ),
padding: EdgeInsets.all(15.0),
child: ListView.builder(
itemCount: model.FindusPharmaciesModelList.length,//model.cOCItemList.length,
itemBuilder: (context, index) => Container(
decoration: BoxDecoration(
shape: BoxShape.rectangle,
border: Border.all(color: Colors.white, width: 0.5),
borderRadius: BorderRadius.all(Radius.circular(5)),
color: Colors.white,
),
// margin: EdgeInsets.all(4),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
// SizedBox(height: 8,),
Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: <Widget>[
Expanded(
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
crossAxisAlignment:
CrossAxisAlignment.start,
body: SingleChildScrollView(
child: Container(
margin: EdgeInsets.only(left: 15, right: 15, top: 70),
child: Column(
children: [
...List.generate(
model.FindusPharmaciesModelList.length,
(index) => Container(
decoration: BoxDecoration(
shape: BoxShape.rectangle,
border: Border.all(color: Colors.white, width: 0.5),
borderRadius: BorderRadius.all(Radius.circular(5)),
color: Colors.white,
),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
GestureDetector(
onTap: (){
showDialog(
context: context,builder: (_) => AssetGiffyDialog(
title: Text(model.FindusPharmaciesModelList[index].locationName,
style: TextStyle(
fontSize: 22.0, fontWeight: FontWeight.w600),
),image:Image.network(model.FindusPharmaciesModelList[index].projectImageURL.toString(), fit: BoxFit.cover,),
// buttonOkText:Text("LOCATION"),
// buttonOkColor: Colors.grey,
buttonCancelText:Text('cancel') ,
buttonCancelColor: Colors.grey,
// onOkButtonPressed: () { MapsLauncher.launchCoordinates(double.parse(latitude),double.parse(longitude),projectname);},
// onCancelButtonPressed:(),
Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: <Widget>[
Expanded(
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
crossAxisAlignment:
CrossAxisAlignment.center,
children: <Widget>[
InkWell(
onTap:(){
showDialog(
context: context,builder: (_) => AssetGiffyDialog(
title: Text(model.FindusPharmaciesModelList[index].locationName,
style: TextStyle(
fontSize: 22.0, fontWeight: FontWeight.w600),
),image:Image.network(model.FindusPharmaciesModelList[index].projectImageURL.toString(), fit: BoxFit.cover,),
buttonCancelText:Text('cancel') ,
// buttonCancelText:Text(model.user.projectID) ,
buttonCancelColor: Colors.grey,
onlyCancelButton: true,
) );
},
child: Container(
width: 70,
height: 70,
// margin: EdgeInsets.only(right: 15),
child: Image.network(model.FindusPharmaciesModelList[index].projectImageURL.toString())),
),
Container(child: Texts('${model.FindusPharmaciesModelList[index].locationName}')),//model.cOCItemList[index].cOCTitl
IconButton(
icon: Icon(Icons.location_on, color: Colors.red[900]),
tooltip: 'Increase volume by 10',
onPressed: () {
setState(() {
// _volume += 10;
});
},
) );
},
child: Container(
width: 70,
height: 70,
child: Image.network(model
.FindusPharmaciesModelList[
index]
.projectImageURL
.toString())),
),
Expanded(
flex: 4,
child: Container(
margin: EdgeInsets.only(
left: 5, right: 5),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Texts(
'${model.FindusPharmaciesModelList[index].locationName}',
textAlign: TextAlign.start,
),
SizedBox(height: 4,),
Texts(
'${model.FindusPharmaciesModelList[index].cityName}',
textAlign: TextAlign.center,
),
],
),
),
),
//model.cOCItemList[index].cOCTitl
Expanded(
flex: 2,
child: Row(
children: [
IconButton(
icon: Icon(
Icons
.location_on,
color: Colors.red,
),
tooltip:
'Increase volume by 10',
onPressed: () {
setState(() {
MapsLauncher.launchCoordinates(
double.parse(model
.FindusPharmaciesModelList[
index]
.latitude),
double.parse(model
.FindusPharmaciesModelList[
index]
.longitude),
model
.FindusPharmaciesModelList[
index]
.locationName);
// _volume += 10;
});
},
),
IconButton(
icon: Icon(
Icons.phone,
color: Colors.red,
),
tooltip:
'Increase volume by 10',
onPressed: () {
setState(() {
// _volume += 10;
launch("tel://" +
model
.FindusPharmaciesModelList[
index]
.phoneNumber);
});
},
),
],
),
),
],
),
),
],
),
IconButton(
icon: Icon(Icons.phone),
tooltip: 'Increase volume by 10',
onPressed: () {
setState(() {
// _volume += 10;
});
},
),
// Texts(
// 'Number :${model.FindusHospitalModelList[index].locationName}',
// variant: 'overline',
// ),
Divider(
height: 4.5,
color: Colors.grey[500],
)
],
),
),
// Expanded(
// child: Column(
// crossAxisAlignment:
// CrossAxisAlignment.start,
// children: <Widget>[
// Texts('${model.FindusHospitalModelList[index].locationName}'),
// Texts(
// '${model.FindusHospitalModelList[index].locationName}',
// variant: 'overline',
// ),
// ],
// ),
// ),
],
)),
SizedBox(
height: 8,
),
Container(
width: double.infinity,
height: 100,
color: Colors.white,
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
IconButton(
icon: new Image.asset(
'assets/images/new-design/youtube.png'),
iconSize: 70,
tooltip: 'Youtube',
onPressed: () {
setState(() {
// _volume += 10;
launch(
"https://www.youtube.com/c/DrsulaimanAlhabibHospitals");
});
},
),
IconButton(
icon: new Image.asset(
'assets/images/new-design/linkedin.png'),
tooltip: 'LinkedIn',
iconSize: 70,
onPressed: () {
setState(() {
launch(
"https://www.youtube.com/c/DrsulaimanAlhabibHospitals");
});
},
),
IconButton(
icon: new Image.asset(
'assets/images/new-design/twitter.png'),
tooltip: 'Twitter',
iconSize: 70,
onPressed: () {
setState(() {
launch("https://twitter.com/HMG");
});
},
),
IconButton(
icon: new Image.asset(
'assets/images/new-design/facebook.png'),
tooltip: 'facebook',
iconSize: 70,
onPressed: () {
setState(() {
launch(
"https://www.facebook.com/DrSulaimanAlHabib?ref=tn_tnmn");
});
},
),
// Texts('${model.FindusHospitalModelList[index].locationName}'),
Divider(height: 4.5,color: Colors.grey[500],)
],
),
),
)),
],
),
),
),
),
);
}
}

@ -1,3 +1,4 @@
import 'package:diplomaticquarterapp/pages/ContactUs/LiveChat/livechat_page.dart';
import 'package:diplomaticquarterapp/pages/ContactUs/findus/findus_page.dart';
import 'package:diplomaticquarterapp/pages/feedback/feedback_home_page.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
@ -56,16 +57,14 @@ class CardCommonContact extends StatelessWidget {
}
Future navigateToSearch(context, type) async {
//===Switch case===
if (type == 0) {
Navigator.push(context, FadePage(page: FindUsPage()));
} else if (type == 1) {
Navigator.push(context, FadePage(page: FeedbackHomePage()));
} else if (type == 2) {
// Navigator.push(
// context,
// FadePage(
// page: FeedbackHomePage()));
//LiveChatPage
Navigator.push(context, FadePage(page: LiveChatPage()));
}
}

@ -446,8 +446,8 @@ class _HomePageState extends State<HomePage> {
height: 8,
),
InkWell(
onTap: () => Navigator.push(
context, FadePage(page: PaymentService())),
onTap: () =>
Navigator.push(context, FadePage(page: PaymentService())),
child: Container(
margin: EdgeInsets.only(left: 15, right: 15),
child: Row(

@ -43,7 +43,7 @@ class _MedicalProfilePageState extends State<MedicalProfilePage> {
onModelReady: (model) => model.getAppointmentHistory(),
builder: (_, model, widget) => AppScaffold(
baseViewModel: model,
body: SafeArea(
body: Container(
child: SingleChildScrollView(
child: Column(
children: <Widget>[

@ -0,0 +1,50 @@
import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
class ServicesContainer extends StatelessWidget {
final String title;
final String imageLocation;
final Function onTap;
ServicesContainer({this.title, this.imageLocation, this.onTap});
@override
Widget build(BuildContext context) {
return InkWell(
onTap: () => onTap(),
child: Container(
height: 60,
margin: EdgeInsets.all(8),
decoration: BoxDecoration(
color: Colors.white,
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(7),
),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Row(
children: [
Image.asset(
imageLocation,
height: 30,
width: 40,
),
SizedBox(
width: 20,
),
Texts(
title,
fontSize: 16,
),
],
),
],
),
),
),
);
}
}
Loading…
Cancel
Save