merge vip_3.1_patch

master
laiiihz 4 years ago
commit dad841a0c3

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

@ -13,6 +13,7 @@ import 'package:hive/hive.dart';
import 'package:hive_flutter/hive_flutter.dart';
import 'package:oktoast/oktoast.dart';
import 'package:package_info/package_info.dart';
import 'package:package_signature/package_signature.dart';
import 'package:raw_toast/raw_toast.dart';
import 'package:recook/constants/api.dart';
@ -44,6 +45,8 @@ void main() async {
cameras = await availableCameras();
//TODO ios settings
PackageInfo _packageInfo = await PackageInfo.fromPlatform();
AppConfig.versionNumber = _packageInfo.buildNumber;
//AMap
// AmapLocation.instance.init(iosKey: 'e8a8057cfedcdcadcf4e8f2c7f8de982');

@ -1504,10 +1504,10 @@ class _HomePageState extends BaseStoreState<HomePage>
if (oldLevel < nowLevel) {
switch (UserLevelTool.roleLevelEnum(nowLevel)) {
case UserRoleLevel.Silver:
img = R.ASSETS_USER_DOWNGRADE_SILVER_PNG_WEBP;
img = R.ASSETS_USER_DOWNGRADE_SILVER_WEBP;
break;
case UserRoleLevel.Master:
img = R.ASSETS_USER_DOWNGRADE_MASTER_PNG_WEBP;
img = R.ASSETS_USER_DOWNGRADE_MASTER_WEBP;
break;
default:
break;
@ -1560,6 +1560,7 @@ class _HomePageState extends BaseStoreState<HomePage>
for (var item in noticeList) {
final int gold = item['gold'];
final int silver = item['silver'];
final int id = item['id'];
String goldValue = '';
String silverValue = '';
if (gold != null && gold != 0) goldValue = '$gold张黄金卡';
@ -1573,13 +1574,30 @@ class _HomePageState extends BaseStoreState<HomePage>
await Get.dialog(Center(
child: GestureDetector(
onTap: () async {
await HttpManager.post(APIV2.userAPI.confirmUserCardChange, {});
await HttpManager.post(
APIV2.userAPI.confirmUserCardChange,
{"noticeId": id},
);
await Get.to(UpgradeCardPageV2());
Get.back();
},
child: Container(
margin: EdgeInsets.symmetric(horizontal: 50.w),
child: Center(child: Text('您有$result已退至您的卡包')),
child: Center(
child: Material(
color: Colors.transparent,
child: Transform.translate(
offset: Offset(0, 20.w),
child: Text(
'您有$result已退至您的卡包',
style: TextStyle(
fontSize: 14.sp,
color: Colors.white,
fontWeight: FontWeight.bold,
),
),
),
)),
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(R.ASSETS_USER_NOTICE_CARD_PNG),

@ -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<UpgradeeCardSendPageV2> {
int _page = 1;
Future<List<InviteModel>> fetchList(int page, String searchCond) async {
ResultData resultData = await HttpManager.post(UserApi.invite, {
"userId": UserManager.instance.user.info.id,
"SearchCond": searchCond,
"page": page,
Future<List<UserCommonModel>> 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<InviteModel> _models = [];
List<UserCommonModel> _models = [];
GSRefreshController _refreshController =
GSRefreshController(initialRefresh: true);
@ -45,7 +45,7 @@ class _UpgradeeCardSendPageV2State extends State<UpgradeeCardSendPageV2> {
body: RefreshWidget(
onRefresh: () async {
_page = 1;
await fetchList(_page, '');
_models = await fetchList('');
_refreshController.refreshCompleted();
setState(() {});
},
@ -56,8 +56,8 @@ class _UpgradeeCardSendPageV2State extends State<UpgradeeCardSendPageV2> {
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,

@ -130,6 +130,12 @@ class _UserCard extends StatelessWidget {
return '';
}
String get _cardFace {
if (model.type == 1) return R.ASSETS_USER_UPGRADE_GOLD_CARD_WEBP;
if (model.type == 2) return R.ASSETS_USER_UPGRADE_SILVER_CARD_WEBP;
return '';
}
@override
Widget build(BuildContext context) {
return Container(
@ -242,7 +248,7 @@ class _UserCard extends StatelessWidget {
),
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(R.ASSETS_USER_UPGRADE_SILVER_CARD_WEBP),
image: AssetImage(_cardFace),
),
),
);

@ -99,7 +99,7 @@ class _userCard extends StatelessWidget {
String typeValue = '';
if (type == 1) typeValue = '黄金卡';
if (type == 2) typeValue = '白银卡';
bool used = status == 1;
bool used = status != 2;
return Material(
color: Colors.white,
borderRadius: BorderRadius.circular(5.w),

@ -58,7 +58,9 @@ class _AccountAndSafetyPageState extends State<AccountAndSafetyPage> {
final cancel = ReToast.loading(text: '修改中');
secureValue = !secureValue;
await HttpManager.post(
APIV2.userAPI.securePhone, {'secure': secureValue ? 1 : 0});
APIV2.userAPI.securePhone,
{'secure': secureValue ? 1 : 0},
);
cancel();
setState(() {});
},

@ -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,
);
}
}

@ -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';
@ -47,6 +48,17 @@ class _MyGroupPageV2State extends State<MyGroupPageV2> {
).expand();
}
String get _renderTitle {
switch (usersMode) {
case UsersMode.MY_GROUP:
return '我的自营店铺';
case UsersMode.MY_RECOMMEND:
return '我的分销店铺';
case UsersMode.MY_REWARD:
return '我的代理店铺';
}
}
Widget get _renderShitVerticalLine => Container(
height: 20.w,
width: 1.w,
@ -161,7 +173,7 @@ class _MyGroupPageV2State extends State<MyGroupPageV2> {
children: [
54.hb,
16.wb,
'我的自营店铺'.text.bold.size(14.sp).black.make(),
_renderTitle.text.bold.size(14.sp).black.make(),
MaterialButton(
padding: EdgeInsets.all(4.w),
minWidth: 0,
@ -193,13 +205,34 @@ class _MyGroupPageV2State extends State<MyGroupPageV2> {
20.wb,
],
),
..._models.map((e) => GroupInviteCard(model: e)).toList().sepWidget(
separate: Divider(
indent: 65.w,
endIndent: 15.w,
height: 1.w,
thickness: 1.w,
)),
..._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),

@ -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<String, dynamic> json) {

@ -2,7 +2,7 @@ name: recook
description: Recook Market App.
publish_to: "none"
version: 1.6.0-vip+270
version: 1.6.1-vip+271
environment:
sdk: ">=2.10.0 <3.0.0"

Loading…
Cancel
Save