Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
book-app
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
book-app
Commits
8059be8c
提交
8059be8c
authored
2月 05, 2024
作者:
yueweilu
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/test' into test
上级
36fab99c
9855a239
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
188 行增加
和
72 行删除
+188
-72
mine.dart
lib/apis/mine.dart
+13
-0
order.dart
lib/models/order.dart
+43
-0
completed.dart
lib/pages/user_order/widgets/completed.dart
+2
-2
view.dart
lib/pages/user_order_completed/view.dart
+1
-1
controller.dart
lib/pages/user_order_evaluate/controller.dart
+16
-7
index.dart
lib/pages/user_order_evaluate/index.dart
+2
-0
view.dart
lib/pages/user_order_evaluate/view.dart
+110
-61
routes.dart
lib/routes/routes.dart
+1
-1
没有找到文件。
lib/apis/mine.dart
浏览文件 @
8059be8c
...
@@ -400,5 +400,18 @@ abstract class MineAPI {
...
@@ -400,5 +400,18 @@ abstract class MineAPI {
return
OrderInfoModel
.
fromJson
(
result
.
data
);
return
OrderInfoModel
.
fromJson
(
result
.
data
);
}
}
/// 24、上传订单评价
static
Future
<
bool
>
UpOrderEvaluate
(
{
required
String
evaluate
})
async
{
final
result
=
await
HttpService
.
to
.
post
(
'/v1/orders/Orders/rating'
,
params:
{
'rat_json'
:
evaluate
,
},
);
if
(
result
.
data
is
Map
&&
result
.
data
[
'is_success'
]
==
1
)
{
return
true
;
}
return
false
;
}
}
}
lib/models/order.dart
浏览文件 @
8059be8c
...
@@ -382,6 +382,7 @@ class OrderInfoModel {
...
@@ -382,6 +382,7 @@ class OrderInfoModel {
class
BookListModel
{
class
BookListModel
{
BookListModel
({
BookListModel
({
this
.
bookId
,
this
.
bookId
,
this
.
recordId
,
this
.
name
,
this
.
name
,
this
.
img
,
this
.
img
,
this
.
introduction
,
this
.
introduction
,
...
@@ -392,6 +393,7 @@ class BookListModel {
...
@@ -392,6 +393,7 @@ class BookListModel {
BookListModel
.
fromJson
(
dynamic
json
)
{
BookListModel
.
fromJson
(
dynamic
json
)
{
bookId
=
json
[
'book_id'
];
bookId
=
json
[
'book_id'
];
recordId
=
json
[
'record_id'
];
name
=
json
[
'name'
];
name
=
json
[
'name'
];
img
=
json
[
'img'
];
img
=
json
[
'img'
];
introduction
=
json
[
'introduction'
];
introduction
=
json
[
'introduction'
];
...
@@ -401,6 +403,7 @@ class BookListModel {
...
@@ -401,6 +403,7 @@ class BookListModel {
createTime
=
json
[
'create_time'
];
createTime
=
json
[
'create_time'
];
}
}
num
?
bookId
;
num
?
bookId
;
num
?
recordId
;
String
?
name
;
String
?
name
;
String
?
img
;
String
?
img
;
String
?
introduction
;
String
?
introduction
;
...
@@ -409,6 +412,7 @@ class BookListModel {
...
@@ -409,6 +412,7 @@ class BookListModel {
num
?
comments
;
num
?
comments
;
num
?
createTime
;
num
?
createTime
;
BookListModel
copyWith
({
num
?
bookId
,
BookListModel
copyWith
({
num
?
bookId
,
num
?
recordId
,
String
?
name
,
String
?
name
,
String
?
img
,
String
?
img
,
String
?
introduction
,
String
?
introduction
,
...
@@ -417,6 +421,7 @@ class BookListModel {
...
@@ -417,6 +421,7 @@ class BookListModel {
num
?
comments
,
num
?
comments
,
num
?
createTime
,
num
?
createTime
,
})
=>
BookListModel
(
bookId:
bookId
??
this
.
bookId
,
})
=>
BookListModel
(
bookId:
bookId
??
this
.
bookId
,
recordId:
recordId
??
this
.
recordId
,
name:
name
??
this
.
name
,
name:
name
??
this
.
name
,
img:
img
??
this
.
img
,
img:
img
??
this
.
img
,
introduction:
introduction
??
this
.
introduction
,
introduction:
introduction
??
this
.
introduction
,
...
@@ -428,6 +433,7 @@ class BookListModel {
...
@@ -428,6 +433,7 @@ class BookListModel {
Map
<
String
,
dynamic
>
toJson
()
{
Map
<
String
,
dynamic
>
toJson
()
{
final
map
=
<
String
,
dynamic
>{};
final
map
=
<
String
,
dynamic
>{};
map
[
'book_id'
]
=
bookId
;
map
[
'book_id'
]
=
bookId
;
map
[
'record_id'
]
=
recordId
;
map
[
'name'
]
=
name
;
map
[
'name'
]
=
name
;
map
[
'img'
]
=
img
;
map
[
'img'
]
=
img
;
map
[
'introduction'
]
=
introduction
;
map
[
'introduction'
]
=
introduction
;
...
@@ -439,3 +445,40 @@ class BookListModel {
...
@@ -439,3 +445,40 @@ class BookListModel {
}
}
}
}
/// record_id : 11
/// rating : 1
/// comments : "内容"
/// 订单评价
class
OrderEvaluate
{
OrderEvaluate
({
this
.
recordId
,
this
.
rating
,
this
.
comments
,});
OrderEvaluate
.
fromJson
(
dynamic
json
)
{
recordId
=
json
[
'record_id'
];
rating
=
json
[
'rating'
];
comments
=
json
[
'comments'
];
}
num
?
recordId
;
num
?
rating
;
String
?
comments
;
OrderEvaluate
copyWith
({
num
?
recordId
,
num
?
rating
,
String
?
comments
,
})
=>
OrderEvaluate
(
recordId:
recordId
??
this
.
recordId
,
rating:
rating
??
this
.
rating
,
comments:
comments
??
this
.
comments
,
);
Map
<
String
,
dynamic
>
toJson
()
{
final
map
=
<
String
,
dynamic
>{};
map
[
'record_id'
]
=
recordId
;
map
[
'rating'
]
=
rating
;
map
[
'comments'
]
=
comments
;
return
map
;
}
}
lib/pages/user_order/widgets/completed.dart
浏览文件 @
8059be8c
...
@@ -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
,
extra:
model
);
context
.
pushNamed
(
Routes
.
orderEvaluate
,
extra:
OrderInfoModel
(),
queryParameters:
{
'orderNum'
:
model
.
ordersnum
}
);
},
},
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
,
extra:
model
);
context
.
pushNamed
(
Routes
.
orderEvaluate
,
extra:
OrderInfoModel
(),
queryParameters:
{
'orderNum'
:
model
.
ordersnum
}
);
},
},
child:
Text
(
child:
Text
(
'继续评价'
,
'继续评价'
,
...
...
lib/pages/user_order_completed/view.dart
浏览文件 @
8059be8c
...
@@ -221,7 +221,7 @@ class _UserOrderCompletedState extends State<UserOrderCompletedPage> {
...
@@ -221,7 +221,7 @@ class _UserOrderCompletedState extends State<UserOrderCompletedPage> {
child:
GestureDetector
(
child:
GestureDetector
(
onTap:
()
{
onTap:
()
{
// print("保存昵称");
// print("保存昵称");
context
.
pushNamed
(
Routes
.
orderEvaluate
,);
context
.
pushNamed
(
Routes
.
orderEvaluate
,
extra:
controller
.
model
,
queryParameters:
{
'orderNum'
:
controller
.
model
.
ordersnum
}
);
},
},
child:
Text
(
child:
Text
(
'去评价'
,
'去评价'
,
...
...
lib/pages/user_order_evaluate/controller.dart
浏览文件 @
8059be8c
...
@@ -3,24 +3,33 @@ part of user_order_evaluate;
...
@@ -3,24 +3,33 @@ part of user_order_evaluate;
/// 订单评价
/// 订单评价
class
UserOrderEvaluateController
extends
GetxController
{
class
UserOrderEvaluateController
extends
GetxController
{
Order
ListModel
orderList
Model
;
Order
InfoModel
orderInfo
Model
;
// 应付款、订单编号等
String
orderNum
;
UserOrderEvaluateController
(
this
.
order
List
Model
);
// 已完成订单
UserOrderEvaluateController
(
this
.
order
Num
,
this
.
orderInfo
Model
);
// 已完成订单
@override
@override
void
onReady
()
{
void
onReady
()
{
getOrderInfo
();
super
.
onReady
();
super
.
onReady
();
}
}
/// 获取订单信息
/// 获取订单信息
void
getOrderInfo
()
async
{
Future
<
void
>
getOrderInfo
()
async
{
// orderCompletedInfo = await MineAPI.userInfo();
orderInfoModel
=
await
MineAPI
.
getOrderInfo
(
orderNum:
orderNum
);
update
();
update
();
}
}
/// 上传评价
void
UpOrderEvaluate
(
String
evaluate
)
async
{
final
result
=
await
MineAPI
.
UpOrderEvaluate
(
evaluate:
evaluate
);
if
(
result
)
{
Toast
.
show
(
'评价成功'
);
update
();
}
}
}
}
lib/pages/user_order_evaluate/index.dart
浏览文件 @
8059be8c
...
@@ -5,6 +5,8 @@ import 'package:flutter/material.dart';
...
@@ -5,6 +5,8 @@ import 'package:flutter/material.dart';
import
'package:flutter_screenutil/flutter_screenutil.dart'
;
import
'package:flutter_screenutil/flutter_screenutil.dart'
;
import
'package:flutter_star/custom_rating.dart'
;
import
'package:flutter_star/custom_rating.dart'
;
import
'package:flutter_star/star.dart'
;
import
'package:flutter_star/star.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:get/get_state_manager/src/simple/get_state.dart'
;
import
'package:get/get_state_manager/src/simple/get_state.dart'
;
...
...
lib/pages/user_order_evaluate/view.dart
浏览文件 @
8059be8c
...
@@ -2,63 +2,102 @@ part of user_order_evaluate;
...
@@ -2,63 +2,102 @@ part of user_order_evaluate;
/// 用户订单评价
/// 用户订单评价
class
UserOrderEvaluatePage
extends
StatefulWidget
{
class
UserOrderEvaluatePage
extends
StatefulWidget
{
final
OrderListModel
orderListModel
;
// 订单
const
UserOrderEvaluatePage
({
Key
?
key
,
required
this
.
orderListModel
,})
:
super
(
key:
key
);
final
String
orderNum
;
// 订单号
final
OrderInfoModel
orderInfoModel
;
// 订单详情
const
UserOrderEvaluatePage
({
Key
?
key
,
required
this
.
orderNum
,
required
this
.
orderInfoModel
,
})
:
super
(
key:
key
);
@override
@override
State
<
UserOrderEvaluatePage
>
createState
()
=>
_UserOrderEvaluatePageState
();
State
<
UserOrderEvaluatePage
>
createState
()
=>
_UserOrderEvaluatePageState
();
}
}
class
_UserOrderEvaluatePageState
extends
State
<
UserOrderEvaluatePage
>
{
class
_UserOrderEvaluatePageState
extends
State
<
UserOrderEvaluatePage
>
{
late
UserOrderEvaluateController
myController
;
List
<
TextEditingController
>
controllers
=
[];
List
<
OrderEvaluate
>
orderEvaluates
=
[];
List
<
double
>
ratings
=
[];
@override
void
initState
()
{
myController
=
Get
.
put
(
UserOrderEvaluateController
(
widget
.
orderNum
,
widget
.
orderInfoModel
));
super
.
initState
();
}
@override
@override
Widget
build
(
BuildContext
context
)
{
Widget
build
(
BuildContext
context
)
{
return
GetBuilder
<
UserOrderEvaluateController
>(
return
FutureBuilder
(
future:
myController
.
getOrderInfo
(),
init:
UserOrderEvaluateController
(
widget
.
orderListModel
),
builder:
(
context
,
snapshot
)
{
builder:
(
controller
)
=>
if
(
snapshot
.
connectionState
==
ConnectionState
.
waiting
)
{
Scaffold
(
return
Scaffold
(
appBar:
AppBar
(
appBar:
AppBar
(
centerTitle:
true
,
centerTitle:
true
,
title:
const
Text
(
'订单评价'
),
title:
const
Text
(
'订单评价'
),
),
),);
body:
Column
(
}
else
{
children:
[
return
GetBuilder
<
UserOrderEvaluateController
>(
Expanded
(
init:
child:
SingleChildScrollView
(
UserOrderEvaluateController
(
widget
.
orderNum
,
widget
.
orderInfoModel
),
child:
Column
(
builder:
(
controller
)
=>
Scaffold
(
children:
[
appBar:
AppBar
(
ListView
.
builder
(
centerTitle:
true
,
physics:
const
NeverScrollableScrollPhysics
(),
title:
const
Text
(
'订单评价'
),
shrinkWrap:
true
,
),
body:
Column
(
children:
[
Expanded
(
child:
SingleChildScrollView
(
child:
Column
(
children:
[
ListView
.
builder
(
physics:
const
NeverScrollableScrollPhysics
(),
shrinkWrap:
true
,
itemBuilder:
(
BuildContext
context
,
int
index
)
{
return
listItem
(
controller
.
orderInfoModel
.
bookList
![
index
],
orderEvaluates
);
},
itemCount:
controller
.
orderInfoModel
.
bookList
?.
length
,
),
],
),
),
),
SizedBox
(
height:
26
.
w
,
),
Container
(
margin:
EdgeInsets
.
symmetric
(
horizontal:
10
.
w
),
child:
CustomGradientButton
(
text:
'提交评价'
,
isEnabled:
false
,
onPressed:
()
{
print
(
'11111111111111111'
);
},
),
),
SizedBox
(
height:
41
.
w
,
)
],
),
));
}
},);
itemBuilder:
(
BuildContext
context
,
int
index
){
return
listItem
(
widget
.
orderListModel
.
cartList
![
index
]);
},
itemCount:
widget
.
orderListModel
.
cartList
?.
length
,
),
],
),
),
),
SizedBox
(
height:
26
.
w
,),
Container
(
margin:
EdgeInsets
.
symmetric
(
horizontal:
10
.
w
),
child:
CustomGradientButton
(
text:
'提交评价'
,
isEnabled:
false
,
onPressed:
()
{
print
(
'11111111111111111'
);
},
),
),
SizedBox
(
height:
41
.
w
,)
],
),
));
}
}
Widget
listItem
(
CartListModel
cartList
){
Widget
listItem
(
BookListModel
bookListModel
,
List
<
OrderEvaluate
>
orderEvaluates
)
{
return
Container
(
OrderEvaluate
evaluate
=
OrderEvaluate
(
recordId:
bookListModel
.
recordId
);
margin:
EdgeInsets
.
only
(
left:
10
.
w
,
top:
12
.
w
,
bottom:
12
.
w
,
right:
23.5
.
w
),
orderEvaluates
.
add
(
evaluate
);
int
index
=
orderEvaluates
.
length
-
1
;
return
Container
(
margin:
EdgeInsets
.
only
(
left:
10
.
w
,
top:
10
.
w
,
right:
10
.
w
),
decoration:
BoxDecoration
(
decoration:
BoxDecoration
(
borderRadius:
BorderRadius
.
circular
(
8
.
w
),
borderRadius:
BorderRadius
.
circular
(
8
.
w
),
color:
const
Color
(
0xFFF9F9F9
),
color:
const
Color
(
0xFFF9F9F9
),
...
@@ -79,7 +118,7 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> {
...
@@ -79,7 +118,7 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> {
// 图书容器
// 图书容器
Container
(
Container
(
color:
Colours
.
cF8
,
color:
Colours
.
cF8
,
padding:
EdgeInsets
.
symmetric
(
horizontal:
11
.
w
,
vertical:
12
.
w
),
padding:
EdgeInsets
.
symmetric
(
horizontal:
11
.
w
,
vertical:
12
.
w
),
child:
Row
(
child:
Row
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
children:
[
...
@@ -101,22 +140,32 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> {
...
@@ -101,22 +140,32 @@ 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
(),
bookListModel
.
img
.
toString
(),
// 用实际图片链接替换
// 用实际图片链接替换
fit:
BoxFit
.
cover
,
fit:
BoxFit
.
cover
,
),
),
),
),
Gaps
.
hGaps10
,
Gaps
.
hGaps10
,
Expanded
(
Expanded
(
child:
Text
(
cartList
.
introduction
.
toString
(),
style:
TextStyle
(
fontSize:
13
.
w
,
height:
1.5
,
fontWeight:
Fonts
.
medium
,
color:
Colours
.
c3
),
maxLines:
2
,
overflow:
TextOverflow
.
ellipsis
,),
child:
Text
(
bookListModel
.
introduction
.
toString
(),
style:
TextStyle
(
fontSize:
13
.
w
,
height:
1.5
,
fontWeight:
Fonts
.
medium
,
color:
Colours
.
c3
),
maxLines:
2
,
overflow:
TextOverflow
.
ellipsis
,
),
),
),
],
],
),
),
),
),
// 评价容器
// 评价容器
Container
(
Container
(
padding:
EdgeInsets
.
only
(
top:
1
.
w
,),
padding:
EdgeInsets
.
only
(
top:
1
.
w
,
),
width:
double
.
infinity
,
width:
double
.
infinity
,
height:
160
.
w
,
height:
160
.
w
,
color:
Colors
.
white
,
color:
Colors
.
white
,
...
@@ -135,40 +184,40 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> {
...
@@ -135,40 +184,40 @@ class _UserOrderEvaluatePageState extends State<UserOrderEvaluatePage> {
absorbing:
false
,
absorbing:
false
,
child:
CustomRating
(
child:
CustomRating
(
max:
5
,
max:
5
,
score:
0
,
score:
0
,
star:
Star
(
star:
Star
(
fat:
0.5
,
fat:
0.5
,
progress:
7
,
progress:
7
,
fillColor:
AppTheme
.
primary
,
fillColor:
AppTheme
.
primary
,
size:
16
.
w
,
size:
16
.
w
,
emptyColor:
Colours
.
cE2
,
emptyColor:
Colours
.
cE2
,
),
onRating:
(
double
)
{
),
onRating:
(
double
)
{
orderEvaluates
[
index
].
rating
=
double
;
print
(
double
);
print
(
double
);
},
},
),
),
),
),
],
],
),
),
Expanded
(
Expanded
(
// color: Colors.red,
// color: Colors.red,
child:
CustomInput
(
child:
CustomInput
(
decoration:
InputDecoration
(
decoration:
InputDecoration
(
focusedBorder:
InputBorder
.
none
,
focusedBorder:
InputBorder
.
none
,
border:
InputBorder
.
none
,
border:
InputBorder
.
none
,
enabledBorder:
InputBorder
.
none
,
enabledBorder:
InputBorder
.
none
,
errorBorder:
InputBorder
.
none
,
errorBorder:
InputBorder
.
none
,
fillColor:
Colors
.
white
,
fillColor:
Colors
.
white
,
hintStyle:
TextStyle
(
fontSize:
14
.
w
,
height:
1.5
,
color:
Colours
.
c6
)
hintStyle:
TextStyle
(
),
fontSize:
14
.
w
,
height:
1.5
,
color:
Colours
.
c6
)
),
maxLines:
5
,
maxLines:
5
,
hintText:
'请简要描述'
,
hintText:
'请简要描述'
,
),
),
),
),
],
],
),
),
),
),
],
],
),
),
),
),
...
...
lib/routes/routes.dart
浏览文件 @
8059be8c
...
@@ -483,7 +483,7 @@ abstract class Routes {
...
@@ -483,7 +483,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:
UserOrderEvaluatePage
(
order
ListModel:
state
.
extra
as
OrderList
Model
,)
child:
UserOrderEvaluatePage
(
order
Num:
state
.
uri
.
queryParameters
[
'orderNum'
].
toString
(),
orderInfoModel:
state
.
extra
as
OrderInfo
Model
,)
)
)
),
),
GoRoute
(
// 帮助中心
GoRoute
(
// 帮助中心
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论