plan.js 13 KB

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