piao_detail.dart 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. // import 'package:flutter/cupertino.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:liftmanager/common/common.dart';
  4. import 'package:liftmanager/internal/account/account_router.dart';
  5. import 'package:liftmanager/internal/account/model/user_info_entity.dart';
  6. import 'package:liftmanager/internal/wode/wode_router.dart';
  7. import 'package:liftmanager/net/api_service.dart';
  8. import 'package:liftmanager/routers/fluro_navigator.dart';
  9. import 'package:liftmanager/utils/image_utils.dart';
  10. import 'package:liftmanager/widgets/app_bar.dart';
  11. import 'package:liftmanager/widgets/click_item.dart';
  12. import 'package:liftmanager/widgets/load_image.dart';
  13. import 'package:liftmanager/widgets/my_button.dart';
  14. import 'package:provider/provider.dart';
  15. import 'package:liftmanager/widgets/bbs_content.dart';
  16. import 'package:liftmanager/internal/bbs/bbs_router.dart';
  17. import 'package:flutter_screenutil/flutter_screenutil.dart';
  18. import 'package:liftmanager/utils/toast.dart';
  19. import 'package:liftmanager/utils/log_util.dart';
  20. import 'dart:convert';
  21. import 'package:liftmanager/utils/time_format.dart';
  22. class PiaoDetail extends StatefulWidget {
  23. PiaoDetail(this.id);
  24. final String id;
  25. @override
  26. State<StatefulWidget> createState() {
  27. return PiaoDetailState();
  28. }
  29. }
  30. class PiaoDetailState extends State<PiaoDetail> with AutomaticKeepAliveClientMixin {
  31. bool _hasData = false;
  32. var detailObj;
  33. @override
  34. void initState() {
  35. super.initState();
  36. getPiaoDetail();
  37. print(widget.id);
  38. print(123789);
  39. }
  40. Future getPiaoDetail() async {
  41. await NewApiService().getPiaoDetail(int.parse(widget.id),
  42. onSuccess: (res) {
  43. if (res != null) {
  44. _hasData = true;
  45. detailObj = res;
  46. // LogUtil.d(JsonEncoder(detailObj));
  47. LogUtil.d(JsonEncoder().convert(detailObj));
  48. print(9999);
  49. setState(() {});
  50. }
  51. }, onError: (code, msg) {
  52. toasts(msg);
  53. });
  54. }
  55. @override
  56. Widget build(BuildContext context) {
  57. double width = MediaQuery.of(context).size.width;
  58. return
  59. Scaffold(
  60. appBar: MyAppBar(
  61. centerTitle: "发票详情",
  62. ),
  63. body: _hasData
  64. ?Stack(
  65. children:<Widget>[
  66. ListView(padding: EdgeInsets.all(0.0), children: <Widget>[
  67. // detailObj.checkFlag==1?Kan(title:'电子发票已开票',time:"${detailObj.createTime!=null?DateUtils.instance.getFormartData(timeSamp: detailObj.createTime,format: "yyyy-MM-dd"):''}",fun:(){
  68. // NavigatorUtils.push(context, WodeRouter.piaoCheck);
  69. // }):
  70. // Container(
  71. // padding: EdgeInsets.only(left:ScreenUtil().setWidth(15),right:ScreenUtil().setWidth(15),top:ScreenUtil().setWidth(10),bottom:ScreenUtil().setWidth(10)),
  72. // child: Text("未开发票"),
  73. // ),
  74. Container(
  75. padding: EdgeInsets.only(left:ScreenUtil().setWidth(15),right:ScreenUtil().setWidth(15),top:ScreenUtil().setWidth(10),bottom:ScreenUtil().setWidth(10)),
  76. color: Color(0xfff5f5f5),
  77. child:Text(
  78. '接收方式',
  79. textAlign: TextAlign.left,
  80. style: TextStyle(
  81. fontSize:ScreenUtil().setSp(14),
  82. color:Color(0xff333333),
  83. ),
  84. ),
  85. ),
  86. detailObj.invoiceType=="1"? Heng(left:"电子邮箱",right:"${detailObj.email??""}",leftColor:0xff999999,rightColor: 0xff333333,)
  87. :Column(
  88. children: <Widget>[
  89. Heng(left:"收票人",right:"${detailObj.receiveTicket??""}",leftColor:0xff999999,rightColor: 0xff333333,),
  90. Heng(left:"收票人电话",right:"${detailObj.receiveMebile??""}",leftColor:0xff999999,rightColor: 0xff333333,),
  91. Heng(left:"收票人地址",right:"${detailObj.receiveAddress??""}",leftColor:0xff999999,rightColor: 0xff333333,),
  92. ],
  93. ),
  94. Container(
  95. padding: EdgeInsets.only(left:ScreenUtil().setWidth(15),right:ScreenUtil().setWidth(15),top:ScreenUtil().setWidth(10),bottom:ScreenUtil().setWidth(10)),
  96. color: Color(0xfff5f5f5),
  97. child:Text(
  98. '发票详情',
  99. textAlign: TextAlign.left,
  100. style: TextStyle(
  101. fontSize:ScreenUtil().setSp(14),
  102. color:Color(0xff333333),
  103. ),
  104. ),
  105. ),
  106. Heng(left:"发票类型",right:"${detailObj.type==1?"个人":"企业"}",leftColor:0xff999999,rightColor: 0xff333333,),
  107. Heng(left:"发票抬头",right:"${detailObj.userInvoice?.name??"咨询服务费"}",leftColor:0xff999999,rightColor: 0xff333333,),
  108. detailObj.type==2?Heng(left:"企业税号",right:"${detailObj.userInvoice?.enterpriseNumber??""}",leftColor:0xff999999,rightColor: 0xff333333,):Container(child:null),
  109. Heng(left:"发票内容",right:"${detailObj.userInvoice?.gmfMc??"咨询服务费"}",leftColor:0xff999999,rightColor: 0xff333333,),
  110. Heng(left:"发票金额",right:"${detailObj.hjje.toString()??""}",leftColor:0xff999999,rightColor: 0xff333333,),
  111. Heng(left:"申请时间",right:"${detailObj.createTime!=null?DateUtils.instance.getFormartData(timeSamp: detailObj.createTime,format: "yyyy-MM-dd HH:mm"):''}",leftColor:0xff999999,rightColor: 0xff333333,),
  112. detailObj.checkFlag==0 ?Heng(left:"驳回原因",right:"${detailObj.reason??""}",leftColor:0xff999999,rightColor: 0xff333333,):Container(child:null),
  113. Container(
  114. color: Color(0xffFAF7FA),
  115. height: ScreenUtil().setWidth(5),
  116. ),
  117. Kan(title:'查看订单',time:"",fun:(){
  118. NavigatorUtils.push(context, "${WodeRouter.piaoOrder}?id=${detailObj.id}");
  119. })
  120. // Kan(title:'含两个订单',time:"2020-02-26 11:06-2020-02-26 11:06",fun:(){
  121. // NavigatorUtils.push(context, WodeRouter.piaoOrder);
  122. // })
  123. ]),
  124. ]
  125. ):Center(
  126. child: Text("正在加载..."),
  127. )
  128. );
  129. }
  130. @override
  131. bool get wantKeepAlive => true;
  132. }
  133. class Heng extends StatelessWidget {
  134. Heng({Key key,this.left,this.right,this.leftColor,this.rightColor}) : super(key: key);
  135. String left;
  136. String right;
  137. int leftColor;
  138. int rightColor;
  139. @override
  140. Widget build(BuildContext context) {
  141. double width = MediaQuery.of(context).size.width;
  142. return Container(
  143. padding: EdgeInsets.only(left:ScreenUtil().setWidth(15),right:ScreenUtil().setWidth(15),top:ScreenUtil().setWidth(10),bottom:ScreenUtil().setWidth(10)),
  144. decoration: BoxDecoration(
  145. border: Border(
  146. bottom: BorderSide(width: .5, color:Color(0xfff5f5f5)),
  147. ),
  148. ),
  149. child: Row(
  150. mainAxisAlignment: MainAxisAlignment.spaceBetween,
  151. children:<Widget>[
  152. Text(
  153. left,
  154. style: TextStyle(
  155. color:Color(leftColor),
  156. fontSize:ScreenUtil().setSp(14)
  157. ),
  158. textAlign:TextAlign.start,
  159. ),
  160. Container(
  161. width: width*0.7,
  162. child: Text(
  163. right,
  164. style: TextStyle(
  165. color:Color(rightColor),
  166. fontSize:ScreenUtil().setSp(14)
  167. ),
  168. textAlign:TextAlign.start,
  169. overflow: TextOverflow.ellipsis,
  170. ),
  171. )
  172. ]
  173. ),
  174. );
  175. }
  176. }
  177. class Kan extends StatelessWidget {
  178. Kan({Key key,this.title,this.time,this.fun}) : super(key: key);
  179. String title;
  180. String time;
  181. Function fun;
  182. @override
  183. Widget build(BuildContext context) {
  184. return GestureDetector(
  185. behavior: HitTestBehavior.opaque,
  186. onTap: (){
  187. fun();
  188. },
  189. child:Container(
  190. padding: EdgeInsets.only(left:ScreenUtil().setWidth(15),right:ScreenUtil().setWidth(5),top:ScreenUtil().setWidth(10),bottom:ScreenUtil().setWidth(10)),
  191. child: Row(
  192. mainAxisAlignment: MainAxisAlignment.spaceBetween,
  193. children:<Widget>[
  194. Column(
  195. crossAxisAlignment: CrossAxisAlignment.start,
  196. children:<Widget>[
  197. Text(
  198. title,
  199. textAlign: TextAlign.left,
  200. style: TextStyle(
  201. fontSize:ScreenUtil().setSp(14),
  202. color:Color(0xff666666),
  203. ),
  204. ),
  205. // SizedBox(
  206. // height:5
  207. // ),
  208. // Text(
  209. // time,
  210. // textAlign: TextAlign.left,
  211. // style: TextStyle(
  212. // fontSize:ScreenUtil().setSp(12),
  213. // color:Color(0xff666666),
  214. // ),
  215. // ),
  216. ]
  217. ),
  218. Row(
  219. children:<Widget>[
  220. // Text(
  221. // '查看',
  222. // textAlign: TextAlign.left,
  223. // style: TextStyle(
  224. // fontSize:ScreenUtil().setSp(12),
  225. // color:Color(0xff666666),
  226. // ),
  227. // ),
  228. Icon(
  229. Icons.keyboard_arrow_right,
  230. color: Color(0xffcccccc),
  231. ),
  232. ]
  233. )
  234. ]
  235. ),
  236. )
  237. );
  238. }
  239. }