| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- 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<MyGoodsPage> {
- List<GoodsBeanDataData> 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: <Widget>[
- 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) {});
- }
- }
|