From 801514dbe3e3b4d95daa4daaa2fe76fdec549736 Mon Sep 17 00:00:00 2001
From: dap <15891557205@163.com>
Date: Wed, 21 May 2025 11:54:55 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81pdf=E9=A2=84=E8=A7=88?=
=?UTF-8?q?(=E5=8E=9F=E7=94=9F=20=E6=B5=8F=E8=A7=88=E5=99=A8=E6=8E=A5?=
=?UTF-8?q?=E7=AE=A1)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../web-antd/src/views/system/oss/constant.ts | 2 ++
.../views/system/oss/file-upload-modal.vue | 6 +++-
.../views/system/oss/image-upload-modal.vue | 2 +-
apps/web-antd/src/views/system/oss/index.vue | 33 +++++++++++++++++--
4 files changed, 39 insertions(+), 4 deletions(-)
create mode 100644 apps/web-antd/src/views/system/oss/constant.ts
diff --git a/apps/web-antd/src/views/system/oss/constant.ts b/apps/web-antd/src/views/system/oss/constant.ts
new file mode 100644
index 00000000..9025cc09
--- /dev/null
+++ b/apps/web-antd/src/views/system/oss/constant.ts
@@ -0,0 +1,2 @@
+/** 支持的图片列表 */
+export const supportImageList = ['jpg', 'jpeg', 'png', 'gif', 'webp'];
diff --git a/apps/web-antd/src/views/system/oss/file-upload-modal.vue b/apps/web-antd/src/views/system/oss/file-upload-modal.vue
index dd144023..4914289e 100644
--- a/apps/web-antd/src/views/system/oss/file-upload-modal.vue
+++ b/apps/web-antd/src/views/system/oss/file-upload-modal.vue
@@ -31,7 +31,11 @@ const [BasicModal, modalApi] = useVbenModal({
title="文件上传"
>
-
+
diff --git a/apps/web-antd/src/views/system/oss/image-upload-modal.vue b/apps/web-antd/src/views/system/oss/image-upload-modal.vue
index 370d381c..44178372 100644
--- a/apps/web-antd/src/views/system/oss/image-upload-modal.vue
+++ b/apps/web-antd/src/views/system/oss/image-upload-modal.vue
@@ -31,7 +31,7 @@ const [BasicModal, modalApi] = useVbenModal({
title="图片上传"
>
-
+
diff --git a/apps/web-antd/src/views/system/oss/index.vue b/apps/web-antd/src/views/system/oss/index.vue
index 06b79a66..18cc20db 100644
--- a/apps/web-antd/src/views/system/oss/index.vue
+++ b/apps/web-antd/src/views/system/oss/index.vue
@@ -33,6 +33,7 @@ import { ossDownload, ossList, ossRemove } from '#/api/system/oss';
import { calculateFileSize } from '#/utils/file';
import { downloadByData } from '#/utils/file/download';
+import { supportImageList } from './constant';
import { columns, querySchema } from './data';
import fallbackImageBase64 from './fallback-image.txt?raw';
import fileUploadModal from './file-upload-modal.vue';
@@ -164,10 +165,32 @@ onMounted(async () => {
preview.value = previewStr === 'true';
});
+/**
+ * 根据拓展名判断是否是图片
+ * @param ext 拓展名
+ */
function isImageFile(ext: string) {
- const supportList = ['jpg', 'jpeg', 'png', 'gif', 'webp'];
- return supportList.some((item) => ext.toLocaleLowerCase().includes(item));
+ return supportImageList.some((item) =>
+ ext.toLocaleLowerCase().includes(item),
+ );
}
+
+/**
+ * 判断是否是pdf文件
+ * @param ext 扩展名
+ */
+function isPdfFile(ext: string) {
+ return ext.toLocaleLowerCase().includes('pdf');
+}
+
+/**
+ * pdf预览 使用浏览器接管
+ * @param url 文件地址
+ */
+function pdfPreview(url: string) {
+ window.open(url);
+}
+
const [ImageUploadModal, imageUploadApi] = useVbenModal({
connectedComponent: imageUploadModal,
});
@@ -231,6 +254,12 @@ const [FileUploadModal, fileUploadApi] = useVbenModal({
+
+
{{ row.url }}