소스 검색

更新 ImagePost 和 PostAlbum 相关页面和接口

reghao 1 년 전
부모
커밋
4f648551b3

+ 37 - 31
src/api/collect.js

@@ -1,32 +1,12 @@
 import { get, post, delete0 } from '@/utils/request'
 
 const collectApi = {
-  favlistApi: '/api/content/favlist',
-  videoFavlistApi: '/api/content/favlist',
-  deleteAlbumItemApi: '/api/content/album/action',
-  collectItemApi: '/api/content/album/action',
-  userFavlistApi: '/api/content/album/user',
-  postAlbumApi: '/api/content/album'
-}
-
-// 删除收藏夹
-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)
-}
-
-// 获取视频收藏夹内容
-export function getVideoFavlist(favlistId, page) {
-  return get(collectApi.videoFavlistApi + '?favlistId=' + favlistId + '&contentType=1002' + '&page=' + page)
+  updateAlbumScopeApi: '/api/content/post/album/update/scope',
+  updateAlbumCoverApi: '/api/content/post/album/update/cover',
+  updateAlbumNameApi: '/api/content/post/album/update/name',
+  collectItemApi: '/api/content/post/album/action',
+  postAlbumApi: '/api/content/post/album',
+  playlistApi: '/api/content/album/playlist'
 }
 
 // 收藏(取消收藏)内容
@@ -43,7 +23,7 @@ export function getUserAlbums(page) {
   return get(collectApi.postAlbumApi + '/user?pn=' + page)
 }
 
-export function getUserAlbums1(query) {
+export function getPostAlbums(query) {
   return get(collectApi.postAlbumApi + '/user', query)
 }
 
@@ -52,18 +32,44 @@ export function getAlbumItems(page, albumId) {
   return get(collectApi.postAlbumApi + '/item?pn=' + page + '&albumId=' + albumId)
 }
 
-export function getPlaylist(page) {
-  return get(collectApi.postAlbumApi + '/playlist?pn=' + page)
+export function getAlbumItems1(queryInfo) {
+  return get(collectApi.postAlbumApi + '/item', queryInfo)
+}
+
+// 获取用户收藏夹
+export function getUserPlaylist() {
+  return get(collectApi.postAlbumApi + '/user')
 }
 
 export function getAlbumTypes() {
-  return get(collectApi.postAlbumApi + '/types')
+  return get(collectApi.postAlbumApi + '/kv')
 }
 
 export function deleteAlbumItem(data) {
-  return post(collectApi.deleteAlbumItemApi, data)
+  return post(collectApi.collectItemApi, data)
 }
 
 export function createVideoAlbum(data) {
   return post(collectApi.postAlbumApi + '/video/create', data)
 }
+
+export function updateAlbumScope(jsonData) {
+  return post(collectApi.updateAlbumScopeApi, jsonData)
+}
+
+export function updateAlbumName(jsonData) {
+  return post(collectApi.updateAlbumNameApi, jsonData)
+}
+
+export function updateAlbumCover(jsonData) {
+  return post(collectApi.updateAlbumCoverApi, jsonData)
+}
+
+// 获取播放列表
+export function getPlaylist(page) {
+  return get(collectApi.playlistApi + '?pn=' + page)
+}
+
+export function getPlaylistItems(albumId) {
+  return get(collectApi.playlistApi + '/' + albumId)
+}

+ 1 - 4
src/components/card/UserAvatarCard.vue

@@ -113,10 +113,7 @@ export default {
       })
     },
     sendMessage(userId) {
-      this.$notify.info({
-        message: '未实现',
-        duration: 3000
-      })
+      this.$message.info('暂未实现')
     }
   }
 }

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

@@ -66,7 +66,7 @@
               <el-dropdown-item
                 icon="el-icon-collection"
                 class="size"
-                @click.native="goToFavlist"
+                @click.native="goToPlaylist"
               >收藏夹</el-dropdown-item>
               <el-dropdown-item
                 icon="el-icon-s-data"
@@ -284,8 +284,8 @@ export default {
       console.log('帐号注册')
     },
     // ****************************************************************************************************************
-    goToFavlist() {
-      const path = '/post/fav/video'
+    goToPlaylist() {
+      const path = '/post/album'
       if (this.$route.path === path) {
         this.$router.go(0)
         return
@@ -339,11 +339,11 @@ export default {
       this.$router.push('/my/message')
     },
     goToPublish() {
-      if (this.$route.path === '/post/video/publish') {
+      if (this.$route.path === '/post/video/list') {
         this.$router.go(0)
         return
       }
-      this.$router.push('/post/video/publish')
+      this.$router.push('/post/video/list')
     },
     // ************************************************************************
     // 我的考试

+ 1 - 5
src/components/upload/EditArticle.vue

@@ -101,11 +101,7 @@ export default {
       })
     },
     onUpdateArticleTitle() {
-      this.$notify({
-        message: '接口未实现',
-        type: 'warning',
-        duration: 3000
-      })
+      this.$message.info('暂未实现')
     }
   }
 }

+ 26 - 14
src/router/index.js

@@ -27,8 +27,8 @@ const ArticleIndex = () => import('views/home/Article')
 const ArticlePage = () => import('views/home/ArticlePage')
 const MessageStream = () => import('views/home/MessageStream')
 const Search = () => import('views/home/Search')
-const DiscoverIndex = () => import('views/home/Discover')
-const PlaylistIndex = () => import('views/home/Playlist')
+const PostAlbumIndex = () => import('views/home/PostAlbumIndex')
+const PostAlbumView = () => import('views/home/PostAlbumView')
 const VideoList = () => import('views/home/VideoList')
 
 // ********************************************************************************************************************
@@ -89,18 +89,6 @@ const routes = [
         component: MessageStream,
         meta: { needAuth: false }
       },
-      {
-        path: '/playlist',
-        name: 'PlaylistIndex',
-        component: PlaylistIndex,
-        meta: { needAuth: false }
-      },
-      {
-        path: '/playlist/:albumId',
-        name: 'VideoList',
-        component: VideoList,
-        meta: { needAuth: false }
-      },
       {
         path: '/search',
         name: 'search',
@@ -160,6 +148,30 @@ const routes = [
         name: 'ArticlePage',
         component: ArticlePage,
         meta: { needAuth: false }
+      },
+      {
+        path: '/album',
+        name: 'PostAlbumIndex',
+        component: PostAlbumIndex,
+        meta: { needAuth: false }
+      },
+      {
+        path: '/album/:albumId',
+        name: 'PostAlbumView',
+        component: PostAlbumView,
+        meta: { needAuth: true }
+      },
+      {
+        path: '/playlist',
+        name: 'PostAlbumIndex',
+        component: PostAlbumIndex,
+        meta: { needAuth: false }
+      },
+      {
+        path: '/playlist/:albumId',
+        name: 'VideoList',
+        component: VideoList,
+        meta: { needAuth: false }
       }
     ]
   }

+ 6 - 12
src/router/user.js

@@ -1,18 +1,18 @@
 const Index = () => import('views/Index')
 // ********************************************************************************************************************
 // 用户前台主页
+// ********************************************************************************************************************
 const UserHome = () => import('views/user/Home')
 const UserVideo = () => import('views/user/Home')
 const UserImage = () => import('views/user/Home')
-const UserAudio = () => import('views/user/Home')
-const UserArticle = () => import('views/user/Home')
+const UserAlbum = () => import('views/user/Home')
 const UserRelation = () => import('views/user/UserRelation')
 
 export default {
   path: '/user',
   name: 'Index',
   component: Index,
-  meta: { needAuth: true },
+  meta: { needAuth: false },
   children: [
     {
       path: '',
@@ -39,15 +39,9 @@ export default {
       meta: { needAuth: false }
     },
     {
-      path: '/user/:id/audio',
-      name: 'UserAudio',
-      component: UserAudio,
-      meta: { needAuth: false }
-    },
-    {
-      path: '/user/:id/article',
-      name: 'UserArticle',
-      component: UserArticle,
+      path: '/user/:id/album',
+      name: 'UserAlbum',
+      component: UserAlbum,
       meta: { needAuth: false }
     },
     {

+ 19 - 26
src/router/vod.js

@@ -1,19 +1,18 @@
 // 稿件
 const Post = () => import('views/post/Post')
 const History = () => import('views/post/History')
-const FavVideo = () => import('views/post/FavlistVideo')
-const FavImage = () => import('views/post/FavlistImage')
+const PostAlbum = () => import('views/post/PostAlbum')
 const PostAnalysis = () => import('views/post/PostAnalysis')
-const PostPublishVideo = () => import('components/upload/PublishVideo')
 const PostPublishFile = () => import('components/upload/PublishFile')
-const UserPostVideo = () => import('views/post/VideoPost')
-const PostEditVideo = () => import('components/upload/EditVideo')
+const VideoPostList = () => import('views/post/VideoPost')
+const VideoPostPublish = () => import('views/post/VideoPostPublish')
+const VideoPostEdit = () => import('views/post/VideoPostEdit')
 const PostPublishAudio = () => import('components/upload/PublishAudio')
 const UserPostAudio = () => import('views/post/AudioPost')
 const PostEditAudio = () => import('components/upload/EditAudio')
 const PostPublishAlbum = () => import('components/upload/PublishImage')
 const UserPostImage = () => import('views/post/ImagePost')
-const PostEditImage = () => import('components/upload/EditImage')
+const ImagePostEdit = () => import('views/post/ImagePostEdit')
 const PostPublishArticle = () => import('components/upload/PublishArticle')
 const UserPostArticle = () => import('views/post/ArticlePost')
 const PostEditArticle = () => import('components/upload/EditArticle')
@@ -77,19 +76,19 @@ export default {
     {
       path: '/post/video/publish',
       name: '发布视频',
-      component: PostPublishVideo,
+      component: VideoPostPublish,
       meta: { needAuth: true }
     },
     {
       path: '/post/video/list',
       name: '视频列表',
-      component: UserPostVideo,
+      component: VideoPostList,
       meta: { needAuth: true }
     },
     {
       path: '/post/list/video',
       name: '视频稿件',
-      component: UserPostVideo,
+      component: VideoPostList,
       meta: { needAuth: true }
     },
     {
@@ -99,19 +98,19 @@ export default {
       meta: { needAuth: true }
     },
     {
-      path: '/post/edit/video/:videoId',
-      name: 'PostEditVideo',
-      component: PostEditVideo,
+      path: '/post/video/edit/:videoId',
+      name: 'VideoPostEdit',
+      component: VideoPostEdit,
       meta: { needAuth: true }
     },
     {
       path: '/post/publish/video',
       name: '发布视频',
-      component: PostPublishVideo,
+      component: VideoPostPublish,
       meta: { needAuth: true }
     },
     {
-      path: '/post/video/history',
+      path: '/post/history',
       name: '历史记录',
       component: History,
       meta: { needAuth: true }
@@ -130,9 +129,9 @@ export default {
       meta: { needAuth: true }
     },
     {
-      path: '/post/edit/album/:albumId',
-      name: 'PostEditImage',
-      component: PostEditImage,
+      path: '/post/image/edit/:albumId',
+      name: 'ImagePostEdit',
+      component: ImagePostEdit,
       meta: { needAuth: true }
     },
     {
@@ -149,15 +148,9 @@ export default {
     },
     // ********************************************************************************************************************
     {
-      path: '/post/fav/video',
-      name: 'FavVideo',
-      component: FavVideo,
-      meta: { needAuth: true }
-    },
-    {
-      path: '/post/fav/image/:albumId',
-      name: 'FavImage',
-      component: FavImage,
+      path: '/post/album',
+      name: 'PostAlbum',
+      component: PostAlbum,
       meta: { needAuth: true }
     }
   ]

+ 1 - 5
src/views/home/Article.vue

@@ -137,11 +137,7 @@ export default {
       })
     },
     refresh() {
-      this.$notify({
-        message: '接口未实现',
-        type: 'info',
-        duration: 3000
-      })
+      this.$message.info('暂未实现')
     }
   }
 }

+ 1 - 5
src/views/home/ArticlePage.vue

@@ -107,11 +107,7 @@ export default {
   },
   methods: {
     collectItem() {
-      this.$notify({
-        message: '接口未实现',
-        type: 'info',
-        duration: 3000
-      })
+      this.$message.info('暂未实现')
       if (this.collected) {
         console.log('取消收藏')
         this.collected = false

+ 1 - 6
src/views/home/AudioPage.vue

@@ -93,7 +93,6 @@ export default {
             this.user = resp.data
           }
         })
-      } else {
       }
     })
   },
@@ -133,11 +132,7 @@ export default {
         this.collected = true
         this.collectedIcon = 'el-icon-star-on'
       }
-      this.$notify({
-        message: '接口未实现',
-        type: 'info',
-        duration: 3000
-      })
+      this.$message.info('暂未实现')
     }
   }
 }

+ 0 - 64
src/views/home/Playlist.vue

@@ -1,64 +0,0 @@
-<template>
-  <el-row id="movie-list">
-    <el-col v-for="(item, index) in dataList" :key="index" :md="1" :sm="3" :xs="3">
-      <router-link target="_blank" :to="`/playlist/` + item.albumId">
-        <el-avatar>
-          <el-image :src="item.coverUrl" />
-        </el-avatar>
-      </router-link>
-    </el-col>
-  </el-row>
-</template>
-
-<script>
-import { getPlaylist } from '@/api/collect'
-
-export default {
-  name: 'Playlist',
-  data() {
-    return {
-      // 屏幕宽度, 为了控制分页条的大小
-      screenWidth: document.body.clientWidth,
-      currentPage: 1,
-      dataList: [],
-      showEmpty: true
-    }
-  },
-  created() {
-    document.title = '播放列表'
-    this.currentPage = 1
-
-    getPlaylist(this.currentPage).then(resp => {
-      if (resp.code === 0) {
-        this.dataList = resp.data
-      }
-    })
-  },
-  mounted() {
-    // 当窗口宽度改变时获取屏幕宽度
-    window.onresize = () => {
-      return () => {
-        window.screenWidth = document.body.clientWidth
-        this.screenWidth = window.screenWidth
-      }
-    }
-  },
-  methods: {
-    handleCurrentChange(currentPage) {
-      this.currentPage = currentPage
-      this.$store.commit('updatePage', currentPage)
-      this.$store.dispatch('getPageBean')
-      // 回到顶部
-      scrollTo(0, 0)
-    }
-  }
-}
-</script>
-
-<style scoped>
-#movie-list {
-  padding-top: 10px;
-  padding-left: 3%;
-  padding-right: 3%;
-}
-</style>

+ 218 - 0
src/views/home/PostAlbumIndex.vue

@@ -0,0 +1,218 @@
+<template>
+  <el-row style="padding-right: 5px; padding-left: 5px; padding-top: 10px; padding-bottom: 5px">
+    <el-col :md="24">
+      <div v-if="dataList.length === 0" align="center">
+        <img src="@/assets/img/icon/not-result.png">
+        <div>还没有数据呢~</div>
+      </div>
+      <div v-if="dataList.length !== 0">
+        <el-col
+          v-for="(item, index) in dataList"
+          :key="index"
+          :md="6"
+          :sm="12"
+          :xs="12"
+          style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px"
+        >
+          <el-card :body-style="{ padding: '0px' }" class="card">
+            <div class="imgs" style="cursor: pointer" :title="item.albumName">
+              <router-link target="_blank" :to="`/playlist/${item.albumId}`">
+                <el-image
+                  lazy
+                  fit="cover"
+                  class="coverImg"
+                  :src="item.coverUrl"
+                />
+                <span style="position: absolute; top: 0; left: 60%; color:white"> {{ item.duration }} </span>
+                <span style="position: absolute; bottom: 0; left: 0; color:white">
+                  <i v-if="item.horizontal" class="el-icon-monitor" />
+                  <i v-else class="el-icon-mobile-phone" />
+                </span>
+                <span style="position: absolute; bottom: 0; left: 10%; color:white">
+                  <i class="el-icon-video-play">{{ getVisited(item.view) }}</i>
+                </span>
+                <span style="position: absolute; bottom: 0; left: 40%; color:white">
+                  <i class="el-icon-s-comment">{{ getVisited(item.comment) }}</i>
+                </span>
+              </router-link>
+            </div>
+            <div style="padding: 14px">
+              <router-link style="text-decoration-line: none" target="_blank" :to="`/playlist/${item.albumId}`">
+                <span style="left: 0;margin-bottom: 0px;color: black;">{{ item.albumName | ellipsis }}</span>
+              </router-link>
+            </div>
+            <!--              <div style="padding: 14px">
+                            <span style="left: 0;margin-bottom: 0px;color: black;">
+                              <router-link target="_blank" :to="`/user/${item.user.userId}`">
+                                <i class="el-icon-user"> {{ item.user.screenName | ellipsisUsername }} </i></router-link> • {{ item.pubDateStr }}
+                            </span>
+                          </div>-->
+          </el-card>
+        </el-col>
+        <el-pagination
+          :small="screenWidth <= 768"
+          hide-on-single-page
+          layout="prev, pager, next"
+          :page-size="pageSize"
+          :current-page="currentPage"
+          :total="totalSize"
+          @current-change="handleCurrentChange"
+          @prev-click="handleCurrentChange"
+          @next-click="handleCurrentChange"
+        />
+      </div>
+    </el-col>
+  </el-row>
+</template>
+
+<script>
+import { getPlaylist, getUserAlbums } from '@/api/collect'
+import { handleVisited } from '@/assets/js/utils'
+
+export default {
+  name: 'PostAlbumIndex',
+  filters: {
+    ellipsis(value) {
+      if (!value) return ''
+      const max = 20
+      if (value.length > max) {
+        return value.slice(0, max) + '...'
+      }
+      return value
+    },
+    ellipsisUsername(value) {
+      if (!value) return ''
+      const max = 10
+      if (value.length > max) {
+        return value.slice(0, max) + '...'
+      }
+      return value
+    }
+  },
+  data() {
+    return {
+      // 屏幕宽度, 为了控制分页条的大小
+      screenWidth: document.body.clientWidth,
+      currentPage: 1,
+      pageSize: 12,
+      totalSize: 0,
+      dataList: [],
+      queryInfo: {
+        postType: null,
+        pn: 1
+      },
+      showEmpty: true
+    }
+  },
+  created() {
+    document.title = '播放列表'
+    getPlaylist(this.currentPage).then(resp => {
+      if (resp.code === 0) {
+        this.dataList = resp.data
+      }
+    })
+  },
+  mounted() {
+    // 当窗口宽度改变时获取屏幕宽度
+    window.onresize = () => {
+      return () => {
+        window.screenWidth = document.body.clientWidth
+        this.screenWidth = window.screenWidth
+      }
+    }
+  },
+  methods: {
+    handleCurrentChange(pageNumber) {
+      this.currentPage = pageNumber
+      this.getData()
+      // 回到顶部
+      scrollTo(0, 0)
+    },
+    getData() {
+      this.dataList = []
+      getUserAlbums(this.currentPage).then(resp => {
+        if (resp.code === 0) {
+          this.dataList = resp.data.list
+          this.totalSize = resp.data.totalSize
+        } else {
+          this.$notify({
+            title: '提示',
+            message: resp.msg,
+            type: 'warning',
+            duration: 3000
+          })
+        }
+      })
+    },
+    getVisited(visited) {
+      return handleVisited(visited)
+    }
+  }
+}
+</script>
+
+<style scoped>
+/*处于手机屏幕时*/
+@media screen and (max-width: 768px){
+  .movie-list {
+    padding-top: 8px;
+    padding-left: 0.5%;
+    padding-right: 0.5%;
+  }
+
+  .coverImg {
+    height: 120px !important;
+  }
+}
+
+.movie-list {
+  padding-top: 15px;
+  padding-left: 6%;
+  padding-right: 6%;
+}
+
+.coverImg {
+  width: 100%;
+  height: 130px;
+  display: block;
+}
+
+.card {
+  margin-bottom: 20px;
+  transition: all 0.6s; /*所有属性变化在0.6秒内执行动画*/
+}
+
+.imgs {
+  position: relative;
+}
+
+#collection-list {
+  padding-left: 6%;
+  padding-right: 6%;
+  padding-top: 30px;
+}
+
+.bread {
+  font-size: 15px;
+}
+
+.movie-list {
+  padding-top: 15px;
+}
+
+.reslut {
+  color: red;
+}
+
+.not-result {
+  padding-top: 100px;
+  padding-bottom: 100px;
+  text-align: center;
+}
+
+.remove-slot {
+  position: absolute;
+  right: 5px;
+  bottom: 2px;
+}
+</style>

+ 51 - 60
src/views/post/FavlistImage.vue → src/views/home/PostAlbumView.vue

@@ -3,15 +3,17 @@
     <el-row style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px">
       <el-card class="box-card" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px">
         <div slot="header" class="clearfix">
-          <span>编辑收藏夹 - <span style="color: blue">{{albumName}}</span></span>
-          <el-button style="float: right; padding: 10px" type="text" @click="onReturnAlbum">返回收藏夹</el-button>
+          <span>收藏夹 - <span style="color: blue">{{ albumName }}</span></span>
         </div>
-        <div class="text item" />
       </el-card>
     </el-row>
     <el-row style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px">
       <el-col :md="24">
-        <div>
+        <div v-if="dataList.length === 0" align="center">
+          <img src="@/assets/img/icon/not-result.png">
+          <div>还没有收藏呢~</div>
+        </div>
+        <div v-if="dataList.length !== 0">
           <el-col
             v-for="(item, index) in dataList"
             :key="index"
@@ -26,7 +28,7 @@
                   lazy
                   fit="cover"
                   class="coverImg"
-                  :src="item.coverUrl"
+                  :src="item.thumbnailUrl"
                   @click="showImages(index)"
                 />
               </div>
@@ -51,35 +53,17 @@
                   </span>
                 </router-link>
               </div>
-              <div style="padding: 14px">
+              <div v-if="postType === 2" style="padding: 14px">
                 <router-link style="text-decoration-line: none" target="_blank" :to="`/video/${item.videoId}`">
                   <span style="left: 0;margin-bottom: 0px;color: black;">{{ item.title | ellipsis }}</span>
                 </router-link>
               </div>
-              <div style="padding: 14px">
+              <div v-if="postType === 2" style="padding: 14px">
                 <span style="left: 0;margin-bottom: 0px;color: black;">
                   <router-link target="_blank" :to="`/user/${item.user.userId}`">
                     <i class="el-icon-user"> {{ item.user.screenName | ellipsisUsername }} </i></router-link> • {{ item.pubDateStr }}
                 </span>
               </div>
-              <div style="padding: 14px;">
-                <el-tooltip class="item" effect="dark" content="删除图片" placement="top-end">
-                  <el-button
-                    size="mini"
-                    type="danger"
-                    class="el-icon-delete"
-                    @click="onDeleteImage(image.imageFileId)"
-                  />
-                </el-tooltip>
-                <el-tooltip class="item" effect="dark" content="设为封面" placement="top-end">
-                  <el-button
-                    size="mini"
-                    type="warning"
-                    class="el-icon-picture-outline"
-                    @click="onSetCover(image.imageFileId)"
-                  />
-                </el-tooltip>
-              </div>
             </el-card>
           </el-col>
           <el-pagination
@@ -101,14 +85,13 @@
 
 <script>
 import {
-  deleteFavlist,
-  getFavlist,
   collectItem, getAlbumItems
 } from '@/api/collect'
 import { handleVisited } from '@/assets/js/utils'
+import { getUserInfo } from '@/api/user'
 
 export default {
-  name: 'FavlistImage',
+  name: 'PostAlbumView',
   filters: {
     ellipsis(value) {
       if (!value) return ''
@@ -139,11 +122,12 @@ export default {
       contentType: 1001,
       albumId: null,
       albumName: null,
-      postType: null
+      postType: null,
+      user: null
     }
   },
   created() {
-    document.title = '编辑收藏夹'
+    document.title = '收藏夹'
     this.albumId = this.$route.params.albumId
     this.getAlbumItemsWrapper()
   },
@@ -163,11 +147,18 @@ export default {
           this.postType = respData.postType
           this.dataList = respData.pageList.list
           this.totalSize = respData.pageList.totalSize
+
+          getUserInfo(respData.createBy).then(resp => {
+            if (resp.code === 0) {
+              this.user = resp.data
+              document.title = this.user.screenName + '的收藏夹'
+            }
+          })
         }
       })
     },
     onReturnAlbum() {
-      this.$router.push('/post/fav/video')
+      this.$router.push('/post/album')
     },
     showImages(index) {
       const imageUrls = []
@@ -188,17 +179,42 @@ export default {
     getVisited(visited) {
       return handleVisited(visited)
     },
+    onSetCover(item) {
+      const jsonData = {}
+      jsonData.albumId = this.albumId
+      if (this.postType === 1) {
+        jsonData.postId = item.imageFileId
+      } else if (this.postType === 2) {
+        jsonData.postId = item.videoId
+      }
+
+      jsonData.action = 3
+      collectItem(jsonData).then(res => {
+        if (res.code === 0) {
+          this.$message({
+            type: 'success',
+            message: '封面已更新!'
+          })
+          this.$router.go(0)
+        }
+      })
+    },
     // 移除收藏
-    removeCollection(item) {
+    onDeleteItem(item) {
       this.$confirm('确认删除本收藏?', '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
       }).then(() => {
         const jsonData = {}
-        jsonData.contentType = 1001
-        jsonData.contentId = item.imageFileId
-        jsonData.collected = false
+        jsonData.albumId = this.albumId
+        if (this.postType === 1) {
+          jsonData.postId = item.imageFileId
+        } else if (this.postType === 2) {
+          jsonData.postId = item.videoId
+        }
+
+        jsonData.action = 2
         collectItem(jsonData).then(res => {
           if (res.code === 0) {
             this.$message({
@@ -214,31 +230,6 @@ export default {
           message: '已取消'
         })
       })
-    },
-    // 删除收藏夹
-    removeFavlist() {
-      // 移除所有收藏
-      this.$confirm('确认要删除收藏夹?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        deleteFavlist(this.favlistId).then(res => {
-          if (res.code === 0) {
-            this.$message({
-              type: 'success',
-              message: '收藏夹已清空!'
-            })
-
-            this.$router.go(0)
-          }
-        })
-      }).catch(() => {
-        this.$message({
-          type: 'info',
-          message: '已取消'
-        })
-      })
     }
   }
 }

+ 1 - 4
src/views/home/Timeline.vue

@@ -104,10 +104,7 @@ export default {
       }
     },
     statusTimelineWrapper(nextId) {
-      this.$notify.info({
-        message: '状态 timeline 未实现',
-        duration: 3000
-      })
+      this.$message.info('暂未实现')
     },
     videoTimelineWrapper(nextId) {
       videoTimeline(nextId).then(resp => {

+ 10 - 4
src/views/home/VideoList.vue

@@ -232,7 +232,7 @@ import flvjs from 'flv.js'
 import DPlayer from 'dplayer'
 
 import { videoUrl, similarVideo, videoInfo, videoErrorReport, downloadVideo, cacheBiliVideo } from '@/api/video'
-import { collectItem } from '@/api/collect'
+import { collectItem, getAlbumItems, getPlaylistItems } from '@/api/collect'
 import { getUserInfo } from '@/api/user'
 import { submitAccessCode } from '@/api/content'
 import { getAccessToken } from '@/utils/auth'
@@ -323,10 +323,16 @@ export default {
   },
   created() {
     const albumId = this.$route.params.albumId
-    console.log(albumId)
     document.title = '播放列表'
+    getPlaylistItems(albumId).then(resp => {
+      if (resp.code === 0) {
+        const respData = resp.data
+        console.log(respData.list)
+        this.playList.list = respData.list
+      }
+    })
 
-    /* const videoId = this.$route.params.id
+    const videoId = '2eJOwNyNMg'
     this.accessCodeForm.contentId = videoId
     this.getVideoInfo(videoId)
 
@@ -337,7 +343,7 @@ export default {
       this.calculateCurrent(videoId)
     } else {
       this.getSimilarVideos(videoId)
-    }*/
+    }
   },
   mounted() {
     window.addEventListener('beforeunload', this.handleBeforeUnload)

+ 3 - 2
src/views/home/VideoPage.vue

@@ -240,7 +240,7 @@ import UserAvatarCard from '@/components/card/UserAvatarCard'
 import comment from '@/components/comment'
 
 import { similarVideo, videoInfo, videoErrorReport, downloadVideo, getShortUrl } from '@/api/video'
-import { collectItem, createVideoAlbum, getUserFavlist } from '@/api/collect'
+import { collectItem, createVideoAlbum, getUserPlaylist } from '@/api/collect'
 import { getUserInfo } from '@/api/user'
 import { publishComment, getComment } from '@/api/comment'
 import { getAuthedUser } from '@/utils/auth'
@@ -443,13 +443,14 @@ export default {
     // 用户点击收藏
     collection(videoId) {
       this.showPlaylistDialog = true
-      getUserFavlist().then(resp => {
+      getUserPlaylist().then(resp => {
         if (resp.code === 0) {
           this.playlist = resp.data.list
         }
       })
     },
     addToPlaylist(row) {
+      this.showPlaylistDialog = false
       const jsonData = {}
       jsonData.albumId = row.albumId
       jsonData.postId = this.videoId

+ 0 - 333
src/views/post/FavlistVideo.vue

@@ -1,333 +0,0 @@
-<template>
-  <el-container>
-    <el-header height="220">
-      <el-row style="margin-top: 10px">
-        <el-select
-          v-model="queryInfo.postType"
-          clearable
-          placeholder="稿件类型"
-          style="margin-left: 5px"
-          @change="onSelectChange"
-        >
-          <el-option
-            v-for="item in allPostTypes"
-            :key="item.label"
-            :label="item.label"
-            :value="item.value"
-          />
-        </el-select>
-<!--        <el-button type="plain" icon="el-icon-plus" style="margin-left: 5px" @click="createAlbumDiaglog = true">创建合集</el-button>-->
-      </el-row>
-    </el-header>
-    <el-main>
-      <el-table
-        :data="dataList"
-        border
-        style="width: 100%"
-      >
-        <el-table-column
-          fixed="left"
-          label="No"
-          type="index"
-        />
-        <el-table-column
-          prop="coverUrl"
-          label="相册封面"
-          width="90"
-        >
-          <template slot-scope="scope">
-            <div v-if="scope.row.coverUrl">
-              <el-image
-                lazy
-                fit="cover"
-                class="coverImg"
-                :src="scope.row.coverUrl"
-              />
-            </div>
-            <div v-else>
-              <!--              <span class="el-icon-plus"></span>-->
-              <el-image
-                lazy
-                fit="cover"
-                class="coverImg"
-                src="/img/icon/not-result.png"
-              />
-            </div>
-          </template>
-        </el-table-column>
-        <el-table-column
-          prop="createdAt"
-          label="发布时间"
-        />
-        <el-table-column
-          prop="albumName"
-          label="相册名字"
-          width="180"
-        >
-          <template slot-scope="scope">
-            <router-link style="text-decoration-line: none" target="_blank" :to="`/image/album/${scope.row.albumId}`">
-              <span>{{ scope.row.albumName }}</span>
-            </router-link>
-          </template>
-        </el-table-column>
-        <el-table-column
-          prop="postType"
-          label="合集类型"
-        />
-        <el-table-column
-          prop="scope"
-          label="可见范围"
-        >
-          <template slot-scope="scope">
-            <el-tooltip class="item" effect="dark" content="点击修改可见范围" placement="top-end">
-              <el-button
-                v-if="scope.row.scope === 1"
-                size="mini"
-                @click="handleScope(scope.$index, scope.row)"
-              >本人可见</el-button>
-              <el-button
-                v-else-if="scope.row.scope === 2"
-                size="mini"
-                type="success"
-                @click="handleScope(scope.$index, scope.row)"
-              >所有人可见</el-button>
-              <el-button
-                v-else-if="scope.row.scope === 3"
-                size="mini"
-                type="warning"
-                @click="handleScope(scope.$index, scope.row)"
-              >VIP 可见</el-button>
-              <el-button
-                v-else
-                size="mini"
-                type="danger"
-                @click="handleScope(scope.$index, scope.row)"
-              >验证码可见</el-button>
-            </el-tooltip>
-          </template>
-        </el-table-column>
-        <el-table-column label="操作">
-          <template slot-scope="scope">
-            <el-button
-              size="mini"
-              @click="handleEdit(scope.$index, scope.row)"
-            >编辑</el-button>
-            <el-button
-              size="mini"
-              type="danger"
-              @click="handleDelete(scope.$index, scope.row)"
-            >删除</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-      <el-pagination
-        hide-on-single-page
-        :small="screenWidth <= 768"
-        layout="prev, pager, next"
-        :page-size="pageSize"
-        :current-page="currentPage"
-        :total="totalSize"
-        @current-change="handleCurrentChange"
-        @prev-click="handleCurrentChange"
-        @next-click="handleCurrentChange"
-      />
-    </el-main>
-
-    <!-- 创建相册对话框 -->
-    <el-dialog
-      append-to-body
-      :visible.sync="createAlbumDiaglog"
-      width="30%"
-      center
-    >
-    </el-dialog>
-
-    <!-- 修改可见范围对话框 -->
-    <el-dialog
-      append-to-body
-      :visible.sync="showEditScopeDialog"
-      width="30%"
-      center
-    >
-      <el-card class="box-card">
-        <div slot="header" class="clearfix">
-          <span>修改相册可见范围</span>
-          <el-button style="float: right; padding: 3px 0" type="text" @click="onUpdateScope">更新</el-button>
-        </div>
-        <div class="text item">
-          <el-select v-model="form.scope" placeholder="选择可见范围">
-            <el-option label="本人可见" value="1" />
-            <el-option label="所有人可见" value="2" />
-            <el-option label="VIP 可见" value="3" />
-            <el-option label="验证码可见" value="4" />
-          </el-select>
-        </div>
-      </el-card>
-    </el-dialog>
-  </el-container>
-</template>
-
-<script>
-import { getAlbumTypes, getUserAlbums, getUserAlbums1 } from '@/api/collect'
-import { createAlbum, deleteAlbum, updateAlbumScope } from '@/api/image'
-
-export default {
-  name: 'PostAlbum',
-  data() {
-    return {
-      allPostTypes: [],
-      queryInfo: {
-        postType: null,
-        pn: 1
-      },
-      // 屏幕宽度, 为了控制分页条的大小
-      screenWidth: document.body.clientWidth,
-      currentPage: 1,
-      pageSize: 12,
-      totalSize: 0,
-      dataList: [],
-      // **********************************************************************
-      showEditScopeDialog: false,
-      form: {
-        albumId: null,
-        postType: '1',
-        scope: '1'
-      },
-      createAlbumDiaglog: false
-    }
-  },
-  created() {
-    document.title = '稿件合集'
-    this.getData()
-  },
-  methods: {
-    onSelectChange() {
-      getUserAlbums1(this.queryInfo).then(resp => {
-        if (resp.code === 0) {
-          this.dataList = resp.data.list
-          this.totalSize = resp.data.totalSize
-        }
-      })
-    },
-    handleCurrentChange(pageNumber) {
-      this.currentPage = pageNumber
-      this.getData()
-      // 回到顶部
-      scrollTo(0, 0)
-    },
-    getData() {
-      getAlbumTypes().then(resp => {
-        if (resp.code === 0) {
-          this.allPostTypes = resp.data
-        }
-      })
-
-      this.dataList = []
-      getUserAlbums(this.currentPage).then(resp => {
-        if (resp.code === 0) {
-          this.dataList = resp.data.list
-          this.totalSize = resp.data.totalSize
-        } else {
-          this.$notify({
-            title: '提示',
-            message: resp.msg,
-            type: 'warning',
-            duration: 3000
-          })
-        }
-      })
-    },
-    handleScope(index, row) {
-      this.form.albumId = row.albumId
-      this.form.scope = '' + row.scope
-      this.showEditScopeDialog = true
-    },
-    handleEdit(index, row) {
-      const path = '/post/fav/image/' + row.albumId
-      this.$router.push(path)
-    },
-    handleDelete(index, row) {
-      this.$confirm('确定要删除 ' + row.albumName + ' 相册?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        deleteAlbum(row.albumId).then(res => {
-          if (res.code === 0) {
-            this.$notify({
-              title: '相册稿件已删除',
-              type: 'warning',
-              duration: 3000
-            })
-            // this.$router.go(0)
-          }
-        })
-      }).catch(() => {
-        this.$message({
-          type: 'info',
-          message: '已取消'
-        })
-      })
-    },
-    onUpdateScope() {
-      this.showEditScopeDialog = false
-      updateAlbumScope(this.form).then(res => {
-        if (res.code === 0) {
-          this.$notify({
-            title: '提示',
-            message: res.msg,
-            type: 'warning',
-            duration: 3000
-          })
-        } else {
-          this.$notify({
-            title: '提示',
-            message: res.msg,
-            type: 'warning',
-            duration: 3000
-          })
-        }
-      }).catch(error => {
-        this.$notify({
-          title: '提示',
-          message: error.message,
-          type: 'warning',
-          duration: 3000
-        })
-      })
-    }
-  }
-}
-</script>
-
-<style>
-/*处于手机屏幕时*/
-@media screen and (max-width: 768px) {
-  .tit {
-    font-weight: 600;
-    font-size: 12px;
-    height: 32px;
-  }
-  .time {
-    font-size: 10px;
-    color: #999;
-  }
-  .num {
-    font-size: 9px;
-    padding-top: 3px;
-  }
-  .bottom {
-    margin-top: 2px;
-    line-height: 7px;
-  }
-  .coverImg {
-    height: 120px !important;
-  }
-}
-
-.coverImg {
-  width: 100%;
-  height: 90px;
-  display: block;
-}
-</style>

+ 23 - 56
src/views/post/ImagePost.vue

@@ -56,50 +56,40 @@
           label="可见范围"
         >
           <template slot-scope="scope">
-            <el-tooltip class="item" effect="dark" content="点击修改可见范围" placement="top-end">
-              <el-button
-                v-if="scope.row.scope === 1"
-                size="mini"
-                @click="handleScope(scope.$index, scope.row)"
-              >本人可见</el-button>
-              <el-button
-                v-else-if="scope.row.scope === 2"
-                size="mini"
-                type="success"
-                @click="handleScope(scope.$index, scope.row)"
-              >所有人可见</el-button>
-              <el-button
-                v-else-if="scope.row.scope === 3"
-                size="mini"
-                type="warning"
-                @click="handleScope(scope.$index, scope.row)"
-              >VIP 可见</el-button>
-              <el-button
-                v-else
-                size="mini"
-                type="danger"
-                @click="handleScope(scope.$index, scope.row)"
-              >验证码可见</el-button>
-            </el-tooltip>
+            <el-tag
+              v-if="scope.row.scope === 1"
+              size="mini"
+            >本人可见</el-tag>
+            <el-tag
+              v-else-if="scope.row.scope === 2"
+              size="mini"
+              type="success"
+            >所有人可见</el-tag>
+            <el-tag
+              v-else-if="scope.row.scope === 3"
+              size="mini"
+              type="warning"
+            >VIP 可见</el-tag>
+            <el-tag
+              v-else
+              size="mini"
+              type="danger"
+            >验证码可见</el-tag>
           </template>
         </el-table-column>
         <el-table-column label="操作">
           <template slot-scope="scope">
             <el-button
               size="mini"
+              icon="el-icon-plus"
               @click="handleEdit(scope.$index, scope.row)"
-            >编辑</el-button>
-            <el-button
-              size="mini"
-              type="danger"
-              @click="handleDelete(scope.$index, scope.row)"
-            >删除</el-button>
+            >添加图片</el-button>
           </template>
         </el-table-column>
       </el-table>
       <el-pagination
-        background
         :small="screenWidth <= 768"
+        hide-on-single-page
         layout="prev, pager, next"
         :page-size="pageSize"
         :current-page="currentPage"
@@ -233,32 +223,9 @@ export default {
       this.showEditScopeDialog = true
     },
     handleEdit(index, row) {
-      const path = '/post/edit/album/' + row.albumId
+      const path = '/post/image/edit/' + row.albumId
       this.$router.push(path)
     },
-    handleDelete(index, row) {
-      this.$confirm('确定要删除 ' + row.albumName + ' 相册?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        deleteAlbum(row.albumId).then(res => {
-          if (res.code === 0) {
-            this.$notify({
-              title: '相册稿件已删除',
-              type: 'warning',
-              duration: 3000
-            })
-            // this.$router.go(0)
-          }
-        })
-      }).catch(() => {
-        this.$message({
-          type: 'info',
-          message: '已取消'
-        })
-      })
-    },
     onCreateAlbum() {
       this.createAlbumDiaglog = false
       createAlbum(this.form).then(res => {

+ 3 - 105
src/components/upload/EditImage.vue → src/views/post/ImagePostEdit.vue

@@ -4,7 +4,7 @@
       <el-card class="box-card" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px">
         <div slot="header" class="clearfix">
           <span>添加图片</span>
-          <el-button style="float: right; padding: 10px" type="text" @click="onReturnAlbum">返回相册稿件列表</el-button>
+          <el-button style="float: right; padding: 10px" type="text" @click="onReturnAlbum">返回图片稿件列表</el-button>
         </div>
         <div class="text item">
           <el-upload
@@ -48,24 +48,6 @@
                   @click="showImages(index)"
                 />
               </div>
-              <div style="padding: 14px;">
-                <el-tooltip class="item" effect="dark" content="删除图片" placement="top-end">
-                  <el-button
-                    size="mini"
-                    type="danger"
-                    class="el-icon-delete"
-                    @click="onDeleteImage(image.imageFileId)"
-                  />
-                </el-tooltip>
-                <el-tooltip class="item" effect="dark" content="设为封面" placement="top-end">
-                  <el-button
-                    size="mini"
-                    type="warning"
-                    class="el-icon-picture-outline"
-                    @click="onSetCover(image.imageFileId)"
-                  />
-                </el-tooltip>
-              </div>
             </el-card>
           </el-col>
           <el-pagination
@@ -86,12 +68,12 @@
 </template>
 
 <script>
-import { getAlbumImage, deleteAlbumImage, addAlbumImage, updateAlbumCover } from '@/api/image'
+import { getAlbumImage, addAlbumImage } from '@/api/image'
 import { getPhotoChannelInfo } from '@/api/file'
 
 var imageFileMap = new Map()
 export default {
-  name: 'EditImage',
+  name: 'ImagePostEdit',
   data() {
     return {
       actionUrl: process.env.VUE_APP_OSS_URL,
@@ -173,7 +155,6 @@ export default {
     },
     /** *********************************************************************/
     handleBeforeUpload(file) {
-      const fileType = file.type
       var isJPG = false
       if (file.type === 'image/jpeg' || file.type === 'image/webp' ||
         file.type === 'image/gif' || file.type === 'image/png') {
@@ -261,89 +242,6 @@ export default {
           keyboard: true
         }
       })
-    },
-    onDeleteImage(imageFileId) {
-      this.$confirm('确定要删除图片?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        deleteAlbumImage(imageFileId).then(res => {
-          if (res.code === 0) {
-            this.$notify({
-              title: '图片已从相册中删除',
-              type: 'info',
-              duration: 3000
-            })
-            this.$router.go(0)
-          }
-        })
-      }).catch(() => {
-        this.$message({
-          type: 'info',
-          message: '已取消'
-        })
-      })
-    },
-    onSetCover(imageFileId) {
-      const jsonData = {}
-      jsonData.albumId = this.data.albumId
-      jsonData.imageFileId = imageFileId
-      updateAlbumCover(jsonData).then(resp => {
-        if (resp.code === 0) {
-          this.$notify({
-            title: '成功',
-            type: 'info',
-            duration: 1000
-          })
-        } else {
-          this.$notify({
-            title: '失败',
-            message: resp.msg,
-            type: 'warning',
-            duration: 3000
-          })
-        }
-      }).catch(error => {
-        this.$notify.error({
-          title: '错误',
-          message: error.message,
-          type: 'error',
-          duration: 3000
-        })
-      })
-    },
-    onReturnAlbum() {
-      this.$router.push('/post/image/list')
-    },
-    onAddImages() {
-      const jsonData = {}
-      jsonData.albumId = this.data.albumId
-      jsonData.imageFileIds = Array.from(imageFileMap.values())
-      addAlbumImage(jsonData).then(resp => {
-        if (resp.code === 0) {
-          this.$notify({
-            title: '图片已添加到相册',
-            type: 'info',
-            duration: 1000
-          })
-        } else {
-          this.$notify({
-            title: '图片添加失败',
-            message: resp.msg,
-            type: 'warning',
-            duration: 3000
-          })
-        }
-      }).catch(error => {
-        this.$notify.error({
-          title: '图片添加错误',
-          message: error.message,
-          type: 'error',
-          duration: 3000
-        })
-      })
-      this.$router.go(0)
     }
   }
 }

+ 3 - 31
src/views/post/Post.vue

@@ -42,22 +42,10 @@
         >
           <el-submenu index="/post/video">
             <template slot="title">
-              <i class="el-icon-film" />
+              <i class="el-icon-files" />
               <span slot="title">稿件管理</span>
             </template>
             <el-menu-item-group>
-              <el-menu-item index="/post/video/file">
-                <i class="el-icon-files" />
-                <span slot="title">发布文件</span>
-              </el-menu-item>
-              <el-menu-item index="/post/video/publish">
-                <i class="el-icon-film" />
-                <span slot="title">发布视频</span>
-              </el-menu-item>
-              <el-menu-item index="/post/album/publish">
-                <i class="el-icon-film" />
-                <span slot="title">发布图片</span>
-              </el-menu-item>
               <el-menu-item index="/post/video/list">
                 <i class="el-icon-film" />
                 <span slot="title">视频稿件</span>
@@ -68,27 +56,11 @@
               </el-menu-item>
             </el-menu-item-group>
           </el-submenu>
-          <el-submenu index="/post/fav">
-            <template slot="title">
-              <i class="el-icon-collection" />
-              <span slot="title">收藏夹</span>
-            </template>
-            <el-menu-item-group>
-              <el-menu-item index="/post/fav/video">
-                <i class="el-icon-film" />
-                <span slot="title">合集列表</span>
-              </el-menu-item>
-              <el-menu-item index="/post/fav/image">
-                <i class="el-icon-picture" />
-                <span slot="title">相册</span>
-              </el-menu-item>
-            </el-menu-item-group>
-          </el-submenu>
-          <el-menu-item index="/post/fav/video">
+          <el-menu-item index="/post/album">
             <i class="el-icon-collection" />
             <span slot="title">收藏夹</span>
           </el-menu-item>
-          <el-menu-item index="/post/video/history">
+          <el-menu-item index="/post/history">
             <i class="el-icon-s-data" />
             <span slot="title">历史记录</span>
           </el-menu-item>

+ 350 - 0
src/views/post/PostAlbum.vue

@@ -0,0 +1,350 @@
+<template>
+  <el-container>
+    <el-header height="220">
+      <el-card class="box-card" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px">
+        <div slot="header" class="clearfix">
+          <el-image
+            lazy
+            fit="cover"
+            class="coverImg"
+            :src="albumInfo.coverUrl"
+          />
+          <el-row>
+            <span>当前收藏夹</span>
+            <el-select
+              v-model="queryInfo.albumId"
+              clearable
+              placeholder="稿件类型"
+              style="margin-left: 5px"
+              @change="onSelectChange"
+            >
+              <el-option
+                v-for="item in allPostTypes"
+                :key="item.label"
+                :label="item.label"
+                :value="item.value"
+              />
+            </el-select>
+            <span style="padding-left: 20px">
+              <span style="color: blue">{{ albumInfo.total }}</span> 个稿件
+              <span style="color: red">{{ albumInfo.scopeStr }}</span>
+            </span>
+            <el-button style="float: right; padding: 10px" type="text" @click="onPlayAlbum">播放全部</el-button>
+          </el-row>
+        </div>
+        <div class="text item" />
+      </el-card>
+    </el-header>
+    <el-main>
+      <el-row style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px">
+        <el-col :md="24">
+          <div v-if="dataList.length === 0" align="center">
+            <img src="@/assets/img/icon/not-result.png">
+            <div>还没有收藏呢~</div>
+          </div>
+          <div v-if="dataList.length !== 0">
+            <el-col
+              v-for="(item, index) in dataList"
+              :key="index"
+              :md="6"
+              :sm="12"
+              :xs="12"
+              style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px"
+            >
+              <el-card :body-style="{ padding: '0px' }" class="card">
+                <div v-if="albumInfo.postType === 1" class="imgs">
+                  <el-image
+                    lazy
+                    fit="cover"
+                    class="coverImg"
+                    :src="item.thumbnailUrl"
+                    @click="showImages(index)"
+                  />
+                </div>
+                <div v-if="albumInfo.postType === 2" class="imgs" style="cursor: pointer" :title="item.title">
+                  <router-link target="_blank" :to="`/video/${item.videoId}`">
+                    <el-image
+                      lazy
+                      fit="cover"
+                      class="coverImg"
+                      :src="item.coverUrl"
+                    />
+                    <span style="position: absolute; top: 0; left: 60%; color:white"> {{ item.duration }} </span>
+                    <span style="position: absolute; bottom: 0; left: 0; color:white">
+                      <i v-if="item.horizontal" class="el-icon-monitor" />
+                      <i v-else class="el-icon-mobile-phone" />
+                    </span>
+                  </router-link>
+                </div>
+                <div v-if="albumInfo.postType === 2" style="padding: 14px">
+                  <router-link style="text-decoration-line: none" target="_blank" :to="`/video/${item.videoId}`">
+                    <span style="left: 0;margin-bottom: 0px;color: black;">{{ item.title | ellipsis }}</span>
+                  </router-link>
+                </div>
+                <div v-if="albumInfo.postType === 2" style="padding: 14px">
+                  <span style="left: 0;margin-bottom: 0px;color: black;">
+                    <router-link target="_blank" :to="`/user/${item.user.userId}`">
+                      <i class="el-icon-user"> {{ item.user.screenName | ellipsisUsername }} </i></router-link> • {{ item.pubDateStr }}
+                  </span>
+                </div>
+                <div style="padding: 14px;">
+                  <el-tooltip class="item" effect="dark" content="删除收藏" placement="top-end">
+                    <el-button
+                      size="mini"
+                      type="danger"
+                      class="el-icon-delete"
+                      @click="onDeleteItem(item)"
+                    />
+                  </el-tooltip>
+                  <el-tooltip class="item" effect="dark" content="设为封面" placement="top-end">
+                    <el-button
+                      size="mini"
+                      type="warning"
+                      class="el-icon-picture-outline"
+                      @click="onSetCover(item)"
+                    />
+                  </el-tooltip>
+                </div>
+              </el-card>
+            </el-col>
+            <el-pagination
+              :small="screenWidth <= 768"
+              hide-on-single-page
+              layout="prev, pager, next"
+              :page-size="pageSize"
+              :current-page="currentPage"
+              :total="totalSize"
+              @current-change="handleCurrentChange"
+              @prev-click="handleCurrentChange"
+              @next-click="handleCurrentChange"
+            />
+          </div>
+        </el-col>
+      </el-row>
+      <el-pagination
+        hide-on-single-page
+        :small="screenWidth <= 768"
+        layout="prev, pager, next"
+        :page-size="pageSize"
+        :current-page="currentPage"
+        :total="totalSize"
+        @current-change="handleCurrentChange"
+        @prev-click="handleCurrentChange"
+        @next-click="handleCurrentChange"
+      />
+    </el-main>
+
+    <!-- 创建相册对话框 -->
+    <el-dialog
+      append-to-body
+      :visible.sync="createAlbumDiaglog"
+      width="30%"
+      center
+    />
+  </el-container>
+</template>
+
+<script>
+import { collectItem, getAlbumItems1, getAlbumTypes } from '@/api/collect'
+
+export default {
+  name: 'PostAlbum',
+  filters: {
+    ellipsis(value) {
+      if (!value) return ''
+      const max = 20
+      if (value.length > max) {
+        return value.slice(0, max) + '...'
+      }
+      return value
+    },
+    ellipsisUsername(value) {
+      if (!value) return ''
+      const max = 10
+      if (value.length > max) {
+        return value.slice(0, max) + '...'
+      }
+      return value
+    }
+  },
+  data() {
+    return {
+      allPostTypes: [],
+      queryInfo: {
+        albumId: null,
+        pn: 1
+      },
+      // 屏幕宽度, 为了控制分页条的大小
+      screenWidth: document.body.clientWidth,
+      currentPage: 1,
+      pageSize: 12,
+      totalSize: 0,
+      dataList: [],
+      albumInfo: null,
+      // **********************************************************************
+      showEditScopeDialog: false,
+      form: {
+        albumId: null,
+        postType: '1',
+        scope: '1'
+      },
+      createAlbumDiaglog: false,
+      showNameDialog: false,
+      nameForm: {
+        albumId: null,
+        albumName: null
+      }
+    }
+  },
+  created() {
+    this.getUserAlbums()
+    this.queryInfo.albumId = this.$route.query.albumId
+    this.getData1()
+    document.title = '收藏夹'
+  },
+  methods: {
+    onSelectChange() {
+      this.queryInfo.pn = 1
+      this.getData1()
+      this.$router.push({
+        path: '/post/album',
+        query: this.queryInfo
+      })
+    },
+    handleCurrentChange(pageNumber) {
+      this.currentPage = pageNumber
+      this.queryInfo.pn = pageNumber
+      this.getData()
+      // 回到顶部
+      scrollTo(0, 0)
+    },
+    getData1() {
+      getAlbumItems1(this.queryInfo).then(resp => {
+        if (resp.code === 0) {
+          const respData = resp.data
+          this.dataList = respData.pageList.list
+          this.totalSize = respData.pageList.totalSize
+          this.albumInfo = respData.albumInfo
+          this.queryInfo.albumId = this.albumInfo.albumName
+        }
+      }).catch(error => {
+        this.$message({
+          message: error.message,
+          type: 'error',
+          duration: 1000
+        })
+      })
+    },
+    getUserAlbums() {
+      getAlbumTypes().then(resp => {
+        if (resp.code === 0) {
+          this.allPostTypes = resp.data
+        }
+      })
+    },
+    showImages(index) {
+      const imageUrls = []
+      for (const i of this.dataList) {
+        imageUrls.push(i.originalUrl)
+      }
+
+      this.$viewerApi({
+        images: imageUrls,
+        options: {
+          initialViewIndex: index,
+          movable: true,
+          fullscreen: false,
+          keyboard: true
+        }
+      })
+    },
+    // 设为封面
+    onSetCover(item) {
+      const jsonData = {}
+      jsonData.albumId = this.albumId
+      if (this.albumInfo.postType === 1) {
+        jsonData.postId = item.imageFileId
+      } else if (this.albumInfo.postType === 2) {
+        jsonData.postId = item.videoId
+      }
+
+      jsonData.action = 3
+      collectItem(jsonData).then(res => {
+        if (res.code === 0) {
+          this.$message({
+            type: 'success',
+            message: '封面已更新!'
+          })
+        }
+      })
+    },
+    // 移除收藏
+    onDeleteItem(item) {
+      this.$confirm('确认删除本收藏?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        const jsonData = {}
+        jsonData.albumId = this.albumId
+        if (this.albumInfo.postType === 1) {
+          jsonData.postId = item.imageFileId
+        } else if (this.albumInfo.postType === 2) {
+          jsonData.postId = item.videoId
+        }
+
+        jsonData.action = 2
+        collectItem(jsonData).then(res => {
+          if (res.code === 0) {
+            this.$message({
+              type: 'success',
+              message: '移除成功!'
+            })
+            this.$router.go(0)
+          }
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消'
+        })
+      })
+    },
+    onPlayAlbum() {
+      this.$message.info('暂未实现')
+    }
+  }
+}
+</script>
+
+<style>
+/*处于手机屏幕时*/
+@media screen and (max-width: 768px) {
+  .tit {
+    font-weight: 600;
+    font-size: 12px;
+    height: 32px;
+  }
+  .time {
+    font-size: 10px;
+    color: #999;
+  }
+  .num {
+    font-size: 9px;
+    padding-top: 3px;
+  }
+  .bottom {
+    margin-top: 2px;
+    line-height: 7px;
+  }
+  .coverImg {
+    height: 120px !important;
+  }
+}
+
+.coverImg {
+  width: 100%;
+  height: 90px;
+  display: block;
+}
+</style>

+ 3 - 3
src/views/post/PostPublish.vue

@@ -15,7 +15,7 @@
     <el-col :md="22">
       <el-tabs v-model="activeName" @tab-click="tabClick">
         <el-tab-pane label="视频" name="video">
-          <publish-video v-if="activeName === 'video'" />
+          <video-post-publish v-if="activeName === 'video'"/>
         </el-tab-pane>
         <el-tab-pane label="音频" name="audio">
           <publish-audio v-if="activeName === 'audio'" />
@@ -35,7 +35,7 @@
 </template>
 
 <script>
-import PublishVideo from '@/components/upload/PublishVideo'
+import VideoPostPublish from '@/views/post/VideoPostPublish'
 import PublishAudio from '@/components/upload/PublishAudio'
 import PublishImage from '@/components/upload/PublishImage'
 import PublishArticle from '@/components/upload/PublishArticle'
@@ -43,7 +43,7 @@ import PublishFile from '@/components/upload/PublishFile'
 
 export default {
   name: 'PostPublish',
-  components: { PublishVideo, PublishAudio, PublishImage, PublishArticle, PublishFile },
+  components: { VideoPostPublish, PublishAudio, PublishImage, PublishArticle, PublishFile },
   data() {
     return {
       navList: [

+ 27 - 6
src/views/post/VideoPost.vue

@@ -2,7 +2,14 @@
   <el-container>
     <el-header height="220">
       <el-row style="margin-top: 10px">
-        <el-button type="plain" icon="el-icon-plus" @click="publishVideoDiaglog = true">发布稿件</el-button>
+        <el-select
+          v-model="queryInfo.scope"
+          clearable
+          placeholder="查询条件"
+          style="margin-left: 5px"
+          @change="onSelectChange"
+        />
+        <el-button type="plain" icon="el-icon-plus" style="margin-left: 5px" @click="publishVideoDiaglog = true">发布稿件</el-button>
       </el-row>
     </el-header>
     <el-main>
@@ -183,13 +190,18 @@
       />
     </el-main>
 
+    <!-- 发布视频稿件对话框 -->
     <el-dialog
-      append-to-body
       :visible.sync="publishVideoDiaglog"
+      :before-close="handleClose"
       width="70%"
       center
     >
-      <publish-video />
+      <video-post-publish />
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="publishVideoDiaglog = false">取 消</el-button>
+        <el-button type="primary" @click="publishVideoDiaglog = false">关 闭</el-button>
+      </span>
     </el-dialog>
     <!-- 修改视频可见范围对话框 -->
     <el-dialog
@@ -231,14 +243,18 @@
 
 <script>
 import VideoPreviewPlayer from 'components/VideoPreviewPlayer'
-import PublishVideo from 'components/upload/PublishVideo'
+import VideoPostPublish from '@/views/post/VideoPostPublish'
 import { updateVideoScope, videoInfo, deleteVideoPost, getVideoPosts } from '@/api/video'
 
 export default {
   name: 'VideoPost',
-  components: { VideoPreviewPlayer, PublishVideo },
+  components: { VideoPreviewPlayer, VideoPostPublish },
   data() {
     return {
+      queryInfo: {
+        scope: null,
+        pn: 1
+      },
       // 屏幕宽度, 为了控制分页条的大小
       screenWidth: document.body.clientWidth,
       currentPage: 1,
@@ -317,7 +333,7 @@ export default {
       })
     },
     handleEdit(index, row) {
-      const path = '/post/edit/video/' + row.videoId
+      const path = '/post/video/edit/' + row.videoId
       this.$router.push(path)
     },
     handleDelete(index, row) {
@@ -363,6 +379,11 @@ export default {
           duration: 3000
         })
       })
+    },
+    onSelectChange() {
+      this.$message.info(this.queryInfo)
+    },
+    handleClose() {
     }
   }
 }

+ 5 - 5
src/components/upload/EditVideo.vue → src/views/post/VideoPostEdit.vue

@@ -3,8 +3,9 @@
     <el-row style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px">
       <el-col :md="24" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px">
         <el-card class="box-card">
-          <div class="text item">
-            <el-button style="float: left; padding: 3px 0" type="text" @click="onReturnVideo">返回视频稿件列表</el-button>
+          <div slot="header" class="clearfix">
+            <span>编辑视频稿件</span>
+            <el-button style="float: right; padding: 10px" type="text" @click="onReturnVideo">返回视频稿件列表</el-button>
           </div>
         </el-card>
       </el-col>
@@ -93,12 +94,11 @@
 </template>
 
 <script>
-import { getServerInfo } from '@/api/content'
 import { getVideoPost, updateVideoInfo, updateVideoCover, updateVideoFile } from '@/api/video'
-import {getVideoChannelInfo, getVideoCoverChannelInfo} from "@/api/file";
+import { getVideoChannelInfo, getVideoCoverChannelInfo } from '@/api/file'
 
 export default {
-  name: 'EditVideo',
+  name: 'VideoPostEdit',
   data() {
     return {
       // ****************************************************************************************************************

+ 1 - 1
src/components/upload/PublishVideo.vue → src/views/post/VideoPostPublish.vue

@@ -121,7 +121,7 @@ import { getVideoChannelInfo, getVideoCoverChannelInfo } from '@/api/file'
 import { hashFile } from '@/utils/functions'
 
 export default {
-  name: 'PublishVideo',
+  name: 'VideoPostPublish',
   data() {
     return {
       // ****************************************************************************************************************

+ 0 - 193
src/views/user/History.vue

@@ -1,193 +0,0 @@
-<template>
-  <div id="history-list">
-    <!--搜索结果面包屑-->
-    <el-breadcrumb
-      v-if="this.$route.path.indexOf('history') > -1"
-      class="bread"
-      separator-class="el-icon-arrow-right"
-    >
-      <el-breadcrumb-item :to="{ path: '' }"><a href="/">返回首页</a></el-breadcrumb-item>
-      <el-breadcrumb-item>播放历史记录:共<span class="reslut">({{ totalSize }}}</span>条</el-breadcrumb-item>
-    </el-breadcrumb>
-
-    <el-row v-if="visitList.length !== 0" class="movie-list">
-      <el-col style="text-align: center">
-        <el-button
-          type="danger"
-          icon="el-icon-delete"
-          round
-          title="一键清空历史"
-          @click="removeAll"
-        >一键清空历史</el-button>
-      </el-col>
-      <el-col :md="8">
-        <el-timeline :reverse="reverse">
-          <el-timeline-item
-            v-for="(record, index) in visitList"
-            :key="index"
-            :timestamp="record.createAt"
-            placement="top"
-          >
-            <video-card :video="record"></video-card>
-            <el-button
-              type="danger"
-              icon="el-icon-delete"
-              circle
-              size="small"
-              title="移除该历史记录"
-              @click.stop="removeHistory(record.videoId)"
-            />
-          </el-timeline-item>
-        </el-timeline>
-      </el-col>
-    </el-row>
-    <el-row v-else class="not-result">
-      <el-col :span="12" :offset="6">
-        <img src="@/assets/img/icon/not-history.png">
-        <div>你还没有看过任何东西呢</div>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import VideoCard from '@/components/card/VideoCard'
-import { getVisitRecord } from "@/api/visit";
-
-export default {
-  name: 'History',
-  components: { VideoCard },
-  data() {
-    return {
-      reverse: false,
-      totalSize: 0,
-      nextId: 0,
-      nextId1: 0,
-      visitList: [],
-      showEmpty: false
-    }
-  },
-  created() {
-    document.title = '我的历史记录'
-    this.getVisitRecordWrapper(this.nextId)
-  },
-  mounted() {
-    window.addEventListener("scroll", this.handleScrollEvent);
-  },
-  methods: {
-    handleScrollEvent() {
-      if (document.body.scrollHeight <= window.screen.height + document.documentElement.scrollTop) {
-        console.log('滚动条触底, 加载数据')
-        if (this.nextId1 !== this.nextId) {
-          this.nextId1 = this.nextId
-          this.getVisitRecordWrapper(this.nextId)
-        }
-      }
-    },
-    getVisitRecordWrapper(nextId) {
-      getVisitRecord(nextId).then(res => {
-        if (res.code === 0) {
-          const resData = res.data
-          this.totalSize = resData.totalSize
-          this.nextId = resData.nextId
-          for (const item of resData.list) {
-            this.visitList.push(item)
-          }
-        }
-      })
-    },
-    // 清除当前历史记录
-    removeHistory(videoId) {
-      this.$confirm('确认移除吗?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        console.log('删除 ' + videoId + ' 这条记录')
-        // 确认
-        /* deleteHistory(this.uid, video.vid).then(res => {
-          // 将要删除的当前video对象移除数组
-          // 获取下标
-          const index = this.videos.indexOf(video)
-          if (index > -1) {
-            this.videos.splice(index, 1)
-          }
-        })*/
-
-        this.$message({
-          type: 'success',
-          message: '移除成功!'
-        })
-      }).catch(() => {
-        this.$message({
-          type: 'info',
-          message: '已取消'
-        })
-      })
-    },
-    // 清空所有历史记录
-    removeAll() {
-      // 移除所有收藏
-      this.$confirm('确认移除所有播放历史记录吗?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        console.log('删除全部记录')
-
-        /*const arr = []
-        for (const i of this.videos) {
-          arr.push(i.vid)
-        }*/
-        // const vidStr = arr.join(',')
-        // 确认
-        /* deleteHistory(this.uid, vidStr).then(res => {
-          this.videos = []
-        })*/
-
-        this.$message({
-          type: 'success',
-          message: '移除成功!'
-        })
-      }).catch(() => {
-        this.$message({
-          type: 'info',
-          message: '已取消'
-        })
-      })
-    }
-  }
-}
-</script>
-
-<style scoped>
-#history-list {
-  padding-left: 6%;
-  padding-right: 6%;
-  padding-top: 30px;
-}
-
-.bread {
-  font-size: 15px;
-}
-
-.movie-list {
-  padding-top: 15px;
-}
-
-.reslut {
-  color: red;
-}
-
-.not-result {
-  padding-top: 100px;
-  padding-bottom: 100px;
-  text-align: center;
-}
-
-.remove-slot {
-  position: absolute;
-  right: 5px;
-  bottom: 2px;
-}
-</style>

+ 32 - 90
src/views/user/Home.vue

@@ -77,7 +77,7 @@
           </el-tab-pane>
           <el-tab-pane name="image">
             <span slot="label">
-              相册<el-badge :value="userContentData.albumCount" :max="9999" class="item" type="warning" />
+              图片<el-badge :value="userContentData.imageCount" :max="9999" class="item" type="warning" />
             </span>
             <div v-if="activeName === 'image'">
               <el-col v-for="(album, index) in dataList" :key="index" :md="6" :sm="12" :xs="12">
@@ -85,36 +85,16 @@
               </el-col>
             </div>
           </el-tab-pane>
-<!--          <el-tab-pane name="audio">
+          <el-tab-pane name="album">
             <span slot="label">
-              音频<el-badge :value="userContentData.audioCount" :max="9999" class="item" type="warning" />
+              收藏夹<el-badge :value="userContentData.albumCount" :max="9999" class="item" type="warning" />
             </span>
-            <div v-if="activeName === 'audio'">
-              <el-col v-for="(audio, index) in dataList" :key="index" :md="6" :sm="12" :xs="12">
-                <audio-card :audio="audio" />
+            <div v-if="activeName === 'album'">
+              <el-col v-for="(item, index) in dataList" :key="index" :md="6" :sm="12" :xs="12">
+                <span>{{ item.albumName }}</span>
               </el-col>
             </div>
           </el-tab-pane>
-          <el-tab-pane name="article">
-            <span slot="label">
-              文章<el-badge :value="userContentData.articleCount" :max="9999" class="item" type="warning" />
-            </span>
-            <div v-if="activeName === 'article'">
-              <el-col v-for="(article, index) in dataList" :key="index" :md="6" :sm="12" :xs="12">
-                <article-card :article="article" />
-              </el-col>
-            </div>
-          </el-tab-pane>-->
-          <!--          <el-tab-pane name="status">
-            <span slot="label">
-              状态<el-badge :value="userContentData.statusCount" :max="9999" class="item" type="warning"/>
-            </span>
-            <div v-if="activeName === 'status'">
-              <el-col v-for="(status, index) in dataList" :key="index" :md="16" :sm="12" :xs="12">
-                <span>发布的状态</span>
-              </el-col>
-            </div>
-          </el-tab-pane>-->
         </el-tabs>
       </el-col>
       <el-col :span="24" class="pagination">
@@ -132,7 +112,6 @@
         />
       </el-col>
     </el-row>
-
     <el-row v-if="showEmpty" class="not-result">
       <el-col :span="12" :offset="6">
         <img src="@/assets/img/icon/not-collection.png">
@@ -145,19 +124,16 @@
 <script>
 import StampBadge from '@/components/StampBadge'
 import VideoCard from '@/components/card/VideoCard'
-import AudioCard from '@/components/card/AudioCard'
 import ImageAlbumCard from '@/components/card/ImageAlbumCard'
-import ArticleCard from '@/components/card/ArticleCard'
 
 import { getUserInfo, checkRelation, followUser, unfollowUser } from '@/api/user'
 import { getUserContentData, getUserVideos } from '@/api/video'
-import { getUserAlbums1 } from '@/api/image'
-import { getUserAudios } from '@/api/audio'
-import { getUserArticles } from '@/api/article'
+import { getAlbumImage1 } from '@/api/image'
+import { getPostAlbums } from '@/api/collect'
 
 export default {
   name: 'Home',
-  components: { StampBadge, VideoCard, ImageAlbumCard, AudioCard, ArticleCard },
+  components: { StampBadge, VideoCard, ImageAlbumCard },
   data() {
     return {
       // 屏幕宽度, 为了控制分页条的大小
@@ -173,6 +149,10 @@ export default {
       pageSize: 12,
       totalSize: 0,
       dataList: [],
+      queryInfo: {
+        createBy: null,
+        pn: 1
+      },
       showEmpty: true,
       userContentData: null
     }
@@ -193,18 +173,12 @@ export default {
           document.title = this.user.screenName + '的视频'
         } else if (path.endsWith('image')) {
           this.activeName = 'image'
-          document.title = this.user.screenName + '的相册'
-        } else if (path.endsWith('audio')) {
-          this.activeName = 'audio'
-          document.title = this.user.screenName + '的音频'
-        } else if (path.endsWith('article')) {
-          this.activeName = 'article'
-          document.title = this.user.screenName + '的文章'
-        } else if (path.endsWith('status')) {
-          this.activeName = 'status'
-          document.title = this.user.screenName + '的状态'
+          document.title = this.user.screenName + '的图片'
+        } else if (path.endsWith('album')) {
+          this.activeName = 'album'
+          document.title = this.user.screenName + '的收藏夹'
         } else {
-          document.title = this.user.screenName + '的个人主页'
+          document.title = this.user.screenName + '的主页'
         }
         this.getData()
       }
@@ -251,15 +225,17 @@ export default {
       }
     },
     sendMessage(userId) {
-      console.log('发送消息')
+      this.$message.info('暂未实现')
     },
     handleCurrentChange(pageNumber) {
       this.currentPage = pageNumber
+      this.queryInfo.pn = pageNumber
       this.getData()
       // 回到顶部
       scrollTo(0, 0)
     },
     tabClick(tab) {
+      this.dataList = []
       this.activeName = tab.name
       this.goToTab(this.activeName)
     },
@@ -276,37 +252,9 @@ export default {
       if (this.activeName === 'video') {
         this.userVideoListWrapper(this.currentPage, this.userId)
       } else if (this.activeName === 'image') {
+        this.userImageWrapper(this.currentPage, this.userId)
+      } else if (this.activeName === 'album') {
         this.userAlbumWrapper(this.currentPage, this.userId)
-      } else if (this.activeName === 'audio') {
-        getUserAudios(this.userId, this.currentPage).then(resp => {
-          if (resp.code === 0) {
-            const respData = resp.data.list
-            if (respData.length !== 0) {
-              this.showEmpty = false
-              for (const item of respData) {
-                this.dataList.push(item)
-              }
-            } else {
-              this.showEmpty = true
-            }
-          }
-        })
-      } else if (this.activeName === 'article') {
-        getUserArticles(this.userId, this.currentPage).then(resp => {
-          if (resp.code === 0) {
-            const respData = resp.data.list
-            if (respData.length !== 0) {
-              this.showEmpty = false
-              for (const item of respData) {
-                this.dataList.push(item)
-              }
-            } else {
-              this.showEmpty = true
-            }
-          }
-        })
-      } else if (this.activeName === 'status') {
-        this.userStatusListWrapper(this.currentPage, this.userId)
       }
     },
     userVideoListWrapper(pageNumber, userId) {
@@ -315,32 +263,26 @@ export default {
           const respData = resp.data
           this.dataList = respData.list
           this.totalSize = respData.totalSize
-          if (this.dataList.length !== 0) {
-            this.showEmpty = false
-          } else {
-            this.showEmpty = true
-          }
+          this.showEmpty = this.dataList.length === 0
         }
       })
     },
-    userAlbumWrapper(pageNumber, userId) {
-      getUserAlbums1(pageNumber, userId).then(resp => {
+    userImageWrapper(pageNumber, userId) {
+      getAlbumImage1(pageNumber, userId).then(resp => {
         if (resp.code === 0) {
           const respData = resp.data
           this.dataList = respData.list
           this.totalSize = respData.totalSize
-          if (this.dataList.length !== 0) {
-            this.showEmpty = false
-          } else {
-            this.showEmpty = true
-          }
+          this.showEmpty = this.dataList.length === 0
         }
       })
     },
-    userStatusListWrapper(pageNumber, userId) {
-      userStatus(userId, pageNumber).then(resp => {
+    userAlbumWrapper(pageNumber, userId) {
+      getPostAlbums(this.queryInfo).then(resp => {
         if (resp.code === 0) {
-          this.dataList = resp.data.list
+          const respData = resp.data
+          this.dataList = respData.list
+          this.totalSize = respData.totalSize
           this.showEmpty = this.dataList.length === 0
         }
       })