Merge remote-tracking branch 'origin/dev' into dev
| | |
| | | controls |
| | | class="player" |
| | | :src="goods.goodsVideo" |
| | | width="200" |
| | | height="180" |
| | | /> |
| | | </FormItem> |
| | | <FormItem label="商品规格"> |
| | |
| | | this.detail = {} |
| | | this.auditingShow = false |
| | | }, |
| | | calculateVideoFit(width, height) { |
| | | const videoRatio = width / height; |
| | | // 规则2:竖屏视频(如9:16) |
| | | if (videoRatio < 0.8) return 'cover'; |
| | | return 'contain'; |
| | | }, |
| | | // 打开审核弹窗 |
| | | openAuditing(row) { |
| | | this.auditingShow = true |
| | |
| | | }, |
| | | getVideoDuration(e){ |
| | | const duration = this.$refs.healthVideoInfo.duration; |
| | | const videoWidth = this.$refs.healthVideoInfo.videoWidth; |
| | | const videoHeight = this.$refs.healthVideoInfo.videoHeight; |
| | | // 根据宽高比选择视频填充模式 |
| | | const fitType = this.calculateVideoFit(videoWidth, videoHeight) |
| | | this.uploadVideoForm.videoFit = fitType |
| | | console.log('------视频信息3------------>', videoWidth,videoHeight,fitType) |
| | | |
| | | this.uploadVideoForm.videoDuration = Math.floor(duration); |
| | | }, |
| | | // 打开编辑弹窗 |
| | |
| | | @on-selection-change="showSelect" |
| | | > |
| | | <template slot-scope="{ row, index }" slot="typeList"> |
| | | <div v-for="(tag, index) in row.typeList" :key="'tag' + index" style="margin-top: 5px"> |
| | | <Tag color="red">{{ tag.typeName }}</Tag> |
| | | <div style="display: flex;flex-wrap: wrap"> |
| | | <div v-for="(tag, index) in row.typeList" :key="'tag' + index" style="margin-top: 5px"> |
| | | <Tag color="red">{{ tag.typeName }}</Tag> |
| | | </div> |
| | | </div> |
| | | |
| | | </template> |
| | | <template slot-scope="{ row, index }" slot="videoFileKey"> |
| | | <div class="play-text" @click="playVideo(row.videoFileKey, row.title)">点击播放</div> |
| | |
| | | checkKitchenType: [ |
| | | { |
| | | required: true, |
| | | message: '请选择厨神标签', |
| | | message: '请选择厨神标签且不能超过5个', |
| | | trigger: 'blur', |
| | | validator: (rule, value, callback) => { |
| | | console.log('验证值:-------------->', value, '类型:', typeof value); |
| | |
| | | { |
| | | title: "视频分类", |
| | | key: "typeList", |
| | | width: 180, |
| | | width: 310, |
| | | slot: "typeList", |
| | | }, |
| | | { |
| | |
| | | slot: "action", |
| | | align: "center", |
| | | width: 200, |
| | | fixed: "right", |
| | | }, |
| | | ], |
| | | data: [], // 表单数据 |
| | |
| | | this.$set(this.uploadVideoForm, 'showCoverUrl', ''); |
| | | this.$set(this.uploadVideoForm, 'temp', new Date().getTime()); |
| | | }, |
| | | calculateVideoFit(width, height) { |
| | | const videoRatio = width / height; |
| | | // 规则2:竖屏视频(如9:16) |
| | | if (videoRatio < 0.8) return 'cover'; |
| | | return 'contain'; |
| | | }, |
| | | //重新上传视频 |
| | | clearVideo() { |
| | | this.clearCoverImage(); |
| | |
| | | }, |
| | | getVideoDuration(e){ |
| | | const duration = this.$refs.healthVideoInfo.duration; |
| | | const videoWidth = this.$refs.healthVideoInfo.videoWidth; |
| | | const videoHeight = this.$refs.healthVideoInfo.videoHeight; |
| | | // 根据宽高比选择视频填充模式 |
| | | const fitType = this.calculateVideoFit(videoWidth, videoHeight) |
| | | this.uploadVideoForm.videoFit = fitType |
| | | console.log('------视频信息3------------>', videoWidth,videoHeight,fitType) |
| | | this.uploadVideoForm.videoDuration = Math.floor(duration); |
| | | }, |
| | | // 视频上架 |
| | |
| | | <div class="goods-video"> |
| | | <div v-if="baseInfoForm.goodsVideo"> |
| | | <div> |
| | | <video :src="baseInfoForm.showGoodsVideo" class="video" controls style="max-width: 300px;"/> |
| | | <video :src="baseInfoForm.showGoodsVideo" class="video" controls style="max-width: 300px;max-height: 400px"/> |
| | | </div> |
| | | </div> |
| | | <Upload ref="upload" action="-" :format="['avi', 'wmv', 'mpeg', 'mp4', 'mov']" |