Commit da2bb64cbeb76eb9b84a45b317d2825e214b45ed

Authored by 吴启风
1 parent 8d581dd2

fix: 修复兑换失败提示未展示后端信息

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),
... ...