From be935300089c97ea7477edd6e888a43ab244c44f Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 10 十二月 2024 09:35:07 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/projectEngineering/projectLibrary/component/FileDialog.vue |   83 +++++++++++++++--------------------------
 1 files changed, 31 insertions(+), 52 deletions(-)

diff --git a/src/views/projectEngineering/projectLibrary/component/FileDialog.vue b/src/views/projectEngineering/projectLibrary/component/FileDialog.vue
index 357d39e..2e16b22 100644
--- a/src/views/projectEngineering/projectLibrary/component/FileDialog.vue
+++ b/src/views/projectEngineering/projectLibrary/component/FileDialog.vue
@@ -37,9 +37,9 @@
         </div>
         <div v-else-if="isImportOrExport" class="dialog-content">
           <el-button class="export-button" @click="handleDownloadTargetList">瀵煎嚭鐩爣鍒楄〃鍐呭</el-button>
-          <el-button class="export-button">瀵煎嚭鎵�鏈夊垪琛ㄥ唴瀹�</el-button>
-          <el-button class="export-button">瀵煎嚭鐩爣椤圭洰璇︽儏</el-button>
-          <el-button class="export-button">瀵煎嚭鎵�鏈夐」鐩鎯�</el-button>
+          <el-button class="export-button" @click="handleDownloadAllList">瀵煎嚭鎵�鏈夊垪琛ㄥ唴瀹�</el-button>
+          <el-button class="export-button" @click="handleDownloadDetailList">瀵煎嚭鐩爣椤圭洰璇︽儏</el-button>
+          <el-button class="export-button" @click="handleDownloadAllList">瀵煎嚭鎵�鏈夐」鐩鎯�</el-button>
         </div>
       </template>
       <template slot="footer">
@@ -54,8 +54,6 @@
 </template>
 
 <script>
-import { globalHeaders } from '@/utils/request';
-import {getToken} from "@/utils/auth";
 
 export default {
   name: 'FileDialog',
@@ -73,10 +71,17 @@
       default: function () {
         return [];
       }
-    }
+    },
+    dataIdList: {
+      type: Array,
+      default: function () {
+        return [];
+      }
+    },
   },
   data() {
     return {
+      queryParams: {},
       uploadRef: null,
       targetColumn: [],
       accept: `.zip`,
@@ -108,49 +113,7 @@
       }
     },
     handleDownloadFile() {
-      // fetch(`${process.env.VITE_APP_BASE_API}/project/info/export/template`, {
-      //   method: 'GET',
-      //   headers: self.upload.headers
-      // })
-      //   .then(response => response.blob())
-      //   .then(blob => {
-      //     const url = window.URL.createObjectURL(blob);
-      //     const a = document.createElement('a');
-      //     a.style.display = 'none';
-      //     a.href = url;
-      //     a.download = `椤圭洰鏂囦欢妯℃澘_${new Date().getTime()}.zip`;
-      //     document.body.appendChild(a);
-      //     a.click();
-      //     window.URL.revokeObjectURL(url);
-      //   })
-      //   .catch(error => {
-      //     console.error('鏂囦欢涓嬭浇澶辫触:', error);
-      //   });
-
-      const url = process.env.VUE_APP_BASE_API + '/project/info/export/template';
-      axios.post(url, [], { // 鍙戦�佷竴涓┖鏁扮粍鑰屼笉鏄┖瀵硅薄
-        responseType: 'blob', // 鍛婅瘔axios鏈熸湜鏈嶅姟鍣ㄨ繑鍥炵殑鏄痓lob绫诲瀷
-        headers: {
-          'Content-Type': 'application/json',
-          Authorization: "Bearer " + getToken()
-        }
-      })
-        .then(response => {
-          // 澶勭悊鏂囦欢涓嬭浇
-          const blob = new Blob([response.data], { type: 'application/zip' }); // 鎸囧畾MIME绫诲瀷涓簔ip
-          const url = window.URL.createObjectURL(blob);
-          const a = document.createElement('a');
-          a.style.display = 'none';
-          a.href = url;
-          a.download = `椤圭洰鏂囦欢妯℃澘_${new Date().getTime()}.zip`;
-          document.body.appendChild(a);
-          a.click();
-          document.body.removeChild(a);
-          window.URL.revokeObjectURL(url);
-        })
-        .catch(error => {
-          console.error('There was an error!', error);
-        });
+      this.download('/project/info/export/template', {}, `椤圭洰鏂囦欢妯℃澘_${new Date().getTime()}.zip`)
     },
     submitFileForm() {
       if (this.uploadRef) {
@@ -161,15 +124,31 @@
       this.$emit('fileDialogCancel');
     },
     handleDownloadTargetList() {
-      console.log('瀵煎嚭鐩爣鍒楄〃鍐呭', this.currentColumns);
-      this.targetColumn = this.currentColumns.filter(item => item.visible);
+      this.queryParams.fieldList = this.currentColumns.filter(item => item.visible).map(item =>item.id);
+      this.queryParams.requireFile = false;
+      this.download('project/info/export', {
+          ...this.queryParams
+        }, `椤圭洰搴�${new Date().getTime()}.xlsx`)
+    },
+    handleDownloadAllList() {
+      this.queryParams.fieldList = this.currentColumns;
+      this.queryParams.requireFile = false;
+      this.download('project/info/export', {
+        ...this.queryParams
+      }, `椤圭洰搴�${new Date().getTime()}.xlsx`)
+    },
+    handleDownloadDetailList() {
+      this.queryParams.dataIdList = this.dataIdList
+      this.queryParams.requireFile = true;
+      this.download('project/info/export', {
+        ...this.queryParams
+      }, `椤圭洰搴�${new Date().getTime()}.zip`)
     }
   },
   mounted() {
     this.uploadRef = this.$refs.uploadRef;
   },
   created() {
-
     this.isFileDialogVisible = this.fileDialogVisible;
   }
 };

--
Gitblit v1.8.0