health weather indicator
parent
e7c862c801
commit
648d9d245d
@ -0,0 +1,266 @@
|
||||
class WeatherIndicatorModel {
|
||||
Null date;
|
||||
int languageID;
|
||||
int serviceName;
|
||||
Null time;
|
||||
Null androidLink;
|
||||
Null authenticationTokenID;
|
||||
Null data;
|
||||
bool dataw;
|
||||
int dietType;
|
||||
Null errorCode;
|
||||
Null errorEndUserMessage;
|
||||
Null errorEndUserMessageN;
|
||||
Null errorMessage;
|
||||
int errorType;
|
||||
int foodCategory;
|
||||
Null iOSLink;
|
||||
bool isAuthenticated;
|
||||
int mealOrderStatus;
|
||||
int mealType;
|
||||
int messageStatus;
|
||||
int numberOfResultRecords;
|
||||
Null patientBlodType;
|
||||
Null successMsg;
|
||||
Null successMsgN;
|
||||
Null citiesList;
|
||||
Null cityName;
|
||||
Null get5DaysWeatherForecastList;
|
||||
List<GetCityInfoList> getCityInfoList;
|
||||
Null getTodayWeatherForecastList;
|
||||
Null iniciesList;
|
||||
|
||||
WeatherIndicatorModel(
|
||||
{this.date,
|
||||
this.languageID,
|
||||
this.serviceName,
|
||||
this.time,
|
||||
this.androidLink,
|
||||
this.authenticationTokenID,
|
||||
this.data,
|
||||
this.dataw,
|
||||
this.dietType,
|
||||
this.errorCode,
|
||||
this.errorEndUserMessage,
|
||||
this.errorEndUserMessageN,
|
||||
this.errorMessage,
|
||||
this.errorType,
|
||||
this.foodCategory,
|
||||
this.iOSLink,
|
||||
this.isAuthenticated,
|
||||
this.mealOrderStatus,
|
||||
this.mealType,
|
||||
this.messageStatus,
|
||||
this.numberOfResultRecords,
|
||||
this.patientBlodType,
|
||||
this.successMsg,
|
||||
this.successMsgN,
|
||||
this.citiesList,
|
||||
this.cityName,
|
||||
this.get5DaysWeatherForecastList,
|
||||
this.getCityInfoList,
|
||||
this.getTodayWeatherForecastList,
|
||||
this.iniciesList});
|
||||
|
||||
WeatherIndicatorModel.fromJson(Map<String, dynamic> json) {
|
||||
date = json['Date'];
|
||||
languageID = json['LanguageID'];
|
||||
serviceName = json['ServiceName'];
|
||||
time = json['Time'];
|
||||
androidLink = json['AndroidLink'];
|
||||
authenticationTokenID = json['AuthenticationTokenID'];
|
||||
data = json['Data'];
|
||||
dataw = json['Dataw'];
|
||||
dietType = json['DietType'];
|
||||
errorCode = json['ErrorCode'];
|
||||
errorEndUserMessage = json['ErrorEndUserMessage'];
|
||||
errorEndUserMessageN = json['ErrorEndUserMessageN'];
|
||||
errorMessage = json['ErrorMessage'];
|
||||
errorType = json['ErrorType'];
|
||||
foodCategory = json['FoodCategory'];
|
||||
iOSLink = json['IOSLink'];
|
||||
isAuthenticated = json['IsAuthenticated'];
|
||||
mealOrderStatus = json['MealOrderStatus'];
|
||||
mealType = json['MealType'];
|
||||
messageStatus = json['MessageStatus'];
|
||||
numberOfResultRecords = json['NumberOfResultRecords'];
|
||||
patientBlodType = json['PatientBlodType'];
|
||||
successMsg = json['SuccessMsg'];
|
||||
successMsgN = json['SuccessMsgN'];
|
||||
citiesList = json['CitiesList'];
|
||||
cityName = json['CityName'];
|
||||
get5DaysWeatherForecastList = json['Get5DaysWeatherForecastList'];
|
||||
if (json['GetCityInfo_List'] != null) {
|
||||
getCityInfoList = new List<GetCityInfoList>();
|
||||
json['GetCityInfo_List'].forEach((v) {
|
||||
getCityInfoList.add(new GetCityInfoList.fromJson(v));
|
||||
});
|
||||
}
|
||||
getTodayWeatherForecastList = json['GetTodayWeatherForecastList'];
|
||||
iniciesList = json['IniciesList'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['Date'] = this.date;
|
||||
data['LanguageID'] = this.languageID;
|
||||
data['ServiceName'] = this.serviceName;
|
||||
data['Time'] = this.time;
|
||||
data['AndroidLink'] = this.androidLink;
|
||||
data['AuthenticationTokenID'] = this.authenticationTokenID;
|
||||
data['Data'] = this.data;
|
||||
data['Dataw'] = this.dataw;
|
||||
data['DietType'] = this.dietType;
|
||||
data['ErrorCode'] = this.errorCode;
|
||||
data['ErrorEndUserMessage'] = this.errorEndUserMessage;
|
||||
data['ErrorEndUserMessageN'] = this.errorEndUserMessageN;
|
||||
data['ErrorMessage'] = this.errorMessage;
|
||||
data['ErrorType'] = this.errorType;
|
||||
data['FoodCategory'] = this.foodCategory;
|
||||
data['IOSLink'] = this.iOSLink;
|
||||
data['IsAuthenticated'] = this.isAuthenticated;
|
||||
data['MealOrderStatus'] = this.mealOrderStatus;
|
||||
data['MealType'] = this.mealType;
|
||||
data['MessageStatus'] = this.messageStatus;
|
||||
data['NumberOfResultRecords'] = this.numberOfResultRecords;
|
||||
data['PatientBlodType'] = this.patientBlodType;
|
||||
data['SuccessMsg'] = this.successMsg;
|
||||
data['SuccessMsgN'] = this.successMsgN;
|
||||
data['CitiesList'] = this.citiesList;
|
||||
data['CityName'] = this.cityName;
|
||||
data['Get5DaysWeatherForecastList'] = this.get5DaysWeatherForecastList;
|
||||
if (this.getCityInfoList != null) {
|
||||
data['GetCityInfo_List'] =
|
||||
this.getCityInfoList.map((v) => v.toJson()).toList();
|
||||
}
|
||||
data['GetTodayWeatherForecastList'] = this.getTodayWeatherForecastList;
|
||||
data['IniciesList'] = this.iniciesList;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class GetCityInfoList {
|
||||
CategoriesNames categoriesNames;
|
||||
String category;
|
||||
String categoryValue;
|
||||
int cityID;
|
||||
String cityName;
|
||||
String cityNameN;
|
||||
String colorName;
|
||||
String createdOn;
|
||||
String iD;
|
||||
int iniceID;
|
||||
bool isOrderEmpty;
|
||||
bool isValuesReversed;
|
||||
bool language;
|
||||
double latitude;
|
||||
double longitude;
|
||||
String name;
|
||||
int orderNum;
|
||||
double temperature;
|
||||
String value;
|
||||
|
||||
GetCityInfoList(
|
||||
{this.categoriesNames,
|
||||
this.category,
|
||||
this.categoryValue,
|
||||
this.cityID,
|
||||
this.cityName,
|
||||
this.cityNameN,
|
||||
this.colorName,
|
||||
this.createdOn,
|
||||
this.iD,
|
||||
this.iniceID,
|
||||
this.isOrderEmpty,
|
||||
this.isValuesReversed,
|
||||
this.language,
|
||||
this.latitude,
|
||||
this.longitude,
|
||||
this.name,
|
||||
this.orderNum,
|
||||
this.temperature,
|
||||
this.value});
|
||||
|
||||
GetCityInfoList.fromJson(Map<String, dynamic> json) {
|
||||
categoriesNames = json['CategoriesNames'] != null
|
||||
? new CategoriesNames.fromJson(json['CategoriesNames'])
|
||||
: null;
|
||||
category = json['Category'];
|
||||
categoryValue = json['CategoryValue'];
|
||||
cityID = json['CityID'];
|
||||
cityName = json['CityName'];
|
||||
cityNameN = json['CityNameN'];
|
||||
colorName = json['ColorName'];
|
||||
createdOn = json['CreatedOn'];
|
||||
iD = json['ID'];
|
||||
iniceID = json['IniceID'];
|
||||
isOrderEmpty = json['IsOrderEmpty'];
|
||||
isValuesReversed = json['IsValuesReversed'];
|
||||
language = json['Language'];
|
||||
latitude = json['Latitude'];
|
||||
longitude = json['Longitude'];
|
||||
name = json['Name'];
|
||||
orderNum = json['OrderNum'];
|
||||
temperature = json['Temperature'];
|
||||
value = json['Value'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
if (this.categoriesNames != null) {
|
||||
data['CategoriesNames'] = this.categoriesNames.toJson();
|
||||
}
|
||||
data['Category'] = this.category;
|
||||
data['CategoryValue'] = this.categoryValue;
|
||||
data['CityID'] = this.cityID;
|
||||
data['CityName'] = this.cityName;
|
||||
data['CityNameN'] = this.cityNameN;
|
||||
data['ColorName'] = this.colorName;
|
||||
data['CreatedOn'] = this.createdOn;
|
||||
data['ID'] = this.iD;
|
||||
data['IniceID'] = this.iniceID;
|
||||
data['IsOrderEmpty'] = this.isOrderEmpty;
|
||||
data['IsValuesReversed'] = this.isValuesReversed;
|
||||
data['Language'] = this.language;
|
||||
data['Latitude'] = this.latitude;
|
||||
data['Longitude'] = this.longitude;
|
||||
data['Name'] = this.name;
|
||||
data['OrderNum'] = this.orderNum;
|
||||
data['Temperature'] = this.temperature;
|
||||
data['Value'] = this.value;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class CategoriesNames {
|
||||
String category1;
|
||||
String category2;
|
||||
String category3;
|
||||
String category4;
|
||||
String category5;
|
||||
|
||||
CategoriesNames(
|
||||
{this.category1,
|
||||
this.category2,
|
||||
this.category3,
|
||||
this.category4,
|
||||
this.category5});
|
||||
|
||||
CategoriesNames.fromJson(Map<String, dynamic> json) {
|
||||
category1 = json['Category1'];
|
||||
category2 = json['Category2'];
|
||||
category3 = json['Category3'];
|
||||
category4 = json['Category4'];
|
||||
category5 = json['Category5'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['Category1'] = this.category1;
|
||||
data['Category2'] = this.category2;
|
||||
data['Category3'] = this.category3;
|
||||
data['Category4'] = this.category4;
|
||||
data['Category5'] = this.category5;
|
||||
return data;
|
||||
}
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
import 'package:diplomaticquarterapp/config/config.dart';
|
||||
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/er/projectavgerwaitingtime.dart';
|
||||
import 'package:diplomaticquarterapp/core/service/base_service.dart';
|
||||
|
||||
class WeatherService extends BaseService {
|
||||
List<ProjectAvgERWaitingTime> projectAvgERWaitingTimeModelList = List();
|
||||
|
||||
Map<String, dynamic> body = Map();
|
||||
String Latitude = "";
|
||||
String Longitude = "";
|
||||
String PhoneNumber = "";
|
||||
|
||||
Future getProjectAvgERWaitingTimeOrders() async {
|
||||
hasError = false;
|
||||
|
||||
var lat = await sharedPref.getDouble(USER_LAT);
|
||||
var long = await sharedPref.getDouble(USER_LONG);
|
||||
body['Latitude'] = lat ?? 0;
|
||||
body['Longitude'] = long ?? 0;
|
||||
|
||||
await baseAppClient.post(GET_NEAREST_HOSPITAL,
|
||||
onSuccess: (dynamic response, int statusCode) {
|
||||
response['List_ProjectAvgERWaitingTime'].forEach((vital) {
|
||||
projectAvgERWaitingTimeModelList
|
||||
.add(ProjectAvgERWaitingTime.fromJson(vital));
|
||||
});
|
||||
projectAvgERWaitingTimeModelList.forEach((element) {
|
||||
Latitude = '${element.latitude}';
|
||||
Longitude = '${element.longitude}';
|
||||
PhoneNumber = '${element.phoneNumber}';
|
||||
});
|
||||
}, onFailure: (String error, int statusCode) {
|
||||
hasError = true;
|
||||
super.error = error;
|
||||
}, body: body);
|
||||
}
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
|
||||
import 'package:diplomaticquarterapp/core/model/er/projectavgerwaitingtime.dart';
|
||||
|
||||
import 'package:diplomaticquarterapp/core/service/er/er_service.dart';
|
||||
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
|
||||
import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/BranchView.dart';
|
||||
|
||||
import '../../../locator.dart';
|
||||
|
||||
class WeatherViewModel extends BaseViewModel {
|
||||
ErService _erService = locator<ErService>();
|
||||
|
||||
List<ProjectAvgERWaitingTime> get ProjectAvgERWaitingTimeModeList =>
|
||||
_erService.projectAvgERWaitingTimeModelList;
|
||||
|
||||
getProjectAvgERWaitingTimeOrders({int id, int projectID}) async {
|
||||
setState(ViewState.Busy);
|
||||
|
||||
if (id != null && projectID != null) {
|
||||
await _erService.getProjectAvgERWaitingTimeOrders(
|
||||
id: id, projectID: projectID);
|
||||
} else {
|
||||
await _erService.getProjectAvgERWaitingTimeOrders();
|
||||
}
|
||||
if (_erService.hasError) {
|
||||
error = _erService.error;
|
||||
setState(ViewState.Error);
|
||||
} else
|
||||
setState(ViewState.Idle);
|
||||
}
|
||||
}
|
@ -0,0 +1,106 @@
|
||||
import 'package:diplomaticquarterapp/core/model/contactus/get_hmg_locations.dart';
|
||||
import 'package:diplomaticquarterapp/core/viewModels/contactus/findus_view_model.dart';
|
||||
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
|
||||
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.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:diplomaticquarterapp/widgets/slider/slider.dart';
|
||||
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_xlider/flutter_xlider.dart';
|
||||
import 'package:giffy_dialog/giffy_dialog.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
import 'package:maps_launcher/maps_launcher.dart';
|
||||
|
||||
class HealthWeatherIndicator extends StatefulWidget {
|
||||
|
||||
|
||||
@override
|
||||
_HospitalsPageState createState() => _HospitalsPageState();
|
||||
}
|
||||
|
||||
class _HospitalsPageState extends State<HealthWeatherIndicator> {
|
||||
LinearGradient gradient = LinearGradient(
|
||||
colors: <Color> [
|
||||
Colors.red,
|
||||
Colors.orange,
|
||||
Colors.yellow,
|
||||
Colors.green,
|
||||
Colors.blue,
|
||||
Colors.blue[900],
|
||||
Colors.purple
|
||||
]
|
||||
);
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return AppScaffold(
|
||||
isShowDecPage: false,
|
||||
appBarTitle: TranslationBase.of(context).healthWeatherIndicators,
|
||||
isShowAppBar: true,
|
||||
body: SingleChildScrollView(
|
||||
child: Column(children: [
|
||||
WeatherSlider(.4, LinearGradient(colors: [Colors.redAccent[100],Colors.redAccent ])),
|
||||
WeatherSlider(.6, LinearGradient(colors: [Colors.greenAccent[100],Colors.greenAccent ])),
|
||||
WeatherSlider(.8, LinearGradient(colors: [Colors.yellowAccent[100],Colors.yellowAccent ])),
|
||||
])
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class WeatherSlider extends StatelessWidget{
|
||||
final width;
|
||||
final LinearGradient color;
|
||||
WeatherSlider(this.width, this.color);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
// TODO: implement build
|
||||
return Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
AppText('Low', fontSize: 24,),
|
||||
|
||||
Padding(
|
||||
padding: EdgeInsets.all(10),
|
||||
child:
|
||||
Stack(
|
||||
children: [
|
||||
Container(
|
||||
decoration: BoxDecoration(gradient: LinearGradient(colors: [Colors.grey[100],Colors.grey[400] ]),
|
||||
borderRadius: BorderRadius.circular(10)
|
||||
),
|
||||
height: 15, width: MediaQuery.of(context).size.width,
|
||||
child:SizedBox(),
|
||||
),
|
||||
Positioned(
|
||||
top:0,
|
||||
child: Container(
|
||||
decoration: BoxDecoration(gradient: color,
|
||||
borderRadius: BorderRadius.circular(10)
|
||||
),
|
||||
height: 15,
|
||||
width: MediaQuery.of(context).size.width * width,
|
||||
padding: EdgeInsets.all(10),
|
||||
child:SizedBox(),
|
||||
|
||||
)),
|
||||
|
||||
],
|
||||
)),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
AppText('Low', fontSize: 12,),
|
||||
AppText('Moderate', fontSize: 12,),
|
||||
AppText('High', fontSize: 12,),
|
||||
AppText('Very High', fontSize: 12,),
|
||||
AppText('Extreme', fontSize: 12,),
|
||||
],)
|
||||
],);
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
|
||||
|
||||
class WeatherSlider extends StatelessWidget{
|
||||
final width;
|
||||
final LinearGradient color;
|
||||
WeatherSlider(this.width, this.color);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
// TODO: implement build
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
AppText('Low', fontSize: 24,),
|
||||
|
||||
Padding(
|
||||
padding: EdgeInsets.all(10),
|
||||
child:
|
||||
Stack(
|
||||
children: [
|
||||
Container(
|
||||
decoration: BoxDecoration(gradient: LinearGradient(colors: [Colors.grey[100],Colors.grey[400] ]),
|
||||
borderRadius: BorderRadius.circular(10)
|
||||
),
|
||||
height: 15, width: MediaQuery.of(context).size.width,
|
||||
child:SizedBox(),
|
||||
),
|
||||
Positioned(
|
||||
top:0,
|
||||
child: Container(
|
||||
decoration: BoxDecoration(gradient: color,
|
||||
borderRadius: BorderRadius.circular(10)
|
||||
),
|
||||
height: 15,
|
||||
width: MediaQuery.of(context).size.width * width,
|
||||
padding: EdgeInsets.all(10),
|
||||
child:SizedBox(),
|
||||
|
||||
)),
|
||||
|
||||
],
|
||||
)),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
AppText('Low', fontSize: 12,),
|
||||
AppText('Moderate', fontSize: 12,),
|
||||
AppText('High', fontSize: 12,),
|
||||
AppText('Very High', fontSize: 12,),
|
||||
AppText('Extreme', fontSize: 12,),
|
||||
],)
|
||||
],);
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue