添加我的余额页面

master
laiiihz 5 years ago
parent ce3137e453
commit 44ac65c17a

@ -0,0 +1,102 @@
import 'package:flutter/material.dart';
import 'package:recook/constants/header.dart';
import 'package:recook/manager/user_manager.dart';
import 'package:recook/pages/user/user_cash_withdraw_page.dart';
import 'package:recook/widgets/custom_image_button.dart';
import 'package:recook/widgets/recook/recook_scaffold.dart';
import 'package:recook/constants/constants.dart';
import 'package:velocity_x/velocity_x.dart';
class UserBalancePage extends StatefulWidget {
UserBalancePage({Key key}) : super(key: key);
@override
_UserBalancePageState createState() => _UserBalancePageState();
}
class _UserBalancePageState extends State<UserBalancePage> {
@override
Widget build(BuildContext context) {
return RecookScaffold(
title: '我的余额',
whiteBg: true,
actions: [
CustomImageButton(
padding: EdgeInsets.symmetric(horizontal: 16.w),
onPressed: () {
AppRouter.push(context, RouteName.USER_CASH_WITHDRAW_PAGE,
arguments: UserCashWithdrawPage.setArguments(
amount: UserManager.instance.userBrief.balance.toDouble()));
},
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Image.asset(
"assets/rui_page_balance.png",
width: 12.w,
height: 12.w,
),
3.wb,
'余额提现'.text.size(10.sp).black.make(),
],
),
),
],
body: Column(
children: [
VxBox(
child: [
16.wb,
104.hb,
[
'可使用(元)'.text.size(14.sp).color(Color(0xFF333333)).make(),
4.hb,
'680.00X'.text.size(30).color(Color(0xFFD40000)).make(),
].column(crossAlignment: CrossAxisAlignment.start),
Spacer(),
[
'累计提现(元)'.text.size(14.sp).color(Color(0xFF333333)).make(),
4.hb,
'680.00X'.text.size(30).black.make(),
].column(crossAlignment: CrossAxisAlignment.end),
16.wb,
].row(),
).color(Colors.white).make(),
<Widget>[
64.hb,
16.wb,
MaterialButton(
color: Colors.white,
shape: StadiumBorder(),
elevation: 0,
onPressed: () {},
child: [
'TEST'.text.color(Color(0xFF333333)).size(13.sp).make(),
Icon(
Icons.arrow_drop_down,
color: Color(0xFFBEBEBE),
),
].row(),
),
Spacer(),
MaterialButton(
color: Colors.white,
shape: StadiumBorder(),
elevation: 0,
onPressed: () {},
child: [
'TEST年TEST月'.text.color(Color(0xFF333333)).size(13.sp).make(),
Icon(
Icons.arrow_drop_down,
color: Color(0xFFBEBEBE),
),
].row(),
),
16.wb,
].row().material(color: Color(0xFFF5F5F5)),
ListView().material(color: Color(0xFFF9F9FB)).expand(),
],
),
);
}
}

@ -30,6 +30,7 @@ import 'package:recook/pages/user/widget/money_view.dart';
import 'package:recook/pages/user/widget/order_central_view.dart';
import 'package:recook/pages/user/widget/other_item_view.dart';
import 'package:recook/pages/user/widget/other_item_view_v2.dart';
import 'package:recook/pages/user/widget/shop_benifit_view.dart';
import 'package:recook/pages/user/widget/shop_manager_view.dart';
import 'package:recook/pages/user/widget/user_app_bar.dart';
import 'package:recook/pages/user/widget/user_app_bar_v2.dart';
@ -192,6 +193,7 @@ class _UserPageState extends BaseStoreState<UserPage> {
height: AppConfig.getShowCommission() ? 10 : 0,
),
UserPageAssetsView(),
ShopBenifitView(),
ShopManagerView(),
OrderCentralView(
clickListener: (int index) {

@ -11,6 +11,8 @@ import 'package:extended_text/extended_text.dart';
import 'package:flutter/material.dart';
import 'package:recook/base/base_store_state.dart';
import 'package:recook/constants/header.dart';
import 'package:recook/pages/user/banlance/user_balance_page.dart';
import 'package:recook/utils/custom_route.dart';
import 'package:recook/widgets/alert.dart';
import 'package:recook/widgets/custom_image_button.dart';
@ -157,6 +159,7 @@ class _CapitalViewState extends BaseStoreState<CapitalView> {
(getStore().state.userBrief.balance ?? 0.0)
.toDouble()
.toStringAsFixed(2),
onTap: () => CRoute.push(context, UserBalancePage()),
),
_otherItem(
"权益卡(张)",

@ -0,0 +1,86 @@
import 'package:flutter/material.dart';
import 'package:recook/widgets/custom_image_button.dart';
import 'package:velocity_x/velocity_x.dart';
import 'package:recook/constants/constants.dart';
class ShopBenifitView extends StatelessWidget {
const ShopBenifitView({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return CustomImageButton(
padding: EdgeInsets.zero,
onPressed: () {},
child: VxBox(
child: <Widget>[
<Widget>[
'我的收益'
.text
.color(Color(0xFF333333))
.size(16.sp)
.bold
.make()
.pSymmetric(v: 10.w, h: 5.w),
Spacer(),
Icon(Icons.keyboard_arrow_right,
size: 22, color: Color(0xff999999)),
10.wb,
].row(),
Divider(
color: Color(0xFFE6E6E6),
height: 1.w,
thickness: 1.w,
),
SizedBox(
height: 66.w,
child: Row(
children: [
<Widget>[
'1223.56X'.text.size(18.sp).color(Color(0xFF333333)).make(),
6.hb,
'本月预估'.text.size(12.sp).color(Color(0xFF333333)).make(),
].column().expand(),
VerticalDivider(
color: Color(0xFFE6E6E6),
width: 1.w,
thickness: 1.w,
indent: 16.w,
endIndent: 16.w,
),
<Widget>[
'1223.56X'.text.size(18.sp).color(Color(0xFF333333)).make(),
6.hb,
'今日预估'.text.size(12.sp).color(Color(0xFF333333)).make(),
].column().expand(),
],
),
),
Divider(
color: Color(0xFFE6E6E6),
height: 1.w,
thickness: 1.w,
),
<Widget>[
Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
textBaseline: TextBaseline.alphabetic,
children: <Widget>[
'上月结算'.text.size(12.sp).color(Color(0xFF666666)).make(),
'¥1234.12X'.text.size(12.sp).color(Color(0xFFD7BE8E)).make(),
]).expand(),
30.hb,
Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
textBaseline: TextBaseline.alphabetic,
children: <Widget>[
'上月预估'.text.size(12.sp).color(Color(0xFF666666)).make(),
'¥1234.12X'.text.size(12.sp).color(Color(0xFFD7BE8E)).make(),
]).expand(),
].row(),
].column(crossAlignment: CrossAxisAlignment.start),
).color(Colors.white).withRounded(value: 10).make(),
).pOnly(left: 10, right: 10, bottom: 10);
}
}

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:recook/widgets/custom_image_button.dart';
import 'package:velocity_x/velocity_x.dart';
import 'package:recook/constants/constants.dart';
import 'package:recook/constants/header.dart';
@ -6,6 +7,31 @@ import 'package:recook/constants/header.dart';
class ShopManagerView extends StatelessWidget {
const ShopManagerView({Key key}) : super(key: key);
_buildGridItem(
{String title, String subTitle, String path, VoidCallback onTap}) {
return CustomImageButton(
onPressed: onTap,
child: Stack(
children: [
path == null
? Placeholder().material(color: Colors.grey)
: Image.asset(
path,
fit: BoxFit.cover,
),
Positioned(
left: 12.w,
top: 12.w,
child: <Widget>[
title.text.size(14).color(Colors.white).make(),
subTitle.text.size(14).color(Colors.white).make(),
].column(crossAlignment: CrossAxisAlignment.start),
),
],
),
);
}
@override
Widget build(BuildContext context) {
return VxBox(
@ -19,7 +45,50 @@ class ShopManagerView extends StatelessWidget {
.bold
.make()
.pSymmetric(v: 10.w, h: 5.w),
Image.asset(R.ASSETS_SHOP_TEST_PNG),
GridView(
padding:
EdgeInsets.symmetric(horizontal: 5.w).copyWith(bottom: 10.w),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
childAspectRatio: 170 / 90,
crossAxisSpacing: 5.w,
mainAxisSpacing: 5.w,
),
children: [
_buildGridItem(
title: '团队扩招',
subTitle: '0元创业·轻松赚',
onTap: () {},
),
_buildGridItem(
title: '我的团队',
subTitle: '有福同享·真壕友',
onTap: () {},
),
_buildGridItem(
title: '推荐钻石店铺',
subTitle: '推荐好友·福利双赢',
onTap: () {},
),
_buildGridItem(
title: '我的推荐',
subTitle: '呼朋唤友·享收益',
onTap: () {},
),
_buildGridItem(
title: '获取平台奖励',
subTitle: '平台可靠·奖励多',
onTap: () {},
),
_buildGridItem(
title: '我的奖励',
subTitle: '积少成多·奖励丰厚',
onTap: () {},
),
],
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
),
],
),
)

@ -42,26 +42,29 @@ class _UserAppBarV2State extends BaseStoreState<UserAppBarV2> {
mainAxisAlignment: MainAxisAlignment.end,
mainAxisSize: MainAxisSize.max,
children: [
DecoratedBox(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(30.w),
border: Border.all(
width: 1.w,
color: Color(0x8F979797),
CustomImageButton(
onPressed: () => push(RouteName.USER_INFO_PAGE),
child: DecoratedBox(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(30.w),
border: Border.all(
width: 1.w,
color: Color(0x8F979797),
),
),
),
position: DecorationPosition.foreground,
child: ClipRRect(
borderRadius: BorderRadius.circular(30.w),
child: FadeInImage.assetNetwork(
height: 60.w,
width: 60.w,
placeholder: AppImageName.placeholder_1x1,
image: TextUtils.isEmpty(
UserManager.instance.user.info.headImgUrl)
? ""
: Api.getImgUrl(
UserManager.instance.user.info.headImgUrl),
position: DecorationPosition.foreground,
child: ClipRRect(
borderRadius: BorderRadius.circular(30.w),
child: FadeInImage.assetNetwork(
height: 60.w,
width: 60.w,
placeholder: AppImageName.placeholder_1x1,
image: TextUtils.isEmpty(
UserManager.instance.user.info.headImgUrl)
? ""
: Api.getImgUrl(
UserManager.instance.user.info.headImgUrl),
),
),
),
),

Loading…
Cancel
Save