<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      圖片視頻組件封裝

       

      
      

       

       

       

       

       


      <
      template> <div> <el-upload ref="upload" :class="disabled ? 'disabled' : ''" list-type="picture-card" :action="action" :file-list="newFileList" :disabled="disabled" :on-remove="handleRemove" :on-success="handleSuccess" :before-upload="beforeUpload" > <i slot="default" class="el-icon-plus"></i> <div slot="file" slot-scope="{ file }"> <img class="el-upload-list__item-thumbnail" :src="file.url" alt="" /> <span class="el-upload-list__item-actions"> <span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)" > <i class="el-icon-zoom-in"></i> </span> <span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)" > <i class="el-icon-delete"></i> </span> </span> </div> <div slot="tip" class="el-upload__tip" v-if="!disabled"> 可以上傳jpg/png/Jpeg格式圖片或正確格式視頻文件,上傳文件大小不能超過 60MB! </div> </el-upload> <el-dialog :visible.sync="dialogVisible" append-to-body width="80%"> <div style="width:100%;text-align:center"> <img v-if="isShowImg" ref="dialogImg" :style="{width:'100%', 'aspect-ratio':dialogRatio }" :src="dialogUrl" /> <video v-else width="100%" height="600px" :src="dialogUrl" controls="controls" autoplay></video> </div> </el-dialog> </div> </template> <script> import util from "@/libs/util"; export default { props: { fileList: { type: Array, default: () => { return []; }, }, disabled: { type: Boolean, default: () => { return false; }, }, }, data() { return { newFileList:[], action: util.baseUrl + "/sdfs/file/uploadImage", dialogVisible: false, isShowImg: false, dialogUrl: "", dialogRatio:1, }; }, watch: { fileList: { handler(newV) { let newFileList = []; const videoType = ["mp4", "ogg", "flv", "avi", "wmv", "3gp", "mov"]; newFileList = this.fileList.map(item => { let url = item.url ? item.url : item; const type = url.split(".")[url.split(".").length - 1]; let file = { url: url } if (videoType.includes(type)) { file.videoUrl = file.url; this.getVideoBase64(url).then(res => { file.url = res; }) } return file; }) this.newFileList = newFileList; }, immediate: true }, dialogVisible(newV) { if(!newV) { this.isShowImg = true; this.dialogUrl = ""; } } }, methods: { handleRemove(file, fileList) { console.log(file) for (let i in this.newFileList) { if (file.uid == this.newFileList[i].uid) { this.newFileList.splice(i, 1); } } this.$emit("setFileList", this.newFileList); }, handleSuccess(res, file) { let _self = this; if (res.code !== '00000') { _self.$message({ message: '附件上傳失敗', type: 'error' }) _self.fileList.splice(_self.fileList.indexOf(file, 1)) } else { let data = { name: file.name, url: file.response.data, } const type = data.url.split(".")[data.url.split(".").length - 1]; const videoType = ["mp4", "ogg", "flv", "avi", "wmv", "3gp", "mov"]; if (videoType.includes(type)) { //視頻附件,獲取第一幀畫面作為 封面展示 data.videoUrl = file.response.data; this.getVideoBase64(data.url).then(res => { data.url = res; }) } this.fileList.push(data); this.$emit("setFileList", this.fileList); } }, beforeUpload(file) { const isJPG = file.type === "image/jpeg" || file.type === "image/jpg" || file.type === "image/png"; const isVideo = [ "video/mp4", "video/ogg", "video/flv", "video/avi", "video/wmv", "video/3gp", "video/mov", ].indexOf(file.type) !== -1; if (!isJPG && !isVideo) { this.$message.error( "請確認上傳圖片為jpg/png/jpeg/格式,視頻為正確格式!" ); return false; } const isLt60M = file.size / 1024 / 1024 < 60; if (!isLt60M) { this.$message.error('上傳文件大小不能超過 60MB!'); return false } return (isJPG || isVideo) && isLt60M; }, handlePictureCardPreview(file) { if (file.videoUrl) { this.dialogUrl = file.videoUrl; this.isShowImg = false; }else { this.dialogUrl = file.url; this.isShowImg = true; setTimeout(() => { this.getImageSize(this.$refs.dialogImg).then(res => { this.dialogRatio = res; }) }) } this.dialogVisible = true; }, //獲取圖片比例 getImageSizeByUrl(url) { return new Promise(function (resolve, reject) { let image = new Image(); image.onload = function () { resolve(image.width/image.height); }; image.onerror = function () { reject(new Error('error')); }; image.src = url; }); }, async getImageSize(img) { if (img.naturalWidth) { // 適用于Firefox/IE9/Safari/Chrome/Opera瀏覽器 return img.naturalWidth/img.naturalHeight } else { return await this.getImageSizeByUrl(img.src); } }, /** * @description 獲取視頻第一幀作為回顯封面 * @param {*} url * @return {*} */ getVideoBase64(url) { return new Promise(function (resolve, reject) { let dataURL = ''; let video = document.createElement("video"); video.setAttribute('crossOrigin', 'anonymous');//處理跨域 video.setAttribute('src', url); video.setAttribute('width', 400); video.setAttribute('height', 240); video.setAttribute('preload', 'auto'); video.addEventListener('loadeddata', function () { let canvas = document.createElement("canvas"), width = video.width, //canvas的尺寸和圖片一樣 height = video.height; canvas.width = width; canvas.height = height; canvas.getContext("2d").drawImage(video, 0, 0, width, height); //繪制canvas dataURL = canvas.toDataURL('image/jpeg'); //轉換為base64 resolve(dataURL); }); }) } }, }; </script> <style lang="less" scoped> .disabled .el-upload--picture-card { display: none; } .el-upload-list__item>div { width: 100%; height: 100%; } </style>
       let exhibitShow = this.formValidate.exhibitShow.map(item => {
              return item.videoUrl || item.url || item;
            }).join(',');
       exhibitShow: data.exhibitShow ? data.exhibitShow.split(',').filter(item => item) : [],
      exhibitShow:"http://49.7.218.51:9999/sdfs/static/image/28d4f32b-3e59-4c2b-8bfc-d88dae85e66e.png,http://49.7.218.51:9999/sdfs/static/image/1926e3a2-f581-43c8-9053-e9d3f10f68d1.png,http://49.7.218.51:9999/sdfs/static/image/dcccc445-c72f-4b6a-8f38-0a63f9790216.png"

       

      posted @ 2023-03-07 15:38  abcByme  閱讀(39)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 午夜AAAAA级岛国福利在线| 久久国产精品无码网站| 国产成人AV男人的天堂| 国产精品爆乳奶水无码视频免费 | 日韩精品 在线 国产 丝袜| 免费无码中文字幕A级毛片| 久久综合色天天久久综合图片| 亚州中文字幕一区二区| A级毛片100部免费看| 国产精品成人高潮av| 在线涩涩免费观看国产精品| 日本边添边摸边做边爱| 护士张开腿被奷日出白浆| 偷拍专区一区二区三区| 欧美牲交a欧美牲交aⅴ一| 精品一区二区不卡无码AV| 广河县| 国产av熟女一区二区三区| 亚洲二区中文字幕在线| 男女做aj视频免费的网站| 国产精品疯狂输出jk草莓视频| 国产成人最新三级在线视频| 日韩有码中文字幕av| 欧美亚洲h在线一区二区| 99九九成人免费视频精品| 国产精品有码在线观看| 国产无遮挡猛进猛出免费| 久久精品亚洲日本波多野结衣| 久热这里只有精品12| 农村乱色一区二区高清视频| 中文字幕人妻中文AV不卡专区| 色综合色狠狠天天综合网| 亚洲国产天堂久久综合226114| 无码人妻精品一区二| 中文字幕亚洲综合久久2020| 一道本AV免费不卡播放| 国产精品色一区二区三区| 国产一区精品综亚洲av| 人人做人人妻人人精| 一区二区三区国产综合在线| 天堂久久久久VA久久久久|