Нет описания

statisticalReport.html 7.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>单位信息</title>
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <script src="../Script/Common/huayi.load.js"></script>
  8. <script src="../Script/Common/huayi.config.js"></script>
  9. <link href="../js/bootstrap-select/css/bootstrap-select.css" rel="stylesheet" />
  10. <link href="../css/Table/table1.css" rel="stylesheet" />
  11. <link href="../css/init.css" rel="stylesheet" />
  12. <link href="./css/onlineServiceList.css" rel="stylesheet" />
  13. </head>
  14. <body class="gray-bg">
  15. <div class="daoHang clearfix">
  16. <div class="dhLeft">
  17. <sapn><i class="syIcon"></i>位置:
  18. <a id="ReIndex" href="javaScript:;" class="indexreturn">首页</a>&gt;
  19. <a href="javaScript:;">在线客服</a>&gt;
  20. <a href="javascript:location.reload()" class="now_position">统计报表</a>
  21. </sapn>
  22. </div>
  23. </div>
  24. <div class="wrapper wrapper-content animated fadeInRight equp_management">
  25. <div class="th-box">
  26. <div class="form-inline th-bar clearfix">
  27. <div class="form-group time-box">
  28. <i class="tub fa fa-calendar"></i>
  29. <input class="form-control search_time" type="text" id="startTime" placeholder="请选择时间范围">
  30. </div>
  31. <div class="form-group tool_bars pull-right">
  32. <input type="button" class="btn_gray" id="btn_export" value="导出" onclick="btn_export()" />
  33. <input type="button" class="btn_gray" id="btn_search" value="搜索" onclick="btn_search()" />
  34. </div>
  35. </div>
  36. </div>
  37. <div class="tab_contents" id="tab_contents">
  38. <div class="tabs_details showtabs">
  39. <table id="table_all" data-row-style="rowStyle" data-query-params="queryParams">
  40. <thead>
  41. <tr>
  42. <th data-field="zxusercoude" data-align="center">客服账号</th>
  43. <th data-field="yyghcount" data-align="center">预约挂号</th>
  44. <th data-field="Tjcount" data-align="center">体检</th>
  45. <th data-field="Zpcount" data-align="center">招聘</th>
  46. <th data-field="bqdhcount" data-align="center">病情、电话</th>
  47. <th data-field="xgymcount" data-align="center">核酸检测新冠疫苗</th>
  48. <th data-field="sbsjcount" data-align="center">上班时间</th>
  49. <th data-field="ybcount" data-align="center">医保</th>
  50. <th data-field="wnrhcount" data-align="center">无内容</th>
  51. <th data-field="allcount" data-align="center">总数</th>
  52. </tr>
  53. </thead>
  54. </table>
  55. </div>
  56. </div>
  57. </div>
  58. </body>
  59. <script src="../Script/Common/regexs.js"></script>
  60. <script src="../js/laydate/laydate.js"></script>
  61. <!--<script src="../Script/Common/regexs.js"></script>-->
  62. <script src="../js/autosize/autosize.min.js"></script>
  63. <script src="../js/bootstrap-select/js/bootstrap-select.js"></script>
  64. <script src="../js/bootstrap-select/js/i18n/defaults-zh_CN.js"></script>
  65. <script type="text/javascript">
  66. var showdatas=[]
  67. laydate.render({
  68. elem: '#startTime',
  69. range: '~',
  70. theme: '#249fea'
  71. });
  72. if($('#startTime').val() == "") {
  73. function p(s) {
  74. return s < 10 ? '0' + s : s;
  75. }
  76. var currentYear = new Date().getFullYear();
  77. var currentMonth = new Date().getMonth() + 1;
  78. var currentDate = new Date().getDate();
  79. var prevCurrentYear = 0;
  80. var prevCurrentMonth = 0;
  81. if(currentMonth == 1) {
  82. prevCurrentYear = currentYear - 1;
  83. prevCurrentMonth = 12;
  84. } else {
  85. prevCurrentYear = currentYear;
  86. prevCurrentMonth = currentMonth - 1;
  87. }
  88. var current = currentYear + "-" + p(currentMonth) + "-" + p(currentDate);
  89. // var lastmonth = prevCurrentYear + "-" + p(prevCurrentMonth) + "-" + p(currentDate)
  90. var a = getPreDatetime(3600 * 1000 * 24 * 30);
  91. $('#startTime').val(getPreDatetime(3600 * 1000 * 24 * 30) + " ~ " + current)
  92. initTable();
  93. }
  94. function btn_search() {
  95. initTable();
  96. }
  97. function initTable() {
  98. var $tableLeft = $('#table_all');
  99. $tableLeft.bootstrapTable('destroy');
  100. //先销毁表格
  101. $tableLeft.bootstrapTable({
  102. method: "get", //使用get请求到服务器获取数据
  103. url: huayi.config.callcenter_url + "testusertypeapi/api/TestUserType/getonlinesertype",
  104. contentType: "application/x-www-form-urlencoded",
  105. striped: true, //表格显示条纹
  106. pagination: false, //启动分页
  107. pageSize: 500, //每页显示的记录数
  108. pageNumber: 1, //当前第几页
  109. fixedColumns: true,
  110. fixedNumber: 3,
  111. pageList: [500, 1000, 1500], //记录数可选列表
  112. search: false, //是否启用查询
  113. showColumns: false, //显示下拉框勾选要显示的列
  114. showRefresh: false, //显示刷新按钮
  115. sidePagination: "server", //表示服务端请求
  116. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  117. //设置为limit可以获取limit, offset, search, sort, order
  118. queryParamsType: "undefined",
  119. queryParams: function queryParams(params) { //设置查询参数
  120. console.log(params)
  121. var param = {
  122. stime: $('#startTime').val() && $('#startTime').val().split(' ~ ')[0], //开始时间
  123. etime: $('#startTime').val() && $('#startTime').val().split(' ~ ')[1], //结束时间
  124. };
  125. return param;
  126. },
  127. responseHandler: function(data) {
  128. var data = data.data
  129. var yyghcount = data.reduce((sum, e) => sum + parseInt(e.yyghcount), 0)
  130. var Tjcount = data.reduce((sum, e) => sum + parseInt(e.Tjcount), 0)
  131. var Zpcount = data.reduce((sum, e) => sum + parseInt(e.Zpcount), 0)
  132. var bqdhcount = data.reduce((sum, e) => sum + parseInt(e.bqdhcount), 0)
  133. var xgymcount = data.reduce((sum, e) => sum + parseInt(e.xgymcount), 0)
  134. var sbsjcount = data.reduce((sum, e) => sum + parseInt(e.sbsjcount), 0)
  135. var ybcount = data.reduce((sum, e) => sum + parseInt(e.ybcount), 0)
  136. var wnrhcount = data.reduce((sum, e) => sum + parseInt(e.wnrhcount), 0)
  137. var newhzdata = [{
  138. zxusercoude: '合计',
  139. yyghcount: yyghcount,
  140. Tjcount: Tjcount,
  141. Zpcount: Zpcount,
  142. bqdhcount: bqdhcount,
  143. xgymcount: xgymcount,
  144. sbsjcount: sbsjcount,
  145. ybcount: ybcount,
  146. wnrhcount: wnrhcount,
  147. allcount: yyghcount + Tjcount + Zpcount + bqdhcount + xgymcount + sbsjcount + ybcount + wnrhcount
  148. }]
  149. data = data.concat(newhzdata)
  150. showdatas=data
  151. return {
  152. "rows": data //数据
  153. };
  154. },
  155. onLoadSuccess: function(data) { //加载成功时执行
  156. },
  157. onLoadError: function() { //加载失败时执行
  158. layer.msg("加载数据失败", {
  159. time: 1500,
  160. icon: 2
  161. });
  162. }
  163. });
  164. }
  165. function getPreDatetime(pdate) {
  166. var start = new Date()
  167. start.setTime(start.getTime() - pdate)
  168. start.getYear(); // 获取当前年份(2位)
  169. var YY = start.getFullYear() // 获取完整的年份(4位,1970-????)
  170. var MM = start.getMonth() + 1 // 获取当前月份(0-11,0代表1月)
  171. MM = MM > 9 ? MM : ('0' + MM);
  172. var DD = start.getDate() // 获取当前日(1-31)
  173. DD = DD > 9 ? DD : ('0' + DD)
  174. var lastmonth = YY + '-' + MM + '-' + DD;
  175. return lastmonth;
  176. }
  177. //导出
  178. function btn_export() {
  179. //要导出的json数据
  180. const jsonData = showdatas
  181. console.log(jsonData)
  182. //列标题,逗号隔开,每一个逗号就是隔开一个单元格
  183. var str = `客服账号,预约挂号,体检,招聘,病情、电话,核酸检测新冠疫苗,上班时间,医保,无内容,总数\n`;
  184. //增加\t为了不让表格显示科学计数法或者其他格式
  185. for(let i = 0; i < jsonData.length; i++) {
  186. for(let item in jsonData[i]) {
  187. str += `${jsonData[i][item] + '\t'},`;
  188. }
  189. str += '\n';
  190. }
  191. //encodeURIComponent解决中文乱码
  192. let uri = 'data:text/csv/xls;charset=utf-8,\ufeff' + encodeURIComponent(str);
  193. //通过创建a标签实现
  194. let link = document.createElement("a");
  195. link.href = uri;
  196. //对下载的文件命名
  197. link.download = "统计报表.xls";
  198. document.body.appendChild(link);
  199. link.click();
  200. document.body.removeChild(link);
  201. }
  202. </script>
  203. </html>