郑州第一人民医院UI

generalStatisticsReport.js 7.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. /**
  2. * 报修平台
  3. * */
  4. var zydata = []
  5. var mzdata = []
  6. var hzdata = []
  7. var showdatas = []
  8. var state = ''; // state tab页的 data-index(工单状态参数);
  9. var stateVal = ''; //默认为所有,”day”今天,”week”本周,”month”本月,”year”本年
  10. $(document).ready(function() {
  11. getdatas()
  12. $('.tool_bars').authorizeButton();
  13. //搜索
  14. $('#sc_btns').click(function() {
  15. getdatas()
  16. // getdatastwo()
  17. initTable1();
  18. })
  19. $('#HY_seeMore').click(function() {
  20. $('.moreCondition').toggleClass('show');
  21. })
  22. $('#sc_statebtn').find('input[type="radio"]').on('change', function() {
  23. stateVal = $(this).val();
  24. initTable1();
  25. });
  26. //时间
  27. laydate.render({
  28. elem: '#startTime',
  29. theme: '#249fea',
  30. range: '~',
  31. });
  32. function getPreDatetime(pdate) {
  33. var start = new Date()
  34. start.setTime(start.getTime() - pdate)
  35. start.getYear(); // 获取当前年份(2位)
  36. var YY = start.getFullYear() // 获取完整的年份(4位,1970-????)
  37. var MM = start.getMonth() + 1 // 获取当前月份(0-11,0代表1月)
  38. MM = MM > 9 ? MM : ('0' + MM);
  39. var DD = start.getDate() // 获取当前日(1-31)
  40. DD = DD > 9 ? DD : ('0' + DD)
  41. var lastmonth = YY + '-' + MM + '-' + DD;
  42. return lastmonth;
  43. }
  44. if ($('#startTime').val() == "") {
  45. function p(s) {
  46. return s < 10 ? '0' + s : s;
  47. }
  48. var currentYear = new Date().getFullYear();
  49. var currentMonth = new Date().getMonth() + 1;
  50. var currentDate = new Date().getDate();
  51. var prevCurrentYear = 0;
  52. var prevCurrentMonth = 0;
  53. if (currentMonth == 1) {
  54. prevCurrentYear = currentYear - 1;
  55. prevCurrentMonth = 12;
  56. } else {
  57. prevCurrentYear = currentYear;
  58. prevCurrentMonth = currentMonth - 1;
  59. }
  60. var current = currentYear + "-" + p(currentMonth) + "-" + p(currentDate);
  61. // var lastmonth = prevCurrentYear + "-" + p(prevCurrentMonth) + "-" + p(currentDate)
  62. var a = getPreDatetime(3600 * 1000 * 24 * 30);
  63. $('#startTime').val(getPreDatetime(3600 * 1000 * 24 * 30) + " ~ " + current)
  64. getdatas()
  65. initTable1();
  66. }
  67. initTable1();
  68. // getdatastwo()
  69. });
  70. function getdatas(){
  71. $.ajax({
  72. type: "get",
  73. url: huayi.config.callcenter_url + "testusertypeapi/api/Test/getzysfallbbinfolist", //获取数据的Servlet地址
  74. async: true,
  75. dataType: 'json',
  76. data: {
  77. stime: $('#startTime').val() && $('#startTime').val().split(' ~ ')[0], //开始时间
  78. etime: $('#startTime').val() && $('#startTime').val().split(' ~ ')[1], //结束时间
  79. },
  80. success: function(data) {
  81. if (data.state.toLowerCase() == 'success') {
  82. for(var i=0;i<data.data.length;i++){
  83. delete data.data[i].sendlosecount
  84. delete data.data[i].hzallcount
  85. }
  86. zydata = data.data
  87. console.log(zydata)
  88. }
  89. }
  90. });
  91. }
  92. // function getdatastwo() {
  93. // $.ajax({
  94. // type: "get",
  95. // url: huayi.config.callcenter_url + "testusertypeapi/api/Test/getmzsfallbbinfolist", //获取数据的Servlet地址
  96. // async: true,
  97. // dataType: 'json',
  98. // data: {
  99. // stime: $('#startTime').val() && $('#startTime').val().split(' ~ ')[0], //开始时间
  100. // etime: $('#startTime').val() && $('#startTime').val().split(' ~ ')[1], //结束时间
  101. // },
  102. // success: function(data) {
  103. // if (data.state.toLowerCase() == 'success') {
  104. // for(var i=0;i<data.data.length;i++){
  105. // delete data.data[i].sendlosecount
  106. // delete data.data[i].hzallcount
  107. // }
  108. // mzdata = data.data
  109. // console.log(mzdata)
  110. // }
  111. // }
  112. // });
  113. // }
  114. function initTable1() {
  115. //先销毁表格
  116. $('#table1').bootstrapTable('destroy');
  117. //初始化表格,动态从服务器加载数据
  118. $('#table1').bootstrapTable({
  119. method: "get", //使用get请求到服务器获取数据
  120. url: huayi.config.callcenter_url + "testusertypeapi/api/Test/getmzsfallbbinfolist", //获取数据的Servlet地址
  121. contentType: "application/x-www-form-urlencoded",
  122. striped: true, //表格显示条纹
  123. smartDisplay: false,
  124. // pagination: false, //启动分页
  125. // pageSize: 10, //每页显示的记录数
  126. // pageNumber: 1, //当前第几页
  127. // pageList: [10, 20, 50, 100], //记录数可选列表
  128. search: false, //是否启用查询
  129. showColumns: false, //显示下拉框勾选要显示的列
  130. showRefresh: false, //显示刷新按钮
  131. sidePagination: "server", //表示服务端请求
  132. //设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
  133. //设置为limit可以获取limit, offset, search, sort, order
  134. queryParamsType: "undefined",
  135. queryParams: function queryParams(params) { //设置查询参数
  136. var param = {
  137. stime: $('#startTime').val() && $('#startTime').val().split(' ~ ')[0], //开始时间
  138. etime: $('#startTime').val() && $('#startTime').val().split(' ~ ')[1], //结束时间
  139. };
  140. return param;
  141. },
  142. responseHandler: function(res) {
  143. for(var i=0;i<res.data.length;i++){
  144. delete res.data[i].sendlosecount
  145. delete res.data[i].hzallcount
  146. }
  147. mzdata = res.data
  148. console.log(mzdata)
  149. hzdata = zydata.concat(mzdata)
  150. var sfallcount = hzdata.reduce((sum, e) => sum + parseInt(e.sfallcount), 0)
  151. var yhfcount = hzdata.reduce((sum, e) => sum + parseInt(e.yhfcount), 0)
  152. var whfcount = hzdata.reduce((sum, e) => sum + parseInt(e.whfcount), 0)
  153. var mycount = hzdata.reduce((sum, e) => sum + parseInt(e.mycount), 0)
  154. var mycountbl = hzdata.reduce((sum, e) => sum + parseInt(e.mycountbl), 0)
  155. var bycount = hzdata.reduce((sum, e) => sum + parseInt(e.bycount), 0)
  156. var bycountbl = hzdata.reduce((sum, e) => sum + parseInt(e.bycountbl), 0)
  157. var nomycount = hzdata.reduce((sum, e) => sum + parseInt(e.nomycount), 0)
  158. var nomycountbl = hzdata.reduce((sum, e) => sum + parseInt(e.nomycountbl), 0)
  159. var othercount = hzdata.reduce((sum, e) => sum + parseInt(e.othercount), 0)
  160. var hfmydbl = hzdata.reduce((sum, e) => sum + parseFloat(e.hfmydbl), 0)
  161. var zhmydbfb = hzdata.reduce((sum, e) => sum + parseInt(e.zhmydbfb), 0)
  162. var newhzdata = [{
  163. deptname: '合计',
  164. sfallcount: sfallcount,
  165. yhfcount: yhfcount,
  166. whfcount: whfcount,
  167. mycount: mycount,
  168. mycountbl: mycountbl.toFixed(2) + '%',
  169. bycount: bycount,
  170. bycountbl: bycountbl.toFixed(2) + '%',
  171. nomycount: nomycount,
  172. nomycountbl: nomycountbl.toFixed(2) + '%',
  173. othercount: othercount,
  174. hfmydbl: hfmydbl.toFixed(2) + '%',
  175. zhmydbfb: zhmydbfb.toFixed(2) + '%',
  176. }]
  177. if(hzdata.length>0){
  178. showdatas = hzdata.concat(newhzdata)
  179. console.log(newhzdata)
  180. }else{
  181. showdatas=[]
  182. }
  183. //格式化数据
  184. return {
  185. "rows": showdatas, //数据
  186. };
  187. },
  188. onLoadSuccess: function(res) { //加载成功时执行
  189. },
  190. onLoadError: function() { //加载失败时执行
  191. //layer.msg("加载数据失败", { time: 1500, icon: 2 });
  192. }
  193. });
  194. }
  195. //导出
  196. function btn_export() {
  197. // var stime = $('#startTime').val() && $('#startTime').val().split(' ~ ')[0] //开始时间
  198. // var etime = $('#startTime').val() && $('#startTime').val().split(' ~ ')[1] //结束时间
  199. // window.location.href = huayi.config.callcenter_url + "testusertypeapi/api/Test/exportexcelsfallbb?stime=" + stime + "&etime=" + etime
  200. //要导出的json数据
  201. const jsonData = showdatas
  202. //列标题,逗号隔开,每一个逗号就是隔开一个单元格
  203. var str = `科室,随访总数,已回复,未回复,满意,满意度,表扬,表扬度,不满意,不满意度,其他,回复满意度,综合满意度\n`;
  204. //增加\t为了不让表格显示科学计数法或者其他格式
  205. for (let i = 0; i < jsonData.length; i++) {
  206. for (let item in jsonData[i]) {
  207. str += `${jsonData[i][item] + '\t'},`;
  208. }
  209. str += '\n';
  210. }
  211. //encodeURIComponent解决中文乱码
  212. let uri = 'data:text/csv/xls;charset=utf-8,\ufeff' + encodeURIComponent(str);
  213. //通过创建a标签实现
  214. let link = document.createElement("a");
  215. link.href = uri;
  216. //对下载的文件命名
  217. link.download = "总统计报表.xls";
  218. document.body.appendChild(link);
  219. link.click();
  220. document.body.removeChild(link);
  221. }