123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161 |
- /**
- * 说明:该模块主要用于案件列表的公共部分代码 主要是刷新 等一系列功能等
- */
- /**
- * 类定义
- * @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 = "<font style=\"color:rgb(" + caseLabelColor + ")\">" + caseJson.casenum + "</font>";
- 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 += "<div class='wc-row'>";
- /* 以下是案件标题内容 */
- itemHtml += "<div class='wc-row-title-content'>";
- if (data.state == caseState.stateWaitCheck || data.state == caseState.stateWaitResetCheck) {
- var result = this._CheckCaseCheckState(data);
- itemHtml += "<div class='wc-ico'><img src='../img/menu/" + result[1] + "'/></div>";
- itemHtml += "<div class='wc-title'>" + result[0] + "</div>";
- } else {
- itemHtml += "<div class='wc-ico'><img src='../img/menu/" + this._iconClassName(data.state) +
- "'/></div>";
- itemHtml += "<div class='wc-title'>" + data.casenum + "</div>";
- }
- itemHtml += "<div class='wc-xzq'>";
- itemHtml += "<div class='wc-xzq-ssxz'>" + data.caseVillagesAndTowns + "</div>";
- itemHtml += "<div class='wc-xzq-ssxz wc-xzq-sscz'>" + data.caseVillage + "</div>";
- itemHtml += "</div>";
- itemHtml += "</div>";
- /* 以上是标题内容 */
- /* 以下是主体内容 */
- itemHtml += "<div class='jt-main-content'>"
- itemHtml += "<div class='wc-main-content'>";
- 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 += "</div>";
- itemHtml += "<div class='wc-btn-content'>";
- 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 += "</div>";
- /* 下部分内容结束 */
- itemHtml += "</div>";
- /* 数据行结束 */
- itemHtml += "</div>";
- li.innerHTML = itemHtml;
- /* 此处需要判断一下 如果this.table == undefined 则将li插入到集合中*/
- if (this.table != undefined) {
- this.table.appendChild(li);
- }
- },
- /**
- * 创建普通案件数据
- * @param {Object} data 案件
- */
- _CreateInfoNormal(data) {
- var itemHtml = "";
- //追加人员信息
- itemHtml += "<div class='wc-div-row'>"
- itemHtml += "<div style='float: left;'>";
- itemHtml += "<span class='app-icon app-icon-member wc-span-icon'></span>";
- itemHtml += "<span class='wc-span'>[上报员]" + data.sbmember + "</span>";
- itemHtml += "</div>"
- itemHtml += "<div style='float: right;'>";
- itemHtml += "<span class='app-icon app-icon-sslb wc-span-icon'></span>";
- itemHtml += "<span class='wc-span'>" + "空中巡查" + "</span>";
- itemHtml += "</div>"
- itemHtml += "</div>"
- //追加日期信息
- itemHtml += "<div class='wc-div-row'>"
- itemHtml += "<span class='app-icon app-icon-date wc-span-icon'></span>";
- itemHtml += "<span class='wc-span'>[上报日期]" + data.sbdate + "</span>";
- itemHtml += "</div>"
- //追加描述
- itemHtml += "<p>" + data.sbms + "</p>";
- return itemHtml;
- },
- /**
- * 创建处理中案件信息
- * @param {Object} data 案件
- */
- _CreateInfoChecking(data) {
- var itemHtml = "";
- //追加人员信息
- itemHtml += "<div class='wc-div-row'>"
- itemHtml += "<div style='float: left;'>";
- itemHtml += "<span class='app-icon app-icon-member wc-span-icon'></span>";
- itemHtml += "<span class='wc-span'>[上报员]" + data.sbmember + "</span>";
- itemHtml += "</div>"
- itemHtml += "<div style='float: right;'>";
- itemHtml += "<span class='app-icon app-icon-sslb wc-span-icon'></span>";
- itemHtml += "<span class='wc-span'>" + "空中巡查" + "</span>";
- itemHtml += "</div>"
- itemHtml += "</div>"
- //追加日期信息
- itemHtml += "<div class='wc-div-row'>"
- itemHtml += "<span class='app-icon app-icon-date wc-span-icon'></span>";
- itemHtml += "<span class='wc-span'>[上报日期]" + data.sbdate + "</span>";
- itemHtml += "</div>"
- //追加描述
- itemHtml += "<p>" + data.sbms + "</p>";
- return itemHtml;
- },
- /**
- * 创建待复飞案件信息
- * @param {Object} data 案件
- */
- _CreateInfoRepeating(data) {
- var itemHtml = "";
- //追加人员信息
- itemHtml += "<div class='wc-div-row'>"
- itemHtml += "<div style='float: left;'>";
- itemHtml += "<span class='app-icon app-icon-member wc-span-icon'></span>";
- itemHtml += "<span class='wc-span'>[处理员]" + data.clry + "</span>";
- itemHtml += "</div>"
- itemHtml += "<div style='float: right;'>";
- itemHtml += "<span class='app-icon app-icon-sslb wc-span-icon'></span>";
- itemHtml += "<span class='wc-span'>" + "空中巡查" + "</span>";
- itemHtml += "</div>"
- itemHtml += "</div>"
- //追加日期信息
- itemHtml += "<div class='wc-div-row'>"
- itemHtml += "<span class='app-icon app-icon-date wc-span-icon'></span>";
- itemHtml += "<span class='wc-span'>[处理日期]" + data.cldate + "</span>";
- itemHtml += "</div>"
- //追加描述
- itemHtml += "<p>" + data.clms + "</p>";
- return itemHtml;
- },
- /**
- * 等待审核的案件
- * @param {Object} data 案件
- */
- _CreateInfoVerifying(data) {
- var itemHtml = "";
- //追加人员信息
- itemHtml += "<div class='wc-div-row'>"
- itemHtml += "<div style='float: left;'>";
- itemHtml += "<span class='app-icon app-icon-member wc-span-icon'></span>";
- itemHtml += "<span class='wc-span'>[处理员]" + data.clry + "</span>";
- itemHtml += "</div>"
- itemHtml += "<div style='float: right;'>";
- itemHtml += "<span class='app-icon app-icon-sslb wc-span-icon'></span>";
- itemHtml += "<span class='wc-span'>" + "空中巡查" + "</span>";
- itemHtml += "</div>"
- itemHtml += "</div>"
- //追加日期信息
- itemHtml += "<div class='wc-div-row'>"
- itemHtml += "<span class='app-icon app-icon-date wc-span-icon'></span>";
- itemHtml += "<span class='wc-span'>[处理日期]" + data.cldate + "</span>";
- itemHtml += "</div>"
- //追加描述
- itemHtml += "<p>" + data.clms + "</p>";
- return itemHtml;
- },
- /**
- * 已结案案件
- * @param {Object} data 案件
- */
- _CreateInfoClose(data) {
- var itemHtml = "";
- //追加人员信息
- itemHtml += "<div class='wc-div-row'>"
- itemHtml += "<div style='float: left;'>";
- itemHtml += "<span class='app-icon app-icon-member wc-span-icon'></span>";
- itemHtml += "<span class='wc-span'>[审核员]" + data.shry + "</span>";
- itemHtml += "</div>"
- itemHtml += "<div style='float: right;'>";
- itemHtml += "<span class='app-icon app-icon-sslb wc-span-icon'></span>";
- itemHtml += "<span class='wc-span'>" + "空中巡查" + "</span>";
- itemHtml += "</div>"
- itemHtml += "</div>"
- //追加日期信息
- itemHtml += "<div class='wc-div-row'>"
- itemHtml += "<span class='app-icon app-icon-date wc-span-icon'></span>";
- itemHtml += "<span class='wc-span'>[结案日期]" + data.shdate + "</span>";
- itemHtml += "</div>"
- itemHtml += "<div class='wc-div-row'>"
- itemHtml += "<span class='app-icon app-icon-date wc-span-icon'></span>";
- itemHtml += "<span class='wc-span f-color-case-wait-assign'>[发现日期]" + data.sbdate + "</span>";
- itemHtml += "</div>"
- itemHtml += "<div class='wc-div-row'>"
- itemHtml += "<span class='app-icon app-icon-date wc-span-icon'></span>";
- itemHtml += "<span class='wc-span f-color-case-wait-check'>[处理日期]" + data.cldate + "</span>";
- itemHtml += "</div>"
- //追加描述
- itemHtml += "<p>" + data.shms + "</p>";
- return itemHtml;
- },
- /**
- * 创建撤销派发案件
- * @param {Object} data 案件
- */
- _CreateInfoUndoAssign(data) {
- var itemHtml = "";
- //追加人员信息
- itemHtml += "<div class='wc-div-row'>"
- itemHtml += "<div style='float: left;'>";
- itemHtml += "<span class='app-icon app-icon-member wc-span-icon'></span>";
- itemHtml += "<span class='wc-span'>[派发处理员]" + data.zpry + "</span>";
- itemHtml += "</div>"
- itemHtml += "<div style='float: right;'>";
- itemHtml += "<span class='app-icon app-icon-sslb wc-span-icon'></span>";
- itemHtml += "<span class='wc-span'>" + "空中巡查" + "</span>";
- itemHtml += "</div>"
- itemHtml += "</div>"
- //追加日期信息
- itemHtml += "<div class='wc-div-row'>"
- itemHtml += "<span class='app-icon app-icon-date wc-span-icon'></span>";
- itemHtml += "<span class='wc-span'>[派发日期]" + data.zpsj + "</span>";
- itemHtml += "</div>"
- //追加描述
- itemHtml += "<p>" + "请尽快协调处理" + "</p>";
- 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 +=
- "<button type='button' class='mui-btn mui-btn-primary mui-icon app-icon app-icon-navigation wc-btn-child wc-btn-nav' ";
- strHtml += "onClick=\"CallNavigation('" + data.lng + "','" + data.lat + "')\">";
- strHtml += "导航";
- strHtml += "</button>";
- return strHtml;
- },
- /**
- * 创建案件详情按钮
- * @param {Object} data 当前按钮对应的案件记录 JSONObject
- */
- _CreateCaseInfoButton: function(data) {
- var strHtml = "";
- strHtml +=
- "<button type='button' class='mui-btn mui-btn-warning mui-icon app-icon app-icon-info wc-btn-child wc-btn-info' ";
- strHtml += "onClick=\"CallCaseInfo(" + JSON.stringify(data).replace(/\"/g, "'") + ")\">";
- strHtml += "详情";
- strHtml += "</button>";
- return strHtml;
- },
- /**
- * 创建定位按钮--案件列表中的定位功能
- * @param {Object} data 当前按钮对应的案件记录 JSONObject
- */
- _CreateCaseMapLocationButton: function(data) {
- let _self = this;
- var strHtml = "";
- strHtml +=
- "<button type='button' class='mui-btn mui-btn-success mui-icon app-icon app-icon-location wc-btn-child wc-btn-location' ";
- /* 此处改造一下 通过ObjectId和表名 传入地图进行定位展示 */
- strHtml += "onClick=\"CallMapLocation('" + data.tabName + "','" + data.feaId + "')\">";
- strHtml += "定位";
- strHtml += "</button>";
- return strHtml;
- },
- /**
- * 创建地图定位按钮--地图中展示案件的定位功能
- * @param {Object} data 当前按钮对应的案件记录 JSONObject
- */
- _CreateCaseMapLocationButtonToMap: function(data) {
- var strHtml = "";
- strHtml +=
- "<button type='button' class='mui-btn mui-btn-success mui-icon app-icon app-icon-location wc-btn-child wc-btn-location' ";
- strHtml += "onClick=\"location_tabName_feaId_normal('" + data.tabName + "','" + data.feaId +
- "')\">";
- strHtml += "定位";
- strHtml += "</button>";
- return strHtml;
- },
- /**
- * 创建案件处理按钮
- * @param {Object} data 当前按钮对应的案件记录 JSONObject
- */
- _CreateCaseCheckButton: function(data) {
- var strHtml = "";
- strHtml +=
- "<button type='button' class='mui-btn mui-btn-danger mui-icon app-icon app-icon-check wc-btn-child' ";
- strHtml += "onClick=\"CallCaseCheck(" + JSON.stringify(data).replace(/\"/g, "'") + ")\">";
- strHtml += "处理";
- strHtml += "</button>";
- return strHtml;
- },
- /**
- * 创建案件派发按钮
- * @param {Object} data 当前按钮对应的案件记录 JSONObject
- */
- _CreateCaseAssigButton: function(data) {
- var strHtml = "";
- strHtml +=
- "<button type='button' class='mui-btn mui-btn-danger mui-icon app-icon app-icon-assign wc-btn-child' ";
- strHtml += "onClick=\"CallAssign('" + data.casenum + "')\">";
- strHtml += "派发";
- strHtml += "</button>";
- return strHtml;
- },
- /**
- * 创建案件撤派按钮
- * @param {Object} data 当前按钮对应的案件记录 JSONObject
- */
- _CreateCaseUndoAssigButton: function(data) {
- var strHtml = "";
- strHtml +=
- "<button type='button' class='mui-btn mui-btn-danger mui-icon app-icon app-icon-undoassign wc-btn-child' ";
- strHtml += "onClick=\"CallUndoAssign('" + data.casenum + "')\">";
- strHtml += "撤派";
- strHtml += "</button>";
- return strHtml;
- },
- /**
- * 创建案件审核按钮
- * @param {Object} data 当前按钮对应的案件记录 JSONObject
- */
- _CreateCaseVerifyButton: function(data) {
- var strHtml = "";
- strHtml +=
- "<button type='button' class='mui-btn mui-btn-danger mui-icon app-icon app-icon-verify wc-btn-child' ";
- strHtml += "onClick=\"CallCaseVerify(" + JSON.stringify(data).replace(/\"/g, "'") + ")\">";
- strHtml += "审核";
- strHtml += "</button>";
- return strHtml;
- },
- /**
- * 创建案件督办按钮
- * @param {Object} data 当前按钮对应的案件记录 JSONObject
- */
- _CreateCaseSuperviseButton: function(data) {
- var strHtml = "";
- strHtml +=
- "<button type='button' class='mui-btn mui-btn-danger mui-icon app-icon app-icon-supervise wc-btn-child' ";
- strHtml += "onClick=\"CallSupervise('" + data.casenum + "')\">";
- strHtml += "督办";
- strHtml += "</button>";
- 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 += "<div class='mui-row'>";
- itemHtml += "<div class='wc-row-title-content'>";
- itemHtml += "<div class='wc-ico'><img src='../img/menu/" + this._iconClassName(data.state) +
- "'/></div>";
- itemHtml += "<div class='wc-title' style='color:rgb(0,0,0) !important;'><span>" + data.casenum +
- "</span><sup>[" + this._caseStateName(
- data.state) + "]" +
- "</sup></div>";
- itemHtml += "<div class='wc-xzq'>";
- itemHtml += "<div class='wc-xzq-ssxz'>" + data.caseVillagesAndTowns + "</div>";
- itemHtml += "<div class='wc-xzq-ssxz'>" + data.caseVillage + "</div>";
- itemHtml += "</div>"; //行政区div结束
- itemHtml += "</div>"; //案件标题行内容结束
- itemHtml += "</div>"; //一行结束
- itemHtml += "<div class='mui-row wc-li-map-row'>";
- itemHtml += "<div class='wc-map-column-content'>";
- itemHtml += "<div class='wc-main-content'>";
- /* 此处需要根据案件状态的不同生成不同的案件页面 */
- 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 += "</div>"; //内容结束
- itemHtml += "</div>"; //列结束
- itemHtml += "<div class='wc-map-column-button'>";
- 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 += "</div>"; //列结束
- itemHtml += "</div>"; //一行结束
- 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();
- }
|