import 'dart:convert'; import 'package:bbyyy/beans/my_coupon_bean_entity.dart'; import 'package:bbyyy/my_tools/event_bus.dart'; import 'package:bbyyy/my_tools/my_colors.dart'; import 'package:bbyyy/my_tools/my_views.dart'; import 'package:bbyyy/paegs/mine_page/coupon_page/coupon_view.dart'; import 'package:flutter/material.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; import '../../../https/MyDio.dart'; import '../../../my_tools/dims.dart'; import '../../../my_tools/my_cookie.dart'; import '../../../my_tools/my_tools.dart'; class CouponPage extends StatefulWidget { @override _CouponPageState createState() => _CouponPageState(); } class _CouponPageState extends State { // int selectedIndex = 0; int page = 1; RefreshController controller = RefreshController(initialRefresh: true); List coupons = []; @override void initState() { // TODO: implement initState super.initState(); EventBus().on('showCouponIndex', (arg) { setState(() {}); }); } @override void dispose() { // TODO: implement dispose super.dispose(); EventBus().off('showCouponIndex'); } @override Widget build(BuildContext context) { return Scaffold( backgroundColor: MyColors.cF7F7F7, body: Column( children: [ MyViews().myAppBar('优惠券', context, []), Expanded( child: SmartRefresher( controller: controller, onRefresh: onRefresh, onLoading: onLoading, enablePullUp: true, enablePullDown: true, child: coupons.length==0?SingleChildScrollView(child: noData()):ListView.builder( itemBuilder: (c, index) { return CouponView().ticketItem(coupons[index]); }, itemCount: coupons.length, padding: EdgeInsets.only(top: 5, left: 24, right: 24, bottom: 20), ), ), ), ], ), ); } void onRefresh() { page = 1; checkCoupons(); } void onLoading() { page++; checkCoupons(); } checkCoupons() { MyDio().query({ "key": "coupon", "filters": { "conditions": ["user_uid==${MyCookie().getUID()}"] }, "dims": couponDims, "paging": [page, 20] }, (response, hasError) { if (!hasError) { MyCouponBeanEntity entity = MyCouponBeanEntity() .fromJson(json.decode(response.data.toString())); if (page == 1) { coupons.clear(); } coupons.addAll(entity.data.data); setState(() {}); } endRe(controller); }, (error) { endRe(controller); }); } }