plan.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407
  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 = $('.pure-table tr').find('.checked').data('id');
  266. allParam.spot_id = spot_id;
  267. }
  268. //验证通过 请求ajax
  269. ajaxRequest(PLAN_ADD, "POST", allParam, function(result) {
  270. layer.close(layerCreateIndex);
  271. layer.msg('添加成功!', { icon: 6 });
  272. getListDataAjax();
  273. $('#addDataForm')[0].reset();
  274. }, function(errorMsg) {
  275. alert("异常错误!");
  276. }, 3)
  277. })
  278. /* 修改发送请求 */
  279. $('#updateData').click(function() {
  280. //获取表单的值 并转换成对象
  281. let allParam = serializeArrayToObj($("#editDataForm").serializeArray());
  282. //验证数据是否为空
  283. let res = validParamIsEmpty(allParam, {
  284. "plan_name": "请输入任务名称",
  285. "team_id": "请选择执行团队",
  286. "company_code": "请选择单位",
  287. "cycle": "请选择周期",
  288. "start_inspect_time": "请选择维保开始时间",
  289. "end_inspect_time": "请选择维保结束时间",
  290. "start_date": "请选择执行开始日期",
  291. "end_date": "请选择执行结束日期",
  292. });
  293. if (res.code == -1) {
  294. alert(res.msg);
  295. return;
  296. }
  297. //验证组织人员
  298. if (!$('.pure-table.pure-table-inner tr').has('.checked').length) {
  299. layer.msg('请选择一条需要修改的信息!', { icon: 5 });
  300. return
  301. } else {
  302. let spot_id = $('.pure-table #dataList3 tr').find('.checked').data('id');
  303. allParam.spot_id = spot_id;
  304. }
  305. let dataId = $('.pure-table #dataList tr').find('.checked').data('id');
  306. allParam.id = dataId;
  307. ajaxRequest(PLAN_EDIT, "POST", allParam, function(result) {
  308. layer.close(layerUpdateIndex);
  309. layer.msg('修改成功!', { icon: 6 });
  310. getListDataAjax();
  311. }, function(errorMsg) {
  312. alert("数据修改失败!");
  313. }, 2)
  314. })
  315. // 导出 start
  316. $('.export').click(function() {
  317. getDataExport({ "plan_name": param1, "person_liable_id": param2 })
  318. })
  319. function getDataExport(queryParam = {}) {
  320. // 输出base64编码
  321. const base64 = s => window.btoa(unescape(encodeURIComponent(s)));
  322. ajaxRequest(PLAN_EXPORT, "POST", queryParam, function(result) {
  323. console.log('result.RESULT')
  324. console.log(result.RESULT)
  325. let data = result.RESULT;
  326. let newData = [];
  327. if (data) {
  328. data.forEach(function(item, index) {
  329. 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 })
  330. });
  331. }
  332. let str = '<tr style="text-align:center"><th>序号</th><th>任务名称</th><th>周期</th><th>执行日期</th><th>执行团队</th><th>责任人</th></tr>';
  333. // 循环遍历,每行加入tr标签,每个单元格加td标签
  334. for (let i = 0; i < newData.length; i++) {
  335. str += '<tr style="text-align:center">';
  336. for (const key in newData[i]) {
  337. // 增加\t为了不让表格显示科学计数法或者其他格式
  338. str += `<td x:str>${ newData[i][key] + '\t'}</td>`;
  339. }
  340. str += '</tr>';
  341. }
  342. // Worksheet名
  343. const worksheet = 'Sheet1'
  344. const uri = 'data:application/vnd.ms-excel;base64,';
  345. // 下载的表格模板数据
  346. const template = `<html xmlns:o="urn:schemas-microsoft-com:office:office"
  347. xmlns:x="urn:schemas-microsoft-com:office:excel"
  348. xmlns="http://www.w3.org/TR/REC-html40">
  349. <head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>
  350. <x:Name>${worksheet}</x:Name>
  351. <x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>
  352. </x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->
  353. </head><body><table>${str}</table></body></html>`;
  354. // 通过创建a标签实现
  355. const link = document.createElement("a");
  356. link.href = uri + base64(template);
  357. // 对下载的文件命名
  358. link.download = "维保计划数据表.xls";
  359. link.click();
  360. }, function(errorMsg) {
  361. alert("请求数据失败!");
  362. }, 3)
  363. }
  364. // 导出 end