From f99fd9cb7de019e0c1927820c196a52421f995fb Mon Sep 17 00:00:00 2001 From: lwh <2679599887@qq.com> Date: Mon, 24 Jul 2023 21:27:52 +0800 Subject: [PATCH] =?UTF-8?q?fixed=20=E4=BF=AE=E6=94=B9=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E7=BB=84=E4=BB=B6=E5=8F=AF=E4=BB=A5=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E8=A7=86=E9=A2=91=E5=B9=B6=E4=B8=94=E9=A2=84=E8=A7=88?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E6=94=B9=E5=90=8E=E5=8F=B0=E5=95=86=E5=93=81?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E9=A1=B5=E9=94=80=E9=87=8F=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ImageUpload/index.vue | 69 +++++++++++++------ .../business/GoodsManager/Goodss/index.vue | 6 +- 2 files changed, 54 insertions(+), 21 deletions(-) diff --git a/src/components/ImageUpload/index.vue b/src/components/ImageUpload/index.vue index 2cb8689..8df0ae1 100644 --- a/src/components/ImageUpload/index.vue +++ b/src/components/ImageUpload/index.vue @@ -1,24 +1,12 @@ @@ -130,9 +124,27 @@ function handleUploadSuccess(res) { number.value = 0 emit('update:modelValue', listToString(fileList.value)) } + updateVideoDom() proxy.$modal.closeLoading() } +function updateVideoDom() { + setTimeout(() => { + Array.prototype.slice.call(document.getElementsByClassName('is-success')) + .filter(item => item.className.indexOf('el-upload-list__item') !== -1) + .map(item => { + let tag = item.getElementsByClassName('el-upload-list__item-thumbnail')[0]; + if (isVideo(tag.getAttribute('src'))) { + let attr = [tag.getAttribute('class'), tag.getAttribute('src')]; + let videoTag = document.createElement('video'); + videoTag.setAttribute('class', attr[0]); + videoTag.setAttribute('src', attr[1]); + item.replaceChild(videoTag, tag); + } + }); + },) +} + // 上传前loading加载 function handleBeforeUpload(file) { let isImg = false @@ -192,6 +204,23 @@ function listToString(list, separator) { } return strs != '' ? strs.substr(0, strs.length - 1) : '' } + +const getFileExtension = (filename) => { + return filename.slice(filename.lastIndexOf('.')); +}; + +const isImage = (value) => { + const imageExtensions = ['.png', '.jpg', '.jpeg']; + const extension = getFileExtension(value); + return imageExtensions.includes(extension.toLowerCase()); +}; + +const isVideo = (value) => { + const videoExtensions = ['.mp4', '.avi', '.mov', '.wmv', '.flv', '.mkv', '.mpeg', '.3gp', '.webm', '.vob', '.rm', '.rmvb']; + const extension = getFileExtension(value); + return videoExtensions.includes(extension.toLowerCase()); +}; +