Skip to content

Commit 9e02585

Browse files
committed
fix
1 parent 4215476 commit 9e02585

1 file changed

Lines changed: 36 additions & 8 deletions

File tree

src/components/modules/vUpload/vUploadImage.vue

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,18 @@
2323
2424
// 检测文件类型
2525
const isVideo = computed(() => {
26-
if (!currentFile.value) return false
27-
console.log(mediaSrc.value)
28-
return currentFile.value.type.startsWith('video/')
26+
// 如果有当前文件,根据文件类型判断
27+
if (currentFile.value) {
28+
console.log(mediaSrc.value)
29+
return currentFile.value.type.startsWith('video/')
30+
}
31+
// 如果没有当前文件但有媒体源,根据URL判断
32+
if (mediaSrc.value) {
33+
return mediaSrc.value.includes('.mp4') || mediaSrc.value.includes('.webm') ||
34+
mediaSrc.value.includes('.avi') || mediaSrc.value.includes('.mov') ||
35+
mediaSrc.value.includes('video/')
36+
}
37+
return false
2938
})
3039
3140
// const isGif = computed(() => {
@@ -34,8 +43,16 @@
3443
// })
3544
3645
const isImage = computed(() => {
37-
if (!currentFile.value) return !isVideo.value
38-
return currentFile.value.type.startsWith('image/')
46+
// 如果有当前文件,根据文件类型判断
47+
if (currentFile.value) {
48+
return currentFile.value.type.startsWith('image/')
49+
}
50+
// 如果没有当前文件但有媒体源,根据URL判断
51+
if (mediaSrc.value) {
52+
// 如果不是视频,且有媒体源,则默认为图片
53+
return !isVideo.value
54+
}
55+
return false
3956
})
4057
4158
const handleFileChange = async (e: Event) => {
@@ -45,8 +62,11 @@
4562
emit('change', files)
4663
if (files) {
4764
const file = files[0]
65+
if (!file) {
66+
showLoading.value = false
67+
return
68+
}
4869
currentFile.value = file
49-
5070
// 创建预览URL
5171
mediaSrc.value = URL.createObjectURL(file)
5272
emit('update:modelValue', mediaSrc.value)
@@ -81,10 +101,17 @@
81101
}
82102
}
83103
104+
const videoRef = ref<HTMLVideoElement | null>(null)
105+
const handleVideoLoad = () => {
106+
if (videoRef.value) {
107+
videoRef.value.controls = false
108+
}
109+
}
110+
84111
onMounted(() => {
85112
let previewPrc = props.previewPrc as string
86113
if (previewPrc.includes('.mp4')) {
87-
previewPrc = `${previewPrc}?x-oss-process=video/snapshot,t_0000,f_jpg,w_300,h_600`
114+
previewPrc = `${previewPrc}?x-oss-process=video/snapshot,t_0000,f_jpg`
88115
}
89116
mediaSrc.value = previewPrc
90117
})
@@ -115,7 +142,8 @@
115142
:src="mediaSrc"
116143
class="block object-cover w-full h-full rounded-lg absolute left-0 top-0 z-10"
117144
muted
118-
controls
145+
ref="videoRef"
146+
@load="handleVideoLoad"
119147
/>
120148

121149
<!-- 图片预览 -->

0 commit comments

Comments
 (0)