報表:JS實現報表多文件批量導出和下載(解決瀏覽器攔截問題)

在報表上線後,用戶在導出報表的過程中,系統有一系列報表需要導出,爲了減輕用戶的工作量,可以在系統中實現一鍵進行多文件的批量導出,以及自定義導出文件名等。

而此時,在下載多文件時,會讓瀏覽器認爲是惡意操作,瀏覽器會自動進行攔截,導致不明情況的操作人員認爲下載是失效的,實際上只是被瀏覽器攔截了而已;而我們,可以通過修改一下文件導出和下載的代碼,完成文件導出和下載

1、JavaScript事件:

在工具欄或報表中,定義一個觸發的超鏈接或JavaScript腳本。

代碼如下:

layer.prompt(
	{title:"請輸入工程脫敏名稱",value:dxname},function(dxname,index){
var url_last="&fid="+fid+"&structCode="+structCode+"&nodeID="+nodeID+"&dxname="+dxname+"&format=excel&__filename__="+dxname;

var OPEN_URL1="/mmd/RS?bb=7d5437c8-be42-4a37-9715-3b9f99552352"+url_last+"_單項概況";
var OPEN_URL2="/mmd/RS?bb=a4c63758-bcb5-433d-a1d6-f5b4f88cf09c"+url_last+"_專業分析";
var OPEN_URL4="/mmd/RS?bb=79b96912-2901-4de7-8b01-a17d047528e8"+url_last+"_土建含量";
var OPEN_URL5="/mmd/RS?bb=a8e8923a-f404-411c-b018-39bbfa0267c6"+url_last+"_機電含量";
var arr=new Array(OPEN_URL1,OPEN_URL2,OPEN_URL4,OPEN_URL5);

$('.wjiframe').remove();
for(var i=0;i<arr.length;i++){
	$('body').append('<iframe style="width:1px;height:1px" class="wjiframe download'+i+'" src=""></iframe>');
	$('.download'+i).attr("src",arr[i]);
	}
layer.close(index);
})

2、效果圖:

如上,通過自定義觸發事件,寫入對應的JavaScript代碼,就可以實現在用戶導出的時候,彈窗導出文件名,讓用戶自定義導出文件名,並進行多文件的批量導出,同時讓下載變成自主下載,避免瀏覽器攔截問題,提升系統使用性能,更提高用戶工作效率,爲用戶帶來方便。(上面是本地環境,配置不咋滴,反應慢了一點)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章