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