From da2bb64cbeb76eb9b84a45b317d2825e214b45ed Mon Sep 17 00:00:00 2001 From: wuqifeng <540416539@qq.com> Date: Mon, 29 Jun 2026 21:32:37 +0800 Subject: [PATCH] fix: 修复兑换失败提示未展示后端信息 --- lib/pages/shop/exchane/bloc/exchange_lesson_bloc.dart | 4 +++- lib/pages/shop/exchane/bloc/exchange_lesson_state.dart | 3 ++- lib/pages/shop/exchane/exchange_lesson_page.dart | 2 +- lib/pages/shop/exchane/widegts/exchange_result_dialog.dart | 12 ++++++++++-- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/lib/pages/shop/exchane/bloc/exchange_lesson_bloc.dart b/lib/pages/shop/exchane/bloc/exchange_lesson_bloc.dart index 10c7ff9..282669c 100644 --- a/lib/pages/shop/exchane/bloc/exchange_lesson_bloc.dart +++ b/lib/pages/shop/exchane/bloc/exchange_lesson_bloc.dart @@ -1,6 +1,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:wow_english/common/request/dao/user_dao.dart'; +import 'package:wow_english/common/request/exception.dart'; import 'package:wow_english/utils/loading.dart'; import 'package:wow_english/common/core/user_util.dart'; @@ -57,7 +58,8 @@ class ExchangeLessonBloc }); } catch (e) { exchangeSuccess = false; - emitter(CheckCodeResultState(false)); + final message = e is ApiException ? e.message : null; + emitter(CheckCodeResultState(false, message: message)); } } } diff --git a/lib/pages/shop/exchane/bloc/exchange_lesson_state.dart b/lib/pages/shop/exchane/bloc/exchange_lesson_state.dart index 71ddfe1..b8222dd 100644 --- a/lib/pages/shop/exchane/bloc/exchange_lesson_state.dart +++ b/lib/pages/shop/exchane/bloc/exchange_lesson_state.dart @@ -9,5 +9,6 @@ class CheckCodeTypeChangeState extends ExchangeLessonState {} //验证兑换码结果 class CheckCodeResultState extends ExchangeLessonState { final bool result; - CheckCodeResultState(this.result); + final String? message; + CheckCodeResultState(this.result, {this.message}); } diff --git a/lib/pages/shop/exchane/exchange_lesson_page.dart b/lib/pages/shop/exchane/exchange_lesson_page.dart index ea60068..bdb9ebc 100644 --- a/lib/pages/shop/exchane/exchange_lesson_page.dart +++ b/lib/pages/shop/exchane/exchange_lesson_page.dart @@ -3,7 +3,6 @@ import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:wow_english/common/extension/string_extension.dart'; import 'package:wow_english/common/widgets/textfield_customer_widget.dart'; -import 'package:wow_english/pages/home/event.dart'; import 'package:wow_english/pages/shop/exchane/widegts/exchange_result_dialog.dart'; import 'package:wow_english/route/route.dart'; @@ -36,6 +35,7 @@ class _ExchangeLessonPage extends StatelessWidget { builder: (context) { return ExChangeResultDialog( resultType: state.result, + message: state.message, onTap: () { popPage(data: {'exchange': bloc.exchangeSuccess}); }); diff --git a/lib/pages/shop/exchane/widegts/exchange_result_dialog.dart b/lib/pages/shop/exchane/widegts/exchange_result_dialog.dart index 9e27ccb..80c0574 100644 --- a/lib/pages/shop/exchane/widegts/exchange_result_dialog.dart +++ b/lib/pages/shop/exchane/widegts/exchange_result_dialog.dart @@ -3,9 +3,15 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:wow_english/common/extension/string_extension.dart'; class ExChangeResultDialog extends Dialog { - const ExChangeResultDialog({super.key,required this.resultType,required this.onTap}); + const ExChangeResultDialog({ + super.key, + required this.resultType, + required this.onTap, + this.message, + }); final bool resultType; final Function() onTap; + final String? message; @override Widget build(BuildContext context) { super.build(context); @@ -70,6 +76,8 @@ class ExChangeResultDialog extends Dialog { } Widget _failWidget() { + final failMessage = + message?.isNotEmpty == true ? message! : '兑换失败,请查看兑换码是否正确或兑换码是否在有效期内'; return Column( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ @@ -79,7 +87,7 @@ class ExChangeResultDialog extends Dialog { width: 75.w, ), Text( - '兑换失败,请查看兑换码是否正确或兑换码是否在有效期内', + failMessage, textAlign: TextAlign.center, style: TextStyle( color: const Color(0xFF333333), -- libgit2 0.22.2