redbao_page.dart 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. import 'package:flutter/material.dart';
  2. import 'package:liftmanager/res/gaps.dart';
  3. import 'package:liftmanager/net/api_service.dart';
  4. import 'package:liftmanager/utils/toast.dart';
  5. import 'package:liftmanager/widgets/app_bar.dart';
  6. import 'package:liftmanager/internal/search/search_router.dart';
  7. import 'package:liftmanager/widgets/app_search_bar.dart';
  8. import 'package:liftmanager/res/resources.dart';
  9. import 'package:liftmanager/routers/fluro_navigator.dart';
  10. import 'package:liftmanager/widgets/load_image.dart';
  11. import 'package:liftmanager/internal/bbs/bbs_router.dart';
  12. import 'package:liftmanager/widgets/my_card.dart';
  13. import 'package:flutter_screenutil/flutter_screenutil.dart';
  14. import 'package:liftmanager/internal/search/presenter/base_list_provider.dart';
  15. import 'package:liftmanager/mvp/base_page_state.dart';
  16. import 'package:liftmanager/internal/bbs/model/coupon_model_page.dart';
  17. import 'package:liftmanager/internal/wode/presenter/red_list_presenter.dart';
  18. import 'package:liftmanager/widgets/my_refresh_list.dart';
  19. import 'package:liftmanager/widgets/state_layout.dart';
  20. import 'package:provider/provider.dart';
  21. import 'package:liftmanager/utils/time_format.dart';
  22. import 'package:liftmanager/utils/log_util.dart';
  23. class RedbaoPage extends StatefulWidget {
  24. // QuestionList(this.index);
  25. // final String index;
  26. @override
  27. RedbaoPageState createState() => RedbaoPageState();
  28. }
  29. class RedbaoPageState extends BasePageState<RedbaoPage,RedtListPresenter>
  30. with AutomaticKeepAliveClientMixin{
  31. // NewsDetailItem item = NewsDetailItem();
  32. BaseListProvider<Records> provider =
  33. BaseListProvider<Records>();
  34. ScrollController _scrollController = new ScrollController();
  35. int _page = 1;
  36. @override
  37. void initState() {
  38. provider.setStateTypeNotNotify(StateType.loading);
  39. super.initState();
  40. _onRefresh();
  41. print(66666);
  42. }
  43. @override
  44. void dispose() {
  45. _scrollController.dispose();
  46. super.dispose();
  47. }
  48. getScenario(int type){
  49. String str;
  50. if(type==0){
  51. str = "全场通用";
  52. }else if (type==1){
  53. str = "仅限出诊问诊服务";
  54. }else if(type==2){
  55. str = "仅限题库";
  56. }else if(type==3){
  57. str = "仅限视频";
  58. }
  59. return str;
  60. }
  61. @override
  62. Widget build(BuildContext context) {
  63. double width = MediaQuery.of(context).size.width;
  64. return
  65. ChangeNotifierProvider<BaseListProvider<Records>>(
  66. create: (_) => provider,
  67. child:
  68. Scaffold(
  69. resizeToAvoidBottomPadding: true,
  70. appBar: MyAppBar(
  71. centerTitle:"我的红包"
  72. ),
  73. body: Container(
  74. // color: Color(0xFFF1F4FC),
  75. child: Column(
  76. crossAxisAlignment: CrossAxisAlignment.start,
  77. children: <Widget>[
  78. Expanded(
  79. flex: 1,
  80. child: Consumer<BaseListProvider<Records>>(
  81. builder: (_, provider, __) {
  82. return MyListView(
  83. key: Key('red_list'),
  84. itemCount: provider.list.length,
  85. stateType: provider.stateType,
  86. onRefresh: _onRefresh,
  87. loadMore: _loadMore,
  88. pageSize: 8,
  89. hasMore: provider.hasMore,
  90. itemBuilder: (_, index) {
  91. return Container(
  92. child: Column(
  93. children: <Widget>[
  94. Container(
  95. padding: EdgeInsets.only(left:ScreenUtil().setWidth(10),right:ScreenUtil().setWidth(10),top:ScreenUtil().setWidth(15)),
  96. child: MyCard(
  97. child:InkWell(
  98. child:Container(
  99. padding: EdgeInsets.only(left:ScreenUtil().setWidth(15),right:ScreenUtil().setWidth(15),top:ScreenUtil().setWidth(10),bottom:ScreenUtil().setWidth(10)),
  100. child: Row(
  101. crossAxisAlignment: CrossAxisAlignment.start,
  102. children:<Widget>[
  103. Container(
  104. padding: EdgeInsets.only(right:ScreenUtil().setWidth(25),left: ScreenUtil().setWidth(10),top:ScreenUtil().setWidth(15)),
  105. child: Icon(
  106. IconData(
  107. 0xe630,
  108. fontFamily:"myfont"
  109. ),
  110. size: 60.0,
  111. color:Color(0xffFE524C),
  112. ),
  113. ),
  114. Column(
  115. crossAxisAlignment: CrossAxisAlignment.start,
  116. children: <Widget>[
  117. Text(
  118. provider.list[index].coupon.price.toString(),
  119. textAlign: TextAlign.left,
  120. style: TextStyle(
  121. fontSize:ScreenUtil().setSp(26),
  122. color:Color(0xff333333),
  123. ),
  124. ),
  125. // Row(
  126. // children: <Widget>[
  127. // Text(
  128. // DateUtils.instance
  129. // .getFormartData(
  130. // timeSamp: provider.list[index].coupon.createTime,
  131. // format: "yyyy-MM-dd"),
  132. // textAlign: TextAlign.left,
  133. // style: TextStyle(
  134. // fontSize:ScreenUtil().setSp(14),
  135. // color:Color(0xff999999),
  136. // ),
  137. // ),
  138. // Text(
  139. // "至",
  140. // textAlign: TextAlign.left,
  141. // style: TextStyle(
  142. // fontSize:ScreenUtil().setSp(14),
  143. // color:Color(0xff999999),
  144. // ),
  145. // ),
  146. // Text(
  147. // DateUtils.instance
  148. // .getFormartData(
  149. // timeSamp: provider.list[index].coupon.updateTime,
  150. // format: "yyyy-MM-dd"),
  151. // textAlign: TextAlign.left,
  152. // style: TextStyle(
  153. // fontSize:ScreenUtil().setSp(14),
  154. // color:Color(0xff999999),
  155. // ),
  156. // ),
  157. // ],
  158. // ),
  159. SizedBox(
  160. height:8
  161. ),
  162. Container(
  163. width: ScreenUtil().setWidth(200),
  164. height:0.5,
  165. color:Color(0xffeeeeee),
  166. child: null,
  167. ),
  168. SizedBox(
  169. height:5
  170. ),
  171. Text(
  172. getScenario(provider.list[index].coupon.scenario),
  173. textAlign: TextAlign.left,
  174. style: TextStyle(
  175. fontSize:ScreenUtil().setSp(14),
  176. color:Color(0xff999999),
  177. ),
  178. ),
  179. ],
  180. ),
  181. ]
  182. ),
  183. ),
  184. onTap: (){
  185. },
  186. )
  187. ),
  188. )
  189. ],
  190. ),
  191. );
  192. },
  193. );
  194. })
  195. )
  196. ],
  197. ),
  198. ),
  199. ));
  200. }
  201. Future _onRefresh() async {
  202. _page = 1;
  203. await presenter.getRedList( _page);
  204. }
  205. Future _loadMore() async {
  206. _page++;
  207. await presenter.getRedList(_page);
  208. }
  209. @override
  210. RedtListPresenter createPresenter() {
  211. return RedtListPresenter();
  212. }
  213. bool get wantKeepAlive => true;
  214. }