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