From e562837cbcd40f72a1ab7f7ca6bd6db3dbdd53ca Mon Sep 17 00:00:00 2001 From: peng <peng.com> Date: 星期一, 11 八月 2025 16:52:58 +0800 Subject: [PATCH] 首页视频修改 --- manager/src/views/video/VideoList.vue | 155 ++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 109 insertions(+), 46 deletions(-) diff --git a/manager/src/views/video/VideoList.vue b/manager/src/views/video/VideoList.vue index f3e5c72..070f4cc 100644 --- a/manager/src/views/video/VideoList.vue +++ b/manager/src/views/video/VideoList.vue @@ -134,9 +134,9 @@ <Icon type="ios-trash-outline" @click.native="handleRemove(item)"></Icon> </div> </template> - <!-- <template v-else>--> - <!-- <Progress v-if="item.showProgress" :percent="item.percentage" hide-info></Progress>--> - <!-- </template>--> + <!-- <template v-else>--> + <!-- <Progress v-if="item.showProgress" :percent="item.percentage" hide-info></Progress>--> + <!-- </template>--> </div> <Upload ref="upload" @@ -212,14 +212,16 @@ align-items: center;justify-content: flex-start;border: 1px solid gray;margin-top: 10px; padding: 10px;border-radius: 20px"> <div> - <img :src="endpoint+'/'+item.thumbnail" style="width: 80px;height: 80px"> + <img :src="item.thumbnail.includes('http') ? item.thumbnail : endpoint + '/' + item.thumbnail" + style="width: 80px;height: 80px"> </div> <div style="display: flex;flex-direction: column;margin-left: 20px"> <div style="font-size: 1.5em;font-weight: bold">{{ item.goodsName }}</div> <div style="color: #ff6f6f;display: flex;align-content: center;justify-content: flex-start"> <div> 锟{ item.price }}</div> <div style="margin-left: 10px"> - <InputNumber v-model="item.goodsNum" :min="0" :max="99" controls-outside @on-change="changeGoodsNum(item.goodsSkuId,index,item.goodsNum)" + <InputNumber v-model="item.goodsNum" :min="0" :max="99" controls-outside + @on-change="changeGoodsNum(item.goodsSkuId,index,item.goodsNum)" style="vertical-align: center;width: 100px"></InputNumber> </div> </div> @@ -402,9 +404,9 @@ <Button type="primary" size="small" style="margin-right: 5px" v-if="row.status === '99'" @click="openAuditing(row)">瀹℃牳 </Button> -<!-- <Button type="primary" size="small" style="margin-right: 5px"--> -<!-- @click="editVideo(row)">缂栬緫--> -<!-- </Button>--> + <Button type="primary" size="small" style="margin-right: 5px" + @click="editVideo(row)">缂栬緫 + </Button> <Button type="error" size="small" style="margin-right: 5px" v-if="row.status === '1'" @click="openVideoDown(row)">涓嬫灦 </Button> @@ -431,7 +433,7 @@ ></vue-qr> <div slot="footer"> <Button type="text" @click="closeGeneralQrCode">鍏抽棴</Button> -<!-- <Button type="primary" @click="generalQrCode">纭</Button>--> + <!-- <Button type="primary" @click="generalQrCode">纭</Button>--> </div> </Modal> <Row type="flex" justify="end" class="mt_10"> @@ -453,7 +455,17 @@ </template> <script> -import {getVideos, recommendSet, getVideoById, auditingVideo, up, down, recreateIndex,publish} from "@/api/video"; +import { + getVideos, + recommendSet, + getVideoById, + auditingVideo, + up, + down, + recreateIndex, + publish, + updatePublish +} from "@/api/video"; import {getVideoTagList, recommend, videoGoodsEsPage} from "@/api/videoTag"; import {getFilePreview, getSts} from "@/api/file"; import Editor from '@/components/editor/index.vue' @@ -465,7 +477,7 @@ export default { name: "VideoList", - components: {vuedraggable, Editor, GoodsExpandRow,"vue-qr": vueQr}, + components: {vuedraggable, Editor, GoodsExpandRow, "vue-qr": vueQr}, watch: { 'uploadVideoForm.videoContentType'(newValue, oldValue) { if (newValue === 'video') { @@ -481,6 +493,7 @@ } }, chooseTag(newValue, oldValue) { + console.log('瑙﹀彂鏂板�煎彉鍖�',newValue); this.uploadVideoForm.tags = newValue.map(item => { const findTag = this.videoTagList.find(tagItem => { return tagItem.tagName === item @@ -503,9 +516,9 @@ data() { return { // https://myk.9village.cn/scanpage/recommend?shareType=videoRecommend&videoId=1948284811844190209 - baseQRCodeUrl: this.QRcodeBaseUrl+ '/scanpage/recommend', - QRCodeUrl:'', - showGeneralQrCode:false, + baseQRCodeUrl: this.QRcodeBaseUrl + '/scanpage/recommend', + QRCodeUrl: '', + showGeneralQrCode: false, endpoint: '', searchGoods: '', videoTagList: [], @@ -692,6 +705,7 @@ slot: "action", align: "center", width: 200, + fixed: "right" }, ], goodsData: [], @@ -707,14 +721,24 @@ this.getTags('') }, methods: { - editVideo(row){ + async editVideo(row) { // this.uploadVideoForm = {}; // this.uploadVideoForm = row; // this.showUploadVideoShow = true; - console.log('------------------->缂栬緫',JSON.stringify(row)); - this.upLoadVideoShow = true; this.videoTagList = [] - this.chooseTag = row.tagList + await recommend({ + searchType: "HOT" + }).then(res => { + this.videoTagList = res.data; + }) + this.upLoadVideoShow = true; + this.chooseTag = row.tagList.map(item => { + return item.tagName + }) + console.log('閫変腑鍒楄〃---銆�',row.goodsList) + row.goodsList.forEach(item => { + item.goodsSkuId = item.id + }) this.uploadVideoForm = { id: '', title: '', @@ -729,27 +753,50 @@ fileInfo: {}, goodsList: [] } + + + // 閬嶅巻宸查�夋嫨鐨勬爣绛� + row.tagList.forEach(tag => { + // 妫�鏌ユ爣绛炬槸鍚﹀凡瀛樺湪浜巚ideoTagList涓� + const exists = this.videoTagList.some(item => item.tagName === tag.tagName); + // 濡傛灉涓嶅瓨鍦紝鍒欐坊鍔犲埌閫夐」鍒楄〃 + if (!exists) { + this.videoTagList.push({ + id: tag.id, // 鐢熸垚涓存椂ID + tagName: tag.tagName + }); + } + }); this.uploadVideoForm = row - recommend({ - searchType: "HOT" - }).then(res => { - this.videoTagList = res.data; - }) + 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 + } + } else if (this.uploadVideoForm.videoContentType === 'img') { + this.uploadVideoForm.showListImages = this.uploadVideoForm.videoImgs.map(item => { + return sts.data.endpoint + '/' + item + }) + } + this.searchGoodsList(); }, - closeGeneralQrCode(){ + closeGeneralQrCode() { this.showGeneralQrCode = false; this.QRCodeUrl = ''; }, - generalQrCode(row){ + generalQrCode(row) { this.showGeneralQrCode = true - console.log('-------------------->',row); - this.QRCodeUrl = this.baseQRCodeUrl + '?shareType=videoRecommend' + '&videoId='+ row.id; + console.log('-------------------->', row); + this.QRCodeUrl = this.baseQRCodeUrl + '?shareType=videoRecommend' + '&videoId=' + row.id; console.log(this.QRCodeUrl) }, //todo 淇濈暀鍚庣画鍙兘浼氫娇鐢� - changeGoodsNum(id,index,goodsNum){ - console.log('-------------------->',id,index,goodsNum) + changeGoodsNum(id, index, goodsNum) { + console.log('-------------------->', id, index, goodsNum) }, chooseGoods(id) { const goods = this.goodsData.find(item => { @@ -786,38 +833,54 @@ this.upLoadVideoShow = false; }, submitVideoUpload() { - this.uploadVideoForm.goodsList = this.uploadVideoForm.goodsList.filter(item => { - return item.goodsNum >0; + this.uploadVideoForm.goodsList = this.uploadVideoForm.goodsList.filter(item => { + return item.goodsNum > 0; }) if (!this.uploadVideoForm.title) { this.$Message.error('鏍囬涓嶈兘涓虹┖'); return; } //琛ㄥ崟鏍¢獙 - if (this.uploadVideoForm.videoContentType==='video') { - if (!this.uploadVideoForm.videoFileKey){ + if (this.uploadVideoForm.videoContentType === 'video') { + if (!this.uploadVideoForm.videoFileKey) { this.$Message.error('瑙嗛涓嶈兘涓虹┖'); return; } } - if (this.uploadVideoForm.videoContentType==='img') { - if (this.uploadVideoForm.videoImgs<1){ + if (this.uploadVideoForm.videoContentType === 'img') { + if (this.uploadVideoForm.videoImgs < 1) { this.$Message.error('鍥剧墖涓嶈兘涓虹┖'); return; } } - publish(this.uploadVideoForm).then(response => { - if (response.code == 200) { - this.$Message.success("瑙嗛鍙戝竷鎴愬姛"); - this.upLoadVideoShow = false; - this.getDataList(); - } - }).then(error=>{ - this.$Message.success(error); - }) + console.log('鎻愪氦琛ㄥ崟--------------->', this.uploadVideoForm) + if (this.uploadVideoForm.id) { + updatePublish(this.uploadVideoForm).then(response => { + if (response.code == 200) { + this.$Message.success("瑙嗛淇敼鎴愬姛"); + this.upLoadVideoShow = false; + this.getDataList(); + } + }).then(error => { + this.$Message.success(error); + }) + + } else { + publish(this.uploadVideoForm).then(response => { + if (response.code == 200) { + this.$Message.success("瑙嗛鍙戝竷鎴愬姛"); + this.upLoadVideoShow = false; + this.getDataList(); + } + }).then(error => { + this.$Message.success(error); + }) + } + }, //todo 鍚庣画鍙兘浼氫娇鐢ㄩ鐣� createVideoTag(e) { + console.log('------------>',e) }, handleRemove(file) { const fileList2 = this.uploadVideoForm.showListImages; @@ -1142,7 +1205,7 @@ // 鑾峰彇鍒楄〃鏁版嵁 getGoodsDataList() { let search = this.searchGoodsForm; - console.log('-------------------------->',this.searchGoodsForm) + console.log('-------------------------->', this.searchGoodsForm) if (search.pageNumber > 0) { search.pageNumber = search.pageNumber - 1; } @@ -1199,7 +1262,7 @@ }, // 鍒嗛〉 鏀瑰彉椤电爜 goodsChangePage(v) { - console.log('-------------------------->鍒嗛〉',v); + console.log('-------------------------->鍒嗛〉', v); this.searchGoodsForm.pageNumber = v; this.getGoodsDataList(); }, -- Gitblit v1.8.0