peng
2025-08-11 e562837cbcd40f72a1ab7f7ca6bd6db3dbdd53ca
首页视频修改
2个文件已修改
99 ■■■■ 已修改文件
manager/src/api/video.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manager/src/views/video/VideoList.vue 91 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manager/src/api/video.js
@@ -111,3 +111,11 @@
    data: params
  })
}
// 发布视频
export const updatePublish = (params) => {
  return service({
    url: "/lmk/video",
    method: "PUT",
    data: params
  })
}
manager/src/views/video/VideoList.vue
@@ -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>
@@ -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'
@@ -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
@@ -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,12 +753,35 @@
        fileInfo: {},
        goodsList: []
      }
      // 遍历已选择的标签
      row.tagList.forEach(tag => {
        // 检查标签是否已存在于videoTagList中
        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(){
@@ -806,6 +853,19 @@
          return;
        }
      }
      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("视频发布成功");
@@ -815,9 +875,12 @@
      }).then(error=>{
        this.$Message.success(error);
      })
      }
    },
    //todo 后续可能会使用预留
    createVideoTag(e) {
      console.log('------------>',e)
    },
    handleRemove(file) {
      const fileList2 = this.uploadVideoForm.showListImages;