From 934654b44fb2670a7ce08aafa3d1d85fe783ae26 Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期三, 13 八月 2025 16:35:32 +0800 Subject: [PATCH] 封面必传问题 --- manager/src/views/video/VideoList.vue | 89 ++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 84 insertions(+), 5 deletions(-) diff --git a/manager/src/views/video/VideoList.vue b/manager/src/views/video/VideoList.vue index 070f4cc..79c7676 100644 --- a/manager/src/views/video/VideoList.vue +++ b/manager/src/views/video/VideoList.vue @@ -115,10 +115,25 @@ </FormItem> </Col> </Row> + <Row> + <Col span="24" v-show="uploadVideoForm.videoFileKey && !uploadVideoForm.coverUrl"> + <FormItem label="涓婁紶灏侀潰" prop="coverUrl" :label-width="80"> + <Upload + :multiple="true" + :before-upload="upLoadImagCover" + accept="image/*" + action="" + > + <Button icon="ios-cloud-upload-outline">閫夋嫨灏侀潰</Button> + </Upload> + </FormItem> + </Col> + </Row> <Row :gutter="24"> <Col span="12" v-if="uploadVideoForm.videoFileKey"> <FormItem :labelWidth="80"> - <Button @click="reloadVideo" type="primary">閲嶆柊涓婁紶瑙嗛</Button> + <Button @click="reloadVideo" type="primary" >閲嶆柊涓婁紶瑙嗛</Button> + <Button type="primary" @click="clearCoverImage" v-show="uploadVideoForm.coverUrl" style="margin-left: 20px">閲嶆柊涓婁紶灏侀潰</Button> </FormItem> </Col> </Row> @@ -474,9 +489,15 @@ import {getFileKey} from "@/utils/file"; import vuedraggable from "vuedraggable"; import vueQr from "vue-qr"; +import uploadImage from "../../components/editor/upload-image.vue"; export default { name: "VideoList", + computed: { + uploadImage() { + return uploadImage + } + }, components: {vuedraggable, Editor, GoodsExpandRow, "vue-qr": vueQr}, watch: { 'uploadVideoForm.videoContentType'(newValue, oldValue) { @@ -532,6 +553,8 @@ videoProgress: 0, upLoadVideoShow: false, uploadVideoForm: { + coverUrl:null, + showCoverUrl:null, id: '', title: '', cover: "", @@ -768,19 +791,22 @@ } }); this.uploadVideoForm = row + console.log("鎵撳嵃鍊�",this.uploadVideoForm) this.uploadVideoForm.fileInfo= {}; this.uploadVideoForm.videoImgs = JSON.parse(this.uploadVideoForm.videoImgs) const sts = await getSts(); if (this.uploadVideoForm.videoContentType === 'video') { this.uploadVideoForm.showVideoUrl = sts.data.endpoint + '/' + this.uploadVideoForm.videoFileKey + if (this.uploadVideoForm.coverUrl !== '' && this.uploadVideoForm.coverUrl != null) { - this.uploadVideoForm.showCoverUrl = sts.data.endpoint + '/' + this.uploadVideoForm.coverUrl + this.uploadVideoForm.showCoverUrl = this.uploadVideoForm.coverUrl } } else if (this.uploadVideoForm.videoContentType === 'img') { this.uploadVideoForm.showListImages = this.uploadVideoForm.videoImgs.map(item => { return sts.data.endpoint + '/' + item }) } + console.log("澶勭悊杩囧悗",this.uploadVideoForm) this.searchGoodsList(); }, @@ -833,6 +859,11 @@ this.upLoadVideoShow = false; }, submitVideoUpload() { + console.log(this.uploadVideoForm.coverUrl) + if (this.uploadVideoForm.coverUrl === null || this.uploadVideoForm.coverUrl === undefined) { + this.$Message.error('鏍囬涓嶈兘涓虹┖'); + return; + } this.uploadVideoForm.goodsList = this.uploadVideoForm.goodsList.filter(item => { return item.goodsNum > 0; }) @@ -891,13 +922,62 @@ this.imgName = name; this.visible = true; }, + async upLoadImagCover(file) { + try { + // 鑾峰彇鏂囦欢涓婁紶涓存椂瀵嗛挜 + const sts = await getSts(); + const cos = new COS({ + getAuthorization: async function (options, callback) { + callback({ + TmpSecretId: sts.data.tmpSecretId, + TmpSecretKey: sts.data.tmpSecretKey, + SecurityToken: sts.data.sessionToken, + // 寤鸿杩斿洖鏈嶅姟鍣ㄦ椂闂翠綔涓虹鍚嶇殑寮�濮嬫椂闂达紝閬垮厤瀹㈡埛绔湰鍦版椂闂村亸宸繃澶у鑷寸鍚嶉敊璇� + StartTime: sts.data.stsStartTime, // 鏃堕棿鎴筹紝鍗曚綅绉掞紝濡傦細1580000000 + ExpiredTime: sts.data.stsEndTime,// 鏃堕棿鎴筹紝鍗曚綅绉掞紝濡傦細1580000000 + ScopeLimit: true, // 缁嗙矑搴︽帶鍒舵潈闄愰渶瑕佽涓� true锛屼細闄愬埗瀵嗛挜鍙湪鐩稿悓璇锋眰鏃堕噸澶嶄娇鐢� + }); + } + }) + const fileKey = getFileKey(file.name) + const upData = await cos.uploadFile({ + Bucket: sts.data.bucket, + Region: sts.data.region, + Key: fileKey, + Body: file, // 瑕佷笂浼犵殑鏂囦欢瀵硅薄銆俢over + SliceSize: 1024 * 1024 * 5, + onProgress: function (progressData) { + console.log('涓婁紶杩涘害锛�', progressData); + }, + }); + this.$set(this.uploadVideoForm, 'coverUrl', fileKey); + this.$set(this.uploadVideoForm, 'showCoverUrl', `${sts.data.endpoint}/${fileKey}`); + this.uploadVideoForm.cover = fileKey; + if (this.$refs.videoInfo) { + this.$refs.videoInfo.poster = this.uploadVideoForm.showCoverUrl; + this.$refs.videoInfo.load(); // 閲嶆柊鍔犺浇瑙嗛 + } + console.log(this.uploadVideoForm) + + } catch (e) { + console.log("涓婁紶澶辫触", upData) + } finally { + + } + return false; + }, + clearCoverImage(){ + this.$set(this.uploadVideoForm, 'coverUrl', ''); + this.$set(this.uploadVideoForm, 'showCoverUrl', ''); + this.$set(this.uploadVideoForm, 'temp', new Date().getTime()); + }, + async upLoadImg(file) { if (this.uploadVideoForm.videoImgs >= 5) { this.$Message.error("鍥剧墖涓婁紶涓嶈兘瓒呰繃5涓�"); return; } try { - // this.upLoadVideoLoading = true; // 鑾峰彇鏂囦欢涓婁紶涓存椂瀵嗛挜 const sts = await getSts(); const cos = new COS({ @@ -934,7 +1014,6 @@ console.log("涓婁紶澶辫触", upData) return false; } finally { - // this.upLoadVideoLoading = false; } return false; @@ -999,7 +1078,7 @@ this.uploadVideoForm.showVideoUrl = sts.data.endpoint + "/" + fileKey; }) console.log("涓婁紶鎴愬姛", upData) - const duration = this.$refs.healthVideoInfo.duration; + const duration = this.$refs.videoInfo.duration; console.log('-娴嬭瘯鑾峰彇鏃堕棿淇℃伅---------------->', duration); } catch (e) { console.log("涓婁紶澶辫触", upData) -- Gitblit v1.8.0