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