Keine Beschreibung

followReport.js 7.0KB

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