my_integral_page.dart 14.1 KB
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/models/integral_model.dart';
import 'package:one_key/provider/my_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/my_item.dart';
import 'package:one_key/widgets/round_button.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';

class MyIntegralPage extends StatefulWidget {
  final IntegralSunModel sunModel;
  MyIntegralPage({Key key, this.sunModel}) : super(key: key);

  @override
  _MyIntegralPageState createState() => _MyIntegralPageState();
}

class _MyIntegralPageState extends State<MyIntegralPage> {
  // MyModel myModel;
  ScrollController _controller = ScrollController();
  @override
  void initState() {
    super.initState();
    Utils.changeStatusColor(color: MyColours.color_199095);
  }

  @override
  Widget build(BuildContext context) {
    // myModel = Provider.of<MyModel>(context, listen: true);
    return Scaffold(
        backgroundColor: MyColours.color_f5f5f5,
        appBar: SystemAppBar(
          '我的积分',
          bgColor: MyColours.color_199095,
          needWhite: true,
          onTap: () {
            EventBus().emit('changeStatusColor');
            Navigator.of(context).pop();
          },
        ),
        body: NestedScrollView(
            controller: _controller,
            headerSliverBuilder:
                (BuildContext context, bool innerBoxIsScrolled) {
              return <Widget>[
                SliverAppBar(
                    automaticallyImplyLeading: false,
                    pinned: false,
                    floating: false,
                    backgroundColor: MyColours.color_f5f5f5,
                    expandedHeight: ScreenUtil().setWidth(386 * 2 + 40),
                    flexibleSpace: FlexibleSpaceBar(
                        collapseMode: CollapseMode.pin,
                        background: Column(
                            crossAxisAlignment: CrossAxisAlignment.center,
                            children: [
                              Stack(
                                clipBehavior: Clip.none,
                                children: [
                                  Container(
                                    height: ScreenUtil().setWidth(145 * 2),
                                    color: MyColours.color_199095,
                                    child: Column(
                                      crossAxisAlignment:
                                          CrossAxisAlignment.center,
                                      children: [
                                        VEmptyView(40),
                                        Container(
                                            alignment: Alignment.center,
                                            width: double.infinity,
                                            height:
                                                ScreenUtil().setWidth(56 * 2),
                                            child: Text(
                                              widget.sunModel?.myIntegral !=
                                                      null
                                                  ? widget.sunModel.myIntegral
                                                  : '0',
                                              style: TextStyle(
                                                  fontSize:
                                                      ScreenUtil().setSp(80),
                                                  color: MyColours.color_fefefe,
                                                  fontWeight: FontWeight.bold),
                                            )),
                                        Container(
                                          alignment: Alignment.center,
                                          width: double.infinity,
                                          height: ScreenUtil().setWidth(20 * 2),
                                          child: Text(
                                            '当前积分',
                                            style: TextStyle(
                                              fontSize: ScreenUtil().setSp(28),
                                              color: Color.fromRGBO(
                                                  255, 255, 255, 0.6),
                                            ),
                                          ),
                                        )
                                      ],
                                    ),
                                  ),
                                  Positioned(
                                      top: ScreenUtil()
                                          .setWidth(145 * 2 - 18 * 2),
                                      left: ScreenUtil().setWidth(20),
                                      right: ScreenUtil().setWidth(20),
                                      child: Column(children: [
                                        Container(
                                          // color: Colors.red,
                                          padding: EdgeInsets.symmetric(
                                              vertical:
                                                  ScreenUtil().setWidth(20)),
                                          // height: ScreenUtil().setWidth(205 * 2),
                                          decoration: BoxDecoration(
                                              borderRadius:
                                                  BorderRadius.circular(
                                                      ScreenUtil()
                                                          .setWidth(40)),
                                              color: Colors.white),
                                          child: Column(
                                            children: [
                                              MyItem(
                                                title: '上月积分',
                                                content: widget.sunModel
                                                            ?.shangyue !=
                                                        null
                                                    ? '${widget.sunModel.shangyue}'
                                                    : '0',
                                                needRadius: true,
                                              ),
                                              Padding(
                                                  padding: EdgeInsets.symmetric(
                                                      horizontal: ScreenUtil()
                                                          .setWidth(40)),
                                                  child: MyDivider(
                                                    double.infinity,
                                                    ScreenUtil().setWidth(2),
                                                    color:
                                                        MyColours.color_f3f3f3,
                                                  )),
                                              MyItem(
                                                title: '累计积分',
                                                content: widget.sunModel
                                                            ?.cumulative !=
                                                        null
                                                    ? '${widget.sunModel.cumulative}'
                                                    : '0',
                                                needRadius: true,
                                              ),
                                              Padding(
                                                  padding: EdgeInsets.symmetric(
                                                      horizontal: ScreenUtil()
                                                          .setWidth(40)),
                                                  child: MyDivider(
                                                    double.infinity,
                                                    ScreenUtil().setWidth(2),
                                                    color:
                                                        MyColours.color_f3f3f3,
                                                  )),
                                              MyItem(
                                                title: '本月积分',
                                                content: widget
                                                            .sunModel?.benyue !=
                                                        null
                                                    ? '${widget.sunModel.cumulative}'
                                                    : '0',
                                                needRadius: true,
                                              ),
                                              Padding(
                                                  padding: EdgeInsets.symmetric(
                                                      horizontal: ScreenUtil()
                                                          .setWidth(40)),
                                                  child: MyDivider(
                                                    double.infinity,
                                                    ScreenUtil().setWidth(2),
                                                    color:
                                                        MyColours.color_f3f3f3,
                                                  )),
                                              MyItem(
                                                title: '待审核积分',
                                                content: widget.sunModel
                                                            ?.reviewed !=
                                                        null
                                                    ? '${widget.sunModel.reviewed}'
                                                    : '0',
                                                needRadius: true,
                                              )
                                            ],
                                          ),
                                        ),
                                        // VEmptyView(60),
                                        // RoundButton(
                                        //   onPressed: () async {},
                                        //   text: '兑换',
                                        //   fontSize: 34,
                                        //   isBold: false,
                                        //   height: ScreenUtil().setWidth(84),
                                        //   width: ScreenUtil().setWidth(155 * 2),
                                        //   radius: ScreenUtil().setWidth(10),
                                        // ),
                                        // VEmptyView(100),
                                        // Padding(
                                        //     padding: EdgeInsets.symmetric(
                                        //         horizontal: ScreenUtil().setWidth(40)),
                                        //     child: Text(
                                        //         '积分规则:\n1.每成功创建一个内部预订的预订安排微信发送给客户并且客户打开后,获得10积分;\n2.每个餐厅每天每个时段预订安排发送总量不能超过现有桌位数;\n3.同一顾客同一时段的订单,积分只给最早创建内部预订的经理;\n4.订单创建人转发的预订安排,才可获得积分,转发他人创建的订单无效。',
                                        //         style: TextStyle(
                                        //             fontSize: ScreenUtil().setSp(24),
                                        //             color: MyColours.color_999999,
                                        //             height: 1.3)))
                                      ])),
                                ],
                              ),
                            ])))
              ];
            },
            body: SingleChildScrollView(
              controller: _controller,
              physics: NeverScrollableScrollPhysics(),
              child: Column(
                children: [
                  VEmptyView(60),
                  // RoundButton(
                  //   onPressed: () async {},
                  //   text: '兑换',
                  //   fontSize: 34,
                  //   isBold: false,
                  //   height: ScreenUtil().setWidth(84),
                  //   width: ScreenUtil().setWidth(155 * 2),
                  //   radius: ScreenUtil().setWidth(10),
                  // ),
                  // VEmptyView(100),
                  Padding(
                      padding: EdgeInsets.symmetric(
                          horizontal: ScreenUtil().setWidth(40)),
                      child: Text(
                          '积分规则:\n1.每成功创建一个内部预订的预订安排微信发送给客户并且客户打开后,获得10积分;\n2.每个餐厅每天每个时段预订安排发送总量不能超过现有桌位数;\n3.同一顾客同一时段的订单,积分只给最早创建内部预订的经理;\n4.订单创建人转发的预订安排,才可获得积分,转发他人创建的订单无效;\n5.每个就餐用户在一个店铺,每7天只能提供一个有效订单获得积分。',
                          style: TextStyle(
                              fontSize: ScreenUtil().setSp(24),
                              color: MyColours.color_999999,
                              height: 1.3)))
                ],
              ),
            )));
  }
}