开封利通水务前端

orderDayCallTotalStatistics.js 6.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297
  1. /**
  2. * 每日呼叫数据统计
  3. * */
  4. var dayCallTotal; //图形
  5. var tabIndex = 0;
  6. $(function() {
  7. $('#sc_time').val(helper.DateFormat.getNowDate());
  8. $('.now_day').text(helper.DateFormat.getNowDate());
  9. //初始化时间
  10. layui.use('laydate', function() {
  11. var laydate = layui.laydate;
  12. laydate.render({
  13. elem: '#sc_time',
  14. //range: '~',
  15. theme: '#1ab394',
  16. calendar: true,
  17. done: function(value, date, endDate) {
  18. $('.now_day').text(value);
  19. //console.log(value); //得到日期生成的值,如:2017-08-18
  20. //console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}
  21. //console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。
  22. }
  23. });
  24. });
  25. //tab切换
  26. $('.hu-tab li').click(function() {
  27. $(this).addClass('active')
  28. .siblings().removeClass('active');
  29. tabIndex = $(this).index();
  30. $('.hu-content >div').eq(tabIndex).show()
  31. .siblings().hide();
  32. loadDatas();
  33. });
  34. //初始化图形
  35. initChart();
  36. //加载数据
  37. loadDatas();
  38. //搜索
  39. $("#sc_btns").click(function() {
  40. loadDatas();
  41. })
  42. });
  43. //初始化图形
  44. function initChart() {
  45. dayCallTotal = echarts.init(document.getElementById('dayCallTotal'));
  46. dayCallTotal.clear();
  47. dayCallTotal.showLoading();
  48. option = {
  49. tooltip: {
  50. trigger: 'axis',
  51. },
  52. legend: {
  53. data: ["呼入量",
  54. "呼出量",
  55. "接通量",
  56. "未接通量",
  57. "接通率"
  58. ],
  59. bottom: 0
  60. },
  61. xAxis: [{
  62. name: '时间',
  63. type: 'category',
  64. data: (function() {
  65. var arr = [];
  66. for(var i = 1; i < 25; i++) {
  67. arr.push(i+'点');
  68. }
  69. return arr;
  70. })(),
  71. axisPointer: {
  72. type: ''
  73. }
  74. }],
  75. yAxis: [{
  76. type: 'value',
  77. name: '电话数量',
  78. nameLocation: 'end',
  79. nameGap: 40,
  80. axisLabel: {
  81. formatter: '{value} '
  82. }
  83. }, {
  84. type: 'value',
  85. name: '百分比',
  86. nameLocation: 'end',
  87. nameGap: 35,
  88. interval: 10,
  89. axisLabel: {
  90. formatter: '{value} '
  91. }
  92. }],
  93. series: [{
  94. name: '呼入量',
  95. type: 'bar',
  96. data: []
  97. }, {
  98. name: '呼出量',
  99. type: 'bar',
  100. data: []
  101. }, {
  102. name: '接通量',
  103. type: 'bar',
  104. data: []
  105. }, {
  106. name: '未接通量',
  107. type: 'bar',
  108. data: []
  109. }, {
  110. name: '接通率',
  111. type: 'line',
  112. yAxisIndex: 1,
  113. data: []
  114. }],
  115. color: ['#1ab394', '#adcbfd', '#fbbe5b', '#f26ea2', '#88ebc4']
  116. };
  117. dayCallTotal.setOption(option);
  118. }
  119. //获取图形数据
  120. function getDataList() {
  121. $.ajax({
  122. type: 'get',
  123. url: huayi.config.callcenter_url + 'HourCallTotal/GetDataList',
  124. dataType: 'json',
  125. beforeSend: function() {
  126. loadindex = layer.load()
  127. },
  128. data: {
  129. stime: $('#sc_time').val(), // 否 string 时间 (2018-07-03)
  130. token: $.cookie("token"),
  131. },
  132. async: true,
  133. success: function(res) {
  134. dayCallTotal.hideLoading();
  135. var content = res.data;
  136. if(content && content.length > 0) {
  137. var arr1 = []; //呼入量
  138. var arr2 = []; //呼出量
  139. var arr3 = []; //接通量
  140. var arr4 = []; //未接通量
  141. var arr5 = []; //接通率
  142. for(var i = 0; i < content.length - 1; i++) {
  143. $.each(content[i], function(j, v) {
  144. switch(j) {
  145. case "呼入量":
  146. arr1.push(v);
  147. break;
  148. case "呼出量":
  149. arr2.push(v);
  150. break;
  151. case "接通量":
  152. arr3.push(v);
  153. break;
  154. case "未接通量":
  155. arr4.push(v);
  156. break;
  157. case "接通率":
  158. arr5.push(v.substring(0, 4));
  159. break;
  160. default:
  161. break;
  162. }
  163. });
  164. }
  165. dayCallTotal.setOption({
  166. series: [{
  167. name: '呼入量',
  168. type: 'bar',
  169. data: arr1
  170. }, {
  171. name: '呼出量',
  172. type: 'bar',
  173. data: arr2
  174. }, {
  175. name: '接通量',
  176. type: 'bar',
  177. data: arr3
  178. }, {
  179. name: '未接通量',
  180. type: 'bar',
  181. data: arr4
  182. }, {
  183. name: '接通率',
  184. type: 'line',
  185. yAxisIndex: 1,
  186. data: arr5
  187. }]
  188. });
  189. }
  190. }
  191. }).then(function() {
  192. layer.close(loadindex);
  193. });
  194. }
  195. //获取表格数据
  196. function getTableDataList() {
  197. var colsArr = [];
  198. var loadindex;
  199. $.ajax({
  200. type: 'get',
  201. url: huayi.config.callcenter_url + "HourCallTotal/GetDataList",
  202. async: true,
  203. dataType: 'json',
  204. beforeSend: function() {
  205. loadindex = layer.load()
  206. },
  207. data: {
  208. stime: $('#sc_time').val(), // 否 string 时间 (2018-07-03)
  209. token: $.cookie("token"),
  210. },
  211. success: function(data) {
  212. if(data.state.toLowerCase() == "success") {
  213. var res = data.data;
  214. var colsArr1 = [];
  215. if(res && res.length > 0) {
  216. colsArr1.push({
  217. field: '时间',
  218. title: '时间(点)',
  219. align: 'center',
  220. fixed: true,
  221. // templet: function(d) {
  222. // //return '<span>'+ (d.时间-1) +'点 ~ '+ d.时间 +'点</span>'
  223. // },
  224. //sort: true,
  225. width: 150,
  226. });
  227. for(var i in res[0]) {
  228. if(i === "时间" || i === "接通率") {
  229. continue;
  230. } else {
  231. colsArr1.push({
  232. field: i,
  233. title: i,
  234. align: 'center',
  235. });
  236. }
  237. }
  238. colsArr1.push({
  239. field: '接通率',
  240. title: '接通率',
  241. align: 'center',
  242. fixed: 'right',
  243. //sort: true,
  244. templet: function(d) {
  245. return '<span class="color_73926">' + d.接通率 + '</span>'
  246. },
  247. width: 100,
  248. });
  249. colsArr.push(colsArr1);
  250. layui.use('table', function() {
  251. var table = layui.table;
  252. //方法级渲染
  253. table.render({
  254. elem: '#t_callTotal',
  255. skin: 'row', //line (行边框风格) row (列边框风格) nob (无边框风格)
  256. even: true, //开启隔行背景
  257. size: 'md', //sm,lg,md尺寸的表格
  258. cellMinWidth: 160,
  259. cols: colsArr,
  260. data: res,
  261. limit: res.length, //默认是10
  262. //height: 'full-150'
  263. });
  264. })
  265. }
  266. }
  267. },
  268. }).then(function() {
  269. layer.close(loadindex);
  270. });
  271. }
  272. //格式化序号
  273. function setCode(val, row, index) {
  274. return ++index;
  275. }
  276. //导出
  277. function dcexcel(obj) {
  278. var url = huayi.config.callcenter_url + "HourCallTotal/ExportExcel?token=" + $.cookie("token");
  279. url += "&stime=" + $('#sc_time').val(); //否 string 时间
  280. obj.href = url;
  281. }
  282. function loadDatas() {
  283. if(tabIndex == 0) {
  284. getDataList(); //加载图形
  285. } else if(tabIndex == 1) {
  286. getTableDataList(); //加载表格
  287. }
  288. }