var startDateStr;
var endDateStr;
var ipStartTime;
var ipEndTime;
var lbStartTime;
var lbEndTime;
var alarmList;
var btnLocation;
var btnClassification;
var btnProcess;
var emptyTips;
var prId = '';
var prName = "unkown";
var currentPage = 0; //当前页数
var totalPages = 1;
var isLoading = false;
var requestArgs = {
startDate: null,
endDate: null,
alarmStatus: null, //null全部,"1"实时报警,"2"历史报警“
handleStatus: null, //null全部,0未处理,1处理中,2已完成,3已确认
location: null, //null全部,1高压侧,2低压侧,3变压器,4直流屏,5信号屏,6其他
page: 1,
pageSize: 10
}
/**
* 显示右侧边栏
*/
function showRightPanel() {
api.openDrawerPane({
type: 'right'
});
}
/**
* 弹出提示框
*/
function toast(msg) {
api.toast({
msg: msg,
duration: 3000,
locaiton: 'top'
});
}
// /**
// * 将字符型的日期解析为moment.js对象
// * @param {String} dateStr
// * @return {moment.js}
// */
// function parseDate(dateStr, format) {
// if (format) {
// return moment(dateStr, format);
// } else {
// return moment(dateStr);
// }
// }
// /**
// * 将moment对象格式化输出
// * @param {moment.js} date
// * @param {String} format
// * @return {String}
// */
// function momentFormat(date, format) {
// if (format) {
// return date.format(format);
// }
// return date.format("YYYY-MM-DD");
// }
/**
* 清空报警列表
*/
function clearAlarmList() {
$("#alarmList").empty();
}
/**
* 向界面中添加一条报警项
* @param {*} record
*/
function addAlarmItem(record) {
var template = "
{prName} {alarmDesc}
";
var alarmDesc = record.alarmDesc ? record.alarmDesc : "";
if ($api.getStorage('cus')) {
alarmDesc = alarmDesc.replace($api.guestKeysPattern, $api.guestName);
}
template = template.replace("{alarmId}", record.alarmId).replace("{orderId}", record.qxOrderId ? record.qxOrderId : '');
template = template.replace("{prName}", record.prName).replace("{alarmDesc}", record.alarmDesc);
template = template.replace("{time}", moment(record.alarmTime).format('YYYY-MM-DD'));
switch (record.handleStatus) {
case 0:
template = template.replace("{color}", "red");
template = template.replace("{status}", "未处理");
break;
case 1:
template = template.replace("{color}", "yellow");
template = template.replace("{status}", "处理中");
break;
case 2:
template = template.replace("{color}", "green");
template = template.replace("{status}", "已完成");
break;
case 3:
template = template.replace("{color}", "gray");
template = template.replace("{status}", "已确认");
break;
default:
break;
}
alarmList.append(template);
}
/**
* 查询报警
*/
function queryData() {
var url = '';
var data = {};
var isEmployee = $api.getStorage('isEmployee');
requestArgs.page = currentPage;
if (isEmployee) { // 员工登陆
url = '/ems/rest/alarm/page';
data = {
page: requestArgs.page,
pageSize: requestArgs.pageSize,
alarmStatus: requestArgs.alarmStatus,
handleStatus: requestArgs.handleStatus,
location: requestArgs.location,
employeeId: $api.getStorage('employeeId'),
roleId: $api.getStorage('roleId')
};
} else { // 客户登录
url = '/ems/rest/alarm/edpPage';
data = {
page: requestArgs.page,
pageSize: requestArgs.pageSize,
alarmStatus: requestArgs.alarmStatus,
handleStatus: requestArgs.handleStatus,
location: requestArgs.location,
prId: powerRoom.prId,
userType: $api.getStorage('userType')
};
};
if (startDateStr) {
data.startDate = (new Date(startDateStr.replace(/-/g, '/'))).getTime();
}
if (endDateStr) {
data.endDate = (new Date(endDateStr.replace(/-/g, '/'))).getTime();
}
if (prId) {
data.prId = prId;
}
var isLoading = true;
api.showProgress({
title: '载入中...',
text: '请稍后',
modal: false
});
$api.get(url, data, function(data, err) {
isLoading = false;
api.hideProgress();
if (err) {
toast("网络请求失败");
} else {
if (!data.code || data.code != "200" || !data.body) {
toast("服务器响应错误" + (data.code ? (",错误码:" + data.code) : ""));
} else {
totalPages = data.body.totalPages;
if (data.body.records.length && data.body.records.length > 0) {
emptyTips.hide();
for (var i = 0; i < data.body.records.length; i++) {
var record = data.body.records[i];
addAlarmItem(record);
}
} else {
//如果没有记录,则显示查询不到数据的提示
emptyTips.show();
}
}
}
});
}
/**
* 初始化分页参数,并查询历史报警
*/
function firstQuery() {
currentPage = 1;
clearAlarmList();
queryData();
}
/**
* 筛选条件发生变化
*/
function filterSelectionChanged(ret, err) {
var result = ret.value;
requestArgs.alarmStatus = result.alarmClasses; // 全部时效
requestArgs.handleStatus = result.af; // 全部状态
requestArgs.location = result.catalogType; // 全部位置
prId = result.prId; // 配电室
currentPage = 1;
btnLocation.attr("value", result.locName);
btnClassification.attr("value", result.alarmClassName);
btnProcess.attr("value", result.afName);
firstQuery();
}
apiready = function() {
var ctrl = {
init: {},
bind: {}
}
ctrl.init = function() {
// 适配安卓状态栏
CommonModel.fitInStatusBar();
var searcherTop = $('#heightHeader').height();
$('#searcher').css('top',searcherTop);
//设置分页初始值
currentPage = 1;
totalPages = 1;
powerRoom = $api.getStorage('powerRoom');
//获取prId
// prId = powerRoom.prId;
// requestArgs.prId = prId;
//获取prName
prName = powerRoom.prName;
ipStartTime = $("#ipStartTime");
lbStartTime = $("#lbStartTime");
ipEndTime = $("#ipEndTime");
lbEndTime = $("#lbEndTime");
alarmList = $("#alarmList");
btnLocation = $("#btn-location");
btnClassification = $("#btn-classification");
btnProcess = $("#btn-process");
emptyTips = $("#empty-tips");
ctrl.bind();
//筛选条件发生变化
api.addEventListener({
name: 'filterSelectionChanged'
}, filterSelectionChanged);
//用初始分页参数查询报警
firstQuery();
}
ctrl.bind = function() {
var height = $(window).height() - $("header").height() - $(".fix-top").height();
$(".alarmList-content").css("height", height);
//用户点击了返回按钮
$(".back").on("touchend", function() {
api.closeWin();
});
//用户点击了位置按钮
$("#btn-location").on("touchend", showRightPanel);
//用户点击了报警分类按钮
$("#btn-classification").on("touchend", showRightPanel);
//用户点击了处理状态按钮
$("#btn-process").on("touchend", showRightPanel);
//用户点击了筛选时效按钮
$("#btn-filter").on("touchend", showRightPanel);
//用户点击了查询按钮
$("#btn-query").on("touchend", firstQuery);
//监听日期选择器的改变事件
$("#ipStartTime").on("change", function() {
startDateStr = ipStartTime.val();
if (startDateStr && startDateStr != "") {
lbStartTime.html(startDateStr);
} else {
lbStartTime.html("开始日期");
}
});
//监听日期选择器的改变事件
$("#ipEndTime").on("change", function endDateChanged() {
endDateStr = ipEndTime.val();
if (endDateStr && endDateStr != "") {
lbEndTime.html(endDateStr);
} else {
lbEndTime.html("结束日期");
}
});
//点击报警
//如果已经生成抢修单 直接跳转到抢修单页
//如果没有 跳转到报警详情页
$("#alarmList").on("touchend", ".alarm", function() {
var alarmId = $(this).data("alarm-id");
var orderId = $(this).data("order-id");
if (orderId) {
api.openWin({
'name': 'repairDetail',
'url': 'widget://html/feature/logQuery/repairLogDetail.html',
'pageParam': {
id: orderId
}
})
} else {
api.openWin({
'name': 'alarmDetail',
'url': 'widget://html/feature/alarmDetail.html',
'pageParam': {
id: alarmId
}
})
}
})
//监听滚动到底部事件
api.addEventListener({
name: 'scrolltobottom',
extra: {
threshold: 0 //设置距离底部多少距离时触发,默认值为0,数字类型
}
}, function(ret, err) {
if (!isLoading) {
if (currentPage >= totalPages) {
toast("没有更多了");
return;
} else {
currentPage++;
queryData();
}
}
});
}
ctrl.init();
}