536 lines
14 KiB
JavaScript
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
|
|
});
|
|
},
|
|
});
|