1 changed files with 0 additions and 331 deletions
@ -1,331 +0,0 @@ |
|||||||
<template> |
|
||||||
<div id="home-index"> |
|
||||||
<SlideRowList |
|
||||||
name="baseSlide" |
|
||||||
:canMove="canMove" |
|
||||||
v-model:active-index="baseActiveIndex"> |
|
||||||
<SlideItem> |
|
||||||
<SlideRowList |
|
||||||
style="height: calc(100% - 50rem);" |
|
||||||
v-model:active-index="activeIndex" |
|
||||||
indicatorType="home" |
|
||||||
> |
|
||||||
<SlideItem> |
|
||||||
<SlideColumnList> |
|
||||||
<SlideItem style="background: tan"> |
|
||||||
<p>12</p> |
|
||||||
<p>111111111111</p> |
|
||||||
<p>111111111111</p> |
|
||||||
<p>111111111111</p> |
|
||||||
<p>111111111111</p> |
|
||||||
<p>111111111111</p> |
|
||||||
<p>111111111111</p> |
|
||||||
<p>111111111111</p> |
|
||||||
<p>111111111111</p> |
|
||||||
<p>111111111111</p> |
|
||||||
<p>111111111111</p> |
|
||||||
<p>111111111111</p> |
|
||||||
<p>111111111111</p> |
|
||||||
<p>111111111111</p> |
|
||||||
<p>111111111111</p> |
|
||||||
<p>111111111111</p> |
|
||||||
<p>111111111111</p> |
|
||||||
<p>111111111111</p> |
|
||||||
<p>111111111111</p> |
|
||||||
<p>111111111111</p> |
|
||||||
<p>111111111111</p> |
|
||||||
<p>111111111111</p> |
|
||||||
<p>111111111111</p> |
|
||||||
</SlideItem> |
|
||||||
<SlideItem style="background: red;"> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
<p>222222222222</p> |
|
||||||
</SlideItem> |
|
||||||
<SlideItem style="background: yellow"> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
<p>3333333333333</p> |
|
||||||
</SlideItem> |
|
||||||
</SlideColumnList> |
|
||||||
</SlideItem> |
|
||||||
<SlideItem> |
|
||||||
<SlideColumnVirtualList |
|
||||||
ref="virtualList" |
|
||||||
:list="videos" |
|
||||||
:renderSlide="render" |
|
||||||
v-model:active-index="videoActixveIndex" |
|
||||||
@end="end" |
|
||||||
> |
|
||||||
</SlideColumnVirtualList> |
|
||||||
</SlideItem> |
|
||||||
</SlideRowList> |
|
||||||
<Footer v-bind:init-tab="1"/> |
|
||||||
</SlideItem> |
|
||||||
<SlideItem style="font-size: 40px;overflow:auto;"> |
|
||||||
<Uploader |
|
||||||
ref="uploader" |
|
||||||
:isOnThisPage="baseActiveIndex === 1" |
|
||||||
:author="this.videos[this.videoActiveIndex]?.author" |
|
||||||
@toggleCanMove="e => this.canMove = e" |
|
||||||
@back="baseActiveIndex = 0" |
|
||||||
@showFollowSetting="showFollowSetting = true" |
|
||||||
@showFollowSetting2="showFollowSetting2 = true" |
|
||||||
/> |
|
||||||
</SlideItem> |
|
||||||
</SlideRowList> |
|
||||||
|
|
||||||
<Comment v-model="isCommenting"/> |
|
||||||
|
|
||||||
<Share v-model="isSharing" |
|
||||||
ref="share" |
|
||||||
page-id="home-index" |
|
||||||
@dislike="dislike" |
|
||||||
:videoId="videos[videoActiveIndex]?.id" |
|
||||||
:canDownload="videos[videoActiveIndex]?.canDownload" |
|
||||||
@play-feedback="showPlayFeedback = true" |
|
||||||
@shareToFriend="delayShowDialog(e => this.shareToFriend = true)" |
|
||||||
@showDouyinCode="showDouyinCode = true" |
|
||||||
@showShare2WeChatZone="shareType = 2" |
|
||||||
@share2WeChat="shareType = 3" |
|
||||||
@share2QQZone="shareType = 4" |
|
||||||
@share2QQ="shareType = 5" |
|
||||||
@share2Webo="shareType = 8" |
|
||||||
@download="shareType = 9" |
|
||||||
/> |
|
||||||
|
|
||||||
<PlayFeedback v-model="showPlayFeedback"/> |
|
||||||
|
|
||||||
<DouyinCode v-model="showDouyinCode"/> |
|
||||||
|
|
||||||
|
|
||||||
<ShareTo v-model:type="shareType" |
|
||||||
:videoId="videos[videoActiveIndex]?.id" |
|
||||||
:canDownload="videos[videoActiveIndex]?.canDownload" |
|
||||||
/> |
|
||||||
|
|
||||||
<FollowSetting |
|
||||||
@showChangeNote="delayShowDialog( e => this.showChangeNote = true)" |
|
||||||
@showBlockDialog="delayShowDialog(e => this.showBlockDialog = true)" |
|
||||||
@showShare="delayShowDialog( e => this.isSharing = true)" |
|
||||||
v-model="showFollowSetting"/> |
|
||||||
|
|
||||||
<FollowSetting2 |
|
||||||
@cancelFollow="$refs.uploader.cancelFollow()" |
|
||||||
v-model="showFollowSetting2"/> |
|
||||||
|
|
||||||
<BlockDialog v-model="showBlockDialog"/> |
|
||||||
|
|
||||||
<ConfirmDialog |
|
||||||
title="设置备注名" |
|
||||||
ok-text="确认" |
|
||||||
v-model:visible="showChangeNote" |
|
||||||
> |
|
||||||
<Search mode="light" v-model="test" :isShowSearchIcon="false"/> |
|
||||||
</ConfirmDialog> |
|
||||||
|
|
||||||
<ShareToFriend v-model="shareToFriend"/> |
|
||||||
|
|
||||||
</div> |
|
||||||
</template> |
|
||||||
<script lang="jsx"> |
|
||||||
import Video1 from "../../components/Video.vue"; |
|
||||||
import Comment from "../../components/Comment"; |
|
||||||
import Share from "../../components/Share"; |
|
||||||
import SlideColumnList from "../../components/slide/SlideColumnList"; |
|
||||||
import SlideRowList from "../../components/slide/SlideRowList"; |
|
||||||
import PlayFeedback from "./components/PlayFeedback"; |
|
||||||
import FromBottomDialog from "../../components/dialog/FromBottomDialog"; |
|
||||||
import ShareTo from "./components/ShareTo"; |
|
||||||
import DouyinCode from "../../components/DouyinCode"; |
|
||||||
import Uploader from "../me/Uploader"; |
|
||||||
import FollowSetting from "./components/FollowSetting"; |
|
||||||
import BlockDialog from "../message/components/BlockDialog"; |
|
||||||
import Search from "../../components/Search"; |
|
||||||
import ConfirmDialog from "../../components/dialog/ConfirmDialog"; |
|
||||||
import FollowSetting2 from "./components/FollowSetting2"; |
|
||||||
import Dom from "../../utils/dom"; |
|
||||||
import ShareToFriend from "./components/ShareToFriend"; |
|
||||||
import resource from "../../assets/data/resource.js"; |
|
||||||
|
|
||||||
export default { |
|
||||||
name: "HomeIndex", |
|
||||||
components: { |
|
||||||
FromBottomDialog, |
|
||||||
SlideColumnList, |
|
||||||
SlideRowList, |
|
||||||
Video1, |
|
||||||
Comment, |
|
||||||
Share, |
|
||||||
Uploader, |
|
||||||
PlayFeedback, |
|
||||||
ShareTo, |
|
||||||
DouyinCode, |
|
||||||
FollowSetting, |
|
||||||
FollowSetting2, |
|
||||||
BlockDialog, |
|
||||||
Search, |
|
||||||
ConfirmDialog, |
|
||||||
ShareToFriend |
|
||||||
}, |
|
||||||
data() { |
|
||||||
return { |
|
||||||
videos: [], |
|
||||||
isCommenting: false, |
|
||||||
isSharing: false, |
|
||||||
canMove: true, |
|
||||||
|
|
||||||
shareType: -1, |
|
||||||
|
|
||||||
showPlayFeedback: false, |
|
||||||
showShareDuoshan: false, |
|
||||||
showShareDialog: false, |
|
||||||
showShare2WeChatZone: false, |
|
||||||
showDouyinCode: false, |
|
||||||
showFollowSetting: false, |
|
||||||
showFollowSetting2: false, |
|
||||||
showBlockDialog: false, |
|
||||||
showChangeNote: false, |
|
||||||
shareToFriend: false, |
|
||||||
|
|
||||||
test: '', |
|
||||||
|
|
||||||
videoActiveIndex: 0, |
|
||||||
baseActiveIndex: 0, |
|
||||||
activeIndex: 1, |
|
||||||
totalSize: 52, |
|
||||||
pageSize: 10, |
|
||||||
pageNo: 0, |
|
||||||
loading: false, |
|
||||||
render: (item, itemIndex, play) => { |
|
||||||
return ( |
|
||||||
<div className={`base-slide-item video-slide-item video-slide-item-${itemIndex}`} data-index={itemIndex}> |
|
||||||
<Video1 |
|
||||||
isPlay={play} |
|
||||||
video={item} |
|
||||||
index={itemIndex} |
|
||||||
onShowComments={e => this.isCommenting = true} |
|
||||||
onShowShare={e => this.isSharing = true} |
|
||||||
onGoUserInfo={e => this.baseActiveIndex = 1} |
|
||||||
onGoMusic={e => this.$nav('/home/music')} |
|
||||||
v-model={[this.videos[itemIndex], 'video']} |
|
||||||
/> |
|
||||||
</div> |
|
||||||
) |
|
||||||
} |
|
||||||
} |
|
||||||
}, |
|
||||||
watch: { |
|
||||||
videoActiveIndex(newVal, oldVal) { |
|
||||||
// console.log('videoActiveIndex', newVal, oldVal) |
|
||||||
new Dom(`.v-${newVal}-video`).trigger('play') |
|
||||||
setTimeout(() => { |
|
||||||
new Dom(`.v-${oldVal}-video`).trigger('stop') |
|
||||||
}, 200) |
|
||||||
if (newVal >= this.videos.length - 3 && newVal < this.totalSize) { |
|
||||||
if (this.loading) return |
|
||||||
this.pageNo++ |
|
||||||
this.getData() |
|
||||||
} |
|
||||||
} |
|
||||||
}, |
|
||||||
created() { |
|
||||||
}, |
|
||||||
mounted() { |
|
||||||
this.height = document.body.clientHeight |
|
||||||
this.width = document.body.clientWidth |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
this.getData() |
|
||||||
}, |
|
||||||
methods: { |
|
||||||
delayShowDialog(cb) { |
|
||||||
setTimeout(() => { |
|
||||||
cb() |
|
||||||
}, 400) |
|
||||||
}, |
|
||||||
dislike() { |
|
||||||
this.$refs.virtualList.dislike(this.videos[10]) |
|
||||||
this.videos[this.currentSlideItemIndex] = this.videos[10] |
|
||||||
this.$notice('操作成功,将减少此类视频的推荐') |
|
||||||
}, |
|
||||||
async getData() { |
|
||||||
if (process.env.NODE_ENV !== 'development') { |
|
||||||
this.totalSize = 11 |
|
||||||
// return this.videos = this.$clone(this.localVideos) |
|
||||||
// await this.$sleep(200) |
|
||||||
// return this.videos = this.$clone(this.webVideos) |
|
||||||
return this.videos = this.$clone(resource.videos) |
|
||||||
} |
|
||||||
this.loading = true |
|
||||||
let res = await this.$api.videos.recommended({pageNo: this.pageNo, pageSize: this.pageSize}) |
|
||||||
console.log(res) |
|
||||||
this.loading = false |
|
||||||
if (res.code === this.SUCCESS) { |
|
||||||
this.totalSize = res.data.total |
|
||||||
this.videos = this.videos.concat(res.data.list) |
|
||||||
// this.videos = this.$clone(this.localVideos) |
|
||||||
} else { |
|
||||||
this.pageNo-- |
|
||||||
} |
|
||||||
}, |
|
||||||
t(e) { |
|
||||||
console.log('ttttt', e) |
|
||||||
}, |
|
||||||
end() { |
|
||||||
this.$notice('暂时没有更多了') |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
</script> |
|
||||||
<style lang="less"> |
|
||||||
#home-index { |
|
||||||
height: 100%; |
|
||||||
width: 100%; |
|
||||||
//z-index: 4; |
|
||||||
position: relative; |
|
||||||
} |
|
||||||
</style> |
|
Loading…
Reference in new issue