piao_list.dart 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_screenutil/flutter_screenutil.dart';
  3. import 'package:liftmanager/internal/search/presenter/base_list_provider.dart';
  4. import 'package:liftmanager/internal/wode/model/piao_model.dart';
  5. import 'package:liftmanager/internal/wode/presenter/piao_list_presenter.dart';
  6. import 'package:liftmanager/internal/wode/wode_router.dart';
  7. import 'package:liftmanager/mvp/base_page_state.dart';
  8. import 'package:liftmanager/res/colors.dart';
  9. import 'package:liftmanager/routers/fluro_navigator.dart';
  10. import 'package:liftmanager/utils/time_format.dart';
  11. import 'package:liftmanager/widgets/app_bar.dart';
  12. import 'package:liftmanager/widgets/my_card.dart';
  13. import 'package:liftmanager/widgets/my_refresh_list.dart';
  14. import 'package:liftmanager/widgets/state_layout.dart';
  15. import 'package:provider/provider.dart';
  16. import 'package:umeng_common_sdk/umeng_common_sdk.dart';
  17. class PiaoList extends StatefulWidget {
  18. // QuestionList(this.index);
  19. // final String index;
  20. @override
  21. PiaoListState createState() => PiaoListState();
  22. }
  23. class PiaoListState extends BasePageState<PiaoList, PiaoListPresenter> {
  24. BaseListProvider<Records> provider = BaseListProvider<Records>();
  25. int _page = 1;
  26. @override
  27. void initState() {
  28. UmengCommonSdk.onPageStart("开票历史");
  29. provider.setStateTypeNotNotify(StateType.loading);
  30. super.initState();
  31. _onRefresh();
  32. print(66666);
  33. }
  34. getCheckFlag(int type) {
  35. String str;
  36. if (type == 1) {
  37. str = "已开票";
  38. } else if (type == 2) {
  39. str = "已提交申请";
  40. } else if (type == 0) {
  41. str = "驳回";
  42. }
  43. return str;
  44. }
  45. @override
  46. void dispose() {
  47. UmengCommonSdk.onPageEnd("开票历史");
  48. super.dispose();
  49. }
  50. @override
  51. Widget build(BuildContext context) {
  52. double width = MediaQuery.of(context).size.width;
  53. return ChangeNotifierProvider<BaseListProvider<Records>>(
  54. create: (_) => provider,
  55. child: Scaffold(
  56. // resizeToAvoidBottomPadding: true,
  57. appBar: MyAppBar(
  58. centerTitle: "开票历史",
  59. // actions:<Widget>[
  60. // FlatButton(
  61. // child: Text("发票抬头"),
  62. // textColor: Colours.dark_text,
  63. // highlightColor: Colors.transparent,
  64. // onPressed: () {
  65. // NavigatorUtils.push(context, WodeRouter.piaotou);
  66. // },
  67. // )
  68. // ],
  69. ),
  70. body: Container(
  71. color: Color(0xFFF6F6F6),
  72. child: Column(
  73. crossAxisAlignment: CrossAxisAlignment.start,
  74. children: <Widget>[
  75. Expanded(
  76. flex: 1,
  77. child: Consumer<BaseListProvider<Records>>(
  78. builder: (_, provider, __) {
  79. return MyListView(
  80. key: Key('piao_list'),
  81. itemCount: provider.list.length,
  82. stateType: provider.stateType,
  83. onRefresh: _onRefresh,
  84. loadMore: _loadMore,
  85. pageSize: 6,
  86. hasMore: provider.hasMore,
  87. itemBuilder: (_, index) {
  88. return Container(
  89. padding: EdgeInsets.only(
  90. bottom: ScreenUtil().setWidth(15),
  91. left: ScreenUtil().setWidth(10),
  92. right: ScreenUtil().setWidth(10),
  93. top: ScreenUtil().setWidth(15)),
  94. // : EdgeInsets.only(
  95. // left: ScreenUtil().setWidth(10),
  96. // right: ScreenUtil().setWidth(10),
  97. // top: ScreenUtil().setWidth(15)),
  98. margin: EdgeInsets.fromLTRB(10, 10, 10, 0),
  99. decoration: new BoxDecoration(
  100. //背景
  101. color: Colors.white,
  102. //设置四周圆角 角度
  103. borderRadius:
  104. BorderRadius.all(Radius.circular(5.0)),
  105. ),
  106. child: InkWell(
  107. child: Container(
  108. padding: EdgeInsets.only(
  109. left: ScreenUtil().setWidth(5),
  110. right: ScreenUtil().setWidth(5),
  111. top: ScreenUtil().setWidth(5),
  112. bottom: ScreenUtil().setWidth(5)),
  113. child: Column(
  114. crossAxisAlignment:
  115. CrossAxisAlignment.start,
  116. children: <Widget>[
  117. Row(
  118. mainAxisAlignment:
  119. MainAxisAlignment.spaceBetween,
  120. children: <Widget>[
  121. Row(
  122. // crossAxisAlignment:
  123. // CrossAxisAlignment.center,
  124. mainAxisAlignment:
  125. MainAxisAlignment.center,
  126. children: [
  127. Container(
  128. padding:
  129. EdgeInsets.only(bottom: 5),
  130. child: Icon(
  131. const IconData(0xe6e0,
  132. fontFamily: "Iconfont"),
  133. size: 18.0,
  134. color: Color(0xffcccccc),
  135. ),
  136. ),
  137. SizedBox(
  138. width: 10,
  139. ),
  140. Text(
  141. provider.list[index]
  142. .createTime !=
  143. null
  144. ? DateUtils.instance
  145. .getFormartData(
  146. timeSamp: provider
  147. .list[index]
  148. .createTime,
  149. format:
  150. "yyyy-MM-dd HH:mm")
  151. : "",
  152. textAlign: TextAlign.start,
  153. style: TextStyle(
  154. fontSize:
  155. ScreenUtil().setSp(16),
  156. color: Color(0xff999999),
  157. ),
  158. ),
  159. ],
  160. ),
  161. Text(
  162. getCheckFlag(
  163. provider.list[index].checkFlag),
  164. textAlign: TextAlign.left,
  165. style: TextStyle(
  166. fontSize:
  167. ScreenUtil().setSp(14),
  168. color: Colours.blue_app_main),
  169. ),
  170. ],
  171. ),
  172. SizedBox(
  173. height: 30,
  174. ),
  175. Row(
  176. children: <Widget>[
  177. Text(
  178. "服务 ",
  179. textAlign: TextAlign.left,
  180. style: TextStyle(
  181. fontSize: ScreenUtil().setSp(16),
  182. color: Color(0xff000000),
  183. ),
  184. ),
  185. Container(
  186. padding:
  187. EdgeInsets.fromLTRB(5, 2, 5, 2),
  188. decoration: new BoxDecoration(
  189. //背景
  190. color: Colors.white,
  191. //设置四周圆角 角度
  192. borderRadius: BorderRadius.all(
  193. Radius.circular(4.0)),
  194. //设置四周边框
  195. border: new Border.all(
  196. width: 1,
  197. color: Color(0xffcccccc)),
  198. ),
  199. child: Text(
  200. provider.list[index]
  201. .invoiceType ==
  202. '1'
  203. ? '电子发票'
  204. : '专用发票',
  205. style: TextStyle(
  206. color: Color(0xffcccccc)),
  207. ),
  208. )
  209. ],
  210. ),
  211. SizedBox(height: 10),
  212. Container(
  213. child: Text(
  214. "发票代码:${provider.list[index].dm ?? ''}",
  215. textAlign: TextAlign.left,
  216. style: TextStyle(
  217. fontSize: ScreenUtil().setSp(14),
  218. color: Color(0xff999999),
  219. ),
  220. ),
  221. ),
  222. SizedBox(height: 10),
  223. Row(
  224. mainAxisAlignment:
  225. MainAxisAlignment.spaceBetween,
  226. children: <Widget>[
  227. Text(
  228. "发票号码:${provider.list[index].hm ?? ''}",
  229. textAlign: TextAlign.left,
  230. style: TextStyle(
  231. fontSize: ScreenUtil().setSp(14),
  232. color: Color(0xff999999),
  233. ),
  234. ),
  235. Text(
  236. '¥${provider.list[index].hjje ?? "0"}',
  237. textAlign: TextAlign.left,
  238. style: TextStyle(
  239. fontSize: ScreenUtil().setSp(16),
  240. color: Color(0xff333333),
  241. ),
  242. ),
  243. ],
  244. ),
  245. // Container(
  246. // child: Text(
  247. // '开票序号:${provider.list[index].hm??"0"}',
  248. // textAlign: TextAlign.left,
  249. // style: TextStyle(
  250. // fontSize:ScreenUtil().setSp(14),
  251. // color:Color(0xff999999),
  252. // ),
  253. // ),
  254. // ),
  255. ]),
  256. ),
  257. onTap: () {
  258. NavigatorUtils.push(context,
  259. "${WodeRouter.piaoDetail}?id=${provider.list[index].id}");
  260. },
  261. ),
  262. );
  263. },
  264. );
  265. }))
  266. ],
  267. ),
  268. ),
  269. ));
  270. }
  271. Future _onRefresh() async {
  272. _page = 1;
  273. await presenter.getWalletList(_page);
  274. }
  275. Future _loadMore() async {
  276. _page++;
  277. await presenter.getWalletList(_page);
  278. }
  279. @override
  280. PiaoListPresenter createPresenter() {
  281. return PiaoListPresenter();
  282. }
  283. }