Blame view

lib/pages/shop/exchane/exchange_lesson_page.dart 5.04 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';
608c05b4   liangchengyou   feat:兑换课程
6
  import 'package:wow_english/pages/shop/exchane/widegts/exchange_result_dialog.dart';
d1d32220   liangchengyou   feat:兑换课程+购买记录
7
  import 'package:wow_english/route/route.dart';
d1d32220   liangchengyou   feat:兑换课程+购买记录
8
  
5b87e560   吴启风   feat:导航栏视觉优化
9
  import '../../../common/widgets/we_app_bar.dart';
d1d32220   liangchengyou   feat:兑换课程+购买记录
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  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....
27
28
      return BlocListener<ExchangeLessonBloc, ExchangeLessonState>(
        listener: (context, state) {
d1d32220   liangchengyou   feat:兑换课程+购买记录
29
          if (state is CheckCodeResultState) {
608c05b4   liangchengyou   feat:兑换课程
30
31
32
            showDialog<ExChangeResultDialog>(
                context: context,
                barrierDismissible: !state.result,
5b87e560   吴启风   feat:导航栏视觉优化
33
                builder: (context) {
608c05b4   liangchengyou   feat:兑换课程
34
                  return ExChangeResultDialog(
5b87e560   吴启风   feat:导航栏视觉优化
35
36
                      resultType: state.result,
                      onTap: () {
15987941   liangchengyou   feat:兑换码接口+本地密码加密
37
                        popPage();
5b87e560   吴启风   feat:导航栏视觉优化
38
39
                      });
                });
d1d32220   liangchengyou   feat:兑换课程+购买记录
40
41
42
43
44
45
          }
        },
        child: _exchangeLessonPageView(),
      );
    }
  
5b87e560   吴启风   feat:导航栏视觉优化
46
47
48
    Widget _exchangeLessonPageView() =>
        BlocBuilder<ExchangeLessonBloc, ExchangeLessonState>(
            builder: (context, state) {
d1d32220   liangchengyou   feat:兑换课程+购买记录
49
50
          final bloc = BlocProvider.of<ExchangeLessonBloc>(context);
          return Scaffold(
5b87e560   吴启风   feat:导航栏视觉优化
51
52
              resizeToAvoidBottomInset: false,
              body: Stack(
d1d32220   liangchengyou   feat:兑换课程+购买记录
53
                children: [
5b87e560   吴启风   feat:导航栏视觉优化
54
55
56
57
                  Container(
                    color: Colors.white,
                    child: Column(
                      mainAxisAlignment: MainAxisAlignment.center,
d1d32220   liangchengyou   feat:兑换课程+购买记录
58
                      children: [
5b87e560   吴启风   feat:导航栏视觉优化
59
60
61
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
                        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:兑换课程+购买记录
112
                          ),
d1d32220   liangchengyou   feat:兑换课程+购买记录
113
114
                        ),
                        Image.asset(
5b87e560   吴启风   feat:导航栏视觉优化
115
                          'bottom_grass'.assetPng,
d1d32220   liangchengyou   feat:兑换课程+购买记录
116
                        ),
d1d32220   liangchengyou   feat:兑换课程+购买记录
117
118
119
                      ],
                    ),
                  ),
5b87e560   吴启风   feat:导航栏视觉优化
120
121
122
123
124
125
                  const Positioned(
                    top: 0,
                    left: 0,
                    right: 0,
                    child: WEAppBar(
                      backgroundColor: Colors.transparent,
d1d32220   liangchengyou   feat:兑换课程+购买记录
126
127
                    ),
                  ),
d1d32220   liangchengyou   feat:兑换课程+购买记录
128
                ],
5b87e560   吴启风   feat:导航栏视觉优化
129
              ));
d1d32220   liangchengyou   feat:兑换课程+购买记录
130
        });
c61b3c1a   Key   feat: toast_util....
131
  }