app-xiangsonghua/app-saas-src/script/message/messageListFrame.js
2024-12-26 17:00:06 +08:00

926 lines
33 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//10自定义消息 1001消息
//20抢修管家消息 2001抢修单消息 2002抢修日志消息
//30巡检管家消息 3001 巡检安排消息 3002巡检日志消息
//40操作票助手消息 4001操作票审核提示消息 4002 操作票归档完成消息
//50工作票助手消息 5001 工作票审核提示消息 5002工作票归档完成消息
// 60 预报警消息 6001 预警消息 6002 报警消息 6003 紧急报警消息
// 70报表管家消息 7001
function imgErrorCallback(node) {
node.parentNode.removeChild(node);
}
apiready = function() {
ctrl = {
userId: null,
oldMaxId: null,
newMinId: null,
page: 0,
pageSize: 20,
who: null,
editMode: false,
people: {
CUSTOM: {
name: "电务小蜜蜂",
messageTypes: [1001]
},
REPAIR: {
name: "抢修管家",
messageTypes: [2001, 2002]
},
INSPECT: {
name: "巡检管家",
messageTypes: [3001, 3002]
},
OPERATE: {
name: "操作票助手",
messageTypes: [4001, 4002]
},
WORK: {
name: "工作票助手",
messageTypes: [5001, 5002]
},
// 报警管家消息
ALARM: {
name: "报警管家",
messageTypes: [6001, 6002, 6003]
},
// 报表管家消息
REPORT: {
name: "报表管家",
messageTypes: [7001]
},
},
init: {},
bind: {},
updateMsgToIsRead: {}, //更新消息为已读
getMessages: {},
msgFilter: {}, //读取消息前的处理,针对体验账号,替换部分数据
openEditMode: {}, //打开编辑模式
cancelEditMode: {}, //取消编辑模式
onTouchMessage: {}, //跳转到消息详情
checkedAMessage: {}, // 选中一个消息
updateActBtn: {}, // 更新全选按钮的状态
removeMessages: {}, // 批量删除消息
markMessagesToReaded: {}, //批量标记消息为已读
}
ctrl.init = function() {
//获取userId
var userId = $api.getStorage("userId");
ctrl.userId = userId;
//获取传递进来的参数:消息类型
var who = api.pageParam.type;
ctrl.who = who;
//如果是自定义消息 不显示标记为已读按钮
if (who != 'CUSTOM') {
$("#mark-to-readed").removeClass('displayNone');
}
//显示who
$("#title").text(ctrl.people[who].name);
ctrl.bind();
//读取消息
ctrl.getOldMessages();
}
ctrl.bind = function() {
//返回按钮
$("#back").on("touchend", function() {
api.closeWin({});
})
// 全选按钮
$('#select-all').on("touchend", function() {
var selectAll = $(this).data('select-all');
if (!selectAll) {
$('.message input[type="checkbox"]').attr('checked', true);
} else {
$('.message input[type="checkbox"]').removeAttr('checked');
}
ctrl.updateActBtn();
})
// 删除消息
$("#remove").on("touchend", function() {
ctrl.removeMessages();
// 向父页面发送关闭编辑模式请求
api.sendEvent({
name: 'requestCancelEditMode'
});
})
// 标为已读
$("#mark-to-readed").on("touchend", function() {
ctrl.markMessagesToReaded();
// 向父页面发送关闭编辑模式请求
api.sendEvent({
name: 'requestCancelEditMode'
});
})
//上拉加载
api.addEventListener({
name: 'scrolltobottom'
}, function(ret, err) {
ctrl.getOldMessages();
});
//获取新消息
api.addEventListener({
name: 'messageUpdated'
}, function(ret, err) {
if (ret) {
if (ret.value.type == 'delete') {
var msgId = ret.value.msgId;
$(".message[data-message-id='" + msgId + "']").remove();
} else {
ctrl.getNewMessages();
}
}
});
// 收到父页面发送过来的 打开编辑模式的请求
api.addEventListener({
name: 'openEditMode'
}, function(ret, err) {
ctrl.openEditMode();
});
// 收到父页面发送过来的取消编辑模式的请求
api.addEventListener({
name: 'cancelEditMode'
}, function(ret, err) {
ctrl.cancelEditMode();
});
//下来刷新
api.setRefreshHeaderInfo({
bgColor: "#CCCCCC",
textColor: "#FFFFFF"
}, function(ret, err) {
messageDao.updateData(function() {
api.refreshHeaderLoadDone();
ctrl.page = 0;
$("#list").empty();
ctrl.oldMaxId = null;
ctrl.newMinId = null;
ctrl.getOldMessages();
})
})
//自定义消息
$("#list").on("jump", ".bee-message", function() {
var moreId = $(this).data("more-id");
var messageType = $(this).data("message-type");
var messageId = $(this).data("message-id");
ctrl.updateMsgToIsRead(messageId);
$(this).removeClass("unread");
switch (parseInt(messageType)) {
//新闻
case 1001:
api.openWin({
name: 'news',
url: 'widget://html/message/news.html',
pageParam: {
id: moreId,
messageId: messageId
}
});
}
})
$("#list").on("touchend", ".message", function() {
ctrl.onTouchMessage(this);
})
//点击抢修管家消息
$("#list").on("jump", ".repair-message", function() {
var msgId = $(this).data("message-id");
ctrl.updateMsgToIsRead(msgId);
$(this).removeClass("unread");
var moreId = $(this).data("more-id");
var messageType = $(this).data("message-type");
var messageId = $(this).data("message-id");
switch (parseInt(messageType)) {
case 2001:
case 2002:
api.openWin({
name: 'repairDetail',
url: 'widget://html/feature/logQuery/repairLogDetail.html',
pageParam: {
id: moreId,
messageId: messageId
}
});
}
})
//点击巡检管家消息
$("#list").on("jump", ".inspect-message", function() {
var messageId = $(this).data("message-id");
ctrl.updateMsgToIsRead(messageId);
$(this).removeClass("unread");
var moreId = $(this).data("more-id");
var messageType = $(this).data("message-type");
switch (parseInt(messageType)) {
case 3001:
api.openWin({
name: 'inspectArrangement',
url: 'widget://html/feature/logQuery/inspectArrangement.html',
pageParam: {
id: moreId,
messageId: messageId
}
});
break;
//巡检日志
case 3002:
api.openWin({
name: 'inspectLogDetail',
url: 'widget://html/feature/logQuery/inspectLogDetail.html',
pageParam: {
id: moreId,
messageId: messageId
}
});
}
})
// add by guoyuanyuan 2018/9/11
//点击报表管家消息
// 点击报表管家消息
$("#list").on("jump", ".report-message", function() {
var messageId = $(this).data("message-id");
var time = $(this).data("time");
ctrl.updateMsgToIsRead(messageId);
$(this).removeClass("unread");
// var moreId = $(this).data("more-id");
// var messageType = $(this).data("message-type");
api.openWin({
name: 'reportProject',
url: 'widget://html/report/reportProject.html',
pageParam: {
messageId: messageId,
time: time
}
});
})
// 点击报警管家消息
$("#list").on("jump", ".alarm-message", function() {
var messageId = $(this).data("message-id");
ctrl.updateMsgToIsRead(messageId);
$(this).removeClass("unread");
var moreId = $(this).data("more-id");
var messageType = $(this).data("message-type");
api.openWin({
name: 'alarmDetail',
url: 'widget://html/feature/alarmDetail.html',
pageParam: {
id: moreId,
messageId: messageId
}
});
})
// add by guoyuanyuan 2018/9/11
//点击报表管家消息
//点击操作票助手消息
$("#list").on("jump", ".operate-message", function() {
var msgId = $(this).data("message-id");
ctrl.updateMsgToIsRead(msgId);
$(this).removeClass("unread");
var moreId = $(this).data("more-id");
var messageType = $(this).data("message-type");
var messageId = $(this).data("message-id");
switch (parseInt(messageType)) {
//审核提示
case 4001:
api.openWin({
name: 'operateTicketCommon',
url: 'widget://html/message/operateTicketCommon.html',
pageParam: {
messageId: msgId,
type: messageType
}
});
break;
//完成操作票
case 4002:
api.openWin({
name: 'operateTicketDetail',
url: 'widget://html/feature/logQuery/operateTicketDetail.html',
pageParam: {
id: moreId,
messageId: messageId
}
});
}
})
//点击工作票助手消息
$("#list").on("jump", ".work-message", function() {
var messageId = $(this).data("message-id");
ctrl.updateMsgToIsRead(messageId);
$(this).removeClass("unread");
var moreId = $(this).data("more-id");
var messageType = $(this).data("message-type");
switch (parseInt(messageType)) {
//完成工作票
case 5001:
api.openWin({
name: 'workTicket',
url: 'widget://html/message/workTicketCommon.html',
pageParam: {
id: messageId,
type: messageType,
messageId: messageId
}
});
break;
//完成工作票
case 5002:
api.openWin({
name: 'workTicket',
url: 'widget://html/feature/logQuery/workTicketDetail.html',
pageParam: {
ticketId: moreId,
messageId: messageId
}
});
}
})
}
// 跳转到详情页
ctrl.onTouchMessage = function(dom) {
// 如果是编辑模式 不跳转
if (this.editMode) {
this.checkedAMessage(dom);
return false;
}
$(dom).trigger('jump');
}
// 选择一个消息
ctrl.checkedAMessage = function(dom) {
var checkbox = $(dom).find('input[type="checkbox"]');
if (checkbox.is(':checked')) {
checkbox.removeAttr('checked');
} else {
checkbox.attr('checked', true);
}
ctrl.updateActBtn();
}
//显示消息前的拦截器,当处于体验模式下的话,需要替换配电室名称
ctrl.msgFilter = function(who, list) {
if ($api.getStorage('cus') && list && list.length > 0) {
//如果处于体验模式下,并且存在消息
switch (who) {
case "CUSTOM":
break;
case "REPAIR":
//拦截抢修管家消息
//抢修管家目前有两种2002及2001
for (var i = 0; i < list.length; i++) {
var msgEntity = list[i];
if (msgEntity.msg_type == "2002" || msgEntity.msg_type == "2001") {
if (/配电室/.test(msgEntity.msg_title)) {
msgEntity.msg_title = $api.guestPrName;
}
}
}
break;
case "INSPECT":
//拦截巡检管家消息
//巡检管家消息分两种只需要对msg_type为3002的巡检日志消息进行处理
//替换掉巡检日志的标题(即配电室名称)
for (var i = 0; i < list.length; i++) {
var msgEntity = list[i];
if (msgEntity.msg_type == "3002") {
msgEntity.msg_title = $api.guestPrName;
}
}
break;
case "OPERATE":
for (var i = 0; i < list.length; i++) {
var msgEntity = list[i];
if (msgEntity.msg_type == "4001" || msgEntity.msg_type == "4002") {
msgEntity.msg_title = $api.guestPrName;
}
}
break;
case "WORK":
for (var i = 0; i < list.length; i++) {
var msgEntity = list[i];
if (msgEntity.msg_type == "5001" || msgEntity.msg_type == "5002") {
msgEntity.msg_title = $api.guestPrName;
}
}
break;
case "REPORT":
for (var i = 0; i < list.length; i++) {
var msgEntity = list[i];
if (/配电室/.test(msgEntity.msg_title)) {
msgEntity.msg_title = $api.guestPrName;
}
}
break;
case "ALARM":
for (var i = 0; i < list.length; i++) {
var msgEntity = list[i];
if (/配电室/.test(msgEntity.msg_title)) {
msgEntity.msg_title = $api.guestPrName;
}
}
break;
}
}
};
//读取旧消息
ctrl.getOldMessages = function() {
var who = this.people[this.who];
var oldMaxId = this.oldMaxId;
messageDao.getOldMessages(who.messageTypes, this.page, this.pageSize, oldMaxId, function(list) {
if (list.length == 0) {
api.toast({
msg: '没有消息了'
})
ctrl.renderMessage([]);
} else {
//如果 oldMaxId/newMinId 未赋值 表示第一次加载 把最大的id赋值给他们 用于后面渲染是做比较
if (list[0]) {
if (!ctrl.newMinId || parseInt(ctrl.newMinId) < parseInt(list[0].msg_id)) {
ctrl.newMinId = list[0].msg_id;
}
if (!ctrl.oldMaxId) {
ctrl.oldMaxId = list[0].msg_id;
}
}
ctrl.renderMessage(list);
if (list[list.length - 1]) {
if (!ctrl.oldMaxId || parseInt(ctrl.oldMaxId) > parseInt(list[list.length - 1].msg_id)) {
ctrl.oldMaxId = list[list.length - 1].msg_id;
}
}
ctrl.page++;
}
})
}
//读取新消息
ctrl.getNewMessages = function() {
var who = this.people[this.who];
var newMinId = this.newMinId;
messageDao.getNewMessages(who.messageTypes, newMinId, function(list) {
if (list.length > 0) {
ctrl.newMinId = list[list.length - 1].msg_id;
ctrl.renderMessage(list);
}
})
}
//渲染消息
ctrl.renderMessage = function(list) {
//显示钱先拦截一遍
ctrl.msgFilter(ctrl.who, list);
switch (ctrl.who) {
case "CUSTOM":
ctrl.customRenderCallback(list);
break;
case "REPAIR":
ctrl.repairRenderCallback(list);
break;
case "INSPECT":
ctrl.inspectRenderCallback(list);
break;
case "OPERATE":
ctrl.operateRenderCallback(list);
break;
case "WORK":
ctrl.workRenderCallback(list);
break;
case 'REPORT':
ctrl.reportRenderCallback(list);
case 'ALARM':
ctrl.alarmRenderCallback(list);
}
//如果页面上没有消息 显示 空提示
if ($(".message").length == 0) {
$("#empty-tips").css("display", "block");
} else {
$("#empty-tips").css("display", "none");
}
ctrl.updateActBtn();
}
//往页面上添加消息
ctrl.appendMessage = function(id, message) {
if (parseInt(id) <= parseInt(ctrl.oldMaxId)) {
$("#list").append(message);
} else {
var messages = $(".message");
if (messages.length > 0) {
messages.eq(0).before(message);
} else {
$("#list").append(message);
}
}
}
//更新消息为已读
ctrl.updateMsgToIsRead = function(msgId) {
messageDao.updateMessageToIsRead(msgId);
}
var defaltMessagetpl = '';
defaltMessagetpl += '<div class="message bg-touch default-message {{what}} {{unRead}}" data-time="{{currentTime}}" data-message-type="{{messageType}}" data-more-id="{{moreId}}" data-message-id="{{messageId}}" >';
defaltMessagetpl += '<div class="check-panel"><div class="checkbox-group"><input type="checkbox" value="{{messageId}}"><label></label></div></div>';
defaltMessagetpl += '<div class="left"><div class="unread-badge"></div><div class="icon-con {{iconClass}}"><img src="{{iconSrc}}"></div></div>';
defaltMessagetpl += '<div class="middle">';
defaltMessagetpl += '<div class="msg_title">{{msgTitle}}</div>';
defaltMessagetpl += '<div class="message-content">{{content}}</div>';
defaltMessagetpl += '</div>';
defaltMessagetpl += '<div class="right">';
defaltMessagetpl += '<div class="time noWrap">{{time}}</div>';
defaltMessagetpl += '<div class="height4"></div>';
defaltMessagetpl += '<div class="text-align-r"><img class="more-arrow" src="../../image/arrow-right.png"></div>';
defaltMessagetpl += '</div>';
defaltMessagetpl += '</div>';
//渲染自定义消息列表
ctrl.customRenderCallback = function(list) {
var length = list.length;
var message = "";
for (var i = 0; i < length; i++) {
switch (parseInt(list[i].msg_type)) {
case 1001: //新闻
message = getNewsDOM(list[i]);
break;
default:
}
ctrl.appendMessage(list[i].msg_id, message);
}
//获取新闻dOM
function getNewsDOM(item) {
var newsTpl = '<div class="message bg-touch bee-message news-message {{what}} {{unRead}}" data-message-type="{{messageType}}" data-more-id="{{moreId}}" data-message-id="{{messageId}}">';
newsTpl += '<div class="check-panel"><div class="checkbox-group"><input type="checkbox" value="{{messageId}}"><label></label></div></div>'
newsTpl += '<div class="left">';
newsTpl += '<div class="msg_title">{{msgTitle}}</div>';
newsTpl += '<div class="message-content">{{content}}<span style="font-size:10px;color:#999">&nbsp;[{{time}}]</span> </div>';
newsTpl += '</div>';
newsTpl += '<div class="right"></div>';
newsTpl += '</div>';
var msgContent = null;
try {
msgContent = JSON.parse(item.msg_content);
} catch (e) {
msgContent = '';
}
var content = "";
if (msgContent) {
content += msgContent.content.slice(0, 40);
} else {
content = item.msg_content;
}
var time = CommonModel.formatDateTime(item.create_time);
var unRead = item.is_read == '1' ? "" : 'unread';
var msgTitle = (item.msg_title && item.msg_title != "null" && item.msg_title != "undefined") ? item.msg_title : "新闻";
var message = newsTpl.replace("{{what}}", "operate-message")
.replace(/{{messageId}}/g, item.msg_id)
.replace("{{messageType}}", item.msg_type)
.replace("{{unRead}}", unRead)
.replace("{{time}}", time)
.replace("{{moreId}}", item.content_id)
.replace("{{msgTitle}}", msgTitle)
.replace("{{content}}", content);
var dom = $(message);
if (msgContent && msgContent.pic) {
api.imageCache({
url: msgContent.pic,
thumbnail: false
}, function(ret, err) {
if (ret.status) {
dom.find(".right").html('<div class="img" style="background-image:url(' + ret.url + ')"></div>')
}
})
}
return dom;
}
}
//渲染抢修管家消息
ctrl.repairRenderCallback = function(list) {
var length = list.length;
for (var i = 0; i < length; i++) {
var msgTitle = (list[i].msg_title && list[i].msg_title != "null" && list[i].msg_title != "undefined") ? list[i].msg_title : "消息";
var unRead = list[i].is_read == '1' ? "" : 'unread';
var message = defaltMessagetpl.replace("{{what}}", "repair-message")
.replace(/{{messageId}}/g, list[i].msg_id)
.replace("{{messageType}}", list[i].msg_type)
.replace("{{unRead}}", unRead)
.replace("{{moreId}}", list[i].content_id)
.replace("{{msgTitle}}", msgTitle)
.replace("{{time}}", CommonModel.formatDateTime(list[i].create_time))
.replace("{{content}}", list[i].msg_content)
.replace("{{iconSrc}}", "../../image/message_icon_" + list[i].msg_type + '.svg')
.replace("{{iconClass}}", "icon_" + list[i].msg_type);
ctrl.appendMessage(list[i].msg_id, message);
}
}
//渲染巡检管家消息
ctrl.inspectRenderCallback = function(list) {
var length = list.length;
for (var i = 0; i < length; i++) {
var msgTitle = (list[i].msg_title && list[i].msg_title != "null" && list[i].msg_title != "undefined") ? list[i].msg_title : "消息";
var unRead = list[i].is_read == '1' ? "" : 'unread';
var message = defaltMessagetpl.replace("{{what}}", "inspect-message")
.replace(/{{messageId}}/g, list[i].msg_id)
.replace("{{messageType}}", list[i].msg_type)
.replace("{{unRead}}", unRead)
.replace("{{moreId}}", list[i].content_id)
.replace("{{msgTitle}}", msgTitle)
.replace("{{time}}", CommonModel.formatDateTime(list[i].create_time))
.replace("{{content}}", list[i].msg_content)
.replace("{{iconSrc}}", "../../image/message_icon_" + list[i].msg_type + '.svg')
.replace("{{iconClass}}", "icon_" + list[i].msg_type);
ctrl.appendMessage(list[i].msg_id, message);
}
}
// add by guoyuanyuan 2018/9/11
// 渲染报表管家消息
ctrl.reportRenderCallback = function(list) {
var length = list.length;
for (var i = 0; i < length; i++) {
var msgTitle = (list[i].msg_title && list[i].msg_title != "null" && list[i].msg_title != "undefined") ? list[i].msg_title : "消息";
var unRead = list[i].is_read == '1' ? "" : 'unread';
var message = defaltMessagetpl.replace("{{what}}", "report-message")
.replace(/{{messageId}}/g, list[i].msg_id)
.replace("{{messageType}}", list[i].msg_type)
.replace("{{unRead}}", unRead)
.replace("{{moreId}}", list[i].content_id)
.replace("{{msgTitle}}", msgTitle)
.replace("{{currentTime}}", list[i].create_time)
.replace("{{time}}", CommonModel.formatDateTime(list[i].create_time))
.replace("{{content}}", list[i].msg_content)
.replace("{{iconSrc}}", "../../image/message_icon_" + list[i].msg_type + '.svg')
.replace("{{iconClass}}", "icon_" + list[i].msg_type);
ctrl.appendMessage(list[i].msg_id, message);
}
}
// add by guoyuanyuan 2018/9/20
// 渲染报警管家消息
ctrl.alarmRenderCallback = function(list) {
var length = list.length;
for (var i = 0; i < length; i++) {
var msgTitle = (list[i].msg_title && list[i].msg_title != "null" && list[i].msg_title != "undefined") ? list[i].msg_title : "消息";
var unRead = list[i].is_read == '1' ? "" : 'unread';
var message = defaltMessagetpl.replace("{{what}}", "alarm-message")
.replace(/{{messageId}}/g, list[i].msg_id)
.replace("{{messageType}}", list[i].msg_type)
.replace("{{unRead}}", unRead)
.replace("{{moreId}}", list[i].content_id)
.replace("{{msgTitle}}", msgTitle)
.replace("{{currentTime}}", list[i].create_time)
.replace("{{time}}", CommonModel.formatDateTime(list[i].create_time))
.replace("{{content}}", list[i].msg_content)
.replace("{{iconSrc}}", '../../image/message_icon_6001.svg')
.replace("{{iconClass}}", "icon_" + list[i].msg_type);
ctrl.appendMessage(list[i].msg_id, message);
}
}
//操作票助手消息
ctrl.operateRenderCallback = function(list) {
var length = list.length;
for (var i = 0; i < length; i++) {
var msgTitle = (list[i].msg_title && (list[i].msg_title != "null" || list[i].msg_title != "undefined")) ? list[i].msg_title : "消息";
var unRead = list[i].is_read == '1' ? "" : 'unread';
var message = defaltMessagetpl.replace("{{what}}", "operate-message")
.replace(/{{messageId}}/g, list[i].msg_id)
.replace("{{messageType}}", list[i].msg_type)
.replace("{{unRead}}", unRead)
.replace("{{moreId}}", list[i].content_id)
.replace("{{msgTitle}}", msgTitle)
.replace("{{time}}", CommonModel.formatDateTime(list[i].create_time))
.replace("{{content}}", list[i].msg_content)
.replace("{{iconSrc}}", "../../image/message_icon_" + list[i].msg_type + '.svg')
.replace("{{iconClass}}", "icon_" + list[i].msg_type);
ctrl.appendMessage(list[i].msg_id, message);
}
}
//工作票助手消息
ctrl.workRenderCallback = function(list) {
var length = list.length;
for (var i = 0; i < length; i++) {
var msgTitle = (list[i].msg_title && (list[i].msg_title != "null" || list[i].msg_title != "undefined")) ? list[i].msg_title : "消息";
var unRead = list[i].is_read == '1' ? "" : 'unread';
var message = defaltMessagetpl.replace("{{what}}", "work-message")
.replace(/{{messageId}}/g, list[i].msg_id)
.replace("{{messageType}}", list[i].msg_type)
.replace("{{unRead}}", unRead)
.replace("{{moreId}}", list[i].content_id)
.replace("{{msgTitle}}", msgTitle)
.replace("{{time}}", CommonModel.formatDateTime(list[i].create_time))
.replace("{{content}}", list[i].msg_content)
.replace("{{iconSrc}}", "../../image/message_icon_" + list[i].msg_type + '.svg')
.replace("{{iconClass}}", "icon_" + list[i].msg_type);
ctrl.appendMessage(list[i].msg_id, message);
}
}
// 打开编辑模式
ctrl.openEditMode = function() {
$("body").addClass('edit-mode');
$('.message').removeClass('bg-touch');
$(".message input[type='checkbox']").removeAttr('checked');
this.updateActBtn();
this.editMode = true;
}
// 关闭编辑模式
ctrl.cancelEditMode = function() {
$("body").removeClass('edit-mode');
$('.message').addClass('bg-touch');
this.editMode = false;
}
// 更新全选按钮的状态
ctrl.updateActBtn = function() {
var messageLength = $(".message").length;
var checkedMessageLength = $(".message input[type='checkbox']:checked").length;
var checkedUnReadMessageLength = $(".message.unread input[type='checkbox']:checked").length;
// 如果处于编辑状态,页面上的选中条数也总条数不一样,显示全选按钮
var selectAllBtn = $("#select-all");
if (checkedMessageLength != messageLength) {
$("#select-all").data('select-all', 0).text('全选');
} else {
$("#select-all").data('select-all', 1).text('取消');
}
if (checkedUnReadMessageLength > 0) {
$('#mark-to-readed').removeClass('color-gray').addClass('color-green').data('useable', 1);
} else {
$('#mark-to-readed').removeClass('color-green').addClass('color-gray').data('useable', 0);
}
if (checkedMessageLength > 0) {
$('#remove').removeClass('color-gray').addClass('color-red').data('useable', 1);
} else {
$('#remove').removeClass('color-red').addClass('color-gray').data('useable', 0);
}
if (messageLength == 0) {
$("#act-panel").css('display', 'none');
}
}
// 批量删除消息
ctrl.removeMessages = function() {
var checkedMessage = $(".message input[type='checkbox']:checked");
var index = 0;
if (checkedMessage.length > 0) {
remove();
}
function remove() {
(function(index) {
var messageId = checkedMessage[index].value;
messageDao.deleteOne(messageId, function(ret) {
$(checkedMessage[index]).parents('.message').remove();
$(checkedMessage[index]).removeAttr('checked');
})
})(index)
index++;
if (index < checkedMessage.length) {
setTimeout(function() {
remove()
}, 100);
}
}
}
// 批量标记为已读
ctrl.markMessagesToReaded = function() {
var checkedMessage = $(".message.unread input[type='checkbox']:checked");
var index = 0;
if (checkedMessage.length > 0) {
mark();
}
function mark() {
(function(index) {
var messageId = checkedMessage[index].value;
messageDao.updateMessageToIsRead(messageId, function(ret) {
$(checkedMessage[index]).parents('.message').removeClass('unread');
$(checkedMessage[index]).removeAttr('checked');
})
})(index)
index++;
if (index < checkedMessage.length) {
setTimeout(function() {
mark()
}, 100);
}
}
}
ctrl.init();
}