|
|
@@ -11,7 +11,7 @@ var spinnerContainer = document.getElementById('viewerContainer');
|
|
|
|
|
|
// 能打印的最大页数(页数超过,需要先下载pdf,再打印)
|
|
|
var PRINT_MAX_PAGE_SIZE = 200;
|
|
|
-var ALERT_FILE_TOO_LARGE = "pdf超过" + PRINT_MAX_PAGE_SIZE
|
|
|
+var ALERT_FILE_TOO_LARGE = "PDF超过" + PRINT_MAX_PAGE_SIZE
|
|
|
+ "页,建议先下载到本地,再进行查看或打印";
|
|
|
var pdfDoc;
|
|
|
// 页码
|
|
|
@@ -33,6 +33,17 @@ var printType = getParameter("printType");
|
|
|
// 首次加载页面()
|
|
|
var firstRequest = true;
|
|
|
|
|
|
+// 记录刚加载该页面时的时间
|
|
|
+var startTime = new Date();
|
|
|
+// 记录查询完整pdf状态的次数
|
|
|
+var waitWholePdfGeneratedCount = 0;
|
|
|
+// 页面过期时间为10分钟,之后必须重新加载
|
|
|
+var MAX_TIME = 10 * 60 * 1000;
|
|
|
+// 查询总的pdf状态的次数最高为100次,超过后需要重新加载页面
|
|
|
+var MAX_WAIT_WHOLE_PDF_GENERATED = 3;
|
|
|
+var ALERT_TIMEOUT = "页面已过期,请刷新页面!";
|
|
|
+var ALERT_WAIT_WHOLE_PDF_GENERATED_TOO_LARGE = "PDF加载错误,请刷新页面!";
|
|
|
+
|
|
|
getWindowWidth();
|
|
|
loadData(1);
|
|
|
|
|
|
@@ -85,6 +96,9 @@ $("#pageIndex").keypress(function(event) {
|
|
|
return;
|
|
|
}
|
|
|
pageIndex = value;
|
|
|
+ if (timeout()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
loadData(pageIndex);
|
|
|
} else {
|
|
|
document.getElementById("pageIndex").value = pageIndex;
|
|
|
@@ -106,6 +120,9 @@ $("#downloadPdf").click(
|
|
|
if (!pdfDoc) {
|
|
|
return;
|
|
|
}
|
|
|
+ if (timeout()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
console.log(new Date().format()
|
|
|
+ " ---- subscribed wholePdfGeneratedSignal");
|
|
|
$.subscribe("wholePdfGeneratedSignal", downloadPdf);
|
|
|
@@ -189,6 +206,9 @@ function printPdf() {
|
|
|
if (!pdfDoc) {
|
|
|
return;
|
|
|
}
|
|
|
+ if (timeout()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
console.log(new Date().format()
|
|
|
+ " ---- subscribed wholePdfGeneratedSignal");
|
|
|
$.subscribe("wholePdfGeneratedSignal", print);
|
|
|
@@ -322,6 +342,12 @@ function loadWholePdf() {
|
|
|
* 每隔一定时间查询文件状态,直到文件有效
|
|
|
*/
|
|
|
function waitWholePdfGenerated() {
|
|
|
+ waitWholePdfGeneratedCount++;
|
|
|
+ if (waitWholePdfGeneratedCount >= MAX_WAIT_WHOLE_PDF_GENERATED) {
|
|
|
+ alert(ALERT_WAIT_WHOLE_PDF_GENERATED_TOO_LARGE);
|
|
|
+ window.location.reload();
|
|
|
+ return;
|
|
|
+ }
|
|
|
var valid = getGeneratedPdfOrXlsInformation("pdf").valid;
|
|
|
if (!valid) {
|
|
|
console.log(new Date().format() + " ---- 文件还未生成");
|
|
|
@@ -435,6 +461,9 @@ function prevPage() {
|
|
|
if (!pdfDoc || pageIndex <= 1) {
|
|
|
return;
|
|
|
}
|
|
|
+ if (timeout()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
// 获取前一页的pdf
|
|
|
pageIndex--;
|
|
|
loadData(pageIndex);
|
|
|
@@ -451,6 +480,9 @@ function nextPage() {
|
|
|
alert(ALERT_FILE_TOO_LARGE);
|
|
|
return;
|
|
|
}
|
|
|
+ if (timeout()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
pageIndex++;
|
|
|
loadData(pageIndex);
|
|
|
}
|
|
|
@@ -480,3 +512,18 @@ function downloadUrl(exportFileType) {
|
|
|
downloadUrl += "&exportFileType=" + exportFileType;
|
|
|
return downloadUrl;
|
|
|
}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 检查页面是否已过期
|
|
|
+ *
|
|
|
+ * @returns {Boolean} true,如果已过期
|
|
|
+ */
|
|
|
+function timeout() {
|
|
|
+ var now = new Date();
|
|
|
+ if (now - startTime >= MAX_TIME) {
|
|
|
+ alert(ALERT_TIMEOUT);
|
|
|
+ window.location.reload();
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+}
|