From 3da01a8e2578d3a22017d032bfbbd944d5a41cc3 Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Thu, 12 Mar 2026 11:12:37 +0800 Subject: [PATCH] =?UTF-8?q?OA=E6=96=87=E4=BB=B6=E9=9C=80=E8=A6=81=E8=AE=BF?= =?UTF-8?q?=E9=97=AE17=E6=9C=8D=E5=8A=A1=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/eam/eam_object_list.js | 2 ++ src/views/modules/eam/eam_device_list.vue | 40 ++++++++++++++++++++++- 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/api/eam/eam_object_list.js b/src/api/eam/eam_object_list.js index 4a9e649..9163147 100644 --- a/src/api/eam/eam_object_list.js +++ b/src/api/eam/eam_object_list.js @@ -45,6 +45,8 @@ export const getInspectionFile = data => createAPI('sys/file/getInspectionFile', export const downLoadObjectFileMes = data => createAPI(`pms/eamObject/downLoadObjectFileMes?id=`+data.id,'post',777) +export const previewOssFileApi = (id, download) => createAPI(`oss/previewOssFile`, 'get', { id, download: download ? 'true' : 'false' }, 'download') + // ===================================== 设备SOP清单 ===================================== export const eamObjectSopListSearch = data => createAPI('pms/eamObject/eamObjectSopListSearch','post',data) diff --git a/src/views/modules/eam/eam_device_list.vue b/src/views/modules/eam/eam_device_list.vue index 18bc608..f12e937 100644 --- a/src/views/modules/eam/eam_device_list.vue +++ b/src/views/modules/eam/eam_device_list.vue @@ -839,7 +839,8 @@ getFaultBehaviorList, deleteEamObject, uploadEamObjectFile, - downLoadObjectFile + downLoadObjectFile, + previewOssFileApi } from '@/api/eam/eam_object_list.js'; import { getSpareSelectList, @@ -3437,6 +3438,21 @@ // 预览 previewFile (row) { + if (row.createdBy === 'OA') { + previewOssFileApi(row.id, false).then(({data, headers}) => { + const contentType = (headers && headers['content-type']) || '' + if (contentType.includes('text/html')) { + this.$message.error('登录已过期,请刷新页面重新登录') + return + } + const blob = new Blob([data], { type: contentType || 'application/octet-stream' }) + const fileURL = URL.createObjectURL(blob) + window.open(fileURL, '_blank') + }).catch(() => { + this.$message.error('文件预览失败') + }) + return + } // 预览文件 let image = ['jpg', 'jpeg', 'png', 'gif', 'bmp'] let type = '' @@ -3476,6 +3492,28 @@ // 下载 downloadFile (row) { + if (row.createdBy === 'OA') { + previewOssFileApi(row.id, true).then(({data, headers}) => { + const contentType = (headers && headers['content-type']) || '' + if (contentType.includes('text/html')) { + this.$message.error('登录已过期,请刷新页面重新登录') + return + } + const blob = new Blob([data], { type: 'application/octet-stream;charset=utf-8' }) + const fileName = row.fileName + const linkNode = document.createElement('a') + linkNode.download = fileName + linkNode.style.display = 'none' + linkNode.href = URL.createObjectURL(blob) + document.body.appendChild(linkNode) + linkNode.click() + URL.revokeObjectURL(linkNode.href) + document.body.removeChild(linkNode) + }).catch(() => { + this.$message.error('文件下载失败') + }) + return + } downLoadObjectFile(row) .then(({data}) => { // 不限制文件下载类型