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

评论点赞

上级 e5f283bb
...@@ -342,5 +342,25 @@ abstract class LibraryAPI { ...@@ -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 { ...@@ -541,6 +541,7 @@ class DiscussModel {
this.isMy, this.isMy,
this.commentsCheck, this.commentsCheck,
this.status, this.status,
this.isPraise,
}); });
DiscussModel.fromJson(dynamic json) { DiscussModel.fromJson(dynamic json) {
...@@ -562,6 +563,7 @@ class DiscussModel { ...@@ -562,6 +563,7 @@ class DiscussModel {
personName = json['person_name']; personName = json['person_name'];
personPic = json['person_pic']; personPic = json['person_pic'];
isMy = json['is_my']; isMy = json['is_my'];
isPraise = json['is_praise'];
commentsCheck = json['comments_check']; commentsCheck = json['comments_check'];
status = json['status']; status = json['status'];
...@@ -585,6 +587,7 @@ class DiscussModel { ...@@ -585,6 +587,7 @@ class DiscussModel {
num? goodNum; num? goodNum;
num? replyNum; num? replyNum;
num? isMy; num? isMy;
num? isPraise;
num? commentsCheck; num? commentsCheck;
num? status; num? status;
String? createTime; String? createTime;
...@@ -607,6 +610,7 @@ class DiscussModel { ...@@ -607,6 +610,7 @@ class DiscussModel {
num? goodNum, num? goodNum,
num? replyNum, num? replyNum,
num? isMy, num? isMy,
num? isPraise,
num? commentsCheck, num? commentsCheck,
num? status, num? status,
String? createTime, String? createTime,
...@@ -629,6 +633,7 @@ class DiscussModel { ...@@ -629,6 +633,7 @@ class DiscussModel {
goodNum: goodNum ?? this.goodNum, goodNum: goodNum ?? this.goodNum,
replyNum: replyNum ?? this.replyNum, replyNum: replyNum ?? this.replyNum,
isMy: isMy ?? this.isMy, isMy: isMy ?? this.isMy,
isPraise: isPraise ?? this.isPraise,
status:status ?? this.status, status:status ?? this.status,
commentsCheck: commentsCheck ?? this.commentsCheck, commentsCheck: commentsCheck ?? this.commentsCheck,
createTime: createTime ?? this.createTime, createTime: createTime ?? this.createTime,
...@@ -656,6 +661,7 @@ class DiscussModel { ...@@ -656,6 +661,7 @@ class DiscussModel {
map['good_num'] = goodNum; map['good_num'] = goodNum;
map['reply_num'] = replyNum; map['reply_num'] = replyNum;
map['is_my'] = isMy; map['is_my'] = isMy;
map['is_praise'] = isPraise;
map['comments_check'] = commentsCheck; map['comments_check'] = commentsCheck;
map['status'] = status; map['status'] = status;
map['create_time'] = createTime; map['create_time'] = createTime;
......
...@@ -61,6 +61,19 @@ class DiscussController extends GetxController { ...@@ -61,6 +61,19 @@ class DiscussController extends GetxController {
update(); 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 { Future<bool> submit() async {
...@@ -101,7 +114,7 @@ class DiscussController extends GetxController { ...@@ -101,7 +114,7 @@ class DiscussController extends GetxController {
bookId: bookDetailModel.bookId.toString(), bookId: bookDetailModel.bookId.toString(),
key: searchInput.text key: searchInput.text
); );
testData(); // testData();
Console.log('--------------------------------'); Console.log('--------------------------------');
// 如果是刷新 清理数据 // 如果是刷新 清理数据
if (isRefresh) searchALlResults.clear(); if (isRefresh) searchALlResults.clear();
......
...@@ -103,14 +103,18 @@ class _ReadDiscussPageState extends State<ReadDiscussPage> { ...@@ -103,14 +103,18 @@ class _ReadDiscussPageState extends State<ReadDiscussPage> {
ListView.builder( ListView.builder(
itemBuilder: (BuildContext context,int index){ itemBuilder: (BuildContext context,int index){
DiscussModel model = controller.discuss[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, itemCount: controller.discuss.length,
), ),
Visibility( Visibility(
visible: controller.showReply, visible: controller.showReply,
child: Positioned( child: Positioned(
bottom: MediaQuery.of(context).viewInsets.bottom -49 , bottom: MediaQuery.of(context).viewInsets.bottom -69 ,
left: 0, left: 0,
right: 0, right: 0,
child: Container( child: Container(
......
...@@ -3,10 +3,12 @@ part of user_discuss_des; ...@@ -3,10 +3,12 @@ part of user_discuss_des;
class BuildDiscuss extends StatefulWidget { class BuildDiscuss extends StatefulWidget {
final DiscussModel model; final DiscussModel model;
final DiscussController? controller; final DiscussController? controller;
final String bookId;
const BuildDiscuss({ const BuildDiscuss({
Key? key, Key? key,
required this.model, required this.model,
this.controller this.controller,
required this.bookId
}) : super(key: key); }) : super(key: key);
@override @override
...@@ -140,11 +142,16 @@ class _BuildDiscussState extends State<BuildDiscuss> { ...@@ -140,11 +142,16 @@ class _BuildDiscussState extends State<BuildDiscuss> {
Row( Row(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
SizedBox( GestureDetector(
onTap: () async{
widget.controller?.commentLove(discussModel: model);
},
child: SizedBox(
height: 20.w, height: 20.w,
width: 20.w, width: 20.w,
// color: Colors.green, // 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)) 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 ...@@ -27,7 +27,10 @@ class _BuildListPageState extends State<BuildListPage> with AutomaticKeepAliveCl
child: ListView.builder( child: ListView.builder(
itemBuilder: (BuildContext context,int index){ itemBuilder: (BuildContext context,int index){
DiscussModel model = controller.discuss[index]; DiscussModel model = controller.discuss[index];
return BuildDiscuss(model: model,); return BuildDiscuss(
model: model,
bookId: widget.model.bookId.toString(),
);
}, },
itemCount: controller.discuss.length, itemCount: controller.discuss.length,
), ),
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论