import 'dart:convert'; import 'package:bbyyy/beans/goods_bean_entity.dart'; import 'package:bbyyy/https/MyDio.dart'; import 'package:bbyyy/my_tools/dims.dart'; import 'package:bbyyy/my_tools/event_bus.dart'; import 'package:bbyyy/my_tools/my_colors.dart'; import 'package:bbyyy/my_tools/my_cookie.dart'; import 'package:bbyyy/my_tools/my_tools.dart'; import 'package:bbyyy/my_tools/my_views.dart'; import 'package:bbyyy/paegs/release_goods_page/release_goods_page.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_slidable/flutter_slidable.dart'; import 'package:flutter_svg/svg.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; class MyGoodsPage extends StatefulWidget { @override _MyGoodsPageState createState() => _MyGoodsPageState(); } class _MyGoodsPageState extends State { List data = []; RefreshController controller = RefreshController(initialRefresh: true); int page = 1; @override void initState() { // TODO: implement initState super.initState(); EventBus().on('updateProduct', (arg) {controller.requestRefresh();}); } @override void dispose() { // TODO: implement dispose super.dispose(); EventBus().off('updateProduct'); } @override Widget build(BuildContext context) { return Scaffold( backgroundColor: MyColors.cF7F7F7, body: Column( children: [ MyViews().myAppBar('我的商品', context, [ GestureDetector( onTap: () { MyTools().toPage(context, ReleaseGoodsPage(null,''), (then) { controller.requestRefresh(); }); }, behavior: HitTestBehavior.translucent, child: Container( padding: EdgeInsets.symmetric(vertical: 8, horizontal: 16), child: Text( '发布', style: TextStyle(color: MyColors.c333333, fontSize: 16), ), ), ), ]), Expanded( child: SmartRefresher( controller: controller, onRefresh: onRefresh, onLoading: onLoading, enablePullDown: true, enablePullUp: true, child: data.length == 0 ? SingleChildScrollView(child: noData()) : ListView.builder( itemBuilder: (c, index) { return Slidable( actionPane: SlidableDrawerActionPane(), actionExtentRatio: 0.25, child: MyViews().getMyGoodsItem(data[index], context), secondaryActions: [ SlideAction( child: Container( child: Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(30), color: MyColors.cFF4233, ), height: 60,width: 60, child: SvgPicture.asset('images/svg/del.svg',height: 40,width: 40,), alignment: Alignment.center, ), ), onTap: (){ showSimpleDialog( '确认删除(${data[index].title})', context, () async { Navigator.pop(context); delGoods(data[index]); }); }, ) ], ); }, itemCount: data.length, padding: EdgeInsets.only(top: 10), ), ), ), ], ), ); } void getMyGoods() { MyDio().query({ "key": "commodity", "filters": { "conditions": ["user_uid == ${MyCookie().getUID()}"] }, "dims": commodityDims, "paging": [page, 20] }, (response, hasError) { if (!hasError) { GoodsBeanEntity entity = GoodsBeanEntity.fromJson(json.decode(response.data.toString())); if (page == 1) { data.clear(); } data.addAll(entity.data.data); setState(() {}); } endRe(controller); }, (error) {}); } void onRefresh() { page = 1; getMyGoods(); } void onLoading() { page++; getMyGoods(); } delGoods(GoodsBeanDataData goods) { MyDio().del({ 'key': 'commodity', 'ids': [goods.id] }, (response, hasError) { if (!hasError) { showToast('删除成功'); data.remove(goods); setState(() {}); } }, (error) {}); } }