case-list-base.js 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161
  1. /**
  2. * 说明:该模块主要用于案件列表的公共部分代码 主要是刷新 等一系列功能等
  3. */
  4. /**
  5. * 类定义
  6. * @param {Object} option 选项
  7. */
  8. function JTCaseBase(option) {
  9. //查询数据对应的查询模型JSONObject
  10. this.queryModel = {
  11. userID: '',
  12. queryCount: '10',
  13. queryType: "",
  14. startNum: '0',
  15. additionalConditions: '',
  16. queryExtent: '',
  17. }
  18. //查询到案件数据列表
  19. this.caseList = [];
  20. //创建的所有li
  21. this.caseDomList = [];
  22. //当前数据数量 用于标号
  23. this.dataCount = 0;
  24. this.ashxName = "case-list"; //默认的网络请求网页名
  25. this.pageFlag = casePageFlag.WaitCheck; //默认的关联页面标识
  26. this.userInfo = null; //默认关联的用户表示
  27. this.btnLoadManyData = null; //加载更多按钮
  28. this._init(option || {});
  29. }
  30. /**
  31. * 原型方法
  32. * @param {Object} option 选项
  33. */
  34. JTCaseBase.prototype.extend = function(option) {
  35. for (key in option) {
  36. JTCaseBase.prototype[key] = option[key];
  37. }
  38. }
  39. /**
  40. * 初始化内部方法
  41. */
  42. JTCaseBase.prototype.extend({
  43. /**
  44. * 初始化方法
  45. * @param {Object} option 选项
  46. */
  47. _init: function(option) {
  48. //设置查询方式
  49. this.queryModel.queryType = option.queryType;
  50. //设置关联的网络服务名称
  51. this.ashxName = option.ashxName;
  52. //设置关联的页面名称
  53. this.pageFlag = option.pageFlag;
  54. /* 获取用户信息 */
  55. this.userInfo = option.userInfo;
  56. this.queryModel.userID = this.userInfo.userID;
  57. /* 绑定查询结果回调 */
  58. this.eventQueryResult = option.eventQueryResult;
  59. /* 绑定案件变化回调 主要用于案件的派发、撤派 */
  60. this.eventCaseChange = option.eventCaseChange;
  61. },
  62. /**
  63. * 根据案件状态获取状态中文描述
  64. * @param {string} state 案件状态
  65. */
  66. _caseStateName: function(state) {
  67. if (state == caseState.stateWaitCheck) {
  68. return "处理中";
  69. }
  70. if (state == caseState.stateWaitRepeat) {
  71. return "复飞中";
  72. }
  73. if (state == caseState.stateWaitVerify) {
  74. return "审核中";
  75. }
  76. if (state == caseState.stateClose) {
  77. return "已结案";
  78. }
  79. if (state == caseState.stateWaitAssign) {
  80. return "派发中";
  81. }
  82. if (state == caseState.stateWaitResetCheck) {
  83. return "重处理中";
  84. }
  85. if (state == caseState.stateWaitResetRepeat) {
  86. return "重复飞中";
  87. }
  88. return "未知";
  89. },
  90. /**
  91. * 根据案件状态值获取图标名称
  92. * @param {string} state 案件状态
  93. */
  94. _iconClassName: function(state) {
  95. if (state == caseState.stateWaitCheck) {
  96. // return "menu_zf_wait_check.png";
  97. return "w30.gif";
  98. }
  99. if (state == caseState.stateWaitRepeat) {
  100. return "menu_zf_wait_flight.png";
  101. }
  102. if (state == caseState.stateWaitVerify) {
  103. return "menu_zf_wait_verify.png";
  104. }
  105. if (state == caseState.stateClose) {
  106. return "menu_zf_close.png";
  107. }
  108. if (state == caseState.stateWaitAssign) {
  109. return "menu_zf_wait_assign.png";
  110. }
  111. if (state == caseState.stateWaitResetCheck) {
  112. return "menu_zf_wait_check.png";
  113. }
  114. if (state == caseState.stateWaitResetRepeat) {
  115. return "menu_zf_wait_flight";
  116. }
  117. return "";
  118. },
  119. /**
  120. * 检测待处理案件的状态
  121. * @param {JSON} caseJson 案件
  122. * @@return {Array} 返回待处理案件标签的颜色及动态图标名称
  123. */
  124. _CheckCaseCheckState(caseJson) {
  125. var curDate = new Date();
  126. var checkDate = new Date(caseJson.zpsj);
  127. var timeSpan = (curDate.getTime() - checkDate.getTime()) / 1000;
  128. var caseLabelColor = "";
  129. var icoName = "";
  130. if (timeSpan >= 0 && timeSpan <= 3 * 24 * 60 * 60) {
  131. //0~3
  132. caseLabelColor = '71,100,251';
  133. icoName = "w3.gif";
  134. } else if (timeSpan > 3 * 24 * 60 * 60 && timeSpan <= 7 * 24 * 60 * 60) {
  135. //4~7
  136. caseLabelColor = '234,189,45';
  137. icoName = "w7.gif";
  138. } else if (timeSpan > 7 * 24 * 60 * 60 && timeSpan <= 30 * 24 * 60 * 60) {
  139. //8~30
  140. caseLabelColor = '216,91,36';
  141. icoName = "w30.gif";
  142. } else {
  143. //>30
  144. caseLabelColor = '211,11,3';
  145. icoName = "w99.gif";
  146. }
  147. var label = "<font style=\"color:rgb(" + caseLabelColor + ")\">" + caseJson.casenum + "</font>";
  148. return [label, icoName];
  149. },
  150. /**
  151. * 向数据列表中追加一条数据
  152. * @param {Object} data 当前数据 JSONObjet
  153. * @param {Object} table 数据表 即UL对象
  154. * @param {Object} flag 显示的标识
  155. */
  156. _InsertLiToTable: function(data, table, flag) {
  157. var li = document.createElement('li');
  158. li.className = 'wc-li';
  159. li.id = data.casenum;
  160. var itemHtml = "";
  161. itemHtml += "<div class='wc-row'>";
  162. /* 以下是案件标题内容 */
  163. itemHtml += "<div class='wc-row-title-content'>";
  164. if (data.state == caseState.stateWaitCheck || data.state == caseState.stateWaitResetCheck) {
  165. var result = this._CheckCaseCheckState(data);
  166. itemHtml += "<div class='wc-ico'><img src='../img/menu/" + result[1] + "'/></div>";
  167. itemHtml += "<div class='wc-title'>" + result[0] + "</div>";
  168. } else {
  169. itemHtml += "<div class='wc-ico'><img src='../img/menu/" + this._iconClassName(data.state) +
  170. "'/></div>";
  171. itemHtml += "<div class='wc-title'>" + data.casenum + "</div>";
  172. }
  173. itemHtml += "<div class='wc-xzq'>";
  174. itemHtml += "<div class='wc-xzq-ssxz'>" + data.caseVillagesAndTowns + "</div>";
  175. itemHtml += "<div class='wc-xzq-ssxz wc-xzq-sscz'>" + data.caseVillage + "</div>";
  176. itemHtml += "</div>";
  177. itemHtml += "</div>";
  178. /* 以上是标题内容 */
  179. /* 以下是主体内容 */
  180. itemHtml += "<div class='jt-main-content'>"
  181. itemHtml += "<div class='wc-main-content'>";
  182. if (data.state == caseState.stateWaitAssign) {
  183. itemHtml += this._CreateInfoNormal(data);
  184. } else if (data.state == caseState.stateWaitCheck || data.state == caseState.stateWaitResetCheck) {
  185. if (this.pageFlag == casePageFlag.WaitCheck) {
  186. itemHtml += this._CreateInfoChecking(data);
  187. } else if (this.pageFlag == casePageFlag.UndoAssign) {
  188. itemHtml += this._CreateInfoUndoAssign(data);
  189. } else {
  190. itemHtml += this._CreateInfoChecking(data);
  191. }
  192. } else if (data.state == caseState.stateWaitVerify) {
  193. itemHtml += this._CreateInfoVerifying(data);
  194. } else if (data.state == caseState.stateClose) {
  195. itemHtml += this._CreateInfoClose(data);
  196. } else if (data.state == caseState.stateWaitRepeat || data.state == caseState
  197. .stateWaitResetRepeat) {
  198. itemHtml += this._CreateInfoRepeating(data);
  199. }
  200. itemHtml += "</div>";
  201. itemHtml += "<div class='wc-btn-content'>";
  202. itemHtml += this._CreateCaseNavigationButton(data);
  203. itemHtml += this._CreateCaseInfoButton(data);
  204. itemHtml += this._CreateCaseMapLocationButton(data);
  205. //如果当前登录的账户具备审核权限 且为待审核案件页面 则显示审核按钮
  206. if (this.pageFlag == casePageFlag.WaitVerify && permissionFind(this.userInfo.permissions,
  207. userPermission.perSH)) {
  208. itemHtml += this._CreateCaseVerifyButton(data);
  209. }
  210. //如果当前登录的账户具备派发权限 且页面为待派发页面 则显示派发按钮
  211. if (this.pageFlag == casePageFlag.WaitAssign && permissionFind(this.userInfo.permissions,
  212. userPermission.perPF)) {
  213. itemHtml += this._CreateCaseAssigButton(data);
  214. }
  215. //如果当前登录的账户具备派发权限 且页面为撤派页面 则显示撤派按钮
  216. if (this.pageFlag == casePageFlag.UndoAssign && permissionFind(this.userInfo.permissions,
  217. userPermission.perPF)) {
  218. itemHtml += this._CreateCaseUndoAssigButton(data);
  219. }
  220. //如果当前登录用户具备处理权限 且页面为待处理案件 则显示处理按钮
  221. if (this.pageFlag == casePageFlag.WaitCheck && permissionFind(this.userInfo.permissions,
  222. userPermission.perCL)) {
  223. itemHtml += this._CreateCaseCheckButton(data);
  224. }
  225. //如果当前登陆用户为审核员或领导,且页面为待督办页面或已督办页面,则显示督办按钮
  226. if ((this.userInfo.userType == userType.memberSH || this.userInfo.userType == userType.memberLD) &&
  227. (this.pageFlag == casePageFlag.WaitSupervise || this.pageFlag == casePageFlag.YesSupervise)) {
  228. itemHtml += this._CreateCaseSuperviseButton(data);
  229. }
  230. itemHtml += "</div>";
  231. /* 下部分内容结束 */
  232. itemHtml += "</div>";
  233. /* 数据行结束 */
  234. itemHtml += "</div>";
  235. li.innerHTML = itemHtml;
  236. /* 此处需要判断一下 如果this.table == undefined 则将li插入到集合中*/
  237. if (this.table != undefined) {
  238. this.table.appendChild(li);
  239. }
  240. },
  241. /**
  242. * 创建普通案件数据
  243. * @param {Object} data 案件
  244. */
  245. _CreateInfoNormal(data) {
  246. var itemHtml = "";
  247. //追加人员信息
  248. itemHtml += "<div class='wc-div-row'>"
  249. itemHtml += "<div style='float: left;'>";
  250. itemHtml += "<span class='app-icon app-icon-member wc-span-icon'></span>";
  251. itemHtml += "<span class='wc-span'>[上报员]" + data.sbmember + "</span>";
  252. itemHtml += "</div>"
  253. itemHtml += "<div style='float: right;'>";
  254. itemHtml += "<span class='app-icon app-icon-sslb wc-span-icon'></span>";
  255. itemHtml += "<span class='wc-span'>" + "空中巡查" + "</span>";
  256. itemHtml += "</div>"
  257. itemHtml += "</div>"
  258. //追加日期信息
  259. itemHtml += "<div class='wc-div-row'>"
  260. itemHtml += "<span class='app-icon app-icon-date wc-span-icon'></span>";
  261. itemHtml += "<span class='wc-span'>[上报日期]" + data.sbdate + "</span>";
  262. itemHtml += "</div>"
  263. //追加描述
  264. itemHtml += "<p>" + data.sbms + "</p>";
  265. return itemHtml;
  266. },
  267. /**
  268. * 创建处理中案件信息
  269. * @param {Object} data 案件
  270. */
  271. _CreateInfoChecking(data) {
  272. var itemHtml = "";
  273. //追加人员信息
  274. itemHtml += "<div class='wc-div-row'>"
  275. itemHtml += "<div style='float: left;'>";
  276. itemHtml += "<span class='app-icon app-icon-member wc-span-icon'></span>";
  277. itemHtml += "<span class='wc-span'>[上报员]" + data.sbmember + "</span>";
  278. itemHtml += "</div>"
  279. itemHtml += "<div style='float: right;'>";
  280. itemHtml += "<span class='app-icon app-icon-sslb wc-span-icon'></span>";
  281. itemHtml += "<span class='wc-span'>" + "空中巡查" + "</span>";
  282. itemHtml += "</div>"
  283. itemHtml += "</div>"
  284. //追加日期信息
  285. itemHtml += "<div class='wc-div-row'>"
  286. itemHtml += "<span class='app-icon app-icon-date wc-span-icon'></span>";
  287. itemHtml += "<span class='wc-span'>[上报日期]" + data.sbdate + "</span>";
  288. itemHtml += "</div>"
  289. //追加描述
  290. itemHtml += "<p>" + data.sbms + "</p>";
  291. return itemHtml;
  292. },
  293. /**
  294. * 创建待复飞案件信息
  295. * @param {Object} data 案件
  296. */
  297. _CreateInfoRepeating(data) {
  298. var itemHtml = "";
  299. //追加人员信息
  300. itemHtml += "<div class='wc-div-row'>"
  301. itemHtml += "<div style='float: left;'>";
  302. itemHtml += "<span class='app-icon app-icon-member wc-span-icon'></span>";
  303. itemHtml += "<span class='wc-span'>[处理员]" + data.clry + "</span>";
  304. itemHtml += "</div>"
  305. itemHtml += "<div style='float: right;'>";
  306. itemHtml += "<span class='app-icon app-icon-sslb wc-span-icon'></span>";
  307. itemHtml += "<span class='wc-span'>" + "空中巡查" + "</span>";
  308. itemHtml += "</div>"
  309. itemHtml += "</div>"
  310. //追加日期信息
  311. itemHtml += "<div class='wc-div-row'>"
  312. itemHtml += "<span class='app-icon app-icon-date wc-span-icon'></span>";
  313. itemHtml += "<span class='wc-span'>[处理日期]" + data.cldate + "</span>";
  314. itemHtml += "</div>"
  315. //追加描述
  316. itemHtml += "<p>" + data.clms + "</p>";
  317. return itemHtml;
  318. },
  319. /**
  320. * 等待审核的案件
  321. * @param {Object} data 案件
  322. */
  323. _CreateInfoVerifying(data) {
  324. var itemHtml = "";
  325. //追加人员信息
  326. itemHtml += "<div class='wc-div-row'>"
  327. itemHtml += "<div style='float: left;'>";
  328. itemHtml += "<span class='app-icon app-icon-member wc-span-icon'></span>";
  329. itemHtml += "<span class='wc-span'>[处理员]" + data.clry + "</span>";
  330. itemHtml += "</div>"
  331. itemHtml += "<div style='float: right;'>";
  332. itemHtml += "<span class='app-icon app-icon-sslb wc-span-icon'></span>";
  333. itemHtml += "<span class='wc-span'>" + "空中巡查" + "</span>";
  334. itemHtml += "</div>"
  335. itemHtml += "</div>"
  336. //追加日期信息
  337. itemHtml += "<div class='wc-div-row'>"
  338. itemHtml += "<span class='app-icon app-icon-date wc-span-icon'></span>";
  339. itemHtml += "<span class='wc-span'>[处理日期]" + data.cldate + "</span>";
  340. itemHtml += "</div>"
  341. //追加描述
  342. itemHtml += "<p>" + data.clms + "</p>";
  343. return itemHtml;
  344. },
  345. /**
  346. * 已结案案件
  347. * @param {Object} data 案件
  348. */
  349. _CreateInfoClose(data) {
  350. var itemHtml = "";
  351. //追加人员信息
  352. itemHtml += "<div class='wc-div-row'>"
  353. itemHtml += "<div style='float: left;'>";
  354. itemHtml += "<span class='app-icon app-icon-member wc-span-icon'></span>";
  355. itemHtml += "<span class='wc-span'>[审核员]" + data.shry + "</span>";
  356. itemHtml += "</div>"
  357. itemHtml += "<div style='float: right;'>";
  358. itemHtml += "<span class='app-icon app-icon-sslb wc-span-icon'></span>";
  359. itemHtml += "<span class='wc-span'>" + "空中巡查" + "</span>";
  360. itemHtml += "</div>"
  361. itemHtml += "</div>"
  362. //追加日期信息
  363. itemHtml += "<div class='wc-div-row'>"
  364. itemHtml += "<span class='app-icon app-icon-date wc-span-icon'></span>";
  365. itemHtml += "<span class='wc-span'>[结案日期]" + data.shdate + "</span>";
  366. itemHtml += "</div>"
  367. itemHtml += "<div class='wc-div-row'>"
  368. itemHtml += "<span class='app-icon app-icon-date wc-span-icon'></span>";
  369. itemHtml += "<span class='wc-span f-color-case-wait-assign'>[发现日期]" + data.sbdate + "</span>";
  370. itemHtml += "</div>"
  371. itemHtml += "<div class='wc-div-row'>"
  372. itemHtml += "<span class='app-icon app-icon-date wc-span-icon'></span>";
  373. itemHtml += "<span class='wc-span f-color-case-wait-check'>[处理日期]" + data.cldate + "</span>";
  374. itemHtml += "</div>"
  375. //追加描述
  376. itemHtml += "<p>" + data.shms + "</p>";
  377. return itemHtml;
  378. },
  379. /**
  380. * 创建撤销派发案件
  381. * @param {Object} data 案件
  382. */
  383. _CreateInfoUndoAssign(data) {
  384. var itemHtml = "";
  385. //追加人员信息
  386. itemHtml += "<div class='wc-div-row'>"
  387. itemHtml += "<div style='float: left;'>";
  388. itemHtml += "<span class='app-icon app-icon-member wc-span-icon'></span>";
  389. itemHtml += "<span class='wc-span'>[派发处理员]" + data.zpry + "</span>";
  390. itemHtml += "</div>"
  391. itemHtml += "<div style='float: right;'>";
  392. itemHtml += "<span class='app-icon app-icon-sslb wc-span-icon'></span>";
  393. itemHtml += "<span class='wc-span'>" + "空中巡查" + "</span>";
  394. itemHtml += "</div>"
  395. itemHtml += "</div>"
  396. //追加日期信息
  397. itemHtml += "<div class='wc-div-row'>"
  398. itemHtml += "<span class='app-icon app-icon-date wc-span-icon'></span>";
  399. itemHtml += "<span class='wc-span'>[派发日期]" + data.zpsj + "</span>";
  400. itemHtml += "</div>"
  401. //追加描述
  402. itemHtml += "<p>" + "请尽快协调处理" + "</p>";
  403. return itemHtml;
  404. },
  405. /**
  406. * 调用高德导航软件 进行导航
  407. * @param {Object} longitude 经度
  408. * @param {Object} latitude 纬度
  409. */
  410. _CallNavigation: function(longitude, latitude) {
  411. mui.plusReady(function() {
  412. if (plus.runtime.isApplicationExist({
  413. pname: 'com.autonavi.minimap'
  414. })) {
  415. //用户已安装高德地图
  416. plus.runtime.openURL('androidamap://navi?sourceApplication=com.knssshy.sj&lat=' +
  417. latitude + '&lon=' +
  418. longitude +
  419. '&dev=0',
  420. function(e) {
  421. plus.nativeUI.confirm("检查到您未安装\"高德地图\".");
  422. });
  423. } else {
  424. muiAlert('您尚未安装高德导航软件,请安装后重试!', "警告")
  425. }
  426. });
  427. },
  428. /**
  429. * 创建导航按钮
  430. * @param {Object} data 当前按钮对应的案件记录 JSONObject
  431. */
  432. _CreateCaseNavigationButton: function(data) {
  433. var strHtml = "";
  434. strHtml +=
  435. "<button type='button' class='mui-btn mui-btn-primary mui-icon app-icon app-icon-navigation wc-btn-child wc-btn-nav' ";
  436. strHtml += "onClick=\"CallNavigation('" + data.lng + "','" + data.lat + "')\">";
  437. strHtml += "导航";
  438. strHtml += "</button>";
  439. return strHtml;
  440. },
  441. /**
  442. * 创建案件详情按钮
  443. * @param {Object} data 当前按钮对应的案件记录 JSONObject
  444. */
  445. _CreateCaseInfoButton: function(data) {
  446. var strHtml = "";
  447. strHtml +=
  448. "<button type='button' class='mui-btn mui-btn-warning mui-icon app-icon app-icon-info wc-btn-child wc-btn-info' ";
  449. strHtml += "onClick=\"CallCaseInfo(" + JSON.stringify(data).replace(/\"/g, "'") + ")\">";
  450. strHtml += "详情";
  451. strHtml += "</button>";
  452. return strHtml;
  453. },
  454. /**
  455. * 创建定位按钮--案件列表中的定位功能
  456. * @param {Object} data 当前按钮对应的案件记录 JSONObject
  457. */
  458. _CreateCaseMapLocationButton: function(data) {
  459. let _self = this;
  460. var strHtml = "";
  461. strHtml +=
  462. "<button type='button' class='mui-btn mui-btn-success mui-icon app-icon app-icon-location wc-btn-child wc-btn-location' ";
  463. /* 此处改造一下 通过ObjectId和表名 传入地图进行定位展示 */
  464. strHtml += "onClick=\"CallMapLocation('" + data.tabName + "','" + data.feaId + "')\">";
  465. strHtml += "定位";
  466. strHtml += "</button>";
  467. return strHtml;
  468. },
  469. /**
  470. * 创建地图定位按钮--地图中展示案件的定位功能
  471. * @param {Object} data 当前按钮对应的案件记录 JSONObject
  472. */
  473. _CreateCaseMapLocationButtonToMap: function(data) {
  474. var strHtml = "";
  475. strHtml +=
  476. "<button type='button' class='mui-btn mui-btn-success mui-icon app-icon app-icon-location wc-btn-child wc-btn-location' ";
  477. strHtml += "onClick=\"location_tabName_feaId_normal('" + data.tabName + "','" + data.feaId +
  478. "')\">";
  479. strHtml += "定位";
  480. strHtml += "</button>";
  481. return strHtml;
  482. },
  483. /**
  484. * 创建案件处理按钮
  485. * @param {Object} data 当前按钮对应的案件记录 JSONObject
  486. */
  487. _CreateCaseCheckButton: function(data) {
  488. var strHtml = "";
  489. strHtml +=
  490. "<button type='button' class='mui-btn mui-btn-danger mui-icon app-icon app-icon-check wc-btn-child' ";
  491. strHtml += "onClick=\"CallCaseCheck(" + JSON.stringify(data).replace(/\"/g, "'") + ")\">";
  492. strHtml += "处理";
  493. strHtml += "</button>";
  494. return strHtml;
  495. },
  496. /**
  497. * 创建案件派发按钮
  498. * @param {Object} data 当前按钮对应的案件记录 JSONObject
  499. */
  500. _CreateCaseAssigButton: function(data) {
  501. var strHtml = "";
  502. strHtml +=
  503. "<button type='button' class='mui-btn mui-btn-danger mui-icon app-icon app-icon-assign wc-btn-child' ";
  504. strHtml += "onClick=\"CallAssign('" + data.casenum + "')\">";
  505. strHtml += "派发";
  506. strHtml += "</button>";
  507. return strHtml;
  508. },
  509. /**
  510. * 创建案件撤派按钮
  511. * @param {Object} data 当前按钮对应的案件记录 JSONObject
  512. */
  513. _CreateCaseUndoAssigButton: function(data) {
  514. var strHtml = "";
  515. strHtml +=
  516. "<button type='button' class='mui-btn mui-btn-danger mui-icon app-icon app-icon-undoassign wc-btn-child' ";
  517. strHtml += "onClick=\"CallUndoAssign('" + data.casenum + "')\">";
  518. strHtml += "撤派";
  519. strHtml += "</button>";
  520. return strHtml;
  521. },
  522. /**
  523. * 创建案件审核按钮
  524. * @param {Object} data 当前按钮对应的案件记录 JSONObject
  525. */
  526. _CreateCaseVerifyButton: function(data) {
  527. var strHtml = "";
  528. strHtml +=
  529. "<button type='button' class='mui-btn mui-btn-danger mui-icon app-icon app-icon-verify wc-btn-child' ";
  530. strHtml += "onClick=\"CallCaseVerify(" + JSON.stringify(data).replace(/\"/g, "'") + ")\">";
  531. strHtml += "审核";
  532. strHtml += "</button>";
  533. return strHtml;
  534. },
  535. /**
  536. * 创建案件督办按钮
  537. * @param {Object} data 当前按钮对应的案件记录 JSONObject
  538. */
  539. _CreateCaseSuperviseButton: function(data) {
  540. var strHtml = "";
  541. strHtml +=
  542. "<button type='button' class='mui-btn mui-btn-danger mui-icon app-icon app-icon-supervise wc-btn-child' ";
  543. strHtml += "onClick=\"CallSupervise('" + data.casenum + "')\">";
  544. strHtml += "督办";
  545. strHtml += "</button>";
  546. return strHtml;
  547. },
  548. /**
  549. * 追加数据
  550. * @param {Object} record 数据记录
  551. */
  552. _addDataToList: function(record) {
  553. this.dataList.push(record);
  554. this._InsertLiToTable(record, this.table, ++this.dataCount);
  555. },
  556. /**
  557. * 网络加载数据
  558. */
  559. _netLoadData: function() {
  560. var self = this;
  561. sendAjax({
  562. data: self.queryModel,
  563. type: 'post',
  564. url: self.ashxName,
  565. waitMessage: '正在查询数据...',
  566. success: function(data) {
  567. //查询成功回调函数
  568. for (var i = 0; i < data.length; i++) {
  569. self._addDataToList(data[i]); //追加数据表
  570. }
  571. //判断加载更多按钮是否显示
  572. if (data.length < self.queryModel.queryCount) {
  573. self._showLoadedMoreDataButton(false);
  574. } else {
  575. self._showLoadedMoreDataButton(true);
  576. }
  577. /* 如果绑定了回调事件 则调用返回 */
  578. if (self.eventQueryResult != undefined) {
  579. self.eventQueryResult(self.dataList);
  580. }
  581. },
  582. error: function(err) {
  583. self._showLoadedMoreDataButton(false);
  584. //查询数据错误回调函数
  585. muiAlert(err, "错误");
  586. },
  587. nodata: function(msg) {
  588. self._showLoadedMoreDataButton(false);
  589. muiAlert(msg, "警告");
  590. /* 如果绑定了回调事件 则调用返回 */
  591. if (self.eventQueryResult != undefined) {
  592. self.eventQueryResult([]);
  593. }
  594. }
  595. })
  596. },
  597. /**
  598. * 加载更多数据
  599. */
  600. _loadManyData: function() {
  601. this.queryModel.startNum = parseInt(this.queryModel.startNum) + parseInt(this.queryModel
  602. .queryCount);
  603. this._netLoadData(); //网络请求加载数据
  604. },
  605. /**
  606. * 显示/隐藏 加载更多数据按钮
  607. * @param {Object} isShow 显示或者隐藏
  608. */
  609. _showLoadedMoreDataButton: function(isShow) {
  610. if (isShow) {
  611. this.btnLoadManyData.className = "mui-btn mui-btn-block mui-btn-danger wc-btn";
  612. } else {
  613. this.btnLoadManyData.className = "mui-btn mui-btn-block mui-btn-danger wc-btn mui-hidden";
  614. }
  615. },
  616. /**
  617. * 创建一个地图页面案件查询结果单条数据的DIV
  618. * @param {JSON} data 案件数据
  619. */
  620. _createCase: function(data) {
  621. var rootDiv = document.createElement('div');
  622. rootDiv.className = 'wc-li wc-li-map';
  623. var itemHtml = "";
  624. itemHtml += "<div class='mui-row'>";
  625. itemHtml += "<div class='wc-row-title-content'>";
  626. itemHtml += "<div class='wc-ico'><img src='../img/menu/" + this._iconClassName(data.state) +
  627. "'/></div>";
  628. itemHtml += "<div class='wc-title' style='color:rgb(0,0,0) !important;'><span>" + data.casenum +
  629. "</span><sup>[" + this._caseStateName(
  630. data.state) + "]" +
  631. "</sup></div>";
  632. itemHtml += "<div class='wc-xzq'>";
  633. itemHtml += "<div class='wc-xzq-ssxz'>" + data.caseVillagesAndTowns + "</div>";
  634. itemHtml += "<div class='wc-xzq-ssxz'>" + data.caseVillage + "</div>";
  635. itemHtml += "</div>"; //行政区div结束
  636. itemHtml += "</div>"; //案件标题行内容结束
  637. itemHtml += "</div>"; //一行结束
  638. itemHtml += "<div class='mui-row wc-li-map-row'>";
  639. itemHtml += "<div class='wc-map-column-content'>";
  640. itemHtml += "<div class='wc-main-content'>";
  641. /* 此处需要根据案件状态的不同生成不同的案件页面 */
  642. if (data.state == caseState.stateWaitAssign) {
  643. itemHtml += this._CreateInfoNormal(data);
  644. } else if (data.state == caseState.stateWaitCheck || data.state == caseState.stateWaitResetCheck) {
  645. itemHtml += this._CreateInfoChecking(data);
  646. } else if (data.state == caseState.stateWaitVerify) {
  647. itemHtml += this._CreateInfoVerifying(data);
  648. } else if (data.state == caseState.stateClose) {
  649. itemHtml += this._CreateInfoClose(data);
  650. } else if (data.state == caseState.stateWaitRepeat || data.state == caseState
  651. .stateWaitResetRepeat) {
  652. itemHtml += this._CreateInfoRepeating(data);
  653. }
  654. itemHtml += "</div>"; //内容结束
  655. itemHtml += "</div>"; //列结束
  656. itemHtml += "<div class='wc-map-column-button'>";
  657. itemHtml += this._CreateCaseNavigationButton(data);
  658. itemHtml += this._CreateCaseInfoButton(data);
  659. itemHtml += this._CreateCaseMapLocationButtonToMap(data);
  660. /* 增加事务性按钮 */
  661. //如果当前登录用户为处理员 且案件状态为待处理或待重处理 则显示处理按钮
  662. if (this.userInfo.userType == userType.memberCL && (data.state == caseState.stateWaitCheck || data
  663. .state == caseState.stateWaitResetCheck)) {
  664. itemHtml += this._CreateCaseCheckButton(data);
  665. }
  666. //如果当前登录的为审核用户 且案件状态为待审核 则显示审核按钮
  667. if (this.userInfo.userType == userType.memberSH && data.state == caseState.stateWaitVerify) {
  668. itemHtml += this._CreateCaseVerifyButton(data);
  669. }
  670. //如果当前登录的为审核用户 且案件状态为待派发 则显示派发按钮
  671. if (this.userInfo.userType == userType.memberSH && data.state == caseState.stateWaitAssign) {
  672. itemHtml += this._CreateCaseAssigButton(data);
  673. }
  674. //如果当前登录的为审核用户 且案件状态为待处理 则显示撤派按钮
  675. if (this.userInfo.userType == userType.memberSH && data.state == caseState.stateWaitCheck) {
  676. itemHtml += this._CreateCaseUndoAssigButton(data);
  677. }
  678. itemHtml += "</div>"; //列结束
  679. itemHtml += "</div>"; //一行结束
  680. rootDiv.innerHTML = itemHtml;
  681. return rootDiv;
  682. },
  683. })
  684. /**
  685. * 挂接方法
  686. */
  687. JTCaseBase.prototype.extend({
  688. /**
  689. * 设置查询模型
  690. * @param {Object} queryModel 查询模型
  691. */
  692. setQueryModel: function(queryModel) {
  693. this.queryModel = queryModel;
  694. },
  695. /**
  696. * 设置附加的查询条件
  697. * @param {Object} strWhere 附加查询条件
  698. */
  699. setAdditionalConditions: function(strWhere) {
  700. this.queryModel.additionalConditions = strWhere;
  701. },
  702. /** 绑定数据表
  703. * @param {Object} table UL 数据表 用于显示数据
  704. */
  705. bindUlTable: function(table) {
  706. var self = this;
  707. this.table = table;
  708. //绑定表格的同时创建一个按钮 用于刷新数据
  709. self.btnLoadManyData = document.createElement('button');
  710. self.btnLoadManyData.className =
  711. "mui-btn mui-btn-block mui-btn-danger wc-btn mui-hidden mui-icon mui-icon-search";
  712. self.btnLoadManyData.setAttribute("data-loading-text", "加载中......");
  713. self.btnLoadManyData.setAttribute("data-loading-icon-position", "right");
  714. self.btnLoadManyData.innerHTML = "加载更多数据";
  715. if (table != undefined) {
  716. table.parentNode.appendChild(self.btnLoadManyData);
  717. }
  718. self.btnLoadManyData.addEventListener('click', function(evn) {
  719. mui(self.btnLoadManyData).button('loading');
  720. setTimeout(function() {
  721. mui(self.btnLoadManyData).button('reset'); //切换为reset状态(即重置为原始的button)
  722. self._loadManyData(); //调用加载更多数据
  723. }.bind(self.btnLoadManyData), 1000);
  724. });
  725. },
  726. /**
  727. * 绑定搜索框
  728. * @param {Object} controlID 搜索框ID
  729. */
  730. bindSearchControl: function(controlID) {
  731. var self = this;
  732. /**
  733. * 搜索框追加事件
  734. */
  735. document.getElementById(controlID).addEventListener('keypress', function(e) {
  736. //判断点击的是否是 搜索 按钮
  737. if (e.keyCode == 13) {
  738. var value = this.value;
  739. self.setAdditionalConditions("ajh like '%" + value + "%'");
  740. document.activeElement.blur();
  741. self.queryData();
  742. }
  743. });
  744. },
  745. /** 绑定搜索框 通过绑定监听 获取查询内容
  746. * @param {Object} controlID 搜索框ID
  747. * @param {Object} callback 返回监听
  748. */
  749. bindSearchControlEvent: function(controlID, callback) {
  750. var self = this;
  751. /**
  752. * 搜索框追加事件
  753. */
  754. document.getElementById(controlID).addEventListener('keypress', function(e) {
  755. //判断点击的是否是 搜索 按钮
  756. if (e.keyCode == 13) {
  757. var value = this.value;
  758. document.activeElement.blur();
  759. callback(value);
  760. }
  761. });
  762. },
  763. /**
  764. * 设置顶部导航栏标题及刷新按钮的回调事件
  765. * @param {Object} title 标题
  766. * @param {Object} callRefresh 刷新回调事件
  767. */
  768. setNView: function(title, callRefresh) {
  769. var curViewView = plus.webview.currentWebview();
  770. var mainPage = curViewView.opener();
  771. //mainPage.getTitleNView().hide();
  772. var selfNViewStyle = {
  773. "titleNView": {
  774. backgroundColor: colorBackground,
  775. titleText: title,
  776. titleColor: colorTitle,
  777. splitLine: {
  778. color: colorLine
  779. },
  780. autoBackButton: true,
  781. buttons: [{
  782. 'float': 'right',
  783. fontSrc: '../fonts/iconfont.ttf',
  784. text: '\ue797',
  785. onclick: callRefresh,
  786. }]
  787. }
  788. };
  789. curViewView.setStyle(selfNViewStyle);
  790. },
  791. /**
  792. * 刷新数据 即重置数据
  793. */
  794. refreshData: function() {
  795. this.dataCount = 0; //初始化数据数量
  796. this.queryModel.additionalConditions = ""; //清除附加条件
  797. this.table.innerHTML = ""; //初始化显示表格
  798. this.dataList = []; //初始化数据列表
  799. this.queryModel.startNum = '0'; //初始化查询编号
  800. this._netLoadData(); //网络请求加载数据
  801. },
  802. /**
  803. * 查询数据
  804. */
  805. queryData: function() {
  806. this.dataCount = 0; //初始化数据数量
  807. this.table.innerHTML = ""; //初始化显示表格
  808. this.dataList = []; //初始化数据列表
  809. this.queryModel.startNum = '0'; //初始化查询编号
  810. this._netLoadData(); //网络请求加载数据
  811. },
  812. /**
  813. * 输入查询 如果查询案件Id数组只输入一个 则采用模糊查询 否则采用in查询
  814. * @param {Array[string,string,...]} caseIds 案件Ids
  815. */
  816. queryDataByCaseId: function(caseIds) {
  817. /* 组合查询条件 */
  818. var queryWhere = "";
  819. if (caseIds.length == 1) {
  820. queryWhere = "ajh like '%" + caseIds[0] + "%'"
  821. } else {
  822. for (var i = 0; i < caseIds.length; i++) {
  823. if (queryWhere === '') queryWhere += caseIds[i];
  824. else queryWhere += "','" + caseIds[i];
  825. }
  826. queryWhere = "ajh in ('" + queryWhere + "')"
  827. }
  828. this.dataCount = 0; //初始化数据数量
  829. this.dataList = []; //初始化数据列表
  830. this.queryModel.startNum = '0'; //初始化查询编号
  831. this.queryModel.queryType = 'Input'; //设置查询方式
  832. this.queryModel.additionalConditions = queryWhere; //赋值查询条件
  833. this.ashxName = 'appQueryCases'; //设置查询URL地址
  834. this._netLoadData(); //网络请求加载数据
  835. },
  836. /**
  837. * 根据输入的范围进行查询
  838. * @param {string} extent 查询范围 经纬度字符串 经度1,纬度1.......
  839. */
  840. queryDataByExtent: function(extent) {
  841. /* 组合查询条件 */
  842. var queryWhere = "";
  843. this.dataCount = 0; //初始化数据数量
  844. this.dataList = []; //初始化数据列表
  845. this.queryModel.startNum = '0'; //初始化查询编号
  846. this.queryModel.queryType = 'Normal'; //设置查询方式
  847. this.queryModel.additionalConditions = ""; //赋值查询条件
  848. this.queryModel.queryExtent = extent; //查询范围
  849. this.ashxName = 'appQueryCasesByExtent'; //设置查询URL地址
  850. this._netLoadData(); //网络请求加载数据
  851. },
  852. /**
  853. * 根据案件创建div
  854. * @param {Object} data 案件
  855. */
  856. createCase: function(data) {
  857. return this._createCase(data);
  858. },
  859. /**
  860. * 删除列表中的案件项
  861. * @param {string} caseNum 案件号所代表的案件Item
  862. */
  863. removeCaseItem: function(caseNum) {
  864. if (this.pageFlag != casePageFlag.Map && this.table != undefined) {
  865. var childItem = document.getElementById(caseNum);
  866. if (childItem != undefined) {
  867. this.table.removeChild(childItem);
  868. }
  869. } else {
  870. /* 回调出去 */
  871. if (this.eventCaseChange != undefined) {
  872. this.eventCaseChange(caseNum);
  873. }
  874. }
  875. },
  876. /**
  877. * 根据案件状态获取状态中文描述
  878. * @param {string} state 案件状态
  879. */
  880. caseStateName: function(state) {
  881. return this._caseStateName(state);
  882. },
  883. /**
  884. * @param {string} casenum 案件号
  885. * @param {function} callback 查询成功回调
  886. */
  887. queryCaseByCasenum: function(casenum, callback) {
  888. var self = this;
  889. /* 初始化查询条件 */
  890. var queryWhere = "ajh = '" + casenum + "'";
  891. self.queryModel.startNum = '0'; //初始化查询编号
  892. self.queryModel.additionalConditions = queryWhere; //赋值查询条件
  893. self.queryModel.queryType = 'Normal';
  894. /* 联网查询 */
  895. sendAjax({
  896. data: self.queryModel,
  897. type: 'post',
  898. url: self.ashxName,
  899. waitMessage: '正在查询案件...',
  900. success: function(data) {
  901. //查询成功回调函数 只返回一个案件
  902. if (callback != undefined) callback(data[0]);
  903. },
  904. error: function(err) {
  905. //查询数据错误回调函数
  906. muiAlert(err, "错误");
  907. },
  908. nodata: function(msg) {
  909. muiAlert(msg, "警告");
  910. }
  911. })
  912. }
  913. });
  914. //定义数据基础类
  915. var caseBase = undefined; //定义一个全局变量 主要是为了管理案件
  916. /**
  917. * 调用高德导航软件 进行导航
  918. * @param {Object} longitude 经度
  919. * @param {Object} latitude 纬度
  920. */
  921. function CallNavigation(longitude, latitude) {
  922. mui.plusReady(function() {
  923. if (plus.runtime.isApplicationExist({
  924. pname: 'com.autonavi.minimap'
  925. })) {
  926. //用户已安装高德地图
  927. plus.runtime.openURL('androidamap://navi?sourceApplication=com.knssshy.sj&lat=' + latitude +
  928. '&lon=' +
  929. longitude +
  930. '&dev=0',
  931. function(e) {
  932. plus.nativeUI.confirm("检查到您未安装\"高德地图\".");
  933. });
  934. } else {
  935. muiAlert('您尚未安装高德导航软件,请安装后重试!', "警告")
  936. }
  937. });
  938. }
  939. /**
  940. * 地图上案件的定位功能 地图页面
  941. * @param {JSON} jsonCase 案件的JSON格式
  942. */
  943. function CallMapLocationToMap(jsonCase) {
  944. var objWebview = plus.webview.currentWebview();
  945. var longitude = jsonCase.lng;
  946. var latitude = jsonCase.lat;
  947. var title = jsonCase.casenum;
  948. var state = caseBase.caseStateName(jsonCase.state);
  949. var tbmj = jsonCase.tbmj;
  950. /* 执行定位函数 */
  951. objWebview.evalJS("mapLocation('" + longitude + "','" + latitude + "','" + title + "','" + state + "','" + tbmj +
  952. "');");
  953. }
  954. /**
  955. * 调用地图定位功能 案件列表
  956. * @param {string} tabName 案件表名称
  957. * @param {string} feaId 要素唯一标识
  958. */
  959. function CallMapLocation(tabName, feaId) {
  960. toMapLocation_tabName_feaId(tabName, feaId, '案件定位');
  961. }
  962. /**
  963. * 调用显示案件详细信息
  964. * @param {Object} jsonCase case JSON格式
  965. */
  966. function CallCaseInfo(jsonCase) {
  967. createAndOpenPage({
  968. htmlPath: 'case-info.html',
  969. autoback: true,
  970. title: '案件详情',
  971. extras: jsonCase,
  972. });
  973. }
  974. /**
  975. * 调用案件处理页面
  976. * @param {Object} jsonCase case JSON格式
  977. */
  978. function CallCaseCheck(jsonCase) {
  979. createAndOpenPage({
  980. htmlPath: 'case-check.html',
  981. autoback: true,
  982. title: '案件处理',
  983. extras: jsonCase,
  984. });
  985. }
  986. /**
  987. * 调用案件审核页面
  988. * @param {Object} jsonCase case JSON格式
  989. */
  990. function CallCaseVerify(jsonCase) {
  991. //由于版本变化 更改该案件的传递方法
  992. //第一次加载时 为打开新窗口 通过extras 传递方法
  993. //第二次加载时 由于已经加载 改变值的传递方法
  994. var windowID = "case-verify.html"; //新窗口ID
  995. var subPage = plus.webview.getWebviewById(windowID);
  996. if (subPage == null) {
  997. mui.openWindow({
  998. url: windowID,
  999. id: windowID,
  1000. extras: jsonCase,
  1001. });
  1002. } else {
  1003. //设置自定义事件 并传递参数
  1004. mui.fire(subPage, "new", jsonCase);
  1005. //打开窗口
  1006. mui.openWindow({
  1007. id: windowID,
  1008. });
  1009. }
  1010. }
  1011. /**
  1012. * 调用案件督办页面
  1013. * @param {string} caseId 案件编号
  1014. */
  1015. function CallSupervise(caseId) {
  1016. createAndOpenPage({
  1017. htmlPath: 'case-supervise.html',
  1018. autoback: true,
  1019. title: '案件督办',
  1020. extras: {
  1021. caseId: caseId,
  1022. },
  1023. });
  1024. }
  1025. /**
  1026. * 案件撤销处理
  1027. * @param {Object} caseNum 案件编号
  1028. */
  1029. function CallUndoAssign(caseNum) {
  1030. var self = this;
  1031. var msg = "你确定要撤销案件编号为【" + caseNum + "】案件派发吗?";
  1032. muiConfirm(msg, '撤派', function() {
  1033. /* 创建派发模型 */
  1034. var assignData = {
  1035. casenum: caseNum,
  1036. userId: '',
  1037. type: 'undo',
  1038. }
  1039. /* 远程派发 */
  1040. sendAjax({
  1041. url: 'appCaseAssign',
  1042. type: 'post',
  1043. data: assignData,
  1044. waitMessage: '正在撤派...',
  1045. success: function(resData) {
  1046. muiAlert(resData[0].msg, "提示", function() {
  1047. if (caseBase != undefined) {
  1048. //如果派发成功 则删除该项内容
  1049. caseBase.removeCaseItem(caseNum);
  1050. }
  1051. });
  1052. },
  1053. error: function(err) {
  1054. muiAlertError(err);
  1055. }
  1056. });
  1057. })
  1058. }
  1059. /**
  1060. * 调用案件派发
  1061. * @param {Object} casenum 案件ID
  1062. */
  1063. function CallAssign(casenum) {
  1064. //传递的Case数据
  1065. var tempCaseModel = {
  1066. casenum: casenum,
  1067. }
  1068. /* 联网查询关联的执法账号 */
  1069. sendAjax({
  1070. url: 'appQueryCaseJoinUsers',
  1071. waitMessage: '正在联网查询...',
  1072. type: 'post',
  1073. data: tempCaseModel,
  1074. success: function(data) {
  1075. /* 如果有popover 则让其关闭 否则导致重叠遮挡 */
  1076. mui('.mui-popover').popover('hide');
  1077. var tempUsers = [];
  1078. for (var i = 0; i < data.length; i++) {
  1079. tempUsers.push({
  1080. value: data[i].selCode,
  1081. text: data[i].selName,
  1082. });
  1083. }
  1084. var assignPicker = new mui.PopPicker({
  1085. buttons: ['关闭', '派发'],
  1086. });
  1087. assignPicker.setData(tempUsers);
  1088. assignPicker.show(function(items) {
  1089. var uId = items[0].value;
  1090. var uName = items[0].text;
  1091. var msg = "确认将编号为【" + casenum + "】的案件派发给【" + uName + "】处理吗?";
  1092. muiConfirm(msg, '派发', function() {
  1093. CaseAssign(casenum, uId);
  1094. });
  1095. });
  1096. },
  1097. error: function(err) {
  1098. muiAlertError(err);
  1099. }
  1100. });
  1101. }
  1102. /**
  1103. * @param {Object} caseNum 案件编号
  1104. * @param {Object} assignUserId 派发的用户ID
  1105. */
  1106. function CaseAssign(caseNum, assignUserId) {
  1107. /* 创建派发模型 */
  1108. var assignData = {
  1109. casenum: caseNum,
  1110. userId: assignUserId,
  1111. type: 'assign',
  1112. }
  1113. /* 远程派发 */
  1114. sendAjax({
  1115. url: 'appCaseAssign',
  1116. type: 'post',
  1117. data: assignData,
  1118. waitMessage: '正在派发...',
  1119. success: function(resData) {
  1120. muiAlert(resData[0].msg, "提示", function() {
  1121. if (caseBase != undefined) {
  1122. //如果派发成功 则删除该项内容
  1123. caseBase.removeCaseItem(caseNum);
  1124. }
  1125. });
  1126. },
  1127. error: function(err) {
  1128. muiAlertError(err);
  1129. }
  1130. })
  1131. }
  1132. /**
  1133. * 刷新数据表 主要是处理、派发、撤派、审核、复飞成功后 删除对应的数据项
  1134. * @param {string} casenum 案件编号 案件domId
  1135. */
  1136. function refreshDataTable(casenum) {
  1137. document.getElementById(casenum).remove();
  1138. }