From b14bf62abb3480d95beee8314fcb08c0d893813b Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期一, 22 九月 2025 14:18:19 +0800
Subject: [PATCH] 文件下发,回传文件处理的查看下载

---
 src/views/tasks/machinereturnfileop.vue |   47 ++++++++++++++++++++---
 src/views/statreport/sendrecord.vue     |   58 +++++++++++++++++++++++++---
 src/views/flowmgr/backImport1.vue       |    1 
 3 files changed, 92 insertions(+), 14 deletions(-)

diff --git a/src/views/flowmgr/backImport1.vue b/src/views/flowmgr/backImport1.vue
index 52509e6..3f50e26 100644
--- a/src/views/flowmgr/backImport1.vue
+++ b/src/views/flowmgr/backImport1.vue
@@ -95,7 +95,6 @@
   },
   methods: {
     showContent(row, column, event) {
-      console.log(row,111)
       axios({
         url: '/blade-mdm/program/dncsendback/back-file-content',
         method: 'get',
diff --git a/src/views/statreport/sendrecord.vue b/src/views/statreport/sendrecord.vue
index ffa9781..ec7fbb3 100644
--- a/src/views/statreport/sendrecord.vue
+++ b/src/views/statreport/sendrecord.vue
@@ -17,9 +17,10 @@
           @on-load="onLoad"
         >
         
-      <template #search="{ disabled, size }">
-              
-      </template>
+        <template #menu="scope">
+            <el-button type="primary" text size="default" @click.stop="showContent(scope.row)">鏌ョ湅</el-button>
+            <el-button type="primary" text size="default" @click.stop="download(scope.row, scope.index)">涓嬭浇</el-button>     
+        </template>
           <template #menu-left>
             <div class="menuLeft">
               <el-button type="primary" size="default" icon="el-icon-circle-plus" plain @click="handleExport">瀵煎嚭</el-button>
@@ -29,6 +30,10 @@
           </template>
 
         </avue-crud>
+
+        <el-dialog title="绋嬪簭鍐呭" append-to-body v-model="fileViewModel">
+            <div v-html="appContent" class="app-content"></div>
+        </el-dialog>
       </basic-container>
 </template>
 
@@ -37,7 +42,7 @@
 import { getToken } from '@/utils/auth';
 import NProgress from 'nprogress';
 import dayjs from 'dayjs';
-import { downloadXls } from '@/utils/util';
+import { downloadXls,downloadFile } from '@/utils/util';
 import 'nprogress/nprogress.css';
 import { getDeptLazyTree } from '@/api/system/dept';
 export default {
@@ -87,7 +92,8 @@
         current: 1,
         total: 0,
       },
-
+      fileViewModel:false,
+      fileContent:'',
       option: {
         index: true,
         addBtn: false,
@@ -97,7 +103,7 @@
         emptyBtn: false,
         searchSpan: 8,
         searchEnter:true,
-        menu:false,
+        menu: true,
         column: [
           
           {
@@ -136,7 +142,36 @@
     };
   },
   methods: {
-    
+    showContent(row) {
+      this.fileViewModel = true;
+      this.fileContent = '';
+      axios({
+        url: '/blade-mdm/ossfile/file-content',
+        method: 'get',
+        params: {ossFileName: row.ossName}
+      }).then(
+      res => {
+        //console.log(res)
+        if(res.data.code === 200) {
+            this.appContent = res.data.data;
+        } else {
+            this.appContent = '绋嬪簭鍐呭鍔犺浇澶辫触'
+        }
+      });
+    },
+    download(row){
+      exportBlob(
+          `/blade-mdm/machinefile/sendrecord/download-by-id?id=${row.id}&${this.website.tokenHeader}=${getToken()}`,
+          
+        ).then(res => {
+          
+          let name = res.headers['content-disposition'].split('filename=')[1]
+          //console.log(res.headers['content-disposition'].split('filename=')[1]);
+          name = decodeURI(name)
+          downloadFile(res.data, `${name}`);
+          NProgress.done();
+        });
+    },
     handleChange(a,b,c) {
       console.log(a,b,c);
     },
@@ -260,4 +295,13 @@
   display: flex;
   align-items: center;
 }
+
+.app-content {
+  background-color: #fffee1;
+  padding: 10px 30px;
+  min-height: 100px;
+  overflow: auto;
+  max-height: 400px;
+  white-space: pre-wrap;
+}
 </style>
diff --git a/src/views/tasks/machinereturnfileop.vue b/src/views/tasks/machinereturnfileop.vue
index 21510c5..ea61970 100644
--- a/src/views/tasks/machinereturnfileop.vue
+++ b/src/views/tasks/machinereturnfileop.vue
@@ -15,11 +15,14 @@
                 <el-button type="primary" :disabled="this.selectedList.length==0" plain @click="exportExcel">瀵煎嚭鍒癊XCEL</el-button>
             </template>
             <template #menu="scope">
-                <el-button type="primary" text size="default"
-                    @click.stop="handleAction(scope.row, scope.index)">瀹℃壒
-                </el-button>
+                <el-button type="primary" text size="default" @click.stop="showContent(scope.row)">鏌ョ湅</el-button>
+                <el-button type="primary" text size="default" @click.stop="download(scope.row, scope.index)">涓嬭浇</el-button>
             </template>
         </avue-crud>
+
+        <el-dialog title="绋嬪簭鍐呭" append-to-body v-model="fileViewModel">
+            <div v-html="appContent" class="app-content"></div>
+        </el-dialog>
     </basic-container>
 </template>
 
@@ -28,7 +31,7 @@
 import { exportBlob } from '@/api/common';
 import { getToken } from '@/utils/auth';
 import NProgress from 'nprogress';
-import { downloadXls } from '@/utils/util';
+import { downloadXls,downloadFile } from '@/utils/util';
 import 'nprogress/nprogress.css';
 export default {
     name: 'MachineReturnFileOp',
@@ -43,6 +46,8 @@
             query: {status:1},
             loading: true,
             data: [],
+            fileViewModel:false,
+            appContent:'',
             option: {
                 addBtn: false,
                 editBtn: false,
@@ -55,8 +60,8 @@
                 border: true,
                 index: true,
                 selection: true,
-                menuWidth: 100,
-                menu: false,
+                menuWidth: 110,
+                menu: true,
                 dialogClickModal: false,
                 column: [
                     
@@ -139,6 +144,36 @@
         }
     },
     methods: {
+        showContent(row) {
+            this.fileViewModel = true;
+            this.appContent = '';
+            axios({
+                url: '/blade-mdm/ossfile/file-content',
+                method: 'get',
+                params: {ossFileName: row.ossName}
+            }).then(
+                res => {
+                    console.log(res)
+                    if(res.data.code === 200) {
+                        this.appContent = res.data.data;
+                    } else {
+                        this.appContent = '绋嬪簭鍐呭鍔犺浇澶辫触'
+                    }
+            });
+        },
+        download(row){
+            exportBlob(
+            `/blade-mdm/machinefile/filehandle/download-by-id?id=${row.id}&${this.website.tokenHeader}=${getToken()}`,
+            
+            ).then(res => {
+            
+                let name = res.headers['content-disposition'].split('filename=')[1]
+                //console.log(res.headers['content-disposition'].split('filename=')[1]);
+                name = decodeURI(name)
+                downloadFile(res.data, `${name}`);
+                NProgress.done();
+            });
+        },
         selectionChange (list) {
             this.selectedList = list;
         },

--
Gitblit v1.9.3