From 6176673c52cff1fd8800e1e39452e6906dd42b21 Mon Sep 17 00:00:00 2001 From: laiiihz Date: Thu, 25 Mar 2021 14:15:33 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=A0=E9=80=81=E5=8D=A1=E7=89=87=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E4=BF=AE=E5=A4=8D=EF=BC=8C=E6=88=91=E7=9A=84=E5=9B=A2?= =?UTF-8?q?=E9=98=9F=E6=B7=BB=E5=8A=A0=E6=9C=AC=E4=BA=BA=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../upgrade_card_send_page_v2.dart | 20 ++++----- lib/pages/user/invite/group_invite_card.dart | 43 ++++++++++++------- lib/pages/user/invite/my_group_page_v2.dart | 30 ++++++++++++- lib/pages/user/model/user_common_model.dart | 35 ++++++++++----- 4 files changed, 91 insertions(+), 37 deletions(-) diff --git a/lib/pages/upgradeCard/upgrade_card_send_page_v2.dart b/lib/pages/upgradeCard/upgrade_card_send_page_v2.dart index 60e7359..1821244 100644 --- a/lib/pages/upgradeCard/upgrade_card_send_page_v2.dart +++ b/lib/pages/upgradeCard/upgrade_card_send_page_v2.dart @@ -1,9 +1,11 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:recook/constants/api.dart'; +import 'package:recook/constants/api_v2.dart'; import 'package:recook/manager/http_manager.dart'; import 'package:recook/manager/user_manager.dart'; import 'package:recook/models/invite_list_model.dart'; +import 'package:recook/pages/user/model/user_common_model.dart'; import 'package:recook/pages/user/widget/user_group_card.dart'; import 'package:recook/utils/user_level_tool.dart'; import 'package:recook/widgets/recook/recook_scaffold.dart'; @@ -19,21 +21,19 @@ class UpgradeeCardSendPageV2 extends StatefulWidget { class _UpgradeeCardSendPageV2State extends State { int _page = 1; - Future> fetchList(int page, String searchCond) async { - ResultData resultData = await HttpManager.post(UserApi.invite, { - "userId": UserManager.instance.user.info.id, - "SearchCond": searchCond, - "page": page, + Future> fetchList(String searchCond) async { + ResultData resultData = await HttpManager.post(APIV2.userAPI.myGroup, { + "keyword": '', }); if (resultData == null || resultData.data == null || resultData.data['data'] == null) return []; return (resultData.data['data'] as List) - .map((e) => InviteModel.fromJson(e)) + .map((e) => UserCommonModel.fromJson(e)) .toList(); } - List _models = []; + List _models = []; GSRefreshController _refreshController = GSRefreshController(initialRefresh: true); @@ -45,7 +45,7 @@ class _UpgradeeCardSendPageV2State extends State { body: RefreshWidget( onRefresh: () async { _page = 1; - await fetchList(_page, ''); + _models = await fetchList(''); _refreshController.refreshCompleted(); setState(() {}); }, @@ -56,8 +56,8 @@ class _UpgradeeCardSendPageV2State extends State { return UserGroupCard( name: item.nickname, wechatId: item.wechatNo, - phone: item.phoneNum, - shopRole: UserLevelTool.roleLevelEnum(item.role), + phone: item.phone, + shopRole: UserLevelTool.roleLevelEnum(item.roleLevel), groupCount: item.count, headImg: item.headImgUrl, id: item.userId, diff --git a/lib/pages/user/invite/group_invite_card.dart b/lib/pages/user/invite/group_invite_card.dart index d4ade90..05cd759 100644 --- a/lib/pages/user/invite/group_invite_card.dart +++ b/lib/pages/user/invite/group_invite_card.dart @@ -6,6 +6,7 @@ import 'package:recook/constants/api_v2.dart'; import 'package:recook/manager/http_manager.dart'; import 'package:recook/manager/user_manager.dart'; import 'package:recook/pages/user/model/user_common_model.dart'; +import 'package:recook/pages/user/widget/user_group_card_detail_page.dart'; import 'package:recook/utils/user_level_tool.dart'; import 'package:recook/constants/header.dart'; import 'package:recook/widgets/alert.dart'; @@ -14,7 +15,9 @@ import 'package:velocity_x/velocity_x.dart'; class GroupInviteCard extends StatelessWidget { final UserCommonModel model; - const GroupInviteCard({Key key, @required this.model}) : super(key: key); + final bool canTap; + const GroupInviteCard({Key key, @required this.model, this.canTap = false}) + : super(key: key); _renderItem(String asset, String value) { String displayValue = value; if (displayValue?.isEmpty ?? true) { @@ -148,7 +151,7 @@ class GroupInviteCard extends StatelessWidget { @override Widget build(BuildContext context) { - return Row( + final widget = Row( children: [ 16.wb, Column( @@ -187,11 +190,10 @@ class GroupInviteCard extends StatelessWidget { 5.hb, Row( children: [ - _renderItem( - R.ASSETS_USER_ICON_GROUP_PNG, model.count.toString()), + _renderItem(R.ASSETS_USER_ICON_GROUP_PNG, model.countValue), _renderItem( R.ASSETS_USER_ICON_MONEY_PNG, - model.amount.toStringAsFixed(2), + model.amountValue, ), ], ), @@ -201,21 +203,30 @@ class GroupInviteCard extends StatelessWidget { Column( mainAxisAlignment: MainAxisAlignment.start, children: [ - if (model.isRecommand) - MaterialButton( - materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, - minWidth: 0, - padding: EdgeInsets.symmetric(horizontal: 20.w, vertical: 12.w), - child: Image.asset( - R.ASSETS_USER_USER_RECOMMEND_SINGLE_PNG, - height: 17.w, - ), - onPressed: upgradeFunc, - ), + model.isRecommand + ? MaterialButton( + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + minWidth: 0, + padding: + EdgeInsets.symmetric(horizontal: 20.w, vertical: 12.w), + child: Image.asset( + R.ASSETS_USER_USER_RECOMMEND_SINGLE_PNG, + height: 17.w, + width: 17.w, + ), + onPressed: upgradeFunc, + ) + : 57.wb, 44.hb, ], ), ], ); + return GestureDetector( + onTap: () { + if (canTap) Get.to(() => UserGroupCardDetailPage(id: model.userId)); + }, + child: widget, + ); } } diff --git a/lib/pages/user/invite/my_group_page_v2.dart b/lib/pages/user/invite/my_group_page_v2.dart index 8ff95b0..fa44c06 100644 --- a/lib/pages/user/invite/my_group_page_v2.dart +++ b/lib/pages/user/invite/my_group_page_v2.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:recook/manager/user_manager.dart'; import 'package:recook/pages/user/functions/user_func.dart'; import 'package:recook/pages/user/invite/group_invite_card.dart'; import 'package:recook/pages/user/model/user_common_model.dart'; @@ -204,7 +205,34 @@ class _MyGroupPageV2State extends State { 20.wb, ], ), - ..._models.map((e) => GroupInviteCard(model: e)).toList(), + ..._models + .map((e) => GroupInviteCard( + model: e, canTap: usersMode == UsersMode.MY_GROUP)) + .toList() + ..insertAll( + 0, + usersMode == UsersMode.MY_GROUP + ? [ + GroupInviteCard( + model: UserCommonModel( + remarkName: '本人', + nickname: + UserManager.instance.user.info.nickname, + phone: UserManager.instance.user.info.mobile, + headImgUrl: + UserManager.instance.user.info.headImgUrl, + wechatNo: + UserManager.instance.user.info.wechatNo, + userId: UserManager.instance.user.info.id, + flag: 0, + amount: -1, + count: -1, + roleLevel: + UserManager.instance.user.info.roleLevel, + ), + canTap: false) + ] + : []), ], ), margin: EdgeInsets.symmetric(horizontal: 16.w), diff --git a/lib/pages/user/model/user_common_model.dart b/lib/pages/user/model/user_common_model.dart index a3289ce..38beecc 100644 --- a/lib/pages/user/model/user_common_model.dart +++ b/lib/pages/user/model/user_common_model.dart @@ -1,3 +1,4 @@ +import 'package:flutter/foundation.dart'; import 'package:recook/utils/user_level_tool.dart'; class UserCommonModel { @@ -16,17 +17,31 @@ class UserCommonModel { bool get isRecommand => flag == 1; + String get countValue { + if (count == -1) + return '—'; + else + return (count ?? 0).toString(); + } + + String get amountValue { + if (amount == -1) + return '—'; + else + return (amount ?? 0.0).toStringAsFixed(2); + } + UserCommonModel({ - this.userId, - this.headImgUrl, - this.nickname, - this.phone, - this.wechatNo, - this.remarkName, - this.count, - this.roleLevel, - this.flag, - this.amount, + @required this.userId, + @required this.headImgUrl, + @required this.nickname, + @required this.phone, + @required this.wechatNo, + @required this.remarkName, + @required this.count, + @required this.roleLevel, + @required this.flag, + @required this.amount, }); UserCommonModel.fromJson(Map json) {