plan.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424
  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. arr99 = [];
  164. layerCreateIndex = layer.open({
  165. type: 1,
  166. title: false,
  167. closeBtn: 0,
  168. shadeClose: true,
  169. skin: 'yourclass',
  170. area: ['800px', '600px'],
  171. content: $(".addDataOut"),
  172. success: function() {
  173. getTeamInnerList();
  174. $('.clsBtn,.cancel').click(function() {
  175. innerPage = 1;
  176. layer.close(layerCreateIndex);
  177. })
  178. }
  179. })
  180. })
  181. //修改弹框信息
  182. $('.edit').click(function() {
  183. arr99 = [];
  184. filterAll();
  185. let dataId = $('.pure-table #dataList tr').find('.checked').data('id');
  186. if (!$('.pure-table tr').has('.checked').length) {
  187. layer.msg('请选择一条需要修改的信息!', { icon: 5 });
  188. } else {
  189. let userInfo = $('.pure-table tr').find('.checked').data('user');
  190. $('.editDataOut input[name=plan_name]').val(userInfo.plan_name)
  191. $('.editDataOut select[name=team_id]').val(userInfo.team_id)
  192. $('.editDataOut select[name=company_code]').val(userInfo.company_code)
  193. $("input[name='cycle']").each(function() {
  194. if ($(this).val() != userInfo.cycle) {
  195. $(this).removeAttr("checked");
  196. } else {
  197. $(this).prop("checked", "checked");
  198. }
  199. });
  200. layui.use(['form'], function() {
  201. var form = layui.form;
  202. form.render('radio');
  203. })
  204. $('.editDataOut select[name=start_inspect_time]').val(userInfo.start_inspect_time)
  205. $('.editDataOut select[name=end_inspect_time]').val(userInfo.end_inspect_time)
  206. $('.editDataOut input[name=start_date]').val(userInfo.start_date)
  207. $('.editDataOut input[name=end_date]').val(userInfo.end_date)
  208. layerUpdateIndex = layer.open({
  209. type: 1,
  210. title: false,
  211. closeBtn: 0,
  212. shadeClose: true,
  213. skin: 'yourclass',
  214. area: ['800px', '600px'],
  215. content: $(".editDataOut"),
  216. success: function() {
  217. getTeamInnerList({ "dwid": dataId });
  218. $('.clsBtn,.cancel').click(function() {
  219. innerPage = 1;
  220. layer.close(layerUpdateIndex);
  221. })
  222. }
  223. });
  224. }
  225. })
  226. //删除信息
  227. $('.delete').click(function() {
  228. if (!$('.pure-table tr').has('.checked').length) {
  229. //layer.msg('请选择一条需要修改的信息');
  230. layer.msg('请选择一条需要删除的信息!', { icon: 5 });
  231. } else {
  232. let dataId = $('.pure-table #dataList tr').find('.checked').data('id');
  233. ajaxRequest(PLAN_DELETE, "POST", { "ID_LIST": [{ "id": dataId }] }, function(result) {
  234. $(".pure-table tbody tr.selected").remove()
  235. layer.close(layer.layerCreateIndex);
  236. layer.msg('删除成功!', { icon: 6 });
  237. getListDataAjax()
  238. }, function(errorMsg) {
  239. alert("用户删除失败!");
  240. }, 2)
  241. }
  242. })
  243. })
  244. /* 新增发送请求 */
  245. $('#addData').click(function() {
  246. //获取表单的值 并转换成对象
  247. let allParam = serializeArrayToObj($("#addDataForm").serializeArray());
  248. //验证数据是否为空
  249. let res = validParamIsEmpty(allParam, {
  250. "plan_name": "请输入任务名称",
  251. "team_id": "请选择执行团队",
  252. "company_code": "请选择单位",
  253. "cycle": "请选择周期",
  254. "start_inspect_time": "请选择维保开始时间",
  255. "end_inspect_time": "请选择维保结束时间",
  256. "start_date": "请选择执行开始日期",
  257. "end_date": "请选择执行结束日期",
  258. });
  259. if (res.code == -1) {
  260. alert(res.msg);
  261. return;
  262. }
  263. //验证组织人员
  264. // if (!$('.pure-table.pure-table-inner #dataList2 tr').has('.checked').length) {
  265. if (!arr99.length) {
  266. layer.msg('请选择一条需要修改的信息!', { icon: 5 });
  267. return
  268. } else {
  269. let spot_id = [];
  270. spot_id = arr99;
  271. // alert(spot_id)
  272. spot_id = spot_id.join(',')
  273. allParam.spot_id = spot_id;
  274. }
  275. // 验证通过 请求ajax
  276. ajaxRequest(PLAN_ADD, "POST", allParam, function(result) {
  277. layer.close(layerCreateIndex);
  278. layer.msg('添加成功!', { icon: 6 });
  279. getListDataAjax();
  280. $('#addDataForm')[0].reset();
  281. }, function(errorMsg) {
  282. alert("异常错误!");
  283. }, 3)
  284. })
  285. /* 修改发送请求 */
  286. $('#updateData').click(function() {
  287. //获取表单的值 并转换成对象
  288. let allParam = serializeArrayToObj($("#editDataForm").serializeArray());
  289. //验证数据是否为空
  290. let res = validParamIsEmpty(allParam, {
  291. "plan_name": "请输入任务名称",
  292. "team_id": "请选择执行团队",
  293. "company_code": "请选择单位",
  294. "cycle": "请选择周期",
  295. "start_inspect_time": "请选择维保开始时间",
  296. "end_inspect_time": "请选择维保结束时间",
  297. "start_date": "请选择执行开始日期",
  298. "end_date": "请选择执行结束日期",
  299. });
  300. if (res.code == -1) {
  301. alert(res.msg);
  302. return;
  303. }
  304. //验证组织人员
  305. //如果所有页面中没有被选中的,请选则提示
  306. if (!arr99.length) {
  307. // if (!$('.pure-table.pure-table-inner #dataList3 tr').has('.checked').length && !arrDelPd.length) {
  308. layer.msg('请选择一条需要修改的信息!', { icon: 5 });
  309. return
  310. } else {
  311. let spot_id = [];
  312. spot_id = arr99;
  313. spot_id = spot_id.join(',');
  314. // alert(spot_id);
  315. allParam.spot_id = spot_id;
  316. }
  317. let dataId = $('.pure-table #dataList tr').find('.checked').data('id');
  318. allParam.id = dataId;
  319. ajaxRequest(PLAN_EDIT, "POST", allParam, function(result) {
  320. innerPage = 1;
  321. layer.close(layerUpdateIndex);
  322. layer.msg('修改成功!', { icon: 6 });
  323. getListDataAjax();
  324. }, function(errorMsg) {
  325. alert("数据修改失败!");
  326. }, 2)
  327. })
  328. // 导出 start
  329. $('.export').click(function() {
  330. getDataExport({ "plan_name": param1, "person_liable_id": param2 })
  331. })
  332. function getDataExport(queryParam = {}) {
  333. // 输出base64编码
  334. const base64 = s => window.btoa(unescape(encodeURIComponent(s)));
  335. ajaxRequest(PLAN_EXPORT, "POST", queryParam, function(result) {
  336. let data = result.RESULT;
  337. let newData = [];
  338. if (data) {
  339. data.forEach(function(item, index) {
  340. 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 })
  341. });
  342. }
  343. let str = '<tr style="text-align:center"><th>序号</th><th>任务名称</th><th>周期</th><th>执行日期</th><th>执行团队</th><th>责任人</th></tr>';
  344. // 循环遍历,每行加入tr标签,每个单元格加td标签
  345. for (let i = 0; i < newData.length; i++) {
  346. str += '<tr style="text-align:center">';
  347. for (const key in newData[i]) {
  348. // 增加\t为了不让表格显示科学计数法或者其他格式
  349. str += `<td x:str>${ newData[i][key] + '\t'}</td>`;
  350. }
  351. str += '</tr>';
  352. }
  353. // Worksheet名
  354. const worksheet = 'Sheet1'
  355. const uri = 'data:application/vnd.ms-excel;base64,';
  356. // 下载的表格模板数据
  357. const template = `<html xmlns:o="urn:schemas-microsoft-com:office:office"
  358. xmlns:x="urn:schemas-microsoft-com:office:excel"
  359. xmlns="http://www.w3.org/TR/REC-html40">
  360. <head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>
  361. <x:Name>${worksheet}</x:Name>
  362. <x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>
  363. </x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->
  364. </head><body><table>${str}</table></body></html>`;
  365. // 通过创建a标签实现
  366. const link = document.createElement("a");
  367. link.href = uri + base64(template);
  368. // 对下载的文件命名
  369. link.download = "维保计划数据表.xls";
  370. link.click();
  371. }, function(errorMsg) {
  372. alert("请求数据失败!");
  373. }, 3)
  374. }
  375. // 导出 end