message_right_page.dart 2.11 KB
import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:one_key/pages/message/messsage_item.dart';
import 'package:one_key/provider/message_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/widgets/page_error.dart';
import 'package:provider/provider.dart';

class MessageRightPage extends StatefulWidget{
  @override
  State<StatefulWidget> createState() {
    // TODO: implement createState
    return new MessageRightPageState();
  }

}

class MessageRightPageState extends State<MessageRightPage>{

  EasyRefreshController _controller;

  int offset=0;//当前页数

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    _controller=EasyRefreshController();
    WidgetsBinding.instance.addPostFrameCallback((_){
      getTreatedMessage();
    });
  }

  //获取未处理在线预订消息
  getTreatedMessage(){
    UserModel userModel=Provider.of<UserModel>(context,listen: false);
    Map<String,String> params={
      "sid":userModel.user.sellerid,
      "type_id":"10",
      "status":"1",
      "offset":offset.toString(),
      "limit":"10",
    };
    MessageModel messageModel=Provider.of<MessageModel>(context,listen: false);
    messageModel.getTreatedMsg(context, params);
  }

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Consumer<MessageModel>(
      builder: (context,model,_){
        if(!model.connect_timeout){
          return Center(
            child: ErrorPage(callback: (){
              getTreatedMessage();
            },),
          );
        }else{
          return EasyRefresh.custom(
            controller: _controller,
            slivers: [
              SliverList(
                delegate:
                SliverChildBuilderDelegate((BuildContext context, int index) {
                  return MessageItem(model.treatedMsgs[index],isTreated: true,);
                },childCount: model.treatedMsgs.length),
              )
            ],onRefresh: () async {
            getTreatedMessage();
          },);
        }
      },
    );
  }
}