1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-22 03:32:47 +08:00
2021-08-03 15:47:55 +08:00

177 lines
6.5 KiB
JavaScript

layui.use(['jquery', 'form', 'layer', 'helper'], function () {
var $ = layui.jquery;
var form = layui.form;
var layer = layui.layer;
var helper = layui.helper;
form.on('submit(add_comment)', function (data) {
var submit = $(this);
var $commentList = $('#comment-list');
var $textarea = $(data.form).find('.layui-textarea');
var $tbCommentCount = $('#toolbar-comment > .text');
var tbCommentCount = $tbCommentCount.data('count');
submit.attr('disabled', 'disabled').addClass('layui-btn-disabled');
$.ajax({
type: 'POST',
url: data.form.action,
data: data.field,
success: function (res) {
$.ajax({
type: 'GET',
url: '/comment/' + res.comment.id + '/info',
success: function (html) {
tbCommentCount++;
$tbCommentCount.data('count', tbCommentCount).text(tbCommentCount);
$commentList.prepend(html);
}
});
$textarea.val('');
layer.msg('发表评论成功');
submit.removeAttr('disabled').removeClass('layui-btn-disabled');
},
error: function (xhr) {
var res = JSON.parse(xhr.responseText);
layer.msg(res.msg);
submit.removeAttr('disabled').removeClass('layui-btn-disabled');
}
});
return false;
});
form.on('submit(reply_comment)', function (data) {
var submit = $(this);
var commentId = submit.data('comment-id');
var parentId = submit.data('parent-id');
var blockId = parentId > 0 ? parentId : commentId;
var $commentForm = $('#comment-form-' + commentId);
var $replyList = $('#reply-list-' + blockId);
var $textarea = $(data.form).find('.layui-textarea');
var $replyCount = $('#comment-' + blockId).find('.reply-count');
var replyCount = $replyCount.data('count');
submit.attr('disabled', 'disabled').addClass('layui-btn-disabled');
$.ajax({
type: 'POST',
url: data.form.action,
data: data.field,
success: function (res) {
$.ajax({
type: 'GET',
url: '/comment/' + res.comment.id + '/info',
success: function (html) {
$replyList.prepend(html);
}
});
replyCount++;
$commentForm.hide();
$replyList.show();
$textarea.val('');
$replyCount.data('count', replyCount).text(replyCount);
layer.msg('发表回复成功');
submit.removeAttr('disabled').removeClass('layui-btn-disabled');
},
error: function (xhr) {
var res = JSON.parse(xhr.responseText);
layer.msg(res.msg);
submit.removeAttr('disabled').removeClass('layui-btn-disabled');
}
});
return false;
});
$('#comment-cancel').on('click', function () {
$('#comment-footer').hide();
});
$('#comment-content').on('click', function () {
$('#comment-footer').show();
});
$('body').on('click', '.reply-cancel', function () {
var id = $(this).data('id');
$('#comment-form-' + id).hide();
});
$('body').on('click', '.comment-toggle', function () {
var $this = $(this);
var id = $this.data('id');
var url = $this.data('url');
var $replyList = $('#comment-' + id + '>.reply-list');
if ($replyList.hasClass('loaded')) {
if ($this.hasClass('expanded')) {
$this.attr('title', '展开回应').removeClass('expanded');
} else {
$this.attr('title', '收起回应').addClass('expanded');
}
$replyList.toggle();
} else {
$.ajax({
type: 'GET',
url: url,
success: function (html) {
$this.attr('title', '收起回应').addClass('expanded');
$replyList.addClass('loaded').show();
$replyList.html(html);
}
});
}
});
$('body').on('click', '.comment-reply', function () {
var id = $(this).data('id');
var $block = $('#comment-form-' + id);
var $textarea = $block.find('textarea');
$block.toggle();
$textarea.focus();
});
$('body').on('click', '.comment-like', function () {
var $this = $(this);
var $likeCount = $this.prev();
var likeCount = $likeCount.data('count');
helper.checkLogin(function () {
$.ajax({
type: 'POST',
url: $this.data('url'),
success: function () {
if ($this.hasClass('liked')) {
$this.attr('title', '点赞支持').text('点赞').removeClass('liked');
likeCount--;
} else {
$this.attr('title', '取消点赞').text('已赞').addClass('liked');
likeCount++;
}
$likeCount.data('count', likeCount).text(likeCount);
}
});
});
});
$('body').on('click', '.comment-delete', function () {
var $this = $(this);
var id = $this.data('id');
var parentId = $this.data('parent-id');
var $comment = $('#comment-' + id);
var $tbCommentCount = $('#toolbar-comment > .text');
var tbCommentCount = $tbCommentCount.data('count');
layer.confirm('确定要删除吗?', function () {
$.ajax({
type: 'POST',
url: $this.data('url'),
success: function () {
if (parentId > 0) {
var $replyCount = $('#comment-' + parentId).find('.reply-count');
var replyCount = $replyCount.data('count');
replyCount--;
$replyCount.data('count', replyCount).text(replyCount);
}
tbCommentCount--;
$tbCommentCount.data('count', tbCommentCount).text(tbCommentCount);
$comment.remove();
layer.msg('删除评论成功');
}
});
});
});
});