Merge branch 'mirza_home_page' into development_new_design_2.0

merge-requests/463/merge
Mirza.Shafique 4 years ago
commit cacdd5907c

@ -0,0 +1,12 @@
<svg id="calendar" xmlns="http://www.w3.org/2000/svg" width="16.407" height="16.407" viewBox="0 0 16.407 16.407">
<g id="Group_8220" data-name="Group 8220">
<g id="Group_8219" data-name="Group 8219">
<path id="Path_4987" data-name="Path 4987" d="M14.767,1.641h-.82V.82a.82.82,0,1,0-1.641,0v.82H4.1V.82A.775.775,0,0,0,3.281,0a.775.775,0,0,0-.82.82v.82H.82a.822.822,0,0,0-.82.82V13.946a.822.822,0,0,0,.82.82h5A6.53,6.53,0,0,1,15.587,6.4V2.461A.882.882,0,0,0,14.767,1.641Z" fill="#2e303a"/>
</g>
</g>
<g id="Group_8222" data-name="Group 8222" transform="translate(6.563 6.563)">
<g id="Group_8221" data-name="Group 8221">
<path id="Path_4988" data-name="Path 4988" d="M209.722,204.8a4.922,4.922,0,1,0,4.922,4.922A4.937,4.937,0,0,0,209.722,204.8Zm1.641,5.743h-1.641a.775.775,0,0,1-.82-.82v-2.461a.82.82,0,0,1,1.641,0V208.9h.82a.82.82,0,1,1,0,1.641Z" transform="translate(-204.8 -204.8)" fill="#2e303a"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 953 B

@ -1494,7 +1494,7 @@ const Map localizedValues = {
"RRTRequestSuccess": {"en": "Request has been sent successfully, you will be contacted soon.", "ar": "تم إرسال الطلب بنجاح ، وسيتم الاتصال بك باسرع وقت ممكن"},
"rateDoctorAppo": {"en": "Rate DR & Appointment", "ar": "تقييم الطبيب والموعد"},
"invoice": {"en": "Invoice", "ar": "الفاتورة"},
"requestedDate": {"en": "Reqeusted Date", "ar": "التاريخ "},
"requestedDate": {"en": "Req Date", "ar": "التاريخ "},
"callDuration": {"en": "Call Duration", "ar": "مدة الاتصال"},
"alreadyRated": {"en": "This appointment has been previously evaluated.", "ar": "تم تقييم هذا الموعد مسبقاً"},
"insuranceCompany": {"en": "Insurance Company", "ar": "شركة تأمين"},

@ -1,24 +1,29 @@
import 'package:auto_size_text/auto_size_text.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/models/FamilyFiles/PatientERVirtualHistoryResponse.dart';
import 'package:diplomaticquarterapp/pages/feedback/feedback_home_page.dart';
import 'package:diplomaticquarterapp/services/livecare_services/livecare_provider.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_dialog.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/confirm_send_email_dialog.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';
class LiveCareHistoryCard extends StatefulWidget {
ErRequestHistoryList erRequestHistoryList;
int isFirstOrLast;
LiveCareHistoryCard({this.erRequestHistoryList});
LiveCareHistoryCard({this.erRequestHistoryList, this.isFirstOrLast});
@override
_LiveCareHistoryCardState createState() => _LiveCareHistoryCardState();
@ -40,122 +45,178 @@ class _LiveCareHistoryCardState extends State<LiveCareHistoryCard> {
Widget build(BuildContext context) {
projectViewModel = Provider.of(context);
return Container(
margin: EdgeInsets.all(10.0),
child: Card(
margin: EdgeInsets.fromLTRB(8.0, 0.0, 8.0, 8.0),
color: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
margin: EdgeInsets.only(left: 12, right: 12, top: widget.isFirstOrLast == 0 ? 12 : 6, bottom: widget.isFirstOrLast == 1 ? 12 : 6),
decoration: BoxDecoration(
color: CustomColors.accentColor,
borderRadius: BorderRadius.all(
Radius.circular(10.0),
),
child: Container(
width: MediaQuery.of(context).size.width,
// height: MediaQuery.of(context).size.height * 0.22,
padding: EdgeInsets.all(10.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Text(TranslationBase.of(context).requestedDate, style: TextStyle(fontSize: 16.0, fontWeight: FontWeight.bold)),
Container(
margin: EdgeInsets.only(top: 0.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(DateUtil.getDayMonthYearHourMinuteDateFormatted(DateUtil.convertStringToDate(widget.erRequestHistoryList.arrivalTime)), style: TextStyle(fontSize: 14.0)),
Text(TranslationBase.of(context).callDuration + "\n" + getCallTime(widget.erRequestHistoryList.callDuration), textAlign: TextAlign.center, style: TextStyle(fontSize: 14.0, color: Colors.grey[600])),
],
),
),
Container(
padding: EdgeInsets.all(7.0),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.all(Radius.circular(5)),
color: Colors.green,
),
margin: EdgeInsets.only(top: 5.0, bottom: 5.0),
child: Text(widget.erRequestHistoryList.stringCallStatus, style: TextStyle(fontSize: 14.0, color: Colors.white)),
boxShadow: [
BoxShadow(
color: Color(0xff000000).withOpacity(.05),
blurRadius: 27,
offset: Offset(0, -3),
),
],
),
child: Container(
margin: EdgeInsets.only(left: projectViewModel.isArabic ? 0 : 6, right: projectViewModel.isArabic ? 6 : 0),
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 12),
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(color: Colors.white, width: 1),
borderRadius: BorderRadius.only(
bottomRight: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(10.0),
topRight: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(10.0),
bottomLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0),
topLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0),
),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Text(
widget.erRequestHistoryList.stringCallStatus == "Completed" ? widget.erRequestHistoryList.stringCallStatus : "Pending",
style: TextStyle(
fontSize: 10.0,
fontWeight: FontWeight.w600,
letterSpacing: -0.4,
color: widget.erRequestHistoryList.stringCallStatus == "Completed" ? CustomColors.green : CustomColors.orange,
),
Divider(
color: Colors.grey[500],
),
mHeight(12),
Text(
TranslationBase.of(context).requestedDate + ": " + DateUtil.getDayMonthYearHourMinuteDateFormatted(DateUtil.convertStringToDate(widget.erRequestHistoryList.arrivalTime)),
style: TextStyle(
fontSize: 16.0,
fontWeight: FontWeight.w600,
letterSpacing: -0.64,
),
Container(
margin: EdgeInsets.all(5.0),
child: Flex(
direction: Axis.horizontal,
children: <Widget>[
Expanded(
child: InkWell(
onTap: () {
openInvoice();
},
child: Container(
child: Row(
children: <Widget>[
Icon(Icons.content_paste, color: Colors.red),
Container(
margin: EdgeInsets.only(left: 10.0),
child: Text(TranslationBase.of(context).invoice, textAlign: TextAlign.center, style: TextStyle(fontSize: 12.0)),
),
mHeight(4),
Row(
children: <Widget>[
Text(
TranslationBase.of(context).callDuration + ": ",
style: TextStyle(fontSize: 10.0, fontWeight: FontWeight.w600, letterSpacing: -0.4, color: CustomColors.textColor),
),
Text(
getCallTime(widget.erRequestHistoryList.callDuration),
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 12.0,
letterSpacing: -0.4,
fontWeight: FontWeight.w600,
),
),
],
),mHeight(12),
Container(
width: double.infinity,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
Expanded(
flex: 1,
child: InkWell(
onTap: () {
openInvoice();
},
child: Container(
padding: EdgeInsets.only(left: 12, right: 12, top: 6, bottom: 6),
decoration: containerRadius(CustomColors.devider, 100),
child: Row(
children: <Widget>[
SvgPicture.asset("assets/images/new/services/invoice_list.svg",width: 18,height: 18,),
mWidth(10),
Text(
TranslationBase.of(context).invoice,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 11.0,
letterSpacing: -0.46,
fontWeight: FontWeight.w600,
),
],
),
),
],
),
),
),
Expanded(
child: InkWell(
onTap: () {
openComplaint();
},
child: Container(
child: Row(
children: <Widget>[
Icon(Icons.add, size: 24.0, color: Colors.red),
Container(
margin: EdgeInsets.only(left: 10.0),
child: Text(TranslationBase.of(context).complaint, textAlign: TextAlign.center, style: TextStyle(fontSize: 12.0)),
),
mWidth(12),
Expanded(
flex: 1,
child: InkWell(
onTap: () {
openComplaint();
},
child: Container(
padding: EdgeInsets.only(left: 12, right: 12, top: 7, bottom: 7),
decoration: containerRadius(CustomColors.devider, 100),
child: Row(
children: <Widget>[
SvgPicture.asset("assets/images/new/services/raise_comp.svg",width: 16,height: 16,),
mWidth(10),
Expanded(
child: AutoSizeText(
TranslationBase.of(context).complaint,
textAlign: TextAlign.center,
maxLines: 1,minFontSize: 8,
style: TextStyle(
fontSize: 11.0,
letterSpacing: -0.46,
fontWeight: FontWeight.w600,
),
),
],
),
),
],
),
),
),
Expanded(
child: InkWell(
onTap: () {
rateLiveCareAppo();
},
child: Container(
child: Row(
children: <Widget>[
Icon(Icons.star, size: 24.0, color: Colors.yellow[700]),
Container(
width: MediaQuery.of(context).size.width * 0.2,
margin: EdgeInsets.only(left: 9.0),
child: Text(TranslationBase.of(context).rateDoctorAppo, overflow: TextOverflow.clip, textAlign: TextAlign.center, style: TextStyle(fontSize: 11.0)),
),
mWidth(12),
Expanded(
flex: 1,
child: InkWell(
onTap: () {
rateLiveCareAppo();
},
child: Container(
padding: EdgeInsets.only(left: 12, right: 12, top: 6, bottom: 6),
decoration: containerRadius(CustomColors.devider, 100),
child: Row(
children: <Widget>[
Icon( Icons.star,size: 18,),
mWidth(10),
Text(
TranslationBase.of(context).rate,
overflow: TextOverflow.clip,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 11.0,
letterSpacing: -0.46,
fontWeight: FontWeight.w600,
),
],
),
),
],
),
),
),
],
),
),
],
),
],
),
),
],
),
),
);
}
rateLiveCareAppo() {
if(widget.erRequestHistoryList.isAppointmentHaveRating) {
if (widget.erRequestHistoryList.isAppointmentHaveRating) {
AppToast.showErrorToast(message: TranslationBase.of(context).alreadyRated);
} else {
}
} else {}
}
openInvoice() {

@ -1,10 +1,14 @@
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/LiveCare/ClinicsServiceTimingsResponse.dart';
import 'package:diplomaticquarterapp/models/LiveCare/LiveCareClinicsListResponse.dart';
import 'package:diplomaticquarterapp/services/livecare_services/livecare_provider.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:provider/provider.dart';
import 'ClinicTimingsDialog.dart';
@ -32,43 +36,118 @@ class _State extends State<ClinicCard> {
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
return Container(
width: double.infinity,
margin: EdgeInsets.fromLTRB(15.0, 0.0, 15.0, 8.0),
clipBehavior: Clip.antiAlias,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(
Radius.circular(10.0),
borderRadius: BorderRadius.all(
Radius.circular(10.0),
),
border: Border.all(width: widget.isSelected ? 3 : 0, color: widget.isSelected ? CustomColors.green : Colors.transparent),
boxShadow: [
BoxShadow(
color: Color(0xff000000).withOpacity(.05),
blurRadius: 27,
offset: Offset(0, -3),
),
border: Border.all(width: 2, color: widget.isSelected ? CustomColors.green : Color(0xffEFEFEF)),
boxShadow: [
BoxShadow(
color: Color(0xff000000).withOpacity(.05),
blurRadius: 27,
offset: Offset(0, -3),
),
],
color: Colors.white),
],
color: Colors.transparent,
),
child: Container(
padding: EdgeInsets.fromLTRB(12.0, 25.0, 12.0, 25.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.max,
children: <Widget>[
Container(
child: Text(widget.languageID == 'ar' ? widget.patientERGetClinicsList.serviceNameN : widget.patientERGetClinicsList.serviceName,
style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.48, height: 20 / 16)),
decoration: BoxDecoration(
color: widget.patientERGetClinicsList.isOnline == 1 ? CustomColors.green : CustomColors.accentColor,
borderRadius: BorderRadius.all(
Radius.circular(6.0),
),
),
child: Container(
margin: EdgeInsets.only(
left: projectViewModel.isArabic
? 0
: widget.isSelected
? 4
: 6,
right: projectViewModel.isArabic ? widget.isSelected
? 4
: 6: 0),
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 12),
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(color: Colors.white, width: 1),
borderRadius: BorderRadius.only(
bottomRight: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(10.0),
topRight: projectViewModel.isArabic ? Radius.circular(0) : Radius.circular(10.0),
bottomLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0),
topLeft: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0),
),
Row(
children: [
Container(
child: Text(".", style: TextStyle(fontSize: 30.0)),
),
child: Row(
children: [
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
widget.languageID == 'ar' ? widget.patientERGetClinicsList.serviceNameN : widget.patientERGetClinicsList.serviceName,
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
color: Color(0xff2B353E),
letterSpacing: -0.48,
),
),
Row(
children: [
Container(
width: 4,
height: 4,
decoration: containerRadius(
widget.patientERGetClinicsList.isOnline == 1 ? CustomColors.green : CustomColors.accentColor,
100,
),
),
mWidth(4),
Text(
widget.patientERGetClinicsList.isOnline == 1 ? "Online" : "Offline",
style: TextStyle(
fontSize: 10,
fontWeight: FontWeight.w600,
color: widget.patientERGetClinicsList.isOnline == 1 ? CustomColors.green : CustomColors.accentColor,
letterSpacing: -0.48,
),
),
],
),
],
),
Container(
child: Text("Online"),
),
Container(
padding: EdgeInsets.only(left: 8,right: 8,top: 4,bottom: 4),
decoration: containerRadius(CustomColors.devider, 100),
child: Row(
children: [
SvgPicture.asset(
"assets/images/new-design/ic_schedule.svg",
width: 16,
height: 16,
color: Colors.black,
),
mWidth(4),
Text(
"Schedule",
style: TextStyle(
fontSize: 11,
letterSpacing: -0.44,
fontWeight: FontWeight.w600,
),
)
],
),
],
),
],
),
],
),
),
),
);

@ -89,7 +89,9 @@ class _clinic_listState extends State<ClinicList> {
@override
Widget build(BuildContext context) {
return SingleChildScrollView(child: currentSelectedLiveCareType == "immediate" ? getLiveCareImmediateClinicList() : getLiveCareScheduleClinicList());
return Container(
child: currentSelectedLiveCareType == "immediate" ? getLiveCareImmediateClinicList() : getLiveCareScheduleClinicList(),
);
}
void startLiveCare() {
@ -502,69 +504,70 @@ class _clinic_listState extends State<ClinicList> {
return Column(
children: <Widget>[
isDataLoaded
? Container(
height: MediaQuery.of(context).size.height * 0.75,
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
physics: ScrollPhysics(),
padding: const EdgeInsets.only(top: 16.0),
itemCount: liveCareOnlineClinicsListResponse.length,
itemBuilder: (context, index) {
return InkWell(
onTap: () {
updateSelectedIndex(liveCareOnlineClinicsListResponse[index]);
},
child: ClinicCard(
isSelected: selectedClinicID == liveCareOnlineClinicsListResponse[index].serviceID ? true : false,
patientERGetClinicsList: liveCareOnlineClinicsListResponse[index],
? Expanded(
child: Container(
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
physics: ScrollPhysics(),
padding: const EdgeInsets.only(top: 16.0),
itemCount: liveCareOnlineClinicsListResponse.length,
itemBuilder: (context, index) {
return InkWell(
onTap: () {
updateSelectedIndex(liveCareOnlineClinicsListResponse[index]);
},
child: ClinicCard(
isSelected: selectedClinicID == liveCareOnlineClinicsListResponse[index].serviceID ? true : false,
patientERGetClinicsList: liveCareOnlineClinicsListResponse[index],
languageID: languageID,
),
);
},
),
// Container(
// margin: EdgeInsets.all(15.0),
// child: Text(TranslationBase.of(context).offlineClinics, style: TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold)),
// ),
ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
physics: ScrollPhysics(),
padding: EdgeInsets.all(0.0),
itemCount: liveCareOfflineClinicsListResponse.length,
itemBuilder: (context, index) {
return ClinicCard(
isSelected: selectedClinicID == liveCareOfflineClinicsListResponse[index].serviceID ? true : false,
patientERGetClinicsList: liveCareOfflineClinicsListResponse[index],
languageID: languageID,
),
);
},
),
// Container(
// margin: EdgeInsets.all(15.0),
// child: Text(TranslationBase.of(context).offlineClinics, style: TextStyle(fontSize: 20.0, fontWeight: FontWeight.bold)),
// ),
ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
physics: ScrollPhysics(),
padding: EdgeInsets.all(0.0),
itemCount: liveCareOfflineClinicsListResponse.length,
itemBuilder: (context, index) {
return ClinicCard(
isSelected: selectedClinicID == liveCareOfflineClinicsListResponse[index].serviceID ? true : false,
patientERGetClinicsList: liveCareOfflineClinicsListResponse[index],
languageID: languageID,
);
},
),
Container(
height: 50.0,
),
],
)),
);
},
),
Container(
height: 50.0,
),
],
)),
),
)
: Container(),
isDataLoaded
? Align(
alignment: FractionalOffset.bottomCenter,
child: Container(
margin: EdgeInsets.fromLTRB(20.0, 0.0, 20.0, 0.0),
color: Colors.grey[100],
width: MediaQuery.of(context).size.width,
height: 50.0,
child: DefaultButton(TranslationBase.of(context).start, () {
startLiveCare();
}),
),
)
? Container(
color: Colors.white,
width: double.infinity,
padding: EdgeInsets.all(16),
child: DefaultButton(
TranslationBase.of(context).start,
() {
startLiveCare();
},
),
)
: Container(),
],
);

@ -30,7 +30,12 @@ class _LiveCareLogsState extends State<LiveCareLogs> {
padding: EdgeInsets.all(0.0),
itemCount: widget.erRequestHistoryList.length,
itemBuilder: (context, index) {
return widget.erRequestHistoryList[index].callStatus < 4 ? Container() : LiveCareHistoryCard(erRequestHistoryList: widget.erRequestHistoryList[index]);
return widget.erRequestHistoryList[index].callStatus < 4
? Container()
: LiveCareHistoryCard(
erRequestHistoryList: widget.erRequestHistoryList[index],
isFirstOrLast: index==0?0:(index==widget.erRequestHistoryList.length-1)?1:2,
);
},
),
)

Loading…
Cancel
Save