You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
aku_new_community/lib/ui/manager/advice/advice_evaluate_page.dart

90 lines
2.9 KiB

// Flutter imports:
import 'package:flutter/material.dart';
// Package imports:
import 'package:flutter_rating_bar/flutter_rating_bar.dart';
import 'package:get/get.dart';
import 'package:velocity_x/velocity_x.dart';
// Project imports:
import 'package:akuCommunity/base/base_style.dart';
import 'package:akuCommunity/constants/api.dart';
import 'package:akuCommunity/utils/headers.dart';
import 'package:akuCommunity/utils/network/base_model.dart';
import 'package:akuCommunity/utils/network/net_util.dart';
import 'package:akuCommunity/widget/bee_scaffold.dart';
class AdviceEvaluatePage extends StatefulWidget {
final int id;
AdviceEvaluatePage({Key key, @required this.id}) : super(key: key);
@override
_AdviceEvaluatePageState createState() => _AdviceEvaluatePageState();
}
class _AdviceEvaluatePageState extends State<AdviceEvaluatePage> {
int _rating = 10;
@override
Widget build(BuildContext context) {
return BeeScaffold(
title: '评价',
body: ListView(
padding: EdgeInsets.all(32.w),
children: [
VxBox(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
'请您对本次服务进行评价'.text.size(28.sp).color(Color(0xFF999999)).make(),
50.hb,
Row(
children: [
'综合评价'.text.size(28.sp).color(Color(0xFF999999)).make(),
50.wb,
RatingBar.builder(
initialRating: _rating / 2,
minRating: 0.5,
direction: Axis.horizontal,
allowHalfRating: true,
itemCount: 5,
// itemPadding: EdgeInsets.symmetric(horizontal: 16.w),
itemBuilder: (context, _) => Icon(
Icons.star_border_rounded,
color: kPrimaryColor,
),
itemSize: 64.w,
onRatingUpdate: (rating) {
_rating = (rating * 2).floor();
},
glow: false,
)
],
),
],
),
).padding(EdgeInsets.all(32.w)).white.make(),
42.hb,
MaterialButton(
height: 96.w,
shape: StadiumBorder(),
color: kPrimaryColor,
elevation: 0,
onPressed: () async {
BaseModel baseModel = await NetUtil().post(
API.manager.adviceEvaluate,
params: {'id': widget.id, 'score': _rating},
showMessage: true,
);
if (baseModel.status) {
Get.back();
Get.back();
}
},
child: '确认'.text.bold.size(32.sp).make(),
),
],
),
);
}
}