359 lines
10 KiB
JavaScript
359 lines
10 KiB
JavaScript
|
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 = "<div class=\"alarm bg-touch\" data-alarm-id=\"{alarmId}\" data-order-id=\"{orderId}\"><div class=\"left\"><div class=\"icon-con\"><img src=\"../../image/black-pr-icon.png\"></div><div class=\"content font1\"><div class=\"pr-name-con\"><span class=\"pr-name\">{prName}</span> <img src=\"../../image/red-alarm-icon.png\"></div><div class=\"width100 ellipsis color-title\">{alarmDesc}</div></div></div><div class=\"right text-align-r\"><div class=\"color-title\">{time}</div><div class=\"height4\"></div><div class=\"text-{color}\">{status}</div></div></div>";
|
|||
|
|
|||
|
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();
|
|||
|
}
|