From 72b1f398142642c2122097690aeeddb808f9495b Mon Sep 17 00:00:00 2001 From: sjl <1716605279@qq.com> Date: Wed, 31 Dec 2025 08:36:14 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E5=91=8A=E8=AD=A6=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/PreviewFile/index.vue | 1 + src/utils/fileDownLoad.ts | 5 +++-- .../pqs/supervise/technology/components/alarm.vue | 12 +++++++----- src/views/pqs/supervise/technology/detail.vue | 5 +++-- src/views/pqs/supervise/technology/feedbackPopup.vue | 5 +++-- 5 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/components/PreviewFile/index.vue b/src/components/PreviewFile/index.vue index 886ac96d..a61898c3 100644 --- a/src/components/PreviewFile/index.vue +++ b/src/components/PreviewFile/index.vue @@ -43,6 +43,7 @@ if (VITE_FLAG) { }) } else { setTimeout(async () => { + const previewUrl = await previewFile(currentRoute.value?.href?.split('?')[1]) url.value = previewUrl excelOptions.value = ref({ diff --git a/src/utils/fileDownLoad.ts b/src/utils/fileDownLoad.ts index 0e3c8fc5..030d39ba 100644 --- a/src/utils/fileDownLoad.ts +++ b/src/utils/fileDownLoad.ts @@ -55,9 +55,10 @@ function removeLastDotSuffix(str: string) { export const previewFile = async (urls: any) => { //console.log('预览', urls) let url = '' - + //console.log('urls', decodeURI(urls)) await downloadFile({ filePath: decodeURI(urls) }) .then((res: any) => { + // 1. 确定文件MIME类型(优化:用更简洁的方式) const getFileType = (url: string) => { const ext = url.split('.').pop()?.toLowerCase() || '' @@ -74,7 +75,7 @@ export const previewFile = async (urls: any) => { } return mimeMap[ext] || '' } - + const blob = new Blob([res], { type: getFileType(decodeURI(urls)) }) diff --git a/src/views/pqs/supervise/technology/components/alarm.vue b/src/views/pqs/supervise/technology/components/alarm.vue index 909f9892..a0b77f45 100644 --- a/src/views/pqs/supervise/technology/components/alarm.vue +++ b/src/views/pqs/supervise/technology/components/alarm.vue @@ -240,11 +240,12 @@ const tableStore = new TableStore({ // return true; }, click: row => { + if (row.problemType == 2) { // const match = row.filePath.match(/excelreport(\/[^?#]*)/) - + // window.open(window.location.origin + '/#/previewFile?' + match[1]) - window.open(window.location.origin + '/#/previewFile?/' + row.absFilePath) + window.open(window.location.origin + '/#/previewFile?/' + 'row.absFilePath') } else { if (row.problemPath == null) { ElMessage({ @@ -282,10 +283,11 @@ const tableStore = new TableStore({ type: 'warning' }) } else { - getFileNameAndFilePath({ filePath: '/' + row.problemPath }).then(res => { + // getFileNameAndFilePath({ filePath: '/' + row.problemPath }).then(res => { - window.open(res.data.url) - }) + // window.open(res.data.url) + // }) + download('/' + row.absFilePath) } } } diff --git a/src/views/pqs/supervise/technology/detail.vue b/src/views/pqs/supervise/technology/detail.vue index 2e3d8f9c..865a3240 100644 --- a/src/views/pqs/supervise/technology/detail.vue +++ b/src/views/pqs/supervise/technology/detail.vue @@ -30,7 +30,7 @@ {{ detailData.takeStep }} - + @@ -51,6 +51,7 @@ import { Link, View } from '@element-plus/icons-vue' defineOptions({ name: 'technology/detail' }) const openFile = (name: any) => { + window.open(window.location.origin + '/#/previewFile?/supervision/' + name) } const { query } = useRoute() // 查询参数 @@ -92,7 +93,7 @@ const getInfo = async () => { const getFileData = async () => { //如果有问题附件 - console.log('000',detailData.value) + //console.log('000',detailData.value) if (detailData.value.problemPath) { await getFileNameAndFilePath({ filePath: detailData.value.problemPath }).then(res => { console.log(res.data) diff --git a/src/views/pqs/supervise/technology/feedbackPopup.vue b/src/views/pqs/supervise/technology/feedbackPopup.vue index f7759ff5..e3ede27b 100644 --- a/src/views/pqs/supervise/technology/feedbackPopup.vue +++ b/src/views/pqs/supervise/technology/feedbackPopup.vue @@ -11,7 +11,8 @@ :autosize="{ minRows: 2, maxRows: 6 }" readonly /> - + + @@ -104,7 +105,7 @@ const reportFilePath: any = ref('') //form表单校验规则 const rules = { takeStep: [{ required: true, message: '请输入采取的措施', trigger: 'blur' }], - reportPath: [{ required: true, message: '请上传处理成效报告', trigger: 'blur' }] + reportPath: [{ required: true, message: '请上传反馈报告', trigger: 'blur' }] } const resetForm = () => { if (formRef.value) {