|
|
|
@ -7,9 +7,10 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/models/Appointments/DoctorListResponse.dart';
|
|
|
|
|
import 'package:hexcolor/hexcolor.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/core/viewModels/medical/medical_view_model.dart';
|
|
|
|
|
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
|
|
|
|
|
|
|
|
|
|
class SchedulePage extends StatefulWidget {
|
|
|
|
|
final DoctorList doctorList;
|
|
|
|
@ -24,6 +25,7 @@ class _SchedulePageState extends State<SchedulePage> {
|
|
|
|
|
PageController _pageController = PageController();
|
|
|
|
|
double currentPage = 0;
|
|
|
|
|
int selectedindex = 0;
|
|
|
|
|
bool isLoading = true;
|
|
|
|
|
List<DoctorScheduleResponse> doctorScheduleResponse = [];
|
|
|
|
|
final List<Widget> introWidgetsList = <Widget>[
|
|
|
|
|
Text('Hello'),
|
|
|
|
@ -33,7 +35,7 @@ class _SchedulePageState extends State<SchedulePage> {
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
void initState() {
|
|
|
|
|
getSchedule(widget.doctorList);
|
|
|
|
|
//getSchedule(widget.doctorList, context);
|
|
|
|
|
// _pageController.addListener(() {
|
|
|
|
|
// setState(() {
|
|
|
|
|
// currentPage = _pageController.page;
|
|
|
|
@ -44,9 +46,12 @@ class _SchedulePageState extends State<SchedulePage> {
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
return AppScaffold(
|
|
|
|
|
return BaseView<MedicalViewModel>(
|
|
|
|
|
onModelReady: (model) => model.getDoctorSchedule(widget.doctorList),
|
|
|
|
|
builder: (_, model, widget) => AppScaffold(
|
|
|
|
|
appBarTitle: TranslationBase.of(context).schedule,
|
|
|
|
|
isShowAppBar: true,
|
|
|
|
|
isLoading: true,
|
|
|
|
|
body: SizedBox(
|
|
|
|
|
height: MediaQuery.of(context).size.height,
|
|
|
|
|
child: Stack(
|
|
|
|
@ -63,7 +68,7 @@ class _SchedulePageState extends State<SchedulePage> {
|
|
|
|
|
itemBuilder: (context, index) {
|
|
|
|
|
return Container(
|
|
|
|
|
child: ListView.builder(
|
|
|
|
|
itemCount: doctorScheduleResponse.length,
|
|
|
|
|
itemCount: model.getDoctorScheduleList.length,
|
|
|
|
|
itemBuilder: (context, index) => ClipRRect(
|
|
|
|
|
borderRadius: const BorderRadius.all(
|
|
|
|
|
Radius.circular(20.0)),
|
|
|
|
@ -71,17 +76,21 @@ class _SchedulePageState extends State<SchedulePage> {
|
|
|
|
|
padding: EdgeInsets.only(
|
|
|
|
|
left: 10,
|
|
|
|
|
right: 10,
|
|
|
|
|
top: 25,
|
|
|
|
|
bottom: 25),
|
|
|
|
|
height: 100,
|
|
|
|
|
margin: EdgeInsets.all(10),
|
|
|
|
|
top: 20,
|
|
|
|
|
bottom: 20),
|
|
|
|
|
margin: EdgeInsets.only(
|
|
|
|
|
left: 20,
|
|
|
|
|
right: 20,
|
|
|
|
|
top: 7,
|
|
|
|
|
bottom: 7),
|
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
|
boxShadow: [
|
|
|
|
|
BoxShadow(
|
|
|
|
|
color: Colors.green,
|
|
|
|
|
spreadRadius: 3),
|
|
|
|
|
offset: Offset(-10, 0)),
|
|
|
|
|
],
|
|
|
|
|
borderRadius: const BorderRadius.all(
|
|
|
|
|
borderRadius:
|
|
|
|
|
const BorderRadius.all(
|
|
|
|
|
Radius.circular(10.0)),
|
|
|
|
|
color: Colors.white),
|
|
|
|
|
child: Row(
|
|
|
|
@ -91,21 +100,26 @@ class _SchedulePageState extends State<SchedulePage> {
|
|
|
|
|
Column(
|
|
|
|
|
children: [
|
|
|
|
|
Texts(
|
|
|
|
|
doctorScheduleResponse[index]
|
|
|
|
|
model
|
|
|
|
|
.getDoctorScheduleList[
|
|
|
|
|
index]
|
|
|
|
|
.dayName,
|
|
|
|
|
color: HexColor('#0bb690'),
|
|
|
|
|
color:
|
|
|
|
|
HexColor('#0bb690'),
|
|
|
|
|
),
|
|
|
|
|
Texts(
|
|
|
|
|
DateUtil
|
|
|
|
|
.getDayMonthYearDateFormatted(
|
|
|
|
|
DateUtil
|
|
|
|
|
.convertStringToDate(
|
|
|
|
|
doctorScheduleResponse[
|
|
|
|
|
model
|
|
|
|
|
.getDoctorScheduleList[
|
|
|
|
|
index]
|
|
|
|
|
.date,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
color: HexColor('#0bb690'),
|
|
|
|
|
color:
|
|
|
|
|
HexColor('#0bb690'),
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
@ -113,7 +127,9 @@ class _SchedulePageState extends State<SchedulePage> {
|
|
|
|
|
),
|
|
|
|
|
Expanded(
|
|
|
|
|
child: Texts(
|
|
|
|
|
doctorScheduleResponse[index]
|
|
|
|
|
model
|
|
|
|
|
.getDoctorScheduleList[
|
|
|
|
|
index]
|
|
|
|
|
.workingHours,
|
|
|
|
|
color: HexColor('#0bb690'),
|
|
|
|
|
),
|
|
|
|
@ -128,19 +144,20 @@ class _SchedulePageState extends State<SchedulePage> {
|
|
|
|
|
length: introWidgetsList.length,
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
)));
|
|
|
|
|
))));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getSchedule(DoctorList doctor) {
|
|
|
|
|
// GifLoaderDialogUtils.showMyDialog(AppGlobal.context);
|
|
|
|
|
service = new DoctorsListService();
|
|
|
|
|
service.getSchedule(doctor).then((value) {
|
|
|
|
|
doctorScheduleResponse.clear();
|
|
|
|
|
setState(() {
|
|
|
|
|
value['List_DoctorWorkingHoursTable'].forEach((item) => {
|
|
|
|
|
doctorScheduleResponse.add(DoctorScheduleResponse.fromJson(item))
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
//getSchedule(DoctorList doctor, BuildContext context) {
|
|
|
|
|
//GifLoaderDialogUtils.showMyDialog(context);
|
|
|
|
|
//service = new DoctorsListService();
|
|
|
|
|
// service.getSchedule(doctor).then((value) {
|
|
|
|
|
// doctorScheduleResponse.clear();
|
|
|
|
|
// setState(() {
|
|
|
|
|
// value['List_DoctorWorkingHoursTable'].forEach((item) => {
|
|
|
|
|
// doctorScheduleResponse.add(DoctorScheduleResponse.fromJson(item))
|
|
|
|
|
// });
|
|
|
|
|
// GifLoaderDialogUtils.hideDialog(context);
|
|
|
|
|
// });
|
|
|
|
|
// });
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|