Files
sgy-web/pages/found2/index2.js
2023-11-24 16:53:50 +08:00

199 lines
5.1 KiB
JavaScript

// pages/found2/index2.js
var startY, endY
Page({
/**
* 页面的初始数据
*/
data: {
page : 1,
has_more: true,
lists : [],
share_id: '',
currentIndex : 0,
safeArea : getApp().globalData.safeArea,
playing : false
},
onLoad(e){
this.setData({
share_id : e.share_id || ''
})
getApp().globalData.inviteText = e.invite || ''
this.getList()
this.videoContext = wx.createVideoContext('found-cont-video')
},
onHide(){
if(this.data.share_id){
this.setData({
share_id:''
})
}
},
getList(){
let params = {
page:this.data.page,
share_id:this.data.share_id
}
wx.$api.found.foundIndex(params).then(res => {
let lists = this.data.lists
if(this.data.page == 1){lists = []}
lists = this.data.lists.concat(res.data.data)
this.setData({
lists : lists,
has_more: res.data.page.has_more,
})
if(this.data.currentIndex == 0){
this.onVideoPlay()
}
}).catch(err=>{
wx.showToast({
title: err.message,
icon :'none',
mask :true,
duration:2000
})
setTimeout(()=>{
this.setData({
loading:false
})
},3000)
})
},
onTouchStart(e) {
let { clientY } = e.changedTouches[0]
startY = clientY
},
onTouchEnd(e) {
let { clientY } = e.changedTouches[0]
endY = clientY
let clientXY = startY - clientY
console.log(clientXY)
if(clientXY>60){
this.onIsDirection('next')
}else if(clientXY < -60){
this.onIsDirection('prev')
}
},
onIsDirection(type){
let {currentIndex,lists} = this.data
if(type == 'next'){
console.log('获取下一个')
if(currentIndex!=lists.length-1){
currentIndex ++
this.setData({
currentIndex:currentIndex
})
this.onVideoPlay()
}else{
if(this.data.has_more){
this.setData({
page:this.data.page+1
})
this.getList()
}else{
wx.showToast({
title: '没有更多了~',
icon:'none',
mask:true
})
}
}
return
}
if(type == 'prev'){
if(currentIndex>0){
currentIndex --
this.setData({
currentIndex:currentIndex
})
this.onVideoPlay()
}else{
wx.showToast({
title: '没有更多了~',
icon:'none',
mask:true
})
}
return
}
},
onVideoPlay(){
if(this.data.lists[this.data.currentIndex].type == 'video'){
setTimeout(() => {
this.videoContext.seek(0)
this.videoContext.play()
this.setData({
playing:true
})
}, 200);
}else{
this.videoContext.pause()
this.videoContext.seek(0)
this.setData({
playing:false
})
}
},
onVideoPause(){
if(this.data.playing){
this.videoContext.pause()
this.setData({
playing:false
})
}else{
this.videoContext.play()
this.setData({
playing:true
})
}
},
// 预览图片
preImg(e){
let current = e.currentTarget.dataset.idx
console.log(current)
let urls = e.currentTarget.dataset.urls
wx.previewImage({
urls,
current:urls[current]
})
},
// 收藏
doSubscribeFavorite(e){
let index= e.currentTarget.dataset.index
let type = e.currentTarget.dataset.type
let item = this.data.lists[index]
let lists = this.data.lists
wx.$api.found.foundSubscribeFavorite(item.id,type).then(res => {
lists[index].is[`${type}`] = res.data.res
lists[index].count[`${type}`] = res.data.count
this.setData({
lists:lists
})
}).catch(err=>{
wx.showToast({
title: err.message,
icon :'none',
mask :true,
duration:2000
})
})
},
onShareAppMessage(e){
let {describe,id,share_cover}= e.target.dataset.obj
return {
title : describe,
imageUrl: share_cover,
path : "/pages/found/index?share_id=" + id + '&invite=' + wx.getStorageSync("invite")
}
},
})