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.
222 lines
6.7 KiB
222 lines
6.7 KiB
import 'package:flutter/material.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:oktoast/oktoast.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/pages/user/model/user_common_model.dart';
|
|
import 'package:recook/utils/user_level_tool.dart';
|
|
import 'package:recook/constants/header.dart';
|
|
import 'package:recook/widgets/alert.dart';
|
|
import 'package:recook/widgets/progress/re_toast.dart';
|
|
import 'package:velocity_x/velocity_x.dart';
|
|
|
|
class GroupInviteCard extends StatelessWidget {
|
|
final UserCommonModel model;
|
|
const GroupInviteCard({Key key, @required this.model}) : super(key: key);
|
|
_renderItem(String asset, String value) {
|
|
String displayValue = value;
|
|
if (displayValue?.isEmpty ?? true) {
|
|
displayValue = ' —';
|
|
}
|
|
return Row(
|
|
children: [
|
|
Image.asset(asset, width: 10.w, height: 10.w),
|
|
2.wb,
|
|
displayValue.text.size(11.sp).color(Color(0xFF999999)).make().expand(),
|
|
],
|
|
).expand();
|
|
}
|
|
|
|
upgradeFunc() async {
|
|
bool result = await Get.dialog(NormalContentDialog(
|
|
title: '提示',
|
|
content: Column(
|
|
mainAxisSize: MainAxisSize.min,
|
|
children: [
|
|
'确定将'.text.size(14.sp).color(Color(0xFF333333)).center.make(),
|
|
model.nickname.text
|
|
.size(14.sp)
|
|
.color(Color(0xFF0080FF))
|
|
.center
|
|
.make(),
|
|
'开设成为您的分销店铺吗?'
|
|
.text
|
|
.size(14.sp)
|
|
.color(Color(0xFF333333))
|
|
.center
|
|
.make(),
|
|
10.hb,
|
|
'确定后,您将获得${model.nickname}店铺销售额的分销店铺补贴,${model.nickname}将享受钻石店铺权益'
|
|
.text
|
|
.center
|
|
.size(12.sp)
|
|
.color(Color(0xFF333333))
|
|
.make(),
|
|
],
|
|
),
|
|
items: ['取消', '确定'],
|
|
listener: (index) async {
|
|
switch (index) {
|
|
case 0:
|
|
Get.back(result: false);
|
|
break;
|
|
case 1:
|
|
final cancel = ReToast.loading(text: '推荐中');
|
|
ResultData result = await HttpManager.post(
|
|
APIV2.userAPI.recommendDiamond,
|
|
{'userId': model.userId},
|
|
);
|
|
cancel();
|
|
if (result.data['code'] == 'FAIL') {
|
|
Get.back(result: false);
|
|
showToast('${result.data['msg']}');
|
|
} else
|
|
Get.back(result: true);
|
|
break;
|
|
}
|
|
},
|
|
));
|
|
|
|
if (result == true) {
|
|
Get.dialog(Center(
|
|
child: GestureDetector(
|
|
onTap: () => Get.back(),
|
|
child: Material(
|
|
color: Colors.transparent,
|
|
child: Stack(
|
|
children: [
|
|
Image.asset(
|
|
R.ASSETS_USER_GROUP_RECOMMEND_BG_PNG,
|
|
height: 306.w,
|
|
width: 344.w,
|
|
),
|
|
Positioned(
|
|
left: 0,
|
|
right: 0,
|
|
top: 62.w,
|
|
child: '恭喜! ${UserManager.instance.user.info.nickname}'
|
|
.text
|
|
.white
|
|
.size(16.sp)
|
|
.make()
|
|
.centered(),
|
|
),
|
|
Positioned(
|
|
left: 60.w,
|
|
right: 60.w,
|
|
top: 111.w,
|
|
child: Column(
|
|
children: [
|
|
'您已成功将'
|
|
.text
|
|
.color(Color(0xFF333333))
|
|
.size(16.sp)
|
|
.make()
|
|
.centered(),
|
|
'${model.nickname}'
|
|
.text
|
|
.color(Color(0xFF008AFF))
|
|
.size(16.sp)
|
|
.make()
|
|
.centered(),
|
|
'开设成为您的分销店铺'
|
|
.text
|
|
.color(Color(0xFF333333))
|
|
.size(16.sp)
|
|
.make()
|
|
.centered(),
|
|
],
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
));
|
|
}
|
|
}
|
|
|
|
String get itemName {
|
|
String item = model.nickname;
|
|
if (model?.remarkName?.isNotEmpty ?? false) {
|
|
item += '(${model.remarkName})';
|
|
}
|
|
return item;
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Row(
|
|
children: [
|
|
16.wb,
|
|
Column(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: [
|
|
ClipRRect(
|
|
borderRadius: BorderRadius.circular(20.w),
|
|
child: FadeInImage.assetNetwork(
|
|
placeholder: R.ASSETS_PLACEHOLDER_NEW_1X1_A_PNG,
|
|
image: Api.getImgUrl(model.headImgUrl),
|
|
height: 40.w,
|
|
width: 40.w,
|
|
),
|
|
),
|
|
10.hb,
|
|
Image.asset(
|
|
UserLevelTool.getRoleLevelIcon(model.roleLevelEnum),
|
|
width: 12.w,
|
|
height: 12.w,
|
|
),
|
|
],
|
|
),
|
|
10.wb,
|
|
Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
12.hb,
|
|
itemName.text.black.size(14.sp).make(),
|
|
8.hb,
|
|
Row(
|
|
children: [
|
|
_renderItem(R.ASSETS_USER_ICON_PHONE_PNG, model.phone),
|
|
_renderItem(R.ASSETS_USER_ICON_WECHAT_PNG, model.wechatNo),
|
|
],
|
|
),
|
|
5.hb,
|
|
Row(
|
|
children: [
|
|
_renderItem(
|
|
R.ASSETS_USER_ICON_GROUP_PNG, model.count.toString()),
|
|
_renderItem(
|
|
R.ASSETS_USER_ICON_MONEY_PNG,
|
|
model.amount.toStringAsFixed(2),
|
|
),
|
|
],
|
|
),
|
|
16.hb,
|
|
],
|
|
).expand(),
|
|
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,
|
|
),
|
|
44.hb,
|
|
],
|
|
),
|
|
],
|
|
);
|
|
}
|
|
}
|