contant_left_page.dart 5.04 KB
import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/constant/state.dart';
import 'package:one_key/provider/contant_show_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/widgets/MyDivider.dart';

import 'package:one_key/widgets/page_exception.dart';
import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';

class ContantLeftPage extends StatefulWidget {
  ContantLeftPage({Key key}) : super(key: key);

  @override
  _ContantLeftPageState createState() => _ContantLeftPageState();
}

class _ContantLeftPageState extends State<ContantLeftPage> {
  EasyRefreshController _controller;
  ContantShowModel contantShowModel;

  @override
  void initState() {
    super.initState();
    _controller = EasyRefreshController();

    WidgetsBinding.instance.addPostFrameCallback((_) {
      _getContantData();
    });
  }

  _getContantData() async {
    Map<String, String> params = {
      "sid": Provider.of<UserModel>(context, listen: false).user.sellerid,
    };
    await contantShowModel.getUserHistorys(context, params);
  }

  @override
  Widget build(BuildContext context) {
    contantShowModel = Provider.of<ContantShowModel>(context, listen: true);
    return Consumer<ContantShowModel>(
      builder: (context, model, _) {
        if (model.pageStateLeft != PageState.Success) {
          return ExceptionPage(
            pageState: model.pageStateLeft,
            callback: () {
              // offset = 0;
              // getMessages();
              model.pageStateLeft = PageState.Loading;
              model.notifyListeners();
              _getContantData();
            },
            emptyMsg: "暂时没有联系人哦",
            emptyImg: "empty_search",
            showMsg: "加载中,请稍后...",
          );
        } else {
          return ListView.builder(
              itemCount: model.userHistorys.length,
              itemBuilder: (BuildContext context, int index) {
                return InkWell(
                  onTap: () {
                    if (model.userHistorys[index].phone != null &&
                        model.userHistorys[index].phone != '') {
                      DialogUtil.goPhone(model.userHistorys[index].phone);
                    }
                  },
                  child: Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        index == 0
                            ? MyDivider(
                                double.infinity,
                                ScreenUtil().setWidth(20),
                                color: MyColours.color_f5f5f5,
                              )
                            : Container(),
                        Container(
                          width: double.infinity,
                          padding: EdgeInsets.symmetric(
                              horizontal: ScreenUtil().setWidth(40),
                              vertical: ScreenUtil().setWidth(30)),
                          height: ScreenUtil().setWidth(74 * 2),
                          decoration: BoxDecoration(
                              border: Border(
                                  top: index == 0
                                      ? BorderSide(
                                          width: ScreenUtil().setWidth(2),
                                          color: MyColours.color_E0E0E0)
                                      : BorderSide(
                                          width: 0, color: Colors.transparent),
                                  bottom: BorderSide(
                                      width: ScreenUtil().setWidth(2),
                                      color: MyColours.color_E0E0E0))),
                          child: Column(
                            crossAxisAlignment: CrossAxisAlignment.start,
                            children: [
                              Text(model.userHistorys[index].rname,
                                  style: TextStyle(
                                      color: MyColours.color_333333,
                                      fontSize: ScreenUtil().setSp(32))),
                              VEmptyView(10),
                              Text(model.userHistorys[index].phone,
                                  style: TextStyle(
                                      color: MyColours.color_999999,
                                      fontSize: ScreenUtil().setSp(30)))
                            ],
                          ),
                        )
                      ]),
                );
              });

          // onRefresh: () async {
          //   // offset = 0;
          //   // getMessages(showLoading: false);
          // },
          // onLoad: () async {
          //   // offset++;
          //   // getMessages(showLoading: false);
          // },

        }
      },
    );
  }
}