mirror of
https://gitee.com/koogua/course-tencent-cloud.git
synced 2025-06-22 03:32:47 +08:00
177 lines
6.5 KiB
JavaScript
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('删除评论成功');
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
}); |