Przeglądaj źródła

更新收藏夹相关页面和接口

reghao 2 lat temu
rodzic
commit
d665eb6d3b

+ 9 - 20
src/api/collect.js

@@ -1,38 +1,27 @@
 import { get, post, delete0 } from '@/utils/request'
 
 const collectApi = {
-  collectVideoApi: '/api/content/collect/video',
-  deleteCollectApi: '/api/content/collect/video/delete',
-  eraseCollectApi: '/api/content/collect/video/erase',
-  userCollectionApi: '/api/content/collect/video',
+  collectItemApi: '/api/content/favlist/collect',
   userFavlistApi: '/api/content/favlist/user',
   favlistApi: '/api/content/favlist',
 }
 
-// 添加收藏
-export function collectVideo(data) {
-  return post(collectApi.collectVideoApi, data)
+// 收藏(取消收藏)内容
+export function collectItem(jsonData) {
+  return post(collectApi.collectItemApi, jsonData)
 }
 
-// 删除收藏
-export function deleteVideoCollection(videoId) {
-  return delete0(collectApi.deleteCollectApi + '/' + videoId)
-}
-
-// 清空收藏夹
-export function eraseVideoCollection() {
-  return delete0(collectApi.eraseCollectApi)
-}
-
-// 获取用户收藏
-export function getUserCollection(pageNumber) {
-  return get(collectApi.userCollectionApi + '?pageNumber=' + pageNumber)
+// 删除收藏夹
+export function deleteFavlist(favlistId) {
+  return delete0(collectApi.favlistApi + '/' + favlistId)
 }
 
+// 获取用户收藏夹
 export function getUserFavlist() {
   return get(collectApi.userFavlistApi)
 }
 
+// 获取收藏夹内容
 export function getFavlist(favlistId, contentType, page) {
   return get(collectApi.favlistApi + '?favlistId=' + favlistId + '&contentType=' + contentType + '&page=' + page)
 }

+ 0 - 5
src/api/image.js

@@ -10,7 +10,6 @@ const imageApi = {
 
   albumApi: '/api/content/image/album',
   userAlbumApi: '/api/content/image/album/user',
-  collectImageApi: '/api/content/image/collect',
   imageApi: '/api/content/image',
 }
 
@@ -56,10 +55,6 @@ export function getAlbum(albumId) {
   return get(imageApi.albumApi + '/' + albumId)
 }
 
-export function collectImage(jsonData) {
-  return post(imageApi.collectImageApi, jsonData)
-}
-
 export function getImages(page) {
   return get(imageApi.imageApi + '?page=' + page)
 }

+ 0 - 1
src/api/visit.js

@@ -2,7 +2,6 @@ import { get, post, delete0 } from '@/utils/request'
 
 const visitApi = {
   visitRecordApi: '/api/data/video/visit',
-  collectVideoApi: '/api/content/visit/video',
 }
 
 // 获取用户的视频观看记录

+ 2 - 2
src/components/layout/NavBar.vue

@@ -98,13 +98,13 @@
               icon="el-icon-star-on"
               class="size"
               @click.native="goToCollection"
-            >我的收藏
+            >收藏
             </el-dropdown-item>
             <el-dropdown-item
               icon="el-icon-video-camera-solid"
               class="size"
               @click.native="goToHistory"
-            >播放历史
+            >历史记录
             </el-dropdown-item>
             <el-dropdown-item
               icon="el-icon-error"

+ 7 - 3
src/views/home/Image.vue

@@ -24,6 +24,9 @@
                   <i v-if="image.collected" class='el-icon-star-on' @click="collectItem(image)"/>
                   <i v-else class='el-icon-star-off' @click="collectItem(image)"/>
                 </span>
+                <span style="position: relative; bottom: 0; left: 0; color:blue">
+                  来自相册:
+                </span>
                 <router-link target="_blank" :to="`/image/album/${image.albumId}`">
                   <span style="position: relative; bottom: 0; left: 0; color:blue">
                     {{ image.albumName | ellipsis }}
@@ -63,7 +66,8 @@
 </template>
 
 <script>
-import {collectImage, getImages} from '@/api/image'
+import {getImages} from '@/api/image'
+import {collectItem} from "@/api/collect";
 
 export default {
   name: 'Image',
@@ -152,7 +156,7 @@ export default {
       jsonData.contentId = image.imageFileId
       if (image.collected) {
         jsonData.collected = false
-        collectImage(jsonData).then(res => {
+        collectItem(jsonData).then(res => {
           if (res.code === 0) {
             this.$notify({
               title: '取消收藏图片',
@@ -164,7 +168,7 @@ export default {
         })
       } else {
         jsonData.collected = true
-        collectImage(jsonData).then(res => {
+        collectItem(jsonData).then(res => {
           if (res.code === 0) {
             this.$notify({
               title: '图片已收藏',

+ 4 - 3
src/views/home/ImagePage.vue

@@ -75,7 +75,8 @@
 <script>
 import PermissionDeniedCard from '@/components/card/PermissionDeniedCard'
 import { followUser, getUserInfo, unfollowUser } from "@/api/user";
-import { getAlbum, collectImage } from "@/api/image";
+import { getAlbum } from "@/api/image";
+import {collectItem} from "@/api/collect";
 
 export default {
   name: 'ImagePage',
@@ -184,7 +185,7 @@ export default {
       jsonData.contentId = image.imageFileId
       if (image.collected) {
         jsonData.collected = false
-        collectImage(jsonData).then(resp => {
+        collectItem(jsonData).then(resp => {
           if (resp.code === 0) {
             this.$notify({
               title: '取消收藏图片',
@@ -196,7 +197,7 @@ export default {
         })
       } else {
         jsonData.collected = true
-        collectImage(jsonData).then(resp => {
+        collectItem(jsonData).then(resp => {
           if (resp.code === 0) {
             this.$notify({
               title: '图片已收藏',

+ 0 - 109
src/views/home/LivePage.vue

@@ -127,10 +127,6 @@ import Comment from 'components/comment/Comment'
 import VideoCard from 'components/card/VideoCard'
 import UserAvatarCard from '@/components/card/UserAvatarCard'
 
-import {similarVideo, videoInfo, videoErrorReport, downloadVideo} from '@/api/video'
-import { collectVideo } from "@/api/collect";
-import {getUserInfo} from "@/api/user";
-
 export default {
   name: 'LivePage',
   components: { Comment, VideoCard, LivePlayer, UserAvatarCard },
@@ -174,110 +170,12 @@ export default {
   },
   created() {
     const id = this.$route.params.id
-    console.log('id -> ' + id)
-    /*this.getVideoInfo(videoId)
-    this.getSimilarVideos(videoId)*/
   },
   methods: {
-    // 获取视频的详细信息
-    getVideoInfo(videoId) {
-      videoInfo(videoId).then(res => {
-        if (res.code === 0) {
-          this.videoProp = res.data
-
-          this.video = res.data
-          document.title = res.data.title
-          this.userId = res.data.userId
-          getUserInfo(this.userId).then(res => {
-            if (res.code === 0) {
-              this.user = res.data
-            } else {
-              this.$notify.error({
-                message: '用户数据获取失败',
-                type: 'warning',
-                duration: 3000
-              })
-            }
-          })
-        } else {
-          this.$notify.error({
-            message: '视频数据获取失败',
-            type: 'warning',
-            duration: 3000
-          })
-          this.$router.push('/404')
-        }
-      }).catch(error => {
-        this.$notify.error({
-          message: error.message,
-          type: 'warning',
-          duration: 3000
-        })
-      })
-    },
     // 用户点击收藏
     collection(videoId) {
-      collectVideo({videoId: videoId}).then(res => {
-        if (res.code === 0) {
-          this.$notify.success({
-            title: '视频已收藏',
-            duration: 2000
-          })
-        } else {
-        }
-      })
     },
     getDownloadUrl(videoId) {
-      let filename
-      downloadVideo(videoId).then(res => {
-        if (res.code === 0) {
-          const downloadUrl = res.data
-          fetch(downloadUrl.url, {
-            headers: {
-              Authorization: 'Bearer ' + downloadUrl.token
-            },
-            method: 'GET',
-            credentials: 'include',
-          }).then(res => {
-            /*
-            遍历 formdata
-            for (const key of res.headers.keys()) {
-              console.log(key + ' : ' + res.headers.get(key))
-            }*/
-            const header = res.headers.get('Content-Disposition');
-            const parts = header.split(';');
-            filename = parts[1].split('=')[1];
-            return res.blob()
-          }).then(data => {
-              const blobUrl = window.URL.createObjectURL(data);
-              const a = document.createElement('a');
-              a.download = filename;
-              a.href = blobUrl;
-              a.click();
-          }).catch(e => {
-            this.$notify({
-              title: '提示',
-              message: '视频下载失败',
-              type: 'warning',
-              duration: 3000
-            })
-          })
-        } else {
-          this.$notify({
-            title: '提示',
-            message: res.msg,
-            type: 'warning',
-            duration: 3000
-          })
-        }
-      }).catch(error => {
-        this.$notify({
-          title: '提示',
-          message: error.message,
-          type: 'error',
-          duration: 3000
-        })
-      })
     },
   }
 }
@@ -308,11 +206,4 @@ export default {
 .clearfix:after {
   clear: both;
 }
-
-.v-tag {
-  padding-top: 10px;
-}
-.tag{
-  margin-right: 3px;
-}
 </style>

+ 10 - 6
src/views/home/VideoPage.vue

@@ -207,7 +207,7 @@ import VideoCard from 'components/card/VideoCard'
 import UserAvatarCard from '@/components/card/UserAvatarCard'
 
 import {similarVideo, videoInfo, videoErrorReport, downloadVideo, cacheBiliVideo} from '@/api/video'
-import { collectVideo } from "@/api/collect";
+import { collectItem } from "@/api/collect";
 import {getUserInfo} from "@/api/user";
 
 export default {
@@ -307,13 +307,17 @@ export default {
     },
     // 用户点击收藏
     collection(videoId) {
-      collectVideo({videoId: videoId}).then(res => {
-        if (res.code === 0) {
+      const jsonData = {}
+      jsonData.contentType = 1002
+      jsonData.contentId = videoId
+      jsonData.collected = true
+      collectItem(jsonData).then(res => {
+        if (res.code !== 0) {
           this.$notify.success({
-            title: '视频已收藏',
-            duration: 2000
+            title: '视频收藏失败',
+            type: 'warning',
+            duration: 3000
           })
-        } else {
         }
       })
     },

+ 36 - 27
src/views/user/Collection.vue

@@ -26,11 +26,10 @@
           <el-col style="text-align: right">
             <el-button
               type="danger"
+              size="mini"
               icon="el-icon-delete"
-              round
-              title="一键清空"
-              @click="removeAll"
-            >一键清空</el-button>
+              @click="removeFavlist"
+            >删除收藏夹</el-button>
           </el-col>
           <el-col v-for="(item,index) in dataList" :key="index" :md="6" :sm="8" :xs="12">
             <div v-if="contentType === 1001">
@@ -47,7 +46,7 @@
               </el-card>
             </div>
             <div v-else-if="contentType === 1002">
-              <video-card :video="video"/>
+              <video-card :video="item"/>
             </div>
             <div v-else-if="contentType === 1003">
             </div>
@@ -58,11 +57,10 @@
             </div>
             <el-button
               type="danger"
+              size="mini"
               icon="el-icon-delete"
-              circle
-              size="small"
-              title="移除该条收藏"
-              @click.stop="removeCollection"
+              title="删除本收藏"
+              @click.stop="removeCollection(item)"
             />
           </el-col>
           <el-col class="pagination">
@@ -93,12 +91,11 @@
 <script>
 import VideoCard from '@/components/card/VideoCard'
 import {
-  deleteVideoCollection,
-  eraseVideoCollection,
+  deleteFavlist,
   getUserFavlist,
-  getFavlist
+  getFavlist,
+  collectItem
 } from "@/api/collect";
-import {collectImage} from "@/api/image";
 
 export default {
   name: 'Collection',
@@ -122,7 +119,7 @@ export default {
     }
   },
   created() {
-    const myfavlist = localStorage.getItem('myfavlist')
+    /*const myfavlist = localStorage.getItem('myfavlist')
     if (myfavlist !== undefined) {
       const myfavlist1 = JSON.parse(myfavlist)
       this.navList = []
@@ -131,8 +128,7 @@ export default {
       }
     } else {
       this.getUserFavlistWrapper()
-    }
-
+    }*/
     const page = this.$route.query.page
     if (page !== undefined) {
       this.currentPage = parseInt(page)
@@ -143,10 +139,19 @@ export default {
       this.contentType = parseInt(type)
     }
 
-    this.favlistId = this.$route.query.favlistId
-    if (this.favlistId === undefined) {
-      this.$router.push(this.navList[0].path)
+    const favlistId1 = this.$route.query.favlistId
+    if (favlistId1 === undefined) {
+      //this.$router.push(this.navList[0].path)
+      this.getUserFavlistWrapper()
     } else {
+      const myfavlist = localStorage.getItem('myfavlist')
+      const myfavlist1 = JSON.parse(myfavlist)
+      this.navList = []
+      for (const item of myfavlist1) {
+        this.navList.push(item)
+      }
+
+      this.favlistId = favlistId1
       this.getFavlistWrapper(this.favlistId, this.contentType, this.currentPage)
     }
 
@@ -218,14 +223,18 @@ export default {
         }
       })
     },
-    // 移除单个收藏
-    removeCollection() {
-      this.$confirm('确认移除吗?', '提示', {
+    // 移除收藏
+    removeCollection(item) {
+      this.$confirm('确认删除本收藏?', '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
       }).then(() => {
-        deleteVideoCollection(item).then(res => {
+        const jsonData = {}
+        jsonData.contentType = 1001
+        jsonData.contentId = item.imageFileId
+        jsonData.collected = false
+        collectItem(jsonData).then(res => {
           if (res.code === 0) {
             this.$message({
               type: 'success',
@@ -241,15 +250,15 @@ export default {
         })
       })
     },
-    removeAll() {
-      console.log(this.favlistId)
+    // 删除收藏夹
+    removeFavlist() {
       // 移除所有收藏
-      this.$confirm('确认移除所有收藏吗?', '提示', {
+      this.$confirm('确认要删除收藏夹?', '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
       }).then(() => {
-        eraseVideoCollection().then(res => {
+        deleteFavlist(this.favlistId).then(res => {
           if (res.code === 0) {
             this.$message({
               type: 'success',