plan.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360
  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 = 8; //每页显示条数
  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>" + item.id + "</td>" +
  44. "<td>" + item.ywcsj + "</td>" +
  45. "<td>" + item.zt + "</td>" +
  46. "<td>" + item.completion + "</td>" +
  47. "</tr>"
  48. })
  49. $('#dataList').html(items);
  50. } else {
  51. $('#dataList').html('');
  52. }
  53. console.log(result)
  54. totalPages = result.totalCount / result.limit;
  55. totalPages = Math.ceil(totalPages);
  56. $('#totalPage').html(totalPages); //总共多少页
  57. $('#dataTotal').html(result.totalCount); //总共多少条数据
  58. $('#currentPage').val(page); //当前页面
  59. let pageFrom = (page - 1) * result.limit + 1; //开始
  60. let pageTo = result.page * result.limit; //结束
  61. pageTo = pageTo > result.totalCount ? result.totalCount : pageTo;
  62. $('#pageFrom').html(pageFrom);
  63. $('#pageTo').html(pageTo);
  64. // 无数据时
  65. if (!result.totalCount) {
  66. $('.pager.has-data').hide()
  67. $('.pager.no-data').show()
  68. } else {
  69. $('.pager.has-data').show()
  70. $('.pager.no-data').hide()
  71. }
  72. if (page < totalPages) {
  73. $('#nextPageButton,#lastPageButton').removeClass('disabled');
  74. } else {
  75. $('#nextPageButton,#lastPageButton').addClass('disabled');
  76. }
  77. if (page === 1) {
  78. $('#firstPageButton,#prevPageButton').addClass('disabled');
  79. } else {
  80. $('#firstPageButton,#prevPageButton').removeClass('disabled');
  81. }
  82. }, function(errorMsg) {
  83. alert("请求数据失败!");
  84. }, 3)
  85. }
  86. //按钮搜索
  87. $('#buttonSearch').on('click', function() {
  88. page = 1;
  89. getListDataAjax(getSearchParamObj());
  90. param1 = $('#data3a').val()
  91. param2 = $('#data3b').val()
  92. param3 = $('#zt').val()
  93. param4 = $('#plan_name').val()
  94. param5 = $('#person_liable_id').val()
  95. })
  96. //拼接搜索条件
  97. function getSearchParamObj() {
  98. let queryParam = {};
  99. let data3a = $('#data3a').val();
  100. let data3b = $('#data3b').val();
  101. let zt = $('#zt').val();
  102. let plan_name = $('#plan_name').val()
  103. let person_liable_id = $('#person_liable_id').val();
  104. queryParam.data3a = data3a;
  105. queryParam.data3b = data3b;
  106. queryParam.zt = zt;
  107. queryParam.plan_name = plan_name;
  108. queryParam.person_liable_id = person_liable_id;
  109. return queryParam;
  110. }
  111. //重置表单
  112. $('.reset').click(resetForm);
  113. //分页刷新按钮
  114. $('.pg-refresh').click(resetForm);
  115. //重置表单
  116. function resetForm() {
  117. page = 1;
  118. $("#data3a").val("");
  119. $("#data3b").val("");
  120. $("#zt").val("4");
  121. $("#plan_name").val("");
  122. $("#person_liable_id").val("");
  123. getListDataAjax(getSearchParamObj());
  124. param1 = $('#data3a').val()
  125. param2 = $('#data3b').val()
  126. param3 = $('#zt').val()
  127. param4 = $('#plan_name').val()
  128. param5 = $('#person_liable_id').val()
  129. }
  130. //分页操作
  131. $('#firstPageButton').on('click', function() {
  132. page = 1;
  133. getListDataAjax(getSearchParamObj(), 1);
  134. })
  135. $('#lastPageButton').on('click', function() {
  136. page = totalPages;
  137. getListDataAjax({}, page);
  138. })
  139. $('#prevPageButton').on('click', function() {
  140. page -= 1;
  141. getListDataAjax(getSearchParamObj(), page);
  142. })
  143. $('#nextPageButton').on('click', function() {
  144. page += 1;
  145. getListDataAjax(getSearchParamObj(), page);
  146. })
  147. /*新增 修改 关闭 弹框*/
  148. var layer = layui.layer;
  149. var layerCreateIndex = '';
  150. var layerUpdateIndex = ''
  151. layui.use('layer', function() {
  152. //新增弹框
  153. $('.add').click(function() {
  154. layerCreateIndex = layer.open({
  155. type: 1,
  156. title: false,
  157. closeBtn: 0,
  158. shadeClose: true,
  159. skin: 'yourclass',
  160. area: ['450px', '500px'],
  161. content: $(".addDeviceTypeOut"),
  162. success: function() {
  163. $('.clsBtn,.cancel').click(function() {
  164. layer.close(layerCreateIndex);
  165. })
  166. }
  167. })
  168. }),
  169. //修改弹框信息
  170. $('.edit').click(function() {
  171. if (!$('.pure-table tr').has('.checked').length) {
  172. layer.msg('请选择一条需要修改的信息!', { icon: 5 });
  173. } else {
  174. let userInfo = $('.pure-table tr').find('.checked').data('user');
  175. $('.editDeviceTypeOut input[name=type_name]').val(userInfo.type_name)
  176. $('.editDeviceTypeOut input[name=type_value]').val(userInfo.type_value)
  177. $('.editDeviceTypeOut select[name=transmission_model]').val(userInfo.transmission_model)
  178. $('.editDeviceTypeOut input[name=business').val(userInfo.business)
  179. $('.editDeviceTypeOut select[name=company_code]').val(userInfo.company_code)
  180. $('.editDeviceTypeOut input[name=id').val(userInfo.id)
  181. layerUpdateIndex = layer.open({
  182. type: 1,
  183. title: false,
  184. closeBtn: 0,
  185. shadeClose: true,
  186. skin: 'yourclass',
  187. area: ['410px', '400px'],
  188. content: $(".editDeviceTypeOut"),
  189. success: function() {
  190. $('.clsBtn,.cancel').click(function() {
  191. layer.close(layerUpdateIndex);
  192. })
  193. }
  194. });
  195. }
  196. })
  197. //删除信息
  198. $('.delete').click(function() {
  199. if (!$('.pure-table tr').has('.checked').length) {
  200. //layer.msg('请选择一条需要修改的信息');
  201. layer.msg('请选择一条需要删除的信息!', { icon: 5 });
  202. } else {
  203. let dataId = $('.pure-table tr').find('.checked').data('id');
  204. ajaxRequest(DEVICE_TYPE_DELETE, "POST", { "ID_LIST": [{ "id": dataId }] }, function(result) {
  205. $(".pure-table tbody tr.selected").remove()
  206. let data = result
  207. layer.close(layer.layerCreateIndex);
  208. layer.msg('删除成功!', { icon: 6 });
  209. getListDataAjax()
  210. }, function(errorMsg) {
  211. alert("用户删除失败!");
  212. }, 2)
  213. }
  214. })
  215. })
  216. /* 新增发送请求 */
  217. $('#addMenu').click(function() {
  218. //获取表单的值 并转换成对象
  219. let allParam = serializeArrayToObj($("#addMenuForm").serializeArray());
  220. //验证数据是否为空
  221. let res = validParamIsEmpty(allParam, {
  222. "type_name": "请输入类型名称",
  223. "type_value": "请输入类型参数",
  224. "transmission_model": "请选择传输类型",
  225. "business": "请输入厂家名称",
  226. "company_code": "请选择所属单位",
  227. });
  228. if (res.code == -1) {
  229. alert(res.msg);
  230. return;
  231. }
  232. //验证通过 请求ajax
  233. ajaxRequest(DEVICE_TYPE_ADD, "POST", allParam, function(result) {
  234. layer.close(layerCreateIndex);
  235. layer.msg('添加成功!', { icon: 6 });
  236. getListDataAjax();
  237. $('#addMenuForm')[0].reset();
  238. }, function(errorMsg) {
  239. alert("异常错误!");
  240. })
  241. })
  242. /* 修改发送请求 */
  243. $('#dataUpdate').click(function() {
  244. //获取表单的值 并转换成对象
  245. let allParam = serializeArrayToObj($("#updateMenuForm").serializeArray());
  246. //验证数据是否为空
  247. let res = validParamIsEmpty(allParam, {
  248. "type_name": "请输入类型名称",
  249. "type_value": "请输入类型参数",
  250. "transmission_model": "请选择传输方式",
  251. "business": "请输入厂家名称",
  252. });
  253. if (res.code == -1) {
  254. alert(res.msg);
  255. return;
  256. }
  257. ajaxRequest(DEVICE_TYPE_UPDATE, "POST", allParam, function(result) {
  258. layer.close(layerUpdateIndex);
  259. layer.msg('修改成功!', { icon: 6 });
  260. getListDataAjax();
  261. }, function(errorMsg) {
  262. alert("数据修改失败!");
  263. })
  264. })
  265. // 导出 start
  266. $('.export').click(function() {
  267. getDataExport({ "data3a": param1, "data3b": param2, "zt": param3, "plan_name": param4, "person_liable_id": param5 })
  268. })
  269. function getDataExport(queryParam = {}) {
  270. // 输出base64编码
  271. const base64 = s => window.btoa(unescape(encodeURIComponent(s)));
  272. ajaxRequest(RECORD_EXPORT, "POST", queryParam, function(result) {
  273. console.log('result.RESULT')
  274. console.log(result.RESULT)
  275. let data = result.RESULT;
  276. let newData = [];
  277. if (data) {
  278. data.forEach(function(item, index) {
  279. 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 })
  280. });
  281. }
  282. let str = '<tr style="text-align:center"><th>序号</th><th>任务名称</th><th>应完成时间</th><th>当前状态</th><th>完成情况%</th><th>相关责任人</th><th>联系电话</th></tr>';
  283. // 循环遍历,每行加入tr标签,每个单元格加td标签
  284. for (let i = 0; i < newData.length; i++) {
  285. str += '<tr style="text-align:center">';
  286. for (const key in newData[i]) {
  287. // 增加\t为了不让表格显示科学计数法或者其他格式
  288. str += `<td x:str>${ newData[i][key] + '\t'}</td>`;
  289. }
  290. str += '</tr>';
  291. }
  292. // Worksheet名
  293. const worksheet = 'Sheet1'
  294. const uri = 'data:application/vnd.ms-excel;base64,';
  295. // 下载的表格模板数据
  296. const template = `<html xmlns:o="urn:schemas-microsoft-com:office:office"
  297. xmlns:x="urn:schemas-microsoft-com:office:excel"
  298. xmlns="http://www.w3.org/TR/REC-html40">
  299. <head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>
  300. <x:Name>${worksheet}</x:Name>
  301. <x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>
  302. </x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->
  303. </head><body><table>${str}</table></body></html>`;
  304. // 通过创建a标签实现
  305. const link = document.createElement("a");
  306. link.href = uri + base64(template);
  307. // 对下载的文件命名
  308. link.download = "维保记录数据表.xls";
  309. link.click();
  310. }, function(errorMsg) {
  311. alert("请求数据失败!");
  312. }, 3)
  313. }
  314. // 导出 end