plan.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419
  1. var page = 1;
  2. var totalPages = 0;
  3. var param1 = '';
  4. var param2 = '';
  5. //列表渲染
  6. getListDataAjax();
  7. //获取列表ajax请求
  8. function getListDataAjax(queryParam = {}, page = 1) {
  9. queryParam.page = page;
  10. queryParam.limit = 20; //每页显示条数
  11. queryParam.start = (queryParam.page - 1) * queryParam.limit;
  12. ajaxRequest(PLAN_LIST, "POST", queryParam, function(result) {
  13. let data = result.RESULT;
  14. let items = '';
  15. if (result.totalCount > 0) {
  16. data.forEach(function(item, key) {
  17. items += "<tr>" +
  18. "<td class='status' data-user='" + JSON.stringify(item) + "' data-id='" + item.id + "'></td>" +
  19. "<td>" + item.xh + "</td>" +
  20. "<td>" + item.plan_name + "</td>" +
  21. "<td>" + item.cycle_name + "</td>" +
  22. "<td>" + item.zxsj + "</td>" +
  23. "<td>" + item.team_name + "</td>" +
  24. "<td>" + item.name + "</td>" +
  25. "</tr>"
  26. })
  27. $('#dataList').html(items);
  28. } else {
  29. $('#dataList').html('');
  30. }
  31. totalPages = result.totalCount / result.limit;
  32. totalPages = Math.ceil(totalPages);
  33. $('#totalPage').html(totalPages); //总共多少页
  34. $('#dataTotal').html(result.totalCount); //总共多少条数据
  35. $('#currentPage').val(page); //当前页面
  36. let pageFrom = (page - 1) * result.limit + 1; //开始
  37. let pageTo = result.page * result.limit; //结束
  38. pageTo = pageTo > result.totalCount ? result.totalCount : pageTo;
  39. $('#pageFrom').html(pageFrom);
  40. $('#pageTo').html(pageTo);
  41. // 无数据时
  42. if (!result.totalCount) {
  43. $('.pager.has-data').hide()
  44. $('.pager.no-data').show()
  45. } else {
  46. $('.pager.has-data').show()
  47. $('.pager.no-data').hide()
  48. }
  49. if (page < totalPages) {
  50. $('#nextPageButton,#lastPageButton').removeClass('disabled');
  51. } else {
  52. $('#nextPageButton,#lastPageButton').addClass('disabled');
  53. }
  54. if (page === 1) {
  55. $('#firstPageButton,#prevPageButton').addClass('disabled');
  56. } else {
  57. $('#firstPageButton,#prevPageButton').removeClass('disabled');
  58. }
  59. }, function(errorMsg) {
  60. alert("请求数据失败!");
  61. }, 3)
  62. }
  63. // 责任人下拉 start
  64. getStaticAndSelectAjax({ "pd": "no" });
  65. function getStaticAndSelectAjax(queryParam = {}) {
  66. ajaxRequest(TEAM_PERSON, "POST", queryParam, function(result) {
  67. queryParam.pd = 'no';
  68. let data = result.RESULT;
  69. let items = '';
  70. data.forEach(function(item, key) {
  71. items += `<option value="${item.username}">${item.username}</option>`
  72. })
  73. $('#person_liable_id').append(items);
  74. $('#person_liable_id2').append(items);
  75. $('#person_liable_id3').append(items);
  76. }, function(errorMsg) {
  77. alert("请求数据失败!");
  78. }, 3)
  79. }
  80. // 责任人下拉end
  81. //单位下拉
  82. getNameList()
  83. //单位下拉 ajax请求
  84. function getNameList() {
  85. ajaxRequest(DEVICE_TYPE_COMPANYLIST, "POST", {}, function(result) {
  86. let data = result.RESULT;
  87. let items = '';
  88. data.forEach(function(item, key) {
  89. items += `<option value="${item.owner_id}">${item.owner_name}</option>`
  90. })
  91. $('#getNameList').append(items);
  92. $('#getNameList3').append(items);
  93. }, function(errorMsg) {
  94. alert("请求数据失败!");
  95. })
  96. }
  97. //执行团队下拉
  98. getTeamList()
  99. //执行团队下拉 ajax请求
  100. function getTeamList() {
  101. ajaxRequest(TEAM_SELECT, "POST", {}, function(result) {
  102. let data = result.RESULT;
  103. let items = '';
  104. data.forEach(function(item, key) {
  105. items += `<option value="${item.id}">${item.team_name}</option>`
  106. })
  107. $('#getTeamList').append(items);
  108. $('#getTeamList3').append(items);
  109. }, function(errorMsg) {
  110. alert("请求数据失败!");
  111. })
  112. }
  113. //按钮搜索
  114. $('#buttonSearch').on('click', function() {
  115. page = 1;
  116. getListDataAjax(getSearchParamObj());
  117. param1 = $('#plan_name').val()
  118. param2 = $('#person_liable_id').val()
  119. })
  120. //拼接搜索条件
  121. function getSearchParamObj() {
  122. let queryParam = {};
  123. let plan_name = $('#plan_name').val();
  124. let person_liable_id = $('#person_liable_id').val();
  125. queryParam.plan_name = plan_name;
  126. queryParam.person_liable_id = person_liable_id;
  127. return queryParam;
  128. }
  129. //重置表单
  130. $('.reset').click(resetForm);
  131. //分页刷新按钮
  132. $('.pg-refresh').click(resetForm);
  133. //重置表单
  134. function resetForm() {
  135. page = 1;
  136. $("#plan_name").val("");
  137. $("#person_liable_id").val("");
  138. getListDataAjax(getSearchParamObj());
  139. param1 = $('#plan_name').val()
  140. param5 = $('#person_liable_id').val()
  141. }
  142. //分页操作
  143. $('#firstPageButton').on('click', function() {
  144. page = 1;
  145. getListDataAjax(getSearchParamObj(), 1);
  146. })
  147. $('#lastPageButton').on('click', function() {
  148. page = totalPages;
  149. getListDataAjax({}, page);
  150. })
  151. $('#prevPageButton').on('click', function() {
  152. page -= 1;
  153. getListDataAjax(getSearchParamObj(), page);
  154. })
  155. $('#nextPageButton').on('click', function() {
  156. page += 1;
  157. getListDataAjax(getSearchParamObj(), page);
  158. })
  159. /*新增 修改 关闭 弹框*/
  160. layui.use('layer', function() {
  161. // 新增弹框
  162. $(document).on('click', '.add', function() {
  163. layerCreateIndex = layer.open({
  164. type: 1,
  165. title: false,
  166. closeBtn: 0,
  167. shadeClose: true,
  168. skin: 'yourclass',
  169. area: ['800px', '600px'],
  170. content: $(".addDataOut"),
  171. success: function() {
  172. getTeamInnerList();
  173. $('.clsBtn,.cancel').click(function() {
  174. innerPage = 1;
  175. layer.close(layerCreateIndex);
  176. })
  177. }
  178. })
  179. })
  180. //修改弹框信息
  181. $('.edit').click(function() {
  182. let dataId = $('.pure-table #dataList tr').find('.checked').data('id');
  183. if (!$('.pure-table tr').has('.checked').length) {
  184. layer.msg('请选择一条需要修改的信息!', { icon: 5 });
  185. } else {
  186. let userInfo = $('.pure-table tr').find('.checked').data('user');
  187. $('.editDataOut input[name=plan_name]').val(userInfo.plan_name)
  188. $('.editDataOut select[name=team_id]').val(userInfo.team_id)
  189. $('.editDataOut select[name=company_code]').val(userInfo.company_code)
  190. $("input[name='cycle']").each(function() {
  191. if ($(this).val() != userInfo.cycle) {
  192. $(this).removeAttr("checked");
  193. } else {
  194. $(this).prop("checked", "checked");
  195. }
  196. });
  197. layui.use(['form'], function() {
  198. var form = layui.form;
  199. form.render('radio');
  200. })
  201. $('.editDataOut select[name=start_inspect_time]').val(userInfo.start_inspect_time)
  202. $('.editDataOut select[name=end_inspect_time]').val(userInfo.end_inspect_time)
  203. $('.editDataOut input[name=start_date]').val(userInfo.start_date)
  204. $('.editDataOut input[name=end_date]').val(userInfo.end_date)
  205. layerUpdateIndex = layer.open({
  206. type: 1,
  207. title: false,
  208. closeBtn: 0,
  209. shadeClose: true,
  210. skin: 'yourclass',
  211. area: ['800px', '600px'],
  212. content: $(".editDataOut"),
  213. success: function() {
  214. getTeamInnerList({ "dwid": dataId });
  215. $('.clsBtn,.cancel').click(function() {
  216. innerPage = 1;
  217. layer.close(layerUpdateIndex);
  218. })
  219. }
  220. });
  221. }
  222. })
  223. //删除信息
  224. $('.delete').click(function() {
  225. if (!$('.pure-table tr').has('.checked').length) {
  226. //layer.msg('请选择一条需要修改的信息');
  227. layer.msg('请选择一条需要删除的信息!', { icon: 5 });
  228. } else {
  229. let dataId = $('.pure-table #dataList tr').find('.checked').data('id');
  230. ajaxRequest(PLAN_DELETE, "POST", { "ID_LIST": [{ "id": dataId }] }, function(result) {
  231. $(".pure-table tbody tr.selected").remove()
  232. layer.close(layer.layerCreateIndex);
  233. layer.msg('删除成功!', { icon: 6 });
  234. getListDataAjax()
  235. }, function(errorMsg) {
  236. alert("用户删除失败!");
  237. }, 2)
  238. }
  239. })
  240. })
  241. /* 新增发送请求 */
  242. $('#addData').click(function() {
  243. //获取表单的值 并转换成对象
  244. let allParam = serializeArrayToObj($("#addDataForm").serializeArray());
  245. //验证数据是否为空
  246. let res = validParamIsEmpty(allParam, {
  247. "plan_name": "请输入任务名称",
  248. "team_id": "请选择执行团队",
  249. "company_code": "请选择单位",
  250. "cycle": "请选择周期",
  251. "start_inspect_time": "请选择维保开始时间",
  252. "end_inspect_time": "请选择维保结束时间",
  253. "start_date": "请选择执行开始日期",
  254. "end_date": "请选择执行结束日期",
  255. });
  256. if (res.code == -1) {
  257. alert(res.msg);
  258. return;
  259. }
  260. //验证组织人员
  261. if (!$('.pure-table.pure-table-inner tr').has('.checked').length) {
  262. layer.msg('请选择一条需要修改的信息!', { icon: 5 });
  263. return
  264. } else {
  265. let spot_id = [];
  266. $(".pure-table-inner #dataList2 td.checked").each(function() {
  267. spot_id.push($(this).attr("data-id"));
  268. });
  269. spot_id = spot_id.join(',')
  270. allParam.spot_id = spot_id;
  271. }
  272. //验证通过 请求ajax
  273. ajaxRequest(PLAN_ADD, "POST", allParam, function(result) {
  274. layer.close(layerCreateIndex);
  275. layer.msg('添加成功!', { icon: 6 });
  276. getListDataAjax();
  277. $('#addDataForm')[0].reset();
  278. }, function(errorMsg) {
  279. alert("异常错误!");
  280. }, 3)
  281. })
  282. /* 修改发送请求 */
  283. $('#updateData').click(function() {
  284. //获取表单的值 并转换成对象
  285. let allParam = serializeArrayToObj($("#editDataForm").serializeArray());
  286. //验证数据是否为空
  287. // let res = validParamIsEmpty(allParam, {
  288. // "plan_name": "请输入任务名称",
  289. // "team_id": "请选择执行团队",
  290. // "company_code": "请选择单位",
  291. // "cycle": "请选择周期",
  292. // "start_inspect_time": "请选择维保开始时间",
  293. // "end_inspect_time": "请选择维保结束时间",
  294. // "start_date": "请选择执行开始日期",
  295. // "end_date": "请选择执行结束日期",
  296. // });
  297. // if (res.code == -1) {
  298. // alert(res.msg);
  299. // return;
  300. // }
  301. //验证组织人员
  302. if (!$('.pure-table.pure-table-inner tr').has('.checked').length) {
  303. layer.msg('请选择一条需要修改的信息!', { icon: 5 });
  304. return
  305. } else {
  306. let spot_id = [];
  307. $(".pure-table-inner #dataList3 td.checked").each(function() {
  308. spot_id.push($(this).attr("data-id"));
  309. });
  310. spot_id = spot_id.join(',');
  311. alert(spot_id);
  312. allParam.spot_id = spot_id;
  313. }
  314. let dataId = $('.pure-table #dataList tr').find('.checked').data('id');
  315. allParam.id = dataId;
  316. // ajaxRequest(PLAN_EDIT, "POST", allParam, function(result) {
  317. // innerPage = 1;
  318. // layer.close(layerUpdateIndex);
  319. // layer.msg('修改成功!', { icon: 6 });
  320. // getListDataAjax();
  321. // }, function(errorMsg) {
  322. // alert("数据修改失败!");
  323. // }, 2)
  324. })
  325. // 导出 start
  326. $('.export').click(function() {
  327. getDataExport({ "plan_name": param1, "person_liable_id": param2 })
  328. })
  329. function getDataExport(queryParam = {}) {
  330. // 输出base64编码
  331. const base64 = s => window.btoa(unescape(encodeURIComponent(s)));
  332. ajaxRequest(PLAN_EXPORT, "POST", queryParam, function(result) {
  333. console.log('result.RESULT')
  334. console.log(result.RESULT)
  335. let data = result.RESULT;
  336. let newData = [];
  337. if (data) {
  338. data.forEach(function(item, index) {
  339. newData.push({ xh: item.xh, plan_name: item.plan_name, cycle_name: item.cycle_name, zxsj: item.zxsj, team_name: item.team_name, name: item.name })
  340. });
  341. }
  342. let str = '<tr style="text-align:center"><th>序号</th><th>任务名称</th><th>周期</th><th>执行日期</th><th>执行团队</th><th>责任人</th></tr>';
  343. // 循环遍历,每行加入tr标签,每个单元格加td标签
  344. for (let i = 0; i < newData.length; i++) {
  345. str += '<tr style="text-align:center">';
  346. for (const key in newData[i]) {
  347. // 增加\t为了不让表格显示科学计数法或者其他格式
  348. str += `<td x:str>${ newData[i][key] + '\t'}</td>`;
  349. }
  350. str += '</tr>';
  351. }
  352. // Worksheet名
  353. const worksheet = 'Sheet1'
  354. const uri = 'data:application/vnd.ms-excel;base64,';
  355. // 下载的表格模板数据
  356. const template = `<html xmlns:o="urn:schemas-microsoft-com:office:office"
  357. xmlns:x="urn:schemas-microsoft-com:office:excel"
  358. xmlns="http://www.w3.org/TR/REC-html40">
  359. <head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>
  360. <x:Name>${worksheet}</x:Name>
  361. <x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>
  362. </x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->
  363. </head><body><table>${str}</table></body></html>`;
  364. // 通过创建a标签实现
  365. const link = document.createElement("a");
  366. link.href = uri + base64(template);
  367. // 对下载的文件命名
  368. link.download = "维保计划数据表.xls";
  369. link.click();
  370. }, function(errorMsg) {
  371. alert("请求数据失败!");
  372. }, 3)
  373. }
  374. // 导出 end