import 'package:chewie/chewie.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:liftmanager/internal/account/provider/user_provider.dart';
import 'package:liftmanager/internal/bbs/bbs_router.dart';
import 'package:liftmanager/internal/bbs/model/liftcase_model.dart';
import 'package:liftmanager/internal/wode/order_const.dart';
import 'package:liftmanager/internal/wode/wode_router.dart';
import 'package:liftmanager/net/api_service.dart';
import 'package:liftmanager/res/colors.dart';
import 'package:liftmanager/routers/fluro_navigator.dart';
import 'package:liftmanager/utils/theme_utils.dart';
import 'package:liftmanager/utils/time_format.dart';
import 'package:liftmanager/utils/toast.dart';
import 'package:liftmanager/utils/utils.dart';
import 'package:liftmanager/widgets/app_bar.dart';
import 'package:liftmanager/widgets/bbs_content.dart';
import 'package:liftmanager/widgets/load_image.dart';
import 'package:oktoast/oktoast.dart';
import 'package:orientation/orientation.dart';
import 'package:provider/provider.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:video_player/video_player.dart';

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

  final String id;

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

class OrderDetailState extends State<OrderDetail>
    with AutomaticKeepAliveClientMixin {
  UserProvider provider = UserProvider();

  bool _hasData = false;
  LiftCasesDetailModel detailObj;
  double totalPay;

  getBrandDetail() {
    NewApiService().getLiftcaseDetail(widget.id, onSuccess: (res) {
      detailObj = res;
      double serviceCost =
          detailObj.serviceCost != null ? detailObj.serviceCost : 0.0;
      double travelCost =
          detailObj.travelCost != null ? detailObj.travelCost : 0.0;
      double couponDeduction =
          detailObj.couponDeduction != null ? detailObj.couponDeduction : 0.0;
      double redEnvelopeDeduction = detailObj.redEnvelopeDeduction != null
          ? detailObj.redEnvelopeDeduction
          : 0.0;
      totalPay =
          (serviceCost + travelCost) - (couponDeduction + redEnvelopeDeduction);
      print(serviceCost);
      print(travelCost);
      print(couponDeduction);
      print(redEnvelopeDeduction);
      print(totalPay);
      print("456456456465");
      if (totalPay < 0) {
        totalPay = 0.0;
      }
      if (_controllerBefore == null && detailObj.beforeRepair != null) {
        _controllerBefore?.pause();
        _controllerBefore?.dispose();

        _controllerBefore = VideoPlayerController.network(
            Utils.getImagePath(detailObj.beforeRepair));
      }
      if (_controllerAfter == null && detailObj.afterRepair != null) {
        _controllerAfter?.pause();
        _controllerAfter?.dispose();
        _controllerAfter = VideoPlayerController.network(
            Utils.getImagePath(detailObj.afterRepair));
      }

      print(totalPay);
      print("totalPay-------------------------");
      _hasData = true;
      setState(() {});
    }, onError: (code, msg) {
      toasts(msg);
    });
  }

  getPayCost() {
    bool isPay = true;
    if ((detailObj.dataTable == 1 && detailObj.statuz == 0) ||
        (detailObj.dataTable == 2 && detailObj.statuz == 2)) {
      isPay = false;
    }
    return isPay;
  }

  List<Widget> btnWidget = [];
  VideoPlayerController _controllerBefore;
  VideoPlayerController _controllerAfter;
  @override
  void initState() {
    if (this.mounted) {
      getBrandDetail();
    }

    super.initState();
  }

  @override
  void dispose() {
    if (detailObj?.beforeRepair != null) {
      _controllerBefore?.pause();
      _controllerBefore?.dispose();
    }
    if (detailObj?.afterRepair != null) {
      _controllerAfter?.pause();
      _controllerAfter?.dispose();
    }
    // SystemChrome.setPreferredOrientations([
    //   DeviceOrientation.portraitUp,
    // ]);
    OrientationPlugin.forceOrientation(DeviceOrientation.portraitUp);
    // provider.dispose();
    super.dispose();
  }

  // 用户确认订单
  void confirmOrder() {
    showLoading(context);
    NewApiService().userConfirmOrder(widget.id, onSuccess: (res) {
      dismissLoading(context);
      toasts("订单确认成功");
      getBrandDetail();
      setState(() {});
    }, onError: (code, msg) {
      dismissLoading(context);
      toasts(msg);
    });
  }

  // 用户删除订单
  void deleteOrder() {
    showLoading(context);
    NewApiService().deleteOrder(widget.id, onSuccess: (res) {
      dismissLoading(context);
      toasts("订单删除成功");
      Navigator.pop(context);
      setState(() {});
    }, onError: (code, msg) {
      dismissLoading(context);
      toasts(msg);
    });
  }

  // 用户取消订单
  void cancelOrder() {
    showLoading(context);
    NewApiService().cancelOrder(widget.id, onSuccess: (res) {
      dismissLoading(context);
      toasts("订单取消成功");
      Navigator.pop(context);
      getBrandDetail();
      setState(() {});
    }, onError: (code, msg) {
      dismissLoading(context);
      toasts(msg);
    });
  }

  // 用户确认打卡
  void confirmPunchin() {
    showLoading(context);
    NewApiService().userToClock(widget.id, onSuccess: (res) {
      dismissLoading(context);
      toasts("确认打卡成功");
      getBrandDetail();
      setState(() {});
    }, onError: (code, msg) {
      dismissLoading(context);
      toasts(msg);
    });
  }

  // 付款
  void payment() {
    showLoading(context);
    NewApiService().getTestAlipayNotify(detailObj.orderNo, onSuccess: (res) {
      dismissLoading(context);
      toasts("付款成功");
      getBrandDetail();
      setState(() {});
    }, onError: (code, msg) {
      dismissLoading(context);
      toasts(msg);
    });
  }

  getHeight(detailObj) {
    bool isHeight = false;
    if ((OrderConstant.isShow(detailObj.statuz, detailObj.dataTable,
                'showUserPaymentButton') &&
            detailObj.chargerId != null) ||
        (OrderConstant.isShow(
            detailObj.statuz, detailObj.dataTable, 'showUserConfirmPunchButton',
            arrivedFlag: detailObj.arrivedFlag)) ||
        (OrderConstant.isShow(
            detailObj.statuz, detailObj.dataTable, 'showUserAppealButton')) ||
        (OrderConstant.isShow(detailObj.statuz, detailObj.dataTable,
            'showUserConfirmOrderButton')) ||
        (OrderConstant.isShow(detailObj.statuz, detailObj.dataTable,
            'showUserEvaluationButton')) ||
        (OrderConstant.isShow(detailObj.statuz, detailObj.dataTable,
                'showUserChooseExpertButton') ||
            (detailObj.chargerId == null &&
                detailObj.isPlatformSpecified == 0)) ||
        (OrderConstant.isShow(detailObj.statuz, detailObj.dataTable,
            'showUserCancelOrderButton'))) {
      isHeight = true;
    }
    return isHeight;
  }

  @override
  Widget build(BuildContext context) {
    double width = MediaQuery.of(context).size.width;
    double height = MediaQuery.of(context).size.height;
    if (width > height) {
      // SystemChrome.setPreferredOrientations([
      //   DeviceOrientation.portraitUp,
      // ]);
      OrientationPlugin.forceOrientation(DeviceOrientation.portraitUp);
    }
    return
        // Center(child:new Text("个人中心"));
        ChangeNotifierProvider<UserProvider>(
      create: (_) => provider,
      child: Scaffold(
        appBar: MyAppBar(
          centerTitle: "订单详情",
        ),
        body: _hasData
            ? Consumer<UserProvider>(
                builder: (_, provider, __) {
                  return SafeArea(
                      child: Stack(
                    children: <Widget>[
                      ListView(
                        padding: EdgeInsets.all(0.0),
                        children: <Widget>[
                          // OrderListItemWidget(detailObj),
                          _orderTypeHead(),
                          _lineSpase(),
                          _orderUserDetail(),
                          isShowMoneyDetail() ? _lineSpase() : Container(),
                          isShowMoneyDetail()
                              ? _orderMoneyDetail()
                              : Container(),

                          _lineSpase(),
                          _orderTime(),
                          _lineSpase(),
                          detailObj.liftCaseAppealEntity != null
                              ? Container(
                                  padding: EdgeInsets.only(
                                      left: ScreenUtil().setWidth(15),
                                      top: ScreenUtil().setWidth(10),
                                      bottom: ScreenUtil().setWidth(10)),
                                  child: Column(
                                    children: <Widget>[
                                      Row(
                                        children: <Widget>[
                                          Text(
                                            '驳回原因:',
                                            textAlign: TextAlign.left,
                                            style: TextStyle(
                                              fontSize: ScreenUtil().setSp(13),
                                              color: Color(0xff666666),
                                            ),
                                          ),
                                          Container(
                                            width: width * 0.75,
                                            child: Text(
                                              detailObj.liftCaseAppealEntity
                                                      ?.cancelSeason ??
                                                  "",
                                              textAlign: TextAlign.left,
                                              style: TextStyle(
                                                fontSize:
                                                    ScreenUtil().setSp(13),
                                                color: Color(0xff666666),
                                              ),
                                            ),
                                          )
                                        ],
                                      )
                                    ],
                                  ),
                                )
                              : Container(
                                  child: null,
                                ),

                          isShowOrderLive() ? _orderLiveVideo() : Container(),
                          OrderConstant.isShow(detailObj.statuz,
                                  detailObj.dataTable, 'showUserAppealInfo')
                              ? _orderSSInfo()
                              : Container(child: null),
                          SizedBox(
                            height: 70,
                          )
                        ],
                      ),
                      Positioned(
                        bottom: 0,
                        left: 0,
                        child: Container(
                          width: width,
                          height: !getHeight(detailObj) ? 0 : 60,
                          padding: EdgeInsets.only(
                            // right: ScreenUtil().setWidth(15),
                            // left: ScreenUtil().setWidth(15),
                            top: 7.5,
                            bottom: 7.5,
                          ),
                          decoration: BoxDecoration(
                            border: Border(
                              top: BorderSide(
                                width: 0.5,
                                color: Color(0xffeeeeee),
                              ),
                            ),
                            color: ThemeUtils.getDialogTextFieldColor(context),
                          ),
                          child: Row(
                            mainAxisAlignment: MainAxisAlignment.end,
                            crossAxisAlignment: CrossAxisAlignment.center,
                            // children: btnWidget,
                            children: <Widget>[
                              OrderConstant.isShow(
                                      detailObj.statuz,
                                      detailObj.dataTable,
                                      'showUserCancelOrderButton')
                                  ? BottomBtn(
                                      title: "取消订单",
                                      isBlueBtn: false,
                                      fun: () {
                                        showAlert(
                                            context,
                                            "提示",
                                            "确认取消吗？",
                                            "确认",
                                            () {
                                              cancelOrder();
                                              NavigatorUtils.goBack(context);
                                            },
                                            txt2: "取消",
                                            onPre2: () {
                                              NavigatorUtils.goBack(context);
                                            });
                                      },
                                    )
                                  : Container(child: null),
                              OrderConstant.isShow(
                                          detailObj.statuz,
                                          detailObj.dataTable,
                                          'showUserPaymentButton') &&
                                      detailObj.chargerId != null
                                  ? BottomBtn(
                                      title: "立即付款",
                                      fun: () {
                                        if (_controllerBefore != null) {
                                          _controllerBefore?.pause();
                                        }
                                        if (_controllerAfter != null) {
                                          _controllerAfter?.pause();
                                        }
                                        NavigatorUtils.push(context,
                                            "${WodeRouter.buyService}?id=${detailObj.id}");
                                      },
                                    )
                                  : Container(child: null),
                              OrderConstant.isShow(
                                      detailObj.statuz,
                                      detailObj.dataTable,
                                      'showUserConfirmPunchButton',
                                      arrivedFlag: detailObj.arrivedFlag)
                                  ? BottomBtn(
                                      title: "确认到现场",
                                      fun: () {
                                        confirmPunchin();
                                      },
                                    )
                                  : Container(child: null),
                              OrderConstant.isShow(
                                      detailObj.statuz,
                                      detailObj.dataTable,
                                      'showUserAppealButton')
                                  ? BottomBtn(
                                      title: "提出申诉",
                                      isBlueBtn: false,
                                      fun: () {
                                        if (detailObj.liftCaseAppealEntity !=
                                            null) {
                                          toasts("当前诊单不能申诉");
                                        } else {
                                          if (_controllerBefore != null) {
                                            _controllerBefore?.pause();
                                          }
                                          if (_controllerAfter != null) {
                                            _controllerAfter?.pause();
                                          }
                                          NavigatorUtils.push(context,
                                              "${WodeRouter.representations}?id=${detailObj.id}");
                                        }
                                      },
                                    )
                                  : Container(child: null),
                              OrderConstant.isShow(
                                      detailObj.statuz,
                                      detailObj.dataTable,
                                      'showUserConfirmOrderButton')
                                  ? BottomBtn(
                                      title: "立即确认",
                                      fun: () {
                                        showAlert(
                                            context,
                                            "提示",
                                            "确认完成吗？",
                                            "确认",
                                            () {
                                              NavigatorUtils.goBack(context);
                                              confirmOrder();
                                            },
                                            txt2: "取消",
                                            onPre2: () {
                                              NavigatorUtils.goBack(context);
                                            });
                                      },
                                    )
                                  : Container(child: null),
                              OrderConstant.isShow(
                                      detailObj.statuz,
                                      detailObj.dataTable,
                                      'showUserEvaluationButton')
                                  ? BottomBtn(
                                      title: "立即评价",
                                      fun: () {
                                        if (_controllerBefore != null) {
                                          _controllerBefore?.pause();
                                        }
                                        if (_controllerAfter != null) {
                                          _controllerAfter?.pause();
                                        }
                                        NavigatorUtils.push(context,
                                            "${WodeRouter.comment}?id=${detailObj.id}");
                                      },
                                    )
                                  : Container(child: null),
                              OrderConstant.isShow(
                                      detailObj.statuz,
                                      detailObj.dataTable,
                                      'showUserDeleteOrderButton')
                                  ? BottomBtn(
                                      title: "删除订单",
                                      isBlueBtn: false,
                                      fun: () {
                                        showAlert(
                                            context,
                                            "提示",
                                            "确认删除吗？",
                                            "确认",
                                            () {
                                              deleteOrder();
                                              NavigatorUtils.goBack(context);
                                            },
                                            txt2: "取消",
                                            onPre2: () {
                                              NavigatorUtils.goBack(context);
                                            });
                                      },
                                    )
                                  : Container(child: null),
                              OrderConstant.isShow(
                                          detailObj.statuz,
                                          detailObj.dataTable,
                                          'showUserChooseExpertButton') ||
                                      (detailObj.chargerId == null &&
                                          detailObj.isPlatformSpecified == 0)
                                  ? BottomBtn(
                                      title: "重新提交",
                                      fun: () {
                                        setDataId(detailObj.id);
                                        setType(detailObj.dataTable.toString());
                                        if (_controllerBefore != null) {
                                          _controllerBefore?.pause();
                                        }
                                        if (_controllerAfter != null) {
                                          _controllerAfter?.pause();
                                        }
                                        NavigatorUtils.push(context,
                                            "${BbsRouter.expertList}?id=${detailObj.brandId}");
                                      },
                                    )
                                  : Container(child: null),
                            ],
                          ),
                        ),
                      ),
                    ],
                  ));
                },
              )
            : Center(
                child: Text("正在加载..."),
              ),
      ),
    );
  }

  _lineSpase() {
    return Container(
      color: ThemeUtils.getDialogTextFieldColor(context),
      height: ScreenUtil().setWidth(5),
    );
  }

  _orderTypeHead() {
    return Container(
      // decoration: BoxDecoration(
      //   gradient: const LinearGradient(
      //     colors: [Color(0xFF00D9FF), Color(0xFF0287FF)],
      //   ),
      // ),
      padding: EdgeInsets.only(
          top: ScreenUtil().setWidth(10), left: ScreenUtil().setWidth(10)),
      height: ScreenUtil().setWidth(90),
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          Row(
            // crossAxisAlignment: CrossAxisAlignment.start,
            // mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Icon(
                //  : 0xe604,
                OrderConstant.getIconFontCode(
                    detailObj.statuz, detailObj.dataTable),
                size: 20.0,
                color: Color(0xff333333),
              ),
              SizedBox(
                width: 5,
              ),
              Text(
                OrderConstant.getStatusName(
                    detailObj.statuz, detailObj.dataTable,
                    arrivedFlag: detailObj.arrivedFlag, userType: 'USER'),
                textAlign: TextAlign.left,
                style: TextStyle(
                  fontSize: ScreenUtil().setSp(14),
                  color: Colours.text,
                ),
              ),
              Expanded(child: Container()),
              Text(
                '订单号:',
                textAlign: TextAlign.left,
                style: TextStyle(
                  fontSize: ScreenUtil().setSp(14),
                  color: Colours.text,
                ),
              ),
              Text(
                '${detailObj.orderNo ?? '无'}',
                textAlign: TextAlign.left,
                style: TextStyle(
                  fontSize: ScreenUtil().setSp(14),
                  color: Colours.text_gray,
                ),
              ),
              //
              SizedBox(
                width: 10,
              )
            ],
          ),

          Container(
            margin: EdgeInsets.only(left: 25, top: 10),
            child: Text(
              // '',
              OrderConstant.getdetailStatusName(
                  detailObj.statuz, detailObj.dataTable,
                  arrivedFlag: detailObj.arrivedFlag, userType: 'USER'),
              textAlign: TextAlign.left,
              style: TextStyle(
                fontSize: ScreenUtil().setSp(13),
                color: Colours.dark_text_gray,
              ),
            ),
          )

          // detailObj.statuz == 6
          //     ? Text(
          //         '还剩23小时59分钟自动确认',
          //         textAlign: TextAlign.left,
          //         style: TextStyle(
          //           fontSize: ScreenUtil().setSp(13),
          //           color: Color(0xffeeeeee),
          //         ),
          //       )
          //     : Container(
          //         child: null,
          //       ),
        ],
      ),
    );
  }

  _orderUserDetail() {
    return Container(
      // height: 20,
      padding: EdgeInsets.only(
          bottom: ScreenUtil().setWidth(20), top: ScreenUtil().setWidth(10)),
      child: Row(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          Expanded(
            child: GestureDetector(
              onTap: () {
                if (_controllerBefore != null) {
                  _controllerBefore.pause();
                }
                if (_controllerAfter != null) {
                  _controllerAfter.pause();
                }
                NavigatorUtils.push(context,
                    "${BbsRouter.recommendAsk}?id=${detailObj.id}&type=3");
              },
              child: Row(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: <Widget>[
                  SizedBox(
                    width: 10,
                  ),
                  ClipRRect(
                    borderRadius: BorderRadius.circular(20),
                    child: LoadNetworkImage(
                      detailObj.avatarUrl,
                      width: ScreenUtil().setWidth(43),
                      height: ScreenUtil().setWidth(43),
                      // alignment: Alignment.centerLeft,
                    ),

                    // Container(
                    //                             margin: EdgeInsets.only(
                    //                                 left: ScreenUtil().setWidth(15),
                    //                                 right: ScreenUtil().setWidth(10),
                    //                                 // top: ScreenUtil().setWidth(5)
                    //                                 ),
                    //                             decoration: BoxDecoration(
                    //                               borderRadius: BorderRadius.circular(
                    //                                   ScreenUtil().setWidth(22)),
                    //                             ),
                    //                             child: LoadNetworkImage(
                    //                               detailObj.avatarUrl,
                    //                               width: ScreenUtil().setWidth(43),
                    //                               height: ScreenUtil().setWidth(43),
                    //                               // alignment: Alignment.centerLeft,
                    //                             ),
                    //                           ),
                  ),
                  SizedBox(
                    width: 10,
                  ),
                  Expanded(
                    child: Container(
                      padding:
                          EdgeInsets.only(right: ScreenUtil().setWidth(15)),
                      child: Column(
                        children: <Widget>[
                          Container(
                            child: Row(
                              mainAxisAlignment: MainAxisAlignment.start,
                              children: <Widget>[
                                Row(
                                  crossAxisAlignment: CrossAxisAlignment.center,
                                  children: <Widget>[
                                    Text(
                                      detailObj.name ?? '',
                                      style: TextStyle(
                                        fontSize: ScreenUtil().setSp(17),
                                      ),
                                      textAlign: TextAlign.start,
                                    ),
                                    Container(
                                      decoration: BoxDecoration(
                                        //背景
                                        color: detailObj.dataTable == 1
                                            ? Colours.blue_app_main
                                            : Color(0xffFDAF2C),
                                        //设置四周圆角 角度
                                        borderRadius: BorderRadius.all(
                                            Radius.circular(4.0)),
                                      ),
                                      margin: EdgeInsets.only(left: 5),
                                      padding: EdgeInsets.only(
                                          left: 5, right: 5, top: 2, bottom: 2),
                                      child: Text(
                                        detailObj.dataTable == 1
                                            ? '问诊服务'
                                            : '出诊服务',
                                        style: TextStyle(
                                          color: Colors.white,
                                          fontSize: ScreenUtil().setSp(14),
                                        ),
                                        textAlign: TextAlign.start,
                                      ),
                                    ),
                                  ],
                                ),
                              ],
                            ),
                          ),

                          Container(
                            child: Row(
                              mainAxisAlignment: MainAxisAlignment.spaceBetween,
                              children: <Widget>[
                                Row(
                                  crossAxisAlignment: CrossAxisAlignment.center,
                                  children: <Widget>[
                                    Text(
                                      detailObj.createTime != null
                                          ? DateUtils.instance.getFormartData(
                                              timeSamp: detailObj.createTime,
                                              format: "MM月dd日")
                                          : '',
                                      style: TextStyle(
                                        color: Color(0xff999999),
                                        fontSize: ScreenUtil().setSp(13),
                                      ),
                                      textAlign: TextAlign.start,
                                    ),
                                    Container(
                                      padding: EdgeInsets.only(left: 5),
                                      child: Text(
                                        detailObj.brandName ?? '',
                                        style: TextStyle(
                                          color: Colours.blue_app_main,
                                          fontSize: ScreenUtil().setSp(13),
                                        ),
                                        textAlign: TextAlign.start,
                                      ),
                                    )
                                  ],
                                ),
                              ],
                            ),
                          ),
                          detailObj.dataTable != 1
                              ? Container(
                                  child: Row(
                                    mainAxisAlignment:
                                        MainAxisAlignment.spaceBetween,
                                    children: <Widget>[
                                      Row(
                                        crossAxisAlignment:
                                            CrossAxisAlignment.start,
                                        children: <Widget>[
                                          Container(
                                            // padding: EdgeInsets.only(left: 5),
                                            child: Text(
                                              '出诊时间：',
                                              style: TextStyle(
                                                color: Color(0xff999999),
                                                fontSize:
                                                    ScreenUtil().setSp(13),
                                              ),
                                              textAlign: TextAlign.start,
                                            ),
                                          ),
                                          Text(
                                            detailObj.arrivedTime != null
                                                ? DateUtils.instance
                                                    .getFormartData(
                                                        timeSamp: detailObj
                                                            .arrivedTime,
                                                        format: "MM月dd日 HH:mm")
                                                : '',
                                            style: TextStyle(
                                              color: Color(0xff666666),
                                              fontSize: ScreenUtil().setSp(13),
                                            ),
                                            textAlign: TextAlign.start,
                                          ),
                                        ],
                                      ),
                                    ],
                                  ),
                                )
                              : Container(),
                          detailObj.dataTable != 1
                              ? Container(
                                  // margin: EdgeInsets.only(top: 6),
                                  child: Row(
                                    children: <Widget>[
                                      Container(
                                        // padding: EdgeInsets.only(left: 5),
                                        child: Text(
                                          '出诊地点：',
                                          style: TextStyle(
                                            color: Color(0xff999999),
                                            fontSize: ScreenUtil().setSp(13),
                                          ),
                                          textAlign: TextAlign.start,
                                        ),
                                      ),
                                      Container(
                                        width: ScreenUtil().setWidth(230),
                                        child: Text(
                                          '${detailObj.address ?? ''}',
                                          style: TextStyle(
                                            color: Color(0xff666666),
                                            fontSize: ScreenUtil().setSp(13),
                                            // color: Color(0xff666666),
                                            // fontSize: ScreenUtil().setSp(15),
                                          ),
                                          textAlign: TextAlign.start,
                                          maxLines: 1,
                                          overflow: TextOverflow.ellipsis,
                                        ),
                                      ),
                                    ],
                                  ),
                                )
                              : Container(),
                          Container(
                            // margin: EdgeInsets.only(top: 6),
                            child: Row(
                              children: <Widget>[
                                Container(
                                  // padding: EdgeInsets.only(left: 5),
                                  child: Text(
                                    '问题描述：',
                                    style: TextStyle(
                                      color: Color(0xff999999),
                                      fontSize: ScreenUtil().setSp(13),
                                    ),
                                    textAlign: TextAlign.start,
                                  ),
                                ),
                                Container(
                                  width: ScreenUtil().setWidth(230),
                                  child: Text(
                                    '${detailObj.expression ?? ''}',
                                    style: TextStyle(
                                      color: Color(0xff666666),
                                      fontSize: ScreenUtil().setSp(13),
                                      // color: Color(0xff666666),
                                      // fontSize: ScreenUtil().setSp(15),
                                    ),
                                    textAlign: TextAlign.start,
                                    maxLines: 1,
                                    overflow: TextOverflow.ellipsis,
                                  ),
                                ),
                              ],
                            ),
                          ),
                          Container(
                            // margin: EdgeInsets.only(top: 6),
                            child: Row(
                              children: <Widget>[
                                Container(
                                  // padding: EdgeInsets.only(left: 5),
                                  child: Text(
                                    '出厂日期：',
                                    style: TextStyle(
                                      color: Color(0xff999999),
                                      fontSize: ScreenUtil().setSp(13),
                                    ),
                                    textAlign: TextAlign.start,
                                  ),
                                ),
                                Container(
                                  width: ScreenUtil().setWidth(230),
                                  child: Text(
                                    '${detailObj.productionDate ?? ''}',
                                    style: TextStyle(
                                      color: Color(0xff666666),
                                      fontSize: ScreenUtil().setSp(13),
                                      // color: Color(0xff666666),
                                      // fontSize: ScreenUtil().setSp(15),
                                    ),
                                    textAlign: TextAlign.start,
                                    maxLines: 1,
                                    overflow: TextOverflow.ellipsis,
                                  ),
                                ),
                              ],
                            ),
                          ),

                          // Container(
                          //   child: Row(
                          //     mainAxisAlignment:
                          //         MainAxisAlignment.start,
                          //     children: <Widget>[
                          //       Row(
                          //         crossAxisAlignment:
                          //             CrossAxisAlignment
                          //                 .center,
                          //         children: <Widget>[
                          //           Text(
                          //             detailObj.createTime !=
                          //                     null
                          //                 ? DateUtils
                          //                     .instance
                          //                     .getFormartData(
                          //                     timeSamp:
                          //                         detailObj
                          //                             .createTime,
                          //                     format:
                          //                         "MM月dd日",
                          //                   )
                          //                 : '',
                          //             style: TextStyle(
                          //               color: Color(
                          //                   0xff999999),
                          //               fontSize:
                          //                   ScreenUtil()
                          //                       .setSp(
                          //                           13),
                          //             ),
                          //             textAlign:
                          //                 TextAlign.left,
                          //           ),
                          //           Container(
                          //             padding:
                          //                 EdgeInsets.only(
                          //                     left: 5),
                          //             child: Text(
                          //               detailObj
                          //                       .brandName ??
                          //                   '',
                          //               style: TextStyle(
                          //                 color: Color(
                          //                     0xff999999),
                          //                 fontSize:
                          //                     ScreenUtil()
                          //                         .setSp(
                          //                             13),
                          //               ),
                          //               textAlign:
                          //                   TextAlign
                          //                       .left,
                          //             ),
                          //           )
                          //         ],
                          //       ),
                          //     ],
                          //   ),
                          // ),
                          // Row(
                          //   mainAxisAlignment:
                          //       MainAxisAlignment.start,
                          //   children: <Widget>[
                          //     Container(
                          //       width: 260,
                          //       child: Text(
                          //         detailObj.expression ??
                          //             '',
                          //         style: TextStyle(
                          //           color:
                          //               Color(0xff0288FF),
                          //           fontSize: ScreenUtil()
                          //               .setSp(15),
                          //         ),
                          //         textAlign:
                          //             TextAlign.left,
                          //         maxLines: 1,
                          //         overflow: TextOverflow
                          //             .ellipsis,
                          //       ),
                          //     ),
                          //   ],
                          // ),
                        ],
                      ),
                    ),
                  )
                ],
              ),
            ),
          ),
        ],
      ),
    );
  }

  _orderMoneyDetail() {
    return Column(
      children: [
        detailObj.dataTable == 2
            ? Heng(
                left: "差旅费",
                right: detailObj.travelCost != null
                    ? "￥" + detailObj.travelCost.toString()
                    : '￥0',
                leftColor: 0xff333333,
                rightColor: 0xff333333,
              )
            : Container(),
        Heng(
          left: "技术服务费",
          right: detailObj.serviceCost != null
              ? "￥" + detailObj.serviceCost.toString()
              : '￥0',
          leftColor: 0xff333333,
          rightColor: 0xff333333,
        ),
        Heng(
          left: "优惠券抵扣",
          right: detailObj.couponDeduction != null
              ? "-￥" + detailObj.couponDeduction.toString()
              : '-￥0',
          leftColor: 0xff333333,
          rightColor: 0xff333333,
        ),
        Heng(
          left: "红包抵扣",
          right: detailObj.redEnvelopeDeduction != null
              ? "-￥" + detailObj.redEnvelopeDeduction.toString()
              : '-￥0',
          leftColor: 0xff333333,
          rightColor: 0xff333333,
        ),
        Heng(
          left: "实付款",
          right: detailObj.payCost != null && getPayCost()
              ? "￥" + detailObj.payCost.toString()
              : '￥' + totalPay.toStringAsFixed(2).toString(),
          leftColor: 0xff333333,
          rightColor: 0xffFD0808,
        ),
      ],
    );
  }

  _orderTime() {
    return Container(
      padding: EdgeInsets.only(
          left: ScreenUtil().setWidth(15),
          top: ScreenUtil().setWidth(10),
          bottom: ScreenUtil().setWidth(10)),
      child: Row(
        children: <Widget>[
          Text(
            '下单时间:',
            textAlign: TextAlign.left,
            style: TextStyle(
              fontSize: 14,
              color: Color(0xff333333),
            ),
          ),
          Text(
            detailObj.createTime != null
                ? DateUtils.instance.getFormartData(
                    timeSamp: detailObj.createTime,
                    format: "yyyy-MM-dd HH:mm:ss")
                : '',
            textAlign: TextAlign.left,
            style: TextStyle(
              fontSize: ScreenUtil().setSp(13),
              color: Color(0xff999999),
            ),
          ),
        ],
      ),
    );
  }

  ///现场视频维修前维修后
  _orderLiveVideo() {
    double width = MediaQuery.of(context).size.width;
    return Column(
      crossAxisAlignment: CrossAxisAlignment.start,
      children: <Widget>[
        Container(
          width: width,
          padding: EdgeInsets.only(
              left: ScreenUtil().setWidth(15),
              top: ScreenUtil().setWidth(10),
              bottom: ScreenUtil().setWidth(10)),
          decoration: BoxDecoration(
            border: Border(
              bottom: BorderSide(width: .5, color: Color(0xfff5f5f5)),
            ),
          ),
          child: Text(
            '现场情况(维修前)',
            textAlign: TextAlign.left,
            style: TextStyle(
              fontSize: ScreenUtil().setSp(17),
              color: Color(0xff333333),
            ),
          ),
        ),
        detailObj.beforeRepair != null
            ? Container(
                padding: EdgeInsets.only(
                    left: ScreenUtil().setWidth(15),
                    right: ScreenUtil().setWidth(15),
                    top: ScreenUtil().setWidth(15)),
                child: ClipRRect(
                  borderRadius: BorderRadius.circular(5),
                  child: new Chewie(
                    controller: ChewieController(
                      videoPlayerController:
                          //   VideoPlayerController.network(
                          // Utils.getImagePath(detailObj.beforeRepair)
                          // // imgFontUrl + detailObj.url
                          // )
                          _controllerBefore,
                      aspectRatio: 3 / 2,
                      autoPlay: false,
                      looping: true,
                      showControls: true,
                      deviceOrientationsAfterFullScreen: [
                        DeviceOrientation.portraitUp,
                      ],
                      // 占位图
                      // placeholder: Image.network(
                      //     imgFontUrl+detailObj.cover,
                      //     fit: BoxFit.contain,

                      //   ),

                      // 是否在 UI 构建的时候就加载视频
                      autoInitialize: true,

                      // 拖动条样式颜色
                      materialProgressColors: new ChewieProgressColors(
                        playedColor: Colors.red,
                        handleColor: Colors.blue,
                        backgroundColor: Colors.grey,
                        bufferedColor: Colors.lightGreen,
                      ),
                    ),
                  ),
                ))
            : Container(
                padding: EdgeInsets.only(left: 15),
                child: Text("暂无"),
              ),
        Container(
          width: width,
          padding: EdgeInsets.only(
              left: ScreenUtil().setWidth(15),
              top: ScreenUtil().setWidth(10),
              bottom: ScreenUtil().setWidth(10)),
          decoration: BoxDecoration(
            border: Border(
              bottom: BorderSide(width: .5, color: Color(0xfff5f5f5)),
            ),
          ),
          child: Text(
            '现场情况(维修后)',
            textAlign: TextAlign.left,
            style: TextStyle(
              fontSize: ScreenUtil().setSp(17),
              color: Color(0xff333333),
            ),
          ),
        ),
        detailObj.afterRepair != null
            ? Container(
                padding: EdgeInsets.only(
                    left: ScreenUtil().setWidth(15),
                    right: ScreenUtil().setWidth(15),
                    top: ScreenUtil().setWidth(15)),
                child: ClipRRect(
                  borderRadius: BorderRadius.circular(5),
                  child: new Chewie(
                    controller: ChewieController(
                      videoPlayerController:
                          //   VideoPlayerController.network(
                          // Utils.getImagePath(detailObj.afterRepair)
                          // // imgFontUrl + detailObj.url
                          // )
                          _controllerAfter,
                      aspectRatio: 3 / 2,
                      autoPlay: false,
                      looping: true,
                      showControls: true,
                      deviceOrientationsAfterFullScreen: [
                        DeviceOrientation.portraitUp,
                      ],
                      // 占位图
                      // placeholder: Image.network(
                      //     imgFontUrl+detailObj.cover,
                      //     fit: BoxFit.contain,

                      //   ),

                      // 是否在 UI 构建的时候就加载视频
                      autoInitialize: true,

                      // 拖动条样式颜色
                      materialProgressColors: new ChewieProgressColors(
                        playedColor: Colors.red,
                        handleColor: Colors.blue,
                        backgroundColor: Colors.grey,
                        bufferedColor: Colors.lightGreen,
                      ),
                    ),
                  ),
                ))
            : Container(
                padding: EdgeInsets.only(left: 15),
                child: Text("暂无"),
              ),
      ],
    );
  }

  _orderSSInfo() {
    return Container(
      padding: EdgeInsets.only(
          left: ScreenUtil().setWidth(15),
          top: ScreenUtil().setWidth(10),
          bottom: ScreenUtil().setWidth(10)),
      child: Column(
        children: <Widget>[
          Row(
            children: <Widget>[
              Text(
                '申诉内容:',
                textAlign: TextAlign.left,
                style: TextStyle(
                  fontSize: 14,
                  color: Color(0xff333333),
                ),
              ),
              Text(
                detailObj.liftCaseAppealEntity != null &&
                        detailObj.liftCaseAppealEntity.content != null
                    ? detailObj.liftCaseAppealEntity.content
                    : '',
                textAlign: TextAlign.left,
                style: TextStyle(
                  fontSize: 14,
                  color: Color(0xff999999),
                ),
              ),
            ],
          ),
          Row(
            children: <Widget>[
              Text(
                '申诉时间:',
                textAlign: TextAlign.left,
                style: TextStyle(
                  fontSize: 14,
                  color: Color(0xff333333),
                ),
              ),
              Text(
                detailObj.liftCaseAppealEntity != null &&
                        detailObj.liftCaseAppealEntity.createTime != null
                    ? DateUtils.instance.getFormartData(
                        timeSamp: detailObj.liftCaseAppealEntity.createTime,
                        format: "yyyy-MM-dd HH:mm:ss")
                    : '',
                textAlign: TextAlign.left,
                style: TextStyle(
                  fontSize: 14,
                  color: Color(0xff999999),
                ),
              ),
            ],
          ),
        ],
      ),
    );
  }

  isShowMoneyDetail() {
    bool show = true;
    if (detailObj.dataTable == 2) {
      switch (detailObj.statuz) {
        case 0:
        case 1:
          show = false;
          break;

        default:
      }
    }

    //  else if (detailObj.dataTable == 1) {
    //   switch (detailObj.statuz) {
    //     case 0:
    //     case 1:
    //       show = false;
    //       break;

    //     default:
    //   }
    // }

    // if ((detailObj.dataTable == 2 && (detailObj.statuz == 2)) ||
    //     (detailObj.dataTable == 2 && detailObj.statuz == 2)) {
    //   show = false;
    // }
    return show;
  }

  isShowOrderLive() {
    bool show = false;
    if (detailObj.dataTable == 2) {
      show = true;
      switch (detailObj.statuz) {
        case 0:
        case 1:
        case 2:
          show = false;
          break;

        default:
      }
    }
    return show;
  }

  void setDataId(int id) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    prefs.setInt("dataId", id);
  }

  void setType(String type) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    prefs.setString("questionType", type);
  }

  @override
  bool get wantKeepAlive => true;
}

class BottomBtn extends StatelessWidget {
  BottomBtn({Key key, this.title, this.fun, this.isBlueBtn = true})
      : super(key: key);
  Function fun;
  String title;
  bool isBlueBtn;
  @override
  Widget build(BuildContext context) {
    return Expanded(
      // margin: EdgeInsets.only(left: 10),
      child: GestureDetector(
        onTap: () {
          fun();
        },
        child: Container(
          child: Container(
            margin: EdgeInsets.only(left: 15, right: 15),
            // height:22,
            // padding: EdgeInsets.only(
            //     left: ScreenUtil().setWidth(20),
            //     right: ScreenUtil().setWidth(20)),
            decoration: BoxDecoration(
                // border: Border.all(width: 1, color: Color(0xff1B87F6)),
                borderRadius: BorderRadius.circular(23),
                color: isBlueBtn ? Colours.blue_app_main : Color(0xffEEEEEE)),
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Text(
                  title,
                  textAlign: TextAlign.center,
                  style: TextStyle(
                    fontSize: ScreenUtil().setSp(15),
                    color: isBlueBtn ? Colors.white : Color(0xff666666),
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}
