record.js 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. var page = 1;
  2. var totalPages = 0;
  3. var param1 = '';
  4. var param2 = '';
  5. var param3 = '';
  6. var param4 = '';
  7. var param5 = '';
  8. // 数据统计及责任人下拉 start
  9. getStaticAndSelectAjax();
  10. function getStaticAndSelectAjax(queryParam = {}) {
  11. ajaxRequest(RECORD_STATIC_AND_SELECT, "POST", queryParam, function(result) {
  12. let data = result.RESULT1;
  13. $('#xjrysl').html(result.xjrysl)
  14. $('#jrrw').html(result.jrrw)
  15. $('#csrw').html(result.csrw)
  16. $('#jrwcrw').html(result.jrwcrw)
  17. let items = '';
  18. data.forEach(function(item, key) {
  19. items += `<option value="${item.person_liable_id}">${item.name}</option>`
  20. })
  21. $('#person_liable_id').append(items);
  22. }, function(errorMsg) {
  23. alert("请求数据失败!");
  24. })
  25. }
  26. // 数据统计及责任人下拉end
  27. //列表渲染
  28. getListDataAjax();
  29. //获取列表 ajax请求
  30. function getListDataAjax(queryParam = {}, page = 1) {
  31. queryParam.page = page;
  32. queryParam.limit = 20; //每页显示条数
  33. queryParam.start = (queryParam.page - 1) * queryParam.limit;
  34. ajaxRequest(RECORD_LIST, "POST", queryParam, function(result) {
  35. let data = result.RESULT;
  36. let items = '';
  37. if (result.totalCount > 0) {
  38. data.forEach(function(item, key) {
  39. items += "<tr>" +
  40. "<td class='status'></td>" +
  41. "<td>" + item.xh + "</td>" +
  42. "<td>" + item.plan_name + "</td>" +
  43. "<td ><a class='view-detail' data-id=" + item.id + ">查看</a></td>" +
  44. "<td>" + item.ywcsj + "</td>" +
  45. "<td>" + item.zt + "</td>" +
  46. "<td>" + item.completion + "</td>" +
  47. "<td>" + item.name + "</td>" +
  48. "<td>" + item.phone + "</td>" +
  49. "</tr>"
  50. })
  51. $('#dataList').html(items);
  52. } else {
  53. $('#dataList').html('');
  54. }
  55. console.log(result)
  56. totalPages = result.totalCount / result.limit;
  57. totalPages = Math.ceil(totalPages);
  58. $('#totalPage').html(totalPages); //总共多少页
  59. $('#dataTotal').html(result.totalCount); //总共多少条数据
  60. $('#currentPage').val(page); //当前页面
  61. let pageFrom = (page - 1) * result.limit + 1; //开始
  62. let pageTo = result.page * result.limit; //结束
  63. pageTo = pageTo > result.totalCount ? result.totalCount : pageTo;
  64. $('#pageFrom').html(pageFrom);
  65. $('#pageTo').html(pageTo);
  66. // 无数据时
  67. if (!result.totalCount) {
  68. $('.pager.has-data').hide()
  69. $('.pager.no-data').show()
  70. } else {
  71. $('.pager.has-data').show()
  72. $('.pager.no-data').hide()
  73. }
  74. if (page < totalPages) {
  75. $('#nextPageButton,#lastPageButton').removeClass('disabled');
  76. } else {
  77. $('#nextPageButton,#lastPageButton').addClass('disabled');
  78. }
  79. if (page === 1) {
  80. $('#firstPageButton,#prevPageButton').addClass('disabled');
  81. } else {
  82. $('#firstPageButton,#prevPageButton').removeClass('disabled');
  83. }
  84. }, function(errorMsg) {
  85. alert("请求数据失败!");
  86. }, 3)
  87. }
  88. //按钮搜索
  89. $('#buttonSearch').on('click', function() {
  90. page = 1;
  91. getListDataAjax(getSearchParamObj());
  92. param1 = $('#data3a').val()
  93. param2 = $('#data3b').val()
  94. param3 = $('#zt').val()
  95. param4 = $('#plan_name').val()
  96. param5 = $('#person_liable_id').val()
  97. })
  98. //拼接搜索条件
  99. function getSearchParamObj() {
  100. let queryParam = {};
  101. let data3a = $('#data3a').val();
  102. let data3b = $('#data3b').val();
  103. let zt = $('#zt').val();
  104. let plan_name = $('#plan_name').val()
  105. let person_liable_id = $('#person_liable_id').val();
  106. queryParam.data3a = data3a;
  107. queryParam.data3b = data3b;
  108. queryParam.zt = zt;
  109. queryParam.plan_name = plan_name;
  110. queryParam.person_liable_id = person_liable_id;
  111. return queryParam;
  112. }
  113. //重置表单
  114. $('.reset').click(resetForm);
  115. //分页刷新按钮
  116. $('.pg-refresh').click(resetForm);
  117. //重置表单
  118. function resetForm() {
  119. page = 1;
  120. $("#data3a").val("");
  121. $("#data3b").val("");
  122. $("#zt").val("4");
  123. $("#plan_name").val("");
  124. $("#person_liable_id").val("");
  125. getListDataAjax(getSearchParamObj());
  126. param1 = $('#data3a').val()
  127. param2 = $('#data3b').val()
  128. param3 = $('#zt').val()
  129. param4 = $('#plan_name').val()
  130. param5 = $('#person_liable_id').val()
  131. }
  132. //分页操作
  133. $('#firstPageButton').on('click', function() {
  134. page = 1;
  135. getListDataAjax(getSearchParamObj(), 1);
  136. })
  137. $('#lastPageButton').on('click', function() {
  138. page = totalPages;
  139. getListDataAjax({}, page);
  140. })
  141. $('#prevPageButton').on('click', function() {
  142. page -= 1;
  143. getListDataAjax(getSearchParamObj(), page);
  144. })
  145. $('#nextPageButton').on('click', function() {
  146. page += 1;
  147. getListDataAjax(getSearchParamObj(), page);
  148. })
  149. // 导出 start
  150. $('.export').click(function() {
  151. getDataExport({ "data3a": param1, "data3b": param2, "zt": param3, "plan_name": param4, "person_liable_id": param5 })
  152. })
  153. function getDataExport(queryParam = {}) {
  154. // 输出base64编码
  155. const base64 = s => window.btoa(unescape(encodeURIComponent(s)));
  156. ajaxRequest(RECORD_EXPORT, "POST", queryParam, function(result) {
  157. console.log('result.RESULT')
  158. console.log(result.RESULT)
  159. let data = result.RESULT;
  160. let newData = [];
  161. if (data) {
  162. data.forEach(function(item, index) {
  163. newData.push({ xh: item.xh, plan_name: item.plan_name, ywcsj: item.ywcsj, zt: item.zt, completion: item.completion, name: item.name, phone: item.phone })
  164. });
  165. }
  166. let str = '<tr style="text-align:center"><th>序号</th><th>任务名称</th><th>应完成时间</th><th>当前状态</th><th>完成情况%</th><th>相关责任人</th><th>联系电话</th></tr>';
  167. // 循环遍历,每行加入tr标签,每个单元格加td标签
  168. for (let i = 0; i < newData.length; i++) {
  169. str += '<tr style="text-align:center">';
  170. for (const key in newData[i]) {
  171. // 增加\t为了不让表格显示科学计数法或者其他格式
  172. str += `<td x:str>${ newData[i][key] + '\t'}</td>`;
  173. }
  174. str += '</tr>';
  175. }
  176. // Worksheet名
  177. const worksheet = 'Sheet1'
  178. const uri = 'data:application/vnd.ms-excel;base64,';
  179. // 下载的表格模板数据
  180. const template = `<html xmlns:o="urn:schemas-microsoft-com:office:office"
  181. xmlns:x="urn:schemas-microsoft-com:office:excel"
  182. xmlns="http://www.w3.org/TR/REC-html40">
  183. <head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>
  184. <x:Name>${worksheet}</x:Name>
  185. <x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>
  186. </x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->
  187. </head><body><table>${str}</table></body></html>`;
  188. // 通过创建a标签实现
  189. const link = document.createElement("a");
  190. link.href = uri + base64(template);
  191. // 对下载的文件命名
  192. link.download = "维保记录数据表.xls";
  193. link.click();
  194. }, function(errorMsg) {
  195. alert("请求数据失败!");
  196. }, 3)
  197. }
  198. // 导出 end