|
@@ -1,228 +1,234 @@
|
|
|
import {
|
|
|
- storeBindingsBehavior
|
|
|
+ storeBindingsBehavior
|
|
|
} from 'mobx-miniprogram-bindings'
|
|
|
import {
|
|
|
- store
|
|
|
+ store
|
|
|
} from '~/store/index'
|
|
|
import {
|
|
|
- setVideoStatus,
|
|
|
- likeVideo,
|
|
|
- collectVideo,
|
|
|
+ setVideoStatus,
|
|
|
+ likeVideo,
|
|
|
+ collectVideo,
|
|
|
} from '~/api/video'
|
|
|
import {
|
|
|
- setFans
|
|
|
+ setFans
|
|
|
} from '~/api/user'
|
|
|
|
|
|
Component({
|
|
|
- behaviors: [storeBindingsBehavior],
|
|
|
- storeBindings: {
|
|
|
- store,
|
|
|
- fields: {
|
|
|
- pkData: 'pkData'
|
|
|
- },
|
|
|
- actions: {
|
|
|
- setPkData: 'setPkData'
|
|
|
- }
|
|
|
+ behaviors: [storeBindingsBehavior],
|
|
|
+ storeBindings: {
|
|
|
+ store,
|
|
|
+ fields: {
|
|
|
+ pkData: 'pkData'
|
|
|
},
|
|
|
- /**
|
|
|
- * 组件的属性列表
|
|
|
- */
|
|
|
- properties: {
|
|
|
- videoInfo: {
|
|
|
- type: Object,
|
|
|
- value: {},
|
|
|
- observer(newVal) {
|
|
|
- if (newVal.userReadExtend && newVal.userReadExtend.resourcesType == 1) {
|
|
|
- newVal.userRead.title = newVal.userRead.title.split('\n')
|
|
|
- }
|
|
|
- this.setData({
|
|
|
- videoInfoCopy: newVal
|
|
|
- })
|
|
|
- }
|
|
|
- },
|
|
|
- videoType: {
|
|
|
- type: String,
|
|
|
- // value 为public时是默认公共样式,为my时为“我的”样式,展示下载删除是否公开,pk为pk的样式文案,excellent是优秀作品展播
|
|
|
- value: 'public'
|
|
|
- },
|
|
|
- currentId: {
|
|
|
- type: Number,
|
|
|
+ actions: {
|
|
|
+ setPkData: 'setPkData'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 组件的属性列表
|
|
|
+ */
|
|
|
+ properties: {
|
|
|
+ videoInfo: {
|
|
|
+ type: Object,
|
|
|
+ value: {},
|
|
|
+ observer(newVal) {
|
|
|
+ if (newVal.userReadExtend && newVal.userReadExtend.resourcesType == 1) {
|
|
|
+ newVal.userRead.title = newVal.userRead.title.split('\n')
|
|
|
}
|
|
|
+ this.setData({
|
|
|
+ videoInfoCopy: newVal
|
|
|
+ })
|
|
|
+ }
|
|
|
},
|
|
|
- data: {
|
|
|
- selfUid: wx.getStorageSync('uid'),
|
|
|
- videoInfoCopy: {}
|
|
|
+ videoType: {
|
|
|
+ type: String,
|
|
|
+ // value 为public时是默认公共样式,为my时为“我的”样式,展示下载删除是否公开,pk为pk的样式文案,excellent是优秀作品展播
|
|
|
+ value: 'public'
|
|
|
},
|
|
|
- methods: {
|
|
|
- // 播放视频
|
|
|
- playVideo() {
|
|
|
- this.triggerEvent('playVideo', this.properties.videoInfo.userRead.id)
|
|
|
- },
|
|
|
- // 设置视频公开还是隐私
|
|
|
- async setVideoPublic() {
|
|
|
- let info = this.properties.videoInfo.userRead
|
|
|
- let data = {
|
|
|
- id: info.id,
|
|
|
- status: info.status === 'NORMAL' ? 'DISABLE' : 'NORMAL'
|
|
|
- }
|
|
|
- let res = await setVideoStatus(data)
|
|
|
- if (res.status == 'DISABLE') {
|
|
|
+ currentId: {
|
|
|
+ type: Number,
|
|
|
+ }
|
|
|
+ },
|
|
|
+ data: {
|
|
|
+ selfUid: wx.getStorageSync('uid'),
|
|
|
+ videoInfoCopy: {}
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ // 播放视频
|
|
|
+ playVideo() {
|
|
|
+ this.triggerEvent('playVideo', this.properties.videoInfo.userRead.id)
|
|
|
+ },
|
|
|
+ // 设置视频公开还是隐私
|
|
|
+ async setVideoPublic() {
|
|
|
+ let info = this.properties.videoInfo.userRead
|
|
|
+ let data = {
|
|
|
+ id: info.id,
|
|
|
+ status: info.status === 'NORMAL' ? 'DISABLE' : 'NORMAL'
|
|
|
+ }
|
|
|
+ let res = await setVideoStatus(data)
|
|
|
+ if (res.status == 'DISABLE') {
|
|
|
+ wx.showToast({
|
|
|
+ title: '该作品仅自己可见',
|
|
|
+ icon: 'none',
|
|
|
+ duration: 2000
|
|
|
+ })
|
|
|
+ }
|
|
|
+ this.setData({
|
|
|
+ ['videoInfoCopy.userRead.status']: info.status === 'NORMAL' ? 'DISABLE' : 'NORMAL'
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 点赞
|
|
|
+ async likeVideo() {
|
|
|
+ let {
|
|
|
+ id
|
|
|
+ } = this.properties.videoInfo.userRead
|
|
|
+ if (this.properties.videoInfo.isLike) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ await likeVideo(id)
|
|
|
+ this.setData({
|
|
|
+ ['videoInfoCopy.isLike']: true,
|
|
|
+ ['videoInfoCopy.userRead.likeAmount']: this.data.videoInfoCopy.userRead.likeAmount + 1
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 下载视频
|
|
|
+ download() {
|
|
|
+ wx.showLoading({
|
|
|
+ title: '保存到本地',
|
|
|
+ mask: true
|
|
|
+ })
|
|
|
+ const url = this.properties.videoInfo.userRead.markPath || ''
|
|
|
+ wx.downloadFile({
|
|
|
+ url,
|
|
|
+ success(res) {
|
|
|
+ if (res.statusCode === 200) {
|
|
|
+ wx.saveVideoToPhotosAlbum({
|
|
|
+ filePath: res.tempFilePath,
|
|
|
+ success(res) {
|
|
|
+ wx.hideLoading()
|
|
|
wx.showToast({
|
|
|
- title: '该作品仅自己可见',
|
|
|
- icon: 'none',
|
|
|
- duration: 2000
|
|
|
+ title: '成功保存到相册!',
|
|
|
+ duration: 3000,
|
|
|
+ icon: 'success',
|
|
|
+ mask: true
|
|
|
})
|
|
|
- }
|
|
|
- this.setData({
|
|
|
- ['videoInfoCopy.userRead.status']: info.status === 'NORMAL' ? 'DISABLE' : 'NORMAL'
|
|
|
- })
|
|
|
- },
|
|
|
- // 点赞
|
|
|
- async likeVideo() {
|
|
|
- let {
|
|
|
- id
|
|
|
- } = this.properties.videoInfo.userRead
|
|
|
- if (this.properties.videoInfo.isLike) {
|
|
|
- return
|
|
|
- }
|
|
|
- await likeVideo(id)
|
|
|
- this.setData({
|
|
|
- ['videoInfoCopy.isLike']: true,
|
|
|
- ['videoInfoCopy.userRead.likeAmount']: this.data.videoInfoCopy.userRead.likeAmount + 1
|
|
|
- })
|
|
|
- },
|
|
|
- // 下载视频
|
|
|
- download() {
|
|
|
- wx.showLoading({
|
|
|
- title: '保存到本地',
|
|
|
- mask: true
|
|
|
- })
|
|
|
- const url = this.properties.videoInfo.userRead.markPath || ''
|
|
|
- wx.downloadFile({
|
|
|
- url,
|
|
|
- success(res) {
|
|
|
- if (res.statusCode === 200) {
|
|
|
- wx.saveVideoToPhotosAlbum({
|
|
|
- filePath: res.tempFilePath,
|
|
|
- success(res) {
|
|
|
- wx.hideLoading()
|
|
|
- wx.showToast({
|
|
|
- title: '成功保存到相册!',
|
|
|
- duration: 3000,
|
|
|
- icon: 'success',
|
|
|
- mask: true
|
|
|
- })
|
|
|
- },
|
|
|
- fail() {
|
|
|
- wx.hideLoading()
|
|
|
- wx.showToast({
|
|
|
- title: '网络不给力',
|
|
|
- icon: 'error',
|
|
|
- duration: 3000,
|
|
|
- mask: true
|
|
|
- })
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
- },
|
|
|
- fail() {
|
|
|
- wx.hideLoading()
|
|
|
- wx.showToast({
|
|
|
- title: '网络不给力',
|
|
|
- icon: 'error',
|
|
|
- duration: 3000,
|
|
|
- mask: true
|
|
|
- })
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- //评论
|
|
|
- openComment() {
|
|
|
- this.triggerEvent('openComment')
|
|
|
- },
|
|
|
- // 删除
|
|
|
- delete() {
|
|
|
- let {
|
|
|
- id
|
|
|
- } = this.properties.videoInfo.userRead
|
|
|
- wx.showModal({
|
|
|
- title: '确认删除吗?',
|
|
|
- content: '作品将被永久删除,无法找回。',
|
|
|
- confirmText: '确认',
|
|
|
- cancelText: '取消',
|
|
|
- success: async (res) => {
|
|
|
- if (res.confirm) {
|
|
|
- let data = {
|
|
|
- id,
|
|
|
- status: 'DEL'
|
|
|
- }
|
|
|
- await setVideoStatus(data)
|
|
|
- wx.showToast({
|
|
|
- title: '删除成功!',
|
|
|
- icon: "none"
|
|
|
- })
|
|
|
- this.triggerEvent('getList')
|
|
|
- }
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- // 收藏课程
|
|
|
- async collect() {
|
|
|
- let {
|
|
|
- id,
|
|
|
- type,
|
|
|
- uid
|
|
|
- } = this.properties.videoInfo.userRead
|
|
|
- if (wx.getStorageSync('uid') == uid) {
|
|
|
- return wx.showToast({
|
|
|
- title: '不能收藏自己作品哦!',
|
|
|
- icon: "none"
|
|
|
+ },
|
|
|
+ fail() {
|
|
|
+ wx.hideLoading()
|
|
|
+ wx.showToast({
|
|
|
+ title: '网络不给力',
|
|
|
+ icon: 'error',
|
|
|
+ duration: 3000,
|
|
|
+ mask: true
|
|
|
})
|
|
|
- }
|
|
|
- await collectVideo({
|
|
|
- targetCode: id,
|
|
|
- favoritesType: type
|
|
|
- })
|
|
|
- this.setData({
|
|
|
- ['videoInfoCopy.isFavorites']: !this.data.videoInfoCopy.isFavorites
|
|
|
+ }
|
|
|
})
|
|
|
+ }
|
|
|
},
|
|
|
- // 关注
|
|
|
- async setFans() {
|
|
|
- if (this.properties.videoInfo.isFans) {
|
|
|
- return
|
|
|
- }
|
|
|
- await setFans({
|
|
|
- uid: this.properties.videoInfo.user.uid
|
|
|
- })
|
|
|
- this.triggerEvent('setListFans', this.properties.videoInfo.user.uid)
|
|
|
- },
|
|
|
- toPkPage() {
|
|
|
- let videoInfo = this.data.videoInfoCopy
|
|
|
- if (this.properties.videoType == 'pk') {
|
|
|
- this.setPkData({
|
|
|
- nickName: videoInfo.user.nickName || videoInfo.user.eid,
|
|
|
- avatar: videoInfo.user.avatar,
|
|
|
- score: videoInfo.userRead.score,
|
|
|
- audioPath: videoInfo.userRead.audioPath,
|
|
|
- exampleId: videoInfo.userRead.exampleId,
|
|
|
- id: videoInfo.userRead.id
|
|
|
- })
|
|
|
+ fail() {
|
|
|
+ wx.hideLoading()
|
|
|
+ wx.showToast({
|
|
|
+ title: '网络不给力',
|
|
|
+ icon: 'error',
|
|
|
+ duration: 3000,
|
|
|
+ mask: true
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //评论
|
|
|
+ openComment() {
|
|
|
+ this.triggerEvent('openComment')
|
|
|
+ },
|
|
|
+ // 删除
|
|
|
+ delete() {
|
|
|
+ let {
|
|
|
+ id
|
|
|
+ } = this.properties.videoInfo.userRead
|
|
|
+ wx.showModal({
|
|
|
+ title: '确认删除吗?',
|
|
|
+ content: '作品将被永久删除,无法找回。',
|
|
|
+ confirmText: '确认',
|
|
|
+ cancelText: '取消',
|
|
|
+ success: async (res) => {
|
|
|
+ if (res.confirm) {
|
|
|
+ let data = {
|
|
|
+ id,
|
|
|
+ status: 'DEL'
|
|
|
}
|
|
|
- let readId = videoInfo.userRead.id
|
|
|
- let url = this.properties.videoType == 'excellent' ? `/pages/pkPage/index?videoId=${readId}` : `/pages/reading/index?videoId=${videoInfo.userRead.exampleId}&readingType=${this.properties.videoType}`
|
|
|
- wx.navigateTo({
|
|
|
- url
|
|
|
- })
|
|
|
- },
|
|
|
- jumpUserInfo() {
|
|
|
- wx.navigateTo({
|
|
|
- url: `/pages/personal/index?uid=${this.data.videoInfoCopy.user.uid}&type=user`,
|
|
|
+ await setVideoStatus(data)
|
|
|
+ wx.showToast({
|
|
|
+ title: '删除成功!',
|
|
|
+ icon: "none"
|
|
|
})
|
|
|
- },
|
|
|
- // 控制音频播放
|
|
|
- audioPlay() {
|
|
|
- this.triggerEvent('playAudio')
|
|
|
+ this.triggerEvent('getList')
|
|
|
+ }
|
|
|
}
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 收藏课程
|
|
|
+ async collect() {
|
|
|
+ let {
|
|
|
+ id,
|
|
|
+ type,
|
|
|
+ uid
|
|
|
+ } = this.properties.videoInfo.userRead
|
|
|
+ if (wx.getStorageSync('uid') == uid) {
|
|
|
+ return wx.showToast({
|
|
|
+ title: '不能收藏自己作品哦!',
|
|
|
+ icon: "none"
|
|
|
+ })
|
|
|
+ }
|
|
|
+ await collectVideo({
|
|
|
+ targetCode: id,
|
|
|
+ favoritesType: type
|
|
|
+ })
|
|
|
+ this.setData({
|
|
|
+ ['videoInfoCopy.isFavorites']: !this.data.videoInfoCopy.isFavorites
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 关注
|
|
|
+ async setFans() {
|
|
|
+ if (this.properties.videoInfo.isFans) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ await setFans({
|
|
|
+ uid: this.properties.videoInfo.user.uid
|
|
|
+ })
|
|
|
+ this.triggerEvent('setListFans', this.properties.videoInfo.user.uid)
|
|
|
+ },
|
|
|
+ toPkPage() {
|
|
|
+ let videoInfo = this.data.videoInfoCopy
|
|
|
+ if (this.properties.videoType == 'pk') {
|
|
|
+ if (videoInfo.user.uid == wx.getStorageSync('uid')) {
|
|
|
+ return wx.showToast({
|
|
|
+ title: '不能与自己PK哦~',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ this.setPkData({
|
|
|
+ nickName: videoInfo.user.nickName || videoInfo.user.eid,
|
|
|
+ avatar: videoInfo.user.avatar,
|
|
|
+ score: videoInfo.userRead.score,
|
|
|
+ audioPath: videoInfo.userRead.audioPath,
|
|
|
+ exampleId: videoInfo.userRead.exampleId,
|
|
|
+ id: videoInfo.userRead.id
|
|
|
+ })
|
|
|
+ }
|
|
|
+ let readId = videoInfo.userRead.id
|
|
|
+ let url = this.properties.videoType == 'excellent' ? `/pages/pkPage/index?videoId=${readId}` : `/pages/reading/index?videoId=${videoInfo.userRead.exampleId}&readingType=${this.properties.videoType}`
|
|
|
+ wx.navigateTo({
|
|
|
+ url
|
|
|
+ })
|
|
|
+ },
|
|
|
+ jumpUserInfo() {
|
|
|
+ wx.navigateTo({
|
|
|
+ url: `/pages/personal/index?uid=${this.data.videoInfoCopy.user.uid}&type=user`,
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 控制音频播放
|
|
|
+ audioPlay() {
|
|
|
+ this.triggerEvent('playAudio')
|
|
|
}
|
|
|
+ }
|
|
|
})
|