提交 e9bf922f authored 作者: maodou's avatar maodou

1:过期优惠券相关显示

2:紫荆币待支付界面
上级 d25f0f4d
...@@ -264,6 +264,8 @@ class OrderInfoModel { ...@@ -264,6 +264,8 @@ class OrderInfoModel {
OrderInfoModel({ OrderInfoModel({
this.id, this.id,
this.ordersnum, this.ordersnum,
this.goodsId,
this.goodsName,
this.totalPrice, this.totalPrice,
this.finalTotalPrice, this.finalTotalPrice,
this.nums, this.nums,
...@@ -282,6 +284,8 @@ class OrderInfoModel { ...@@ -282,6 +284,8 @@ class OrderInfoModel {
OrderInfoModel.fromJson(dynamic json) { OrderInfoModel.fromJson(dynamic json) {
id = json['id']; id = json['id'];
ordersnum = json['ordersnum']; ordersnum = json['ordersnum'];
goodsId = json['goods_id'];
goodsName = json['goods_name'];
totalPrice = json['total_price']; totalPrice = json['total_price'];
finalTotalPrice = json['final_total_price']; finalTotalPrice = json['final_total_price'];
nums = json['num']; nums = json['num'];
...@@ -304,6 +308,8 @@ class OrderInfoModel { ...@@ -304,6 +308,8 @@ class OrderInfoModel {
} }
num? id; num? id;
String? ordersnum; String? ordersnum;
String? goodsId; //充值的凭证
String? goodsName;//充值名称
String? totalPrice; String? totalPrice;
String? finalTotalPrice; String? finalTotalPrice;
num? nums; num? nums;
...@@ -320,6 +326,8 @@ class OrderInfoModel { ...@@ -320,6 +326,8 @@ class OrderInfoModel {
List<BookListModel>? bookList; List<BookListModel>? bookList;
OrderInfoModel copyWith({ num? id, OrderInfoModel copyWith({ num? id,
String? ordersnum, String? ordersnum,
String? goodsId,
String? goodsName,
String? totalPrice, String? totalPrice,
String? finalTotalPrice, String? finalTotalPrice,
num? nums, num? nums,
...@@ -336,6 +344,8 @@ class OrderInfoModel { ...@@ -336,6 +344,8 @@ class OrderInfoModel {
List<BookListModel>? bookList, List<BookListModel>? bookList,
}) => OrderInfoModel( id: id ?? this.id, }) => OrderInfoModel( id: id ?? this.id,
ordersnum: ordersnum ?? this.ordersnum, ordersnum: ordersnum ?? this.ordersnum,
goodsId: ordersnum ?? this.goodsId,
goodsName: ordersnum ?? this.goodsName,
totalPrice: totalPrice ?? this.totalPrice, totalPrice: totalPrice ?? this.totalPrice,
finalTotalPrice: finalTotalPrice ?? this.finalTotalPrice, finalTotalPrice: finalTotalPrice ?? this.finalTotalPrice,
nums: nums ?? this.nums, nums: nums ?? this.nums,
...@@ -355,6 +365,8 @@ class OrderInfoModel { ...@@ -355,6 +365,8 @@ class OrderInfoModel {
final map = <String, dynamic>{}; final map = <String, dynamic>{};
map['id'] = id; map['id'] = id;
map['ordersnum'] = ordersnum; map['ordersnum'] = ordersnum;
map['goods_id'] = goodsId;
map['goods_name'] = goodsName;
map['total_price'] = totalPrice; map['total_price'] = totalPrice;
map['final_total_price'] = finalTotalPrice; map['final_total_price'] = finalTotalPrice;
map['num'] = nums; map['num'] = nums;
......
...@@ -42,7 +42,11 @@ class UserCouponController extends GetxController { ...@@ -42,7 +42,11 @@ class UserCouponController extends GetxController {
); );
// 如果是刷新 清理数据 // 如果是刷新 清理数据
if (isRefresh) coupons.clear(); if (isRefresh) coupons.clear();
coupons.addAll(result); for(CouponModel model in result){
model.type=type;
coupons.add(model);
}
// coupons.addAll(result);
_page ++; _page ++;
_noMore = result.length < _limit; _noMore = result.length < _limit;
update(); update();
......
...@@ -2,60 +2,76 @@ part of user_coupon; ...@@ -2,60 +2,76 @@ part of user_coupon;
class BuildItem extends StatelessWidget { class BuildItem extends StatelessWidget {
final CouponModel model; final CouponModel model;
const BuildItem({
Key? key, const BuildItem({Key? key, required this.model}) : super(key: key);
required this.model
}) : super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ColorFiltered( return ColorFiltered(
colorFilter: ColorFilter.mode(Colors.transparent, BlendMode.saturation), colorFilter: ColorFilter.mode(Colors.transparent, BlendMode.saturation),
child: Container( child: Container(
margin: EdgeInsets.only(left: 10.w,top: 10.w,right: 5.w), margin: EdgeInsets.only(left: 10.w, top: 10.w, right: 5.w),
child: Stack( child: Stack(
children: [ children: [
// Image.asset(model.type ==1?'assets/images/coupon_yes.png':'assets/images/coupon_no.png',
// fit: BoxFit.contain,
// width: double.infinity,),
Image.asset( Image.asset(
'assets/images/coupon_bg.png', model.type == 2
? 'assets/images/coupon_bg.png'
: 'assets/images/coupon_bg_expired.png',
fit: BoxFit.contain, fit: BoxFit.contain,
width: double.infinity, width: double.infinity,
), ),
// Image.asset(
// 'assets/images/coupon_bg.png',
// fit: BoxFit.contain,
// width: double.infinity,
// ),
SizedBox( SizedBox(
height: 105.w, height: 105.w,
child: Row( child: Row(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
SizedBox( SizedBox(
width:120.w , width: 120.w,
height: 100.w, height: 100.w,
child: Column( child: Column(
children: [ children: [
RichText( RichText(
overflow: TextOverflow.ellipsis, // 设置省略号 overflow: TextOverflow.ellipsis, // 设置省略号
text: TextSpan( text: TextSpan(children: <TextSpan>[
children: <TextSpan>[
TextSpan( TextSpan(
text: '¥', text: '¥',
style: TextStyle(fontSize: 15.w,fontWeight: Fonts.boldSemi,height: 1.5,color: Colors.white) style: TextStyle(
), fontSize: 15.w,
fontWeight: Fonts.boldSemi,
height: 1.5,
color: model.type == 2
? Colors.white
: Colours.cC8)),
TextSpan( TextSpan(
text: model.reducedPrice.toString(), text: model.reducedPrice.toString(),
style: TextStyle(fontSize: 40.w,fontWeight: Fonts.boldSemi,height: 1.5,color: Colors.white) style: TextStyle(
), fontSize: 40.w,
] fontWeight: Fonts.boldSemi,
), height: 1.5,
color: model.type == 2
? Colors.white
: Colours.cC8)),
]),
), ),
Text('满${model.normPrice}可用',style: TextStyle(fontSize: 11.w,height: 1.5,color: Colors.white),) Text(
'满${model.normPrice}可用',
style: TextStyle(
fontSize: 11.w, height: 1.5, color: model.type == 2
? Colors.white
: Colours.cC8),
)
], ],
), ),
// color: Colors.cyan, // color: Colors.cyan,
), ),
Expanded( Expanded(
child: Container( child: Container(
margin: EdgeInsets.only(left:11.w,right: 10.w ), margin: EdgeInsets.only(left: 11.w, right: 10.w),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
...@@ -65,18 +81,43 @@ class BuildItem extends StatelessWidget { ...@@ -65,18 +81,43 @@ class BuildItem extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Text(model.couponName??'',style: TextStyle(fontSize: 16.w,fontWeight: Fonts.medium,height: 1.5,color: Colours.c3), Text(
maxLines: 1,overflow: TextOverflow.ellipsis,), model.couponName ?? '',
style: TextStyle(
fontSize: 16.w,
fontWeight: Fonts.medium,
height: 1.5,
color: model.type == 2
? Colours.c3
: Colours.c9),
maxLines: 1,
overflow: TextOverflow.ellipsis,
),
Gaps.vGaps5, Gaps.vGaps5,
Text('满${model.normPrice}${model.reducedPrice}元',style: TextStyle(fontSize: 12.w,height: 1.5,color: Colours.c9), Text(
maxLines: 1,overflow: TextOverflow.ellipsis,), '满${model.normPrice}${model.reducedPrice}元',
style: TextStyle(
fontSize: 12.w,
height: 1.5,
color: Colours.c9),
maxLines: 1,
overflow: TextOverflow.ellipsis,
),
Gaps.vGaps5, Gaps.vGaps5,
Text('有效至:${model.endTime}',style: TextStyle(fontSize: 12.w,height: 1.5,color: Colours.c9), Text(
maxLines: 1,overflow: TextOverflow.ellipsis,), '有效至:${model.endTime}',
style: TextStyle(
fontSize: 12.w,
height: 1.5,
color: Colours.c9),
maxLines: 1,
overflow: TextOverflow.ellipsis,
),
], ],
), ),
), ),
Stack( model.type == 2
? Stack(
children: [ children: [
//TODO 暂时隐藏 立即使用 按钮 //TODO 暂时隐藏 立即使用 按钮
/* Positioned( /* Positioned(
...@@ -111,10 +152,14 @@ class BuildItem extends StatelessWidget { ...@@ -111,10 +152,14 @@ class BuildItem extends StatelessWidget {
builder: (BuildContext context) { builder: (BuildContext context) {
return AlertDialog( return AlertDialog(
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8.0.w), borderRadius:
BorderRadius.circular(
8.0.w),
), ),
contentPadding: EdgeInsets.zero, // 移除内容部分的内边距 contentPadding: EdgeInsets.zero,
content: Wrap(children: [ // 移除内容部分的内边距
content: Wrap(
children: [
Stack( Stack(
children: [ children: [
Stack( Stack(
...@@ -122,42 +167,74 @@ class BuildItem extends StatelessWidget { ...@@ -122,42 +167,74 @@ class BuildItem extends StatelessWidget {
Positioned( Positioned(
right: 10.w, right: 10.w,
top: 10.w, top: 10.w,
child: GestureDetector( child:
onTap: (){ GestureDetector(
Navigator.of(context).pop(); onTap: () {
Navigator.of(
context)
.pop();
}, },
child: SizedBox( child: SizedBox(
width: 20.w, width: 20.w,
height: 20.w, height: 20.w,
child: Image.asset('assets/images/close.png'), child: Image
.asset(
'assets/images/close.png'),
), ),
), ),
), ),
Container( Container(
padding: EdgeInsets.only(top: 29.5.w), padding: EdgeInsets
alignment: Alignment.topCenter, .only(
top: 29.5
.w),
alignment:
Alignment
.topCenter,
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment:
CrossAxisAlignment
.center,
children: [ children: [
Text( Text(
'优惠券使用细则', '优惠券使用细则',
style: TextStyle( style:
fontSize: 15.w, TextStyle(
fontWeight: Fonts.medium, fontSize:
color: Colours.c3, 15.w,
fontWeight:
Fonts
.medium,
color:
Colours
.c3,
),
), ),
SizedBox(
height:
14.w,
), ),
SizedBox(height: 14.w,),
Container( Container(
padding: EdgeInsets.only(left: 25.5.w,right: 18.w), padding: EdgeInsets.only(
child: Text('1.在系统开启情况下购买书籍可使用优惠券,金额需满足优惠券的限制金额。 \n\n 2.每笔订单最多使用一张优惠券,不可叠加使用。', left: 25.5
style: TextStyle( .w,
fontSize: 11.w, right: 18
color: Colours.c9, .w),
child: Text(
'1.在系统开启情况下购买书籍可使用优惠券,金额需满足优惠券的限制金额。 \n\n 2.每笔订单最多使用一张优惠券,不可叠加使用。',
style:
TextStyle(
fontSize:
11.w,
color: Colours
.c9,
),
), ),
), ),
SizedBox(
height:
26.5.w,
), ),
SizedBox(height: 26.5.w,),
], ],
), ),
), ),
...@@ -165,27 +242,43 @@ class BuildItem extends StatelessWidget { ...@@ -165,27 +242,43 @@ class BuildItem extends StatelessWidget {
), ),
], ],
), ),
],), ],
),
// 去除操作按钮区域的内边距 // 去除操作按钮区域的内边距
actionsPadding: EdgeInsets.zero, actionsPadding: EdgeInsets.zero,
); );
}, },
); );
}, },
child: Container( child: Container(
padding: EdgeInsets.only(bottom: 14.w), padding:
child: Text('优惠券使用规则>',style: TextStyle(fontSize: 10.w,fontWeight: Fonts.medium,color: AppTheme.primary),), EdgeInsets.only(bottom: 14.w),
child: Text(
'优惠券使用规则>',
style: TextStyle(
fontSize: 10.w,
fontWeight: Fonts.medium,
color: AppTheme.primary),
),
), ),
), ),
), ),
], ],
)
: Container(
alignment: Alignment.center,
padding: EdgeInsets.only(right: 5.5.w),
child: SizedBox(
height: 40.w,
width: 64.w,
child: Image.asset(
"assets/images/coupon_expired.png"),
),
), ),
], ],
), ),
), ),
) )
], ],
), ),
) )
......
...@@ -15,7 +15,14 @@ class BuiltCoin extends StatelessWidget { ...@@ -15,7 +15,14 @@ class BuiltCoin extends StatelessWidget {
}else if(model.status==3){ }else if(model.status==3){
status ='已完成'; status ='已完成';
} }
return Container( return GestureDetector(
onTap: () {
if(model.status == 1){
context.pushNamed(Routes.orderCoinAwaiting,
queryParameters: {'orderNum': model.ordersnum});
}
},
child: Container(
margin: EdgeInsets.only(left: 10.w, right: 10.w, top: 10.w), margin: EdgeInsets.only(left: 10.w, right: 10.w, top: 10.w),
padding: EdgeInsets.only(left: 11.5.w), padding: EdgeInsets.only(left: 11.5.w),
decoration: BoxDecoration( decoration: BoxDecoration(
...@@ -93,6 +100,7 @@ class BuiltCoin extends StatelessWidget { ...@@ -93,6 +100,7 @@ class BuiltCoin extends StatelessWidget {
)), )),
], ],
), ),
),
); );
} }
} }
part of user_order_coin_awaiting;
/// 紫荆币等待付款订单
class UserOrderCoinAwaitingController extends GetxController {
final String orderNum;
UserOrderCoinAwaitingController(this.orderNum); // 订单编号
late OrderInfoModel model;
// 应付款、订单编号等
List<OrderCompletedModel> orderAwaitings = [];
// 支付宝
Tobias tobias = Tobias();
// 微信
Fluwx fluwx = Fluwx();
late PayOrderModel payOrderModel;
@override
void onReady() {
getOrderInfo();
super.onReady();
}
/// 取消订单
void cancelPay() async {
final result = await MineAPI.cancelPay(ordersnum: orderNum);
if (result) {
Toast.show('取消成功');
update();
}
}
/// 获取订单信息
Future<void> getOrderInfo() async {
model = await MineAPI.getOrderInfo(orderNum: orderNum);
String payWay ='';
if(model.payType==1){
payWay='微信';
}else if(model.payType==2){
payWay='支付宝';
}else if(model.payType==3){
payWay='紫荆币';
}
orderAwaitings = [
OrderCompletedModel(name: '订单编号',value: model.ordersnum.toString()),
OrderCompletedModel(name: '支付方式',value: payWay),
OrderCompletedModel(name: '支付时间',value: model.payTime.toString()),
];
update();
}
Future<void> payOrder() async {
if (model.payType == 3){
final result = await MineAPI.coinPay(ordersNum: orderNum);
if (result){
Toast.show('订单支付完成');
getOrderInfo();
}
}
else{
payOrderModel = await MineAPI.getPayInfo(ordersNum: orderNum);
// 支付宝
if (model.payType == 2){
final result = await tobias.isAliPayInstalled;
if(!result){
Toast.show('请先安装支付宝');
}
else{
requestAliPay();
}
}
// 微信
if (model.payType ==1){
final result = await fluwx.isWeChatInstalled;
if(!result){
Toast.show('请先安装微信');
}
else{
requestWechat();
}
}
}
}
// 支付宝支付
void requestAliPay(){
print('================================================================${payOrderModel.encryptionOrder!}');
tobias.pay(payOrderModel.encryptionOrder!).then((payResult){
if (payResult['resultStatus'] == '9000') {
requestOrderStatus();
} else {
Toast.show(payResult['memo'].toString());
}
});
}
// 微信支付
void requestWechat(){
Payment payment = Payment(
appId: payOrderModel.appid??'',
partnerId: payOrderModel.partnerid??'',
prepayId: payOrderModel.prepayid??'',
packageValue: payOrderModel.package??'',
nonceStr: payOrderModel.noncestr??'',
timestamp: payOrderModel.timestamp!.toInt(),
sign: payOrderModel.sign??''
);
fluwx.pay(which: payment);
fluwx.addSubscriber((response) {
if (response.errCode == 0) {
requestOrderStatus();
}
else{
Toast.show('${response.errStr}');
}
});
}
void requestOrderStatus() async {
final result = await ShopAPI.orderStatus(orderNumber: payOrderModel.ordersnum??'',receipt: '');
if (result.paySuccess == 1){
Toast.show('订单支付完成');
getOrderInfo();
}
}
}
library user_order_coin_awaiting;
import 'package:flutter/material.dart';
import 'package:flutter_book/theme.dart';
import 'package:flutter_book/utils/index.dart';
import 'package:flutter_book/widgets/index.dart';
import 'package:fluwx/fluwx.dart';
import 'package:get/get.dart';
import 'package:get/get_state_manager/src/simple/get_controllers.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get_state_manager/src/simple/get_state.dart';
import 'package:go_router/go_router.dart';
import 'package:tobias/tobias.dart';
import '../../apis/index.dart';
import '../../models/index.dart';
part 'view.dart';
part 'controller.dart';
\ No newline at end of file
part of user_order_coin_awaiting;
/// 紫荆币待支付
class UserOrderCoinAwaitingPage extends StatefulWidget {
final String orderNum; // 订单编号
const UserOrderCoinAwaitingPage({Key? key, required this.orderNum})
: super(key: key);
@override
State<UserOrderCoinAwaitingPage> createState() =>
_UserOrderCoinAwaitingState();
}
class _UserOrderCoinAwaitingState extends State<UserOrderCoinAwaitingPage> {
late UserOrderCoinAwaitingController myController;
@override
void initState() {
myController = Get.put(UserOrderCoinAwaitingController(widget.orderNum));
super.initState();
}
@override
Widget build(BuildContext context) {
return FutureBuilder(
future: myController.getOrderInfo(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return Scaffold(
appBar: AppBar(
centerTitle: true,
title: const Text('待支付'),
),
);
} else {
return WillPopScope(
onWillPop: () async {
context.pop(true);
return false;
},
child: GetBuilder<UserOrderCoinAwaitingController>(
init: UserOrderCoinAwaitingController(widget.orderNum),
builder: (controller) => Scaffold(
appBar: CustomAppBar(
title: const Text('待支付'),
actions: [],
),
body: Column(
children: [
Container(
margin: EdgeInsets.symmetric(
horizontal: AppTheme.margin,
vertical: AppTheme.margin),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8.w),
color: Colors.white,
boxShadow: [
BoxShadow(
color: Colours.cC7.withOpacity(0.5),
offset: Offset(3.w, 0),
blurRadius: 10.w,
spreadRadius: 0.w,
),
],
),
child: ClipRRect(
borderRadius: BorderRadius.circular(8.w),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Padding(
padding: EdgeInsets.only(
left: 12.0.w,
top: 17.5.w,
bottom: 12.0.w),
child: Row(
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Image.asset(
'assets/images/coin.png',
// fit: BoxFit.cover, // 设置适应方式为充满
width: 42.0.w,
height: 42.0.w,
),
Expanded(
child: Padding(
padding:
EdgeInsets.only(right: 16.5.w),
child: Column(
mainAxisAlignment:
MainAxisAlignment
.spaceBetween,
crossAxisAlignment:
CrossAxisAlignment.end,
// 下面的Text靠左
children: [
Text(
'充值${controller.model.bean}紫荆币',
style: TextStyle(
color: Colours.c3,
fontWeight: Fonts.bold,
fontSize: 13.w,
),
maxLines: 2,
overflow: TextOverflow
.ellipsis, // 超过部分显示省略号
),
SizedBox(height: 9.w),
Text(
"需付款 ¥${controller.model.finalTotalPrice}",
style: TextStyle(
color: Colours.cAB1941,
fontWeight: Fonts.bold,
fontSize: 14.w,
),
),
],
),
),
),
],
),
),
Container(
color: Colours.cLine,
margin: EdgeInsets.only(
left: 10.w, right: 10.w, bottom: 12.w),
height: 1.w,
),
Container(
padding: EdgeInsets.only(
left: 11.5.w,
bottom: 8.w,
right: 23.5.w),
child: Column(
mainAxisAlignment:
MainAxisAlignment.spaceEvenly,
children: controller.orderAwaitings
.map((model) {
return Padding(
padding: EdgeInsets.only(top: 12.w),
child: Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Text(
model.name,
style: TextStyle(
fontSize: 13.w,
height: 1.6.w,
color: Colours.c9),
),
Text(
model.value.toString(),
style: TextStyle(
fontSize: 13.w,
height: 1.6.w,
color: Colours.c3),
),
],
),
);
}).toList(),
),
),
SizedBox(
height: 13.5.w,
),
],
),
),
),
SizedBox(
height: 11.5.w,
),
Container(
margin: EdgeInsets.symmetric(horizontal: 15.w),
height: 40.w,
decoration: BoxDecoration(
color: AppTheme.primary,
borderRadius: BorderRadius.circular(180.w),
border: Border.all(
color: Colours.cC31F4C, width: 0.5.w)),
child: Center(
child: GestureDetector(
onTap: () {
// print("保存昵称");
// context.pushNamed(Routes.orderEvaluate);
},
child: Text(
'立即支付 ¥${controller.model.finalTotalPrice}',
style: TextStyle(
fontWeight: Fonts.medium,
fontSize: 14.w,
color: Colours.cFF),
)),
),
),
SizedBox(
height: 11.5.w,
),
GestureDetector(
onTap: () {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(8.0.w),
),
contentPadding: EdgeInsets.zero,
// 移除内容部分的内边距
content: Wrap(
children: [
Container(
margin: EdgeInsets.only(
top: 44.w,
bottom: 29.w), // 调整上下间距
child: Center(
child: Text(
'确定取消订单吗',
style: TextStyle(
fontSize: 15.w,
fontWeight: Fonts.medium,
color: Colours.c3,
),
),
),
),
Container(
height: 1.w, // 设置分割线的高度
width: double.infinity, // 设置分割线的宽度
color: Colours.cLine, // 设置分割线的颜色
),
],
),
// 去除操作按钮区域的内边距
actionsPadding: EdgeInsets.zero,
actions: <Widget>[
Row(
mainAxisAlignment:
MainAxisAlignment.spaceEvenly,
// 或者使用MainAxisAlignment.spaceEvenly
children: [
GestureDetector(
onTap: () =>
Navigator.of(context).pop(),
child: const Text(
'取消',
style: TextStyle(
fontSize: 12,
fontWeight: Fonts.medium,
color: Colours.c6,
),
),
),
Container(
height: 39.5.w, // 设置分割线的高度
width: 1, // 设置分割线的宽度
color: Colours.cLine, // 设置分割线的颜色
),
GestureDetector(
onTap: () {
controller.cancelPay();
Navigator.of(context).pop();
Navigator.pop(context);
},
child: const Text(
'确定',
style: TextStyle(
fontSize: 12,
fontWeight: Fonts.medium,
color: Colours.cAB1941,
),
),
),
],
),
],
);
},
);
},
child: Text(
'取消订单',
style: TextStyle(
fontWeight: Fonts.medium,
fontSize: 15.w,
color: Colours.c9,
),
),
),
],
),
)),
);
}
},
);
}
}
...@@ -15,7 +15,7 @@ class UserOrderEvaluatePage extends StatefulWidget { ...@@ -15,7 +15,7 @@ class UserOrderEvaluatePage extends StatefulWidget {
State<UserOrderEvaluatePage> createState() => _UserOrderEvaluatePageState(); State<UserOrderEvaluatePage> createState() => _UserOrderEvaluatePageState();
} }
class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> { class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> with AutomaticKeepAliveClientMixin{
late UserOrderEvaluateController myController; late UserOrderEvaluateController myController;
List<TextEditingController> controllers = []; List<TextEditingController> controllers = [];
List<OrderEvaluate> orderEvaluates = []; List<OrderEvaluate> orderEvaluates = [];
...@@ -290,4 +290,7 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> { ...@@ -290,4 +290,7 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> {
), ),
); );
} }
@override
bool get wantKeepAlive => true;
} }
...@@ -33,6 +33,7 @@ import 'package:flutter_book/pages/user_nick/index.dart'; ...@@ -33,6 +33,7 @@ import 'package:flutter_book/pages/user_nick/index.dart';
import 'package:flutter_book/pages/user_notes/index.dart'; import 'package:flutter_book/pages/user_notes/index.dart';
import 'package:flutter_book/pages/user_notes_des/index.dart'; import 'package:flutter_book/pages/user_notes_des/index.dart';
import 'package:flutter_book/pages/user_order_awaiting/index.dart'; import 'package:flutter_book/pages/user_order_awaiting/index.dart';
import 'package:flutter_book/pages/user_order_coin_awaiting/index.dart';
import 'package:flutter_book/pages/user_order_completed/index.dart'; import 'package:flutter_book/pages/user_order_completed/index.dart';
import 'package:flutter_book/pages/user_order_refunded/index.dart'; import 'package:flutter_book/pages/user_order_refunded/index.dart';
import 'package:flutter_book/pages/user_point/index.dart'; import 'package:flutter_book/pages/user_point/index.dart';
......
...@@ -108,8 +108,10 @@ abstract class Routes { ...@@ -108,8 +108,10 @@ abstract class Routes {
static const order= 'order'; static const order= 'order';
// 已完成订单 // 已完成订单
static const orderCompleted= 'order_completed'; static const orderCompleted= 'order_completed';
// 待付款订单 // 图书待付款订单
static const orderAwaiting= 'order_awaiting'; static const orderAwaiting= 'order_awaiting';
// 紫荆币待付款订单
static const orderCoinAwaiting= 'order_coin_awaiting';
// 已退款订单 // 已退款订单
static const orderRefunded= 'order_refunded'; static const orderRefunded= 'order_refunded';
// 搜索订单 // 搜索订单
...@@ -528,7 +530,7 @@ abstract class Routes { ...@@ -528,7 +530,7 @@ abstract class Routes {
child: UserOrderCompletedPage(orderNum: state.uri.queryParameters['orderNum'].toString()) child: UserOrderCompletedPage(orderNum: state.uri.queryParameters['orderNum'].toString())
) )
), ),
GoRoute( // 待付款订单 GoRoute( // 图书待付款订单
path: '/$orderAwaiting', path: '/$orderAwaiting',
name: orderAwaiting, name: orderAwaiting,
pageBuilder: (context, state) =>CupertinoPage( pageBuilder: (context, state) =>CupertinoPage(
...@@ -537,6 +539,15 @@ abstract class Routes { ...@@ -537,6 +539,15 @@ abstract class Routes {
child: UserOrderAwaitingPage(orderNum: state.uri.queryParameters['orderNum'].toString()) child: UserOrderAwaitingPage(orderNum: state.uri.queryParameters['orderNum'].toString())
) )
), ),
GoRoute( // 紫荆币待付款订单
path: '/$orderCoinAwaiting',
name: orderCoinAwaiting,
pageBuilder: (context, state) =>CupertinoPage(
name: state.uri.toString(),
key: state.pageKey,
child: UserOrderCoinAwaitingPage(orderNum: state.uri.queryParameters['orderNum'].toString())
)
),
GoRoute( // 已退款订单 GoRoute( // 已退款订单
path: '/$orderRefunded', path: '/$orderRefunded',
name: orderRefunded, name: orderRefunded,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论