Browse Source

归档报表下载

laiguoran 4 years ago
parent
commit
bd127069b2

+ 0 - 1
app/controller/report_archive_controller.js

@@ -293,7 +293,6 @@ module.exports = app => {
         async pdfShow(ctx) {
             await ctx.render('report/archive_pdf.ejs');
         }
-
     }
     return ReportArchiveController;
 };

+ 12 - 12
app/public/netcasign/js/netcasealpdf.js

@@ -1269,18 +1269,18 @@ var NetcaSignAPI = (function(){
         if($(".netcafieldInfo").length){
             $(".netcafieldInfo").remove(); //先删除旧的签名域
         }
-        var params = {
-            srcFile: '',
-            srcBytes: signBytes,
-			srcStreamId: streamId
-        };
-        NetcaPKI.getSignatureFieldInfo(params)
-            .Then(function (res) {
-                that.getSignatureFieldInfoSuccessCallBack(res,streamId);
-            })
-            .Catch(function (res) {
-                that.getSignatureFieldInfoFailedCallBack(res);
-            });
+        // var params = {
+        //     srcFile: '',
+        //     srcBytes: signBytes,
+		// 	srcStreamId: streamId
+        // };
+        // NetcaPKI.getSignatureFieldInfo(params)
+        //     .Then(function (res) {
+        //         that.getSignatureFieldInfoSuccessCallBack(res,streamId);
+        //     })
+        //     .Catch(function (res) {
+        //         that.getSignatureFieldInfoFailedCallBack(res);
+        //     });
     };
     that.getSignatureFieldInfoSuccessCallBack = function(res,streamId){
 

+ 70 - 2
app/public/report/js/rpt_archive.js

@@ -121,8 +121,8 @@ let rptArchiveObj = {
         let me = rptArchiveObj;
         if (me.currentNode && me.currentArchiveUuid) {
             try {
-                let uuIdUrl =  "/getArchivedFileByUUID/" + me.currentArchiveUuid + "/" + stringUtil.replaceAll(me.currentNode.name, "#", "_");
-                console.log(uuIdUrl);
+                // let uuIdUrl =  "/getArchivedFileByUUID/" + me.currentArchiveUuid + "/" + stringUtil.replaceAll(me.currentNode.name, "#", "_");
+                // console.log(uuIdUrl);
                 $('#iframe_made').html('<iframe src="/archive/pdf/show?file=https://measure-sign-pdf.oss-cn-shenzhen.aliyuncs.com/archive/'+ me.currentArchiveUuid +'.PDF" height="750px" width="100%" style="border: none;"></iframe>');
                 // NetcaPDFSeal.openPDFWithUrl(window.location.href);
                 // window.location = uuIdUrl;
@@ -329,3 +329,71 @@ function _dataURLtoFile(dataurl, filename) {
     return new File([u8arr], filename, {type:mime});
 };
 
+/**
+ * 获取 blob
+ * @param  {String} url 目标文件地址
+ * @return {Promise}
+ */
+function getBlob(url) {
+    return new Promise(resolve => {
+        const xhr = new XMLHttpRequest();
+
+        xhr.open('GET', url, true);
+        xhr.responseType = 'blob';
+        xhr.onload = () => {
+            if (xhr.status === 200) {
+                resolve(xhr.response);
+            }
+        };
+
+        xhr.send();
+    });
+}
+
+/**
+ * 保存
+ * @param  {Blob} blob
+ * @param  {String} filename 想要保存的文件名称
+ */
+function saveAs(blob, filename) {
+    if (window.navigator.msSaveOrOpenBlob) {
+        navigator.msSaveBlob(blob, filename);
+    } else {
+        const link = document.createElement('a');
+        const body = document.querySelector('body');
+
+        link.href = window.URL.createObjectURL(blob);
+        link.download = filename;
+
+        // fix Firefox
+        link.style.display = 'none';
+        body.appendChild(link);
+
+        link.click();
+        body.removeChild(link);
+
+        window.URL.revokeObjectURL(link.href);
+    }
+}
+
+/**
+ * 下载
+ * @param  {String} url 目标文件地址
+ * @param  {String} filename 想要保存的文件名称
+ */
+function download(url, filename) {
+    getBlob(url).then(blob => {
+        saveAs(blob, filename);
+    });
+}
+
+$(function () {
+    $('#download_file').click(function () {
+        console.log(rptArchiveObj.currentArchiveUuid);
+        if (rptArchiveObj.currentArchiveUuid) {
+            download(`https://measure-sign-pdf.oss-cn-shenzhen.aliyuncs.com/archive/${rptArchiveObj.currentArchiveUuid}.PDF`, `${rptArchiveObj.currentNode.name} ${rptArchiveObj.currentArchiveDateStr}.pdf`);
+        } else {
+            alert('请选择打开一个报表!');
+        }
+    })
+})

+ 8 - 8
app/view/report/archive_pdf.ejs

@@ -163,11 +163,11 @@
                             <button class="openFile hiddenLargeView sign">
                                 <img src="/public/netcasign/ui/images/icon/but_new.png" alt="" /></br>打开</button>
                         </div>
-                        <button id="closeFile" class="toolbarButton netca_btn28 hideElement">
+                        <button id="closeFile" class="toolbarButton netca_btn28 hidden">
                             <img src="/public/netcasign/ui/images/icon/but_close.png" alt="" /></br>关闭</button>
-                        <button id="print" class="toolbarButton hiddenLargeView sign netca_btn22">
+                        <button id="print" class="toolbarButton hiddenLargeView sign netca_btn22 hidden">
                             <img src="/public/netcasign/ui/images/icon/but_print.png" alt="" /></br>打印</button>
-                        <button id="viewFind" class="toolbarButton openfile netca_btn3 hideElement">
+                        <button id="viewFind" class="toolbarButton openfile netca_btn3 hidden">
                             <img src="/public/netcasign/ui/images/icon/but_search.png" alt="" /></br>搜索</button>
                         <button id="zoomIn" class="toolbarButton zoomIn netca_btn4">
                             <img src="/public/netcasign/ui/images/icon/but_enlarge.png" alt="" /></br>放大</button>
@@ -200,15 +200,15 @@
                         </div>
                     </div>
                     <div id="toolbarViewerRight">
-                        <button id="presentationMode" class="toolbarButton presentationMode hiddenLargeView fullscreen hideElement">
+                        <button id="presentationMode" class="toolbarButton presentationMode hiddenLargeView fullscreen hidden">
                             <img src="/public/netcasign/ui/images/icon/but_save.png" alt="" />全屏</button>
-                        <button id="sign" class="toolbarButton openFile hiddenLargeView sign netca_btn21 hideElement">
+                        <button id="sign" class="toolbarButton openFile hiddenLargeView sign netca_btn21 hidden">
                             <img src="/public/netcasign/ui/images/icon/but_signature.png" alt="" /></br>签章</button>
-                        <button id="verify" class="toolbarButton print hiddenMediumView verification netca_btn13 hideElement">
+                        <button id="verify" class="toolbarButton print hiddenMediumView verification netca_btn13 hidden">
                             <img src="/public/netcasign/ui/images/icon/but_accept.png" alt="" /></br>验证</button>
-                        <button id="download" class="toolbarButton download hiddenMediumView about netca_btn15 hideElement">
+                        <button id="download" class="toolbarButton download hiddenMediumView about netca_btn15 hidden">
                             <img src="/public/netcasign/ui/images/icon/but_setup.png" alt="" />设置</button>
-                        <a href="#" id="viewBookmark" class="toolbarButton bookmark hiddenSmallView hideElement">
+                        <a href="#" id="viewBookmark" class="toolbarButton bookmark hiddenSmallView hidden">
                             <span data-l10n-id="bookmark_label">Current View</span>
                         </a>
                     </div>

+ 5 - 3
app/view/report/index_archive.ejs

@@ -42,7 +42,8 @@
                                     <div class="btn-group" role="group">
                                         <button class="btn btn-outline-primary btn-sm" type="button">
                                             <i class="fa fa-print"></i><br>
-                                            打印 <span class="badge badge-primary">0</span>
+                                            打印
+                                            <!--<span class="badge badge-primary">0</span>-->
                                         </button>
                                     </div>
                                 </div>
@@ -50,9 +51,10 @@
                             <div class="panel">
                                 <div class="panel-body" id="export_div">
                                     <div class="btn-group" role="group">
-                                        <button class="btn btn-outline-primary btn-sm" type="button">
+                                        <button class="btn btn-outline-primary btn-sm" type="button" id="download_file">
                                             <i class="fa fa-download"></i><br>
-                                            下载 <span class="badge badge-primary">0</span>
+                                            下载
+                                            <!--<span class="badge badge-primary">0</span>-->
                                         </button>
                                     </div>
                                 </div>