import 'package:barcode_widget/barcode_widget.dart';
import 'package:flutter/material.dart';
import 'package:huixiang/generated/l10n.dart';
import 'package:huixiang/retrofit/data/coupon.dart';
import 'package:huixiang/utils/font_weight.dart';
import 'package:huixiang/view_widget/my_appbar.dart';
import 'package:huixiang/view_widget/separator.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:qr_flutter/qr_flutter.dart';

class WriteOffPage extends StatefulWidget {
  final arguments;

  WriteOffPage({this.arguments});

  @override
  State<StatefulWidget> createState() {
    return _WriteOffPage();
  }
}

class _WriteOffPage extends State<WriteOffPage> {
  Coupon coupon;

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

    coupon = Coupon.fromJson(widget.arguments["coupon"]);
    if (mounted) setState(() {});
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Color(0xFF32A060),
      appBar: MyAppBar(
        title: S.of(context).hexiaomaxiangqing,
        titleSize: 18.sp,
        titleColor: Colors.white,
        background: Color(0xFF32A060),
        leadingColor: Colors.white,
      ),
      body: Container(
        alignment: Alignment.topCenter,
        child: Stack(
          alignment: Alignment.topCenter,
          children: [
            Image.asset(
              "assets/image/icon_write_off_bg.png",
              width: MediaQuery.of(context).size.width * 0.912,
              fit: BoxFit.fill,
            ),
            LayoutBuilder(builder: (context, constraints) {
              return Container(
                width: constraints.constrainWidth() * 0.912,
                child: Column(
                  children: [
                    Expanded(
                      child: Container(
                        child: Column(
                          children: [
                            Text(
                              coupon != null ? coupon.couponName : "",
                              style: TextStyle(
                                  fontSize: 16.sp,
                                  fontWeight: FontWeight.bold,
                                  color: Color(0xFF353535)),
                            ),
                            SizedBox(
                              height: 8.h,
                            ),
                            Text(
                              (coupon.useStartTime == null || coupon.useEndTime == null) ? "" : S.of(context).youxiaoqi(
                                  "${coupon.useStartTime.replaceAll("-", ".").split(" ")[0]}-${coupon.useEndTime.replaceAll("-", ".").split(" ")[0]}"),
                              style: TextStyle(
                                fontSize: 12.sp,
                                color: Color(0xFF353535),
                              ),
                            ),
                          ],
                          mainAxisAlignment: MainAxisAlignment.center,
                          crossAxisAlignment: CrossAxisAlignment.center,
                        ),
                        alignment: Alignment.center,
                      ),
                      flex: 6,
                    ),
                    Container(
                      margin: EdgeInsets.only(left: 20.w, right: 20.w),
                      child: MySeparator(
                        width: 5.w,
                        height: 1.h,
                        color: Color(0xFFA29E9E),
                      ),
                    ),
                    Expanded(
                      child: Container(
                        alignment: Alignment.center,
                        child: Column(
                          mainAxisAlignment: MainAxisAlignment.center,
                          crossAxisAlignment: CrossAxisAlignment.center,
                          children: [
                            Text(
                              coupon != null
                                  ? "${coupon.id.substring(0, 4)} "
                                      "${coupon.id.substring(4, 8)} "
                                      "${coupon.id.substring(8, 12)} "
                                      "${coupon.id.substring(12, 16)} "
                                      "${coupon.id.substring(16, coupon.id.length)}"
                                  : "",
                              style: TextStyle(
                                fontSize: 14.sp,
                                wordSpacing: coupon == null
                                    ? 10
                                    : (MediaQuery.of(context).size.width -
                                            64.w) /
                                        (((coupon.id.length) * 4)),
                                letterSpacing: coupon == null
                                    ? 8
                                    : (MediaQuery.of(context).size.width -
                                            64.w) /
                                        (((coupon.id.length) * 4)),
                                fontWeight: MyFontWeight.semi_bold,
                                color: Color(0xFF353535),
                              ),
                            ),
                            SizedBox(
                              height: 12.h,
                            ),
                            BarcodeWidget(
                              barcode: Barcode.code128(useCode128C: true),
                              data: coupon != null ? coupon.id : "",
                              height: 72.h,
                              color: Colors.black,
                              drawText: false,
                            ),
                            SizedBox(
                              height: 16.h,
                            ),
                            Expanded(child: QrImage(
                              data: coupon != null ? coupon.id : "",
                              version: QrVersions.auto,
                              size: 200.w,
                              gapless: true,
                            ),),
                            SizedBox(
                              height: 35.h,
                            ),
                          ],
                        ),
                        margin: EdgeInsets.symmetric(horizontal: 20.w),
                      ),
                      flex: 27,
                    ),
                    Container(
                      child: MySeparator(
                        width: 5.w,
                        height: 1.h,
                        color: Color(0xFFA29E9E),
                      ),
                      margin: EdgeInsets.only(left: 20.w, right: 20.w),
                    ),
                    Expanded(
                      child: Container(
                        padding: EdgeInsets.fromLTRB(20.w, 15.h, 20.w, 24.h),
                        child: Column(
                          mainAxisAlignment: MainAxisAlignment.spaceBetween,
                          crossAxisAlignment: CrossAxisAlignment.center,
                          children: [
                            Row(
                              mainAxisAlignment: MainAxisAlignment.start,
                              crossAxisAlignment: CrossAxisAlignment.center,
                              children: [
                                Container(
                                  width: 3.w,
                                  height: 15.h,
                                  margin:
                                      EdgeInsets.fromLTRB(4.w, 7.h, 4.w, 7.h),
                                  decoration: BoxDecoration(
                                    borderRadius: BorderRadius.circular(3),
                                    color: Color(0xFF20662A),
                                  ),
                                ),
                                Text(
                                  S.of(context).shiyongtiaojian,
                                  style: TextStyle(
                                    fontWeight: FontWeight.bold,
                                    fontSize: 14.sp,
                                    color: Color(0xFF353535),
                                  ),
                                ),
                              ],
                            ),
                            Row(
                              mainAxisAlignment: MainAxisAlignment.start,
                              crossAxisAlignment: CrossAxisAlignment.center,
                              children: [
                                SizedBox(
                                  width: 11.w,
                                ),
                                Expanded(
                                  child: Text(
                                    S
                                        .of(context)
                                        .qianwanghuixiangmendianduihuanhexiao,
                                    style: TextStyle(
                                        textBaseline: TextBaseline.alphabetic,
                                        fontSize: 14.sp,
                                        color: Color(0xFF353535)),
                                  ),
                                  flex: 1,
                                ),
                              ],
                            ),
                            Row(
                              mainAxisAlignment: MainAxisAlignment.start,
                              crossAxisAlignment: CrossAxisAlignment.center,
                              children: [
                                Container(
                                  width: 3.w,
                                  height: 15.h,
                                  margin: EdgeInsets.fromLTRB(4, 7, 4, 7),
                                  decoration: BoxDecoration(
                                    borderRadius: BorderRadius.circular(3),
                                    color: Color(0xFF20662A),
                                  ),
                                ),
                                Text(
                                  S.of(context).shiyongshuoming,
                                  style: TextStyle(
                                      fontWeight: FontWeight.bold,
                                      fontSize: 14.sp,
                                      color: Color(0xFF353535)),
                                ),
                              ],
                            ),
                            Row(
                              mainAxisAlignment: MainAxisAlignment.start,
                              crossAxisAlignment: CrossAxisAlignment.center,
                              children: [
                                SizedBox(
                                  width: 11.w,
                                ),
                                Text(
                                  S.of(context).zitiduihuanquan,
                                  style: TextStyle(
                                    textBaseline: TextBaseline.alphabetic,
                                    fontSize: 14.sp,
                                    color: Color(0xFF353535),
                                  ),
                                ),
                              ],
                            ),
                            Row(
                              mainAxisAlignment: MainAxisAlignment.start,
                              crossAxisAlignment: CrossAxisAlignment.center,
                              children: [
                                SizedBox(
                                  width: 11.w,
                                ),
                                Text(
                                  S.of(context).huixiangrenyimendian,
                                  style: TextStyle(
                                    textBaseline: TextBaseline.alphabetic,
                                    fontSize: 14.sp,
                                    color: Color(0xFF353535),
                                  ),
                                ),
                              ],
                            ),
                          ],
                        ),
                      ),
                      flex: 13,
                    ),
                    Expanded(
                      child: Container(),
                      flex: 3,
                    ),
                  ],
                ),
              );
            })
          ],
        ),
      ),
    );
  }
}