578 lines
15 KiB
JavaScript
578 lines
15 KiB
JavaScript
// packageI/newMedia/newMediaAdVideo/newMediaAdVideo.js
|
|
var app = getApp();
|
|
Page({
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
language: "",
|
|
amount_id: "",
|
|
isLoadMore: true,
|
|
page: 1,
|
|
total_page: 0,
|
|
popularVideo: [],
|
|
heightauto: "auto",
|
|
widthauto: "auto",
|
|
showVideo: {},
|
|
myvideo: "",
|
|
show: false,
|
|
screeheight: 0,
|
|
minStyle: true,
|
|
firstcontent: false,
|
|
cleartime: null,
|
|
realIndex: 0,
|
|
kFootshow: true,
|
|
is_plugins: 0,
|
|
|
|
timer: null,
|
|
|
|
|
|
advertisingt_type: 0,
|
|
commentsShow:false,
|
|
readReawrdList:{},
|
|
rewardShow:false,
|
|
|
|
attentionRewaedData:{},
|
|
attentionRewaedShow:false,
|
|
|
|
reward_button:{}
|
|
|
|
//--------
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad: function (options) {
|
|
this.data.myvideo = wx.createVideoContext("myvideo");
|
|
this.getinformation();
|
|
|
|
if (options.advertisingt_type) {
|
|
this.data.advertisingt_type = options.advertisingt_type;
|
|
}
|
|
if (options.vid) {
|
|
this.setData({
|
|
amount_id: options.vid,
|
|
});
|
|
}
|
|
if (options.mid) {
|
|
app._setMid(options.mid);
|
|
this.sendForwardReward();
|
|
}
|
|
|
|
if (options.page) {
|
|
this.setData({
|
|
page: Number(options.page) ? Number(options.page) : 0,
|
|
});
|
|
}
|
|
// 判断是否有page和vid 没有vid就是会员中心进入的样式二 有page的肯定是从列表进入
|
|
if (options.page || !options.vid) {
|
|
this.getData();
|
|
}
|
|
},
|
|
|
|
|
|
/**
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
*/
|
|
onReady: function () {
|
|
let language = wx.getStorageSync("langIndex");
|
|
this.setData({
|
|
language: language.en,
|
|
});
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow: function () {},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面隐藏
|
|
*/
|
|
onHide: function () {},
|
|
|
|
handAttentionRewaed(evt){
|
|
this.setData({
|
|
attentionRewaedData:evt.detail,
|
|
attentionRewaedShow:true
|
|
});
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面卸载
|
|
*/
|
|
onUnload: function () {},
|
|
|
|
/**
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
*/
|
|
onPullDownRefresh: function () {},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom: function () {},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareTimeline: function () {
|
|
var value = wx.getStorageSync("yz_uid");
|
|
var mid = "";
|
|
if (value) {
|
|
mid = value;
|
|
}
|
|
let json = {};
|
|
let shareImg = "";
|
|
if (this.data.popularVideo[this.data.realIndex] && this.data.popularVideo[this.data.realIndex].cover_picture) {
|
|
shareImg = this.data.popularVideo[this.data.realIndex].cover_picture;
|
|
}
|
|
|
|
json = {
|
|
title: this.data.showVideo.title ? this.data.showVideo.title : "",
|
|
query: "vid=" + this.data.amount_id + "&page=" + this.page + "&mid=" + mid +"&advertisingt_type="+this.data.advertisingt_type,
|
|
};
|
|
|
|
if (shareImg) {
|
|
json.imageUrl = shareImg;
|
|
}
|
|
console.log(json);
|
|
return json;
|
|
},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareAppMessage: function (res) {
|
|
|
|
var value = wx.getStorageSync("yz_uid");
|
|
var mid = "";
|
|
if (value) {
|
|
mid = value;
|
|
}
|
|
let json = {};
|
|
let shareImg = "";
|
|
if (this.data.popularVideo[this.data.realIndex] && this.data.popularVideo[this.data.realIndex].cover_picture) {
|
|
shareImg = this.data.popularVideo[this.data.realIndex].cover_picture;
|
|
}
|
|
json = {
|
|
title: this.data.showVideo.title ? this.data.showVideo.title : "",
|
|
path: "/packageI/newMedia/newMediaAdVideo/newMediaAdVideo?vid=" + this.data.amount_id + "&page=" + this.data.page + "&mid=" + mid+"&advertisingt_type="+this.data.advertisingt_type,
|
|
};
|
|
|
|
if (shareImg) {
|
|
json.imageUrl = shareImg;
|
|
}
|
|
console.log(json);
|
|
return json;
|
|
},
|
|
|
|
getData() {
|
|
let that = this;
|
|
let urlStr;
|
|
|
|
urlStr = app.getNetAddresss("plugin.new-media-advertising.frontend.media-advertisingt.get-list");
|
|
urlStr += "&page=" + this.data.page;
|
|
|
|
urlStr += "&advertisingt_type=" + this.data.advertisingt_type;
|
|
if (this.data.advertisingt_type == 1) {
|
|
urlStr += "&genre=" + 4;
|
|
}
|
|
|
|
app._getNetWork({
|
|
url: urlStr,
|
|
success: function (resdata) {
|
|
var res = resdata.data;
|
|
if (res.result == 1) {
|
|
that.data.isLoadMore = true;
|
|
|
|
that.data.total_page = res.data.list.last_page;
|
|
if (!that.data.total_page) {
|
|
that.data.total_page = 0;
|
|
}
|
|
that.setData({
|
|
popularVideo: res.data.list.data,
|
|
reward_button:res.data.reward_button
|
|
});
|
|
let popularVideoData = res.data.list.data;
|
|
|
|
if (that.data.amount_id) {
|
|
for (let i = 0; i < res.data.list.data.length; i++) {
|
|
if (res.data.list.data[i].id == that.data.amount_id) {
|
|
that.setData({
|
|
showVideo: res.data.list.data[i],
|
|
});
|
|
popularVideoData.splice(0, i);
|
|
that.setData({
|
|
popularVideo: popularVideoData,
|
|
});
|
|
wx.setNavigationBarTitle({
|
|
title: that.data.showVideo.title,
|
|
});
|
|
that.setData({
|
|
firstcontent: true,
|
|
});
|
|
that.clickSwiperbtn(0);
|
|
return;
|
|
}
|
|
}
|
|
wx.setNavigationBarTitle({
|
|
title: that.data.showVideo.title,
|
|
});
|
|
} else {
|
|
that.setData({
|
|
showVideo: that.data.popularVideo[0],
|
|
});
|
|
that.clickSwiperbtn(0);
|
|
}
|
|
|
|
that.setData({
|
|
firstcontent: true,
|
|
});
|
|
} else {
|
|
wx.showToast({
|
|
title: res.msg,
|
|
icon: "none",
|
|
duration: 1500,
|
|
});
|
|
}
|
|
},
|
|
fail: function (res) {
|
|
console.log(res);
|
|
},
|
|
});
|
|
},
|
|
getinformation() {
|
|
try {
|
|
const res = wx.getSystemInfoSync();
|
|
let windowHeight = res.windowHeight;
|
|
let windowWidth = res.windowWidth;
|
|
this.setData({
|
|
heightauto: windowHeight + "px",
|
|
widthauto: windowWidth + "px",
|
|
});
|
|
this.data.screeheight = windowHeight;
|
|
} catch (e) {
|
|
// Do something when catch error
|
|
}
|
|
},
|
|
clickSwiperbtn(e) {
|
|
let index = 0;
|
|
if (e.currentTarget) {
|
|
index = e.currentTarget.dataset.index;
|
|
} else {
|
|
index = e;
|
|
}
|
|
this.clickSwiper(index);
|
|
},
|
|
clickSwiper(e) {
|
|
let index = e;
|
|
console.log("zhixing");
|
|
if (this.data.popularVideo[index].show && this.data.amount_id === this.data.popularVideo[index].id) {
|
|
this.setData({
|
|
show: false,
|
|
["popularVideo[" + index + "].show"]: false,
|
|
});
|
|
this.data.myvideo.pause();
|
|
return;
|
|
}
|
|
this.judgmentpic(index);
|
|
this.setData({
|
|
show: true,
|
|
amount_id: this.data.popularVideo[index].id,
|
|
["popularVideo[" + index + "].show"]: true,
|
|
});
|
|
this.data.logID = 0;
|
|
this.data.myvideo.play();
|
|
this.selectComponent("#commentList").getStickComment();
|
|
this.addReadReward();
|
|
console.log("执行-----------");
|
|
//this.getStickComment();
|
|
//this.data.getCommentFlag=true;
|
|
},
|
|
popularVideoChange(e) {
|
|
clearTimeout(this.data.cleartime);
|
|
let realIndex = e.detail.current;
|
|
let that = this;
|
|
that.data.realIndex = realIndex;
|
|
that.data.AnswerID = 0;
|
|
that.data.cumulativeDuration = parseInt(that.data.cumulativeDuration + that.data.currentDuration); //切换视频时计算累计
|
|
that.data.currentDuration = 0;
|
|
that.judgmentpic_2(realIndex);
|
|
},
|
|
judgmentpic_2(index) {
|
|
let realIndex = index;
|
|
let that = this;
|
|
try {
|
|
if (that.data.popularVideo[realIndex] && that.data.popularVideo[realIndex].cover) {
|
|
const query = wx.createSelectorQuery();
|
|
query.select("#pic_" + realIndex).boundingClientRect();
|
|
query.exec(function (res) {
|
|
let screeheight = that.data.screeheight;
|
|
if (res[0] && res[0].height) {
|
|
let imgheight = res[0].height;
|
|
if (imgheight > Math.ceil(screeheight * (7 / 8))) {
|
|
that.setData({
|
|
minStyle: false,
|
|
});
|
|
that.getvideomessage(realIndex);
|
|
} else {
|
|
that.setData({
|
|
minStyle: true,
|
|
});
|
|
that.getvideomessage(realIndex);
|
|
}
|
|
} else {
|
|
that.setData({
|
|
minStyle: true,
|
|
});
|
|
that.getvideomessage(realIndex);
|
|
}
|
|
});
|
|
} else {
|
|
that.setData({
|
|
minStyle: true,
|
|
});
|
|
that.getvideomessage(realIndex);
|
|
}
|
|
} catch (e) {
|
|
that.setData({
|
|
minStyle: true,
|
|
});
|
|
that.getvideomessage(realIndex);
|
|
//TODO handle the exception
|
|
}
|
|
},
|
|
getvideomessage(realIndex) {
|
|
let that = this;
|
|
if (realIndex == that.data.popularVideo.length - 2) {
|
|
that.getMoreData();
|
|
}
|
|
this.data.myvideo.pause();
|
|
that.setData({
|
|
show: false,
|
|
showVideo: that.data.popularVideo[realIndex],
|
|
});
|
|
if (realIndex === 0) {
|
|
this.setData({
|
|
["popularVideo[" + realIndex + "].show"]: false,
|
|
["popularVideo[" + (realIndex + 1) + "].show"]: false,
|
|
});
|
|
} else {
|
|
this.setData({
|
|
["popularVideo[" + (realIndex - 1) + "].show"]: false,
|
|
["popularVideo[" + realIndex + "].show"]: false,
|
|
});
|
|
if (that.data.popularVideo[realIndex + 1]) {
|
|
this.setData({
|
|
["popularVideo[" + (realIndex + 1) + "].show"]: false,
|
|
});
|
|
}
|
|
}
|
|
wx.setNavigationBarTitle({
|
|
title: that.data.showVideo.title,
|
|
});
|
|
wx.setStorageSync("circle_invitation_id", this.data.showVideo.id);
|
|
this.data.cleartime = setTimeout(() => {
|
|
that.clickSwiper(realIndex);
|
|
}, 300);
|
|
//切换结束时
|
|
},
|
|
getMoreData() {
|
|
const that = this;
|
|
that.data.isLoadMore = false; // 防止多次请求分页数据
|
|
if (this.data.page >= this.data.total_page) {
|
|
return;
|
|
} else {
|
|
this.data.page = this.data.page + 1;
|
|
let urlStr = app.getNetAddresss("plugin.new-media-advertising.frontend.media-advertisingt.get-list");
|
|
app._getNetWork({
|
|
url: urlStr,
|
|
data: {
|
|
page: this.data.page,
|
|
},
|
|
success: function (resdata) {
|
|
that.data.isLoadMore = true;
|
|
var res = resdata.data;
|
|
if (res.result == 1) {
|
|
let myData = res.data.list.data;
|
|
that.setData({
|
|
popularVideo: that.data.popularVideo.concat(myData),
|
|
});
|
|
} else {
|
|
that.data.page = that.data.page - 1;
|
|
that.data.isLoadMore = false;
|
|
}
|
|
},
|
|
fail: function (res) {
|
|
console.log(res);
|
|
},
|
|
});
|
|
}
|
|
},
|
|
|
|
|
|
|
|
judgmentpic(index) {
|
|
let realIndex = index;
|
|
let that = this;
|
|
const query = wx.createSelectorQuery();
|
|
query.select("#pic_" + realIndex).boundingClientRect();
|
|
query.exec(function (res) {
|
|
let screeheight = that.data.screeheight;
|
|
let imgheight = res[0].height;
|
|
if (imgheight > Math.ceil(screeheight * (7 / 8))) {
|
|
that.setData({
|
|
minStyle: false,
|
|
});
|
|
} else {
|
|
that.setData({
|
|
minStyle: true,
|
|
});
|
|
}
|
|
});
|
|
},
|
|
endedPlay() {
|
|
console.log("播放结束");
|
|
// this.data.cumulativeDuration = parseInt(this.data.cumulativeDuration + this.data.currentDuration);//结束视频时计算累计
|
|
// this.data.currentDuration = 0;
|
|
//this.getSubject();
|
|
},
|
|
onPlaying() {
|
|
console.log("onPlaying=================");
|
|
// if(this.data.maxTime != 0&&this.data.is_openRedpack){
|
|
// this.getViewTimelog();
|
|
// }
|
|
},
|
|
|
|
setCommentShow(){
|
|
this.setData({commentsShow:!this.data.commentsShow});
|
|
},
|
|
setRewardShow(){
|
|
this.setData({
|
|
rewardShow:!this.data.rewardShow
|
|
});
|
|
},
|
|
|
|
|
|
//添加阅读奖励
|
|
addReadReward(){
|
|
let {amount_id,readReawrdList} = this.data;
|
|
if(readReawrdList[amount_id]) return;
|
|
this.data.readReawrdList[amount_id]=amount_id;
|
|
let urlStr = app.getNetAddresss("plugin.new-media-advertising.frontend.media-advertisingt.advertisingt-info");
|
|
app._getNetWork({
|
|
url: urlStr,
|
|
data: {
|
|
advertisingt_id:amount_id
|
|
},
|
|
success: (resdata) => {
|
|
let res = resdata.data;
|
|
if(res.result!=1) return;
|
|
let details = res.data;
|
|
this.setData({reward_name:details.reward_name});
|
|
if(details.behavioral && details.behavioral.is_reward && details.behavioral.is_reward==1){
|
|
this.setData({
|
|
attentionRewaedData:details.behavioral,
|
|
attentionRewaedShow:true
|
|
});
|
|
}
|
|
}
|
|
});
|
|
},
|
|
|
|
//转发分享进来的奖励
|
|
sendForwardReward(){
|
|
let urlStr = app.getNetAddresss("plugin.new-media-advertising.frontend.media-advertisingt.forward-reward");
|
|
app._getNetWork({
|
|
url: urlStr,
|
|
data: {
|
|
advertisingt_id: this.data.amount_id
|
|
},
|
|
success: (resdata) => {
|
|
var res = resdata.data;
|
|
if (res.result != 1) return app.tips(res.msg);
|
|
}
|
|
});
|
|
},
|
|
|
|
handCommentSuccess(evt){
|
|
let type = evt.detail.type;
|
|
let comment_count = this.data.popularVideo[this.data.realIndex].comment_count;
|
|
if(type == "add"){
|
|
comment_count++;
|
|
}else if(type=="reduce"){
|
|
comment_count--;
|
|
}
|
|
let name="popularVideo["+this.data.realIndex+"].comment_count";
|
|
this.setData({
|
|
[name]:comment_count,
|
|
'showVideo.comment_count':comment_count
|
|
});
|
|
},
|
|
|
|
setAttentionRewaedShow(){
|
|
this.setData({
|
|
attentionRewaedShow:!this.data.attentionRewaedShow
|
|
});
|
|
},
|
|
//关注接口
|
|
sendAttention(evt) {
|
|
let details = evt.currentTarget.dataset.item;
|
|
let index = evt.currentTarget.dataset.index;
|
|
let is_attention = details.is_attention;
|
|
let urlStr="";
|
|
let json={};
|
|
if(is_attention){
|
|
urlStr = app.getNetAddresss("plugin.new-media-advertising.frontend.media-advertisingt.cancel-attention");
|
|
json.advertisingt_member = details.member_id;
|
|
}else {
|
|
urlStr = app.getNetAddresss("plugin.new-media-advertising.frontend.media-advertisingt.attention");
|
|
json.advertisingt_id = details.id;
|
|
}
|
|
|
|
app._getNetWork({
|
|
url: urlStr,
|
|
data:json,
|
|
success: (resdata) => {
|
|
var res = resdata.data;
|
|
if (res.result != 1) return app.tips(res.msg);
|
|
|
|
let changeData={};
|
|
changeData['popularVideo['+index+'].is_attention'] = is_attention ? false : true;
|
|
if(res.data.is_reward==1){
|
|
changeData['attentionRewaedData'] = res.data;
|
|
changeData['attentionRewaedShow'] = true;
|
|
}
|
|
|
|
this.setData(changeData);
|
|
}
|
|
});
|
|
},
|
|
|
|
handFavorites(evt){
|
|
let index = evt.target.dataset.index;
|
|
let favorites_count = evt.detail.favorites_count;
|
|
let is_favorites = evt.detail.is_favorites;
|
|
let changeData={};
|
|
changeData['popularVideo['+index+'].is_favorites'] = is_favorites ? false : true;
|
|
changeData['popularVideo['+index+'].favorites_count'] = favorites_count;
|
|
this.setData(changeData);
|
|
},
|
|
handLike(evt){
|
|
let index = evt.target.dataset.index;
|
|
let like_count = evt.detail.like_count;
|
|
let is_like = evt.detail.is_like;
|
|
let changeData={};
|
|
changeData['popularVideo['+index+'].is_like'] = is_like ? false : true;
|
|
changeData['popularVideo['+index+'].like_count'] = like_count;
|
|
this.setData(changeData);
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}); |