khpm.default.js 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. /**
  2. * 作者:王成
  3. * 创建日期:2021年12月10日
  4. * 操作系统:MAC
  5. * 描述:考核排名页面独有脚本
  6. */
  7. /**
  8. * 公共变量
  9. */
  10. var countPieData = []; //统计饼图数据
  11. /* 获取屏幕的尺寸 */
  12. var pageSize = getPageSize();
  13. /**
  14. * 同步统计饼图数据
  15. * @param {string} domId 显示统计饼图的domId
  16. * @param {function} callback 完成回调
  17. */
  18. function asyncCountData(domId, callback) {
  19. /**
  20. * 创建案件动态
  21. */
  22. sendAjax({
  23. type: 'post',
  24. waitMessage: '正在同步案件统计数据...',
  25. url: 'appQueryXzqCaseCount',
  26. data: {
  27. userId: joinUser.userID,
  28. type: 'all',
  29. },
  30. success: function(resData) {
  31. countPieData = [];
  32. for (var i = 0; i < resData.length; i++) {
  33. countPieData.push({
  34. value: resData[i].case_all,
  35. name: resData[i].xzqName,
  36. });
  37. }
  38. showCountPie(domId, countPieData);
  39. if (callback != undefined) callback();
  40. },
  41. error: function(err) {
  42. muiAlertError(err);
  43. }
  44. })
  45. }
  46. /**
  47. * 显示统计的饼图
  48. */
  49. function showCountPie(domId, jsonData) {
  50. var pieRadiusWidth = '65%';
  51. if (pageSize.width <= PageSize.smartSize) {
  52. pieRadiusWidth = '35%';
  53. }
  54. var pie = new CrCharts({
  55. domId: domId,
  56. });
  57. pie.createPie({
  58. data: jsonData,
  59. isAria: false,
  60. lineColor: 'rgb(133, 215, 253)',
  61. labelColor: 'rgb(255,255,255)',
  62. perLabelColor: 'rgb(129,181,218)',
  63. radius: [10, pieRadiusWidth],
  64. }, '案件统计');
  65. }
  66. /* 趋势统计数据 */
  67. var countTrendData = [];
  68. /**
  69. * 同步趋势变化统计数据
  70. * @param {select} trendType 趋势数据统计周期 day/week/month/year/all
  71. */
  72. function asyncCountTrend(trendType) {
  73. /**
  74. * 创建案件动态
  75. */
  76. sendAjax({
  77. type: 'post',
  78. waitMessage: '正在同步趋势变化数据...',
  79. url: 'appQueryXzqCaseCountByPeriod',
  80. data: {
  81. userId: joinUser.userID,
  82. type: trendType,
  83. },
  84. success: function(resData) {
  85. countTrendData = [];
  86. var trendData = resData[0].trends;
  87. var countData = resData[0].counts;
  88. /* 展示案件实时信息 */
  89. $("#divCaseSubmit").html(trendData[0].currentvalue + '件');
  90. $("#divCaseAssign").html(trendData[3].currentvalue + '件');
  91. $("#divCaseCheck").html(trendData[1].currentvalue + '件');
  92. $("#divCaseVerify").html(trendData[4].currentvalue + '件');
  93. $("#divCaseWaitCheck").html(trendData[2].currentvalue + '件');
  94. /* 赋值案件信息 */
  95. for (var i = 0; i < 3; i++) {
  96. countTrendData.push({
  97. title: trendData[i].key,
  98. value: trendData[i].percentage,
  99. trend: trendData[i].trend,
  100. });
  101. }
  102. /* 展示变化趋势 */
  103. showCountTrend(countTrendData, trendType);
  104. /* 展示统计柱状图 */
  105. showCountTrendBar(countData);
  106. },
  107. error: function(err) {
  108. muiAlertError(err);
  109. }
  110. })
  111. }
  112. /**
  113. * @param {array[json]} options 配置项
  114. * title{string}:标题
  115. * value{string}:百分比值
  116. * trend{'down'/'up'}:上升或下降 上升可不设置
  117. * @param {string} trendType 类型
  118. */
  119. function showCountTrend(options, trendType) {
  120. var cntTrendHtml = "";
  121. if (trendType === 'day') {
  122. cntTrendHtml = "<div class='cr-cnt-echarts-left-label'>日度环比</div>";
  123. } else if (trendType === 'week') {
  124. cntTrendHtml = "<div class='cr-cnt-echarts-left-label'>周度环比</div>";
  125. } else if (trendType === 'month') {
  126. cntTrendHtml = "<div class='cr-cnt-echarts-left-label'>月度环比</div>";
  127. } else if (trendType === 'year') {
  128. cntTrendHtml = "<div class='cr-cnt-echarts-left-label'>年度环比</div>";
  129. } else {
  130. cntTrendHtml = "<div class='cr-cnt-echarts-left-label'>环比</div>";
  131. }
  132. for (var i = 0; i < options.length; i++) {
  133. var item = options[i];
  134. cntTrendHtml += "<div class='cr-cnt-echarts-left-panel'>";
  135. cntTrendHtml += "<div class='cr-cnt-echarts-left-panel-child-left'>";
  136. cntTrendHtml += "<span class='cr-cnt-echarts-left-title'>" + item.title + "</span>";
  137. if (item.trend == undefined || item.trend == 'up') {
  138. cntTrendHtml += "<span class='cr-cnt-echarts-left-value'>" + item.value + "</span>";
  139. } else {
  140. cntTrendHtml += "<span class='cr-cnt-echarts-left-value cr-cnt-echarts-left-value-down'>" + item.value +
  141. "</span>";
  142. }
  143. cntTrendHtml += "</div>";
  144. cntTrendHtml += "<div class='cr-cnt-echarts-left-panel-child-right'>";
  145. if (item.trend == undefined || item.trend == 'up') {
  146. cntTrendHtml += "<span class='cr-cnt-echarts-left-ico app-icon app-icon-arrow-up'></span>";
  147. } else {
  148. cntTrendHtml +=
  149. "<span class='cr-cnt-echarts-left-ico cr-cnt-echarts-left-ico-down app-icon app-icon-arrow-down'></span>";
  150. }
  151. cntTrendHtml += "</div>";
  152. cntTrendHtml += "</div>";
  153. }
  154. $('#divCountTrend').html(cntTrendHtml);
  155. }
  156. /* 底部统计柱状图控件 */
  157. var objBarCaseCount = undefined;
  158. /**
  159. * 显示案件柱状图
  160. * @param {json} jsonData 配置数据
  161. */
  162. function showCountTrendBar(jsonData) {
  163. /* 获取页面大小 */
  164. var pageSize = getPageSize();
  165. var dataZoomX = undefined;
  166. if (pageSize.width <= PageSize.smartSize) dataZoomX = true;
  167. var labels = [];
  168. var datas = [{
  169. name: '已派发',
  170. data: [],
  171. color: 'rgb(38,31,135)',
  172. }, {
  173. name: '处理中',
  174. data: [],
  175. color: 'rgb(241,25,39)',
  176. }, {
  177. name: '复飞中',
  178. data: [],
  179. color: 'rgb(247,184,31)',
  180. }, {
  181. name: '审核中',
  182. data: [],
  183. color: 'rgb(155,78,206)',
  184. }, {
  185. name: '已结案',
  186. data: [],
  187. color: 'rgb(30,125,22)',
  188. }];
  189. /* 循环数据和标签 */
  190. for (var i = 0; i < jsonData.length; i++) {
  191. var item = jsonData[i];
  192. var caseAll = getEChartsValue(item.case_all);
  193. if (caseAll >= 1) {
  194. labels.push(item.xzqName);
  195. var assign = getEChartsValue(parseFloat(item.case_all) - parseFloat(item.wait_assign));
  196. var waitCheck = getEChartsValue(item.wait_check);
  197. var waitFlight = getEChartsValue(item.wait_flight);
  198. var waitVerify = getEChartsValue(item.wait_verify);
  199. var close = getEChartsValue(item.case_close);
  200. datas[0].data.push(assign);
  201. datas[1].data.push(waitCheck);
  202. datas[2].data.push(waitFlight);
  203. datas[3].data.push(waitVerify);
  204. datas[4].data.push(close);
  205. }
  206. }
  207. /* 再循环数据 */
  208. /* 添加社区占地规划驾驶舱 */
  209. var bbsData = {
  210. title: '案件统计',
  211. labels: labels,
  212. datas: datas,
  213. xrotate: 45,
  214. gridBottom: 80,
  215. dataZoomX: dataZoomX,
  216. }
  217. if (objBarCaseCount != null && objBarCaseCount != "" && objBarCaseCount != undefined) objBarCaseCount.dispose();
  218. objBarCaseCount = new CrCharts({
  219. domId: 'divCountTrendBar',
  220. labelColor: 'rgb(255,255,255)',
  221. legendTextColor: 'rgb(255,255,255)',
  222. xAxisLineColor: 'rgba(255,255,255,1.0)',
  223. yAxisLineColor: 'rgb(133, 215, 253)',
  224. splitLineColor: 'rgba(255,255,255,0.3)',
  225. xAxisLabel: {
  226. color: "rgba(255,255,255,1.0)",
  227. fontSize: 12,
  228. fontFamily: 'TTTGB-Medium',
  229. interval: 0,
  230. },
  231. yAxisLabel: {
  232. color: "rgb(133, 215, 253)",
  233. fontSize: 12,
  234. fontFamily: 'TTTGB-Medium',
  235. interval: 0,
  236. },
  237. });
  238. objBarCaseCount.createVerticalBar(bbsData, 60, false, ['件', '件', '件', '件', '件']);
  239. }
  240. /**
  241. * 点击事件
  242. */
  243. /**
  244. * 案件趋势统计点击事件
  245. * @param {Object} obj 点击对象 此处为按钮
  246. * @param {string} trendType 趋势数据统计周期 day/week/month/year/all
  247. */
  248. function Click_Event_Case_Count(obj, trendType) {
  249. $('.mui-btn').removeClass('cr-active');
  250. $(obj).addClass('cr-active');
  251. asyncCountTrend(trendType);
  252. }
  253. /**
  254. * 镇街排名点击事件
  255. */
  256. function EventClick_zjpm() {
  257. createAndOpenPage({
  258. htmlPath: 'page-khpm-zjxq.html',
  259. autoback: true,
  260. title: '镇街排名(按执法率)'
  261. });
  262. }
  263. /**
  264. * 村庄排名点击事件
  265. */
  266. function EventClick_czpm() {
  267. createAndOpenPage({
  268. htmlPath: 'page-khpm-czxq.html',
  269. autoback: true,
  270. title: '村庄排名(按执法率)'
  271. });
  272. }
  273. /**
  274. * 面积排名点击事件
  275. */
  276. function EventClick_area() {
  277. createAndOpenPage({
  278. htmlPath: 'page-khpm-area.html',
  279. autoback: true,
  280. title: '镇街排名(按面积)'
  281. });
  282. }