apiready = function () {
var ctrl = {
updateCycle: 30000,
uiList: null,
init: {},
bind: {},
initBadge: {},
initUiList: {},
getPr: {},
}
ctrl.init = function () {
moment.locale("zh-CN")
ctrl.bind();
ctrl.initProject(); // 初始化项目
ctrl.getPr();
privilegeModule.getMenuList(function () {
ctrl.initMessagerMenu(); // 初始化消息菜单
});
ctrl.initBadge();
ctrl.initLatestTime();
if (ctrl.timer) {
window.clearInterval(ctrl.timer);
}
ctrl.timer = setInterval(function () {
ctrl.getPr();
}, ctrl.updateCycle);
//获取消息
messageDao.updateData();
}
// 初始化项目信息
ctrl.initProject = function () {
// 如果是普通客户登录 不显示项目名和 下拉项目选择
var customers = $api.getStorage('customers');
// add s 2023/7/5
if (!customers) {
return
}
// add e
ctrl.customers = customers;
if (customers.length <= 1) {
$('#projectName').css('display', 'none');
} else {
$('#projectName').css('display', 'block');
// 初始化当前客户名(项目名)
var cusName = $api.getStorage('realName');
$('#projectName').text(cusName);
// 初始化项目列表
for (var i = 0; i < customers.length; i++) {
var str = '
{{projectName}}';
str = str.replace('{{cusId}}', customers[i].cusId)
.replace('{{projectName}}', customers[i].cusName);
$('#project-panel').append(str);
}
}
}
// 初始化消息菜单如抢修管家,巡检管家权限
ctrl.initMessagerMenu = function () {
if (!privilegeModule.hasMenu('抢修管家')) {
$('.repair-keeper').css('display', 'none');
}
if (!privilegeModule.hasMenu('巡检管家')) {
$('.inspect-keeper').css('display', 'none');
}
if (!privilegeModule.hasMenu('报表管家')) {
$('.report-keeper').css('display', 'none');
}
if (!privilegeModule.hasMenu('报警管家')) {
$('.alarm-keeper').css('display', 'none');
}
if (!privilegeModule.hasMenu('操作票助手')) {
$('.oper-ticket-assistantor').css('display', 'none');
}
if (!privilegeModule.hasMenu('工作票助手')) {
$('.work-ticket-assistantor').css('display', 'none');
}
if (!privilegeModule.hasMenu('电务小蜜蜂')) {
$('.bee').css('display', 'none');
}
}
ctrl.bind = function () {
// 防止退出后继续轮询
api.addEventListener({
name: 'loginout'
}, function (ret, err) {
window.clearInterval(ctrl.timer);
});
// 切换客户(项目)
$('#project-panel').on('touchend', 'li', function () {
var cusId = $(this).data('id');
var customers = ctrl.customers;
for (var i = 0; i < customers.length; i++) {
if (customers[i].cusId === cusId) {
$api.setStorageOfCus(customers[i]);
var cusName = customers[i].cusName;
$('#projectName').text(cusName); // 选择之后更新客户名
// 发送客户发生改变的消息
api.sendEvent({
name: 'projectChanged'
});
ctrl.getPr();
return;
}
}
})
//跳转到消息列表页
$(".messager").on("touchend", function () {
var type = $(this).data("type");
api.openWin({
name: 'messageList',
url: 'widget://html/message/messageList.html',
pageParam: {
type: type
}
});
})
//监听消息改变事件 初始化badge
api.addEventListener({
name: 'messageUpdated'
}, function (ret, err) {
ctrl.initBadge();
ctrl.initLatestTime();
});
// add by guoyuanyuan 2018/9/25
// 监听项目改变的消息 更新当前显示的项目
api.addEventListener({
name: 'requestChangeProject'
}, function (ret, err) {
$('#project-panel').css('display', 'block');
});
//如果body收到touchend事件 隐藏掉modal
$api.addEvt($api.dom("body"), "touchend", function () {
$api.css($api.dom("#project-panel"), "display:none");
}, false);
api.addEventListener({
name: 'requestCloseModal'
}, function (ret, err) {
$('#project-panel').css('display', 'none');
});
//下拉刷新
api.setRefreshHeaderInfo({
bgColor: "#CCCCCC",
textColor: "#FFFFFF"
}, function (ret, err) {
// 下拉刷新 隐藏掉项目下拉panel
$api.css($api.dom("#project-panel"), "display:none");
ctrl.initBadge();
ctrl.initLatestTime();
messageDao.updateData(function () {
api.refreshHeaderLoadDone();
})
})
}
//初始化页面的badge
ctrl.initBadge = function () {
//显示未读信息的条数
messageDao.getTypeUnReadCount(function (list) {
//先隐藏掉所有badge
$("#bee-badge").css("display", "none");
$("#repair-keeper-badge").css("display", "none");
// 报表管家
$("#report-keeper-badge").css("display", "none");
$("#alarm-keeper-badge").css("display", "none");
$("#inspect-keeper-badge").css("display", "none");
$("#oper-ticket-assistantor-badge").css("display", "none");
$("#work-ticket-assistantor-badge").css("display", "none");
var length = list.length;
for (var i = 0; i < length; i++) {
switch (parseInt(list[i].type)) {
case 10:
showBadge("bee-badge", list[i].sum);
break; //自定义消息
case 20:
showBadge("repair-keeper-badge", list[i].sum);
break; //抢修管家消息
case 30:
showBadge("inspect-keeper-badge", list[i].sum);
break; //巡检管家消息
case 40:
showBadge("oper-ticket-assistantor-badge", list[i].sum);
break; //操作票助手
case 50:
showBadge("work-ticket-assistantor-badge", list[i].sum);
break; //工作票助手
case 60:
showBadge("alarm-keeper-badge", list[i].sum);
break; //工作票助手
//报表管家
case 70:
showBadge("report-keeper-badge", list[i].sum);
break; //报表管家消息
}
}
})
function showBadge(id, sum) {
var text = sum;
if (sum == 0) {
$("#" + id).css("display", "none");
return false;
}
if (sum > 99) {
text = "99+";
}
$("#" + id).css("display", "block");
$("#" + id).text(text);
}
}
//初始化每类消息最新消息的时间
ctrl.initLatestTime = function () {
messageDao.getTypeLatestTime(function (list) {
//先清空时间
$("#bee-time").text("");
$("#repair-keeper-time").text("");
$("#inspect-keeper-time").text("");
$("#report-keeper-time").text("");
$("#alarm-keeper-time").text("");
$("#oper-ticket-assistantor-time").text("");
$("#work-ticket-assistantor-time").text("");
var length = list.length;
for (var i = 0; i < length; i++) {
switch (parseInt(list[i].type)) {
case 10:
showTime("bee-time", list[i].create_time);
break; //自定义消息
case 20:
showTime("repair-keeper-time", list[i].create_time);
break; //抢修管家消息
case 30:
showTime("inspect-keeper-time", list[i].create_time);
break; //巡检管家消息
case 40:
showTime("oper-ticket-assistantor-time", list[i].create_time);
break; //操作票助手
case 50:
showTime("work-ticket-assistantor-time", list[i].create_time);
break; //工作票助手
case 60:
showTime("alarm-keeper-time", list[i].create_time);
break; //报警管家
case 70:
showTime("report-keeper-time", list[i].create_time);
break; //报表管家消息
}
}
function showTime(dom, time) {
var content = CommonModel.formatDateTime(parseInt(time));
$("#" + dom).text(content);
}
})
}
//获取配电室并显示
ctrl.getPr = function () {
var data = {
cusId: $api.getStorage('cusId')
}
// 员工登陆
var isEmployee = $api.getStorage('isEmployee')
if (isEmployee) {
data = {
employeeId: $api.getStorage('employeeId'),
roleId: $api.getStorage('roleId')
}
}
/**
* 注意在客户体验模式下要拦截此接口的数据,另外在最外层的index.html中也有此接口的调用,如果需要修改,则两处都要该,别忘了
*/
$api.get("/ems/rest/power/room/list", data, function (ret, err) {
if (ret && ret.code == 200) {
//判断是否是体验账号,如果是体验账号,则对云端返回的数据进行拦截
if ($api.getStorage('cus')) {
//对云端返回的数据进行拦截
if (ret.body && ret.body.length > 0) {
for (var i = 0; i < ret.body.length; i++) {
// var prInfo = ret.body[i];
ret.body[i].prName = $api.guestPrName;
if (i > 0) {
ret.body[i].prName += (" #" + (i + 1));
}
}
}
}
render(ret.body);
}
});
function render(list) {
$('#pr-container').empty();
var length = list.length;
var tpl = '';
tpl += '
';
tpl += '
{{prName}}
';
tpl += '
';
tpl += '
';
// tpl += '
{{status}}
';
tpl += '
安全运行 {{days}} 天
';
tpl += '
';
tpl += '
';
var powerRooms = [];
for (var i = 0; i < length; i++) {
var status = '正常';
if (list[i].xjStatus == 1) {
status = '巡检';
}
if (list[i].bjStatus == 1) {
status = '故障';
}
if (list[i].qxStatus == 1) {
status = '抢修';
}
var dom = $api.dom('.pr[prid="' + list[i].prId + '"]');
if (dom) {
// $api.html($api.dom(dom, ".status"), status);
$api.html($api.dom(dom, ".days"), list[i].safetyDay);
} else {
var item = tpl.replace('{{prId}}', list[i].prId)
.replace('{{prName}}', list[i].prName)
// .replace('{{status}}', status)
.replace('{{days}}', list[i].safetyDay);
$api.append($api.dom('#pr-container'), item);
}
//保存最新的配电室列表
powerRooms.push({
"prId": list[i].prId,
"prName": list[i].prName,
"configId": list[i].configId
})
}
if ($api.getStorage('cus')) {
if (powerRooms.length > 0) {
$api.setStorage("prList", powerRooms);
}
$api.setStorage("powerRoom", powerRooms[0]);
}
}
}
ctrl.init();
}