实时报表Excel导出调整为后台导出

This commit is contained in:
leijun
2019-01-03 18:44:13 +08:00
parent d632670e45
commit ec7e93504c
6 changed files with 210 additions and 13 deletions

View File

@@ -1,7 +1,7 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<script>
function pagination() {
function pagination(pageSizes) {
pageNo = 1;
count = $('tbody').children().size();// 总记录数
@@ -15,8 +15,10 @@ function pagination() {
//$('tbody').children().slice(0, preCount).remove();
} */
pageSize = 30; // 页面大小
if(pageSizes==null || pageSizes=='' ){
pageSizes=30;
}
pageSize = pageSizes; // 页面大小
first = 1;// 首页索引
last = Math.ceil(count/pageSize);// 尾页索引
length = 8;// 显示页面长度

View File

@@ -74,13 +74,13 @@ $(document).ready(function() {
loading('<spring:message code="onloading"/>');
var suffix = $(this).data("export-type");
totaltb(1,-1);
//totaltb(1,-1);
getExportHead();
var te = $(".in table").tableExport({
headings:true,
footers:true,
formats:[suffix],
fileName: getFileName(),
fileName: getFileName('csv'),
bootstrap:false
});
$(".exportFirst").remove();
@@ -114,16 +114,21 @@ $(document).ready(function() {
}
function getFileName() {
function getFileName(type) {
var cfgName = $("[name=cfgName2]").val() + "_";
if ("${bean.serviceId}") {
var action = $("[name=serviceId]").find('[value=' + "${bean.serviceId}" + ']').text() + "_";
} else {
var action = "";
}
var reportType = $("[name=reportType]").find('[value=' + "${bean.reportType}" + ']').text() + "_";
var reportType = $("[name=reportType]").find('[value=' + "${bean.reportType}" + ']').text()
//var reportTime = "${bean.reportTime}";
return cfgName + action + reportType + getStringFormatDate();
if(type=='xlsx'){
return cfgName + action + reportType;
}else{
return cfgName + action + reportType + "_"+ getStringFormatDate();
}
}
function getStringFormatDate() {
@@ -353,10 +358,11 @@ function customColumnClick(){
if(rows.length > 1){
var trtotal="";
if(reportBusinessType=="src_ip_report"){
trtotal+="<td colspan='2' style='text-align: left;' ><spring:message code='report_total' /></td>";
trtotal+="<td style='text-align: left;' ><spring:message code='report_total' /></td><td></td>";
}else{
trtotal+="<td style='text-align: left;'><spring:message code='report_total' /></td>";
}
for (var k = 0; k < list.length; k++) {
trtotal+="<td>"+list[k]+"</td>";
}
@@ -437,8 +443,76 @@ function customColumnClick(){
iframe: true,
append: null
});
pagination();
pagination(30);
}
function getExport(url){
loading('<spring:message code="onloading"/>');
var reportBusinessType=$("#reportBusinessType").val()
var tableId="tagTable";
if(reportBusinessType=="label_report"){
tableId="tagTable";
}else if(reportBusinessType=="lwhh_report"){
tableId="lwhhTable";
}else if(reportBusinessType=="src_ip_report"){
tableId="contentTable1";
}else if(reportBusinessType=="attr_type_report"){
tableId="attrTypeTable";
}else if(reportBusinessType=="dest_ip_report"){
tableId="destIpTable";
}else if(reportBusinessType=="isp_report"){
tableId="entranceIdTable";
}
var timeType = $("#reportType").find("option:selected").text();
var time = $("#intype").val();
var tabName = $("#liwhite").find("li[class='active'] a").attr("title");
var titleCode= getFileName('xlsx');
var heardTime="<spring:message code='${bean.cfgName}'/> "+timeType+""+time+" "+tabName;
pagination(99999999);
var tb=document.getElementById(tableId);
var rows=tb.rows;
var list=new Array();
list.splice(0,list.length);
var column=[]; //获取标题
var index=[];//获取数据列下标
var num=0;
$("#"+tableId+" thead tr th").each(function(){
if($(this).is(":visible")){
column.push($(this).text().trim());
index.push(num);
}
num++;
});
for(var i=1 ; i<rows.length;i++){
var rowMap=[];
for (var j = 0; j <index.length ; j++) {
var n=index[j];
if(rows[i].cells[n].innerHTML.trim().indexOf("...") !=-1){
if(rows[i].cells[n].title.length > 20){
rowMap.push(rows[i].cells[n].title);
}else{
rowMap.push(rows[i].cells[n].innerHTML.trim());
}
}else{
rowMap.push(rows[i].cells[n].innerHTML.trim());
}
}
list[i-1]=rowMap;
}
var map={};
map.heard=column;
map.book=list;
map.titleTime=heardTime;
map.titleCode=titleCode;
var exports=JSON.stringify(map);
aJaxImportPost(url,{"exports":exports});
pagination(30);
closeTip();
}
</script>
<style type="text/css">
li{
@@ -482,7 +556,6 @@ white-space:nowrap;
<form:form id="searchForm" modelAttribute="bean" action="${ctx}/report/list" method="post" class="form-search">
<input id="functionId" name="functionId" type="hidden" value="${bean.functionId}"/>
<input name="cfgName" type="hidden" value="${bean.cfgName}"/>
<input name="cfgName2" type="hidden" value="<spring:message code="${bean.cfgName}"/>"/>
<input name="serviceId2" type="hidden" value="<spring:message code="${bean.serviceId}"/>"/>
@@ -552,7 +625,7 @@ white-space:nowrap;
<i class="fa fa-angle-down"></i>
</button>
<ul class="dropdown-menu pull-right" style="min-width: 110px;" >
<li><a href="javascript:;" class="export-btn" data-export-type="xlsx"><i class="fa fa-download"> <spring:message code="Excel"/></i></a></li>
<li><a href="javascript:;" onclick="getExport('${ctx}/export/ajaxExport')" ><i class="fa fa-download"> <spring:message code="Excel"/></i></a></li>
<li><a href="javascript:;" class="export-btn" data-export-type="csv"><i class="fa fa-download"> <spring:message code="CSV"/></i></a></li>
</ul>
</div>

View File

@@ -112,4 +112,24 @@ Date.prototype.Format = function (fmt) {
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
}
function aJaxImportPost(url, params) {
// 创建form元素
var temp_form = document.createElement("form");
// 设置form属性
temp_form .action = url;
temp_form .target = "_self";
temp_form .method = "post";
temp_form .style.display = "none";
// 处理需要传递的参数
for (var x in params) {
var opt = document.createElement("textarea");
opt.name = x;
opt.value = params[x];
temp_form .appendChild(opt);
}
document.body.appendChild(temp_form);
// 提交表单
temp_form .submit();
}