You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
app/lib/pages/upgradeCard/upgrade_child_invite_page.dart

147 lines
4.3 KiB

/*
* ====================================================
* package :
* author : Created by nansi.
* time : 2019/6/12 2:17 PM
* remark :
* ====================================================
*/
import 'package:flutter/material.dart';
import 'package:recook/base/base_store_state.dart';
import 'package:recook/constants/header.dart';
import 'package:recook/models/invite_list_model.dart';
import 'package:recook/pages/user/invite/invite_list_contact.dart';
import 'package:recook/pages/user/invite/invite_list_presenter_impl.dart';
import 'package:recook/pages/user/invite/item_invite_detail_list.dart';
import 'package:recook/pages/user/widget/user_group_card.dart';
import 'package:recook/utils/mvp.dart';
import 'package:recook/utils/user_level_tool.dart';
import 'package:recook/widgets/mvp_list_view/mvp_list_view.dart';
import 'package:recook/widgets/mvp_list_view/mvp_list_view_contact.dart';
import 'package:recook/widgets/no_data_view.dart';
class UpgradeChildInvitePageController {
Function(String searchText) refresh;
}
class UpgradeChildInvitePage extends StatefulWidget {
final int userId;
final String searchText;
final UpgradeChildInvitePageController controller;
final Function(InviteModel) itemClick;
const UpgradeChildInvitePage({
Key key,
this.userId,
this.searchText = "",
this.controller,
this.itemClick,
}) : super(key: key);
// static setArguments(bool isOwner) {
// return isOwner;
// }
@override
State<StatefulWidget> createState() {
return _UpgradeChildInvitePage();
}
}
class _UpgradeChildInvitePage extends BaseStoreState<UpgradeChildInvitePage>
with MvpListViewDelegate<InviteModel>
implements InviteListViewI {
InviteListPresenterImpl _presenter;
MvpListViewController<InviteModel> _controller;
String _searchText;
@override
MvpListViewPresenterI<InviteModel, MvpView, MvpModel> getPresenter() {
return _presenter;
}
@override
void initState() {
super.initState();
_presenter = InviteListPresenterImpl();
_presenter.attach(this);
_controller = MvpListViewController();
_searchText = TextUtils.isEmpty(widget.searchText) ? "" : widget.searchText;
widget.controller.refresh = (searchText) {
_searchText = searchText;
_controller.requestRefresh();
setState(() {});
};
}
@override
Widget buildContext(BuildContext context, {store}) {
return Container(
color: AppColor.frenchColor,
child: MvpListView<InviteModel>(
autoRefresh: true,
delegate: this,
controller: _controller,
refreshCallback: () {
// _presenter.fetch();
_presenter.getInviteList(widget.userId, 0, _searchText);
},
loadMoreCallback: (page) {
_presenter.getInviteList(widget.userId, page, _searchText);
// _presenter.loadMore();
},
noDataView: NoDataView(
title: TextUtils.isEmpty(_searchText) ? "还没有邀请任何人喔~" : "搜索不到该邀请用户...",
height: 500,
),
itemBuilder: (_, index) {
// return GestureDetector(
// onTap: () {
// if (widget.itemClick != null) {
// widget.itemClick(_controller.getData()[index]);
// }
// },
// child: InviteDetailListItem(
// model: _controller.getData()[index],
// isUpgrade: true,
// ),
// );
InviteModel model = _controller.getData()[index];
return UserGroupCard(
name: model.nickname,
wechatId: model.wechatNo,
phone: model.phoneNum,
shopRole: UserLevelTool.roleLevelEnum(model.roleLevel),
groupCount: model.count,
headImg: model.headImgUrl,
id: model.userId,
isRecommend: false,
remarkName: model.remarkName,
onTap: () {
if (widget.itemClick != null) {
widget.itemClick(_controller.getData()[index]);
}
},
);
},
),
);
}
@override
bool get wantKeepAlive => true;
@override
void onDetach() {}
@override
void onAttach() {}
@override
failure(String msg) {
GSDialog.of(context).showError(globalContext, msg);
}
}