提交 40411fb9 authored 作者: yueweilu's avatar yueweilu

应付明细

上级 8c715ac0
...@@ -13,11 +13,19 @@ class BookPayController extends GetxController { ...@@ -13,11 +13,19 @@ class BookPayController extends GetxController {
PayModel(type: 3, name: '紫荆币', icon: 'assets/images/pay_coin.png', selected: false), PayModel(type: 3, name: '紫荆币', icon: 'assets/images/pay_coin.png', selected: false),
]; ];
// 时候展示底部视图
bool showDetail = false;
// 支付方式 // 支付方式
late PayModel _payModel = pays.first; late PayModel _payModel = pays.first;
PayModel get payModel => _payModel; PayModel get payModel => _payModel;
void show(){
showDetail = !showDetail;
update();
}
void setPayModel(PayModel payModel){ void setPayModel(PayModel payModel){
for (PayModel model in pays) { for (PayModel model in pays) {
if (model.type == payModel.type){ if (model.type == payModel.type){
......
...@@ -17,7 +17,9 @@ class _BookPayPageState extends State<BookPayPage> { ...@@ -17,7 +17,9 @@ class _BookPayPageState extends State<BookPayPage> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return GetBuilder<BookPayController>( return GetBuilder<BookPayController>(
init: BookPayController(widget.buy), init: BookPayController(widget.buy),
builder: (controller) => Scaffold( builder: (controller) => Stack(
children: [
Scaffold(
backgroundColor: Colours.cF9, backgroundColor: Colours.cF9,
appBar: AppBar(title: const Text('支付'),), appBar: AppBar(title: const Text('支付'),),
body: SingleChildScrollView( body: SingleChildScrollView(
...@@ -97,11 +99,112 @@ class _BookPayPageState extends State<BookPayPage> { ...@@ -97,11 +99,112 @@ class _BookPayPageState extends State<BookPayPage> {
], ],
), ),
), ),
bottomNavigationBar: SafeArea(child: BuildPayCount()), bottomNavigationBar: SafeArea(child:BuildPayCount(
payTap: (){
Console.log('--------------支付------------------');
},
showTap: (){
controller.show();
Console.log('--------------展示优惠详情------------------');
}
)),
),
controller.showDetail?Positioned(
left: 0.w,
bottom: 50.w,
right: 0.w,
top: 0.w,
child: GestureDetector(
onTap: (){
controller.show();
},
child: Container(
color:const Color(0xFF000000).withOpacity(0.5),
child: Align(
alignment: Alignment.bottomCenter,
child: ClipRRect(
borderRadius: BorderRadius.only(topRight: Radius.circular(8.w),topLeft: Radius.circular(8.w)),
child: Container(
height: 240.w,
color: Colors.white,
child: _buildPayDetail(controller),
),
),
), ),
),
),
):const SizedBox()
],
)
); );
} }
Widget _buildPayDetail(BookPayController controller){
return Column(
children: [
Stack(
children: [
Container(
// color: Colors.red,
padding: EdgeInsets.all(15.w),
child: const Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('应付明细',textAlign:TextAlign.center),
],
),
),
Positioned(
right: 10.w,
top: 10.w,
child: GestureDetector(
onTap: (){
controller.show();
},
child: SizedBox(
width: 20.w,
height: 20.w,
child: Image.asset('assets/images/close.png'),
),
),
)
],
),
SizedBox(height: 50.w,),
Container(
margin: EdgeInsets.symmetric(horizontal: 15.w),
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text('总价',style: TextStyle(fontSize: 16.w,height: 1.5,color: Colours.c3,fontWeight: Fonts.medium),),
Text('¥199.80',style: TextStyle(fontSize: 15.w,height: 1.5,color: AppTheme.primary,fontWeight: Fonts.medium),)
],
),
Gaps.vGaps15,
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text('优惠券抵扣',style: TextStyle(fontSize: 13.w,height: 1.5,color: Colours.c9,),),
Text('减¥199.80',style: TextStyle(fontSize: 13.w,height: 1.5,color: AppTheme.primary),)
],
),
Gaps.vGaps10,
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text('积分抵扣',style: TextStyle(fontSize: 13.w,height: 1.5,color: Colours.c9,),),
Text('减¥199.80',style: TextStyle(fontSize: 13.w,height: 1.5,color: AppTheme.primary),)
],
)
],
),
)
],
);
}
Widget _buildWidget({ Widget _buildWidget({
required String title, required String title,
......
part of book_pay; part of book_pay;
class BuildPayCount extends StatelessWidget { class BuildPayCount extends StatelessWidget {
const BuildPayCount({Key? key}) : super(key: key); final void Function()? payTap;
final void Function()? showTap;
const BuildPayCount({
Key? key,
required this.payTap,
required this.showTap
}) : super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
...@@ -13,19 +20,32 @@ class BuildPayCount extends StatelessWidget { ...@@ -13,19 +20,32 @@ class BuildPayCount extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
Row( GestureDetector(
onTap: showTap,
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
Text('应付:',style: TextStyle(fontSize:14.w,color: Colours.c3 ,height: 1.1),), Text('应付:',style: TextStyle(fontSize:14.w,color: Colours.c3 ,height: 1.1),),
Text('¥98.9',style: TextStyle(fontSize:15.w,color:AppTheme.primary,fontWeight: Fonts.medium ,height: 1.1),) Text('¥98.9',style: TextStyle(fontSize:15.w,color:AppTheme.primary,fontWeight: Fonts.medium ,height: 1.1),),
SizedBox(
// color: Colors.cyan,
width: 20.w,
height: 20.w,
child: Image.asset('assets/images/pay_up.png')
)
], ],
), ),
Container( ),
GestureDetector(
onTap: payTap,
child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15.w), borderRadius: BorderRadius.circular(15.w),
color: AppTheme.primary color: AppTheme.primary
), ),
padding: EdgeInsets.symmetric(horizontal:13.5.w,vertical: 8.w), padding: EdgeInsets.symmetric(horizontal:13.5.w,vertical: 8.w),
child: Text('确认支付',style: TextStyle(fontSize: 14.w,fontWeight: Fonts.medium,color: Colors.white),), child: Text('确认支付',style: TextStyle(fontSize: 14.w,fontWeight: Fonts.medium,color: Colors.white),),
),
) )
], ],
), ),
......
...@@ -189,6 +189,8 @@ class BookshopController extends GetxController { ...@@ -189,6 +189,8 @@ class BookshopController extends GetxController {
CourseModel(bookName: '哈1',bookId: 111,vipPrice: '12.33',authors: 'John',status: 1), CourseModel(bookName: '哈1',bookId: 111,vipPrice: '12.33',authors: 'John',status: 1),
CourseModel(bookName: '哈2',bookId: 123,vipPrice: '12.00',authors: 'json',status: 1), CourseModel(bookName: '哈2',bookId: 123,vipPrice: '12.00',authors: 'json',status: 1),
CourseModel(bookName: '哈3',bookId: 11,vipPrice: '12.43',authors: 'hash',status: 1), CourseModel(bookName: '哈3',bookId: 11,vipPrice: '12.43',authors: 'hash',status: 1),
CourseModel(bookName: '哈3',bookId: 11,vipPrice: '12.43',authors: 'hash',status: 1),
CourseModel(bookName: '哈3',bookId: 11,vipPrice: '12.43',authors: 'hash',status: 1),
]; ];
} }
......
...@@ -11,6 +11,7 @@ import '../../routes/index.dart'; ...@@ -11,6 +11,7 @@ import '../../routes/index.dart';
import '../../store/index.dart'; import '../../store/index.dart';
import '../book_shop/index.dart'; import '../book_shop/index.dart';
import '../course/index.dart'; import '../course/index.dart';
import '../web/index.dart';
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论