提交 66dcce78 authored 作者: maodou's avatar maodou

1:订单功能完善

上级 74128bd5
...@@ -311,7 +311,7 @@ abstract class MineAPI { ...@@ -311,7 +311,7 @@ abstract class MineAPI {
} }
/// 20、订单列表 /// 19、订单列表
static Future<List<OrderListModel>> orderList({ static Future<List<OrderListModel>> orderList({
int page = 1, int page = 1,
int limit = 10, int limit = 10,
...@@ -336,7 +336,7 @@ abstract class MineAPI { ...@@ -336,7 +336,7 @@ abstract class MineAPI {
}); });
} }
/// 19、紫荆币充值列表 /// 20、紫荆币充值列表
/// ///
static Future<List<CoinModel>> coinsRechargeList( static Future<List<CoinModel>> coinsRechargeList(
{ {
...@@ -367,7 +367,7 @@ abstract class MineAPI { ...@@ -367,7 +367,7 @@ abstract class MineAPI {
return false; return false;
} }
/// 20、紫荆币充值创建订单 /// 22、紫荆币充值创建订单
static Future<PayOrderModel> createRechargeOrder( static Future<PayOrderModel> createRechargeOrder(
{ {
required String identifying, required String identifying,
...@@ -384,5 +384,21 @@ abstract class MineAPI { ...@@ -384,5 +384,21 @@ abstract class MineAPI {
return PayOrderModel.fromJson(result.data); return PayOrderModel.fromJson(result.data);
} }
/// 23、获取订单详情
static Future<OrderInfoModel> getOrderInfo(
{
required String orderNum,
}) async {
final result = await HttpService.to.post(
'/v1/orders/Orders/getInfoOrdersnum',
params: {
'ordersnum': orderNum,
},
);
if (result.data is! Map) return OrderInfoModel();
return OrderInfoModel.fromJson(result.data);
}
} }
...@@ -253,21 +253,7 @@ class CartListModel { ...@@ -253,21 +253,7 @@ class CartListModel {
} }
/// id : 740 /// 订单详情
/// ordersnum : "VN240126111215511309"
/// total_price : "45.00"
/// final_total_price : "45.00"
/// nums : 1
/// status : 3
/// create_time : "2024-01-26 11:12:15"
/// coupon_price : "0.00"
/// integral_price : "0.00"
/// pay_type : 3
/// pay_time : "2024-01-26 11:12:15"
/// types : 1
/// bean : 0
/// book_list : [{"book_id":110,"name":"ASASDASD","img":"img","introduction":"introduction","price":"45.00","rating":0,"comments":0,"create_time":0}]
class OrderInfoModel { class OrderInfoModel {
OrderInfoModel({ OrderInfoModel({
this.id, this.id,
...@@ -281,6 +267,8 @@ class OrderInfoModel { ...@@ -281,6 +267,8 @@ class OrderInfoModel {
this.integralPrice, this.integralPrice,
this.payType, this.payType,
this.payTime, this.payTime,
this.refundTime,
this.refundReason,
this.types, this.types,
this.bean, this.bean,
this.bookList,}); this.bookList,});
...@@ -297,6 +285,8 @@ class OrderInfoModel { ...@@ -297,6 +285,8 @@ class OrderInfoModel {
integralPrice = json['integral_price']; integralPrice = json['integral_price'];
payType = json['pay_type']; payType = json['pay_type'];
payTime = json['pay_time']; payTime = json['pay_time'];
refundTime = json['refund_time'];
refundReason = json['refund_reason'];
types = json['types']; types = json['types'];
bean = json['bean']; bean = json['bean'];
if (json['list'] != null) { if (json['list'] != null) {
...@@ -317,6 +307,8 @@ class OrderInfoModel { ...@@ -317,6 +307,8 @@ class OrderInfoModel {
String? integralPrice; String? integralPrice;
num? payType; num? payType;
String? payTime; String? payTime;
String? refundTime;
String? refundReason;
num? types; num? types;
num? bean; num? bean;
List<BookListModel>? bookList; List<BookListModel>? bookList;
...@@ -331,6 +323,8 @@ class OrderInfoModel { ...@@ -331,6 +323,8 @@ class OrderInfoModel {
String? integralPrice, String? integralPrice,
num? payType, num? payType,
String? payTime, String? payTime,
String? refundTime,
String? refundReason,
num? types, num? types,
num? bean, num? bean,
List<BookListModel>? bookList, List<BookListModel>? bookList,
...@@ -345,6 +339,8 @@ class OrderInfoModel { ...@@ -345,6 +339,8 @@ class OrderInfoModel {
integralPrice: integralPrice ?? this.integralPrice, integralPrice: integralPrice ?? this.integralPrice,
payType: payType ?? this.payType, payType: payType ?? this.payType,
payTime: payTime ?? this.payTime, payTime: payTime ?? this.payTime,
refundTime: refundTime ?? this.refundTime,
refundReason: refundReason ?? this.refundReason,
types: types ?? this.types, types: types ?? this.types,
bean: bean ?? this.bean, bean: bean ?? this.bean,
bookList: bookList ?? this.bookList, bookList: bookList ?? this.bookList,
...@@ -362,6 +358,8 @@ class OrderInfoModel { ...@@ -362,6 +358,8 @@ class OrderInfoModel {
map['integral_price'] = integralPrice; map['integral_price'] = integralPrice;
map['pay_type'] = payType; map['pay_type'] = payType;
map['pay_time'] = payTime; map['pay_time'] = payTime;
map['refund_time'] = refundTime;
map['refund_reason'] = refundReason;
map['types'] = types; map['types'] = types;
map['bean'] = bean; map['bean'] = bean;
if (bookList != null) { if (bookList != null) {
......
...@@ -8,7 +8,7 @@ class BuiltAwaiting extends StatelessWidget { ...@@ -8,7 +8,7 @@ class BuiltAwaiting extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return GestureDetector( return GestureDetector(
onTap: () { context.pushNamed(Routes.orderAwaiting);}, onTap: () { context.pushNamed(Routes.orderAwaiting,queryParameters: {'orderNum':model.ordersnum});},
child: Container( 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, bottom: 12.w), padding: EdgeInsets.only(left: 11.5.w, bottom: 12.w),
......
...@@ -13,7 +13,7 @@ class BuiltCompleted extends StatelessWidget { ...@@ -13,7 +13,7 @@ class BuiltCompleted extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return GestureDetector( return GestureDetector(
onTap: () { context.pushNamed(Routes.orderCompleted);}, onTap: () { context.pushNamed(Routes.orderCompleted,queryParameters: {'orderNum':model.ordersnum});},
child: Container( 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, bottom: 12.w), padding: EdgeInsets.only(left: 11.5.w, bottom: 12.w),
...@@ -160,7 +160,7 @@ class BuiltCompleted extends StatelessWidget { ...@@ -160,7 +160,7 @@ class BuiltCompleted extends StatelessWidget {
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {
// print("保存昵称"); // print("保存昵称");
context.pushNamed(Routes.orderEvaluate); context.pushNamed(Routes.orderEvaluate,extra: model);
}, },
child: Text( child: Text(
'去评价', '去评价',
...@@ -292,7 +292,7 @@ class BuiltCompleted extends StatelessWidget { ...@@ -292,7 +292,7 @@ class BuiltCompleted extends StatelessWidget {
child: Center( child: Center(
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {
context.pushNamed(Routes.orderEvaluate); context.pushNamed(Routes.orderEvaluate,extra: model);
}, },
child: Text( child: Text(
'继续评价', '继续评价',
......
...@@ -9,7 +9,7 @@ class BuiltRefunded extends StatelessWidget { ...@@ -9,7 +9,7 @@ class BuiltRefunded extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return GestureDetector( return GestureDetector(
onTap: () { context.pushNamed(Routes.orderRefunded);}, onTap: () { context.pushNamed(Routes.orderRefunded,queryParameters: {'orderNum':model.ordersnum});},
child:Container( 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, bottom: 12.w), padding: EdgeInsets.only(left: 11.5.w, bottom: 12.w),
......
...@@ -2,9 +2,11 @@ part of user_order_awaiting; ...@@ -2,9 +2,11 @@ part of user_order_awaiting;
/// 等待付款订单 /// 等待付款订单
class UserOrderAwaitingController extends GetxController { class UserOrderAwaitingController extends GetxController {
// 已完成订单 final String orderNum;
OrderCompletedInfoModel orderCompletedInfo = OrderCompletedInfoModel();
OrderListModel orderListModel = OrderListModel(); UserOrderAwaitingController(this.orderNum); // 订单编号
late OrderInfoModel model;
// 应付款、订单编号等 // 应付款、订单编号等
List<OrderCompletedModel> orderAwaitings = []; List<OrderCompletedModel> orderAwaitings = [];
...@@ -15,9 +17,9 @@ class UserOrderAwaitingController extends GetxController { ...@@ -15,9 +17,9 @@ class UserOrderAwaitingController extends GetxController {
super.onReady(); super.onReady();
} }
/// 修改用用户信息 /// 取消订单
void cancelPay() async { void cancelPay() async {
final result = await MineAPI.cancelPay(ordersnum: orderListModel.ordersnum??''); final result = await MineAPI.cancelPay(ordersnum: orderNum);
if (result) { if (result) {
Toast.show('取消成功'); Toast.show('取消成功');
update(); update();
...@@ -29,12 +31,19 @@ class UserOrderAwaitingController extends GetxController { ...@@ -29,12 +31,19 @@ class UserOrderAwaitingController extends GetxController {
/// 获取订单信息 /// 获取订单信息
void getOrderInfo() async { void getOrderInfo() async {
// orderCompletedInfo = await MineAPI.userInfo(); model = await MineAPI.getOrderInfo(orderNum: orderNum);
orderCompletedInfo = OrderCompletedInfoModel(id:1,price:'88.00',totalPay: '58.00',favorable: '5.00',orderId: 'ZJ2023122163728437',payWay: '微信支付',payTime: '2023-12-21 01:25:24',orderTime: '2023-12-21 01:25:15'); String payWay ='';
if(model.payType==1){
payWay='微信';
}else if(model.payType==2){
payWay='支付宝';
}else if(model.payType==3){
payWay='紫荆币';
}
orderAwaitings = [ orderAwaitings = [
OrderCompletedModel(name: '订单编号',value: orderCompletedInfo.orderId.toString()), OrderCompletedModel(name: '订单编号',value: model.ordersnum.toString()),
OrderCompletedModel(name: '支付方式',value: orderCompletedInfo.payWay.toString()), OrderCompletedModel(name: '支付方式',value: payWay),
OrderCompletedModel(name: '支付时间',value: orderCompletedInfo.payTime.toString()), OrderCompletedModel(name: '支付时间',value: model.payTime.toString()),
]; ];
update(); update();
......
...@@ -5,6 +5,7 @@ import 'package:flutter/material.dart'; ...@@ -5,6 +5,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_book/theme.dart'; import 'package:flutter_book/theme.dart';
import 'package:flutter_book/utils/index.dart'; import 'package:flutter_book/utils/index.dart';
import 'package:flutter_book/widgets/index.dart'; import 'package:flutter_book/widgets/index.dart';
import 'package:get/get.dart';
import 'package:get/get_state_manager/src/simple/get_controllers.dart'; import 'package:get/get_state_manager/src/simple/get_controllers.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get_state_manager/src/simple/get_state.dart'; import 'package:get/get_state_manager/src/simple/get_state.dart';
......
part of user_order_awaiting; part of user_order_awaiting;
class UserOrderAwaitingPage extends StatefulWidget { class UserOrderAwaitingPage extends StatefulWidget {
const UserOrderAwaitingPage({Key? key /*, required this.userInfo*/ final String orderNum; // 订单编号
}) const UserOrderAwaitingPage({Key? key , required this.orderNum}) : super(key: key);
: super(key: key);
@override @override
State<UserOrderAwaitingPage> createState() => _UserOrderAwaitingState(); State<UserOrderAwaitingPage> createState() => _UserOrderAwaitingState();
} }
class _UserOrderAwaitingState extends State<UserOrderAwaitingPage> { class _UserOrderAwaitingState extends State<UserOrderAwaitingPage> {
/* late num? selectedGender ; // 选中的性别
@override @override
void initState() { void initState() {
Get.put(UserOrderAwaitingController(widget.orderNum));
super.initState(); super.initState();
selectedGender = widget.userInfo.sex; }
// 在这里可以使用 localVariable 进行操作
}*/
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
...@@ -26,7 +23,7 @@ class _UserOrderAwaitingState extends State<UserOrderAwaitingPage> { ...@@ -26,7 +23,7 @@ class _UserOrderAwaitingState extends State<UserOrderAwaitingPage> {
return false; return false;
}, },
child: GetBuilder<UserOrderAwaitingController>( child: GetBuilder<UserOrderAwaitingController>(
init: UserOrderAwaitingController(), init: UserOrderAwaitingController(widget.orderNum),
builder: (controller) => Scaffold( builder: (controller) => Scaffold(
appBar: CustomAppBar( appBar: CustomAppBar(
title: const Text('等待付款'), title: const Text('等待付款'),
...@@ -35,7 +32,6 @@ class _UserOrderAwaitingState extends State<UserOrderAwaitingPage> { ...@@ -35,7 +32,6 @@ class _UserOrderAwaitingState extends State<UserOrderAwaitingPage> {
body: Column( body: Column(
children: [ children: [
Container( Container(
width: double.infinity,
margin: EdgeInsets.symmetric( margin: EdgeInsets.symmetric(
horizontal: AppTheme.margin, horizontal: AppTheme.margin,
vertical: AppTheme.margin), vertical: AppTheme.margin),
...@@ -65,8 +61,7 @@ class _UserOrderAwaitingState extends State<UserOrderAwaitingPage> { ...@@ -65,8 +61,7 @@ class _UserOrderAwaitingState extends State<UserOrderAwaitingPage> {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Image.network( Image.network(
'http://zxts-user-file.oss-cn-beijing.aliyuncs.com/2024-01/20/eb167c2f59f7e34c0ef94a9f1ce736ee64d76a11.jpg', controller.model?.bookList?[0].img??'',
// 用实际图片链接替换
fit: BoxFit.cover, // 设置适应方式为充满 fit: BoxFit.cover, // 设置适应方式为充满
width: 72.0.w, width: 72.0.w,
height: 86.0.w, height: 86.0.w,
...@@ -84,7 +79,7 @@ class _UserOrderAwaitingState extends State<UserOrderAwaitingPage> { ...@@ -84,7 +79,7 @@ class _UserOrderAwaitingState extends State<UserOrderAwaitingPage> {
CrossAxisAlignment.end, // 下面的Text靠左 CrossAxisAlignment.end, // 下面的Text靠左
children: [ children: [
Text( Text(
"一想到还有95%的问题留给人类,我就放一想到还有95%的问题留给问题留给", controller.model.bookList?[0].introduction??'',
style: TextStyle( style: TextStyle(
color: Colours.c3, color: Colours.c3,
fontWeight: Fonts.bold, fontWeight: Fonts.bold,
...@@ -96,7 +91,7 @@ class _UserOrderAwaitingState extends State<UserOrderAwaitingPage> { ...@@ -96,7 +91,7 @@ class _UserOrderAwaitingState extends State<UserOrderAwaitingPage> {
), ),
SizedBox(height: 25.5.w), SizedBox(height: 25.5.w),
Text( Text(
"需付款 ¥${controller.orderCompletedInfo.price}", "需付款 ¥${controller.model.finalTotalPrice}",
style: TextStyle( style: TextStyle(
color: Colours.cAB1941, color: Colours.cAB1941,
fontWeight: Fonts.bold, fontWeight: Fonts.bold,
...@@ -175,7 +170,7 @@ class _UserOrderAwaitingState extends State<UserOrderAwaitingPage> { ...@@ -175,7 +170,7 @@ class _UserOrderAwaitingState extends State<UserOrderAwaitingPage> {
context.pushNamed(Routes.orderEvaluate); context.pushNamed(Routes.orderEvaluate);
}, },
child: Text( child: Text(
'立即支付 ¥${controller.orderCompletedInfo.price}', '立即支付 ¥${controller.model.finalTotalPrice}',
style: TextStyle( style: TextStyle(
fontWeight: Fonts.medium, fontWeight: Fonts.medium,
fontSize: 14.w, fontSize: 14.w,
......
...@@ -2,11 +2,20 @@ part of user_order_completed; ...@@ -2,11 +2,20 @@ part of user_order_completed;
/// 已完成订单 /// 已完成订单
class UserOrderCompletedController extends GetxController { class UserOrderCompletedController extends GetxController {
// 已完成订单 final String orderNum;// 订单编号
OrderCompletedInfoModel orderCompletedInfo = OrderCompletedInfoModel(); UserOrderCompletedController(this.orderNum);/*{
getOrderInfo();
}*/
late OrderInfoModel model=OrderInfoModel();
// 应付款、订单编号等 // 应付款、订单编号等
List<OrderCompletedModel> orderCompleteds = []; List<OrderCompletedModel> orderCompleteds = [];
// @override
// void onInit() {
// // getOrderInfo();
// super.onInit();
// }
@override @override
void onReady() { void onReady() {
...@@ -21,14 +30,23 @@ class UserOrderCompletedController extends GetxController { ...@@ -21,14 +30,23 @@ class UserOrderCompletedController extends GetxController {
/// 获取订单信息 /// 获取订单信息
void getOrderInfo() async { void getOrderInfo() async {
// orderCompletedInfo = await MineAPI.userInfo(); model = await MineAPI.getOrderInfo(orderNum: orderNum);
orderCompletedInfo = OrderCompletedInfoModel(id:1,price:'88',totalPay: '58.00',favorable: '5.00',orderId: 'ZJ2023122163728437',payWay: '微信支付',payTime: '2023-12-21 01:25:24',orderTime: '2023-12-21 01:25:15'); String payWay ='';
if(model.payType==1){
payWay='微信';
}else if(model.payType==2){
payWay='支付宝';
}else if(model.payType==3){
payWay='紫荆币';
}
orderCompleteds = [ orderCompleteds = [
OrderCompletedModel(name: '应付款',value: orderCompletedInfo.totalPay.toString()/*,link: Routes.note*/,other: orderCompletedInfo.favorable.toString()), OrderCompletedModel(name: '应付款',value: model.finalTotalPrice.toString(),
OrderCompletedModel(name: '订单编号',value: orderCompletedInfo.orderId.toString()), other: (double.parse(model.totalPrice.toString())-
OrderCompletedModel(name: '支付方式',value: orderCompletedInfo.payWay.toString()), double.parse(model.finalTotalPrice.toString())).toString()),
OrderCompletedModel(name: '支付时间',value: orderCompletedInfo.payTime.toString()), OrderCompletedModel(name: '订单编号',value: model.ordersnum.toString()),
OrderCompletedModel(name: '下单时间',value: orderCompletedInfo.orderTime.toString()), OrderCompletedModel(name: '支付方式',value: payWay),
OrderCompletedModel(name: '支付时间',value: model.payTime.toString()),
OrderCompletedModel(name: '下单时间',value: model.createTime.toString()),
]; ];
update(); update();
......
...@@ -10,8 +10,10 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; ...@@ -10,8 +10,10 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get_state_manager/src/simple/get_state.dart'; import 'package:get/get_state_manager/src/simple/get_state.dart';
import 'package:go_router/go_router.dart'; import 'package:go_router/go_router.dart';
import '../../apis/index.dart';
import '../../models/index.dart'; import '../../models/index.dart';
import '../../routes/index.dart'; import '../../routes/index.dart';
import '../user_order_refunded_details/index.dart';
part 'view.dart'; part 'view.dart';
part 'controller.dart'; part 'controller.dart';
\ No newline at end of file
part of user_order_completed; part of user_order_completed;
class UserOrderCompletedPage extends StatefulWidget { class UserOrderCompletedPage extends StatefulWidget {
const UserOrderCompletedPage({Key? key /*, required this.userInfo*/ final String orderNum; // 订单编号
}) const UserOrderCompletedPage({Key? key , required this.orderNum}) : super(key: key);
: super(key: key);
@override @override
State<UserOrderCompletedPage> createState() => _UserOrderCompletedState(); State<UserOrderCompletedPage> createState() => _UserOrderCompletedState();
...@@ -26,7 +25,7 @@ class _UserOrderCompletedState extends State<UserOrderCompletedPage> { ...@@ -26,7 +25,7 @@ class _UserOrderCompletedState extends State<UserOrderCompletedPage> {
return false; return false;
}, },
child: GetBuilder<UserOrderCompletedController>( child: GetBuilder<UserOrderCompletedController>(
init: UserOrderCompletedController(), init: UserOrderCompletedController(widget.orderNum),
builder: (controller) => Scaffold( builder: (controller) => Scaffold(
appBar: CustomAppBar( appBar: CustomAppBar(
title: const Text('已完成'), title: const Text('已完成'),
...@@ -62,7 +61,8 @@ class _UserOrderCompletedState extends State<UserOrderCompletedPage> { ...@@ -62,7 +61,8 @@ class _UserOrderCompletedState extends State<UserOrderCompletedPage> {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Image.network( Image.network(
'http://zxts-user-file.oss-cn-beijing.aliyuncs.com/2024-01/20/eb167c2f59f7e34c0ef94a9f1ce736ee64d76a11.jpg', controller.model.bookList==null?'http://zxts-book-file.zijingebook.com/2024-01/29/b91194564969b9151fa382807977282acdffa22d.jpg':
controller.model.bookList![0].img??'',
// 用实际图片链接替换 // 用实际图片链接替换
fit: BoxFit.cover, // 设置适应方式为充满 fit: BoxFit.cover, // 设置适应方式为充满
width: 72.0.w, width: 72.0.w,
...@@ -78,20 +78,23 @@ class _UserOrderCompletedState extends State<UserOrderCompletedPage> { ...@@ -78,20 +78,23 @@ class _UserOrderCompletedState extends State<UserOrderCompletedPage> {
crossAxisAlignment: crossAxisAlignment:
CrossAxisAlignment.start, // 下面的Text靠左 CrossAxisAlignment.start, // 下面的Text靠左
children: [ children: [
Text( Container(
"一想到还有95%的问题留给人类,我就放一想到还有95%的问题留给问题留给", height: 47.5.w,
style: TextStyle( child: Text(
color: Colours.c3, controller.model.bookList==null?'':
fontWeight: Fonts.bold, controller.model.bookList![0].introduction??'',
fontSize: 13.w, style: TextStyle(
color: Colours.c3,
fontWeight: Fonts.bold,
fontSize: 13.w,
),
maxLines: 2,
overflow:
TextOverflow.ellipsis, // 超过部分显示省略号
), ),
maxLines: 2,
overflow:
TextOverflow.ellipsis, // 超过部分显示省略号
), ),
SizedBox(height: 10.5.w),
Text( Text(
${controller.orderCompletedInfo.price}", ${controller.model.totalPrice}",
style: TextStyle( style: TextStyle(
color: Colours.cAB1941, color: Colours.cAB1941,
fontWeight: Fonts.medium, fontWeight: Fonts.medium,
...@@ -133,7 +136,19 @@ class _UserOrderCompletedState extends State<UserOrderCompletedPage> { ...@@ -133,7 +136,19 @@ class _UserOrderCompletedState extends State<UserOrderCompletedPage> {
controller.orderCompleteds.indexOf(model) == 0 controller.orderCompleteds.indexOf(model) == 0
? GestureDetector( ? GestureDetector(
onTap: () { onTap: () {
print('点击了应付款后面'); showModalBottomSheet(
context: context,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.vertical(top: Radius.circular(8.w)),
),
builder: (BuildContext context) {
return RefundedDetailsPage(totalPrice: controller.model.totalPrice.toString(),
couponPrice: controller.model.couponPrice.toString(),
integralPrice: controller.model.integralPrice.toString(),);
},
).then((value) {
print('点击了应付款后面');
});
}, },
child: Row( child: Row(
mainAxisAlignment: mainAxisAlignment:
...@@ -206,7 +221,7 @@ class _UserOrderCompletedState extends State<UserOrderCompletedPage> { ...@@ -206,7 +221,7 @@ class _UserOrderCompletedState extends State<UserOrderCompletedPage> {
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {
// print("保存昵称"); // print("保存昵称");
context.pushNamed(Routes.orderEvaluate); context.pushNamed(Routes.orderEvaluate,);
}, },
child: Text( child: Text(
'去评价', '去评价',
......
part of user_order_evaluate; part of user_order_evaluate;
/// 等待付款订单 /// 订单评价
class UserOrderEvaluateController extends GetxController { class UserOrderEvaluateController extends GetxController {
// 已完成订单 OrderListModel orderListModel;
OrderCompletedInfoModel orderCompletedInfo = OrderCompletedInfoModel();
OrderListModel orderListModel = OrderListModel();
// 应付款、订单编号等 // 应付款、订单编号等
List<OrderCompletedModel> orderAwaitings = []; UserOrderEvaluateController(this.orderListModel); // 已完成订单
@override @override
void onReady() { void onReady() {
getOrderInfo();
super.onReady(); super.onReady();
} }
/// 修改用用户信息
void cancelPay() async {
final result = await MineAPI.cancelPay(ordersnum: orderListModel.ordersnum??'');
if (result) {
Toast.show('取消成功');
update();
}
}
/// 获取订单信息 /// 获取订单信息
void getOrderInfo() async { void getOrderInfo() async {
// orderCompletedInfo = await MineAPI.userInfo(); // orderCompletedInfo = await MineAPI.userInfo();
orderCompletedInfo = OrderCompletedInfoModel(id:1,price:'88.00',totalPay: '58.00',favorable: '5.00',orderId: 'ZJ2023122163728437',payWay: '微信支付',payTime: '2023-12-21 01:25:24',orderTime: '2023-12-21 01:25:15');
orderAwaitings = [
OrderCompletedModel(name: '订单编号',value: orderCompletedInfo.orderId.toString()),
OrderCompletedModel(name: '支付方式',value: orderCompletedInfo.payWay.toString()),
OrderCompletedModel(name: '支付时间',value: orderCompletedInfo.payTime.toString()),
];
update(); update();
} }
......
...@@ -2,7 +2,8 @@ part of user_order_evaluate; ...@@ -2,7 +2,8 @@ part of user_order_evaluate;
/// 用户订单评价 /// 用户订单评价
class UserOrderEvaluatePage extends StatefulWidget { class UserOrderEvaluatePage extends StatefulWidget {
const UserOrderEvaluatePage({Key? key}) : super(key: key); final OrderListModel orderListModel; // 订单
const UserOrderEvaluatePage({Key? key, required this.orderListModel,}) : super(key: key);
@override @override
State<UserOrderEvaluatePage> createState() => _UserOrderEvaluatePageState(); State<UserOrderEvaluatePage> createState() => _UserOrderEvaluatePageState();
...@@ -12,7 +13,7 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> { ...@@ -12,7 +13,7 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return GetBuilder<UserOrderEvaluateController>( return GetBuilder<UserOrderEvaluateController>(
init: UserOrderEvaluateController(), init: UserOrderEvaluateController(widget.orderListModel),
builder: (controller) => builder: (controller) =>
Scaffold( Scaffold(
appBar: AppBar( appBar: AppBar(
...@@ -30,9 +31,9 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> { ...@@ -30,9 +31,9 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> {
shrinkWrap:true, shrinkWrap:true,
itemBuilder: (BuildContext context, int index){ itemBuilder: (BuildContext context, int index){
return listItem(); return listItem(widget.orderListModel.cartList![index]);
}, },
itemCount: 3, itemCount: widget.orderListModel.cartList?.length,
), ),
], ],
), ),
...@@ -55,7 +56,7 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> { ...@@ -55,7 +56,7 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> {
)); ));
} }
Widget listItem(){ Widget listItem(CartListModel cartList){
return Container( return Container(
margin: EdgeInsets.only(left:10.w,top:12.w,bottom:12.w,right: 23.5.w), margin: EdgeInsets.only(left:10.w,top:12.w,bottom:12.w,right: 23.5.w),
decoration: BoxDecoration( decoration: BoxDecoration(
...@@ -99,14 +100,15 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> { ...@@ -99,14 +100,15 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> {
], ],
), ),
child: Image.network( child: Image.network(
'http://zxts-book-file.zijingebook.com/2024-01/29/b91194564969b9151fa382807977282acdffa22d.jpg', // 'http://zxts-book-file.zijingebook.com/2024-01/29/b91194564969b9151fa382807977282acdffa22d.jpg',
cartList.img.toString(),
// 用实际图片链接替换 // 用实际图片链接替换
fit: BoxFit.cover, fit: BoxFit.cover,
), ),
), ),
Gaps.hGaps10, Gaps.hGaps10,
Expanded( Expanded(
child: Text('一想到还有95%的问题留给人类,我就放ListView一想到还有95%的问题留给人类,我就放',style: TextStyle(fontSize: 13.w,height: 1.5,fontWeight: Fonts.medium,color: Colours.c3),maxLines: 2,overflow: TextOverflow.ellipsis,), child: Text(cartList.introduction.toString(),style: TextStyle(fontSize: 13.w,height: 1.5,fontWeight: Fonts.medium,color: Colours.c3),maxLines: 2,overflow: TextOverflow.ellipsis,),
), ),
], ],
...@@ -140,7 +142,9 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> { ...@@ -140,7 +142,9 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> {
fillColor: AppTheme.primary, fillColor: AppTheme.primary,
size: 16.w, size: 16.w,
emptyColor: Colours.cE2, emptyColor: Colours.cE2,
), onRating: (double ) {}, ), onRating: (double ) {
print(double);
},
), ),
), ),
], ],
......
...@@ -2,8 +2,10 @@ part of user_order_refunded; ...@@ -2,8 +2,10 @@ part of user_order_refunded;
/// 已完成订单 /// 已完成订单
class UserOrderCRefundedController extends GetxController { class UserOrderCRefundedController extends GetxController {
// 已完成订单 final String orderNum;// 订单编号
OrderCompletedInfoModel orderCompletedInfo = OrderCompletedInfoModel(); UserOrderCRefundedController(this.orderNum);
OrderInfoModel model = OrderInfoModel();
// 应付款、订单编号等 // 应付款、订单编号等
List<OrderCompletedModel> orderCompleteds = []; List<OrderCompletedModel> orderCompleteds = [];
...@@ -21,15 +23,24 @@ class UserOrderCRefundedController extends GetxController { ...@@ -21,15 +23,24 @@ class UserOrderCRefundedController extends GetxController {
/// 获取订单信息 /// 获取订单信息
void getOrderInfo() async { void getOrderInfo() async {
// orderCompletedInfo = await MineAPI.userInfo(); model = await MineAPI.getOrderInfo(orderNum: orderNum);
orderCompletedInfo = OrderCompletedInfoModel(id:1,price:'88',totalPay: '58.00',favorable: '5.00',orderId: 'ZJ2023122163728437',payWay: '微信支付',payTime: '2023-12-21 01:25:24',orderTime: '2023-12-21 01:25:15'); String payWay ='';
if(model.payType==1){
payWay='微信';
}else if(model.payType==2){
payWay='支付宝';
}else if(model.payType==3){
payWay='紫荆币';
}
orderCompleteds = [ orderCompleteds = [
OrderCompletedModel(name: '应付款',value: orderCompletedInfo.totalPay.toString()/*,link: Routes.note*/,other: orderCompletedInfo.favorable.toString()), OrderCompletedModel(name: '应付款',value: model.finalTotalPrice.toString(),
OrderCompletedModel(name: '订单编号',value: orderCompletedInfo.orderId.toString()), other: (double.parse(model.totalPrice.toString())-
OrderCompletedModel(name: '支付方式',value: orderCompletedInfo.payWay.toString()), double.parse(model.finalTotalPrice.toString())).toString()),
OrderCompletedModel(name: '支付时间',value: orderCompletedInfo.payTime.toString()), OrderCompletedModel(name: '订单编号',value: model.ordersnum.toString()),
OrderCompletedModel(name: '下单时间',value: orderCompletedInfo.orderTime.toString()), OrderCompletedModel(name: '支付方式',value: payWay),
OrderCompletedModel(name: '退款时间',value: orderCompletedInfo.orderTime.toString()), OrderCompletedModel(name: '支付时间',value: model.payTime.toString()),
OrderCompletedModel(name: '下单时间',value: model.createTime.toString()),
OrderCompletedModel(name: '退款时间',value: model.refundTime.toString()),
]; ];
update(); update();
......
...@@ -5,13 +5,17 @@ import 'package:flutter/material.dart'; ...@@ -5,13 +5,17 @@ import 'package:flutter/material.dart';
import 'package:flutter_book/theme.dart'; import 'package:flutter_book/theme.dart';
import 'package:flutter_book/utils/index.dart'; import 'package:flutter_book/utils/index.dart';
import 'package:flutter_book/widgets/index.dart'; import 'package:flutter_book/widgets/index.dart';
import 'package:get/get.dart';
import 'package:get/get_core/src/get_main.dart';
import 'package:get/get_state_manager/src/simple/get_controllers.dart'; import 'package:get/get_state_manager/src/simple/get_controllers.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get_state_manager/src/simple/get_state.dart'; import 'package:get/get_state_manager/src/simple/get_state.dart';
import 'package:go_router/go_router.dart'; import 'package:go_router/go_router.dart';
import '../../apis/index.dart';
import '../../models/index.dart'; import '../../models/index.dart';
import '../../routes/index.dart'; import '../../routes/index.dart';
import '../user_order_awaiting/index.dart';
import '../user_order_refunded_details/index.dart'; import '../user_order_refunded_details/index.dart';
part 'view.dart'; part 'view.dart';
......
...@@ -2,23 +2,14 @@ part of user_order_refunded; ...@@ -2,23 +2,14 @@ part of user_order_refunded;
/// 订单已退款界面 /// 订单已退款界面
class UserOrderRefundedPage extends StatefulWidget { class UserOrderRefundedPage extends StatefulWidget {
const UserOrderRefundedPage({Key? key /*, required this.userInfo*/ final String orderNum; // 订单编号
}) const UserOrderRefundedPage({Key? key , required this.orderNum}) : super(key: key);
: super(key: key);
@override @override
State<UserOrderRefundedPage> createState() => _UserOrderRefundedState(); State<UserOrderRefundedPage> createState() => _UserOrderRefundedState();
} }
class _UserOrderRefundedState extends State<UserOrderRefundedPage> { class _UserOrderRefundedState extends State<UserOrderRefundedPage> {
/* late num? selectedGender ; // 选中的性别
@override
void initState() {
super.initState();
selectedGender = widget.userInfo.sex;
// 在这里可以使用 localVariable 进行操作
}*/
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return WillPopScope( return WillPopScope(
...@@ -27,7 +18,7 @@ class _UserOrderRefundedState extends State<UserOrderRefundedPage> { ...@@ -27,7 +18,7 @@ class _UserOrderRefundedState extends State<UserOrderRefundedPage> {
return false; return false;
}, },
child: GetBuilder<UserOrderCRefundedController>( child: GetBuilder<UserOrderCRefundedController>(
init: UserOrderCRefundedController(), init: UserOrderCRefundedController(widget.orderNum),
builder: (controller) => Scaffold( builder: (controller) => Scaffold(
appBar: CustomAppBar( appBar: CustomAppBar(
title: const Text('已退款'), title: const Text('已退款'),
...@@ -64,7 +55,8 @@ class _UserOrderRefundedState extends State<UserOrderRefundedPage> { ...@@ -64,7 +55,8 @@ class _UserOrderRefundedState extends State<UserOrderRefundedPage> {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Image.network( Image.network(
'http://zxts-user-file.oss-cn-beijing.aliyuncs.com/2024-01/20/eb167c2f59f7e34c0ef94a9f1ce736ee64d76a11.jpg', controller.model?.bookList==null?'http://zxts-book-file.zijingebook.com/2024-01/29/b91194564969b9151fa382807977282acdffa22d.jpg':
controller.model.bookList![0].img??'',
// 用实际图片链接替换 // 用实际图片链接替换
fit: BoxFit.cover, // 设置适应方式为充满 fit: BoxFit.cover, // 设置适应方式为充满
width: 72.0.w, width: 72.0.w,
...@@ -83,7 +75,7 @@ class _UserOrderRefundedState extends State<UserOrderRefundedPage> { ...@@ -83,7 +75,7 @@ class _UserOrderRefundedState extends State<UserOrderRefundedPage> {
Container( Container(
height: 62.5.w, height: 62.5.w,
child: Text( child: Text(
"一想到还有95%的问题留给人类,我就放一想到还有95%的问题留给问题留给", controller.model?.bookList?[0].introduction??'',
style: TextStyle( style: TextStyle(
color: Colours.c3, color: Colours.c3,
fontWeight: Fonts.bold, fontWeight: Fonts.bold,
...@@ -97,7 +89,7 @@ class _UserOrderRefundedState extends State<UserOrderRefundedPage> { ...@@ -97,7 +89,7 @@ class _UserOrderRefundedState extends State<UserOrderRefundedPage> {
Container( Container(
alignment: Alignment.topRight, alignment: Alignment.topRight,
child: Text( child: Text(
${controller.orderCompletedInfo.price}", ${controller.model.totalPrice}",
style: TextStyle( style: TextStyle(
color: Colours.cAB1941, color: Colours.cAB1941,
fontWeight: Fonts.medium, fontWeight: Fonts.medium,
...@@ -147,7 +139,9 @@ class _UserOrderRefundedState extends State<UserOrderRefundedPage> { ...@@ -147,7 +139,9 @@ class _UserOrderRefundedState extends State<UserOrderRefundedPage> {
borderRadius: BorderRadius.vertical(top: Radius.circular(8.w)), borderRadius: BorderRadius.vertical(top: Radius.circular(8.w)),
), ),
builder: (BuildContext context) { builder: (BuildContext context) {
return RefundedDetailsPage(); return RefundedDetailsPage(totalPrice: controller.model.totalPrice.toString(),
couponPrice: controller.model.couponPrice.toString(),
integralPrice: controller.model.integralPrice.toString(),);
}, },
).then((value) { ).then((value) {
print('点击了应付款后面'); print('点击了应付款后面');
...@@ -237,24 +231,10 @@ class _UserOrderRefundedState extends State<UserOrderRefundedPage> { ...@@ -237,24 +231,10 @@ class _UserOrderRefundedState extends State<UserOrderRefundedPage> {
children: [ children: [
Text('退款原因',style: TextStyle(fontSize: 13.w,color: Colours.c9),), Text('退款原因',style: TextStyle(fontSize: 13.w,color: Colours.c9),),
SizedBox(height: 8.w,), SizedBox(height: 8.w,),
Text('退款原因 买错类型了,非常抱歉,下次有需要在下单吧退款原因 买错类型了,非常抱歉,下次有需要在下单吧下次有需要在下单吧退款原因下次有需要在下单吧退款原因下次有需要在下单吧退款原因',style: TextStyle(fontSize: 13.w,color: Colours.c3),) Text(controller.model.refundReason.toString(),style: TextStyle(fontSize: 13.w,color: Colours.c3),)
], ],
), ),
), ),
/* Column(
mainAxisAlignment: MainAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Text('已退款'),
SizedBox(
height: 14.5.w,
),
Text('已退款'),
SizedBox(
height: 14.5.w,
),
],
),*/
), ),
) )
],), ],),
......
...@@ -3,7 +3,11 @@ part of user_order_refunded_details; ...@@ -3,7 +3,11 @@ part of user_order_refunded_details;
class RefundedDetailsPage extends StatefulWidget { class RefundedDetailsPage extends StatefulWidget {
const RefundedDetailsPage({Key? key}) : super(key: key); final String totalPrice;//总价
final String couponPrice;//优惠券优惠金额
final String integralPrice;//积分抵扣金额
const RefundedDetailsPage({Key? key,required this.totalPrice,
required this.couponPrice,required this.integralPrice,}) : super(key: key);
@override @override
State<RefundedDetailsPage> createState() => _RefundedDetailsState(); State<RefundedDetailsPage> createState() => _RefundedDetailsState();
...@@ -56,7 +60,7 @@ class _RefundedDetailsState extends State<RefundedDetailsPage> { ...@@ -56,7 +60,7 @@ class _RefundedDetailsState extends State<RefundedDetailsPage> {
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Text('总价',style: TextStyle(fontSize: 16.w,color: Colours.c3,fontWeight: Fonts.medium),), Text('总价',style: TextStyle(fontSize: 16.w,color: Colours.c3,fontWeight: Fonts.medium),),
Text(199.80',style: TextStyle(fontSize: 17.w,color: Colours.cAB1941,fontWeight: Fonts.medium),), Text(${widget.totalPrice}',style: TextStyle(fontSize: 17.w,color: Colours.cAB1941,fontWeight: Fonts.medium),),
], ],
), ),
), ),
...@@ -66,7 +70,7 @@ class _RefundedDetailsState extends State<RefundedDetailsPage> { ...@@ -66,7 +70,7 @@ class _RefundedDetailsState extends State<RefundedDetailsPage> {
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Text('优惠券抵扣',style: TextStyle(fontSize: 13.w,color: Colours.c9,),), Text('优惠券抵扣',style: TextStyle(fontSize: 13.w,color: Colours.c9,),),
buildItem('188.80', false buildItem(widget.couponPrice
), ),
], ],
), ),
...@@ -77,7 +81,7 @@ class _RefundedDetailsState extends State<RefundedDetailsPage> { ...@@ -77,7 +81,7 @@ class _RefundedDetailsState extends State<RefundedDetailsPage> {
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Text('积分抵扣',style: TextStyle(fontSize: 13.w,color: Colours.c9,),), Text('积分抵扣',style: TextStyle(fontSize: 13.w,color: Colours.c9,),),
buildItem('0.00', true), buildItem(widget.integralPrice),
], ],
), ),
), ),
...@@ -85,9 +89,9 @@ class _RefundedDetailsState extends State<RefundedDetailsPage> { ...@@ -85,9 +89,9 @@ class _RefundedDetailsState extends State<RefundedDetailsPage> {
); );
} }
Widget buildItem(String show,bool isZero){ Widget buildItem(String show){
if(isZero){ if(show=='0.00'){
return Text('$show',style: TextStyle(fontSize: 13.w,color: Colours.c3,),); return Text('0.00',style: TextStyle(fontSize: 13.w,color: Colours.c3,),);
} else{ } else{
return Text('减 ¥$show',style: TextStyle(fontSize: 13.w,color: Colours.cAB1941,fontWeight: Fonts.medium),); return Text('减 ¥$show',style: TextStyle(fontSize: 13.w,color: Colours.cAB1941,fontWeight: Fonts.medium),);
} }
......
...@@ -477,7 +477,7 @@ abstract class Routes { ...@@ -477,7 +477,7 @@ abstract class Routes {
pageBuilder: (context, state) =>CupertinoPage( pageBuilder: (context, state) =>CupertinoPage(
name: state.uri.toString(), name: state.uri.toString(),
key: state.pageKey, key: state.pageKey,
child: const UserOrderEvaluatePage() child: UserOrderEvaluatePage(orderListModel: state.extra as OrderListModel,)
) )
), ),
GoRoute( // 帮助中心 GoRoute( // 帮助中心
...@@ -513,7 +513,7 @@ abstract class Routes { ...@@ -513,7 +513,7 @@ abstract class Routes {
pageBuilder: (context, state) =>CupertinoPage( pageBuilder: (context, state) =>CupertinoPage(
name: state.uri.toString(), name: state.uri.toString(),
key: state.pageKey, key: state.pageKey,
child: const UserOrderCompletedPage() child: UserOrderCompletedPage(orderNum: state.uri.queryParameters['orderNum'].toString())
) )
), ),
GoRoute( // 待付款订单 GoRoute( // 待付款订单
...@@ -522,7 +522,7 @@ abstract class Routes { ...@@ -522,7 +522,7 @@ abstract class Routes {
pageBuilder: (context, state) =>CupertinoPage( pageBuilder: (context, state) =>CupertinoPage(
name: state.uri.toString(), name: state.uri.toString(),
key: state.pageKey, key: state.pageKey,
child: const UserOrderAwaitingPage() child: UserOrderAwaitingPage(orderNum: state.uri.queryParameters['orderNum'].toString())
) )
), ),
GoRoute( // 已退款订单 GoRoute( // 已退款订单
...@@ -531,7 +531,7 @@ abstract class Routes { ...@@ -531,7 +531,7 @@ abstract class Routes {
pageBuilder: (context, state) =>CupertinoPage( pageBuilder: (context, state) =>CupertinoPage(
name: state.uri.toString(), name: state.uri.toString(),
key: state.pageKey, key: state.pageKey,
child: const UserOrderRefundedPage() child: UserOrderRefundedPage(orderNum: state.uri.queryParameters['orderNum'].toString())
) )
), ),
] ]
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论