/**
* 说明:该模块主要用于案件列表的公共部分代码 主要是刷新 等一系列功能等
*/
/**
* 类定义
* @param {Object} option 选项
*/
function JTCaseBase(option) {
//查询数据对应的查询模型JSONObject
this.queryModel = {
userID: '',
queryCount: '10',
queryType: "",
startNum: '0',
additionalConditions: '',
queryExtent: '',
}
//查询到案件数据列表
this.caseList = [];
//创建的所有li
this.caseDomList = [];
//当前数据数量 用于标号
this.dataCount = 0;
this.ashxName = "case-list"; //默认的网络请求网页名
this.pageFlag = casePageFlag.WaitCheck; //默认的关联页面标识
this.userInfo = null; //默认关联的用户表示
this.btnLoadManyData = null; //加载更多按钮
this._init(option || {});
}
/**
* 原型方法
* @param {Object} option 选项
*/
JTCaseBase.prototype.extend = function(option) {
for (key in option) {
JTCaseBase.prototype[key] = option[key];
}
}
/**
* 初始化内部方法
*/
JTCaseBase.prototype.extend({
/**
* 初始化方法
* @param {Object} option 选项
*/
_init: function(option) {
//设置查询方式
this.queryModel.queryType = option.queryType;
//设置关联的网络服务名称
this.ashxName = option.ashxName;
//设置关联的页面名称
this.pageFlag = option.pageFlag;
/* 获取用户信息 */
this.userInfo = option.userInfo;
this.queryModel.userID = this.userInfo.userID;
/* 绑定查询结果回调 */
this.eventQueryResult = option.eventQueryResult;
/* 绑定案件变化回调 主要用于案件的派发、撤派 */
this.eventCaseChange = option.eventCaseChange;
},
/**
* 根据案件状态获取状态中文描述
* @param {string} state 案件状态
*/
_caseStateName: function(state) {
if (state == caseState.stateWaitCheck) {
return "处理中";
}
if (state == caseState.stateWaitRepeat) {
return "复飞中";
}
if (state == caseState.stateWaitVerify) {
return "审核中";
}
if (state == caseState.stateClose) {
return "已结案";
}
if (state == caseState.stateWaitAssign) {
return "派发中";
}
if (state == caseState.stateWaitResetCheck) {
return "重处理中";
}
if (state == caseState.stateWaitResetRepeat) {
return "重复飞中";
}
return "未知";
},
/**
* 根据案件状态值获取图标名称
* @param {string} state 案件状态
*/
_iconClassName: function(state) {
if (state == caseState.stateWaitCheck) {
// return "menu_zf_wait_check.png";
return "w30.gif";
}
if (state == caseState.stateWaitRepeat) {
return "menu_zf_wait_flight.png";
}
if (state == caseState.stateWaitVerify) {
return "menu_zf_wait_verify.png";
}
if (state == caseState.stateClose) {
return "menu_zf_close.png";
}
if (state == caseState.stateWaitAssign) {
return "menu_zf_wait_assign.png";
}
if (state == caseState.stateWaitResetCheck) {
return "menu_zf_wait_check.png";
}
if (state == caseState.stateWaitResetRepeat) {
return "menu_zf_wait_flight";
}
return "";
},
/**
* 检测待处理案件的状态
* @param {JSON} caseJson 案件
* @@return {Array} 返回待处理案件标签的颜色及动态图标名称
*/
_CheckCaseCheckState(caseJson) {
var curDate = new Date();
var checkDate = new Date(caseJson.zpsj);
var timeSpan = (curDate.getTime() - checkDate.getTime()) / 1000;
var caseLabelColor = "";
var icoName = "";
if (timeSpan >= 0 && timeSpan <= 3 * 24 * 60 * 60) {
//0~3
caseLabelColor = '71,100,251';
icoName = "w3.gif";
} else if (timeSpan > 3 * 24 * 60 * 60 && timeSpan <= 7 * 24 * 60 * 60) {
//4~7
caseLabelColor = '234,189,45';
icoName = "w7.gif";
} else if (timeSpan > 7 * 24 * 60 * 60 && timeSpan <= 30 * 24 * 60 * 60) {
//8~30
caseLabelColor = '216,91,36';
icoName = "w30.gif";
} else {
//>30
caseLabelColor = '211,11,3';
icoName = "w99.gif";
}
var label = "" + caseJson.casenum + "";
return [label, icoName];
},
/**
* 向数据列表中追加一条数据
* @param {Object} data 当前数据 JSONObjet
* @param {Object} table 数据表 即UL对象
* @param {Object} flag 显示的标识
*/
_InsertLiToTable: function(data, table, flag) {
var li = document.createElement('li');
li.className = 'wc-li';
li.id = data.casenum;
var itemHtml = "";
itemHtml += "
";
/* 以下是案件标题内容 */
itemHtml += "
";
if (data.state == caseState.stateWaitCheck || data.state == caseState.stateWaitResetCheck) {
var result = this._CheckCaseCheckState(data);
itemHtml += "
";
itemHtml += "
" + result[0] + "
";
} else {
itemHtml += "
";
itemHtml += "
" + data.casenum + "
";
}
itemHtml += "
";
itemHtml += "
" + data.caseVillagesAndTowns + "
";
itemHtml += "
" + data.caseVillage + "
";
itemHtml += "
";
itemHtml += "
";
/* 以上是标题内容 */
/* 以下是主体内容 */
itemHtml += "
"
itemHtml += "
";
if (data.state == caseState.stateWaitAssign) {
itemHtml += this._CreateInfoNormal(data);
} else if (data.state == caseState.stateWaitCheck || data.state == caseState.stateWaitResetCheck) {
if (this.pageFlag == casePageFlag.WaitCheck) {
itemHtml += this._CreateInfoChecking(data);
} else if (this.pageFlag == casePageFlag.UndoAssign) {
itemHtml += this._CreateInfoUndoAssign(data);
} else {
itemHtml += this._CreateInfoChecking(data);
}
} else if (data.state == caseState.stateWaitVerify) {
itemHtml += this._CreateInfoVerifying(data);
} else if (data.state == caseState.stateClose) {
itemHtml += this._CreateInfoClose(data);
} else if (data.state == caseState.stateWaitRepeat || data.state == caseState
.stateWaitResetRepeat) {
itemHtml += this._CreateInfoRepeating(data);
}
itemHtml += "
";
itemHtml += "
";
itemHtml += this._CreateCaseNavigationButton(data);
itemHtml += this._CreateCaseInfoButton(data);
itemHtml += this._CreateCaseMapLocationButton(data);
//如果当前登录的账户具备审核权限 且为待审核案件页面 则显示审核按钮
if (this.pageFlag == casePageFlag.WaitVerify && permissionFind(this.userInfo.permissions,
userPermission.perSH)) {
itemHtml += this._CreateCaseVerifyButton(data);
}
//如果当前登录的账户具备派发权限 且页面为待派发页面 则显示派发按钮
if (this.pageFlag == casePageFlag.WaitAssign && permissionFind(this.userInfo.permissions,
userPermission.perPF)) {
itemHtml += this._CreateCaseAssigButton(data);
}
//如果当前登录的账户具备派发权限 且页面为撤派页面 则显示撤派按钮
if (this.pageFlag == casePageFlag.UndoAssign && permissionFind(this.userInfo.permissions,
userPermission.perPF)) {
itemHtml += this._CreateCaseUndoAssigButton(data);
}
//如果当前登录用户具备处理权限 且页面为待处理案件 则显示处理按钮
if (this.pageFlag == casePageFlag.WaitCheck && permissionFind(this.userInfo.permissions,
userPermission.perCL)) {
itemHtml += this._CreateCaseCheckButton(data);
}
//如果当前登陆用户为审核员或领导,且页面为待督办页面或已督办页面,则显示督办按钮
if ((this.userInfo.userType == userType.memberSH || this.userInfo.userType == userType.memberLD) &&
(this.pageFlag == casePageFlag.WaitSupervise || this.pageFlag == casePageFlag.YesSupervise)) {
itemHtml += this._CreateCaseSuperviseButton(data);
}
itemHtml += "
";
/* 下部分内容结束 */
itemHtml += "
";
/* 数据行结束 */
itemHtml += "
";
li.innerHTML = itemHtml;
/* 此处需要判断一下 如果this.table == undefined 则将li插入到集合中*/
if (this.table != undefined) {
this.table.appendChild(li);
}
},
/**
* 创建普通案件数据
* @param {Object} data 案件
*/
_CreateInfoNormal(data) {
var itemHtml = "";
//追加人员信息
itemHtml += ""
itemHtml += "
";
itemHtml += "";
itemHtml += "[上报员]" + data.sbmember + "";
itemHtml += "
"
itemHtml += "
";
itemHtml += "";
itemHtml += "" + "空中巡查" + "";
itemHtml += "
"
itemHtml += "
"
//追加日期信息
itemHtml += ""
itemHtml += "";
itemHtml += "[上报日期]" + data.sbdate + "";
itemHtml += "
"
//追加描述
itemHtml += "" + data.sbms + "
";
return itemHtml;
},
/**
* 创建处理中案件信息
* @param {Object} data 案件
*/
_CreateInfoChecking(data) {
var itemHtml = "";
//追加人员信息
itemHtml += ""
itemHtml += "
";
itemHtml += "";
itemHtml += "[上报员]" + data.sbmember + "";
itemHtml += "
"
itemHtml += "
";
itemHtml += "";
itemHtml += "" + "空中巡查" + "";
itemHtml += "
"
itemHtml += "
"
//追加日期信息
itemHtml += ""
itemHtml += "";
itemHtml += "[上报日期]" + data.sbdate + "";
itemHtml += "
"
//追加描述
itemHtml += "" + data.sbms + "
";
return itemHtml;
},
/**
* 创建待复飞案件信息
* @param {Object} data 案件
*/
_CreateInfoRepeating(data) {
var itemHtml = "";
//追加人员信息
itemHtml += ""
itemHtml += "
";
itemHtml += "";
itemHtml += "[处理员]" + data.clry + "";
itemHtml += "
"
itemHtml += "
";
itemHtml += "";
itemHtml += "" + "空中巡查" + "";
itemHtml += "
"
itemHtml += "
"
//追加日期信息
itemHtml += ""
itemHtml += "";
itemHtml += "[处理日期]" + data.cldate + "";
itemHtml += "
"
//追加描述
itemHtml += "" + data.clms + "
";
return itemHtml;
},
/**
* 等待审核的案件
* @param {Object} data 案件
*/
_CreateInfoVerifying(data) {
var itemHtml = "";
//追加人员信息
itemHtml += ""
itemHtml += "
";
itemHtml += "";
itemHtml += "[处理员]" + data.clry + "";
itemHtml += "
"
itemHtml += "
";
itemHtml += "";
itemHtml += "" + "空中巡查" + "";
itemHtml += "
"
itemHtml += "
"
//追加日期信息
itemHtml += ""
itemHtml += "";
itemHtml += "[处理日期]" + data.cldate + "";
itemHtml += "
"
//追加描述
itemHtml += "" + data.clms + "
";
return itemHtml;
},
/**
* 已结案案件
* @param {Object} data 案件
*/
_CreateInfoClose(data) {
var itemHtml = "";
//追加人员信息
itemHtml += ""
itemHtml += "
";
itemHtml += "";
itemHtml += "[审核员]" + data.shry + "";
itemHtml += "
"
itemHtml += "
";
itemHtml += "";
itemHtml += "" + "空中巡查" + "";
itemHtml += "
"
itemHtml += "
"
//追加日期信息
itemHtml += ""
itemHtml += "";
itemHtml += "[结案日期]" + data.shdate + "";
itemHtml += "
"
itemHtml += ""
itemHtml += "";
itemHtml += "[发现日期]" + data.sbdate + "";
itemHtml += "
"
itemHtml += ""
itemHtml += "";
itemHtml += "[处理日期]" + data.cldate + "";
itemHtml += "
"
//追加描述
itemHtml += "" + data.shms + "
";
return itemHtml;
},
/**
* 创建撤销派发案件
* @param {Object} data 案件
*/
_CreateInfoUndoAssign(data) {
var itemHtml = "";
//追加人员信息
itemHtml += ""
itemHtml += "
";
itemHtml += "";
itemHtml += "[派发处理员]" + data.zpry + "";
itemHtml += "
"
itemHtml += "
";
itemHtml += "";
itemHtml += "" + "空中巡查" + "";
itemHtml += "
"
itemHtml += "
"
//追加日期信息
itemHtml += ""
itemHtml += "";
itemHtml += "[派发日期]" + data.zpsj + "";
itemHtml += "
"
//追加描述
itemHtml += "" + "请尽快协调处理" + "
";
return itemHtml;
},
/**
* 调用高德导航软件 进行导航
* @param {Object} longitude 经度
* @param {Object} latitude 纬度
*/
_CallNavigation: function(longitude, latitude) {
mui.plusReady(function() {
if (plus.runtime.isApplicationExist({
pname: 'com.autonavi.minimap'
})) {
//用户已安装高德地图
plus.runtime.openURL('androidamap://navi?sourceApplication=com.knssshy.sj&lat=' +
latitude + '&lon=' +
longitude +
'&dev=0',
function(e) {
plus.nativeUI.confirm("检查到您未安装\"高德地图\".");
});
} else {
muiAlert('您尚未安装高德导航软件,请安装后重试!', "警告")
}
});
},
/**
* 创建导航按钮
* @param {Object} data 当前按钮对应的案件记录 JSONObject
*/
_CreateCaseNavigationButton: function(data) {
var strHtml = "";
strHtml +=
"";
return strHtml;
},
/**
* 创建案件详情按钮
* @param {Object} data 当前按钮对应的案件记录 JSONObject
*/
_CreateCaseInfoButton: function(data) {
var strHtml = "";
strHtml +=
"";
return strHtml;
},
/**
* 创建定位按钮--案件列表中的定位功能
* @param {Object} data 当前按钮对应的案件记录 JSONObject
*/
_CreateCaseMapLocationButton: function(data) {
let _self = this;
var strHtml = "";
strHtml +=
"";
return strHtml;
},
/**
* 创建地图定位按钮--地图中展示案件的定位功能
* @param {Object} data 当前按钮对应的案件记录 JSONObject
*/
_CreateCaseMapLocationButtonToMap: function(data) {
var strHtml = "";
strHtml +=
"";
return strHtml;
},
/**
* 创建案件处理按钮
* @param {Object} data 当前按钮对应的案件记录 JSONObject
*/
_CreateCaseCheckButton: function(data) {
var strHtml = "";
strHtml +=
"";
return strHtml;
},
/**
* 创建案件派发按钮
* @param {Object} data 当前按钮对应的案件记录 JSONObject
*/
_CreateCaseAssigButton: function(data) {
var strHtml = "";
strHtml +=
"";
return strHtml;
},
/**
* 创建案件撤派按钮
* @param {Object} data 当前按钮对应的案件记录 JSONObject
*/
_CreateCaseUndoAssigButton: function(data) {
var strHtml = "";
strHtml +=
"";
return strHtml;
},
/**
* 创建案件审核按钮
* @param {Object} data 当前按钮对应的案件记录 JSONObject
*/
_CreateCaseVerifyButton: function(data) {
var strHtml = "";
strHtml +=
"";
return strHtml;
},
/**
* 创建案件督办按钮
* @param {Object} data 当前按钮对应的案件记录 JSONObject
*/
_CreateCaseSuperviseButton: function(data) {
var strHtml = "";
strHtml +=
"";
return strHtml;
},
/**
* 追加数据
* @param {Object} record 数据记录
*/
_addDataToList: function(record) {
this.dataList.push(record);
this._InsertLiToTable(record, this.table, ++this.dataCount);
},
/**
* 网络加载数据
*/
_netLoadData: function() {
var self = this;
sendAjax({
data: self.queryModel,
type: 'post',
url: self.ashxName,
waitMessage: '正在查询数据...',
success: function(data) {
//查询成功回调函数
for (var i = 0; i < data.length; i++) {
self._addDataToList(data[i]); //追加数据表
}
//判断加载更多按钮是否显示
if (data.length < self.queryModel.queryCount) {
self._showLoadedMoreDataButton(false);
} else {
self._showLoadedMoreDataButton(true);
}
/* 如果绑定了回调事件 则调用返回 */
if (self.eventQueryResult != undefined) {
self.eventQueryResult(self.dataList);
}
},
error: function(err) {
self._showLoadedMoreDataButton(false);
//查询数据错误回调函数
muiAlert(err, "错误");
},
nodata: function(msg) {
self._showLoadedMoreDataButton(false);
muiAlert(msg, "警告");
/* 如果绑定了回调事件 则调用返回 */
if (self.eventQueryResult != undefined) {
self.eventQueryResult([]);
}
}
})
},
/**
* 加载更多数据
*/
_loadManyData: function() {
this.queryModel.startNum = parseInt(this.queryModel.startNum) + parseInt(this.queryModel
.queryCount);
this._netLoadData(); //网络请求加载数据
},
/**
* 显示/隐藏 加载更多数据按钮
* @param {Object} isShow 显示或者隐藏
*/
_showLoadedMoreDataButton: function(isShow) {
if (isShow) {
this.btnLoadManyData.className = "mui-btn mui-btn-block mui-btn-danger wc-btn";
} else {
this.btnLoadManyData.className = "mui-btn mui-btn-block mui-btn-danger wc-btn mui-hidden";
}
},
/**
* 创建一个地图页面案件查询结果单条数据的DIV
* @param {JSON} data 案件数据
*/
_createCase: function(data) {
var rootDiv = document.createElement('div');
rootDiv.className = 'wc-li wc-li-map';
var itemHtml = "";
itemHtml += "";
itemHtml += "
";
itemHtml += "
";
itemHtml += "
" + data.casenum +
"[" + this._caseStateName(
data.state) + "]" +
"
";
itemHtml += "
";
itemHtml += "
" + data.caseVillagesAndTowns + "
";
itemHtml += "
" + data.caseVillage + "
";
itemHtml += "
"; //行政区div结束
itemHtml += "
"; //案件标题行内容结束
itemHtml += "
"; //一行结束
itemHtml += "";
itemHtml += "
";
itemHtml += "
";
/* 此处需要根据案件状态的不同生成不同的案件页面 */
if (data.state == caseState.stateWaitAssign) {
itemHtml += this._CreateInfoNormal(data);
} else if (data.state == caseState.stateWaitCheck || data.state == caseState.stateWaitResetCheck) {
itemHtml += this._CreateInfoChecking(data);
} else if (data.state == caseState.stateWaitVerify) {
itemHtml += this._CreateInfoVerifying(data);
} else if (data.state == caseState.stateClose) {
itemHtml += this._CreateInfoClose(data);
} else if (data.state == caseState.stateWaitRepeat || data.state == caseState
.stateWaitResetRepeat) {
itemHtml += this._CreateInfoRepeating(data);
}
itemHtml += "
"; //内容结束
itemHtml += "
"; //列结束
itemHtml += "
";
itemHtml += this._CreateCaseNavigationButton(data);
itemHtml += this._CreateCaseInfoButton(data);
itemHtml += this._CreateCaseMapLocationButtonToMap(data);
/* 增加事务性按钮 */
//如果当前登录用户为处理员 且案件状态为待处理或待重处理 则显示处理按钮
if (this.userInfo.userType == userType.memberCL && (data.state == caseState.stateWaitCheck || data
.state == caseState.stateWaitResetCheck)) {
itemHtml += this._CreateCaseCheckButton(data);
}
//如果当前登录的为审核用户 且案件状态为待审核 则显示审核按钮
if (this.userInfo.userType == userType.memberSH && data.state == caseState.stateWaitVerify) {
itemHtml += this._CreateCaseVerifyButton(data);
}
//如果当前登录的为审核用户 且案件状态为待派发 则显示派发按钮
if (this.userInfo.userType == userType.memberSH && data.state == caseState.stateWaitAssign) {
itemHtml += this._CreateCaseAssigButton(data);
}
//如果当前登录的为审核用户 且案件状态为待处理 则显示撤派按钮
if (this.userInfo.userType == userType.memberSH && data.state == caseState.stateWaitCheck) {
itemHtml += this._CreateCaseUndoAssigButton(data);
}
itemHtml += "
"; //列结束
itemHtml += "
"; //一行结束
rootDiv.innerHTML = itemHtml;
return rootDiv;
},
})
/**
* 挂接方法
*/
JTCaseBase.prototype.extend({
/**
* 设置查询模型
* @param {Object} queryModel 查询模型
*/
setQueryModel: function(queryModel) {
this.queryModel = queryModel;
},
/**
* 设置附加的查询条件
* @param {Object} strWhere 附加查询条件
*/
setAdditionalConditions: function(strWhere) {
this.queryModel.additionalConditions = strWhere;
},
/** 绑定数据表
* @param {Object} table UL 数据表 用于显示数据
*/
bindUlTable: function(table) {
var self = this;
this.table = table;
//绑定表格的同时创建一个按钮 用于刷新数据
self.btnLoadManyData = document.createElement('button');
self.btnLoadManyData.className =
"mui-btn mui-btn-block mui-btn-danger wc-btn mui-hidden mui-icon mui-icon-search";
self.btnLoadManyData.setAttribute("data-loading-text", "加载中......");
self.btnLoadManyData.setAttribute("data-loading-icon-position", "right");
self.btnLoadManyData.innerHTML = "加载更多数据";
if (table != undefined) {
table.parentNode.appendChild(self.btnLoadManyData);
}
self.btnLoadManyData.addEventListener('click', function(evn) {
mui(self.btnLoadManyData).button('loading');
setTimeout(function() {
mui(self.btnLoadManyData).button('reset'); //切换为reset状态(即重置为原始的button)
self._loadManyData(); //调用加载更多数据
}.bind(self.btnLoadManyData), 1000);
});
},
/**
* 绑定搜索框
* @param {Object} controlID 搜索框ID
*/
bindSearchControl: function(controlID) {
var self = this;
/**
* 搜索框追加事件
*/
document.getElementById(controlID).addEventListener('keypress', function(e) {
//判断点击的是否是 搜索 按钮
if (e.keyCode == 13) {
var value = this.value;
self.setAdditionalConditions("ajh like '%" + value + "%'");
document.activeElement.blur();
self.queryData();
}
});
},
/** 绑定搜索框 通过绑定监听 获取查询内容
* @param {Object} controlID 搜索框ID
* @param {Object} callback 返回监听
*/
bindSearchControlEvent: function(controlID, callback) {
var self = this;
/**
* 搜索框追加事件
*/
document.getElementById(controlID).addEventListener('keypress', function(e) {
//判断点击的是否是 搜索 按钮
if (e.keyCode == 13) {
var value = this.value;
document.activeElement.blur();
callback(value);
}
});
},
/**
* 设置顶部导航栏标题及刷新按钮的回调事件
* @param {Object} title 标题
* @param {Object} callRefresh 刷新回调事件
*/
setNView: function(title, callRefresh) {
var curViewView = plus.webview.currentWebview();
var mainPage = curViewView.opener();
//mainPage.getTitleNView().hide();
var selfNViewStyle = {
"titleNView": {
backgroundColor: colorBackground,
titleText: title,
titleColor: colorTitle,
splitLine: {
color: colorLine
},
autoBackButton: true,
buttons: [{
'float': 'right',
fontSrc: '../fonts/iconfont.ttf',
text: '\ue797',
onclick: callRefresh,
}]
}
};
curViewView.setStyle(selfNViewStyle);
},
/**
* 刷新数据 即重置数据
*/
refreshData: function() {
this.dataCount = 0; //初始化数据数量
this.queryModel.additionalConditions = ""; //清除附加条件
this.table.innerHTML = ""; //初始化显示表格
this.dataList = []; //初始化数据列表
this.queryModel.startNum = '0'; //初始化查询编号
this._netLoadData(); //网络请求加载数据
},
/**
* 查询数据
*/
queryData: function() {
this.dataCount = 0; //初始化数据数量
this.table.innerHTML = ""; //初始化显示表格
this.dataList = []; //初始化数据列表
this.queryModel.startNum = '0'; //初始化查询编号
this._netLoadData(); //网络请求加载数据
},
/**
* 输入查询 如果查询案件Id数组只输入一个 则采用模糊查询 否则采用in查询
* @param {Array[string,string,...]} caseIds 案件Ids
*/
queryDataByCaseId: function(caseIds) {
/* 组合查询条件 */
var queryWhere = "";
if (caseIds.length == 1) {
queryWhere = "ajh like '%" + caseIds[0] + "%'"
} else {
for (var i = 0; i < caseIds.length; i++) {
if (queryWhere === '') queryWhere += caseIds[i];
else queryWhere += "','" + caseIds[i];
}
queryWhere = "ajh in ('" + queryWhere + "')"
}
this.dataCount = 0; //初始化数据数量
this.dataList = []; //初始化数据列表
this.queryModel.startNum = '0'; //初始化查询编号
this.queryModel.queryType = 'Input'; //设置查询方式
this.queryModel.additionalConditions = queryWhere; //赋值查询条件
this.ashxName = 'appQueryCases'; //设置查询URL地址
this._netLoadData(); //网络请求加载数据
},
/**
* 根据输入的范围进行查询
* @param {string} extent 查询范围 经纬度字符串 经度1,纬度1.......
*/
queryDataByExtent: function(extent) {
/* 组合查询条件 */
var queryWhere = "";
this.dataCount = 0; //初始化数据数量
this.dataList = []; //初始化数据列表
this.queryModel.startNum = '0'; //初始化查询编号
this.queryModel.queryType = 'Normal'; //设置查询方式
this.queryModel.additionalConditions = ""; //赋值查询条件
this.queryModel.queryExtent = extent; //查询范围
this.ashxName = 'appQueryCasesByExtent'; //设置查询URL地址
this._netLoadData(); //网络请求加载数据
},
/**
* 根据案件创建div
* @param {Object} data 案件
*/
createCase: function(data) {
return this._createCase(data);
},
/**
* 删除列表中的案件项
* @param {string} caseNum 案件号所代表的案件Item
*/
removeCaseItem: function(caseNum) {
if (this.pageFlag != casePageFlag.Map && this.table != undefined) {
var childItem = document.getElementById(caseNum);
if (childItem != undefined) {
this.table.removeChild(childItem);
}
} else {
/* 回调出去 */
if (this.eventCaseChange != undefined) {
this.eventCaseChange(caseNum);
}
}
},
/**
* 根据案件状态获取状态中文描述
* @param {string} state 案件状态
*/
caseStateName: function(state) {
return this._caseStateName(state);
},
/**
* @param {string} casenum 案件号
* @param {function} callback 查询成功回调
*/
queryCaseByCasenum: function(casenum, callback) {
var self = this;
/* 初始化查询条件 */
var queryWhere = "ajh = '" + casenum + "'";
self.queryModel.startNum = '0'; //初始化查询编号
self.queryModel.additionalConditions = queryWhere; //赋值查询条件
self.queryModel.queryType = 'Normal';
/* 联网查询 */
sendAjax({
data: self.queryModel,
type: 'post',
url: self.ashxName,
waitMessage: '正在查询案件...',
success: function(data) {
//查询成功回调函数 只返回一个案件
if (callback != undefined) callback(data[0]);
},
error: function(err) {
//查询数据错误回调函数
muiAlert(err, "错误");
},
nodata: function(msg) {
muiAlert(msg, "警告");
}
})
}
});
//定义数据基础类
var caseBase = undefined; //定义一个全局变量 主要是为了管理案件
/**
* 调用高德导航软件 进行导航
* @param {Object} longitude 经度
* @param {Object} latitude 纬度
*/
function CallNavigation(longitude, latitude) {
mui.plusReady(function() {
if (plus.runtime.isApplicationExist({
pname: 'com.autonavi.minimap'
})) {
//用户已安装高德地图
plus.runtime.openURL('androidamap://navi?sourceApplication=com.knssshy.sj&lat=' + latitude +
'&lon=' +
longitude +
'&dev=0',
function(e) {
plus.nativeUI.confirm("检查到您未安装\"高德地图\".");
});
} else {
muiAlert('您尚未安装高德导航软件,请安装后重试!', "警告")
}
});
}
/**
* 地图上案件的定位功能 地图页面
* @param {JSON} jsonCase 案件的JSON格式
*/
function CallMapLocationToMap(jsonCase) {
var objWebview = plus.webview.currentWebview();
var longitude = jsonCase.lng;
var latitude = jsonCase.lat;
var title = jsonCase.casenum;
var state = caseBase.caseStateName(jsonCase.state);
var tbmj = jsonCase.tbmj;
/* 执行定位函数 */
objWebview.evalJS("mapLocation('" + longitude + "','" + latitude + "','" + title + "','" + state + "','" + tbmj +
"');");
}
/**
* 调用地图定位功能 案件列表
* @param {string} tabName 案件表名称
* @param {string} feaId 要素唯一标识
*/
function CallMapLocation(tabName, feaId) {
toMapLocation_tabName_feaId(tabName, feaId, '案件定位');
}
/**
* 调用显示案件详细信息
* @param {Object} jsonCase case JSON格式
*/
function CallCaseInfo(jsonCase) {
createAndOpenPage({
htmlPath: 'case-info.html',
autoback: true,
title: '案件详情',
extras: jsonCase,
});
}
/**
* 调用案件处理页面
* @param {Object} jsonCase case JSON格式
*/
function CallCaseCheck(jsonCase) {
createAndOpenPage({
htmlPath: 'case-check.html',
autoback: true,
title: '案件处理',
extras: jsonCase,
});
}
/**
* 调用案件审核页面
* @param {Object} jsonCase case JSON格式
*/
function CallCaseVerify(jsonCase) {
//由于版本变化 更改该案件的传递方法
//第一次加载时 为打开新窗口 通过extras 传递方法
//第二次加载时 由于已经加载 改变值的传递方法
var windowID = "case-verify.html"; //新窗口ID
var subPage = plus.webview.getWebviewById(windowID);
if (subPage == null) {
mui.openWindow({
url: windowID,
id: windowID,
extras: jsonCase,
});
} else {
//设置自定义事件 并传递参数
mui.fire(subPage, "new", jsonCase);
//打开窗口
mui.openWindow({
id: windowID,
});
}
}
/**
* 调用案件督办页面
* @param {string} caseId 案件编号
*/
function CallSupervise(caseId) {
createAndOpenPage({
htmlPath: 'case-supervise.html',
autoback: true,
title: '案件督办',
extras: {
caseId: caseId,
},
});
}
/**
* 案件撤销处理
* @param {Object} caseNum 案件编号
*/
function CallUndoAssign(caseNum) {
var self = this;
var msg = "你确定要撤销案件编号为【" + caseNum + "】案件派发吗?";
muiConfirm(msg, '撤派', function() {
/* 创建派发模型 */
var assignData = {
casenum: caseNum,
userId: '',
type: 'undo',
}
/* 远程派发 */
sendAjax({
url: 'appCaseAssign',
type: 'post',
data: assignData,
waitMessage: '正在撤派...',
success: function(resData) {
muiAlert(resData[0].msg, "提示", function() {
if (caseBase != undefined) {
//如果派发成功 则删除该项内容
caseBase.removeCaseItem(caseNum);
}
});
},
error: function(err) {
muiAlertError(err);
}
});
})
}
/**
* 调用案件派发
* @param {Object} casenum 案件ID
*/
function CallAssign(casenum) {
//传递的Case数据
var tempCaseModel = {
casenum: casenum,
}
/* 联网查询关联的执法账号 */
sendAjax({
url: 'appQueryCaseJoinUsers',
waitMessage: '正在联网查询...',
type: 'post',
data: tempCaseModel,
success: function(data) {
/* 如果有popover 则让其关闭 否则导致重叠遮挡 */
mui('.mui-popover').popover('hide');
var tempUsers = [];
for (var i = 0; i < data.length; i++) {
tempUsers.push({
value: data[i].selCode,
text: data[i].selName,
});
}
var assignPicker = new mui.PopPicker({
buttons: ['关闭', '派发'],
});
assignPicker.setData(tempUsers);
assignPicker.show(function(items) {
var uId = items[0].value;
var uName = items[0].text;
var msg = "确认将编号为【" + casenum + "】的案件派发给【" + uName + "】处理吗?";
muiConfirm(msg, '派发', function() {
CaseAssign(casenum, uId);
});
});
},
error: function(err) {
muiAlertError(err);
}
});
}
/**
* @param {Object} caseNum 案件编号
* @param {Object} assignUserId 派发的用户ID
*/
function CaseAssign(caseNum, assignUserId) {
/* 创建派发模型 */
var assignData = {
casenum: caseNum,
userId: assignUserId,
type: 'assign',
}
/* 远程派发 */
sendAjax({
url: 'appCaseAssign',
type: 'post',
data: assignData,
waitMessage: '正在派发...',
success: function(resData) {
muiAlert(resData[0].msg, "提示", function() {
if (caseBase != undefined) {
//如果派发成功 则删除该项内容
caseBase.removeCaseItem(caseNum);
}
});
},
error: function(err) {
muiAlertError(err);
}
})
}
/**
* 刷新数据表 主要是处理、派发、撤派、审核、复飞成功后 删除对应的数据项
* @param {string} casenum 案件编号 案件domId
*/
function refreshDataTable(casenum) {
document.getElementById(casenum).remove();
}