404 lines
12 KiB
JavaScript
404 lines
12 KiB
JavaScript
|
apiready = function () {
|
|||
|
var ctrl = {
|
|||
|
init: {},
|
|||
|
bind: {},
|
|||
|
backCallback: {},
|
|||
|
|
|||
|
// 当前展示的tab 页类型,msg:配电室资料 detail:任务详情
|
|||
|
tabType: 'detail',
|
|||
|
baseUrl: '',
|
|||
|
|
|||
|
prid: null,
|
|||
|
taskId: null,
|
|||
|
qxorderid: null,
|
|||
|
prefix: '', // 服务器图片基础路径
|
|||
|
|
|||
|
qxAccept: '0', // 当前抢修任务是否已经接单 0:否,1:是
|
|||
|
}
|
|||
|
|
|||
|
ctrl.init = function () {
|
|||
|
// 适配安卓状态栏
|
|||
|
CommonModel.fitInStatusBar();
|
|||
|
|
|||
|
ctrl.bind();
|
|||
|
|
|||
|
api.showProgress({
|
|||
|
title: '载入中...',
|
|||
|
text: '请稍后',
|
|||
|
modal: false
|
|||
|
});
|
|||
|
|
|||
|
ctrl.qxorderid = api.pageParam.qxorderid;
|
|||
|
ctrl.prid = api.pageParam.prid;
|
|||
|
ctrl.qxAccept = $api.getStorage('qxAccept' + ctrl.qxorderid);
|
|||
|
|
|||
|
ctrl.getQxOrderDetail()
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
ctrl.bind = function () {
|
|||
|
|
|||
|
var height = $(window).height() - $("header").height() - $(".tabs").height();
|
|||
|
$(".content-container").css("height", height);
|
|||
|
//绑定返回按钮
|
|||
|
$api.addEvt($api.dom("#back"), "touchend", function () {
|
|||
|
ctrl.backCallback();
|
|||
|
})
|
|||
|
|
|||
|
//点击系统返回按钮
|
|||
|
api.addEventListener({
|
|||
|
name: 'keyback'
|
|||
|
}, function (ret, err) {
|
|||
|
ctrl.backCallback();
|
|||
|
});
|
|||
|
|
|||
|
//点击任务详情tab
|
|||
|
$api.addEvt($api.dom("#order-detail-tab"), "touchend", function () {
|
|||
|
if (ctrl.tabType == 'detail') {
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
$api.addCls(this, "active");
|
|||
|
$api.removeCls($api.dom("#pr-msg-tab"), "active");
|
|||
|
$api.removeCls($api.dom("#task-log-tab"), "active");
|
|||
|
$api.css($api.dom("#order-detail-panel"), 'display:block');
|
|||
|
$api.css($api.dom("#pr-msg-panel"), 'display:none');
|
|||
|
$api.css($api.dom("#task-log-panel"), 'display:none');
|
|||
|
|
|||
|
ctrl.tabType = 'detail'
|
|||
|
|
|||
|
// 初始化任务详情 tab
|
|||
|
ctrl.getQxOrderDetail();
|
|||
|
|
|||
|
}, false);
|
|||
|
|
|||
|
//点击配电室资料tab按钮
|
|||
|
$api.addEvt($api.dom("#pr-msg-tab"), "touchend", function () {
|
|||
|
if (ctrl.tabType == 'msg') {
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
$api.addCls(this, "active");
|
|||
|
$api.removeCls($api.dom("#order-detail-tab"), "active");
|
|||
|
$api.removeCls($api.dom("#task-log-tab"), "active");
|
|||
|
$api.css($api.dom("#pr-msg-panel"), 'display:block');
|
|||
|
$api.css($api.dom("#order-detail-panel"), 'display:none');
|
|||
|
$api.css($api.dom("#task-log-panel"), 'display:none');
|
|||
|
|
|||
|
ctrl.tabType = 'msg'
|
|||
|
|
|||
|
ctrl.initPrMsgTab()
|
|||
|
}, false);
|
|||
|
|
|||
|
/*
|
|||
|
====================任务详情 tab 中相关事件====================
|
|||
|
*/
|
|||
|
|
|||
|
// 点击预览图片 关闭预览
|
|||
|
$('#pic-review').on("touchend", function () {
|
|||
|
$(this).css('display', 'none')
|
|||
|
})
|
|||
|
|
|||
|
/*
|
|||
|
====================配电室资料 tab 相关事件====================
|
|||
|
*/
|
|||
|
// 点击配电室资料列表 ,在线浏览 pdf
|
|||
|
$("#pr-msg-list").on("touchend", ".pr-msg-list-item", function () {
|
|||
|
|
|||
|
var url = ctrl.baseUrl + $(this).data("url");
|
|||
|
|
|||
|
api.download({
|
|||
|
url: url, // 填写要下载文档的url
|
|||
|
report: true,
|
|||
|
cache: true,
|
|||
|
allowResume: true
|
|||
|
}, function (ret, err) {
|
|||
|
if (ret.state == 1) { //下载成功
|
|||
|
|
|||
|
var superFile = api.require('superFile');
|
|||
|
superFile.open({
|
|||
|
path: ret.savePath,
|
|||
|
})
|
|||
|
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
})
|
|||
|
|
|||
|
|
|||
|
//点击开始抢修按钮
|
|||
|
$api.addEvt($api.dom("#start-repair-btn"), "touchend", function () {
|
|||
|
// 判断当前抢修单时候已经接单
|
|||
|
if (ctrl.qxAccept == '1') { // 已经被接单
|
|||
|
// 跳转到抢修详情内容页
|
|||
|
api.openWin({
|
|||
|
name: 'repairProblem',
|
|||
|
url: './repairProblem.html',
|
|||
|
pageParam: {
|
|||
|
prid: ctrl.prid,
|
|||
|
taskid: ctrl.taskId,
|
|||
|
qxorderid: ctrl.qxorderid
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
return;
|
|||
|
}
|
|||
|
ctrl.handleStartRepair()
|
|||
|
})
|
|||
|
|
|||
|
}
|
|||
|
/**
|
|||
|
* 弹出提示框
|
|||
|
*/
|
|||
|
|
|||
|
ctrl.toast = function (msg) {
|
|||
|
api.toast({
|
|||
|
msg: msg,
|
|||
|
duration: 3000,
|
|||
|
locaiton: 'top'
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
ctrl.backCallback = function () {
|
|||
|
//关闭首页正在加载的提示框
|
|||
|
api.execScript({
|
|||
|
name: 'index',
|
|||
|
frameName: 'featureFrame',
|
|||
|
script: "api.hideProgress();"
|
|||
|
});
|
|||
|
api.setScreenOrientation({
|
|||
|
orientation: 'auto_portrait'
|
|||
|
});
|
|||
|
api.setFullScreen({
|
|||
|
fullScreen: false
|
|||
|
});
|
|||
|
api.closeWin({});
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
===================任务详情 tab 相关==============
|
|||
|
*/
|
|||
|
//获取抢修任务详情
|
|||
|
ctrl.getQxOrderDetail = function () {
|
|||
|
//显示载入动画
|
|||
|
api.showProgress({
|
|||
|
title: '载入中...',
|
|||
|
text: '请稍后',
|
|||
|
modal: false
|
|||
|
});
|
|||
|
|
|||
|
var url = '/ems/rest/qx/order';
|
|||
|
var data = {
|
|||
|
"qxOrderId": ctrl.qxorderid,
|
|||
|
};
|
|||
|
|
|||
|
$api.get(url, data, function (res, err) {
|
|||
|
//隐藏载入动画
|
|||
|
api.hideProgress();
|
|||
|
if (err) {
|
|||
|
ctrl.toast("网络请求失败");
|
|||
|
} else {
|
|||
|
if (!res.code || res.code != 200) {
|
|||
|
ctrl.toast("服务器响应错误" + (res.code ? (",错误码:" + res.code) : ""));
|
|||
|
} else {
|
|||
|
ctrl.taskId = res.body.qxTasks[0]['taskId'];
|
|||
|
ctrl.prefix = res.prefix;
|
|||
|
// 当前抢修任务已经被接单
|
|||
|
if (res.body.qxTasks && res.body.qxTasks[0]['acceptTime']) {
|
|||
|
ctrl.qxAccept = '1';
|
|||
|
$api.getStorage('qxAccept' + ctrl.qxorderid)? null : $api.setStorage('qxAccept' + ctrl.qxorderid, '1');
|
|||
|
|
|||
|
if (res.body.qxTasks[0]['completeTime']) { // 若当前抢修单已经完成,隐藏“开始抢修”按钮
|
|||
|
$('#start-repair-btn').css('display', 'none');
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
ctrl.renderQxOrderDetail(res.body);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
// 渲染任务详情
|
|||
|
ctrl.renderQxOrderDetail = function (data) {
|
|||
|
// 抢修方案
|
|||
|
$('#qx-programme .content').text(data.qxProgramme || '没有抢修方案');
|
|||
|
|
|||
|
// 问题描述
|
|||
|
$('#qx-desc .content').text(data.orderDesc);
|
|||
|
|
|||
|
// 现场照片
|
|||
|
var pics = data.xjPicture ? data.xjPicture.split(',') : [];
|
|||
|
var pciCount = pics.length;
|
|||
|
$('#pic-count').text(pciCount);
|
|||
|
|
|||
|
var picDom = '';
|
|||
|
pics.forEach(function (item, index) {
|
|||
|
var tpl = '<span class="pic-item"><i></i><img src="{{src}}" alt=""></span>';
|
|||
|
tpl.replace('{{src}}', ctrl.prefix + item);
|
|||
|
picDom += tpl;
|
|||
|
})
|
|||
|
|
|||
|
// 点击图片预览
|
|||
|
$("#pic-content .pic-item").on("touchend", "img", function (e) {
|
|||
|
e.stopPropagation();
|
|||
|
var src = $(this).attr('src')
|
|||
|
|
|||
|
$('#pic-review img').attr('src', src)
|
|||
|
$('#pic-review').css('display', 'block')
|
|||
|
})
|
|||
|
|
|||
|
$('#pic-content').prepend(picDom);
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
====================配电室资料 tab 相关===================
|
|||
|
*/
|
|||
|
// 初始化 配电室资料 tab
|
|||
|
ctrl.initPrMsgTab = function () {
|
|||
|
ctrl.getPrMsg()
|
|||
|
ctrl.getPrMsgList()
|
|||
|
}
|
|||
|
|
|||
|
// 获取配电室信息
|
|||
|
ctrl.getPrMsg = function () {
|
|||
|
api.showProgress({
|
|||
|
title: '载入中...',
|
|||
|
text: '请稍后',
|
|||
|
modal: false
|
|||
|
});
|
|||
|
|
|||
|
var url = "/ems/rest/power/room/detail";
|
|||
|
var data = {
|
|||
|
prId: ctrl.prid,
|
|||
|
}
|
|||
|
$api.get(url, data, function (res, err) {
|
|||
|
api.hideProgress();
|
|||
|
|
|||
|
if (err) {
|
|||
|
ctrl.toast("网络请求失败");
|
|||
|
} else {
|
|||
|
if (res.code == 200) {
|
|||
|
ctrl.renderPrMsg(res.body);
|
|||
|
} else {
|
|||
|
ctrl.toast("服务器响应错误" + (res.code ? (",错误码:" + res.code) : ""));
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
// 渲染配电室信息panel
|
|||
|
ctrl.renderPrMsg = function (data) {
|
|||
|
|
|||
|
$('#pr-msg').empty();
|
|||
|
|
|||
|
var tpl = '';
|
|||
|
tpl += '<p>配电室联系人:{{people}}</p>';
|
|||
|
tpl += '<p>联系人电话:{{tel}}</p>';
|
|||
|
tpl += '<p>配电室位置:{{province}} {{city}} {{address}}</p>';
|
|||
|
|
|||
|
var dom = tpl.replace('{{people}}', data.lxr1)
|
|||
|
.replace('{{tel}}', data.lxr1Mobile)
|
|||
|
.replace('{{province}}', data.province)
|
|||
|
.replace('{{city}}', data.city)
|
|||
|
.replace('{{address}}', data.address)
|
|||
|
|
|||
|
$api.html($api.dom('#pr-msg'), dom);
|
|||
|
}
|
|||
|
|
|||
|
// 获取配电室资料列表
|
|||
|
ctrl.getPrMsgList = function () {
|
|||
|
var url = "/ems/rest/pr/file/list";
|
|||
|
var data = {
|
|||
|
prId: ctrl.prid,
|
|||
|
}
|
|||
|
$api.get(url, data, function (res, err) {
|
|||
|
|
|||
|
if (err) {
|
|||
|
ctrl.toast("网络请求失败");
|
|||
|
} else {
|
|||
|
if (res.code == 200 && res.body) {
|
|||
|
var length = res.body.length;
|
|||
|
|
|||
|
ctrl.baseUrl = res.prefix;
|
|||
|
|
|||
|
$('#pr-msg-list').empty();
|
|||
|
|
|||
|
for (var i = 0; i < length; i++) {
|
|||
|
var listItem = res.body[i]
|
|||
|
$api.append($api.dom('#pr-msg-list'), ctrl.getPrMsgListDOM(listItem));
|
|||
|
}
|
|||
|
} else {
|
|||
|
ctrl.toast("服务器响应错误" + (res.code ? (",错误码:" + res.code) : ""));
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
// 渲染配电室信息列表
|
|||
|
ctrl.getPrMsgListDOM = function (listItem) {
|
|||
|
|
|||
|
var tpl = '';
|
|||
|
|
|||
|
tpl += '<div class="item bg-touch pr-msg-list-item" data-url="{{url}}">'
|
|||
|
tpl += '<div class="nav">'
|
|||
|
tpl += '<span class="pr-name">{{name}}</span>'
|
|||
|
tpl += '<span class="date-time color-title">详情</span>'
|
|||
|
tpl += '</div>'
|
|||
|
tpl += '</div>'
|
|||
|
|
|||
|
var dom = tpl.replace('{{url}}', listItem.fileUrl)
|
|||
|
.replace('{{name}}', listItem.fileName)
|
|||
|
|
|||
|
return dom;
|
|||
|
}
|
|||
|
|
|||
|
// 开始抢修
|
|||
|
ctrl.handleStartRepair = function () {
|
|||
|
|
|||
|
api.showProgress({
|
|||
|
title: '载入中...',
|
|||
|
text: '请稍后',
|
|||
|
modal: false
|
|||
|
});
|
|||
|
|
|||
|
var url = "/ems/rest/qx/task";
|
|||
|
var data = {
|
|||
|
taskId: ctrl.taskId,
|
|||
|
acceptTime: new Date().getTime(),
|
|||
|
isAccept: true
|
|||
|
}
|
|||
|
$api.put(url, data, function (res, err) {
|
|||
|
api.hideProgress();
|
|||
|
|
|||
|
if (err) {
|
|||
|
ctrl.toast("网络请求失败,请稍后再试");
|
|||
|
} else {
|
|||
|
if (res.code == 200) {
|
|||
|
// 将抢修接单信息保存到 localStorage 中
|
|||
|
ctrl.qxAccept = '1'
|
|||
|
$api.setStorage('qxAccept' + ctrl.qxorderid, '1');
|
|||
|
|
|||
|
// 跳转到抢修详情内容页
|
|||
|
api.openWin({
|
|||
|
name: 'repairProblem',
|
|||
|
url: './repairProblem.html',
|
|||
|
pageParam: {
|
|||
|
prid: ctrl.prid,
|
|||
|
taskid: ctrl.taskId,
|
|||
|
qxorderid: ctrl.qxorderid
|
|||
|
}
|
|||
|
});
|
|||
|
} else {
|
|||
|
ctrl.toast("服务器响应错误" + (res.code ? (",错误码:" + res.code) : ""));
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
ctrl.init();
|
|||
|
|
|||
|
}
|