yuminge-app/yun-min-program-plugin-master/packageD/directSeeding/anchorDetail/anchorDetail.js

536 lines
14 KiB
JavaScript

// packageD/directSeeding/anchorDetail/anchorDetail.js
var app = getApp();
var colOneHeight = 0;
var colTwoHeight = 0;
Page({
/**
* 页面的初始数据
*/
data: {
recordsList: [],
focusBol: true,
roomList: [],
dataInfo: "",
id: "",
playBackData: "",
//more
isLoadMore: true,
page: 1,
total_page: 0,
activeName:0,
videoList: [],
activitys1: [],
activitys2: [],
titleArr: [],
dataList:[],
showLoading: false,
imgCount: 0,
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
if (options.id) {
this.setData({
id: options.id,
});
}
this.getData();
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
for (let i = 0; i < this.data.roomList.length; i++) {
if (this.data.roomList[i].clearTime) {
clearTimeout(this.data.roomList[i].clearTime);
}
}
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {},
//跳转直播页
goPage(e) {
let status = e.currentTarget.dataset.status;
let id = e.currentTarget.dataset.id;
if (status == 3) {
wx.navigateTo({
url:
"/packageD/directSeeding/livePage/livePage?id=" +
id +
"&playerType=live",
});
} else {
wx.navigateTo({
url: "/packageD/directSeeding/foreshow/foreshow?id=" + id,
});
}
},
focusBtn() {
if (this.data.focusBol) {
this.addConcern();
} else {
this.cancelConcern();
}
},
changeTabs(e){
this.setData({
activeName: e.currentTarget.dataset.index
});
this.handleClick();
},
addConcern() {
//添加关注
let that = this;
let urlStr = app.getNetAddresss("plugin.room.frontend.anchor.concern");
app._postNetWork({
url: urlStr,
showToastIn: false,
data: {
member_id: this.data.id,
},
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
wx.showToast({
icon: "none",
title: res.msg,
duration: 1500,
});
that.setData({
focusBol: false,
});
} else {
wx.showToast({
icon: "none",
title: res.msg,
duration: 1500,
});
}
},
fail: function (res) {
console.log(res.msg);
},
});
},
cancelConcern() {
//取消关注
let that = this;
let urlStr = app.getNetAddresss(
"plugin.room.frontend.anchor.cancel-concern"
);
app._postNetWork({
url: urlStr,
showToastIn: false,
data: {
member_id: this.data.id,
},
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
wx.showToast({
icon: "none",
title: res.msg,
duration: 1500,
});
that.setData({
focusBol: true,
});
} else {
wx.showToast({
icon: "none",
title: res.msg,
duration: 1500,
});
}
},
fail: function (res) {
console.log(res.msg);
},
});
},
getData() {
let that = this;
let urlStr = app.getNetAddresss("plugin.room.frontend.anchor.get-anchor");
app._postNetWork({
url: urlStr,
showToastIn: false,
data: {
member_id: this.data.id,
},
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
let roomData = res.data.room;
if (roomData && roomData.length > 0) {
let nowTime = new Date().getTime();
for (let i = 0; i < roomData.length; i++) {
let live_time = roomData[i].live_time;
let beginTime = new Date(live_time).getTime() * 1000;
roomData[i].day = "00";
roomData[i].hou = "00";
roomData[i].min = "00";
roomData[i].sec = "00";
if (nowTime > beginTime) {
roomData[i].stop = true;
} else {
that._countDown(i, roomData[i].live_time);
roomData[i].stop = false;
}
}
} else {
roomData = [];
}
that.setData({
dataInfo: res.data,
roomList: roomData,
});
console.log(that.data.roomList);
if (that.data.dataInfo.is_concern == 1) {
that.setData({
focusBol: false,
});
}
if (that.data.dataInfo.is_back == 1) {
// that.getBack();
that.data.titleArr.push({
name: "live",
title:'直播回放',
url: "plugin.room.frontend.anchor.get-back"
});
}
if (res.data.short_video_display) {
that.data.titleArr.push({
name: "video",
title:'短视频',
url: "plugin.room.frontend.anchor.get-video"
});
}
that.setData({
titleArr: that.data.titleArr
});
that.data.titleArr.forEach((val, index) => {
that.data.dataList.push({
isLoadMore: true,
page: 1,
total_page: 0,
list: [],
url: val.url
});
});
that.handleClick();
} else {
wx.showToast({
icon: "none",
title: res.msg,
duration: 1500,
});
}
},
fail: function (res) {
console.log(res.msg);
},
});
},
_countDown: function (index, endTime_1) {
let newTime = new Date().getTime();
let endTime = new Date(endTime_1).getTime() * 1000;
// let obj = null;
if (endTime - newTime > 0) {
let time = (endTime - newTime) / 1000;
// 获取天、时、分、秒
let day = parseInt(time / (60 * 60 * 24));
let hou = parseInt((time % (60 * 60 * 24)) / 3600);
let min = parseInt(((time % (60 * 60 * 24)) % 3600) / 60);
let sec = parseInt(((time % (60 * 60 * 24)) % 3600) % 60);
this.setData({
["roomList[" + index + "].day"]: this._timeFormat(day),
["roomList[" + index + "].hou"]: this._timeFormat(hou),
["roomList[" + index + "].min"]: this._timeFormat(min),
["roomList[" + index + "].sec"]: this._timeFormat(sec),
});
} else {
//活动已结束,全部设置为'00'
this.setData({
["roomList[" + index + "].day"]: "00",
["roomList[" + index + "].hou"]: "00",
["roomList[" + index + "].min"]: "00",
["roomList[" + index + "].sec"]: "00",
["roomList[" + index + "].stop"]: false,
});
}
if (endTime - newTime < 0) {
this.setData({
["roomList[" + index + "].day"]: "00",
["roomList[" + index + "].hou"]: "00",
["roomList[" + index + "].min"]: "00",
["roomList[" + index + "].sec"]: "00",
["roomList[" + index + "].stop"]: false,
});
} else {
this.data.roomList[index].clearTime = setTimeout(
this._countDown.bind(this, index, endTime_1),
1000
);
}
},
//小于10的格式化函数
_timeFormat(param) {
//小于10的格式化函数
return param < 10 ? "0" + param : param;
},
handleClick() {
let that = this;
if (this.data.dataList[that.data.activeName].list.length>0) {
that.data.isLoadMore = this.data.dataList[that.data.activeName].isLoadMore;
return;
}
let urlStr = app.getNetAddresss(that.data.dataList[that.data.activeName].url);
app._postNetWork({
url: urlStr,
showToastIn: false,
data: {
page: 1,
member_id: this.data.id,
},
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
that.setData({
isLoadMore: true,
['dataList[' + that.data.activeName + '].isLoadMore']: true,
['dataList[' + that.data.activeName + '].total_page']: res.data.last_page,
['dataList[' + that.data.activeName + '].list']: res.data.data
});
if (that.data.titleArr[that.data.activeName].name == "video") {
that.setData({
activitys1:[],
activitys2: [],
videoList: res.data.data
});
}
} else {
wx.showToast({
icon: "none",
title: res.msg,
duration: 1500,
});
}
},
fail: function (res) {
console.log(res.msg);
},
});
},
//获取更多数据
_getMoreData() {
const that = this;
let json = {};
let api = "";
let urlStr = "";
that.data.isLoadMore = false; // 防止多次请求分页数据
that.data.dataList[that.data.activeName].isLoadMore = false;
if (this.data.dataList[that.data.activeName].page >= this.data.dataList[that.data.activeName].total_page) {
return;
} else {
this.data.dataList[that.data.activeName].page = this.data.dataList[that.data.activeName].page + 1;
api = this.data.dataList[that.data.activeName].url;
json = {
member_id: this.data.id,
page: this.data.dataList[that.data.activeName].page,
};
urlStr = app.getNetAddresss(api);
app._postNetWork({
url: urlStr,
showToastIn: false,
data: json,
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
that.setData({
isLoadMore: true,
showLoading:true,
['dataList[' + that.data.activeName + '].isLoadMore']:true,
['dataList[' + that.data.activeName + '].list']: that.data.dataList[that.data.activeName].list.concat(res.data.data),
});
// if (that.data.titleArr[that.data.activeName].name == "video") {
// that.onImageLoad();
// }
} else {
that.setData({
['dataList[' + that.data.activeName + '].isLoadMore']:false,
['dataList[' + that.data.activeName + '].page']:that.data.page - 1,
});
return;
}
},
fail: function (res) {
console.log(res.msg);
},
});
}
},
onReachBottom: function () {
if (this.data.isLoadMore) {
this._getMoreData();
} else {
console.log("没有更多数据");
}
},
addNotice(e) {
let that = this;
let _parameter = e.currentTarget.dataset.notice;
let index = e.currentTarget.dataset.index;
let id = e.currentTarget.dataset.id;
let _url = null;
if (_parameter == 1) {
_url = "plugin.room.frontend.live-list.cancel-notice"; //取消开播提醒
} else {
_url = "plugin.room.frontend.live-list.play-notice"; //设置开播提醒
}
let urlStr = app.getNetAddresss(_url);
app._postNetWork({
url: urlStr,
showToastIn: false,
data: {
id: id,
},
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
if (_parameter == 1) {
that.setData({
["roomList[" + index + "].notice"]: 0,
});
wx.showToast({
icon: "none",
title: "已取消提醒",
duration: 1500,
});
} else {
that.setData({
["roomList[" + index + "].notice"]: 1,
});
wx.showToast({
icon: "none",
title: "已成功订阅",
duration: 1500,
});
}
} else {
wx.showToast({
icon: "none",
title: res.msg,
duration: 1500,
});
}
},
fail: function (res) {
console.log(res.msg);
},
});
},
goPlayBackData(e) {
let roomid = e.currentTarget.dataset.roomid;
let backid = e.currentTarget.dataset.backid;
wx.navigateTo({
url:
"/packageD/directSeeding/livePage/livePage?id=" +
roomid +
"&playerType=video" +
"&backid=" +
backid +
"&memberid=" +
this.data.id,
});
},
/**
* 图片加载函数
* 图片加载完成后,根据图片的高度,依次往第一列和第二列中推入数据
*/
onImageLoad (options) {
let currentId = options.currentTarget.id;
let imageWidth = options.detail.width; // 图片宽度
let imageHeight = options.detail.height; // 图片高度
let activitys = this.data.videoList; // 获取所有的数据资源
let activityObj = null;
let scle = (imageWidth/imageHeight);
for (let i = 0; i < activitys.length; i++) {
if (activitys[i].video_id == currentId) {
activityObj = activitys[i];
break;
}
}
this.data.imgCount += 1;
let activitys1 = this.data.activitys1;
let activitys2 = this.data.activitys2;
if (colOneHeight <= colTwoHeight) {
colOneHeight += (176/scle) + 60;
activitys1.push(activityObj);
} else {
colTwoHeight += (176/scle) + 60;
activitys2.push(activityObj);
}
// console.log("activitys1",activitys1,activitys2)
let data = {
activitys1: activitys1,
activitys2: activitys2
};
if (this.data.imgCount >= this.data.videoList.length){
this.setData({
showLoading : true
});
}else{
this.setData({
showLoading : false
});
}
this.setData(data);
},
toVideo(e) {
let item = e.currentTarget.dataset.item;
let page = this.data.videoList.findIndex((value, index, arr) => {
return value.video_id === item.video_id;
});
page = Math.ceil((page + 1) / 10);
wx.navigateTo({
url: '/packageC/video_goods/VideoDetail/VideoDetail?vid=' + item.video_id + '&page=' + page
});
},
});