import 'dart:convert';
import 'dart:math';

import 'package:flustars/flustars.dart' as FlutterStars;
import 'package:flutter/material.dart';
import 'package:flutter_alipay/flutter_alipay.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_spinkit/flutter_spinkit.dart';
import 'package:fluwx/fluwx.dart' as fluwx;
// import 'package:image/image.dart';
import 'package:liftmanager/common/common.dart';
import 'package:liftmanager/internal/bbs/bbs_router.dart';
import 'package:liftmanager/net/api_service.dart';
import 'package:liftmanager/res/resources.dart';
import 'package:liftmanager/routers/fluro_navigator.dart';
import 'package:liftmanager/utils/fast_notification.dart';
import 'package:liftmanager/utils/theme_utils.dart';
import 'package:liftmanager/utils/time_format.dart';
import 'package:liftmanager/utils/toast.dart';
import 'package:liftmanager/widgets/app_bar.dart';
import 'package:liftmanager/widgets/load_image.dart';
import 'package:shared_preferences/shared_preferences.dart';

class BuyService extends StatefulWidget {
  BuyService(this.id);

  final String id;

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

class BuyServiceState extends State<BuyService> {
  // ExpertListState({Key key}) : super(key: key);
  bool sortBool = true;
  String couponChiose = '请选择';
  String redChiose = '请选择';
  String typeName = "卡券";
  String questionType;
  int typeIdssCoupon;
  int typeIdssRed;
  double priceCoupon = 0.0;
  double priceRed = 0.0;
  double priceTotal = 0.0;
  int dataId;
  String expertName;
  double expertFee;
  double apiExpertFee = 0.0;
  dynamic _wxPay;
  @override
  initState() {
    super.initState();
    setSchema();
    _initFluwx();
    getDataId();
    getType();
    getCoupon();
    getExpertName();
    getExpertFee();

    indexNow = 0;
  }

  _initFluwx() async {
    await fluwx.registerWxApi(
        appId: "wx0f10e6386fb9969e",
        doOnAndroid: true,
        doOnIOS: true,
        universalLink: "https://www.edtyun.com/");
    var result = await fluwx.isWeChatInstalled();
    setState(() {});
  }

  void setSchema() async {
    // await FlutterAlipay.setIosUrlSchema("tytylift");
    await FlutterAlipay.setIosUrlSchema("com.tyty.lift.managers");
  }

  void getDataId() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    dataId = prefs.getInt("dataId");
  }

  void getType() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    questionType = prefs.getString("questionType");
  }

  void getExpertName() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    expertName = prefs.getString("expertName");
  }

  void getExpertFee() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    if (prefs.getDouble("expertFee") != null) {
      expertFee = prefs.getDouble("expertFee");
    } else {
      expertFee = 0.0;
    }

    setState(() {});
    print(expertFee);
    print(6666543);
    // priceTotal = expertFee;
    if (expertFee == 0.0) {
      getApiFee();
    } else {
      priceTotal = expertFee;
    }
  }

  List<dynamic> couponList = [];
  Future getCouponList(type) async {
    couponList = [];
    await NewApiService().getCouponListNoPage(
        type,
        expertFee != null && expertFee != 0.0
            ? expertFee.toString()
            : apiExpertFee.toString(), onSuccess: (res) {
      if (res != null) {
        couponList = res;
        print(jsonEncode(res));
        print(111222);
        setState(() {});
      }
    }, onError: (code, msg) {
      toasts(msg);
    });
  }

  Future getApiFee() async {
    await NewApiService().getFee(onSuccess: (res) {
      if (res != null) {
        apiExpertFee = res;
        priceTotal = apiExpertFee;
        setState(() {});
        print(res);
        print(6666544);
      }
    }, onError: (code, msg) {
      toasts(msg);
    });
  }

  //余额支付
  Future lastMoneyPay(orders) async {
    int liftCaseType;
    String payType;
    questionType == "1" ? liftCaseType = 1 : liftCaseType = 2;
    questionType == "1" ? payType = "CASE" : payType = "CALL";
    await NewApiService().getAlipayBalanceApp({
      "payType": payType,
      "orders": orders,
      "liftCaseType": liftCaseType,
      "userId": FlutterStars.SpUtil.getString(Constant.userId),
    }, onSuccess: (res) {
      // moneyList = res;
      upDataMoney();
      getRoom();
    }, onError: (code, msg) {
      toasts(msg);
    });
  }

  // 根据orderNo获取支付宝订单信息
  Future getAlipayOrderInfo(ordersNo) async {
    int liftCaseType;
    questionType == "1" ? liftCaseType = 1 : liftCaseType = 2;
    await NewApiService().aliPay(
        payway: 'alipay',
        orders: ordersNo,
        liftCaseType: liftCaseType,
        onSuccess: (res) {
          callAlipay(res);
        },
        onError: (code, msg) {
          toasts(msg);
        });
  }

  // 根据orderNo获取wx订单信息
  Future getWxOrderInfo(ordersNo) async {
    int liftCaseType;
    questionType == "1" ? liftCaseType = 1 : liftCaseType = 2;
    await NewApiService().wxPay(
        payway: 'wx',
        orders: ordersNo,
        liftCaseType: liftCaseType,
        onSuccess: (res) {
          wxMethod(res);
        },
        onError: (code, msg) {
          toasts(msg);
        });
  }

  wxMethod(_payInfo) {
    print(_payInfo["appid"]);
    fluwx
        .payWithWeChat(
            appId: _payInfo["appid"],
            partnerId: _payInfo["partnerid"],
            prepayId: _payInfo["prepayid"],
            packageValue: _payInfo["package"],
            nonceStr: _payInfo["noncestr"],
            timeStamp: int.parse(_payInfo["timestamp"]),
            sign: _payInfo["sign"])
        .then((data) {
      print(data);
    });
    _wxPay?.cancel();
    _wxPay = fluwx.responseFromPayment
        .listen((fluwx.WeChatPaymentResponse response) async {
      print("WeChatPaymentResponse" + response.errCode.toString());
      if (response.errCode == -2) {
        //支付取消
        toasts("支付取消");
      } else if (response.errCode == -1) {
        //支付失败
        toasts("支付失败");
      } else if (response.errCode == 0) {
        //支付成功
        upDataMoney();
        getRoom();
      }
    });
  }

  //根据专家Id和诊单Id获取orderId  0：余额 1：支付宝
  Future generateOrder(int type) async {
    await NewApiService().generateOrder({
      "id": dataId,
      "chargerId": widget.id,
      "couponId": typeIdssCoupon,
      "packetId": typeIdssRed
    }, onSuccess: (res) {
      print(res);

      if (res != null) {
        if (type == 0) {
          lastMoneyPay(res);
        } else if (type == 1) {
          getAlipayOrderInfo(res);
        } else if (type == 2) {
          getWxOrderInfo(res);
        }
      }

      print(555);
    }, onError: (code, msg) {
      toasts(msg);
    });
  }

  upDataMoney() {
    String initThisUserMoney = randomInt(1111, 9999).toString() +
        DateTime.now().millisecondsSinceEpoch.toString();
    FastNotification.push("initUserMoney", initThisUserMoney);
  }

  randomInt(int min, int max) {
    return new Random().nextInt(max) % (max - min + 1) + min;
  }

  //根据orderId来判断支付完成
  // Future getPayType(orderId) async {
  //   await NewApiService().getTestAlipayNotify(orderId, onSuccess: (res) {
  //     print(res);

  //     print(666);
  //     getRoom();
  //   }, onError: (code, msg) {
  //     toasts(msg);
  //   });
  // }

  //支付完成后用诊单Id获取房间号
  Future getRoom() async {
    await NewApiService().findOne(dataId, onSuccess: (res) {
      print(res);
      String roomId = res.sessionid;
      // toasts("支付成功，即将进入聊天室！");
      toasts("支付成功，即将进入聊天室！");

      NavigatorUtils.push(context,
          "${BbsRouter.chatRoom}?id=$roomId&type=someToOne&toUserId=''");
      // toasts("欢迎使用，请在使用过程中注意个人信息及财产安全！");
      print(666);
    }, onError: (code, msg) {
      toasts(msg);
    });
  }

  void setExpertFee(double expertFee) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    prefs.setDouble("expertFee", expertFee);
  }

  @override
  void dispose() {
    setExpertFee(0.0);
    super.dispose();
  }

  void callAlipay(String _payInfo) async {
    AlipayResult payResult;
    try {
      print("The pay info is : " + _payInfo);
      payResult = await FlutterAlipay.pay(_payInfo);
    } on Exception catch (e) {
      payResult = null;
    }
    print(payResult);

    if (payResult != null) {
      if (payResult.resultStatus == "9000") {
        upDataMoney();
        getRoom();
      } else {
        toasts(payResult.memo);
      }
    } else {
      toasts("支付异常");
    }
  }

  String balance = '0';
  Future getCoupon() async {
    await NewApiService().getUserCoupons(onSuccess: (res) {
      if (res != null) {
        balance = res["balance"].toString();

        setState(() {});

        print(6666544);
      }
    }, onError: (code, msg) {
      toasts(msg);
    });
  }

  static const payType = [
    {
      "icon": "tab_first/pay_yue",
      "title": "账户余额",
      "price": "0",
    },
    {
      "icon": "tab_first/pay_zhifubao",
      "title": "支付宝",
    },
    {
      "icon": "tab_first/pay_winxin",
      "title": "微信",
    },
  ];

  int indexNow = 999;
  String checkFalse = "tab_first/check_false";
  String checkTrue = "tab_first/check_true";

  @override
  Widget build(BuildContext context) {
    double width = MediaQuery.of(context).size.width;
    double height = MediaQuery.of(context).size.height;

    return Container(
      child: Scaffold(
          appBar: MyAppBar(
            centerTitle: "购买服务",
          ),
          body: Container(
              child: Stack(
            children: <Widget>[
              Container(
                // padding: EdgeInsets.only(top:70),
                child: ListView(children: <Widget>[
                  Container(
                      padding: EdgeInsets.all(ScreenUtil().setWidth(15)),
                      decoration: BoxDecoration(
                        border: Border(
                          bottom: BorderSide(
                              width: 5,
                              color:
                                  ThemeUtils.getDialogTextFieldColor(context)),
                        ),
                      ),
                      child: Column(
                          mainAxisAlignment: MainAxisAlignment.spaceBetween,
                          children: <Widget>[
                            Row(
                                crossAxisAlignment: CrossAxisAlignment.center,
                                children: <Widget>[
                                  Text(
                                    questionType == "1" ? "问诊服务" : "出诊服务",
                                    style: TextStyle(
                                        fontSize: ScreenUtil().setSp(16)),
                                    textAlign: TextAlign.start,
                                  ),
                                ]),
                            Row(
                              children: [
                                Container(
                                  child: Text(
                                    (expertFee != null && expertFee != 0.0
                                            ? expertName
                                            : "平台指定专家") +
                                        '-' +
                                        (questionType == "1" ? "问诊服务" : "出诊服务"),
                                    style: TextStyle(
                                        color: Color(0xff999999),
                                        fontSize: ScreenUtil().setSp(16)),
                                    textAlign: TextAlign.start,
                                  ),
                                ),
                                Expanded(child: Container()),
                                Container(
                                  child: Text(
                                    // "￥${expertFee != null ? expertFee.toString() : '0.0'}",
                                    "￥${expertFee != null && expertFee != 0.0 ? expertFee.toString() : apiExpertFee.toString()}",
                                    style: TextStyle(
                                        color: Colors.red,
                                        fontSize: ScreenUtil().setSp(16)),
                                    textAlign: TextAlign.end,
                                  ),
                                )
                              ],
                            )
                          ])),
                  // ChioseThis(list: quanListChiose,label: "优惠券",labelText: '无可用优惠券',value:quanChiose,fun:(index){
                  //   setState(() {
                  //                               quanChiose = quanListChiose[index];
                  //                             });
                  //                             Navigator.maybePop(context);
                  // }),
                  ChioseThisRight(
                      label: "优惠券",
                      labelText: '无可用优惠券',
                      value: couponChiose,
                      fun: () {
                        setState(() {
                          // brandChiose = brandListChiose[index];

                          typeName = "卡券";
                          sortBool = false;
                          print(5656333);
                        });
                        getCouponList(1);
                        // Navigator.maybePop(context);
                      }),
                  ChioseThisRight(
                      label: "红包",
                      labelText: '无可用红包',
                      value: redChiose,
                      fun: () {
                        setState(() {
                          // brandChiose = brandListChiose[index];

                          typeName = "红包";
                          sortBool = false;
                          print(5656333);
                        });
                        getCouponList(2);
                        // Navigator.maybePop(context);
                      }),
                  // ChioseThis(list: redListChiose,label: "红包",labelText: '无可用红包',value:redChiose,fun:(index){
                  //   setState(() {
                  //                               redChiose = redListChiose[index];
                  //                             });
                  //                             Navigator.maybePop(context);
                  // }),

                  Container(
                    padding: EdgeInsets.only(
                        left: ScreenUtil().setWidth(15),
                        right: ScreenUtil().setWidth(15),
                        top: ScreenUtil().setWidth(10),
                        bottom: ScreenUtil().setWidth(10)),
                    decoration: BoxDecoration(
                      border: Border(
                        top: BorderSide(
                            width: 5,
                            color: ThemeUtils.getDialogTextFieldColor(context)),
                        bottom: BorderSide(
                            width: 5,
                            color: ThemeUtils.getDialogTextFieldColor(context)),
                      ),
                    ),
                    child: Row(
                        mainAxisAlignment: MainAxisAlignment.spaceBetween,
                        children: <Widget>[
                          Text(
                            "共需支付",
                            style: TextStyle(fontSize: ScreenUtil().setSp(14)),
                            textAlign: TextAlign.start,
                          ),
                          Text(
                            "￥${priceTotal != null ? priceTotal.toStringAsFixed(2).toString() : '0.0'}",
                            style: TextStyle(
                                color: Colors.red,
                                fontSize: ScreenUtil().setSp(14)),
                            textAlign: TextAlign.start,
                          ),
                        ]),
                  ),
                  Container(
                    padding: EdgeInsets.only(
                        // left: ScreenUtil().setWidth(15),
                        right: ScreenUtil().setWidth(15),
                        top: ScreenUtil().setWidth(10),
                        bottom: ScreenUtil().setWidth(10)),
                    decoration: BoxDecoration(
                      border: Border(
                        bottom:
                            BorderSide(width: 0.5, color: Color(0xfff5f5f5)),
                      ),
                    ),
                    child: Row(
                        // mainAxisAlignment: MainAxisAlignment.spaceBetween,
                        children: <Widget>[
                          Container(
                            height: 13,
                            width: 2,
                            color: Colours.blue_app_main,
                          ),
                          SizedBox(
                            width: 13,
                          ),
                          Text(
                            "选择支付方式",
                            style: TextStyle(fontSize: ScreenUtil().setSp(14)),
                            textAlign: TextAlign.start,
                          ),
                        ]),
                  ),
                  Container(
                      padding: EdgeInsets.only(
                          left: ScreenUtil().setWidth(15),
                          right: ScreenUtil().setWidth(15)),
                      child: Column(
                        children: payType.asMap().keys.map((i) {
                          return Container(
                            decoration: BoxDecoration(
                              border: Border(
                                bottom: BorderSide(
                                    width: 0.5, color: Color(0xfff5f5f5)),
                              ),
                            ),
                            height: 60,
                            child: InkWell(
                                onTap: () {
                                  setState(() {
                                    indexNow = i;
                                  });
                                  print(indexNow);
                                },
                                child: Row(
                                    mainAxisAlignment:
                                        MainAxisAlignment.spaceBetween,
                                    children: <Widget>[
                                      Row(
                                        children: <Widget>[
                                          LoadAssetImage(
                                            // image: AssetImage(i['img']),
                                            payType[i]["icon"],
                                            width: ScreenUtil().setWidth(20),
                                            height: ScreenUtil().setWidth(20),
                                            // alignment: Alignment.centerLeft,
                                          ),
                                          Container(width: 5, child: null),
                                          Text(
                                            payType[i]["title"],
                                            style: TextStyle(
                                                fontSize:
                                                    ScreenUtil().setSp(14)),
                                            textAlign: TextAlign.start,
                                          ),
                                          Container(width: 5, child: null),
                                          Text(
                                            payType[i]["price"] != null
                                                ? "￥$balance"
                                                : "",
                                            style: TextStyle(
                                                color: Color(0xff999999),
                                                fontSize:
                                                    ScreenUtil().setSp(16)),
                                            textAlign: TextAlign.start,
                                          ),
                                        ],
                                      ),
                                      Container(
                                        // padding: EdgeInsets.only(top:10,left:5,right:5,bottom:10),
                                        child: LoadAssetImage(
                                          // image: AssetImage(i['img']),
                                          indexNow == i
                                              ? checkTrue
                                              : checkFalse,
                                          width: ScreenUtil().setWidth(18),
                                          height: ScreenUtil().setWidth(18),
                                          // alignment: Alignment.centerLeft,
                                        ),
                                      ),
                                    ])),
                          );
                        }).toList(),
                      ))
                ]),
              ),
              Positioned(
                  bottom: 0,
                  left: 0,
                  child: Container(
                    width: width,
                    padding: EdgeInsets.only(
                        top: ScreenUtil().setWidth(15),
                        bottom: ScreenUtil().setWidth(15),
                        left: ScreenUtil().setWidth(25),
                        right: ScreenUtil().setWidth(25)),
                    color: ThemeUtils.getDialogTextFieldColor(context),
                    child: Container(
                      height: ScreenUtil().setWidth(44),
                      decoration: BoxDecoration(
                          borderRadius: BorderRadius.circular(22.0),
                          color: Colours.blue_app_main
                          // gradient: const LinearGradient(
                          //     colors: [Color(0xFF00D9FF), Color(0xFF0287FF)]),
                          ),
                      child: FlatButton(
                        // padding: EdgeInsets.all(15.0),
                        child: Text("立即购买"),
                        textColor: Colors.white,
                        onPressed: () {
                          // NavigatorUtils.push(context, "${BbsRouter.chatRoom}?id=1111");
                          if (priceTotal <= 0 && indexNow != 0) {
                            toasts("支付金额为0，请使用余额支付！");
                            return;
                          }

                          if (indexNow == 0) {
                            showAlert(
                              context,
                              "提示",
                              "确定支付？",
                              "确定",
                              () {
                                generateOrder(0);
                                NavigatorUtils.goBack(context);
                              },
                              txt2: "取消",
                              onPre2: () {
                                NavigatorUtils.goBack(context);
                              },
                            );
                            // NavigatorUtils.push(context, BbsRouter.chatRoom);
                          } else if (indexNow == 1) {
                            generateOrder(1);
                            // NewApiService().aliPayOrder(orders,
                            //     onSuccess: (res) {
                            //   callAlipay(res);
                            // }, onError: (code, msg) {
                            //   toasts(msg);
                            // });
                          } else if (indexNow == 2) {
                            generateOrder(2);
                          } else {
                            toasts("选择支付方式");
                          }
                        },
                      ),
                    ),
                  )),
              !sortBool
                  ? Positioned(
                      top: 0,
                      left: 0,
                      child: GestureDetector(
                        onTap: () {
                          setState(() {
                            sortBool = true;
                          });
                        },
                        child: Container(
                            width: width,
                            height: height,
                            color: Color.fromRGBO(0, 0, 0, 0.5)),
                      ),
                    )
                  : Container(child: null),
              !sortBool
                  ? Positioned(
                      top: 0,
                      right: 0,
                      child: Container(
                          width: width / 4 * 3,
                          height: height,
                          color: ThemeUtils.getTabsBg(context),
                          padding: EdgeInsets.all(10),
                          child: ListView(
                            children: <Widget>[
                              Container(
                                padding: EdgeInsets.only(
                                    left: 5, top: 5, bottom: 10),
                                child: Text(
                                  typeName,
                                  style: TextStyle(
                                      color: Color(0xff666666),
                                      fontSize: ScreenUtil().setSp(16)),
                                  textAlign: TextAlign.start,
                                ),
                              ),
                              InkWell(
                                onTap: () {
                                  print(priceCoupon);
                                  print(priceRed);
                                  print(33333333333);
                                  setState(() {
                                    expertFee != null && expertFee != 0.0
                                        ? priceTotal = expertFee
                                        : priceTotal = apiExpertFee;
                                    sortBool = true;
                                    if (typeName == "卡券") {
                                      priceCoupon = 0.0;
                                      couponChiose = '请选择';
                                      typeIdssCoupon = null;
                                    } else if (typeName == "红包") {
                                      priceRed = 0.0;
                                      redChiose = '请选择';
                                      typeIdssRed = null;
                                    }
                                    print(priceCoupon);
                                    print(priceRed);
                                    print(123465798);
                                    if ((priceTotal - priceCoupon - priceRed) <
                                        0) {
                                      priceTotal = 0;
                                    } else {
                                      priceTotal =
                                          priceTotal - priceCoupon - priceRed;
                                    }
                                    couponList = [];
                                  });
                                },
                                child: Container(
                                  // width: width / 4 - 17,
                                  padding: EdgeInsets.only(
                                      bottom: ScreenUtil().setWidth(10),
                                      left: ScreenUtil().setWidth(10),
                                      right: ScreenUtil().setWidth(10),
                                      top: ScreenUtil().setWidth(10)),
                                  margin: EdgeInsets.only(
                                      left: 5, right: 5, bottom: 5, top: 5),
                                  decoration: BoxDecoration(
                                      // border: Border(
                                      //   bottom: BorderSide(width: 0.5, color: Colours.line),
                                      // ),
                                      color: ThemeUtils.getDialogTextFieldColor(
                                          context)),
                                  child: Text(
                                    "不选择$typeName",
                                    style: TextStyle(
                                        fontSize: ScreenUtil().setSp(14)),
                                    textAlign: TextAlign.center,
                                  ),
                                ),
                              ),
                              couponList != null && couponList.length > 0
                                  ? Container(
                                      child: Column(
                                      children: couponList
                                          .asMap()
                                          .keys
                                          .map<Widget>((index) {
                                        return hongbaoCell(index);
                                      }).toList(),
                                    ))
                                  : Center(child: Text("暂无")),
                            ],
                          )))
                  : Container(child: null),
            ],
          ))),
    );
  }

  Widget loadCircle() {
    return Container(
      padding: EdgeInsets.only(top: 10, bottom: 10),
      color: ThemeUtils.getTabsBg(context),
      child: Center(
        child: SpinKitFadingCircle(
          color: Colors.blueAccent,
          size: 30.0,
        ),
      ),
    );
  }

  getScenario(int type) {
    String str;
    if (type == 0) {
      str = "全场通用";
    } else if (type == 1) {
      str = "出诊问诊服务";
    } else if (type == 2) {
      str = "题库";
    } else if (type == 3) {
      str = "视频";
    }
    return str;
  }

  hongbaoCell(index) {
    // typeName == "卡券"
    return InkWell(
      onTap: () {
        setState(() {
          expertFee != null && expertFee != 0.0
              ? priceTotal = expertFee
              : priceTotal = apiExpertFee;
          sortBool = true;
          if (typeName == "卡券") {
            priceCoupon = couponList[index].coupon.discount;
            couponChiose = couponList[index].coupon.name ?? "";
            typeIdssCoupon = couponList[index].id;
          } else if (typeName == "红包") {
            priceRed = couponList[index].coupon.price;
            redChiose = couponList[index].coupon.name ?? "";
            typeIdssRed = couponList[index].id;
          }
          if ((priceTotal - priceCoupon - priceRed) < 0) {
            priceTotal = 0;
          } else {
            priceTotal = priceTotal - priceCoupon - priceRed;
          }
          couponList = [];
        });
      },
      child: typeName == "红包"
          ? Container(
              margin: EdgeInsets.only(left: 0, right: 0, bottom: 5, top: 5),
              child: Stack(
                children: [
                  Container(
                    height: 80,
                    width: 300,
                    // color: Colors.red,
                    child: LoadAssetImage(
                      "hongbaoBg",
                      fit: BoxFit.fill,
                    ),
                  ),
                  Container(
                      height: 80,
                      width: 300,
                      // width: width / 4 - 17,
                      padding: EdgeInsets.only(
                          bottom: ScreenUtil().setWidth(10),
                          left: ScreenUtil().setWidth(10),
                          right: ScreenUtil().setWidth(10),
                          top: ScreenUtil().setWidth(10)),
                      margin:
                          EdgeInsets.only(left: 5, right: 5, bottom: 5, top: 5),
                      child: Row(
                        children: [
                          Text('¥${couponList[index].coupon.price}',
                              style:
                                  TextStyle(color: Colors.red, fontSize: 25)),
                          Text('  ¥${couponList[index].coupon.name}',
                              style:
                                  TextStyle(color: Colors.red, fontSize: 13)),
                          Expanded(child: Container()),
                          Text('立即使用',
                              style:
                                  TextStyle(color: Colors.red, fontSize: 14)),
                        ],
                      )),
                  Positioned(
                      top: 0,
                      left: 0,
                      child: Container(
                        color: Color(0xFFDDD9),
                        child: Text('  通用红包  ',
                            style: TextStyle(color: Colors.red)),
                      ))
                ],
              ))
          : Container(
              margin: EdgeInsets.only(left: 0, right: 0, bottom: 5, top: 5),
              child: Stack(
                children: [
                  Positioned(
                      top: 0,
                      left: -10,
                      // right: -30,
                      child: Container(
                        width: 300,
                        height: 122,
                        child: LoadAssetImage(
                          // image: AssetImage(i['img']),
                          "youhuijuanBg",

                          fit: BoxFit.fill,
                          // alignment: Alignment.centerLeft,
                        ),
                      )),
                  Container(
                      // decoration: BoxDecoration(
                      //   border:Border.all(
                      //     width:2,
                      //     color:Colors.red
                      //   )
                      // ),
                      width: 300,
                      height: 90,
                      child: Row(
                        children: <Widget>[
                          Container(
                            // padding: EdgeInsets.only(right: 10, left: 15),
                            child: Column(
                                crossAxisAlignment: CrossAxisAlignment.start,
                                mainAxisAlignment: MainAxisAlignment.center,
                                children: <Widget>[
                                  Container(
                                    width: 100,
                                    child: Row(
                                      crossAxisAlignment:
                                          CrossAxisAlignment.end,
                                      mainAxisAlignment:
                                          MainAxisAlignment.center,
                                      children: <Widget>[
                                        Text(
                                          '￥',
                                          textAlign: TextAlign.left,
                                          style: TextStyle(
                                              fontSize: ScreenUtil().setSp(16),
                                              color: Colors.white),
                                        ),
                                        Text(
                                          // '999.0',
                                          '${couponList[index].coupon?.discount ?? ''}',
                                          // couponList[index].coupon?.discount ??
                                          // '',
                                          textAlign: TextAlign.left,
                                          style: TextStyle(
                                              fontSize: ScreenUtil().setSp(20),
                                              color: Colors.white,
                                              fontWeight: FontWeight.bold),
                                        ),
                                        SizedBox(
                                          width: 20,
                                        )
                                      ],
                                    ),
                                  ),
                                  Container(
                                    margin: EdgeInsets.only(left: 20),
                                    padding: EdgeInsets.fromLTRB(5, 1, 5, 1),
                                    child: Text(
                                      // getScenario(provider
                                      //         .list[index]
                                      //         .coupon
                                      //         ?.scenario ??
                                      //     0),
                                      '代金劵',
                                      textAlign: TextAlign.center,
                                      style: TextStyle(
                                          fontSize: ScreenUtil().setSp(11),
                                          color: Colors.white),
                                    ),
                                    decoration: new BoxDecoration(
                                      //背景
                                      // color: Colors.white,
                                      //设置四周圆角 角度
                                      borderRadius: BorderRadius.all(
                                          Radius.circular(4.0)),
                                      //设置四周边框
                                      border: Border.all(
                                          width: 1, color: Colors.white),
                                    ),
                                  ),
                                ]),
                          ),
                          Container(
                              padding: EdgeInsets.only(top: 30),
                              child: Column(
                                  crossAxisAlignment: CrossAxisAlignment.start,
                                  children: <Widget>[
                                    Text(
                                      '${getScenario(couponList[index].coupon?.scenario ?? 0)}${couponList[index].coupon?.name ?? ""}',
                                      textAlign: TextAlign.left,
                                      style: TextStyle(
                                        fontSize: ScreenUtil().setSp(14),
                                        color: Color(0xff333333),
                                      ),
                                    ),
                                    Text(
                                      '有效时间: ' +
                                          DateUtils.instance.getFormartData(
                                              timeSamp: couponList[index]
                                                      .coupon
                                                      ?.validity ??
                                                  0,
                                              format: "yyyy.MM.dd HH:mm"),
                                      textAlign: TextAlign.left,
                                      style: TextStyle(
                                        fontSize: ScreenUtil().setSp(11),
                                        color: Color(0xff9F9C9F),
                                      ),
                                    ),
                                    SizedBox(height: 5),
                                    Container(
                                      width: 230 * 0.5,
                                      height: 0.5,
                                      color: Color(0xffeeeeee),
                                      child: null,
                                    ),
                                    SizedBox(height: 3),
                                    Text(
                                      couponList[index].coupon?.remark ?? "",
                                      textAlign: TextAlign.left,
                                      style: TextStyle(
                                        fontSize: ScreenUtil().setSp(11),
                                        color: Color(0xff9F9C9F),
                                      ),
                                    ),
                                  ])),
                        ],
                      )),
                ],
              )),
    );
  }
}

class ChioseThisRight extends StatelessWidget {
  ChioseThisRight({Key key, this.value, this.label, this.fun, this.labelText})
      : super(key: key);
  String value;
  String label;
  Function fun;
  String labelText;
  @override
  Widget build(BuildContext context) {
    double width = MediaQuery.of(context).size.width;
    return InkWell(
      onTap: () {
        fun();
      },
      child: Container(
        padding: EdgeInsets.only(
            top: ScreenUtil().setWidth(15), bottom: ScreenUtil().setWidth(15)),
        margin: EdgeInsets.only(left: ScreenUtil().setWidth(15)),
        decoration: BoxDecoration(
          border: Border(
            bottom: BorderSide(width: 0.5, color: Colours.line),
          ),
        ),
        child: Row(
            mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children: <Widget>[
              Text(
                label,
                style: TextStyle(fontSize: ScreenUtil().setSp(14)),
                textAlign: TextAlign.start,
              ),
              value.isEmpty
                  ? Container(
                      child: Row(children: <Widget>[
                        Text(
                          labelText,
                          style: TextStyle(
                            color: Color(0xffcccccc),
                            // fontSize: ScreenUtil().setSp(14)
                          ),
                          textAlign: TextAlign.start,
                        ),
                        Container(
                          padding: EdgeInsets.only(top: 3),
                          child: Icon(
                            Icons.keyboard_arrow_right,
                            size: 20.0,
                            color: Color(0xffcccccc),
                          ),
                        ),
                        SizedBox(width: 10)
                      ]),
                    )
                  : Container(
                      padding:
                          EdgeInsets.only(right: ScreenUtil().setWidth(15)),
                      child: Row(children: <Widget>[
                        Text(
                          value,
                          style: TextStyle(fontSize: ScreenUtil().setSp(14)),
                          textAlign: TextAlign.start,
                        ),
                      ]),
                    ),
            ]),
      ),
    );
  }
}
