420 lines
12 KiB
JavaScript
420 lines
12 KiB
JavaScript
|
apiready = function () {
|
|||
|
|
|||
|
app = {
|
|||
|
init: {},
|
|||
|
bind: {},
|
|||
|
initUser: {},
|
|||
|
initDB: {},
|
|||
|
jump: {}, // 跳转
|
|||
|
getMessages: {},
|
|||
|
listenMessage: {},
|
|||
|
unListenMessage: {},
|
|||
|
getPowerRooms: {},
|
|||
|
getPowerRoomsByEmployee: {},// 员工登陆,获取配电室列表
|
|||
|
getAlarmList: {}
|
|||
|
}
|
|||
|
|
|||
|
app.init = function () {
|
|||
|
this.bind();
|
|||
|
// 初始化数据库
|
|||
|
this.initDB(this.jump);
|
|||
|
}
|
|||
|
|
|||
|
// 事件绑定
|
|||
|
app.bind = function () {
|
|||
|
//应用回到前台之后 获取消息
|
|||
|
api.addEventListener({
|
|||
|
name: 'resume'
|
|||
|
}, function (ret, err) {
|
|||
|
if ($api.getStorage("userId")) {
|
|||
|
app.getMessages();
|
|||
|
}
|
|||
|
});
|
|||
|
// 收到登录成功的消息 初始化客户
|
|||
|
api.addEventListener({
|
|||
|
name: 'logined'
|
|||
|
}, function (ret, err) {
|
|||
|
$api.disabledRequest = false; // 取消禁止调用接口标志
|
|||
|
// edit start 2023/2/27
|
|||
|
if ($api.getStorage("userType") == 2) {
|
|||
|
app.getPowerRoomsByEmployee();
|
|||
|
app.getAlarmList();
|
|||
|
|
|||
|
return
|
|||
|
}
|
|||
|
// edit end 2023/2/27
|
|||
|
app.initUser();
|
|||
|
});
|
|||
|
|
|||
|
// 收到登录失败的消息 1、清空客户消息 2、取消监听推送 3、重置badge(ios有效)
|
|||
|
api.addEventListener({
|
|||
|
name: 'loginout'
|
|||
|
}, function (ret, err) {
|
|||
|
if (rtAlarmTimer) {
|
|||
|
clearInterval(rtAlarmTimer);
|
|||
|
}
|
|||
|
|
|||
|
// add start 2019/4/29 kangzhi
|
|||
|
// 在清除所有的storage信息时,若选择了记住密码,则重新存储账号密码
|
|||
|
var remember = $api.getStorage('remember');
|
|||
|
var account = $api.getStorage('account');
|
|||
|
var password = $api.getStorage('password');
|
|||
|
// add end 2019/4/29 kangzhi
|
|||
|
|
|||
|
$api.clearStorage();
|
|||
|
|
|||
|
// add start 2019/4/29 kangzhi
|
|||
|
if (remember) {
|
|||
|
$api.setStorage('remember', remember);
|
|||
|
$api.setStorage("account", account);
|
|||
|
$api.setStorage("password", password);
|
|||
|
}
|
|||
|
// add end 2019/4/29 kangzhi
|
|||
|
|
|||
|
app.unListenMessage();
|
|||
|
api.setAppIconBadge({
|
|||
|
badge: 0
|
|||
|
});
|
|||
|
});
|
|||
|
|
|||
|
api.addEventListener({
|
|||
|
name: 'removeMessage',
|
|||
|
}, function (ret, err) {
|
|||
|
if (ret) {
|
|||
|
var messageId = ret.value.messageId;
|
|||
|
|
|||
|
if (messageId) {
|
|||
|
messageDao.deleteOne(messageId);
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
// add by guoyuanyuan 2018/9/25
|
|||
|
// 监听客户改变的消息(项目改变)
|
|||
|
api.addEventListener({
|
|||
|
name: 'projectChanged'
|
|||
|
}, function (ret, err) {
|
|||
|
app.getPowerRooms();
|
|||
|
app.getAlarmList();
|
|||
|
});
|
|||
|
|
|||
|
// add s 2023/7/20
|
|||
|
// 员工登陆时,角色切换
|
|||
|
// api.addEventListener({
|
|||
|
// name: 'roleChanged'
|
|||
|
// }, function (ret, err) {
|
|||
|
// app.getPowerRooms();
|
|||
|
// app.getAlarmList();
|
|||
|
// });
|
|||
|
}
|
|||
|
|
|||
|
//初始化用户
|
|||
|
app.initUser = function () {
|
|||
|
messageDao.initTable(app.getMessages);
|
|||
|
app.listenMessage();
|
|||
|
app.getPowerRooms();
|
|||
|
app.getAlarmList();
|
|||
|
}
|
|||
|
|
|||
|
//初始化数据库
|
|||
|
app.initDB = function (callback) {
|
|||
|
messageDao.initTable(function (ret, err) {
|
|||
|
|
|||
|
if (!err) {
|
|||
|
|
|||
|
// 创建message表
|
|||
|
userMaxMessageIdDao.initTable(function (ret, err) {
|
|||
|
messageDao.getMaxIds(function (list) {
|
|||
|
for (var i = 0; i < list.length; i++) {
|
|||
|
userMaxMessageIdDao.updateUserMessageId(list[i].user_id, list[i].msg_id, function (ret, err) {
|
|||
|
|
|||
|
});
|
|||
|
}
|
|||
|
setTimeout(function () {
|
|||
|
if (callback) {
|
|||
|
callback();
|
|||
|
}
|
|||
|
}, 100);
|
|||
|
|
|||
|
})
|
|||
|
});
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
// 初始化完成之后 跳转
|
|||
|
app.jump = function () {
|
|||
|
//标识已经登陆过,直接跳转到登陆后的首页
|
|||
|
var useId = $api.getStorage('userId');
|
|||
|
|
|||
|
if ($api.getStorage("token") && !$api.disabledRequest && useId) {
|
|||
|
app.getAlarmList();
|
|||
|
var edge = api.winWidth * 0.2;
|
|||
|
(edge < 0) && (edge = 60);
|
|||
|
api.openDrawerLayout({
|
|||
|
name: 'index',
|
|||
|
url: 'widget://html/index/index.html',
|
|||
|
leftPane: {
|
|||
|
edge: edge,
|
|||
|
name: 'index.leftPanel',
|
|||
|
url: 'widget://html/index/leftPanel.html'
|
|||
|
},
|
|||
|
reload: true,
|
|||
|
slidBackEnabled: false,
|
|||
|
animation: {
|
|||
|
type: "fade",
|
|||
|
duration: 300
|
|||
|
}
|
|||
|
});
|
|||
|
} else {
|
|||
|
//没有登陆的话,跳转到登陆页面
|
|||
|
api.openWin({
|
|||
|
name: 'login',
|
|||
|
url: 'widget://html/user/login.html',
|
|||
|
animation: {
|
|||
|
type: 'fade'
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//从数据库上获取消息并保存到本地
|
|||
|
app.getMessages = function () {
|
|||
|
messageDao.updateData();
|
|||
|
}
|
|||
|
|
|||
|
//监听消息推送
|
|||
|
app.listenMessage = function () {
|
|||
|
|
|||
|
var ajpush = api.require('ajpush');
|
|||
|
|
|||
|
//如果是android 初始化jpush
|
|||
|
if (api.systemType == "android") {
|
|||
|
ajpush.setAuth({
|
|||
|
auth:true
|
|||
|
},function(ret) {
|
|||
|
if (ret && ret.status){
|
|||
|
//success
|
|||
|
console.log(ret.status, 'status')
|
|||
|
ajpush.init(function (ret) {
|
|||
|
if (ret && ret.status) {
|
|||
|
console.log(ret.status, 'ret.status')
|
|||
|
ajpush.getRegistrationId(function (ret) {
|
|||
|
var registrationId = ret.id;
|
|||
|
});
|
|||
|
listen();
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
});
|
|||
|
} else {
|
|||
|
listen();
|
|||
|
}
|
|||
|
|
|||
|
function listen() {
|
|||
|
var userId = $api.getStorage("userId");
|
|||
|
var alias = 'CUSTOMER_' + userId;
|
|||
|
var tags = ['CUSTOMER', alias];
|
|||
|
var param = {
|
|||
|
alias: alias,
|
|||
|
// tags: tags
|
|||
|
};
|
|||
|
|
|||
|
ajpush.resumePush(function (ret) {
|
|||
|
if (ret && ret.status) {
|
|||
|
var count = 0
|
|||
|
var bindInterval = setInterval(function () {
|
|||
|
ajpush.bindAliasAndTags(param, function (ret, err) {
|
|||
|
count++;
|
|||
|
ajpush.setListener(function (ret) {
|
|||
|
messageDao.updateData();
|
|||
|
});
|
|||
|
if (ret && ret.statusCode != 6002) {
|
|||
|
clearInterval(bindInterval)
|
|||
|
}
|
|||
|
if (count > 3) {
|
|||
|
clearInterval(bindInterval)
|
|||
|
}
|
|||
|
});
|
|||
|
}, 5000)
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
// ajpush.resumePush(function (ret) {
|
|||
|
// if (ret && ret.status) {
|
|||
|
// ajpush.bindAliasAndTags(param, function (ret, err) {
|
|||
|
// ajpush.setListener(function (ret) {
|
|||
|
// messageDao.updateData();
|
|||
|
// });
|
|||
|
// });
|
|||
|
// }
|
|||
|
// });
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//取消监听消息推送
|
|||
|
app.unListenMessage = function () {
|
|||
|
var ajpush = api.require('ajpush');
|
|||
|
ajpush.removeListener();
|
|||
|
ajpush.stopPush(function (ret) {
|
|||
|
if (ret && ret.status) {
|
|||
|
//success
|
|||
|
// console.log('out123')
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
//获取配电室列表
|
|||
|
app.getPowerRooms = function () {
|
|||
|
|
|||
|
var url = "/ems/rest/power/room/list";
|
|||
|
var data = {
|
|||
|
"cusId": $api.getStorage("cusId")
|
|||
|
}
|
|||
|
|
|||
|
$api.get(url, data, callback);
|
|||
|
|
|||
|
function callback(ret, err) {
|
|||
|
if (!err) {
|
|||
|
// 先更新体验客户名
|
|||
|
var guestPrName = $api.guestPrName;
|
|||
|
//判断是否是体验账号,如果是体验账号,则对云端返回的数据进行拦截
|
|||
|
var cus = $api.getStorage('cus');
|
|||
|
var powerRooms = [];
|
|||
|
|
|||
|
var list = ret.body;
|
|||
|
var length = list.length;
|
|||
|
for (var i = 0; i < length; i++) {
|
|||
|
if (cus) {
|
|||
|
list[i].prName = guestPrName;
|
|||
|
}
|
|||
|
powerRooms.push({
|
|||
|
"prId": list[i].prId,
|
|||
|
"prName": list[i].prName,
|
|||
|
"configId": list[i].configId,
|
|||
|
})
|
|||
|
}
|
|||
|
if (length > 0) {
|
|||
|
$api.setStorage("prList", powerRooms);
|
|||
|
$api.setStorage("powerRoom", powerRooms[0]);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
// 员工登陆 获取配电室列表
|
|||
|
//获取配电室列表
|
|||
|
app.getPowerRoomsByEmployee = function () {
|
|||
|
|
|||
|
var url = "/ems/rest/power/room/page";
|
|||
|
var data = {
|
|||
|
"employeeId": $api.getStorage("employeeId"),
|
|||
|
"roleId": $api.getStorage("roleId"),
|
|||
|
"page": 1,
|
|||
|
"pageSize": 9999
|
|||
|
}
|
|||
|
|
|||
|
$api.get(url, data, callback);
|
|||
|
|
|||
|
function callback(ret, err) {
|
|||
|
if (!err) {
|
|||
|
// 先更新体验客户名
|
|||
|
var guestPrName = $api.guestPrName;
|
|||
|
//判断是否是体验账号,如果是体验账号,则对云端返回的数据进行拦截
|
|||
|
var cus = $api.getStorage('cus');
|
|||
|
var powerRooms = [];
|
|||
|
|
|||
|
var list = ret.body.records;
|
|||
|
var length = list.length;
|
|||
|
for (var i = 0; i < length; i++) {
|
|||
|
if (cus) {
|
|||
|
list[i].prName = guestPrName;
|
|||
|
}
|
|||
|
powerRooms.push({
|
|||
|
"prId": list[i].prId,
|
|||
|
"prName": list[i].prName,
|
|||
|
"configId": list[i].configId,
|
|||
|
})
|
|||
|
}
|
|||
|
if (length > 0) {
|
|||
|
$api.setStorage("prList", powerRooms);
|
|||
|
$api.setStorage("powerRoom", powerRooms[0]);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
//获取实时报警列表
|
|||
|
var rtAlarmTimer;
|
|||
|
app.getAlarmList = function () {
|
|||
|
get();
|
|||
|
if (rtAlarmTimer) {
|
|||
|
|
|||
|
clearInterval(rtAlarmTimer);
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
rtAlarmTimer = window.setInterval(function () {
|
|||
|
|
|||
|
get();
|
|||
|
|
|||
|
}, 10000);
|
|||
|
|
|||
|
//避免重复监听
|
|||
|
api.removeEventListener({
|
|||
|
name: 'requestRtAlarm'
|
|||
|
});
|
|||
|
|
|||
|
api.addEventListener({
|
|||
|
name: 'requestRtAlarm'
|
|||
|
}, function (ret, err) {
|
|||
|
get();
|
|||
|
});
|
|||
|
|
|||
|
function get() {
|
|||
|
var url = '/ems/rest/alarm/page';
|
|||
|
|
|||
|
var data = {
|
|||
|
"page": 1,
|
|||
|
"pageSize": 999999,
|
|||
|
"cusId": $api.getStorage('cusId'),
|
|||
|
"alarmStatus": 1 // 实时报警
|
|||
|
};
|
|||
|
|
|||
|
// add s 2023/7/10
|
|||
|
if ($api.getStorage("userType") == 2) { // 员工
|
|||
|
data = {
|
|||
|
"employeeId": $api.getStorage("employeeId"),
|
|||
|
"roleId": $api.getStorage("roleId"),
|
|||
|
"page": 1,
|
|||
|
"pageSize": 999999,
|
|||
|
"alarmStatus": 1 // 实时报警
|
|||
|
}
|
|||
|
}
|
|||
|
// add e 2023/7/10
|
|||
|
|
|||
|
$api.get(url, data, function (res, err) {
|
|||
|
if (res && res.code == 200) {
|
|||
|
|
|||
|
$api.setStorage('rtAlarmList', res.body.records);
|
|||
|
|
|||
|
//发出登录成功的消息
|
|||
|
api.sendEvent({
|
|||
|
name: 'rtAlarmListUpdated'
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
});
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
app.init();
|
|||
|
}
|