Sfoglia il codice sorgente

Merge branch 'master' of http://39.105.126.192:3000/DR3_web/ioc-admin-ui

chuwuya 2 anni fa
parent
commit
797c4b77bf

+ 6 - 2
src/api/data/template.js

@@ -1,4 +1,4 @@
-import { get, post, put, del } from "@/utils/requestMethod";
+import { get, getFile,post, put, del } from "@/utils/requestMethod";
 
 /**
  * 获取报表列表
@@ -104,12 +104,16 @@ const deleteMultipleTemplates = (templateIds) => {
   return del("/data/batch_delete_template", params);
 };
 
+const downloadTemplate = (fileName) =>{
+  return getFile(`/download/${fileName}`)
+}
+
 export {
-  // addReportTemplate,
   addReportTemplate,
   getTableTemplateList,
   getReportTemplateList,
   modifySingleTemplate,
   deleteSingleTemplate,
   deleteMultipleTemplates,
+  downloadTemplate
 };

+ 21 - 0
src/utils/requestMethod.js

@@ -20,6 +20,26 @@ function get(url, params) {
   });
 }
 
+function getFile(url,params){
+  return new Promise((resolve, reject) => {
+    request({
+      method: "GET",
+      url,
+      params: params,
+      responseType: 'blob', //设置响应数据类型为blob
+      headers: {
+        token: user.state.token,
+      },
+    })
+      .then((res) => {
+        resolve(res);
+      })
+      .catch((err) => {
+        reject(err);
+      });
+  });
+}
+
 function post(url, data) {
   return new Promise((resolve, reject) => {
     request({
@@ -104,6 +124,7 @@ function delform(url, data) {
 
 export {
   get,
+  getFile,
   post,
   put,
   del,

+ 21 - 6
src/views/dataManagement/reportConfig.vue

@@ -114,6 +114,7 @@ import {
   modifySingleTemplate,
   deleteSingleTemplate,
   deleteMultipleTemplates,
+  downloadTemplate,
 } from "@/api/data/template";
 
 export default {
@@ -202,8 +203,23 @@ export default {
       if (!value) return true;
       return data.label.indexOf(value) !== -1;
     },
-    downloadTemplate(data) {
-      console.log(data, "template");
+    downloadTemplate(fileName) {
+      downloadTemplate(fileName)
+        .then((res) => {
+          const data = res.data;
+          if (data.type === "application/octet-stream") {
+            const blob = new Blob([data], { type: data.type });
+            const url = window.URL.createObjectURL(blob);
+            const link = document.createElement("a");
+            link.href = url;
+            link.download = fileName;
+            document.body.appendChild(link);
+            link.click();
+          }
+        })
+        .catch((err) => {
+          this.$message.error("文件下载失败,请重新下载!");
+        });
     },
     getTableData(val) {
       this.tableData = [];
@@ -293,7 +309,6 @@ export default {
       });
     },
     confirmEvent(data) {
-      console.log(data, "传回的模板参数");
       if (this.templateTitle === "添加模板") {
         let options = {
           templateName: data.name,
@@ -301,7 +316,7 @@ export default {
           introduction: data.introduction,
           reportType: data.reportType,
           templateType: 1,
-          file:data.file
+          file: data.file,
         };
         addReportTemplate(options).then((res) => {
           if (res.data.code === -1) {
@@ -316,13 +331,13 @@ export default {
       }
       if (this.templateTitle === "编辑模板") {
         let options = {
-          id:data.id,
+          id: data.id,
           templateName: data.name,
           templateFormat: data.format,
           introduction: data.introduction,
           reportType: data.reportType,
           templateType: 1,
-          file:data.file
+          file: data.file,
         };
         modifySingleTemplate(options).then((res) => {
           if (res.data.code === -1) {

+ 21 - 7
src/views/dataManagement/statementConfig.vue

@@ -104,6 +104,7 @@ import {
   modifySingleTemplate,
   deleteSingleTemplate,
   deleteMultipleTemplates,
+  downloadTemplate,
 } from "@/api/data/template";
 export default {
   components: { page, templatePopup },
@@ -195,9 +196,23 @@ export default {
         }
       });
     },
-    downloadTemplate(data) {
-      // 调用下载接口
-      console.log(data);
+    downloadTemplate(fileName) {
+      downloadTemplate(fileName)
+        .then((res) => {
+          const data = res.data;
+          if (data.type === "application/octet-stream") {
+            const blob = new Blob([data], { type: data.type });
+            const url = window.URL.createObjectURL(blob);
+            const link = document.createElement("a");
+            link.href = url;
+            link.download = fileName;
+            document.body.appendChild(link);
+            link.click();
+          }
+        })
+        .catch((err) => {
+          this.$message.error("文件下载失败,请重新下载!");
+        });
     },
     handleSizeChange(val) {
       this.currentPageSize = val;
@@ -261,18 +276,17 @@ export default {
       });
     },
     confirmEvent(data) {
-      console.log(data, "传回的模板参数");
       if (this.templateTitle === "添加模板") {
         let options = {
           templateName: data.name,
           templateFormat: data.format,
           introduction: data.introduction,
           templateType: 0,
-          file:data.file
+          file: data.file,
         };
         addReportTemplate(options).then((res) => {
           if (res.data.code === -1) {
-            this.$message.info("模板已存在,请修改重新添加!");
+            this.$message.info("添加失败,请修改重新添加!");
           }
           if (res.data.code === 0) {
             this.$message.success("模板添加成功!");
@@ -288,7 +302,7 @@ export default {
           templateFormat: data.format,
           introduction: data.introduction,
           templateType: 0,
-          file:data.file
+          file: data.file,
         };
         modifySingleTemplate(options).then((res) => {
           if (res.data.code === -1) {