yuminge-app/yun-min-program-plugin-master/packageI/newMedia/newMediaAdVideo/newMediaAdVideo.js

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);
},
});