diff --git a/lib/pages/ChildVaccines/new/child_vaccine_page.dart b/lib/pages/ChildVaccines/new/child_vaccine_page.dart index 2563fa63..2a876cfa 100644 --- a/lib/pages/ChildVaccines/new/child_vaccine_page.dart +++ b/lib/pages/ChildVaccines/new/child_vaccine_page.dart @@ -1,6 +1,7 @@ import 'package:diplomaticquarterapp/core/model/childvaccines/delete_baby_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/child_vaccines/child_vaccines_view_model.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; +import 'package:diplomaticquarterapp/theme/colors.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; @@ -10,6 +11,7 @@ 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/material.dart'; +import 'package:flutter/rendering.dart'; import '../add_newchild_page.dart'; import '../vaccinationtable_page.dart'; @@ -31,274 +33,175 @@ class _ChildPageState extends State with SingleTickerProviderS var checkedValue = true; return BaseView( - onModelReady: (model) => model.getNewUserOrders(), - builder: (_, model, widget) => AppScaffold( - isShowAppBar: true, - appBarTitle: TranslationBase.of(context).vaccination, - baseViewModel: model, - showNewAppBarTitle: true, - showNewAppBar: true, - body: Column( - children: [ - Expanded( - child: ListView.separated( - itemBuilder: (context, index) { - return InkWell( - onTap: () { - Navigator.push( - context, - FadePage( - page: VaccinationTablePage(model.babyInformationModelList[index]), - ), - ); - }, - child: Container( - margin: EdgeInsets.only(left: 0, right: 0, bottom: 20), - decoration: BoxDecoration( - shape: BoxShape.rectangle, - borderRadius: BorderRadius.all(Radius.circular(12)), - color: Colors.white, - gradient: LinearGradient( - colors: model.babyInformationModelList[index].gender == 1 - ? [ - Color(0xFFFDA4B0), - Color(0xFFFBC8CC), - ] - : [ - Color(0xFF6EA8FF), - Color(0xFF7AB8FD), - ], - begin: Alignment.centerLeft, - end: Alignment.centerRight, - ), - ), - padding: EdgeInsets.all(12), - //double.infinity, + onModelReady: (model) => model.getNewUserOrders(), + builder: (_, model, widget) => AppScaffold( + isShowAppBar: true, + appBarTitle: TranslationBase.of(context).vaccination, + baseViewModel: model, + showNewAppBarTitle: true, + showNewAppBar: true, + body: Column( + children: [ + Expanded( + child: ListView.separated( + itemBuilder: (context, index) { + Color selectedColor = model.babyInformationModelList[index].gender == 1 ? Color(0xFF5A282E) : Colors.white; + return InkWell( + onTap: () { + Navigator.push( + context, + FadePage( + page: VaccinationTablePage(model.babyInformationModelList[index]), + ), + ); + }, + child: Container( + margin: EdgeInsets.only(left: 16, right: 16), + decoration: BoxDecoration( + shape: BoxShape.rectangle, + borderRadius: BorderRadius.all(Radius.circular(12)), + color: Colors.white, + gradient: LinearGradient( + colors: model.babyInformationModelList[index].gender == 1 + ? [ + Color(0xFFFDA4B0), + Color(0xFFFBC8CC), + ] + : [ + Color(0xFF6EA8FF), + Color(0xFF7AB8FD), + ], + begin: Alignment.centerLeft, + end: Alignment.centerRight, + ), + ), + padding: EdgeInsets.all(12), + //double.infinity, + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Expanded( child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, children: [ - Texts(model.babyInformationModelList[index].babyName.trim()), - Row(children: [ - IconButton( - icon: Image.asset(model.babyInformationModelList[index].gender == 1 ? 'assets/images/new-design/male.png' : 'assets/images/new-design/female.png'), - tooltip: '', - onPressed: () { - setState(() { - // _volume += 10; - // launch("tel://" +model.FindusHospitalModelList[index].phoneNumber); - }); - }, + Text( + model.babyInformationModelList[index].babyName.trim(), + style: TextStyle( + fontSize: 14, + letterSpacing: -0.46, + fontWeight: FontWeight.bold, + color: selectedColor, ), - Texts(model.babyInformationModelList[index].genderDescription), - IconButton( - icon: Icon( - Icons.remove_red_eye, - color: Colors.red, - ), - tooltip: '', - onPressed: () { - Navigator.push( - context, - FadePage( - page: VaccinationTablePage(model.babyInformationModelList[index]), - ), - ); - }, - ) - ]), - Row(children: [ - Texts(TranslationBase.of(context).dob), - ]), - Row(children: [ - IconButton( - icon: new Image.asset('assets/images/new-design/calender-secondary.png'), - tooltip: '', - onPressed: () { - setState(() {}); - }, + ), + Text( + model.babyInformationModelList[index].gender == 1 ? TranslationBase.of(context).female : TranslationBase.of(context).male, + style: TextStyle( + fontSize: 11, + color: selectedColor, ), - Texts(DateUtil.yearMonthDay(model.babyInformationModelList[index].dOB)), - ]), - Row(children: [ - IconButton( - icon: new Image.asset('assets/images/new-design/garbage.png'), - tooltip: '', - onPressed: () async { - //===================== - await model.deleteBabyOrders(newChild: deleteBaby); + ), + Row( + children: [ + Text( + TranslationBase.of(context).dob, + style: TextStyle( + fontSize: 11, + color: selectedColor, + ), + ), + Text(DateUtil.yearMonthDay(model.babyInformationModelList[index].dOB), + style: TextStyle( + fontSize: 11, + color: selectedColor, + )), + ], + ), + mHeight(20), + ], + ), + ), + InkWell( + onTap: () async { + await model.deleteBabyOrders(newChild: deleteBaby); - deleteBaby.babyID = model.babyInformationModelList[index].babyID; + deleteBaby.babyID = model.babyInformationModelList[index].babyID; - await model.deleteBabyOrders(newChild: deleteBaby); - if (model.isDeleted) { - AppToast.showSuccessToast(message: TranslationBase.of(context).recordDeleted); - Navigator.pop(context, model.isDeleted); - } else { - //TODO handling error - } - }, + await model.deleteBabyOrders(newChild: deleteBaby); + if (model.isDeleted) { + AppToast.showSuccessToast(message: TranslationBase.of(context).recordDeleted); + Navigator.pop(context, model.isDeleted); + } else { + //TODO handling error + } + }, + child: Container( + decoration: containerRadius(Colors.black.withOpacity(0.2), 2000), + padding: EdgeInsets.only(left: 12, right: 12, top: 8, bottom: 8), + child: Row( + children: [ + Image.asset( + 'assets/images/new-design/garbage.png', + width: 16, + color: selectedColor, ), - Texts(TranslationBase.of(context).deleteView), - ]), - SizedBox( - height: 12, - ), - ], + mWidth(8), + Text( + TranslationBase.of(context).deleteView, + style: TextStyle( + fontSize: 11, + fontWeight: FontWeight.w600, + letterSpacing: -0.33, + color: selectedColor, + ), + ), + ], + ), ), ), - ); - }, - separatorBuilder: (BuildContext context, int index) { - return mHeight(12); - }, - itemCount: model.babyInformationModelList.length, + ], + ), ), - ), - // Container( - // height: height * 0.85, - // child: SingleChildScrollView( - // child: Container( - // margin: EdgeInsets.only(left: 8, right: 8, top: 16), - // child: GridView.count( - // crossAxisCount: 2, - // childAspectRatio: (itemWidth / (itemHeight + 0)), - // crossAxisSpacing: 10, - // mainAxisSpacing: 10, - // controller: ScrollController(keepScrollOffset: true), - // shrinkWrap: true, - // padding: const EdgeInsets.all(4.0), - // children: [ - // ...List.generate( - // model.babyInformationModelList.length, - // (index) => InkWell( - // onTap: () { - // Navigator.push( - // context, - // FadePage( - // page: VaccinationTablePage(model.babyInformationModelList[index]), - // ), - // ); - // }, - // child: Container( - // margin: EdgeInsets.only(left: 0, right: 0, bottom: 20), - // decoration: BoxDecoration( - // shape: BoxShape.rectangle, - // border: Border.all(color: Colors.white, width: 0.5), - // borderRadius: BorderRadius.all(Radius.circular(5)), - // color: Colors.white, - // ), - // padding: EdgeInsets.all(12), - // //double.infinity, - // child: Column( - // children: [ - // Row(children: [ - // Texts(TranslationBase.of(context).childName), - // ]), - // Row(children: [ - // Texts(model.babyInformationModelList[index].babyName.trim()), - // ]), - // Row(children: [ - // IconButton( - // icon: Image.asset(model.babyInformationModelList[index].gender == 1 ? 'assets/images/new-design/male.png' : 'assets/images/new-design/female.png'), - // tooltip: '', - // onPressed: () { - // setState(() { - // // _volume += 10; - // // launch("tel://" +model.FindusHospitalModelList[index].phoneNumber); - // }); - // }, - // ), - // Texts(model.babyInformationModelList[index].genderDescription), - // IconButton( - // icon: Icon( - // Icons.remove_red_eye, - // color: Colors.red, - // ), - // tooltip: '', - // onPressed: () { - // Navigator.push( - // context, - // FadePage( - // page: VaccinationTablePage(model.babyInformationModelList[index]), - // ), - // ); - // }, - // ) - // ]), - // Row(children: [ - // Texts(TranslationBase.of(context).dob), - // ]), - // Row(children: [ - // IconButton( - // icon: new Image.asset('assets/images/new-design/calender-secondary.png'), - // tooltip: '', - // onPressed: () { - // setState(() {}); - // }, - // ), - // Texts(DateUtil.yearMonthDay(model.babyInformationModelList[index].dOB)), - // ]), - // Row(children: [ - // IconButton( - // icon: new Image.asset('assets/images/new-design/garbage.png'), - // tooltip: '', - // onPressed: () async { - // //===================== - // await model.deleteBabyOrders(newChild: deleteBaby); - // - // deleteBaby.babyID = model.babyInformationModelList[index].babyID; - // - // await model.deleteBabyOrders(newChild: deleteBaby); - // if (model.isDeleted) { - // AppToast.showSuccessToast(message: TranslationBase.of(context).recordDeleted); - // Navigator.pop(context, model.isDeleted); - // } else { - // //TODO handling error - // } - // }, - // ), - // Texts(TranslationBase.of(context).deleteView), - // ]), - // SizedBox( - // height: 12, - // ), - // ], - // ), - // ), - // ), - // ) - // ], - // ))), - // ), - ], + ); + }, + separatorBuilder: (BuildContext context, int index) { + return mHeight(12); + }, + itemCount: model.babyInformationModelList.length, ), - bottomSheet: Container( - height: height * 0.15, - width: double.infinity, - padding: EdgeInsets.all(16), - child: SecondaryButton( - textColor: Colors.white, - color: checkedValue == false - ? Colors.white24 - : Color.fromRGBO( - 63, - 72, - 74, - 1, - ), - label: TranslationBase.of(context).addNewChild, - // - onTap: () { - Navigator.push( - context, - FadePage( - page: AddNewChildPage(), + ), + Container( + width: double.infinity, + padding: EdgeInsets.all(16), + color: Colors.white, + child: SecondaryButton( + textColor: Colors.white, + color: checkedValue + ? CustomColors.accentColor + : Color.fromRGBO( + 63, + 72, + 74, + 1, ), - ).then((value) { - if (value) model.getNewUserOrders(); - }); - }, - ), + label: TranslationBase.of(context).addNewChild, + // + onTap: () { + Navigator.push( + context, + FadePage( + page: AddNewChildPage(), + ), + ).then((value) { + if (value) model.getNewUserOrders(); + }); + }, ), - )); + ), + ], + ), + ), + ); } } diff --git a/lib/pages/ChildVaccines/vaccinationtable_page.dart b/lib/pages/ChildVaccines/vaccinationtable_page.dart index a7ba1b71..45a63414 100644 --- a/lib/pages/ChildVaccines/vaccinationtable_page.dart +++ b/lib/pages/ChildVaccines/vaccinationtable_page.dart @@ -1,16 +1,21 @@ import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/model/childvaccines/List_BabyInformationModel.dart'; import 'package:diplomaticquarterapp/core/viewModels/child_vaccines/vaccination_table_view_model.dart'; +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; +import 'package:diplomaticquarterapp/theme/colors.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; +import 'package:diplomaticquarterapp/uitl/utils.dart'; +import 'package:diplomaticquarterapp/uitl/utils_new.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/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_html/flutter_html.dart'; +import 'package:provider/provider.dart'; import 'dialogs/SelectGenderDialog.dart'; @@ -23,6 +28,7 @@ class VaccinationTablePage extends StatelessWidget { Widget build(BuildContext context) { var size = MediaQuery.of(context).size; final double height = (size.height - kToolbarHeight - 60); + ProjectViewModel projectViewModel = Provider.of(context); var checkedValue; return BaseView( @@ -31,147 +37,164 @@ class VaccinationTablePage extends StatelessWidget { isShowAppBar: true, baseViewModel: model, appBarTitle: TranslationBase.of(context).vaccination, + showNewAppBar: true, + showNewAppBarTitle: true, + backgroundColor: CustomColors.appBackgroudGrey2Color, body: Container( - height: height * 0.85, - child: SingleChildScrollView( - child: Container( - margin: EdgeInsets.only(left: 16, right: 16, top: 16), - child: Column( - children: [ - Row( - children: [ - Expanded( - child: Texts(TranslationBase.of(context).childName), - ), - Expanded( - child: Texts(TranslationBase.of(context).dob), - ), - ], - ), - SizedBox( - height: 10, - ), - Row( - children: [ - Expanded( - child: Texts(babyInfo.babyName), - ), - Expanded( - child: Texts(DateUtil.getFormattedDate( - babyInfo.dOB, "MMM dd,yyyy")), - ), - ], - ), - SizedBox( - height: 10, - ), - Divider( - color: Colors.black, - ), - Row( - children: [ - Text(TranslationBase.of(context).visit), - SizedBox( - width: 25, - ), - Expanded( - child: Text(TranslationBase.of(context).description)), - Text(TranslationBase.of(context).dueDate), - ], - ), - ...List.generate( - model.creteVaccinationTableModelList.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, - ), + height: double.infinity, + child: Column( + children: [ + Expanded( + child: SingleChildScrollView( + child: Container( + margin: EdgeInsets.only(left: 16, right: 16, top: 16), + child: Column( + children: [ + Container( + decoration: containerRadius(Colors.white, 12), padding: EdgeInsets.all(12), - width: double.infinity, child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, children: [ + Text( + babyInfo.babyName, + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w600, + letterSpacing: -0.64, + ), + ), + mHeight(8), Row( children: [ - Text(model - .creteVaccinationTableModelList[index] - .visit), - SizedBox( - width: 10, + Text( + TranslationBase.of(context).gender + " :", + style: TextStyle( + fontSize: 10, + fontWeight: FontWeight.w600, + letterSpacing: -0.4, + color: CustomColors.textColor, + ), ), - Expanded( - child: Column( - mainAxisAlignment: - MainAxisAlignment.start, - crossAxisAlignment: - CrossAxisAlignment.start, - children: [ - Html( - // data:"
BCG
HEPATITIS B
"//model.creteVaccinationTableModelList[index].vaccinesDescription - data: model - .creteVaccinationTableModelList[ - index] - .vaccinesDescription, - ), - ], + Text( + babyInfo.gender == 1 ? TranslationBase.of(context).female : TranslationBase.of(context).male, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.w600, + letterSpacing: -0.4, + color: CustomColors.black, ), ), - Text(model - .creteVaccinationTableModelList[index] - .givenAt), ], ), - Divider( - color: Colors.black, + Row( + children: [ + Text( + TranslationBase.of(context).dateOfBirth + " :", + style: TextStyle( + fontSize: 10, + fontWeight: FontWeight.w600, + letterSpacing: -0.4, + color: CustomColors.textColor, + ), + ), + Text( + DateUtil.getFormattedDate(babyInfo.dOB, "MMM dd,yyyy"), + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.w600, + letterSpacing: -0.4, + color: CustomColors.black, + ), + ), + ], ), ], - ))) - ], - ), - ), - ), - ), - bottomSheet: Container( - height: height * 0.15, - width: double.infinity, - padding: EdgeInsets.all(12), - child: SecondaryButton( - textColor: Colors.white, - color: checkedValue == false - ? Colors.white24 - : Color.fromRGBO( - 63, - 72, - 74, - 1, + ), + ), + mHeight(12), + Container( + decoration: containerRadius(Colors.white, 12), + padding: EdgeInsets.all(12), + child: Table( + columnWidths: { + 0: FlexColumnWidth(1.8), + 1: FlexColumnWidth(1.8), + 2: FlexColumnWidth(1.8), + }, + children: fullData(context, model, projectViewModel), + ), + ), + ], ), - label: TranslationBase.of(context).sendEmail, - // - onTap: () { - //SelectGenderDialog(); -//=============== - showDialog( - context: context, - child: SelectGenderDialog( - okFunction: () async { - await model.getCreateVaccinationTable(babyInfo, true); - if (model.state == ViewState.Idle) { - AppToast.showSuccessToast( - message: TranslationBase.of(context) - .emailSentSuccessfully); - } else { - AppToast.showErrorToast( - message: TranslationBase.of(context) - .EmailSentError); - } - }, ), - ); - //========= - }), + ), + ), + Container( + width: double.infinity, + padding: EdgeInsets.all(12), + color: Colors.white, + child: SecondaryButton( + textColor: Colors.white, + color: CustomColors.accentColor, + label: TranslationBase.of(context).sendEmail, + // + onTap: () { + //SelectGenderDialog(); +//=============== + showDialog( + context: context, + child: SelectGenderDialog( + okFunction: () async { + await model.getCreateVaccinationTable(babyInfo, true); + if (model.state == ViewState.Idle) { + AppToast.showSuccessToast(message: TranslationBase.of(context).emailSentSuccessfully); + } else { + AppToast.showErrorToast(message: TranslationBase.of(context).EmailSentError); + } + }, + ), + ); + //========= + }, + ), + ), + ], + ), ), ), ); } + + List fullData(BuildContext context, VaccinationTableViewModel model, ProjectViewModel projectViewModel) { + List tableRow = []; + tableRow.add( + TableRow( + children: [ + Utils.tableColumnTitle(TranslationBase.of(context).visit), + Utils.tableColumnTitle(TranslationBase.of(context).description), + Utils.tableColumnTitle(TranslationBase.of(context).dueDate), + ], + ), + ); + model.creteVaccinationTableModelList.forEach( + (diabtec) { + tableRow.add( + TableRow( + children: [ + Utils.tableColumnValue(diabtec.visit, isCapitable: false, mProjectViewModel: projectViewModel), + // Utils.tableColumnValue(diabtec.vaccinesDescription, isCapitable: false, mProjectViewModel: projectViewModel), + Html( + // data:"
BCG
HEPATITIS B
"//model.creteVaccinationTableModelList[index].vaccinesDescription + data: diabtec.vaccinesDescription, + ), + Utils.tableColumnValue(diabtec.givenAt, isCapitable: false, mProjectViewModel: projectViewModel), + ], + ), + ); + }, + ); + return tableRow; + } }