piao_list.dart 14 KB

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