Files
pte/untitled/lib/views/Me/Vip/Vip.dart
2024-09-27 01:31:25 +08:00

216 lines
8.7 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import 'package:flutter/material.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:peach/R.dart';
import 'package:peach/config/_.dart';
import 'package:peach/entity/_.dart';
import 'package:peach/service/_.dart';
import 'package:peach/utils/_.dart';
import 'package:toast/toast.dart';
class Vip extends StatefulWidget {
@override
State createState() => _Vip();
}
class _Vip extends State<Vip> {
int currentVipType = 1;
List<String> currentExplain;
@override
void initState() {
setState(() {
currentExplain = Config.vipList[currentVipType - 1]["vipExplain"];
});
}
choiceVip(Map<String, dynamic> type) {
print(type);
setState(() {
currentVipType = type["id"];
currentExplain = type["vipExplain"];
});
}
Future<void> placeOrder() async {
RegisterEntity res = await UserService.placeOrder(params: {
"objectId": Tool.userInfo()['objectId'],
"vipLevel": Config.vipList[currentVipType - 1]['id'].toString()
});
Modular.to.pushNamed('/status');
// if (res.code == 200) {
// Modular.to.pushNamed('/status');
// } else {
// Toast.show(res.error, context, duration: Toast.LENGTH_LONG, gravity: Toast.BOTTOM);
// }
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: ColorConfig.ThemeColor,
title: Text("办理会员"),
elevation: 0.0
),
body: Column(
children: [
Container(
alignment: Alignment.center,
height: Screen.setHeight(70),
padding: EdgeInsets.only(left: 15, right: 15),
color: ColorConfig.ThemeColor,
child: Row(
children: [
Image.asset(
R.libStaticImgViplogoPng,
width: Screen.setWidth(50),
height: Screen.setWidth(50),
),
SizedBox(width: 10,),
Expanded(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(Tool.userInfo()['username'], style: TextStyle(color: ColorConfig.WhiteBackColor,fontSize: Screen.setFontSize(18)),),
Text("账户安全等级:安全",style: TextStyle(fontSize: Screen.setFontSize(11),color: ColorConfig.NoActiveColor),),
],
),
)
],
),
),
Container(
padding: EdgeInsets.only(left: 15, right: 15),
width: Screen.width(context),
height: Screen.setHeight(95),
margin: EdgeInsets.only(top: 10),
child: Column(
children: [
SingleChildScrollView(
scrollDirection: Axis.horizontal,
physics: BouncingScrollPhysics(),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: Config.vipList.map((e) => InkWell(
onTap: () {
choiceVip(e);
},
child: Container(
width: currentVipType == e["id"] ? Screen.width(context) / 2: Screen.width(context) / 3.5,
margin: EdgeInsets.only(right: 5),
decoration: BoxDecoration(
border: Border.all(
color: currentVipType == e["id"] ? ColorConfig.ThemeColor : ColorConfig.IconColor,
width: currentVipType == e["id"] ? 1 : 0.5
),
borderRadius: BorderRadius.circular((7.0))
),
child: Column(
children: [
Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.only(topLeft: Radius.circular(5.0),topRight: Radius.circular(5.0)),
color: ColorConfig.ThemeColor,
),
alignment: Alignment.center,
padding: EdgeInsets.only(top: 5,bottom: 5),
child: Text(e['vipTitle'],style: TextStyle(fontSize: 14,color: ColorConfig.WhiteBackColor),),
),
Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text("",style: TextStyle(fontSize: Screen.setFontSize(12),fontWeight: FontWeight.w700,color: ColorConfig.ThemeColor)),
Text(e["vipMoney"].toString(),style: TextStyle(fontSize: Screen.setFontSize(24),fontWeight: FontWeight.w700,color: ColorConfig.ThemeColor)),
],
),
height: Screen.setHeight(40),
alignment: Alignment.center,
),
Container(
padding: EdgeInsets.only(bottom: 5),
child: Text("每天仅${e["vipDay"].toString()}",style: TextStyle(fontSize: 10,color: ColorConfig.TextColor),),
)
],
),
),
)).toList()
),
),
],
),
),
Container(
alignment: Alignment.centerLeft,
padding: EdgeInsets.only(left: 15, right: 15),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text("1会员权益介绍",style: TextStyle(fontSize: Screen.setFontSize(18),fontWeight: FontWeight.w600),),
SizedBox(height: 10,),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: currentExplain != null ? currentExplain.map((e) =>
Container(
margin: EdgeInsets.only(left: 15),
child: Text(e,style: TextStyle(color: ColorConfig.TextColor),),
)
).toList() : [],
)
],
),
),
Container(
alignment: Alignment.centerLeft,
margin: EdgeInsets.only(bottom: 50),
padding: EdgeInsets.only(left: 15, right: 15,top: 15),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text("2购买提示",style: TextStyle(fontSize: Screen.setFontSize(18),fontWeight: FontWeight.w600),),
SizedBox(height: 10,),
Container(
margin: EdgeInsets.only(left: 15),
child: Column(
children: [
Text("1当您点击办理按钮后前往微信添加给出的客服微信号然后向对方转账并填写转账备注为订单号",style: TextStyle(color: ColorConfig.TextColor)),
SizedBox(height: 5,),
Text("2转账成功后请等待客服为您办理激活一分钟左右即可办理成功。",style: TextStyle(color: ColorConfig.TextColor)),
SizedBox(height: 5,),
],
),
)
],
),
),
InkWell(
onTap: () {
placeOrder();
// Modular.to.pushNamed("/status");
},
child: Container(
margin: EdgeInsets.only(left: Screen.setFontSize(15),right: Screen.setFontSize(15)),
height: Screen.setHeight(35),
alignment: Alignment.center,
width: Screen.width(context),
decoration: BoxDecoration(
color: ColorConfig.ThemeColor,
borderRadius: BorderRadius.circular(20)
),
child: Text(
"${Config.vipList[currentVipType - 1]['vipMoney']}/${Config.vipList[currentVipType - 1]['vipTitle']} 点击办理",
style: TextStyle(
color: ColorConfig.WhiteBackColor, fontSize: Screen.setFontSize(16)
),
),
),
)
],
),
);
}
}