app-xiangsonghua/app-saas-src/script/inspectionRepair/repair.js
2024-12-26 17:00:06 +08:00

404 lines
12 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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();
}