Skip to content

Commit cddf1ee

Browse files
committed
refactor: 使用useUpload
1 parent 0beda6e commit cddf1ee

File tree

2 files changed

+6
-45
lines changed

2 files changed

+6
-45
lines changed

src/views/mp/material/components/upload.ts

Lines changed: 5 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,24 @@
11
import type { UploadProps, UploadRawFile } from 'element-plus'
22
import { getAccessToken } from '@/utils/auth'
3-
const message = useMessage() // 消息
3+
import { MaterialType, useBeforeUpload } from '@/views/mp/hooks/useUpload'
4+
45
const HEADERS = { Authorization: 'Bearer ' + getAccessToken() } // 请求头
56
const UPLOAD_URL = import.meta.env.VITE_BASE_URL + '/admin-api/mp/material/upload-permanent' // 上传地址
67

7-
enum MaterialType {
8-
Image = 'image',
9-
Voice = 'voice',
10-
Video = 'video'
11-
}
12-
138
interface UploadData {
149
type: MaterialType
1510
title: string
1611
introduction: string
1712
}
1813

19-
const beforeUpload = (rawFile: UploadRawFile, materialType: MaterialType): boolean => {
20-
let allowTypes: string[] = []
21-
let maxSizeMB = 0
22-
let name = ''
23-
switch (materialType) {
24-
case MaterialType.Image:
25-
allowTypes = ['image/jpeg', 'image/png', 'image/gif', 'image/bmp', 'image/jpg']
26-
maxSizeMB = 2
27-
name = '图片'
28-
break
29-
case MaterialType.Voice:
30-
allowTypes = ['audio/mp3', 'audio/mpeg', 'audio/wma', 'audio/wav', 'audio/amr']
31-
maxSizeMB = 2
32-
name = '图片'
33-
break
34-
case MaterialType.Video:
35-
allowTypes = ['video/mp4']
36-
maxSizeMB = 10
37-
name = '视频'
38-
break
39-
}
40-
// 格式不正确
41-
if (!allowTypes.includes(rawFile.type)) {
42-
message.error(`上传${name}格式不对!`)
43-
return false
44-
}
45-
// 大小不正确
46-
if (rawFile.size / 1024 / 1024 > maxSizeMB) {
47-
message.error(`上传${name}大小不能超过${maxSizeMB}M!`)
48-
return false
49-
}
50-
return true
51-
}
52-
5314
const beforeImageUpload: UploadProps['beforeUpload'] = (rawFile: UploadRawFile) =>
54-
beforeUpload(rawFile, MaterialType.Image)
15+
useBeforeUpload(MaterialType.Image, 2)(rawFile)
5516

5617
const beforeVoiceUpload: UploadProps['beforeUpload'] = (rawFile: UploadRawFile) =>
57-
beforeUpload(rawFile, MaterialType.Voice)
18+
useBeforeUpload(MaterialType.Voice, 2)(rawFile)
5819

5920
const beforeVideoUpload: UploadProps['beforeUpload'] = (rawFile: UploadRawFile) =>
60-
beforeUpload(rawFile, MaterialType.Video)
21+
useBeforeUpload(MaterialType.Video, 10)(rawFile)
6122

6223
export {
6324
HEADERS,

src/views/mp/menu/components/MenuPreviewer.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<div
1515
class="menu_subItem"
1616
v-if="parent.children"
17-
:class="{ active: activeIndex === `${x}-${y}` }"
17+
:class="{ active: props.activeIndex === `${x}-${y}` }"
1818
@click="subMenuClicked(child, x, y)"
1919
>
2020
{{ child.name }}

0 commit comments

Comments
 (0)