dmzxsHomep.ss.jsp 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  1. <html lang="cn">
  2. <head>
  3. <meta charset="UTF-8">
  4. <js.ss file="/ss/growHeight.js"/>
  5. <js.ss file="/ss/jquery/jquery.ellipsis.js"/>
  6. <js.ss file="/ss/datePicker/WdatePicker.js"/>
  7. <js.ss file="/ss/edit.js"/>
  8. <js.ss file="/ss/echarts/echarts.js"/>
  9. <js.ss file="/ss/myEcharts.js"/>
  10. <style>
  11. #big_pie_kqtj${sybjId}> .ss-placeholder-child,
  12. #small_pie > .ss-placeholder-child {
  13. background: transparent;
  14. }
  15. #big_pie_kqtj${sybjId}
  16. {
  17. display: block;
  18. position: relative;
  19. width: calc(100% - 60px);
  20. margin-left: 5px;
  21. height: calc(100% - 7px);
  22. overflow-y: hidden !important;
  23. }
  24. #big_pie_kqtj${sybjId}
  25. .pie {
  26. position: absolute !important;
  27. height: 100%;
  28. width: 100%;
  29. }
  30. </style>
  31. </head>
  32. <body class="drawer drawer--right" style="background-color: #f2f2f2;overflow-x: hidden;">
  33. <div id="sybj">
  34. <div class="plugin-component-div">
  35. <div id="bt" class="plugin-title hLine-highlightBlod" style="margin-bottom: 5px;">
  36. <span refreshClass="todoPlugin-loadingIcon" class="img-header plugin-icon icon-chart"></span>
  37. <span style="vertical-align: middle;">在校生人数统计(点名)</span>
  38. <span style="float: right;margin-right: 6px;">
  39. <span class="icon-setHelpButton" style="position: relative;top: 12px;display: inline-block;"></span>
  40. <span class="icon-helpButton" style="position: relative;top: 12px;"></span>
  41. </span>
  42. </div>
  43. <div id="sybjBody" style="height: calc(100% - 50px)!important;width: 100%;box-sizing: border-box;">
  44. <div id="sybjBodyInner" style="height: 100%;">
  45. <div class="smallScrollbar" id="bj${sybjId}" style="height: 100%;">
  46. <div class="graph-list scrollbar">
  47. <div style="height:calc(50% - 1px);border-bottom: 1px solid #ccc;">
  48. <div id="big_pie_kqtj${sybjId}" style="height:100%;float: left;overflow:hidden;"></div>
  49. <div id="bar_bjdmTj${sybjId}" style="width:50px;height:100%;float: right;margin-right: 5px;"></div>
  50. </div>
  51. <div id="big_pie_kqtj${sybjId}_zxt" style="height:50%;"></div>
  52. </div>
  53. </div>
  54. </div>
  55. </div>
  56. <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQIW2NkAAIAAAoAAggA9GkAAAAASUVORK5CYII=" onload="initJs${sybjId}(this)"/>
  57. </div>
  58. </div>
  59. <script>
  60. var initJs${sybjId}=function(img){
  61. console.log("dmzxsHomep.ss.jsp");
  62. var color = ['#6c9fd3', "#d14a61"];
  63. var bigDom${sybjId} = $("#bj${sybjId}").find("div#big_pie_kqtj${sybjId}")[0];
  64. initPie_kqtj();
  65. var count${sybjId} = 0;
  66. function initPie_kqtj(val) {
  67. var vals = val || {};
  68. $.ajax({
  69. type: "post",
  70. url: "<serv.ss name='dmzxsHomep_refresh'/>", // :"kqtj"。Lin
  71. data: vals,
  72. dataType: "json",
  73. success: function(res) {
  74. count${sybjId} = 0; //防止数据叠加
  75. var dtkqtj = res.dtkqtj;
  76. for (var i = 0; i < res.dtkqtj.length; i++) {
  77. count${sybjId} += parseInt(dtkqtj[i].value);
  78. }
  79. var obj = {
  80. id: bigDom${sybjId}.id,
  81. //name: '考勤情况',
  82. dataList: dtkqtj,
  83. clickFunction: openDetail_kqtj,
  84. optionObj: optionPie
  85. };
  86. //饼状图
  87. MyECharts.init(obj);
  88. //右边柱状图
  89. initBar${sybjId}(res);
  90. //加载折线图
  91. zxt${sybjId}(res.zxt);
  92. }
  93. });
  94. }
  95. function initBar${sybjId}(res) {
  96. var zs = res.zs;
  97. var dmzs = res.dmzs;
  98. var wdmzs = res.wdmbj;
  99. var objDmzs = {
  100. value: dmzs,
  101. dmType: "ydm"
  102. }
  103. var objWdmzs = {
  104. value: wdmzs,
  105. dmType: "wdm"
  106. }
  107. barOption.yAxis.max = zs;
  108. barOption.series[0].data[0] = objDmzs;
  109. barOption.series[1].data[0] = objWdmzs;
  110. var targetDOM = document.getElementById("bar_bjdmTj${sybjId}");
  111. var myChart = echarts.init(targetDOM);
  112. myChart.on("click", clickBarClick);
  113. myChart.setOption(barOption, true);
  114. }
  115. function clickBarClick(param) {
  116. var data = param.data;
  117. <%-- 改,去掉 bjdmTj_tjtz("统计跳转") 空服务。Lin
  118. var url = '@service{name:"bjdmTj_tjtz",dest:"bjdm_bm",show:"wdDialog",param:{dmType:"wdVal{dmType}"},width:880,height:600}@'; --%>
  119. var url = '<serv.ss dlg="true" dest="dmzxsHomep_bm" parm="{dmType:&quot;ssVal{dmType}&quot;}" width="880" height="600"/>';
  120. url = wd.display.replaceDynamicParam(url, data);
  121. eval(url);
  122. }
  123. var barOption = {
  124. tooltip: {
  125. trigger: 'axis',
  126. axisPointer: {
  127. type: 'shadow'
  128. }
  129. },
  130. grid: {
  131. y: 0,
  132. left: '-3%',
  133. right: '6%',
  134. bottom: '5%',
  135. x2: 2,
  136. containLabel: true
  137. },
  138. yAxis: {
  139. type: 'value',
  140. show: false,
  141. max: 320 //设置最大值
  142. },
  143. xAxis: {
  144. type: 'category',
  145. show: false
  146. },
  147. series: [{
  148. name: '已点名班级',
  149. stack:'总人数',
  150. type: 'bar',
  151. data: [120],
  152. barWidth: 30,
  153. z: 10,
  154. itemStyle: {
  155. normal: {
  156. color: '#6c9fd3'
  157. }
  158. },
  159. label: {
  160. normal: {
  161. show: true
  162. }
  163. },
  164. },{
  165. name: '未点名班级',
  166. stack:'总人数',
  167. type: 'bar',
  168. z: 1,
  169. data: [180],
  170. barWidth: 30,
  171. itemStyle: {
  172. normal: {
  173. color: '#cccccc'
  174. }
  175. },
  176. label: {
  177. normal: {
  178. show: true
  179. }
  180. },
  181. }]
  182. };
  183. function formatter(param) {
  184. var bzxStr="";
  185. var zxStr="";
  186. var zrs=count${sybjId};
  187. if(param.data.tip=='qq'){
  188. bzxStr=" 不在校人数 : "+param.value;
  189. zxStr=" <br/>在校人数 :"+(zrs-param.value);
  190. }else{
  191. bzxStr=" 不在校人数 : "+(zrs-param.value);
  192. zxStr=" <br/>在校人数 :"+param.value;
  193. }
  194. showStr=bzxStr+zxStr;
  195. return showStr;
  196. }
  197. var optionPie = {
  198. tooltip: {
  199. trigger: 'item',
  200. formatter: formatter,
  201. position: function(point, params, dom, rect, size) {
  202. var viewSize=size.viewSize;
  203. var width=viewSize[0];
  204. var height=viewSize[1];
  205. var contentSize=size.contentSize;
  206. var contentWidth=contentSize[0];
  207. var contentHeigh=contentSize[1];
  208. var mouseX=point[0];
  209. var mouseY=point[1];
  210. var x=0;
  211. var y=0;
  212. if((mouseY+contentHeigh)<=height){
  213. //显示在左下角
  214. x=mouseX+10;
  215. y=mouseY;
  216. }else{
  217. //显示在右上角
  218. x=mouseX+10;
  219. y=mouseY-contentHeigh;
  220. if(y<=0){
  221. y=0;
  222. }
  223. }
  224. return [x, y];
  225. }
  226. }
  227. }
  228. var option = {
  229. color: color,
  230. tooltip: {
  231. trigger: 'axis',
  232. formatter: function(param) {
  233. // return param[0].axisValueLabel + "<br/>总人数 :" + count${sybjId} + "<br/>" + param[0].seriesName + " : " + param[0].value;
  234. return param[0].axisValueLabel +"<br/>" + param[0].seriesName + " : " + param[0].value + "<br/>在校人数 : " + param[0].data.zx ;
  235. }
  236. },
  237. grid: {
  238. top: '38%',
  239. left: '10%',
  240. bottom: '7%',
  241. right: '10%',
  242. containLabel: true,
  243. tooltip: {
  244. axisPointer: {
  245. label: {
  246. formatter: function(param) {
  247. return "第" + param.value + "周 ";
  248. }
  249. }
  250. }
  251. }
  252. },
  253. xAxis: {
  254. type: 'category',
  255. data: [],
  256. name: '周'
  257. },
  258. yAxis: {
  259. type: 'value',
  260. splitLine: {
  261. show: false
  262. },
  263. name: '不在校人数',
  264. axisLabel: {
  265. show: false
  266. },
  267. nameTextStyle: {
  268. padding: [0, 0, 0, 30]
  269. }
  270. },
  271. series: [{
  272. name: '不在校人数',
  273. type: 'bar',
  274. data: [1, -2, 2, 5, 3, 2, 5]
  275. }]
  276. };
  277. function zxt${sybjId}(data) {
  278. var xAxisData = [];
  279. var zxrsArray = [];
  280. var kkrsArray = [];
  281. for (var i in data) {
  282. xAxisData.push(data[i].zc);
  283. kkrsArray.push({value:data[i].bzx,zx:data[i].zx,bzx:data[i].bzx})
  284. /*kkrsArray.push(data[i].bzx);*/
  285. }
  286. option.xAxis.data = xAxisData;
  287. option.series[0].data = kkrsArray;
  288. var targetDOM = document.getElementById("big_pie_kqtj${sybjId}_zxt");
  289. var myChart = echarts.init(targetDOM);
  290. myChart.setOption(option, true);
  291. }
  292. function openDetail_kqtj(param) {
  293. var tip = param.data.tip;
  294. var json = JSON.parse('{"tip":"' + encodeURI(tip) + '"}');
  295. <%-- 改,去掉 tjtz("统计跳转") 空服务。Lin
  296. var url = '@service{name:"tjtz",dest:"bmtj",show:"wdDialog",param:{tip:"wdVal{tip}"},width:880,height:600}@'; --%>
  297. var url = '<serv.ss dlg="true" dest="dmzxsHomep_bmtj" parm="{tip:&quot;ssVal{tip}&quot;}" width="880" height="600"/>';
  298. url = wd.display.replaceDynamicParam(url, json);
  299. eval(url);
  300. }
  301. //3小时刷新一下统计图
  302. //var intervalId = window.setInterval(initPie_kqtj, 1000 * 60 * 60 * 3);
  303. }
  304. </script>
  305. </body>
  306. </html>