提交 f4c213b5 authored 作者: yueweilu's avatar yueweilu

评论点赞

上级 e5f283bb
......@@ -342,5 +342,25 @@ abstract class LibraryAPI {
});
}
/// 17、评论 点赞 取消
static Future <bool> commentLove({
required num bookId,
required num type,
required num commentId,
}) async {
final result = await HttpService.to.post(
'/v1/book/Information/clickPraise',
params: {
'book_id':bookId,
'type':type,
'comment_id':commentId
},
);
if (result.data is Map && result.data['is_success'] == 1){
return true;
}
return false;
}
}
\ No newline at end of file
......@@ -541,6 +541,7 @@ class DiscussModel {
this.isMy,
this.commentsCheck,
this.status,
this.isPraise,
});
DiscussModel.fromJson(dynamic json) {
......@@ -562,6 +563,7 @@ class DiscussModel {
personName = json['person_name'];
personPic = json['person_pic'];
isMy = json['is_my'];
isPraise = json['is_praise'];
commentsCheck = json['comments_check'];
status = json['status'];
......@@ -585,6 +587,7 @@ class DiscussModel {
num? goodNum;
num? replyNum;
num? isMy;
num? isPraise;
num? commentsCheck;
num? status;
String? createTime;
......@@ -607,6 +610,7 @@ class DiscussModel {
num? goodNum,
num? replyNum,
num? isMy,
num? isPraise,
num? commentsCheck,
num? status,
String? createTime,
......@@ -629,6 +633,7 @@ class DiscussModel {
goodNum: goodNum ?? this.goodNum,
replyNum: replyNum ?? this.replyNum,
isMy: isMy ?? this.isMy,
isPraise: isPraise ?? this.isPraise,
status:status ?? this.status,
commentsCheck: commentsCheck ?? this.commentsCheck,
createTime: createTime ?? this.createTime,
......@@ -656,6 +661,7 @@ class DiscussModel {
map['good_num'] = goodNum;
map['reply_num'] = replyNum;
map['is_my'] = isMy;
map['is_praise'] = isPraise;
map['comments_check'] = commentsCheck;
map['status'] = status;
map['create_time'] = createTime;
......
......@@ -61,6 +61,19 @@ class DiscussController extends GetxController {
update();
}
Future<void> commentLove({required DiscussModel discussModel}) async {
num type = 0;
if (discussModel.isPraise ==0){
type = 1;
}
final result = await LibraryAPI.commentLove(bookId:bookDetailModel.bookId! , type: type, commentId: discussModel.id!);
if(result){
discussModel.isPraise = type;
}
update();
}
Future<bool> submit() async {
......@@ -101,7 +114,7 @@ class DiscussController extends GetxController {
bookId: bookDetailModel.bookId.toString(),
key: searchInput.text
);
testData();
// testData();
Console.log('--------------------------------');
// 如果是刷新 清理数据
if (isRefresh) searchALlResults.clear();
......
......@@ -103,14 +103,18 @@ class _ReadDiscussPageState extends State<ReadDiscussPage> {
ListView.builder(
itemBuilder: (BuildContext context,int index){
DiscussModel model = controller.discuss[index];
return BuildDiscuss(model: model,controller: controller,);
return BuildDiscuss(
model: model,
controller: controller,
bookId: widget.bookDetailModel.bookId.toString(),
);
},
itemCount: controller.discuss.length,
),
Visibility(
visible: controller.showReply,
child: Positioned(
bottom: MediaQuery.of(context).viewInsets.bottom -49 ,
bottom: MediaQuery.of(context).viewInsets.bottom -69 ,
left: 0,
right: 0,
child: Container(
......
......@@ -3,10 +3,12 @@ part of user_discuss_des;
class BuildDiscuss extends StatefulWidget {
final DiscussModel model;
final DiscussController? controller;
final String bookId;
const BuildDiscuss({
Key? key,
required this.model,
this.controller
this.controller,
required this.bookId
}) : super(key: key);
@override
......@@ -140,11 +142,16 @@ class _BuildDiscussState extends State<BuildDiscuss> {
Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
GestureDetector(
onTap: () async{
widget.controller?.commentLove(discussModel: model);
},
child: SizedBox(
height: 20.w,
width: 20.w,
// color: Colors.green,
child: Image.asset('assets/images/love.png',fit: BoxFit.cover,),
child: Image.asset(model.isPraise ==0?'assets/images/unlove.png': 'assets/images/love.png',fit: BoxFit.cover,),
),
),
Text(model.goodNum.toString(),style: TextStyle(fontSize:12.w,height: 1.5,color: Colours.c9))
],
......
......@@ -27,7 +27,10 @@ class _BuildListPageState extends State<BuildListPage> with AutomaticKeepAliveCl
child: ListView.builder(
itemBuilder: (BuildContext context,int index){
DiscussModel model = controller.discuss[index];
return BuildDiscuss(model: model,);
return BuildDiscuss(
model: model,
bookId: widget.model.bookId.toString(),
);
},
itemCount: controller.discuss.length,
),
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论