From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目
---
src/views/mp/hooks/useUpload.ts | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 50 insertions(+), 0 deletions(-)
diff --git a/src/views/mp/hooks/useUpload.ts b/src/views/mp/hooks/useUpload.ts
new file mode 100644
index 0000000..b0e7053
--- /dev/null
+++ b/src/views/mp/hooks/useUpload.ts
@@ -0,0 +1,50 @@
+import type { UploadRawFile } from 'element-plus'
+
+const message = useMessage() // 娑堟伅
+
+enum UploadType {
+ Image = 'image',
+ Voice = 'voice',
+ Video = 'video'
+}
+
+const useBeforeUpload = (type: UploadType, maxSizeMB: number) => {
+ const fn = (rawFile: UploadRawFile): boolean => {
+ let allowTypes: string[] = []
+ let name = ''
+
+ switch (type) {
+ case UploadType.Image:
+ allowTypes = ['image/jpeg', 'image/png', 'image/gif', 'image/bmp', 'image/jpg']
+ maxSizeMB = 2
+ name = '鍥剧墖'
+ break
+ case UploadType.Voice:
+ allowTypes = ['audio/mp3', 'audio/mpeg', 'audio/wma', 'audio/wav', 'audio/amr']
+ maxSizeMB = 2
+ name = '璇煶'
+ break
+ case UploadType.Video:
+ allowTypes = ['video/mp4']
+ maxSizeMB = 10
+ name = '瑙嗛'
+ break
+ }
+ // 鏍煎紡涓嶆纭�
+ if (!allowTypes.includes(rawFile.type)) {
+ message.error(`涓婁紶${name}鏍煎紡涓嶅!`)
+ return false
+ }
+ // 澶у皬涓嶆纭�
+ if (rawFile.size / 1024 / 1024 > maxSizeMB) {
+ message.error(`涓婁紶${name}澶у皬涓嶈兘瓒呰繃${maxSizeMB}M!`)
+ return false
+ }
+
+ return true
+ }
+
+ return fn
+}
+
+export { UploadType, useBeforeUpload }
--
Gitblit v1.8.0