From 9099625af3f64c345ae953ae3d1c99fbdda2d3e8 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Mon, 30 Jun 2025 09:36:14 +0800
Subject: [PATCH] feat:帮助中心预览pdf文件
---
src/views/system/helpCenter.vue | 41 +++++++++++++++++++++++------------------
1 files changed, 23 insertions(+), 18 deletions(-)
diff --git a/src/views/system/helpCenter.vue b/src/views/system/helpCenter.vue
index 83e1719..5579736 100644
--- a/src/views/system/helpCenter.vue
+++ b/src/views/system/helpCenter.vue
@@ -22,7 +22,7 @@
<el-upload
style="display: inline-block"
:show-file-list="false"
- :before-upload="(file) => onUploadFileBefore(file, scope.row)"
+ :before-upload="file => onUploadFileBefore(file, scope.row)"
:limit="1"
accept=".pdf"
>
@@ -41,9 +41,9 @@
import { computed, onMounted } from 'vue';
const helpData = ref([]);
-import { useStore } from 'vuex'
+import { useStore } from 'vuex';
const store = useStore();
-const permission = computed(() => store.state.user.permission);
+const permission = computed(() => store.state.user.permission);
// 表格隔行变色
const tableRowClassName = ({ row, rowIndex }) => {
if (rowIndex % 2 === 1) {
@@ -55,39 +55,44 @@
const getlistDataAPI = () => {
listDataAPI().then(res => {
helpData.value = res.data.data;
-
});
};
// 查看
-const clickDetail = (val) => {
- const filePath = val.filePath
- if (!val.filePath) {
+const clickDetail = row => {
+
+ if (!row.filePath) {
ElMessage.warning('没有可预览的文件');
return;
}
- window.open(filePath, '_blank');
+ fetch(row.filePath)
+ .then((response) => response.blob())
+ .then((res) => {
+ let blob = new Blob([res], { type: "application/pdf" });
+ // pdfurl即转化后的结果
+ let pdfurl = window.URL.createObjectURL(blob);
+ // 新标签页打开,即可预览并下载
+ window.open(pdfurl);
+ });
+
};
// 文件上传
-const onUploadFileBefore = (file,row) => {
-
-const params={
- id:row.id,
- filePath:row.filePath
-}
+const onUploadFileBefore = (file, row) => {
const fileFormat = file.name?.split('.')[1];
if (fileFormat !== 'pdf') return ElMessage.error('请上传pdf格式的文件');
const formData = new FormData();
formData.append('file', file, file.name);
uploadFileAPI(formData).then(res => {
- console.log('更新',res);
-
if (res.data.code === 200) {
+ const params = {
+ id: row.id,
+ filePath: res.data.data.link,
+ };
ElMessage.success('上传成功');
- updataDataAPI(params)
+ updataDataAPI(params);
} else {
ElMessage.error('上传失败');
}
- getlistDataAPI();
+ getlistDataAPI();
});
};
onMounted(() => {
--
Gitblit v1.9.3