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 createState() { return OrderDetailState(); } } class OrderDetailState extends State 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 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( create: (_) => provider, child: Scaffold( appBar: MyAppBar( centerTitle: "订单详情", ), body: _hasData ? Consumer( builder: (_, provider, __) { return SafeArea( child: Stack( children: [ ListView( padding: EdgeInsets.all(0.0), children: [ // 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: [ Row( children: [ 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: [ 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: [ 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: [ 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: [ 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: [ Container( child: Row( mainAxisAlignment: MainAxisAlignment.start, children: [ Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ 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: [ Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ 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: [ Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ 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: [ 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: [ 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: [ 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: [ // Row( // crossAxisAlignment: // CrossAxisAlignment // .center, // children: [ // 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: [ // 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: [ 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: [ 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: [ Row( children: [ 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: [ 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: [ Text( title, textAlign: TextAlign.center, style: TextStyle( fontSize: ScreenUtil().setSp(15), color: isBlueBtn ? Colors.white : Color(0xff666666), ), ), ], ), ), ), ), ); } }