|
|
|
@ -794,7 +794,7 @@ import { |
|
|
|
import { |
|
|
|
getUserSpecialSecurity, |
|
|
|
} from '@/api/yieldReport/produce_order.js' |
|
|
|
import { sopListSearch } from '@/api/qc/qc.js' |
|
|
|
import { sopListSearch, downloadSopFile } from '@/api/qc/qc.js' |
|
|
|
/*打印标签专用的js*/ |
|
|
|
import { |
|
|
|
printSfdcLabel, |
|
|
|
@ -5013,11 +5013,51 @@ export default { |
|
|
|
|
|
|
|
// 预览SOP文件 |
|
|
|
previewSopFile(row) { |
|
|
|
if (row.sopUrl) { |
|
|
|
window.open(row.sopUrl, '_blank'); |
|
|
|
} else { |
|
|
|
if (!row.sopUrl) { |
|
|
|
this.$message.warning('该文件暂无预览路径'); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
// 获取文件后缀 |
|
|
|
const fileName = row.sopName || row.sopUrl; |
|
|
|
let fileSuffix = ''; |
|
|
|
if (fileName.includes('.')) { |
|
|
|
fileSuffix = fileName.substring(fileName.lastIndexOf('.') + 1).toLowerCase(); |
|
|
|
} |
|
|
|
|
|
|
|
// 判断文件类型 |
|
|
|
const imageTypes = ['jpg', 'jpeg', 'png', 'gif', 'bmp']; |
|
|
|
const videoTypes = ['mp4', 'avi', 'mov', 'wmv', 'flv']; |
|
|
|
const pdfTypes = ['pdf']; |
|
|
|
const txtTypes = ['txt']; |
|
|
|
const officeTypes = ['doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx']; |
|
|
|
|
|
|
|
// 不支持的文件类型 |
|
|
|
if (officeTypes.includes(fileSuffix)) { |
|
|
|
this.$message.warning(`暂不支持在线预览${fileSuffix.toUpperCase()}文件,请使用下载功能`); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
// 设置MIME类型 |
|
|
|
let mimeType = 'application/octet-stream'; |
|
|
|
if (imageTypes.includes(fileSuffix)) { |
|
|
|
mimeType = 'image/' + fileSuffix; |
|
|
|
} else if (videoTypes.includes(fileSuffix)) { |
|
|
|
mimeType = 'video/' + fileSuffix; |
|
|
|
} else if (pdfTypes.includes(fileSuffix)) { |
|
|
|
mimeType = 'application/pdf'; |
|
|
|
} else if (txtTypes.includes(fileSuffix)) { |
|
|
|
mimeType = 'text/plain'; |
|
|
|
} |
|
|
|
|
|
|
|
// 调用下载API并创建Blob预览 |
|
|
|
downloadSopFile(row.sopUrl).then(({ data }) => { |
|
|
|
const blob = new Blob([data], { type: mimeType }); |
|
|
|
const fileURL = URL.createObjectURL(blob); |
|
|
|
window.open(fileURL, '_blank'); |
|
|
|
}).catch(() => { |
|
|
|
this.$message.error('文件预览失败,请稍后重试'); |
|
|
|
}); |
|
|
|
}, |
|
|
|
|
|
|
|
// 关闭SOP预览弹出框 |
|
|
|
|