Commit da2bb64cbeb76eb9b84a45b317d2825e214b45ed
1 parent
8d581dd2
fix: 修复兑换失败提示未展示后端信息
Showing
4 changed files
with
16 additions
and
5 deletions
lib/pages/shop/exchane/bloc/exchange_lesson_bloc.dart
| 1 | 1 | import 'package:flutter/cupertino.dart'; |
| 2 | 2 | import 'package:flutter_bloc/flutter_bloc.dart'; |
| 3 | 3 | import 'package:wow_english/common/request/dao/user_dao.dart'; |
| 4 | +import 'package:wow_english/common/request/exception.dart'; | |
| 4 | 5 | import 'package:wow_english/utils/loading.dart'; |
| 5 | 6 | |
| 6 | 7 | import 'package:wow_english/common/core/user_util.dart'; |
| ... | ... | @@ -57,7 +58,8 @@ class ExchangeLessonBloc |
| 57 | 58 | }); |
| 58 | 59 | } catch (e) { |
| 59 | 60 | exchangeSuccess = false; |
| 60 | - emitter(CheckCodeResultState(false)); | |
| 61 | + final message = e is ApiException ? e.message : null; | |
| 62 | + emitter(CheckCodeResultState(false, message: message)); | |
| 61 | 63 | } |
| 62 | 64 | } |
| 63 | 65 | } | ... | ... |
lib/pages/shop/exchane/bloc/exchange_lesson_state.dart
| ... | ... | @@ -9,5 +9,6 @@ class CheckCodeTypeChangeState extends ExchangeLessonState {} |
| 9 | 9 | //验证兑换码结果 |
| 10 | 10 | class CheckCodeResultState extends ExchangeLessonState { |
| 11 | 11 | final bool result; |
| 12 | - CheckCodeResultState(this.result); | |
| 12 | + final String? message; | |
| 13 | + CheckCodeResultState(this.result, {this.message}); | |
| 13 | 14 | } | ... | ... |
lib/pages/shop/exchane/exchange_lesson_page.dart
| ... | ... | @@ -3,7 +3,6 @@ import 'package:flutter_bloc/flutter_bloc.dart'; |
| 3 | 3 | import 'package:flutter_screenutil/flutter_screenutil.dart'; |
| 4 | 4 | import 'package:wow_english/common/extension/string_extension.dart'; |
| 5 | 5 | import 'package:wow_english/common/widgets/textfield_customer_widget.dart'; |
| 6 | -import 'package:wow_english/pages/home/event.dart'; | |
| 7 | 6 | import 'package:wow_english/pages/shop/exchane/widegts/exchange_result_dialog.dart'; |
| 8 | 7 | import 'package:wow_english/route/route.dart'; |
| 9 | 8 | |
| ... | ... | @@ -36,6 +35,7 @@ class _ExchangeLessonPage extends StatelessWidget { |
| 36 | 35 | builder: (context) { |
| 37 | 36 | return ExChangeResultDialog( |
| 38 | 37 | resultType: state.result, |
| 38 | + message: state.message, | |
| 39 | 39 | onTap: () { |
| 40 | 40 | popPage(data: {'exchange': bloc.exchangeSuccess}); |
| 41 | 41 | }); | ... | ... |
lib/pages/shop/exchane/widegts/exchange_result_dialog.dart
| ... | ... | @@ -3,9 +3,15 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; |
| 3 | 3 | import 'package:wow_english/common/extension/string_extension.dart'; |
| 4 | 4 | |
| 5 | 5 | class ExChangeResultDialog extends Dialog { |
| 6 | - const ExChangeResultDialog({super.key,required this.resultType,required this.onTap}); | |
| 6 | + const ExChangeResultDialog({ | |
| 7 | + super.key, | |
| 8 | + required this.resultType, | |
| 9 | + required this.onTap, | |
| 10 | + this.message, | |
| 11 | + }); | |
| 7 | 12 | final bool resultType; |
| 8 | 13 | final Function() onTap; |
| 14 | + final String? message; | |
| 9 | 15 | @override |
| 10 | 16 | Widget build(BuildContext context) { |
| 11 | 17 | super.build(context); |
| ... | ... | @@ -70,6 +76,8 @@ class ExChangeResultDialog extends Dialog { |
| 70 | 76 | } |
| 71 | 77 | |
| 72 | 78 | Widget _failWidget() { |
| 79 | + final failMessage = | |
| 80 | + message?.isNotEmpty == true ? message! : '兑换失败,请查看兑换码是否正确或兑换码是否在有效期内'; | |
| 73 | 81 | return Column( |
| 74 | 82 | mainAxisAlignment: MainAxisAlignment.spaceAround, |
| 75 | 83 | children: [ |
| ... | ... | @@ -79,7 +87,7 @@ class ExChangeResultDialog extends Dialog { |
| 79 | 87 | width: 75.w, |
| 80 | 88 | ), |
| 81 | 89 | Text( |
| 82 | - '兑换失败,请查看兑换码是否正确或兑换码是否在有效期内', | |
| 90 | + failMessage, | |
| 83 | 91 | textAlign: TextAlign.center, |
| 84 | 92 | style: TextStyle( |
| 85 | 93 | color: const Color(0xFF333333), | ... | ... |