Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
book-app
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
book-app
Commits
d02750e4
提交
d02750e4
authored
2月 18, 2024
作者:
yueweilu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
消息跳转
上级
137e992f
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
203 行增加
和
179 行删除
+203
-179
view.dart
lib/pages/book_detail/view.dart
+147
-141
view.dart
lib/pages/user_msg/view.dart
+12
-0
view.dart
lib/pages/user_order/view.dart
+44
-38
没有找到文件。
lib/pages/book_detail/view.dart
浏览文件 @
d02750e4
...
@@ -20,161 +20,167 @@ class _BookDetailPageState extends State<BookDetailPage> with SingleTickerProvid
...
@@ -20,161 +20,167 @@ class _BookDetailPageState extends State<BookDetailPage> with SingleTickerProvid
Widget
build
(
BuildContext
context
)
{
Widget
build
(
BuildContext
context
)
{
return
GetBuilder
<
BookDetailController
>(
return
GetBuilder
<
BookDetailController
>(
init:
BookDetailController
(
widget
.
bookId
),
init:
BookDetailController
(
widget
.
bookId
),
builder:
(
controller
)=>
Scaffold
(
builder:
(
controller
)=>
WillPopScope
(
appBar:
CustomAppBar
(
onWillPop:
()
async
{
backgroundColor:
const
Color
(
0xFFAB1941
).
withOpacity
(
0.02
),
context
.
pop
(
true
);
title:
const
Text
(
'详情'
),
return
false
;
actions:
[
},
CustomButton
.
icon
(
child:
Scaffold
(
padding:
EdgeInsets
.
zero
,
appBar:
CustomAppBar
(
backgroundColor:
Colors
.
transparent
,
backgroundColor:
const
Color
(
0xFFAB1941
).
withOpacity
(
0.02
),
icon:
Image
.
asset
(
'assets/images/shop.png'
),
title:
const
Text
(
'详情'
),
onPressed:
()
=>
context
.
pushNamed
(
Routes
.
shop
),
actions:
[
),
CustomButton
.
icon
(
CustomButton
.
icon
(
padding:
EdgeInsets
.
zero
,
padding:
EdgeInsets
.
zero
,
backgroundColor:
Colors
.
transparent
,
backgroundColor:
Colors
.
transparent
,
icon:
Image
.
asset
(
'assets/images/shop.png'
),
icon:
Image
.
asset
(
onPressed:
()
=>
context
.
pushNamed
(
Routes
.
shop
),
controller
.
bookDetails
.
isCollection
==
0
?
'assets/images/unlove.png'
:
'assets/images/love.png'
,
),
),
onPressed:
()
{
CustomButton
.
icon
(
controller
.
love
(
bookId:
controller
.
bookDetails
.
bookId
.
toString
(),
isCollection:
controller
.
bookDetails
.
isCollection
!);
padding:
EdgeInsets
.
zero
,
},
backgroundColor:
Colors
.
transparent
,
),
icon:
Image
.
asset
(
],
controller
.
bookDetails
.
isCollection
==
0
?
'assets/images/unlove.png'
:
'assets/images/love.png'
,
),
),
body:
onPressed:
()
{
Column
(
controller
.
love
(
bookId:
controller
.
bookDetails
.
bookId
.
toString
(),
isCollection:
controller
.
bookDetails
.
isCollection
!);
children:
[
},
BuildBook
(
model:
controller
.
bookDetails
,),
Container
(
height:
10
.
w
,
color:
const
Color
(
0xFFF9F9F9
),
),
BuildStudy
(
model:
controller
.
bookDetails
,),
Container
(
height:
2
,
color:
const
Color
(
0xFFF9F9F9
),
),
Container
(
color:
Colors
.
white
,
child:
TabBar
(
labelColor:
AppTheme
.
primary
,
// isScrollable: true,
labelStyle:
TextStyle
(
fontSize:
15
.
w
,
height:
1.4
,
fontWeight:
Fonts
.
medium
),
unselectedLabelColor:
Colours
.
c9
,
unselectedLabelStyle:
TextStyle
(
fontSize:
15
.
w
,
height:
1.4
),
indicatorSize:
TabBarIndicatorSize
.
label
,
indicatorColor:
AppTheme
.
primary
,
tabs:
controller
.
tabs
,
physics:
const
NeverScrollableScrollPhysics
(),
controller:
controller
.
tabController
,
),
),
),
],
Expanded
(
),
child:
TabBarView
(
body:
controller:
controller
.
tabController
,
Column
(
children:
[
children:
[
BookCategoryPage
(
chapters:
controller
.
chapters
,
bookId:
controller
.
bookId
,
bookDetails:
controller
.
bookDetails
,),
BuildBook
(
model:
controller
.
bookDetails
,),
Container
(
Container
(
padding:
EdgeInsets
.
only
(
left:
15
.
w
,
right:
15
.
w
,
top:
12
.
w
),
height:
10
.
w
,
color:
Colors
.
white
,
color:
const
Color
(
0xFFF9F9F9
),
child:
Text
(
controller
.
bookDetails
.
content
??
''
,
style:
TextStyle
(
fontSize:
12
.
w
,
height:
1.5
,
color:
Colours
.
c3
),),
),
),
BuildStudy
(
model:
controller
.
bookDetails
,),
BookInfoPage
(
model:
controller
.
bookDetails
,)
Container
(
],
height:
2
,
color:
const
Color
(
0xFFF9F9F9
),
),
Container
(
color:
Colors
.
white
,
child:
TabBar
(
labelColor:
AppTheme
.
primary
,
// isScrollable: true,
labelStyle:
TextStyle
(
fontSize:
15
.
w
,
height:
1.4
,
fontWeight:
Fonts
.
medium
),
unselectedLabelColor:
Colours
.
c9
,
unselectedLabelStyle:
TextStyle
(
fontSize:
15
.
w
,
height:
1.4
),
indicatorSize:
TabBarIndicatorSize
.
label
,
indicatorColor:
AppTheme
.
primary
,
tabs:
controller
.
tabs
,
physics:
const
NeverScrollableScrollPhysics
(),
controller:
controller
.
tabController
,
),
),
Expanded
(
child:
TabBarView
(
controller:
controller
.
tabController
,
children:
[
BookCategoryPage
(
chapters:
controller
.
chapters
,
bookId:
controller
.
bookId
,
bookDetails:
controller
.
bookDetails
,),
Container
(
padding:
EdgeInsets
.
only
(
left:
15
.
w
,
right:
15
.
w
,
top:
12
.
w
),
color:
Colors
.
white
,
child:
Text
(
controller
.
bookDetails
.
content
??
''
,
style:
TextStyle
(
fontSize:
12
.
w
,
height:
1.5
,
color:
Colours
.
c3
),),
),
BookInfoPage
(
model:
controller
.
bookDetails
,)
],
),
),
),
),
],
],
),
),
bottomNavigationBar:
SafeArea
(
bottomNavigationBar:
SafeArea
(
child:
Container
(
child:
Container
(
color:
Colors
.
white
,
color:
Colors
.
white
,
padding:
EdgeInsets
.
symmetric
(
horizontal:
15
.
w
,
vertical:
10
.
w
),
padding:
EdgeInsets
.
symmetric
(
horizontal:
15
.
w
,
vertical:
10
.
w
),
child:
Row
(
child:
Row
(
mainAxisAlignment:
MainAxisAlignment
.
spaceEvenly
,
mainAxisAlignment:
MainAxisAlignment
.
spaceEvenly
,
children:
[
children:
[
Expanded
(
Expanded
(
child:
GestureDetector
(
child:
GestureDetector
(
onTap:
(){
onTap:
(){
if
(
controller
.
bookDetails
.
isHave
==
1
){
if
(
controller
.
bookDetails
.
isHave
==
1
){
context
.
pushNamed
(
Routes
.
studyReport
,
queryParameters:
{
'book_id'
:
widget
.
bookId
});
context
.
pushNamed
(
Routes
.
studyReport
,
queryParameters:
{
'book_id'
:
widget
.
bookId
});
}
}
else
{
else
{
controller
.
addCart
(
widget
.
bookId
);
controller
.
addCart
(
widget
.
bookId
);
}
}
},
},
child:
Container
(
child:
Container
(
alignment:
Alignment
.
center
,
alignment:
Alignment
.
center
,
height:
35
,
height:
35
,
decoration:
BoxDecoration
(
decoration:
BoxDecoration
(
borderRadius:
BorderRadius
.
circular
(
17.5
.
w
),
borderRadius:
BorderRadius
.
circular
(
17.5
.
w
),
border:
Border
.
all
(
border:
Border
.
all
(
width:
0.5
,
width:
0.5
,
color:
Colours
.
c9
color:
Colours
.
c9
),
// color: Colours.cE0.withOpacity(0.5),
),
),
// color: Colours.cE0.withOpacity(0.5),
// padding: EdgeInsets.symmetric(vertical: 8),
child:
controller
.
bookDetails
.
isHave
==
1
?
Text
(
'学习报告'
,
style:
TextStyle
(
fontSize:
13
.
w
,
color:
Colours
.
c9
,
height:
1.5
),):
Text
(
'加入书架'
,
style:
TextStyle
(
fontSize:
13
.
w
,
color:
AppTheme
.
primary
,
height:
1.5
),),
),
),
// padding: EdgeInsets.symmetric(vertical: 8),
child:
controller
.
bookDetails
.
isHave
==
1
?
Text
(
'学习报告'
,
style:
TextStyle
(
fontSize:
13
.
w
,
color:
Colours
.
c9
,
height:
1.5
),):
Text
(
'加入书架'
,
style:
TextStyle
(
fontSize:
13
.
w
,
color:
AppTheme
.
primary
,
height:
1.5
),),
),
),
),
),
),
Gaps
.
hGaps10
,
Gaps
.
hGaps10
,
Expanded
(
Expanded
(
child:
GestureDetector
(
child:
GestureDetector
(
onTap:
()
async
{
onTap:
()
async
{
// 1免费 0 不免费
// 1免费 0 不免费
if
(
controller
.
bookDetails
.
isFree
==
1
){
if
(
controller
.
bookDetails
.
isFree
==
1
){
context
.
pushNamed
(
Routes
.
web
,
queryParameters:
{
'book_id'
:
controller
.
bookDetails
.
bookId
.
toString
(),
'chapter_id'
:
controller
.
bookDetails
.
chapterId
.
toString
(),
'chapter_name'
:
controller
.
bookDetails
.
chapterName
.
toString
()},
extra:
controller
.
bookDetails
);
context
.
pushNamed
(
Routes
.
web
,
queryParameters:
{
'book_id'
:
controller
.
bookDetails
.
bookId
.
toString
(),
'chapter_id'
:
controller
.
bookDetails
.
chapterId
.
toString
(),
'chapter_name'
:
controller
.
bookDetails
.
chapterName
.
toString
()},
extra:
controller
.
bookDetails
);
}
}
else
{
else
{
// 没有购买
// 没有购买
if
(
controller
.
bookDetails
.
isHave
==
0
){
if
(
controller
.
bookDetails
.
isHave
==
0
){
// 没有试读
// 没有试读
if
(
controller
.
bookDetails
.
readChapterId
==
0
){
if
(
controller
.
bookDetails
.
readChapterId
==
0
){
List
<
CourseModel
>
buy
=
[];
List
<
CourseModel
>
buy
=
[];
CourseModel
model
=
CourseModel
(
CourseModel
model
=
CourseModel
(
bookId:
controller
.
bookDetails
.
bookId
,
bookId:
controller
.
bookDetails
.
bookId
,
price:
controller
.
bookDetails
.
price
,
price:
controller
.
bookDetails
.
price
,
vipPrice:
controller
.
bookDetails
.
vipPrice
,
vipPrice:
controller
.
bookDetails
.
vipPrice
,
img:
controller
.
bookDetails
.
img
,
img:
controller
.
bookDetails
.
img
,
bookName:
controller
.
bookDetails
.
bookName
,
bookName:
controller
.
bookDetails
.
bookName
,
cartId:
0
,
cartId:
0
,
status:
1
,
status:
1
,
selected:
true
selected:
true
);
);
buy
.
add
(
model
);
buy
.
add
(
model
);
final
result
=
await
context
.
pushNamed
(
Routes
.
bookPay
,
extra:
buy
);
final
result
=
await
context
.
pushNamed
(
Routes
.
bookPay
,
extra:
buy
);
if
(
result
==
true
)
{
if
(
result
==
true
)
{
controller
.
getBookDetails
();
controller
.
getBookDetails
();
}
}
}
}
else
{
else
{
context
.
pushNamed
(
Routes
.
web
,
queryParameters:
{
'book_id'
:
controller
.
bookDetails
.
bookId
.
toString
(),
'chapter_id'
:
controller
.
bookDetails
.
chapterId
.
toString
(),
'chapter_name'
:
controller
.
bookDetails
.
chapterName
.
toString
()},
extra:
controller
.
bookDetails
);
context
.
pushNamed
(
Routes
.
web
,
queryParameters:
{
'book_id'
:
controller
.
bookDetails
.
bookId
.
toString
(),
'chapter_id'
:
controller
.
bookDetails
.
chapterId
.
toString
(),
'chapter_name'
:
controller
.
bookDetails
.
chapterName
.
toString
()},
extra:
controller
.
bookDetails
);
}
}
}
}
else
{
else
{
context
.
pushNamed
(
Routes
.
web
,
queryParameters:
{
'book_id'
:
controller
.
bookDetails
.
bookId
.
toString
(),
'chapter_id'
:
controller
.
bookDetails
.
chapterId
.
toString
(),
'chapter_name'
:
controller
.
bookDetails
.
chapterName
.
toString
()},
extra:
controller
.
bookDetails
);
context
.
pushNamed
(
Routes
.
web
,
queryParameters:
{
'book_id'
:
controller
.
bookDetails
.
bookId
.
toString
(),
'chapter_id'
:
controller
.
bookDetails
.
chapterId
.
toString
(),
'chapter_name'
:
controller
.
bookDetails
.
chapterName
.
toString
()},
extra:
controller
.
bookDetails
);
}
}
}
}
},
},
child:
Container
(
child:
Container
(
decoration:
BoxDecoration
(
decoration:
BoxDecoration
(
borderRadius:
BorderRadius
.
circular
(
17.5
.
w
),
borderRadius:
BorderRadius
.
circular
(
17.5
.
w
),
color:
AppTheme
.
primary
.
withOpacity
(
0.1
)
color:
AppTheme
.
primary
.
withOpacity
(
0.1
)
),
height:
35
.
w
,
alignment:
Alignment
.
center
,
padding:
EdgeInsets
.
symmetric
(
vertical:
8
.
w
),
child:
Text
(
'阅读'
,
style:
TextStyle
(
fontSize:
13
.
w
,
color:
AppTheme
.
primary
,
height:
1.5
),),
),
),
height:
35
.
w
,
alignment:
Alignment
.
center
,
padding:
EdgeInsets
.
symmetric
(
vertical:
8
.
w
),
child:
Text
(
'阅读'
,
style:
TextStyle
(
fontSize:
13
.
w
,
color:
AppTheme
.
primary
,
height:
1.5
),),
),
),
)
,
)
)
],
]
,
)
,
),
),
),
),
),
),
...
...
lib/pages/user_msg/view.dart
浏览文件 @
d02750e4
...
@@ -35,12 +35,24 @@ class MsgPage extends StatelessWidget {
...
@@ -35,12 +35,24 @@ class MsgPage extends StatelessWidget {
if
(
model
.
type
==
1
){
if
(
model
.
type
==
1
){
// 1订单支付快要超时(跳转订单详情)
// 1订单支付快要超时(跳转订单详情)
final
result
=
await
context
.
pushNamed
(
Routes
.
order
);
if
(
result
==
true
){
controller
.
onRefresh
();
}
///TODO:
///TODO:
}
else
if
(
model
.
type
==
2
){
}
else
if
(
model
.
type
==
2
){
// 2 购买完成三天未评价(跳转订单列表--已完成)
// 2 购买完成三天未评价(跳转订单列表--已完成)
final
result
=
await
context
.
pushNamed
(
Routes
.
order
);
if
(
result
==
true
){
controller
.
onRefresh
();
}
///TODO:
///TODO:
}
else
if
(
model
.
type
==
3
){
}
else
if
(
model
.
type
==
3
){
// 3 讨论有人回复的时候 (跳转对应书籍的讨论页面)
// 3 讨论有人回复的时候 (跳转对应书籍的讨论页面)
final
result
=
await
context
.
pushNamed
(
Routes
.
bookDetail
,
queryParameters:
{
'book_id'
:
model
.
urlId
?.
bookId
.
toString
()});
if
(
result
==
true
){
controller
.
onRefresh
();
}
}
}
else
if
(
model
.
type
==
4
){
else
if
(
model
.
type
==
4
){
// 4 订单完成后有新的积分增加(跳转用户积分记录页)
// 4 订单完成后有新的积分增加(跳转用户积分记录页)
...
...
lib/pages/user_order/view.dart
浏览文件 @
d02750e4
...
@@ -76,46 +76,52 @@ class _UserOrderState extends State<UserOrderPage> with SingleTickerProviderStat
...
@@ -76,46 +76,52 @@ class _UserOrderState extends State<UserOrderPage> with SingleTickerProviderStat
body: _buildBody(controller),
body: _buildBody(controller),
),
),
);*/
);*/
Scaffold
(
WillPopScope
(
appBar:
CustomAppBar
(
onWillPop:
()
async
{
automaticallyImplyLeading:
false
,
context
.
pop
(
true
);
titleSpacing:
0
,
return
false
;
title:
Padding
(
},
padding:
EdgeInsets
.
symmetric
(
horizontal:
AppTheme
.
margin
),
child:
Scaffold
(
child:
CustomInputSearch
(
appBar:
CustomAppBar
(
controller:
searchController
,
automaticallyImplyLeading:
false
,
readOnly:
false
,
titleSpacing:
0
,
hintText:
'搜索我的订单'
,
title:
Padding
(
onTap:
()
{
padding:
EdgeInsets
.
symmetric
(
horizontal:
AppTheme
.
margin
),
// context.pushNamed(Routes.msgs);
child:
CustomInputSearch
(
},
controller:
searchController
,
onEditingComplete:
()
{
readOnly:
false
,
// _getOrders(
hintText:
'搜索我的订单'
,
// isRefresh: true,
onTap:
()
{
// keys: searchController.text,
// context.pushNamed(Routes.msgs);
// tabIndex: _tabController.index);
},
FocusNode
blankNode
=
FocusNode
();
onEditingComplete:
()
{
FocusScope
.
of
(
context
).
requestFocus
(
blankNode
);
//指定为空白焦点
// _getOrders(
},
// isRefresh: true,
),
// keys: searchController.text,
),
// tabIndex: _tabController.index);
actions:
[
FocusNode
blankNode
=
FocusNode
();
GestureDetector
(
FocusScope
.
of
(
context
).
requestFocus
(
blankNode
);
//指定为空白焦点
onTap:
()
{
},
context
.
pop
();
},
child:
Container
(
padding:
EdgeInsets
.
only
(
left:
10
.
w
,
top:
10
.
w
,
bottom:
10
.
w
),
child:
Text
(
'取消'
,
style:
TextStyle
(
fontSize:
14
.
w
,
height:
1.5
,
color:
Colours
.
c3
),
),
),
),
),
)
actions:
[
],
GestureDetector
(
),
onTap:
()
{
body:
_buildBody
(),
context
.
pop
();
},
child:
Container
(
padding:
EdgeInsets
.
only
(
left:
10
.
w
,
top:
10
.
w
,
bottom:
10
.
w
),
child:
Text
(
'取消'
,
style:
TextStyle
(
fontSize:
14
.
w
,
height:
1.5
,
color:
Colours
.
c3
),
),
),
)
],
),
body:
_buildBody
(),
)
);
);
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论