coupon_detail_page.dart 8.93 KB
import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_picker/flutter_picker.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:one_key/models/coupon_model.dart';
import 'package:one_key/provider/coupon_provider.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/h_empty_view.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 CouponDetailPage extends StatefulWidget {
  final CouponSunModel couponSunModel;
  CouponDetailPage({Key key, this.couponSunModel}) : super(key: key);

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

class _CouponDetailPageState extends State<CouponDetailPage> {
  ScrollController controller = ScrollController();
  final heightCell = ScreenUtil().setWidth(80);
  CouponProvider couponProvider;

  @override
  void initState() {
    super.initState();
  }

  ///时间选择
  Widget _select(String title, String hintText, GestureTapCallback onTap) {
    return InkWell(
      onTap: onTap,
      child: Container(
        padding: EdgeInsets.symmetric(vertical: ScreenUtil().setWidth(28)),
        child: Row(
          crossAxisAlignment: CrossAxisAlignment.center,
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Container(
              // height: ScreenUtil().setWidth(40),
              // color: Colors.red,
              child: Text(
                title,
                style: TextStyle(
                    color: Color.fromRGBO(0, 0, 0, 0.9),
                    fontWeight: FontWeight.bold,
                    fontSize: ScreenUtil().setSp(32)),
              ),
            ),
            HEmptyView(20),
            Spacer(),
            Text(hintText,
                style: TextStyle(
                  color: hintText == '点击选择'
                      ? MyColours.color_999999
                      : MyColours.color_515151,
                  fontSize: ScreenUtil().setSp(32),
                )),
            HEmptyView(20),
            Image.asset(
              Utils.getImgPath('arrow_right_new'),
              width: ScreenUtil().setWidth(20),
            ),
            HEmptyView(32),
          ],
        ),
      ),
    );
  }

  ///输入框
  Widget _item(String title, String subTitle) {
    return Container(
      padding: EdgeInsets.symmetric(vertical: ScreenUtil().setWidth(24)),
      child: Row(
        crossAxisAlignment: CrossAxisAlignment.center,
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Container(
            child: Text(
              title,
              style: TextStyle(
                  color: Color.fromRGBO(0, 0, 0, 0.9),
                  fontWeight: FontWeight.bold,
                  fontSize: ScreenUtil().setSp(32)),
            ),
          ),
          HEmptyView(60),
          Expanded(
              child: Text(
            subTitle,
            maxLines: 20,
            textAlign: TextAlign.right,
            overflow: TextOverflow.ellipsis,
            style: TextStyle(
              color: Color.fromRGBO(0, 0, 0, 0.4),
              fontSize: ScreenUtil().setSp(32),
            ),
          ))
        ],
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    couponProvider = Provider.of<CouponProvider>(context, listen: true);
    return Scaffold(
      backgroundColor: MyColours.color_ffffff,
      appBar: SystemAppBar(
        '优惠券详情',
        onTap: () {
          Navigator.pop(context);
        },
      ),
      body: Column(children: [
        Expanded(
          child: SingleChildScrollView(
              controller: controller,
              physics: BouncingScrollPhysics(),
              child: Padding(
                  padding: EdgeInsets.symmetric(
                      horizontal: ScreenUtil().setWidth(32)),
                  child: Column(
                    children: [
                      VEmptyView(56),
                      _item(
                          '券类型',
                          widget.couponSunModel.isType == '1'
                              ? widget.couponSunModel.isExamine == '1'
                                  ? '店铺优惠券(核销券)'
                                  : '店铺优惠券'
                              : '我的优惠券'),
                      Container(
                        height: ScreenUtil().setWidth(2),
                        color: MyColours.color_E7E7E7,
                      ),
                      VEmptyView(24),
                      _item('券名称', widget.couponSunModel.aname),
                      Container(
                        height: ScreenUtil().setWidth(2),
                        color: MyColours.color_E7E7E7,
                      ),
                      VEmptyView(24),
                      _item('券要求', widget.couponSunModel.desc),
                      Container(
                        height: ScreenUtil().setWidth(2),
                        color: MyColours.color_E7E7E7,
                      ),
                      VEmptyView(24),
                      _item(
                          '有效期从',
                          Utils.getDateStrFromJiekou(
                              widget.couponSunModel.stime)),
                      Container(
                        height: ScreenUtil().setWidth(2),
                        color: MyColours.color_E7E7E7,
                      ),
                      VEmptyView(24),
                      _item(
                          '有效期至',
                          Utils.getDateStrFromJiekou(
                              widget.couponSunModel.etime)),
                      widget.couponSunModel.isType == '1'
                          ? Column(
                              crossAxisAlignment: CrossAxisAlignment.start,
                              children: [
                                Container(
                                  height: ScreenUtil().setWidth(2),
                                  color: MyColours.color_E7E7E7,
                                ),
                                VEmptyView(24),
                                _item('创建人', widget.couponSunModel.uid),
                              ],
                            )
                          : SizedBox(),
                      widget.couponSunModel.isType == '1'
                          ? Column(
                              crossAxisAlignment: CrossAxisAlignment.start,
                              children: [
                                Container(
                                  height: ScreenUtil().setWidth(2),
                                  color: MyColours.color_E7E7E7,
                                ),
                                VEmptyView(24),
                                _select(
                                  '谁可以发放',
                                  '查看',
                                  () async {
                                    await NavigatorUtil.goCouponToPersonnalPage(
                                        context, widget.couponSunModel.uidList,
                                        onlyShow: true);
                                  },
                                )
                              ],
                            )
                          : SizedBox(),
                      widget.couponSunModel.explain != null &&
                              widget.couponSunModel.explain != ''
                          ? Container(
                              height: ScreenUtil().setWidth(2),
                              color: MyColours.color_E7E7E7,
                            )
                          : SizedBox(),
                      widget.couponSunModel.explain != null &&
                              widget.couponSunModel.explain != ''
                          ? VEmptyView(24)
                          : SizedBox(),
                      widget.couponSunModel.explain != null &&
                              widget.couponSunModel.explain != ''
                          ? _item('券说明', widget.couponSunModel.explain)
                          : SizedBox(),
                      Container(
                        height: ScreenUtil().setWidth(2),
                        color: MyColours.color_E7E7E7,
                      ),
                      VEmptyView(24),
                      _item('券状态',
                          widget.couponSunModel.status == '1' ? '发放中' : '停用')
                    ],
                  ))),
        )
      ]),
    );
  }
}