usersScoreStatistics.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  6. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  7. <title>我的得分</title>
  8. <link rel="stylesheet" href="../../../assets/libs/layui/css/layui.css"/>
  9. <link rel="stylesheet" href="../../../assets/module/formSelects/formSelects-v4.css"/>
  10. <link rel="stylesheet" href="../../../assets/module/admin.css?v=312"/>
  11. <link rel="stylesheet" href="../../../assets/module/uParas.css?v=312"/>
  12. </head>
  13. <body>
  14. <style type="text/css">
  15. /*table th{*/
  16. /* color: #ffb800;*/
  17. /*}*/
  18. .one {
  19. border-bottom: 1px solid indianred;
  20. color: #FF4B28;
  21. }
  22. .two {
  23. border-bottom: 1px solid #148ef1;
  24. color: #FF6C00;
  25. }
  26. .three {
  27. border-bottom: 1px solid #FFDF0E;
  28. color: #FFDF0E;
  29. }
  30. .four {
  31. border-bottom: 1px solid #00C0FF;
  32. color: #00C0FF;
  33. }
  34. </style>
  35. <!-- 加载动画 -->
  36. <div class="page-loading">
  37. <div class="ball-loader">
  38. <span></span><span></span><span></span><span></span>
  39. </div>
  40. </div>
  41. <!-- 正文开始 -->
  42. <div class="layui-fluid">
  43. <div class="layui-card">
  44. <div class="layui-card-body">
  45. <form class="layui-form m-top10px m-bottom10px" lay-filter="filterForm" id="filterForm">
  46. <div class="layui-card-header">
  47. <div class="layui-inline layui-col-md2 ">
  48. <label class="layui-form-label">日期</label>
  49. <div class="layui-input-block">
  50. <input type="text" name="yearStr" id="yearStr"
  51. placeholder="选择年份" lay-verify="datetime" autocomplete="off" class="layui-input work-flow-review-hint">
  52. </div>
  53. </div>
  54. <!--<div>-->
  55. <!-- <span class="layui-badge history-score" >历史得分 0 分</span>-->
  56. <!--<span class="layui-badge layui-bg-blue my-year-score">2019年得分 0 分</span>-->
  57. <!--</div>-->
  58. <div class="layui-inline pull-right" id="backTag">
  59. <a href="usersScore.html" id="back-a" class="layui-btn layui-btn-sm layui-btn-radius layui-btn-normal"><i class="layui-icon"></i>返回</a>
  60. </div>
  61. </div>
  62. <div class="layui-card-body overflow-y-710px">
  63. <div class="layui-tab layui-tab-brief ">
  64. <!--统计图-->
  65. <div id="usersScoreStatistics" class="m-top10px" style="height:400px;"></div>
  66. <!--记录-->
  67. <span class="layui-badge layui-bg-orange hint"></span>
  68. <table class="layui-table text-left" id="datatable" lay-filter="datatable"></table>
  69. </div>
  70. </div>
  71. </form>
  72. </div>
  73. </div>
  74. </div>
  75. <!-- js部分 -->
  76. <script type="text/javascript" src="../../../assets/libs/layui/layui.js"></script>
  77. <script type="text/javascript" src="../../../assets/js/common.js?v=312"></script>
  78. <script type="text/javascript" src="../../../assets/libs/echarts/echarts.min.js?v=312"></script>
  79. <script type="text/javascript" src="../../../assets/libs/jquery/jquery-3.2.1.min.js"></script>
  80. <script>
  81. layui.use(['layer', 'form', 'table', 'util', 'zTree', '_groupTree', 'laydate', 'admin', 'uParas', 'element', 'laytpl'], function () {
  82. var $ = layui.jquery;
  83. var layer = layui.layer;
  84. var form = layui.form;
  85. var util = layui.util;
  86. var table = layui.table;
  87. var admin = layui.admin;
  88. var uParas = layui.uParas;
  89. var element = layui.element, laytpl = layui.laytpl;
  90. var _groupTree = layui._groupTree;
  91. var laydate = layui.laydate;
  92. var insTb;
  93. var userId = uParas.getUrlParam("aId");
  94. var page = uParas.getUrlParam("page");
  95. var gId = uParas.getUrlParam("gId");
  96. if (page != undefined && page == 1) {
  97. $("#back-a").attr("href", "groupUserScore.html?gId=" + gId);
  98. }
  99. if (userId == null) {
  100. $("#backTag").hide();
  101. }
  102. /*日期*/
  103. laydate.render({
  104. elem: '#yearStr',
  105. format: 'yyyy',
  106. type: 'year',
  107. value: new Date().getFullYear(), //初始化值
  108. btns: false, //隐藏按钮
  109. change: function (value, date) { //监听日期被切换
  110. $("#yearStr").val(value);
  111. findByStatistics($("#yearStr").val());
  112. /*更新数据表*/
  113. initTable($("#yearStr").val());
  114. $(".hint").html("");
  115. $(".hint").html($("#yearStr").val() + " 打分记录");
  116. }
  117. });
  118. findByStatistics($("#yearStr").val());
  119. $(".hint").html($("#yearStr").val() + " 打分记录");
  120. initTable($("#yearStr").val());
  121. function initTable(data) {
  122. // 渲染表格
  123. insTb = table.render({
  124. elem: '#datatable',
  125. url: uParas.baseUrl + '/ent/performanceScore/queryMyHistoryScoreRecordByPage',
  126. where: {"yearStr": data, userId: userId, gId: gId},
  127. page: true,
  128. height: 500,
  129. cellMinWidth: 100,
  130. cols: [[
  131. {type: 'numbers', title: '序号', width: 80,},
  132. {field: 'sGroupName', align: 'left', title: '部门'},
  133. {field: 'performanceScore', align: 'center', sort: false, title: '本次得分', width: 150,},
  134. {field: 'remark', align: 'left', title: '打分事由'},
  135. {field: 'createdTime', align: 'center', sort: false, title: '打分日期', width: 230},
  136. ]]
  137. });
  138. }
  139. /*统计数据*/
  140. function findByStatistics(yearStr) {
  141. var url = "/ent/performanceScore/findScoreMonthStatistics";
  142. var dataMap = {
  143. "yearStr": yearStr,
  144. "isMyself": 1, //0部门统计
  145. userId: userId,
  146. gId:gId
  147. };
  148. admin.req(uParas.baseUrl + url, dataMap, function (res) {
  149. if (res.code == 1) {
  150. /*绘制统计图*/
  151. initChart(res.data.monthScore);
  152. // getMyScore(yearStr);
  153. }
  154. }, 'get');
  155. }
  156. /*我的得分*/
  157. function getMyScore(yearStr) {
  158. var url = "/ent/performanceScore/getMyScore";
  159. var dataMap = {
  160. "yearStr": yearStr,
  161. };
  162. admin.req(uParas.baseUrl + url, dataMap, function (res) {
  163. if (res.code == 1) {
  164. var myHistoryScore = res.data.myHistoryScore;
  165. var myYearScore = res.data.myYearScore;
  166. $(".history-score").html("历史得分 " + myHistoryScore + " 分");
  167. $(".my-year-score").html(yearStr + "年得分 " + myYearScore + " 分");
  168. }
  169. }, 'get');
  170. }
  171. /*初始化统计图*/
  172. function initChart(monthScore) {
  173. var dataArray = [];
  174. var seriesArray = [];
  175. seriesArray[0] = {
  176. name: '分数',
  177. barGap: 0,
  178. type: 'line',
  179. barGap: '-100%',
  180. barCategoryGap: '60%',
  181. label: {show: true, position: 'top'},
  182. data: monthScore,
  183. };
  184. var seriesLabel = [];
  185. var colorArray = [];
  186. seriesLabel[0] = {
  187. label: {show: true, position: 'top'},
  188. };
  189. colorArray[0] = '#00C0FF';
  190. var myChart = echarts.init(document.getElementById('usersScoreStatistics'));
  191. echarts.config = {
  192. align: 'center',
  193. verticalAlign: 'middle',
  194. distance: 15,
  195. onChange: function () {
  196. myChart.setOption({
  197. series: seriesLabel
  198. // series: [{
  199. // label: labelOption
  200. // }, {
  201. // label: labelOption
  202. // }, {
  203. // label: labelOption
  204. // }, {
  205. // label: labelOption
  206. // }]
  207. });
  208. }
  209. };
  210. option = {
  211. title: {
  212. left: "2%",
  213. text: $("#yearStr").val() + '年-周期统计',
  214. //subtext: 'eeee',
  215. x: 'left'
  216. },
  217. tooltip: {
  218. trigger: 'axis',
  219. axisPointer: {
  220. type: 'cross',
  221. crossStyle: {
  222. color: '#999'
  223. }
  224. }
  225. },
  226. // color: ['#FF4B28', '#FF6C00', '#FFDF0E', '#00C0FF'],
  227. color: colorArray,
  228. toolbox: {
  229. itemSize: 18,
  230. itemGap: 15,
  231. right: '50',
  232. feature: {
  233. show: true,
  234. orient: 'vertical',
  235. mark: {
  236. show: true,
  237. },
  238. dataView: {
  239. show: false,
  240. optionToContent: function (opt) {
  241. // console.log(11111);
  242. var xaisName = opt.xAxis[0].name;
  243. var axisData = opt.xAxis[0].data;
  244. var series = opt.series;
  245. var tableDom = document.createElement("table");
  246. tableDom.setAttribute("id", "test");
  247. tableDom.setAttribute("class", "table-data-table");
  248. var table = '<table id="test" style="width:100%;height:200px; text-align:center;border: 3px solid;">';
  249. var table = '<thead><tr style="height: 40px;">'
  250. + '<td style="width: 200px;height: 30px;">' + xaisName + '</td>'
  251. + '<td class="one" style="width: 200px;height: 30px;">' + series[0].name + '</td>'
  252. + '<td class="two" style="width: 200px;height: 30px;">' + series[1].name + '</td>'
  253. + '<td class="three" style="width: 200px;height: 30px;">' + series[2].name + '</td>'
  254. + '<td class="four" style="width: 200px;height: 30px;">' + series[3].name + '</td>'
  255. + '</tr></thead><tbody>';
  256. for (var i = 0, l = axisData.length; i < l; i++) {
  257. table += '<tr style="height: 35px;">'
  258. + '<td style="height: 30px;">' + axisData[i] + '</td>'
  259. + '<td class="one" style="height: 30px;">' + series[0].data[i] + '</td>'
  260. + '<td class="two" style="height: 30px;">' + series[1].data[i] + '</td>'
  261. + '<td class="three" style="height: 30px;">' + series[2].data[i] + '</td>'
  262. + '<td class="four" style="height: 30px;">' + series[3].data[i] + '</td>'
  263. + '</tr>';
  264. }
  265. table += '</tbody>';
  266. tableDom.innerHTML = table;
  267. return tableDom;
  268. },
  269. readOnly: true, //是否可以编辑
  270. lang: ['数据视图', '关闭', '刷新'],
  271. buttonColor: '#cccccc',
  272. buttonTextColor: '#000',
  273. },
  274. magicType: {show: true, type: ['line', 'bar']},
  275. restore: {show: false},
  276. saveAsImage: {show: true}
  277. }
  278. },
  279. legend: {
  280. left: 'center',
  281. // data: ['重大隐患总数', '较大隐患总数', '一般隐患总数', '较低隐患总数']
  282. data: dataArray
  283. },
  284. xAxis: [
  285. {
  286. name: '共12个周期',
  287. type: 'category',
  288. axisTick: {show: false},
  289. type: 'category',
  290. data: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
  291. axisPointer: {
  292. type: 'shadow'
  293. }
  294. }
  295. ],
  296. yAxis: [
  297. {
  298. type: 'value',
  299. name: '分数',
  300. },
  301. ],
  302. grid: {
  303. // width:"50%",
  304. left: "2%",
  305. right: "6%",
  306. bottom: "40",
  307. top: "12%",
  308. containLabel: true
  309. },
  310. calculable: true,
  311. series: seriesArray
  312. };
  313. myChart.setOption(option);
  314. setTimeout(function () {
  315. window.onresize = function () {
  316. myChart.resize();
  317. }
  318. }, 200);
  319. }
  320. });
  321. </script>
  322. </body>
  323. </html>