| @ -0,0 +1,211 @@ | |||||
| <template> | |||||
| <scroll-view | |||||
| scroll-y="true" | |||||
| :style="{height: height}" | |||||
| @scrolltolower="loadMoreData"> | |||||
| <view class="videoList"> | |||||
| <view class="video-item" v-for="(item, index) in spotListWord" :key="index" | |||||
| > | |||||
| <view class="image" @click="showVideo(item, index)"> | |||||
| <image :src="item.spotImage && item.spotImage.split(',')[0]" mode="aspectFill"> | |||||
| </image> | |||||
| </view> | |||||
| <view class="bottom"> | |||||
| <view class="headImage"> | |||||
| {{ item.spotName }} | |||||
| </view> | |||||
| <view class="like"> | |||||
| <view class=""> | |||||
| 查看详情 | |||||
| </view> | |||||
| <view class="" | |||||
| style="margin-top: 10rpx;"> | |||||
| <uv-icon size="26rpx" | |||||
| name="arrow-right"></uv-icon> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </scroll-view> | |||||
| </template> | |||||
| <script> | |||||
| import { mapState } from 'vuex' | |||||
| export default { | |||||
| props : { | |||||
| height : { | |||||
| default : 'auto' | |||||
| }, | |||||
| roleId : { | |||||
| } | |||||
| }, | |||||
| data() { | |||||
| return { | |||||
| queryParams: { | |||||
| pageNo: 1, | |||||
| pageSize: 10, | |||||
| }, | |||||
| total : 0, | |||||
| list : [], | |||||
| } | |||||
| }, | |||||
| computed : { | |||||
| ...mapState(['spotList']), | |||||
| spotListWord(){ | |||||
| return this.spotList.filter(n => n.categoryId == 0) | |||||
| }, | |||||
| }, | |||||
| methods: { | |||||
| showVideo(item, current){ | |||||
| // this.$utils.hanldePreview | |||||
| // uni.previewMedia({ | |||||
| // current : item.videoContent | |||||
| // }) | |||||
| this.$utils.navigateTo(`/pages_order/service/articleDetail?id=${item.id}&type=Inheritance`) | |||||
| return | |||||
| let sources = [] | |||||
| this.list.forEach(n => { | |||||
| sources.push({ | |||||
| url : n.travelVideo.videoContent, | |||||
| type : 'video' | |||||
| }) | |||||
| }) | |||||
| wx.previewMedia({ | |||||
| sources, // 需要预览的资源列表 | |||||
| current, // 当前显示的资源序号 | |||||
| // url: url // 当前预览资源的url链接 | |||||
| }) | |||||
| }, | |||||
| queryVideoList(){ | |||||
| if(this.roleId){ | |||||
| this.queryParams.roleInfoId = this.roleId | |||||
| } | |||||
| if(uni.getStorageSync('token')){ | |||||
| this.queryParams.token = uni.getStorageSync('token') | |||||
| } | |||||
| this.$api('queryVedioById', this.queryParams, res => { | |||||
| if(res.code == 200){ | |||||
| this.list = res.result | |||||
| // this.total = res.result.total | |||||
| } | |||||
| }) | |||||
| }, | |||||
| loadMoreData(){ | |||||
| if(this.queryParams.pageSize <= this.list.length){ | |||||
| this.queryParams.pageSize += 10 | |||||
| this.queryVideoList() | |||||
| } | |||||
| }, | |||||
| addThumpup(videoId){ | |||||
| this.$api('addThumpup', { | |||||
| videoId | |||||
| }, res => { | |||||
| if(res.code == 200){ | |||||
| this.queryVideoList() | |||||
| uni.showToast({ | |||||
| title: res.message, | |||||
| icon: 'none' | |||||
| }) | |||||
| } | |||||
| }) | |||||
| }, | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style scoped lang="scss"> | |||||
| .videoList { | |||||
| display: flex; | |||||
| flex-wrap: wrap; | |||||
| margin-right: 20rpx; | |||||
| .video-item { | |||||
| background-color: #fff; | |||||
| position: relative; | |||||
| width: calc(50% - 20rpx); | |||||
| margin-left: 20rpx; | |||||
| margin-top: 20rpx; | |||||
| .image { | |||||
| position: relative; | |||||
| width: 100%; | |||||
| height: 420rpx; | |||||
| overflow: hidden; | |||||
| image { | |||||
| width: 100%; | |||||
| height: 420rpx; | |||||
| border-radius: 30rpx; | |||||
| } | |||||
| .icon { | |||||
| position: absolute; | |||||
| right: 30rpx; | |||||
| top: 30rpx; | |||||
| width: 60rpx; | |||||
| height: 60rpx; | |||||
| background-color: #ffffffaa; | |||||
| border-radius: 50%; | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| } | |||||
| } | |||||
| .bottom { | |||||
| font-size: 30rpx; | |||||
| display: flex; | |||||
| justify-content: space-between; | |||||
| position: absolute; | |||||
| bottom: 0; | |||||
| left: 0; | |||||
| background-color: #ffffffaa; | |||||
| width: calc(100% - 40rpx); | |||||
| padding: 30rpx; | |||||
| font-weight: 900; | |||||
| align-items: center; | |||||
| .headImage { | |||||
| display: flex; | |||||
| align-items: center; | |||||
| image { | |||||
| width: 50rpx; | |||||
| height: 50rpx; | |||||
| border-radius: 50%; | |||||
| margin-right: 6rpx; | |||||
| } | |||||
| } | |||||
| .like { | |||||
| display: flex; | |||||
| align-items: center; | |||||
| justify-content: center; | |||||
| font-weight: 500; | |||||
| font-size: 22rpx; | |||||
| } | |||||
| } | |||||
| } | |||||
| .showVideo{ | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| height: 100%; | |||||
| width: 1000%; | |||||
| video{ | |||||
| // width: 100%; | |||||
| // height: 100%; | |||||
| } | |||||
| } | |||||
| } | |||||
| </style> | |||||