1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import type { UploadRawFile } from 'element-plus'
- const message = useMessage() // 消息
- enum MaterialType {
- Image = 'image',
- Voice = 'voice',
- Video = 'video'
- }
- const useBeforeUpload = (type: MaterialType, maxSizeMB: number) => {
- const fn = (rawFile: UploadRawFile): boolean => {
- let allowTypes: string[] = []
- let name = ''
- switch (type) {
- case MaterialType.Image:
- allowTypes = ['image/jpeg', 'image/png', 'image/gif', 'image/bmp', 'image/jpg']
- maxSizeMB = 2
- name = '图片'
- break
- case MaterialType.Voice:
- allowTypes = ['audio/mp3', 'audio/mpeg', 'audio/wma', 'audio/wav', 'audio/amr']
- maxSizeMB = 2
- name = '语音'
- break
- case MaterialType.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 { MaterialType, useBeforeUpload }
|