提交 69ec597e authored 作者: yueweilu's avatar yueweilu

Merge remote-tracking branch 'origin/test' into test

...@@ -6,13 +6,13 @@ class UserOrderEvaluateController extends GetxController { ...@@ -6,13 +6,13 @@ class UserOrderEvaluateController extends GetxController {
late OrderInfoModel orderInfoModel = OrderInfoModel(); late OrderInfoModel orderInfoModel = OrderInfoModel();
String orderNum; String orderNum;
UserOrderEvaluateController(this.orderNum); // 已完成订单 UserOrderEvaluateController(this.orderNum); // 已完成订单
final TextEditingController commentsInput = TextEditingController(); TextEditingController commentsInput = TextEditingController();
late List<TextEditingController> _commentsControllers;
final FocusNode _focusNode = FocusNode(); final FocusNode _focusNode = FocusNode();
// 按钮是否可用 // 按钮是否可用
bool _enable = false; bool _enable = false;
bool get enable => _enable; bool get enable => _enable;
@override @override
void onReady() { void onReady() {
getOrderInfo(); getOrderInfo();
...@@ -22,6 +22,10 @@ class UserOrderEvaluateController extends GetxController { ...@@ -22,6 +22,10 @@ class UserOrderEvaluateController extends GetxController {
/// 获取订单信息 /// 获取订单信息
Future<void> getOrderInfo() async { Future<void> getOrderInfo() async {
orderInfoModel = await MineAPI.getOrderInfo(orderNum: orderNum); orderInfoModel = await MineAPI.getOrderInfo(orderNum: orderNum);
_commentsControllers = List.generate(
orderInfoModel.bookList!.length,
(index) => TextEditingController(text: orderInfoModel.bookList![index].comments.toString()),
);
update(); update();
} }
...@@ -35,7 +39,7 @@ class UserOrderEvaluateController extends GetxController { ...@@ -35,7 +39,7 @@ class UserOrderEvaluateController extends GetxController {
} }
void setCanClick({num double=0}){ void setCanClick({num double=0}){
if (double > 0 || commentsInput.text!=''){ if (double > 0){
_enable = true; _enable = true;
} }
else{ else{
...@@ -44,6 +48,11 @@ class UserOrderEvaluateController extends GetxController { ...@@ -44,6 +48,11 @@ class UserOrderEvaluateController extends GetxController {
update(); update();
} }
void updateText(String text){
commentsInput =TextEditingController(text: text);
// update();
}
@override @override
void onClose() { void onClose() {
commentsInput.dispose(); commentsInput.dispose();
......
...@@ -17,11 +17,14 @@ class UserOrderEvaluatePage extends StatefulWidget { ...@@ -17,11 +17,14 @@ class UserOrderEvaluatePage extends StatefulWidget {
class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> with AutomaticKeepAliveClientMixin{ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> with AutomaticKeepAliveClientMixin{
// late UserOrderEvaluateController myController; // late UserOrderEvaluateController myController;
// TextEditingController commentsInput = TextEditingController();
List<OrderEvaluate> orderEvaluates = []; List<OrderEvaluate> orderEvaluates = [];
List<double> ratings = []; List<double> ratings = [];
@override @override
void initState() { void initState() {
// myController = Get.put(UserOrderEvaluateController(widget.orderNum)); // myController = Get.put(UserOrderEvaluateController(widget.orderNum));
super.initState(); super.initState();
} }
...@@ -36,58 +39,60 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> with Auto ...@@ -36,58 +39,60 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> with Auto
centerTitle: true, centerTitle: true,
title: const Text('订单评价'), title: const Text('订单评价'),
), ),
body:(controller.orderInfoModel==null ||controller.orderInfoModel.bookList==null)? body:
Container( GestureDetector(
alignment: Alignment.center, onTap: () {
child: const CircularProgressIndicator(),): controller._focusNode.unfocus();
Column( },
children: [ child: (controller.orderInfoModel==null ||controller.orderInfoModel.bookList==null)?
Expanded( Container(
child: Container(child: SingleChildScrollView( alignment: Alignment.center,
child: Column( child: const CircularProgressIndicator(),):
children: [ Column(
ListView.builder( children: [
physics: const NeverScrollableScrollPhysics(), Expanded(
shrinkWrap: true, child: SingleChildScrollView(
itemBuilder: (BuildContext context, int index) { child: Column(
return listItem( children: [
controller.orderInfoModel.bookList![index],index,controller ListView.builder(
/*orderEvaluates,*//*controllers*/); physics: const NeverScrollableScrollPhysics(),
}, shrinkWrap: true,
itemCount: itemBuilder: (BuildContext context, int index) {
controller.orderInfoModel.bookList?.length,
), return listItem(
], controller.orderInfoModel.bookList![index],index,controller
/*orderEvaluates,*//*controllers*/);
},
itemCount: controller.orderInfoModel.bookList?.length,
),
],
),
), ),
),),
),
SizedBox(
height: 26.w,
),
Container(
margin: EdgeInsets.symmetric(horizontal: 10.w),
child: CustomGradientButton(
text: '提交评价',
isEnabled: controller.enable,
onPressed: () {
controller._focusNode.unfocus();
for(int i=0;i<orderEvaluates.length;i++){
// orderEvaluates[i].comments=controllers[i].text.toString();
}
print(jsonEncode(orderEvaluates));
controller.UpOrderEvaluate(jsonEncode(orderEvaluates));
},
), ),
), SizedBox(
SizedBox( height: 26.w,
height: 41.w, ),
) Container(
], margin: EdgeInsets.symmetric(horizontal: 10.w),
child: CustomGradientButton(
text: '提交评价',
isEnabled: controller.enable,
onPressed: () {
controller._focusNode.unfocus();
for(int i=0;i<orderEvaluates.length;i++){
// orderEvaluates[i].comments=controllers[i].text.toString();
}
print(jsonEncode(orderEvaluates));
controller.UpOrderEvaluate(jsonEncode(orderEvaluates));
},
),
),
SizedBox(
height: 41.w,
)
],
),
), ),
),); ),);
...@@ -95,8 +100,9 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> with Auto ...@@ -95,8 +100,9 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> with Auto
} }
Widget listItem(BookListModel bookListModel,int index,UserOrderEvaluateController myController) { Widget listItem(BookListModel bookListModel,int index,UserOrderEvaluateController myController) {
// myController.updateText(bookListModel.comments.toString());
int indexToUpdate = orderEvaluates.indexWhere((obj) => obj.recordId == bookListModel.recordId); int indexToUpdate = orderEvaluates.indexWhere((obj) => obj.recordId == bookListModel.recordId);
myController.commentsInput.text =bookListModel.comments.toString();
if(indexToUpdate==-1){ if(indexToUpdate==-1){
OrderEvaluate evaluate = OrderEvaluate(recordId: bookListModel.recordId,rating: bookListModel.rating,comments: bookListModel.comments); OrderEvaluate evaluate = OrderEvaluate(recordId: bookListModel.recordId,rating: bookListModel.rating,comments: bookListModel.comments);
orderEvaluates.add(evaluate); orderEvaluates.add(evaluate);
...@@ -191,7 +197,7 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> with Auto ...@@ -191,7 +197,7 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> with Auto
absorbing: false, absorbing: false,
child: CustomRating( child: CustomRating(
max: 5, max: 5,
score:bookListModel.rating !=null ?bookListModel.rating!.toDouble():0, score:bookListModel.rating !=null ?bookListModel.rating!.toDouble():0,
star: Star( star: Star(
fat: 0.5, fat: 0.5,
progress: 3, progress: 3,
...@@ -209,7 +215,6 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> with Auto ...@@ -209,7 +215,6 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> with Auto
], ],
), ),
TextField( TextField(
controller: myController.commentsInput,
style: style:
TextStyle(fontSize: 14.w, color: Colours.c3), TextStyle(fontSize: 14.w, color: Colours.c3),
decoration: InputDecoration( decoration: InputDecoration(
...@@ -223,16 +228,17 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> with Auto ...@@ -223,16 +228,17 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> with Auto
fontSize: 14.w, height: 1.5, color: Colours.c6)), fontSize: 14.w, height: 1.5, color: Colours.c6)),
maxLines: 5, maxLines: 5,
onChanged: (text){ onChanged: (text){
myController.setCanClick(); orderEvaluates[index].comments=myController._commentsControllers[index].text;
orderEvaluates[index].comments=myController.commentsInput.text; myController.setCanClick(double:orderEvaluates[index].rating??0);
}, },
focusNode: myController._focusNode, focusNode: myController._focusNode,
// onTap: () { controller: myController._commentsControllers[index],
// // 在文本框获取焦点时,将光标移动到文本末尾 onTap: () {
// myController.commentsInput.selection = TextSelection.fromPosition( // 在文本框获取焦点时,将光标移动到文本末尾
// TextPosition(offset: myController.commentsInput.text.length), myController._commentsControllers[index].selection = TextSelection.fromPosition(
// ); TextPosition(offset: myController._commentsControllers[index].text.length),
// }, );
},
), ),
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论