LiveCare Scheduling updates
parent
06798ef327
commit
c9256a654a
@ -0,0 +1,64 @@
|
||||
class LiveCareScheduleClinicsListResponse {
|
||||
List<ClinicsHaveScheduleList> clinicsHaveScheduleList;
|
||||
|
||||
LiveCareScheduleClinicsListResponse({this.clinicsHaveScheduleList});
|
||||
|
||||
LiveCareScheduleClinicsListResponse.fromJson(Map<String, dynamic> json) {
|
||||
if (json['ClinicsHaveScheduleList'] != null) {
|
||||
clinicsHaveScheduleList = new List<ClinicsHaveScheduleList>();
|
||||
json['ClinicsHaveScheduleList'].forEach((v) {
|
||||
clinicsHaveScheduleList.add(new ClinicsHaveScheduleList.fromJson(v));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
if (this.clinicsHaveScheduleList != null) {
|
||||
data['ClinicsHaveScheduleList'] =
|
||||
this.clinicsHaveScheduleList.map((v) => v.toJson()).toList();
|
||||
}
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class ClinicsHaveScheduleList {
|
||||
int clinicID;
|
||||
int serviceID;
|
||||
int projectID;
|
||||
String clinicDesc;
|
||||
String clinicDescN;
|
||||
String projectDesc;
|
||||
String projectDescN;
|
||||
|
||||
ClinicsHaveScheduleList(
|
||||
{this.clinicID,
|
||||
this.serviceID,
|
||||
this.projectID,
|
||||
this.clinicDesc,
|
||||
this.clinicDescN,
|
||||
this.projectDesc,
|
||||
this.projectDescN});
|
||||
|
||||
ClinicsHaveScheduleList.fromJson(Map<String, dynamic> json) {
|
||||
clinicID = json['ClinicID'];
|
||||
serviceID = json['ServiceID'];
|
||||
projectID = json['ProjectID'];
|
||||
clinicDesc = json['ClinicDesc'];
|
||||
clinicDescN = json['ClinicDescN'];
|
||||
projectDesc = json['ProjectDesc'];
|
||||
projectDescN = json['ProjectDescN'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ClinicID'] = this.clinicID;
|
||||
data['ServiceID'] = this.serviceID;
|
||||
data['ProjectID'] = this.projectID;
|
||||
data['ClinicDesc'] = this.clinicDesc;
|
||||
data['ClinicDescN'] = this.clinicDescN;
|
||||
data['ProjectDesc'] = this.projectDesc;
|
||||
data['ProjectDescN'] = this.projectDescN;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,51 @@
|
||||
import 'package:diplomaticquarterapp/models/LiveCare/LiveCareScheduleClinicsListResponse.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class ScheduleClinicCard extends StatefulWidget {
|
||||
bool isSelected;
|
||||
final ClinicsHaveScheduleList clinicsHaveScheduleList;
|
||||
var languageID;
|
||||
|
||||
ScheduleClinicCard(
|
||||
{this.isSelected,
|
||||
this.languageID,
|
||||
@required this.clinicsHaveScheduleList});
|
||||
|
||||
@override
|
||||
_ScheduleClinicCardState createState() => _ScheduleClinicCardState();
|
||||
}
|
||||
|
||||
class _ScheduleClinicCardState extends State<ScheduleClinicCard> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
child: Card(
|
||||
margin: EdgeInsets.fromLTRB(15.0, 10.0, 15.0, 8.0),
|
||||
color: widget.isSelected ? Colors.blue : Colors.white,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
),
|
||||
child: Container(
|
||||
width: MediaQuery.of(context).size.width * 0.8,
|
||||
padding: EdgeInsets.all(12.0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: <Widget>[
|
||||
Container(
|
||||
child: Text(
|
||||
widget.languageID == 'ar'
|
||||
? widget.clinicsHaveScheduleList.clinicDescN
|
||||
: widget.clinicsHaveScheduleList.clinicDesc,
|
||||
style: TextStyle(
|
||||
fontSize: 16.0,
|
||||
color:
|
||||
widget.isSelected ? Colors.white : Colors.black)),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,224 @@
|
||||
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
|
||||
class LiveCareTypeSelect extends StatefulWidget {
|
||||
@override
|
||||
_LiveCareTypeSelectState createState() => _LiveCareTypeSelectState();
|
||||
}
|
||||
|
||||
class _LiveCareTypeSelectState extends State<LiveCareTypeSelect> {
|
||||
var languageID;
|
||||
AppSharedPreferences sharedPref = AppSharedPreferences();
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
getLanguageID();
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
leading: InkWell(
|
||||
onTap: () {
|
||||
Navigator.pop(context, null);
|
||||
},
|
||||
child: Icon(
|
||||
Icons.close,
|
||||
color: Colors.white,
|
||||
),
|
||||
),
|
||||
title: Text(TranslationBase.of(context).bookAppo,
|
||||
style: TextStyle(color: Colors.white)),
|
||||
),
|
||||
body: SingleChildScrollView(
|
||||
child: Container(
|
||||
margin: EdgeInsets.only(left: 20.0, right: 20.0),
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
Container(
|
||||
alignment: Alignment.center,
|
||||
margin: EdgeInsets.only(top: 15.0, bottom: 10.0),
|
||||
child: Image.asset(
|
||||
languageID == 'ar'
|
||||
? "assets/images/new-design/liveCare_ar_bg.png"
|
||||
: "assets/images/new-design/liveCare_en_bg.png",
|
||||
width: 120),
|
||||
),
|
||||
Container(
|
||||
alignment: Alignment.center,
|
||||
child: Text("LiveCare Service",
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.bold, fontSize: 20.0))),
|
||||
Container(
|
||||
margin: EdgeInsets.only(top: 10.0),
|
||||
alignment: Alignment.center,
|
||||
child: Text(
|
||||
"is to obtain medical advice with a specialist doctor Via a video call",
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(fontSize: 18.0))),
|
||||
Container(
|
||||
margin: EdgeInsets.only(top: 15.0),
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Text("WHY LIVECARE?",
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.bold, fontSize: 20.0))),
|
||||
Container(
|
||||
margin: EdgeInsets.only(top: 20.0, left: 20.0),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
SvgPicture.asset("assets/images/new-design/check_icon.svg",
|
||||
width: 25),
|
||||
Container(
|
||||
width: MediaQuery.of(context).size.width * 0.75,
|
||||
margin: EdgeInsets.all(10.0),
|
||||
child: Text(
|
||||
"No need to wait, you will get Medical consultation immediately via Video call.",
|
||||
overflow: TextOverflow.clip,
|
||||
style: TextStyle(fontSize: 14.0)),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
Container(
|
||||
margin: EdgeInsets.only(top: 5.0, left: 20.0),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
SvgPicture.asset("assets/images/new-design/check_icon.svg",
|
||||
width: 25),
|
||||
Container(
|
||||
width: MediaQuery.of(context).size.width * 0.75,
|
||||
margin: EdgeInsets.all(10.0),
|
||||
child: Text("The doctor will see your medical file.",
|
||||
overflow: TextOverflow.clip,
|
||||
style: TextStyle(fontSize: 14.0)),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
Container(
|
||||
margin: EdgeInsets.only(top: 5.0, left: 20.0),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
SvgPicture.asset("assets/images/new-design/check_icon.svg",
|
||||
width: 25),
|
||||
Container(
|
||||
width: MediaQuery.of(context).size.width * 0.75,
|
||||
margin: EdgeInsets.all(10.0),
|
||||
child: Text("Free Prescription delivery service.",
|
||||
overflow: TextOverflow.clip,
|
||||
style: TextStyle(fontSize: 14.0)),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
Container(
|
||||
margin: EdgeInsets.only(top: 20.0),
|
||||
child: Text(
|
||||
"** The service is included with some insurance companies according to the terms and conditions With our best wishes for health and wellness",
|
||||
style: TextStyle(fontSize: 16.0))),
|
||||
InkWell(
|
||||
onTap: (){
|
||||
Navigator.pop(context, "immediate");
|
||||
},
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.red[900],
|
||||
borderRadius: BorderRadius.all(Radius.circular(10.0))),
|
||||
height: 120.0,
|
||||
margin: EdgeInsets.only(top: 20.0),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Container(
|
||||
margin: EdgeInsets.only(left: 20.0),
|
||||
child: SvgPicture.asset(
|
||||
"assets/images/new-design/liveCare_logo_icon_white.svg",
|
||||
width: 80),
|
||||
),
|
||||
Container(
|
||||
width: MediaQuery.of(context).size.width * 0.6,
|
||||
margin: EdgeInsets.fromLTRB(30.0, 20.0, 0.0, 0.0),
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
Text("Get Medical consultation immediately",
|
||||
overflow: TextOverflow.clip,
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 18.0,
|
||||
color: Colors.white)),
|
||||
Container(
|
||||
margin: EdgeInsets.only(top: 10.0),
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Text("Instant video call",
|
||||
style: TextStyle(
|
||||
fontSize: 18.0, color: Colors.white)),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
)),
|
||||
),
|
||||
InkWell(
|
||||
onTap: (){
|
||||
Navigator.pop(context, "schedule");
|
||||
},
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.grey[700],
|
||||
borderRadius: BorderRadius.all(Radius.circular(10.0))),
|
||||
height: 120.0,
|
||||
margin: EdgeInsets.only(top: 20.0),
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Container(
|
||||
margin: EdgeInsets.only(left: 20.0),
|
||||
child: Image.asset(
|
||||
"assets/images/new-design/calendar.png",
|
||||
width: 70),
|
||||
),
|
||||
Container(
|
||||
width: MediaQuery.of(context).size.width * 0.6,
|
||||
margin: EdgeInsets.fromLTRB(30.0, 30.0, 0.0, 0.0),
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
Container(
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Text("Book Appointment",
|
||||
overflow: TextOverflow.clip,
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.bold,
|
||||
fontSize: 18.0,
|
||||
color: Colors.white)),
|
||||
),
|
||||
Container(
|
||||
margin: EdgeInsets.only(top: 10.0),
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Text("Schedule Video Call",
|
||||
style: TextStyle(
|
||||
fontSize: 18.0, color: Colors.white)),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
)),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
getLanguageID() async {
|
||||
var languageID = await sharedPref.getString(APP_LANGUAGE);
|
||||
setState(() {
|
||||
this.languageID = languageID;
|
||||
});
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue