DevelopStatistics.cshtml 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. 
  2. @{
  3. ViewBag.Title = "DevelopStatistics";
  4. Layout = "~/Views/Shared/_MainLayoutPage.cshtml";
  5. }
  6. <html>
  7. <head>
  8. <meta name="viewport" content="width=device-width" />
  9. <title>RingStatistics</title>
  10. </head>
  11. <body>
  12. <div id="toolbar" style="padding:3px;">
  13. <input class="easyui-checkbox" type="checkbox" id="Date" name="Date" label="登记日期" labelPosition="after" labelWidth="60px">
  14. <input disabled="disabled" id="StartDate" type="text" class="easyui-datetimebox" style="width:180px">-
  15. <input disabled="disabled" id="EndDate" type="text" class="easyui-datetimebox" style="width:180px">
  16. <div style="margin-left:20px;display:inline-block">
  17. <input class="easyui-textbox" style="width:150px" id="Deal" label="处理人:" labelPosition="before" labelWidth="57px" />
  18. </div>
  19. <input class="easyui-checkbox" type="checkbox" id="IsInside" label="内部产品问题" labelPosition="after" labelWidth="85px">
  20. <input class="easyui-checkbox" type="checkbox" id="NoInside" label="非内部产品问题" labelPosition="after" labelWidth="100px" style="margin-left:10px">
  21. <div style="margin-left:20px;display:inline-block">
  22. <a id="btnSelect" href="#" class="easyui-linkbutton c1" style="margin-left:0px"><i class="fa fa-search"></i> 查询记录</a>
  23. <a id="btnRefresh" href="#" class="easyui-linkbutton c8" data-options="plain:true"><i class="fa fa-refresh"></i> 刷新</a>
  24. <a onclick="GetExcel()" id="btn_Class" href="#" class="easyui-linkbutton c2" data-options="plain:true"><i class="fa fa-file-text-o"> 导出excel</i></a>
  25. </div>
  26. </div>
  27. <table id="Table"> </table>
  28. </body>
  29. </html>
  30. <script type="text/javascript">
  31. $(function () {
  32. var Obj = {
  33. name: undefined,
  34. Count: 0,
  35. check: false
  36. }
  37. var Report = $('#Table');
  38. Report.datagrid({
  39. fit: true,
  40. width: '100%',
  41. toolbar: '#toolbar',
  42. pageSize: 20,
  43. rownumbers: true,
  44. pagination: true,
  45. remoteSort: true,
  46. singleSelect: true, //单行选择
  47. loadMsg: "正在查询数据,请稍候...",
  48. url: '/Report/GetDevelopStatistics',
  49. method: 'post',
  50. columns: [[
  51. {
  52. field: '姓名', title: '姓名', width: 100, halign: 'center', align: 'center'
  53. },
  54. { field: '处理数', title: '处理数', width: 100, halign: 'center', align: 'center' },
  55. ]]
  56. })
  57. $('#Date').checkbox({
  58. onChange: function (checked) {
  59. if (checked) {
  60. $('#StartDate').datebox({ disabled: false, required: true });
  61. $('#EndDate').datebox({ disabled: false, required: true });
  62. } else {
  63. $('#StartDate').datebox({ disabled: true });
  64. $('#EndDate').datebox({ disabled: true });
  65. }
  66. }
  67. });
  68. $('#NoInside').checkbox({
  69. onChange: function (checked) {
  70. Obj.NoInside = checked
  71. }
  72. });
  73. $('#IsInside').checkbox({
  74. onChange: function (checked) {
  75. Obj.IsInside = checked
  76. }
  77. });
  78. $("#btnRefresh").bind("click", function () {
  79. $('#Table').datagrid("reload")
  80. })
  81. $("#btnSelect").bind('click', function () {
  82. $('#Table').datagrid('load', {
  83. startDate: $('#StartDate').datebox('getValue'),
  84. endDate: $('#EndDate').datebox('getValue'),
  85. Deal: $('#Deal').textbox('getValue'),
  86. IsInside: Obj.IsInside,
  87. NoInside: Obj.NoInside
  88. });
  89. })
  90. })
  91. function getPreMonth(date) {
  92. var arr = date.split('-');
  93. var year = arr[0]; //获取当前日期的年份
  94. var month = arr[1]; //获取当前日期的月份
  95. var day = arr[2]; //获取当前日期的日
  96. var days = new Date(year, month, 0);
  97. days = days.getDate(); //获取当前日期中月的天数
  98. var year2 = year;
  99. var month2 = parseInt(month) - 1;
  100. if (month2 == 0) {
  101. year2 = parseInt(year2) - 1;
  102. month2 = 12;
  103. }
  104. var day2 = day;
  105. var days2 = new Date(year2, month2, 0);
  106. days2 = days2.getDate();
  107. if (day2 > days2) {
  108. day2 = days2;
  109. }
  110. if (month2 < 10) {
  111. month2 = '0' + month2;
  112. }
  113. var t2 = year2 + '/' + month2;
  114. return t2;
  115. }
  116. function GetExcel() {
  117. // var data = $('#Table').datagrid('getData');
  118. var params = {
  119. startDate: $('#StartDate').datebox('getValue'),
  120. endDate: $('#EndDate').datebox('getValue'),
  121. DealPerson: $('#Deal').textbox('getValue')
  122. }
  123. var location = top.ZLPMS.Loading("导出中,请稍等...");
  124. $.post("/Report/GetDevelopStatistics", params, function (data) {
  125. top.ZLPMS.UnLoading(location);
  126. //获取标题
  127. var name = '<tr>';
  128. for (let Title in data.rows[0]) {
  129. //增加\t为了不让表格显示科学计数法或者其他格式
  130. name += `<td>${Title}</td>`;
  131. }
  132. name += '</tr>';
  133. let str = '';
  134. //循环遍历,每行加入tr标签,每个单元格加td标签
  135. for (let i = 0 ; i < data.rows.length ; i++) {
  136. str += '<tr>';
  137. for (let item in data.rows[i]) {
  138. //增加\t为了不让表格显示科学计数法或者其他格式
  139. str += `<td>${data.rows[i][item] + '\t'}</td>`;
  140. }
  141. str += '</tr>';
  142. }
  143. str = name + str;
  144. let worksheet = '研发问题统计'
  145. let uri = 'data:application/vnd.ms-excel;base64,';
  146. //下载的表格模板数据
  147. let template = `<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"> <head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet> <x:Name>${worksheet}</x:Name> <x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet> </x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--> </head><body><table>${str}</table></body></html>`;
  148. //下载模板
  149. window.location.href = uri + base64(template)
  150. })
  151. }
  152. function base64(s) { return window.btoa(unescape(encodeURIComponent(s))) }
  153. </script>