You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

119 lines
4.8 KiB

  1. /*
  2. * 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园(http://www.learun.cn)
  3. * Copyright (c) 2013-2018 北京泉江科技有限公司
  4. * 创建人:陈彬彬
  5. * 日 期:2017.04.11
  6. * 描 述:excel 数据导出
  7. */
  8. var gridId = request('gridId');
  9. var filename = decodeURI(request('filename'));
  10. var iframeIndex = request('iframeIndex');
  11. var acceptClick;
  12. var bootstrap = function ($, learun) {
  13. "use strict";
  14. var page = {
  15. init: function () {
  16. var columnModel;
  17. if (iframeIndex) {
  18. var currentWin = top.frames['layui-layer-iframe' + iframeIndex];
  19. if (currentWin.$('#' + gridId).jfGrid()[0].dfop.rowdatas.length == 0) {
  20. learun.alert.warning("暂无数据!");
  21. var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
  22. parent.layer.close(index); //再执行关闭
  23. return;
  24. }
  25. currentWin.$('#' + gridId).jfGridSet('reloadall');
  26. columnModel = currentWin.$('#' + gridId).jfGridGet('settingInfo').headData;
  27. } else {
  28. if (learun.frameTab.currentIframe().$('#' + gridId).jfGrid()[0].dfop.rowdatas.length == 0) {
  29. learun.alert.warning("暂无数据!");
  30. var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
  31. parent.layer.close(index); //再执行关闭
  32. return;
  33. }
  34. let tableisPage = learun.frameTab.currentIframe().$('#' + gridId).jfGridGet('settingInfo').isPage;
  35. if (tableisPage) {
  36. learun.frameTab.currentIframe().$('#' + gridId).jfGridSet('reloadall');
  37. }
  38. //learun.frameTab.currentIframe().$('#' + gridId).jfGridSet('reloadall');
  39. columnModel = learun.frameTab.currentIframe().$('#' + gridId).jfGridGet('settingInfo').headData;
  40. }
  41. var $ul = $('.sys_spec_text');
  42. $.each(columnModel,
  43. function (i, item) {
  44. var label = item.label;
  45. var name = item.name;
  46. if (!!label) {
  47. $(".sys_spec_text").append("<li data-value='" +
  48. name +
  49. "' title='" +
  50. label +
  51. "'><a>" +
  52. label +
  53. "</a><i></i></li>");
  54. }
  55. });
  56. $(".sys_spec_text li").addClass("active");
  57. $(".sys_spec_text li").click(function () {
  58. if (!!$(this).hasClass("active")) {
  59. $(this).removeClass("active");
  60. } else {
  61. $(this).addClass("active").siblings("li");
  62. }
  63. });
  64. },
  65. bind: function () {
  66. $("#all").on('click', function () {
  67. $.each($(".sys_spec_text li"), function (i, item) {
  68. $(item).addClass("active");
  69. })
  70. })
  71. $("#noall").on('click', function () {
  72. $.each($(".sys_spec_text li"), function (i, item) {
  73. $(item).removeClass("active");
  74. })
  75. })
  76. }
  77. };
  78. // 保存数据
  79. acceptClick = function (callBack) {
  80. var exportField = [];
  81. $('.sys_spec_text ').find('li.active').each(function () {
  82. var value = $(this).attr('data-value');
  83. exportField.push(value);
  84. });
  85. var columnJson, rowJson;
  86. if (iframeIndex) {
  87. var currentWin = top.frames['layui-layer-iframe' + iframeIndex];
  88. columnJson = JSON.stringify(currentWin.$('#' + gridId).jfGridGet('settingInfo').headData);
  89. rowJson = JSON.stringify(currentWin.$('#' + gridId).jfGridGet('showData'));
  90. currentWin.$('#' + gridId)[0].dfop.rows = 30;
  91. currentWin.$('#' + gridId).jfGridSet('reload');
  92. } else {
  93. columnJson = JSON.stringify(learun.frameTab.currentIframe().$('#' + gridId).jfGridGet('settingInfo').headData);
  94. rowJson = JSON.stringify(learun.frameTab.currentIframe().$('#' + gridId).jfGridGet('showData'));
  95. learun.frameTab.currentIframe().$('#' + gridId)[0].dfop.rows = 30;
  96. learun.frameTab.currentIframe().$('#' + gridId).jfGridSet('reload');
  97. }
  98. learun.download({
  99. method: "POST",
  100. url: '/Utility/ExportExcel',
  101. param: {
  102. fileName: filename,
  103. columnJson: columnJson,
  104. dataJson: rowJson,
  105. exportField: String(exportField)
  106. }
  107. });
  108. };
  109. page.init();
  110. page.bind();
  111. }