/** * 说明:该模块主要用于案件列表的公共部分代码 主要是刷新 等一系列功能等 */ /** * 类定义 * @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(); }