383 lines
13 KiB
JavaScript
383 lines
13 KiB
JavaScript
|
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 = '<li class="bg-touch" data-id="{{cusId}}">{{projectName}}</li>';
|
|||
|
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 = '<div class="pr item" prid="{{prId}}">';
|
|||
|
tpl += '<div><div class="icon-con"><img src="../../image/black-pr-icon.png"></div>';
|
|||
|
tpl += '<div class="name">{{prName}}</div>';
|
|||
|
tpl += '</div>';
|
|||
|
tpl += '<div>';
|
|||
|
// tpl += '<div class="status">{{status}}</div>';
|
|||
|
tpl += '<div class="safe-content">安全运行 <span class="color-green days">{{days}}</span> 天</div>';
|
|||
|
tpl += '</div>';
|
|||
|
tpl += '</div>';
|
|||
|
|
|||
|
var powerRooms = [];
|
|||
|
for (var i = 0; i < length; i++) {
|
|||
|
var status = '<span class="color-green">正常</span>';
|
|||
|
|
|||
|
if (list[i].xjStatus == 1) {
|
|||
|
status = '<span class="color-yellow">巡检</span>';
|
|||
|
}
|
|||
|
|
|||
|
if (list[i].bjStatus == 1) {
|
|||
|
status = '<span class="color-red">故障</span>';
|
|||
|
}
|
|||
|
|
|||
|
if (list[i].qxStatus == 1) {
|
|||
|
status = '<span class="color-red">抢修</span>';
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
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();
|
|||
|
}
|