coupon_page.dart 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import 'dart:convert';
  2. import 'package:bbyyy/beans/my_coupon_bean_entity.dart';
  3. import 'package:bbyyy/my_tools/event_bus.dart';
  4. import 'package:bbyyy/my_tools/my_colors.dart';
  5. import 'package:bbyyy/my_tools/my_views.dart';
  6. import 'package:bbyyy/paegs/mine_page/coupon_page/coupon_view.dart';
  7. import 'package:flutter/material.dart';
  8. import 'package:pull_to_refresh/pull_to_refresh.dart';
  9. import '../../../https/MyDio.dart';
  10. import '../../../my_tools/dims.dart';
  11. import '../../../my_tools/my_cookie.dart';
  12. import '../../../my_tools/my_tools.dart';
  13. class CouponPage extends StatefulWidget {
  14. @override
  15. _CouponPageState createState() => _CouponPageState();
  16. }
  17. class _CouponPageState extends State<CouponPage> {
  18. // int selectedIndex = 0;
  19. int page = 1;
  20. RefreshController controller = RefreshController(initialRefresh: true);
  21. List<MyCouponBeanDataData> coupons = [];
  22. @override
  23. void initState() {
  24. // TODO: implement initState
  25. super.initState();
  26. EventBus().on('showCouponIndex', (arg) {
  27. setState(() {});
  28. });
  29. }
  30. @override
  31. void dispose() {
  32. // TODO: implement dispose
  33. super.dispose();
  34. EventBus().off('showCouponIndex');
  35. }
  36. @override
  37. Widget build(BuildContext context) {
  38. return Scaffold(
  39. backgroundColor: MyColors.cF7F7F7,
  40. body: Column(
  41. children: [
  42. MyViews().myAppBar('优惠券', context, []),
  43. Expanded(
  44. child: SmartRefresher(
  45. controller: controller,
  46. onRefresh: onRefresh,
  47. onLoading: onLoading,
  48. enablePullUp: true,
  49. enablePullDown: true,
  50. child: coupons.length==0?SingleChildScrollView(child: noData()):ListView.builder(
  51. itemBuilder: (c, index) {
  52. return CouponView().ticketItem(coupons[index]);
  53. },
  54. itemCount: coupons.length,
  55. padding:
  56. EdgeInsets.only(top: 5, left: 24, right: 24, bottom: 20),
  57. ),
  58. ),
  59. ),
  60. ],
  61. ),
  62. );
  63. }
  64. void onRefresh() {
  65. page = 1;
  66. checkCoupons();
  67. }
  68. void onLoading() {
  69. page++;
  70. checkCoupons();
  71. }
  72. checkCoupons() {
  73. MyDio().query({
  74. "key": "coupon",
  75. "filters": {
  76. "conditions": ["user_uid==${MyCookie().getUID()}"]
  77. },
  78. "dims": couponDims,
  79. "paging": [page, 20]
  80. }, (response, hasError) {
  81. if (!hasError) {
  82. MyCouponBeanEntity entity = MyCouponBeanEntity.fromJson(json.decode(response.data.toString()));
  83. if (page == 1) {
  84. coupons.clear();
  85. }
  86. coupons.addAll(entity.data.data);
  87. setState(() {});
  88. }
  89. endRe(controller);
  90. }, (error) {
  91. endRe(controller);
  92. });
  93. }
  94. }