/**
* 消息通知相关js
*
* @author CaiAoLin
* @date 2017/9/25
* @version
*/
let isLoading = false;
$(document).ready(function() {
// 消息框弹出
$("#msg").on("shown.bs.modal", function() {
let loadingElement = $("#message-loading");
$.ajax({
url: '/message/list',
type: 'post',
data: '',
dataType: 'json',
error: function() {
loadingElement.text('加载数据失败');
},
beforeSend: function() {
loadingElement.text('正在加载数据').show();
},
success: function(response) {
loadingElement.text('').hide();
$("#message-list").show();
if (response.err === 1 || response.err === undefined) {
let msg = response.msg !== undefined ? response.msg : '读取数据失败!';
alert(msg);
return false;
}
let listData = response.data;
if (listData.length <= 0) {
return false;
}
let listHtml = '';
for(let tmp of listData) {
let unreadHtml = tmp.is_read === 0 ? ' ' : '';
let dateString = moment(tmp.message.release_time).format('YYYY-MM-DD');
let dateTimeString = moment(tmp.message.release_time).format('YYYY-MM-DD HH:mm:ss');
listHtml += '
' +
''+ unreadHtml +''+ tmp.message.title +' | ' +
''+ dateString +' | ';
}
$("#message-list tbody").html(listHtml);
}
});
});
// 获取详细消息
$("#msg").on("click", "a.detail", function() {
let self = $(this);
let id = self.data("id");
if (id === undefined || id === '' || isLoading) {
return false;
}
let isUnread = self.prev().is(".unread");
let loadingElement = $("#message-loading");
let listElement = $("#message-list");
$.ajax({
url: '/message/detail',
type: 'post',
data: 'id=' + id,
dataType: 'json',
error: function() {
isLoading = false;
listElement.show();
loadingElement.text('').hide();
},
beforeSend: function() {
isLoading = true;
listElement.hide();
loadingElement.text('正在加载详细内容').show();
},
success: function(response) {
isLoading = false;
loadingElement.text('').hide();
let messageData = response.data;
if (response.err === 1 || response.err === undefined || messageData === undefined) {
let msg = response.msg !== undefined ? response.msg : '读取数据失败!';
listElement.show();
loadingElement.text('').hide();
alert(msg);
return false;
}
// 移除未读标记
if (isUnread) {
self.prev('i').remove();
changeNumByStep(-1);
}
$("#message-content .title").text(messageData.message.title);
$("#message-content .time").text('发布:' + moment(messageData.message.release_time).format('YYYY-MM-DD HH:mm:ss'));
$("#message-content .content-area").html(messageData.message.content);
$("#message-content").show();
}
});
});
// 设置全部已读
$("#set-all-read").click(function() {
if (isLoading) {
return false;
}
$.ajax({
url: '/message/read',
type: 'post',
data: '',
dataType: 'json',
error: function() {
isLoading = false;
},
beforeSend: function() {
isLoading = true;
},
success: function(response) {
isLoading = false;
if (response.err === 0) {
$("#message-list tbody .unread").remove();
changeNumByStep(0);
} else {
let msg = response.msg !== undefined ? response.msg : '未知错误!';
alert(msg);
}
}
});
});
// 返回按钮
$("#message-content .back").click(function() {
$("#message-content").hide();
$("#message-list").show();
});
});
/**
* 设置头部信封数量
*
* @param {Number} step
* @return {void}
*/
function changeNumByStep(step) {
let messageElement = $("#notify-info");
let unreadElement = $("#unread-num");
if (step === 0) {
messageElement.removeClass('new-msg');
unreadElement.text(0);
} else {
let currentNum = unreadElement.text();
currentNum = parseInt(currentNum);
let num = currentNum + step;
if (num === 0) {
messageElement.removeClass('new-msg');
}
unreadElement.text(num);
}
}