ソースを参照

update post module

reghao 1 年間 前
コミット
482e17616d

+ 20 - 3
src/api/image.js

@@ -3,7 +3,7 @@ import { get, post, delete0 } from '@/utils/request'
 const imageApi = {
   imageAlbumApi: '/api/content/post/image/album',
   addAlbumImageApi: '/api/content/post/image/album/add',
-  deleteAlbumImageApi: '/api/content/post/image/album/delete',
+  deleteAlbumItemApi: '/api/content/album/action',
   updateAlbumScopeApi: '/api/content/post/image/album/update/scope',
   updateAlbumCoverApi: '/api/content/post/image/album/update/cover',
   albumImageApi: '/api/content/post/image/album',
@@ -29,8 +29,8 @@ export function updateAlbumCover(jsonData) {
   return post(imageApi.updateAlbumCoverApi, jsonData)
 }
 
-export function deleteAlbumImage(imageFileId) {
-  return delete0(imageApi.deleteAlbumImageApi + '/' + imageFileId)
+export function deleteAlbumItem(data) {
+  return post(imageApi.deleteAlbumItemApi, data)
 }
 
 export function deleteAlbum(albumId) {
@@ -42,6 +42,11 @@ export function getAlbumImage(albumId) {
   return get(imageApi.albumImageApi + '/' + albumId)
 }
 
+// 获取相册
+export function getAlbumImage1(page) {
+  return get(imageApi.albumImageApi + '?page=' + page)
+}
+
 // 获取相册
 export function getAlbum(albumId) {
   return get(imageApi.albumApi + '/' + albumId)
@@ -61,7 +66,19 @@ export function getUserAlbums(page) {
   return get(imageApi.postAlbumApi + '/user?pn=' + page)
 }
 
+export function getUserAlbums1(query) {
+  return get(imageApi.postAlbumApi + '/user', query)
+}
+
 // 获取合集内容
 export function getAlbumItems(page, albumId) {
   return get(imageApi.postAlbumApi + '/item?pn=' + page + '&albumId=' + albumId)
 }
+
+export function getImageItems(albumId) {
+  return get(imageApi.imageApi + '/album/' + albumId)
+}
+
+export function getAlbumTypes() {
+  return get(imageApi.postAlbumApi + '/types')
+}

+ 37 - 56
src/components/upload/EditImage.vue

@@ -13,10 +13,6 @@
       <el-col :md="8">
         <el-row style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px">
           <el-card class="box-card">
-            <div slot="header" class="clearfix">
-              <span>添加图片</span>
-              <el-button style="float: right; padding: 3px 0" type="text" @click="onAddImages">更新</el-button>
-            </div>
             <div class="text item">
               <el-upload
                 :action="actionUrl"
@@ -40,9 +36,9 @@
         </el-row>
       </el-col>
       <el-col :md="16">
-        <div v-if="this.data !== null">
+        <div v-if="data !== null">
           <el-col
-            v-for="(image, index) in dataList"
+            v-for="(image, index) in data.images"
             :key="image.thumbnailUrl"
             :md="6"
             :sm="12"
@@ -97,9 +93,8 @@
 </template>
 
 <script>
-import {getAlbumImage, deleteAlbumImage, addAlbumImage, updateAlbumCover, getAlbumItems} from '@/api/image'
+import { getAlbumImage, deleteAlbumImage, addAlbumImage, updateAlbumCover } from '@/api/image'
 import { getPhotoChannelInfo } from '@/api/file'
-import {getUserInfo} from "@/api/user";
 
 var imageFileMap = new Map()
 export default {
@@ -112,7 +107,7 @@ export default {
         Authorization: ''
       },
       imgData: {
-        channelId: 105
+        channelCode: 105
       },
       dialogImageUrl: '',
       dialogVisible: false,
@@ -135,16 +130,14 @@ export default {
     document.title = '编辑相册稿件'
 
     this.albumId = this.$route.params.albumId
-    this.getAlbumItemsWrapper(this.currentPage, this.albumId)
-    /* getAlbumImage(this.albumId).then(res => {
+    getAlbumImage(this.albumId).then(res => {
       if (res.code === 0) {
-        const resData = res.data
-        this.data = resData
+        this.data = res.data
         console.log(this.data)
         this.imageCount = this.data.images.length
         this.limit = 40 - this.data.images.length
       }
-    })*/
+    })
 
     getPhotoChannelInfo().then(res => {
       if (res.code === 0) {
@@ -161,8 +154,8 @@ export default {
       }
     }).catch(error => {
       this.$notify({
-        title: '提示',
-        message: '获取 OSS 服务器地址失败, 暂时无法上传图片',
+        title: '获取 OSS 服务器地址失败, 暂时无法上传图片',
+        message: error.message,
         type: 'warning',
         duration: 3000
       })
@@ -186,45 +179,6 @@ export default {
       scrollTo(0, 0)
     },
     getAlbumItemsWrapper(pageNumber, albumId) {
-      getAlbumItems(pageNumber, albumId).then(resp => {
-        if (resp.code === 0) {
-          const respData = resp.data
-          document.title = '相册 - ' + respData.albumName
-
-          this.data = respData
-          this.postType = respData.postType
-          if (this.postType === 1) {
-            this.dataList = respData.images
-          } else if (this.postType === 2) {
-            this.totalSize = respData.pageList.totalSize
-            this.pageSize = respData.pageList.pageSize
-            this.dataList = respData.pageList.list
-          }
-
-          this.userId = respData.createBy
-          getUserInfo(this.userId).then(resp => {
-            if (resp.code === 0) {
-              this.user = resp.data
-            } else {
-              this.$notify.error({
-                message: resp.msg,
-                type: 'warning',
-                duration: 3000
-              })
-            }
-          })
-        } else if (resp.code === 2) {
-          this.$router.push('/404')
-        } else {
-          this.permissionDenied = true
-        }
-      }).catch(error => {
-        this.$notify.error({
-          message: error.message,
-          type: 'error',
-          duration: 3000
-        })
-      })
     },
     /** *********************************************************************/
     handleBeforeUpload(file) {
@@ -248,6 +202,33 @@ export default {
       if (res.code === 0) {
         const resData = res.data
         imageFileMap.set(file.name, resData.uploadId)
+
+        const jsonData = {}
+        jsonData.albumId = this.data.albumId
+        jsonData.imageFileId = resData.uploadId
+        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
+          })
+        })
       } else {
         this.$notify({
           title: '提示',
@@ -342,7 +323,7 @@ export default {
       })
     },
     onReturnAlbum() {
-      this.$router.push('/post/list/image')
+      this.$router.push('/post/image/list')
     },
     onAddImages() {
       const jsonData = {}

+ 6 - 0
src/router/vod.js

@@ -92,6 +92,12 @@ export default {
       component: UserPostVideo,
       meta: { needAuth: true }
     },
+    {
+      path: '/post/image/list',
+      name: '图片稿件',
+      component: UserPostImage,
+      meta: { needAuth: true }
+    },
     {
       path: '/post/edit/video/:videoId',
       name: 'PostEditVideo',

+ 37 - 88
src/views/home/ImagePage.vue

@@ -43,8 +43,8 @@
     </el-row>
     <el-row>
       <el-col :md="24" class="movie-list">
-        <div v-if="postType === 1">
-          <el-col v-for="(image, index) in dataList" :key="image.thumbnailUrl" :md="6" :sm="12" :xs="12" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px">
+        <div>
+          <el-col v-for="(image, index) in data.images" :key="image.thumbnailUrl" :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">
                 <el-image
@@ -64,33 +64,6 @@
             </el-card>
           </el-col>
         </div>
-        <div v-else-if="postType === 2">
-          <el-col v-for="(item,index) in dataList" :key="index" :md="6" :sm="8" :xs="12">
-            <div>
-              <video-card :video="item" />
-            </div>
-            <el-button
-              type="danger"
-              size="mini"
-              icon="el-icon-delete"
-              title="删除本收藏"
-              @click.stop="removeCollection(item)"
-            />
-          </el-col>
-          <el-col class="pagination">
-            <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"
-            />
-          </el-col>
-        </div>
       </el-col>
     </el-row>
   </div>
@@ -102,29 +75,24 @@
 <script>
 import PermissionDeniedCard from '@/components/card/PermissionDeniedCard'
 import { followUser, getUserInfo, unfollowUser } from '@/api/user'
-import { getAlbumItems } from '@/api/image'
+import { getImageItems } from '@/api/image'
 import { collectItem } from '@/api/collect'
-import VideoCard from '@/components/card/VideoCard'
 
 export default {
   name: 'ImagePage',
-  components: { PermissionDeniedCard, VideoCard },
+  components: { PermissionDeniedCard },
   data() {
     return {
       // 屏幕宽度, 为了控制分页条的大小
       screenWidth: document.body.clientWidth,
       currentPage: 1,
-      pageSize: 12,
-      totalSize: 0,
-      albumId: null,
-      data: null,
-      dataList: [],
-      postType: 0,
       user: null,
       followButton: {
         icon: 'el-icon-plus',
         text: '关注'
       },
+      data: null,
+      dataList: [],
       permissionDenied: false,
       textObject: {
         content: '相册',
@@ -133,8 +101,37 @@ export default {
     }
   },
   created() {
-    this.albumId = this.$route.params.albumId
-    this.getAlbumItemsWrapper(this.currentPage, this.albumId)
+    const albumId = this.$route.params.albumId
+    getImageItems(albumId).then(resp => {
+      if (resp.code === 0) {
+        const respData = resp.data
+        document.title = '相册 - ' + respData.albumName
+
+        this.data = respData
+        this.userId = respData.userId
+        getUserInfo(this.userId).then(resp => {
+          if (resp.code === 0) {
+            this.user = resp.data
+          } else {
+            this.$notify.error({
+              message: resp.msg,
+              type: 'warning',
+              duration: 3000
+            })
+          }
+        })
+      } else if (resp.code === 2) {
+        this.$router.push('/404')
+      } else {
+        this.permissionDenied = true
+      }
+    }).catch(error => {
+      this.$notify.error({
+        message: error.message,
+        type: 'error',
+        duration: 3000
+      })
+    })
   },
   mounted() {
     // 当窗口宽度改变时获取屏幕宽度
@@ -146,54 +143,6 @@ export default {
     }
   },
   methods: {
-    handleCurrentChange(pageNumber) {
-      this.currentPage = pageNumber
-      this.dataList = []
-      this.getAlbumItemsWrapper(this.currentPage, this.albumId)
-      // 回到顶部
-      scrollTo(0, 0)
-    },
-    getAlbumItemsWrapper(pageNumber, albumId) {
-      getAlbumItems(pageNumber, albumId).then(resp => {
-        if (resp.code === 0) {
-          const respData = resp.data
-          document.title = '相册 - ' + respData.albumName
-
-          this.data = respData
-          this.postType = respData.postType
-          if (this.postType === 1) {
-            this.dataList = respData.images
-          } else if (this.postType === 2) {
-            this.totalSize = respData.pageList.totalSize
-            this.pageSize = respData.pageList.pageSize
-            this.dataList = respData.pageList.list
-          }
-
-          this.userId = respData.createBy
-          getUserInfo(this.userId).then(resp => {
-            if (resp.code === 0) {
-              this.user = resp.data
-            } else {
-              this.$notify.error({
-                message: resp.msg,
-                type: 'warning',
-                duration: 3000
-              })
-            }
-          })
-        } else if (resp.code === 2) {
-          this.$router.push('/404')
-        } else {
-          this.permissionDenied = true
-        }
-      }).catch(error => {
-        this.$notify.error({
-          message: error.message,
-          type: 'error',
-          duration: 3000
-        })
-      })
-    },
     followUser(userId) {
       if (this.followButton.text === '关注') {
         followUser(userId).then(resp => {

+ 320 - 194
src/views/post/FavlistVideo.vue

@@ -1,149 +1,297 @@
 <template>
-  <div id="collection-list">
-    <el-row>
-      <el-col :md="12">
-        <div class="category-btn">
-          <el-button
-            v-for="(item, index) in videoFavlist"
-            :key="index"
-            type="warning"
-            size="mini"
-            :plain="currentFavlistId !== item.favlistId"
-            @click="chooseVideoFavlist(item)"
-          >{{ item.favlistName }}
-          </el-button>
-        </div>
-      </el-col>
-    </el-row>
+  <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-breadcrumb
-      v-if="currentFavlistName !== null"
-      class="bread"
-      separator-class="el-icon-arrow-right"
+    <!-- 创建相册对话框 -->
+    <el-dialog
+      append-to-body
+      :visible.sync="createAlbumDiaglog"
+      width="30%"
+      center
     >
-      <el-breadcrumb-item>
-        <span class="reslut">{{ currentFavlistName }}</span> 中共有 <span class="reslut">{{ totalSize }}</span> 条数据
-      </el-breadcrumb-item>
-    </el-breadcrumb>
+      <el-card class="box-card">
+        <div slot="header" class="clearfix">
+          <span>创建相册</span>
+          <el-button style="float: right; padding: 3px 0" type="text" @click="onCreateAlbum">确定</el-button>
+        </div>
+        <div class="text item">
+          <el-form ref="form" :model="form" label-width="80px">
+            <el-form-item label="相册名">
+              <el-input v-model="form.albumName" style="width: 70%; padding-right: 2px" placeholder="相册名不能超过 50 个字符" />
+            </el-form-item>
+            <el-form-item label="稿件类型">
+              <el-select v-model="form.postType" placeholder="选择稿件类型">
+                <el-option label="图片" value="1" />
+                <el-option label="视频" value="2" />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="可见范围">
+              <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>
+            </el-form-item>
+          </el-form>
+        </div>
+      </el-card>
+    </el-dialog>
 
-    <el-row v-if="totalSize !== 0" class="movie-list">
-      <el-col style="text-align: right">
-        <el-button
-          type="danger"
-          size="mini"
-          icon="el-icon-delete"
-          @click="removeFavlist"
-        >删除收藏夹</el-button>
-      </el-col>
-      <el-col v-for="(item,index) in dataList" :key="index" :md="6" :sm="8" :xs="12">
-        <div>
-          <video-card :video="item" />
+    <!-- 修改可见范围对话框 -->
+    <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>
-        <el-button
-          type="danger"
-          size="mini"
-          icon="el-icon-delete"
-          title="删除本收藏"
-          @click.stop="removeCollection(item)"
-        />
-      </el-col>
-      <el-col class="pagination">
-        <el-pagination
-          background
-          :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"
-        />
-      </el-col>
-    </el-row>
-    <el-row v-else class="not-result">
-      <el-col :span="12" :offset="6">
-        <img src="@/assets/img/icon/not-collection.png">
-        <div>你还没有收藏任何东西呢</div>
-      </el-col>
-    </el-row>
-  </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 VideoCard from '@/components/card/VideoCard'
 import {
-  deleteFavlist, collectItem, getUserFavlist, getVideoFavlist
-} from '@/api/collect'
+  updateAlbumScope,
+  deleteAlbum,
+  getUserAlbums,
+  createAlbum,
+  getAlbumTypes, getUserAlbums1
+} from '@/api/image'
 
 export default {
-  name: 'FavlistVideo',
-  components: { VideoCard },
+  name: 'ImagePost',
   data() {
     return {
+      allPostTypes: [],
+      queryInfo: {
+        postType: null,
+        pn: 1
+      },
       // 屏幕宽度, 为了控制分页条的大小
       screenWidth: document.body.clientWidth,
       currentPage: 1,
       pageSize: 12,
       totalSize: 0,
       dataList: [],
-      currentFavlistId: 0,
-      currentFavlistName: null,
-      videoFavlist: []
+      // **********************************************************************
+      showEditScopeDialog: false,
+      form: {
+        albumId: null,
+        postType: '1',
+        scope: '1'
+      },
+      createAlbumDiaglog: false
     }
   },
   created() {
-    getUserFavlist().then(resp => {
-      if (resp.code === 0) {
-        this.videoFavlist = resp.data
-      }
-    })
-    document.title = '视频收藏夹'
+    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.dataList = []
-      this.getVideoFavlistWrapper(this.currentFavlistId, this.currentPage)
+      this.getData()
       // 回到顶部
       scrollTo(0, 0)
     },
-    chooseVideoFavlist(item) {
-      this.currentFavlistId = item.favlistId
-      this.currentFavlistName = item.favlistName
-      this.currentPage = 1
-      this.getVideoFavlistWrapper(this.currentFavlistId, this.currentPage)
-    },
-    getVideoFavlistWrapper(favlistId) {
-      this.currentFavlistId = favlistId
-      getVideoFavlist(favlistId, this.currentPage).then(resp => {
+    getData() {
+      getAlbumTypes().then(resp => {
         if (resp.code === 0) {
-          const respData = resp.data
-          this.dataList = respData.list
-          this.totalSize = respData.totalSize
+          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
+          })
         }
       })
     },
-    // 移除收藏
-    removeCollection(item) {
-      this.$confirm('确认删除本收藏?', '提示', {
+    handleScope(index, row) {
+      this.form.albumId = row.albumId
+      this.form.scope = '' + row.scope
+      this.showEditScopeDialog = true
+    },
+    handleEdit(index, row) {
+      const path = '/post/edit/album/' + row.albumId
+      this.$router.push(path)
+    },
+    handleDelete(index, row) {
+      this.$confirm('确定要删除 ' + row.albumName + ' 相册?', '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
       }).then(() => {
-        const jsonData = {}
-        jsonData.contentType = 1001
-        jsonData.contentId = item.imageFileId
-        jsonData.collected = false
-        collectItem(jsonData).then(res => {
+        deleteAlbum(row.albumId).then(res => {
           if (res.code === 0) {
-            this.$message({
-              type: 'success',
-              message: '移除成功!'
+            this.$notify({
+              title: '相册稿件已删除',
+              type: 'warning',
+              duration: 3000
             })
-            this.$router.go(0)
+            // this.$router.go(0)
           }
         })
       }).catch(() => {
@@ -153,28 +301,53 @@ export default {
         })
       })
     },
-    // 删除收藏夹
-    removeFavlist() {
-      // 移除所有收藏
-      this.$confirm('确认要删除收藏夹?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        deleteFavlist(this.currentFavlistId).then(res => {
-          if (res.code === 0) {
-            this.$message({
-              type: 'success',
-              message: '收藏夹已清空!'
-            })
-
-            this.$router.go(0)
-          }
+    onCreateAlbum() {
+      this.createAlbumDiaglog = false
+      createAlbum(this.form).then(res => {
+        if (res.code === 0) {
+          this.$message.info('合集已创建')
+          this.$router.go(0)
+        } else {
+          this.$notify({
+            title: '提示',
+            message: res.msg,
+            type: 'warning',
+            duration: 3000
+          })
+        }
+      }).catch(error => {
+        this.$notify({
+          title: '提示',
+          message: error.message,
+          type: 'warning',
+          duration: 3000
         })
-      }).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
         })
       })
     }
@@ -182,81 +355,34 @@ export default {
 }
 </script>
 
-<style scoped>
+<style>
 /*处于手机屏幕时*/
-@media screen and (max-width: 768px){
-  .movie-list {
-    padding-top: 8px;
-    padding-left: 0.5%;
-    padding-right: 0.5%;
+@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;
   }
-
-  .category-btn {
-    padding-left: 0.5%;
-    padding-right: 0.5%;
-    padding-top: 3%;
-    text-align: center;
-  }
-}
-
-.movie-list {
-  padding-top: 15px;
-  padding-left: 6%;
-  padding-right: 6%;
 }
 
 .coverImg {
   width: 100%;
-  height: 320px;
+  height: 90px;
   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;
-}
-
-.category-btn {
-  padding-left: 14%;
-  padding-right: 6%;
-  padding-top: 20px;
-}
 </style>

+ 19 - 6
src/views/post/ImagePost.vue

@@ -2,7 +2,7 @@
   <el-container>
     <el-header height="220">
       <el-row style="margin-top: 10px">
-        <el-button type="plain" icon="el-icon-plus" @click="createAlbumDiaglog = true">创建合集</el-button>
+        <el-button type="plain" icon="el-icon-plus" @click="createAlbumDiaglog = true">创建相册</el-button>
       </el-row>
     </el-header>
     <el-main>
@@ -48,8 +48,8 @@
           </template>
         </el-table-column>
         <el-table-column
-          prop="postType"
-          label="合集类型"
+          prop="total"
+          label="数量"
         />
         <el-table-column
           prop="scope"
@@ -172,7 +172,12 @@
 </template>
 
 <script>
-import { updateAlbumScope, deleteAlbum, getUserAlbums, submitAlbum, createAlbum, getUserImageAlbums } from '@/api/image'
+import {
+  updateAlbumScope,
+  deleteAlbum,
+  createAlbum,
+  getAlbumImage1
+} from '@/api/image'
 
 export default {
   name: 'ImagePost',
@@ -207,7 +212,15 @@ export default {
     },
     getData() {
       this.dataList = []
-      getUserAlbums(this.currentPage).then(resp => {
+      getAlbumImage1(this.currentPage).then(resp => {
+        if (resp.code === 0) {
+          console.log(resp.data)
+          this.dataList = resp.data.list
+          this.totalSize = resp.data.totalSize
+        }
+      })
+
+      /* getUserAlbums(this.currentPage).then(resp => {
         if (resp.code === 0) {
           this.dataList = resp.data.list
           this.totalSize = resp.data.totalSize
@@ -219,7 +232,7 @@ export default {
             duration: 3000
           })
         }
-      })
+      })*/
     },
     handleScope(index, row) {
       this.form.albumId = row.albumId

+ 14 - 18
src/views/post/Post.vue

@@ -43,7 +43,7 @@
           <el-submenu index="/post/video">
             <template slot="title">
               <i class="el-icon-film" />
-              <span slot="title">视频管理</span>
+              <span slot="title">稿件管理</span>
             </template>
             <el-menu-item-group>
               <el-menu-item index="/post/video/file">
@@ -54,25 +54,17 @@
                 <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-s-data" />
-                <span slot="title">视频列表</span>
+                <i class="el-icon-film" />
+                <span slot="title">视频稿件</span>
               </el-menu-item>
-            </el-menu-item-group>
-          </el-submenu>
-          <el-submenu index="/post/album">
-            <template slot="title">
-              <i class="el-icon-picture" />
-              <span slot="title">相册管理</span>
-            </template>
-            <el-menu-item-group>
-              <el-menu-item index="/post/album/publish">
+              <el-menu-item index="/post/image/list">
                 <i class="el-icon-picture" />
-                <span slot="title">发布相册</span>
-              </el-menu-item>
-              <el-menu-item index="/post/album/list">
-                <i class="el-icon-s-data" />
-                <span slot="title">稿件合集</span>
+                <span slot="title">图片稿件</span>
               </el-menu-item>
             </el-menu-item-group>
           </el-submenu>
@@ -84,7 +76,7 @@
             <el-menu-item-group>
               <el-menu-item index="/post/fav/video">
                 <i class="el-icon-film" />
-                <span slot="title">视频</span>
+                <span slot="title">合集列表</span>
               </el-menu-item>
               <el-menu-item index="/post/fav/image">
                 <i class="el-icon-picture" />
@@ -92,6 +84,10 @@
               </el-menu-item>
             </el-menu-item-group>
           </el-submenu>
+          <el-menu-item index="/post/fav/video">
+            <i class="el-icon-collection" />
+            <span slot="title">收藏夹</span>
+          </el-menu-item>
           <el-menu-item index="/post/video/history">
             <i class="el-icon-s-data" />
             <span slot="title">历史记录</span>

+ 57 - 43
src/views/post/VideoPost.vue

@@ -1,6 +1,11 @@
 <template>
-  <el-row>
-    <el-row>
+  <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-row>
+    </el-header>
+    <el-main>
       <el-table
         :data="dataList"
         border
@@ -165,43 +170,6 @@
           </template>
         </el-table-column>
       </el-table>
-      <!-- 修改视频可见范围对话框 -->
-      <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-dialog
-        title="预览视频"
-        append-to-body
-        :visible.sync="showPreviewDialog"
-        :before-close="handleDialogClose"
-        width="70%"
-        center
-      >
-        <template>
-          <video-preview-player :video-prop.sync="videoProp" />
-        </template>
-      </el-dialog>
-    </el-row>
-    <el-row>
       <el-pagination
         background
         :small="screenWidth <= 768"
@@ -213,17 +181,62 @@
         @prev-click="handleCurrentChange"
         @next-click="handleCurrentChange"
       />
-    </el-row>
-  </el-row>
+    </el-main>
+
+    <el-dialog
+      append-to-body
+      :visible.sync="publishVideoDiaglog"
+      width="70%"
+      center
+    >
+      <publish-video />
+    </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-dialog
+      title="预览视频"
+      append-to-body
+      :visible.sync="showPreviewDialog"
+      :before-close="handleDialogClose"
+      width="70%"
+      center
+    >
+      <template>
+        <video-preview-player :video-prop.sync="videoProp" />
+      </template>
+    </el-dialog>
+  </el-container>
 </template>
 
 <script>
 import VideoPreviewPlayer from 'components/VideoPreviewPlayer'
+import PublishVideo from 'components/upload/PublishVideo'
 import { updateVideoScope, videoInfo, deleteVideoPost, getVideoPosts } from '@/api/video'
 
 export default {
   name: 'VideoPost',
-  components: { VideoPreviewPlayer },
+  components: { VideoPreviewPlayer, PublishVideo },
   data() {
     return {
       // 屏幕宽度, 为了控制分页条的大小
@@ -241,7 +254,8 @@ export default {
         videoId: null,
         scope: 1
       },
-      videoResources: []
+      videoResources: [],
+      publishVideoDiaglog: false
     }
   },
   created() {