Blame view

lib/pages/shop/exchane/exchange_lesson_page.dart 5.36 KB
d1d32220   liangchengyou   feat:兑换课程+购买记录
1
2
  import 'package:flutter/material.dart';
  import 'package:flutter_bloc/flutter_bloc.dart';
d1d32220   liangchengyou   feat:兑换课程+购买记录
3
4
5
  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';
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
6
  import 'package:wow_english/pages/home/event.dart';
608c05b4   liangchengyou   feat:兑换课程
7
  import 'package:wow_english/pages/shop/exchane/widegts/exchange_result_dialog.dart';
d1d32220   liangchengyou   feat:兑换课程+购买记录
8
  import 'package:wow_english/route/route.dart';
d1d32220   liangchengyou   feat:兑换课程+购买记录
9
  
5b87e560   吴启风   feat:导航栏视觉优化
10
  import '../../../common/widgets/we_app_bar.dart';
d1d32220   liangchengyou   feat:兑换课程+购买记录
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
  import 'bloc/exchange_lesson_bloc.dart';
  
  class ExchangeLessonPage extends StatelessWidget {
    const ExchangeLessonPage({super.key});
  
    @override
    Widget build(BuildContext context) {
      return BlocProvider(
        create: (context) => ExchangeLessonBloc(),
        child: _ExchangeLessonPage(),
      );
    }
  }
  
  class _ExchangeLessonPage extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
c61b3c1a   Key   feat: toast_util....
28
29
      return BlocListener<ExchangeLessonBloc, ExchangeLessonState>(
        listener: (context, state) {
d1d32220   liangchengyou   feat:兑换课程+购买记录
30
          if (state is CheckCodeResultState) {
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
31
32
            final bloc = BlocProvider.of<ExchangeLessonBloc>(context);
            bloc.exchangeSuccess = state.result;
608c05b4   liangchengyou   feat:兑换课程
33
34
35
            showDialog<ExChangeResultDialog>(
                context: context,
                barrierDismissible: !state.result,
5b87e560   吴启风   feat:导航栏视觉优化
36
                builder: (context) {
608c05b4   liangchengyou   feat:兑换课程
37
                  return ExChangeResultDialog(
5b87e560   吴启风   feat:导航栏视觉优化
38
39
                      resultType: state.result,
                      onTap: () {
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
40
                        popPage(data: {'exchange': bloc.exchangeSuccess});
5b87e560   吴启风   feat:导航栏视觉优化
41
42
                      });
                });
d1d32220   liangchengyou   feat:兑换课程+购买记录
43
44
45
46
47
48
          }
        },
        child: _exchangeLessonPageView(),
      );
    }
  
5b87e560   吴启风   feat:导航栏视觉优化
49
50
51
    Widget _exchangeLessonPageView() =>
        BlocBuilder<ExchangeLessonBloc, ExchangeLessonState>(
            builder: (context, state) {
d1d32220   liangchengyou   feat:兑换课程+购买记录
52
53
          final bloc = BlocProvider.of<ExchangeLessonBloc>(context);
          return Scaffold(
5b87e560   吴启风   feat:导航栏视觉优化
54
55
              resizeToAvoidBottomInset: false,
              body: Stack(
d1d32220   liangchengyou   feat:兑换课程+购买记录
56
                children: [
5b87e560   吴启风   feat:导航栏视觉优化
57
58
59
60
                  Container(
                    color: Colors.white,
                    child: Column(
                      mainAxisAlignment: MainAxisAlignment.center,
d1d32220   liangchengyou   feat:兑换课程+购买记录
61
                      children: [
5b87e560   吴启风   feat:导航栏视觉优化
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
                        10.5.verticalSpace,
                        Padding(
                          padding: EdgeInsets.symmetric(horizontal: 15.w),
                          child: Center(
                            child: Image.asset(
                              'wow_ex_lesson'.assetPng,
                              width: 139.w,
                              height: 81.h,
                            ),
                          ),
                        ),
                        Expanded(
                          child: Padding(
                            padding: EdgeInsets.symmetric(horizontal: 135.w),
                            child: Column(
                              mainAxisAlignment: MainAxisAlignment.center,
                              children: [
                                TextFieldCustomerWidget(
                                  height: 55.h,
                                  hitText: '请输入兑换码',
                                  bgImageName: 'Input_layer_up',
                                  textInputType: TextInputType.emailAddress,
                                  controller: bloc.codeNumberController,
                                  onChangeValue: (String value) {
                                    bloc.add(CodeNumberChangeEvent());
                                  },
                                ),
                                21.5.verticalSpace,
                                GestureDetector(
                                  onTap: () {
                                    if (bloc.checkCode) {
                                      bloc.add(CheckCodeEvent());
                                    }
                                  },
                                  child: Container(
                                    decoration: BoxDecoration(
                                      image: DecorationImage(
                                          image: AssetImage(bloc.checkCode
                                              ? 'ex_sure'.assetPng
                                              : 'ex_dis'.assetPng),
                                          fit: BoxFit.fill),
                                    ),
                                    padding: EdgeInsets.symmetric(
                                        horizontal: 27.w, vertical: 14.h),
                                    child: Text(
                                      '兑换',
                                      style: TextStyle(
                                          fontSize: 16.sp, color: Colors.white),
                                    ),
                                  ),
                                )
                              ],
                            ),
d1d32220   liangchengyou   feat:兑换课程+购买记录
115
                          ),
d1d32220   liangchengyou   feat:兑换课程+购买记录
116
117
                        ),
                        Image.asset(
5b87e560   吴启风   feat:导航栏视觉优化
118
                          'bottom_grass'.assetPng,
d1d32220   liangchengyou   feat:兑换课程+购买记录
119
                        ),
d1d32220   liangchengyou   feat:兑换课程+购买记录
120
121
122
                      ],
                    ),
                  ),
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
123
                  Positioned(
5b87e560   吴启风   feat:导航栏视觉优化
124
125
126
127
128
                    top: 0,
                    left: 0,
                    right: 0,
                    child: WEAppBar(
                      backgroundColor: Colors.transparent,
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
129
130
131
                      onBack: () {
                        popPage(data: {'exchange': bloc.exchangeSuccess});
                      },
d1d32220   liangchengyou   feat:兑换课程+购买记录
132
133
                    ),
                  ),
d1d32220   liangchengyou   feat:兑换课程+购买记录
134
                ],
5b87e560   吴启风   feat:导航栏视觉优化
135
              ));
d1d32220   liangchengyou   feat:兑换课程+购买记录
136
        });
c61b3c1a   Key   feat: toast_util....
137
  }