survey updates

merge-requests/187/head
haroon amjad 3 years ago
parent 1dca3076d9
commit 1f369e9122

@ -24,7 +24,7 @@ class SurveyScreen extends StatefulWidget {
class _SurveyScreenState extends State<SurveyScreen> { class _SurveyScreenState extends State<SurveyScreen> {
String reviewText = ""; String reviewText = "";
double starRating = 1; double starRating = 1;
int _selectedIndex = 5; int _selectedIndex = 0;
ItgResponseData? itgResponseData; ItgResponseData? itgResponseData;
@ -46,80 +46,29 @@ class _SurveyScreenState extends State<SurveyScreen> {
body: Column( body: Column(
children: [ children: [
Expanded( Expanded(
child: Padding( child: ListView(
padding: const EdgeInsets.all(16.0), children: [
child: Column( Padding(
// crossAxisAlignment: CrossAxisAlignment.start, padding: const EdgeInsets.all(16.0),
children: [ child: Column(
32.height, children: [
itgResponseData?.survey?.title?.toText24() ?? const Text(""), 32.height,
8.height, itgResponseData?.survey?.title?.toText24() ?? const Text(""),
itgResponseData?.survey?.description?.toText16() ?? const Text(""), 8.height,
itgResponseData?.survey?.description?.toText16() ?? const Text(""),
ListView.builder( ListView.builder(
padding: EdgeInsets.zero, padding: EdgeInsets.zero,
shrinkWrap: true, shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(), physics: const NeverScrollableScrollPhysics(),
itemCount: itgResponseData?.survey?.questions?.length, itemCount: itgResponseData?.survey?.questions?.length,
itemBuilder: (cxt, index) { itemBuilder: (cxt, index) {
// return itgResponseData?.survey?.questions?[index].title?.toText14() ?? const Text(""); return answeredQuestions.isNotEmpty ? getSurveyWidget(itgResponseData?.survey?.questions![index], index) : Container();
return answeredQuestions.isNotEmpty ? getSurveyWidget(itgResponseData?.survey?.questions![index], index) : Container(); },
}, ),
), ],
).paddingOnly(left: 21, right: 21),
// LocaleKeys.feedbackUserExperience.tr().toText19(), ),
// 27.height, ],
// LocaleKeys.rateUI.tr().toText16(),
// 22.height,
// Row(
// crossAxisAlignment: CrossAxisAlignment.center,
// mainAxisAlignment: MainAxisAlignment.center,
// children: [
// RatingBar.builder(
// initialRating: 3,
// minRating: starRating,
// direction: Axis.horizontal,
// allowHalfRating: false,
// itemCount: 5,
// itemPadding: EdgeInsets.symmetric(horizontal: 8),
// itemBuilder: (context, _) => Icon(
// Icons.star,
// color: Colors.amber,
// ),
// onRatingUpdate: (rating) {
// starRating = rating;
// },
// )
// ],
// ).paddingOnly(left: 22, right: 22, top: 12, bottom: 12).objectContainerView(disablePadding: true),
// 39.height,
// LocaleKeys.rateUI2.tr().toText16(),
// 10.height,
// GridView(
// gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 5, crossAxisSpacing: 7, mainAxisSpacing: 7),
// physics: const NeverScrollableScrollPhysics(),
// padding: const EdgeInsets.only(top: 0),
// shrinkWrap: true,
// children: [
// optionUI("poor.svg", 1),
// optionUI("bad.svg", 2),
// optionUI("normal.svg", 3),
// optionUI("good.svg", 4),
// optionUI("xcellent.svg", 5),
// ],
// ),
// 27.height,
// DynamicTextFieldWidget(
// LocaleKeys.description.tr(),
// LocaleKeys.typeHere.tr(),
// lines: 3,
// onChange: (v) {
// reviewText = v;
// },
// ),
// 150.height
],
).paddingOnly(left: 21, right: 21),
)), )),
DefaultButton( DefaultButton(
LocaleKeys.submitSurvey.tr(), LocaleKeys.submitSurvey.tr(),
@ -156,6 +105,9 @@ class _SurveyScreenState extends State<SurveyScreen> {
answeredQuestions.clear(); answeredQuestions.clear();
itgResponseData?.survey?.questions?.forEach((element) { itgResponseData?.survey?.questions?.forEach((element) {
if (element.type != "Stars") { if (element.type != "Stars") {
if(element.type == "Faces") {
_selectedIndex = element.options![0].optionId!;
}
answeredQuestions.add(element.options![0].optionId.toString()); answeredQuestions.add(element.options![0].optionId.toString());
} else { } else {
answeredQuestions.add("3"); answeredQuestions.add("3");
@ -172,24 +124,18 @@ class _SurveyScreenState extends State<SurveyScreen> {
24.height, 24.height,
question?.title?.toText18() ?? const Text(""), question?.title?.toText18() ?? const Text(""),
16.height, 16.height,
Row( GridView.builder(
crossAxisAlignment: CrossAxisAlignment.center, padding: EdgeInsets.zero,
mainAxisAlignment: MainAxisAlignment.center, itemCount: question?.options?.length,
children: [ shrinkWrap: true,
SizedBox( physics: const NeverScrollableScrollPhysics(),
height: 50.0, itemBuilder: (context, index) {
child: ListView.builder( return radioOption(question?.options?[index].title ?? "", question?.options?[index].optionId.toString() ?? "", answeredQuestions[parentIndex], parentIndex);
scrollDirection: Axis.horizontal, },
padding: EdgeInsets.zero, gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
shrinkWrap: true, crossAxisCount: 2,
physics: const NeverScrollableScrollPhysics(), childAspectRatio: (4.0),
itemCount: question?.options?.length, ),
itemBuilder: (cxt, index) {
return radioOption(question?.options?[index].title ?? "", question?.options?[index].optionId.toString() ?? "", answeredQuestions[parentIndex], parentIndex);
},
),
),
],
).paddingOnly(left: 22, right: 22, top: 12, bottom: 12).objectContainerView(disablePadding: true), ).paddingOnly(left: 22, right: 22, top: 12, bottom: 12).objectContainerView(disablePadding: true),
], ],
); );
@ -207,8 +153,8 @@ class _SurveyScreenState extends State<SurveyScreen> {
direction: Axis.horizontal, direction: Axis.horizontal,
allowHalfRating: false, allowHalfRating: false,
itemCount: 5, itemCount: 5,
itemPadding: EdgeInsets.symmetric(horizontal: 8), itemPadding: const EdgeInsets.symmetric(horizontal: 8),
itemBuilder: (context, _) => Icon( itemBuilder: (context, _) => const Icon(
Icons.star, Icons.star,
color: Colors.amber, color: Colors.amber,
), ),
@ -262,15 +208,8 @@ class _SurveyScreenState extends State<SurveyScreen> {
index++; index++;
}); });
ItgMainRes? res = await DashboardApiClient().submitItgForm( ItgMainRes? res = await DashboardApiClient()
comment: reviewText, .submitItgForm(comment: reviewText, masterId: itgResponseData!.notificationMasterId ?? "", itgList: itgAnswersList, serviceId: itgResponseData!.survey!.surveyId ?? 0);
masterId: itgResponseData!.notificationMasterId ?? "",
// itgList: [
// {"questionId": "1", "optionId": null, "starRating": starRating},
// {"questionId": "2", "optionId": "4", "starRating": _selectedIndex}
// ],
itgList: itgAnswersList,
serviceId: itgResponseData!.survey!.surveyId ?? 0);
Utils.hideLoading(context); Utils.hideLoading(context);
if (res!.mohemmItgResponseItem!.statusCode == 200) { if (res!.mohemmItgResponseItem!.statusCode == 200) {
@ -289,6 +228,8 @@ class _SurveyScreenState extends State<SurveyScreen> {
Widget radioOption(String title, String value, String groupValue, int answerIndex) { Widget radioOption(String title, String value, String groupValue, int answerIndex) {
return Row( return Row(
mainAxisAlignment: MainAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [ children: [
Container( Container(
width: 24, width: 24,

Loading…
Cancel
Save