yuminge-app/yun-min-program-plugin-master/packageH/turmaroundTime/turmaroundIndex/turmaroundIndex.js

901 lines
25 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// packageH/turmaroundTime/turmaroundIndex/turmaroundIndex.js
const app = getApp();
// import util from "../../../utils/util";
import utils from "../../../utils/util";
const isuid = wx.getStorageSync("yz_uid");
var date = new Date();
Page({
/**
* 页面的初始数据
*/
data: {
navlis: ["日榜", "周榜", "月榜", "年榜", "总榜"],
carlis: [],
geade: ["排名", "会员", "车号", "圈数", "总用时", "最快圈"],
group: [],
navTaps: 0, //顶部导航
topNav: 1, //榜单导航
carTaps: 0, //车类导航
GroupTaps: 0, //实时组类导航
show: false,
nowTime: "",
showIn: false, // 历史成绩是否显示
postTime: Date.parse(new Date()), // 接口时间戳
info: [], //排名信息
GroupList: [],
interval: null,
local_time: "00:00:00",
myUid: isuid,
my_info: [],
memberInfo: [],
minDate: new Date(date.getFullYear() - 1, 0, 1).getTime(),
maxDate: Date.parse(new Date()),
realTimeIn_set: null,
realTimeAll: null,
istemp: true,
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
if (options.id) {
this.setData({
id: options.id,
});
}
this.init();
this.setData({
nowTime: utils.formatTimes(new Date()),
});
},
onChange(e) {
this.setData({
timeData: e.detail,
});
},
test() {
var now = new Date();
var nowTime = now.getTime();
var day = now.getDay() || 7; //为周日的时候 day 修改为7 否则当天周天会有问题
var oneDayTime = 24 * 60 * 60 * 1000;
var MondayTime = nowTime - (day - 1) * oneDayTime; //显示周一
var SundayTime = nowTime + (7 - day) * oneDayTime; //显示周日
return {
monday: Date.parse(new Date(MondayTime)),
sunday: Date.parse(new Date(SundayTime))
};
},
init() {
this.setData({
topNav: 0,
navTaps: 0,
});
},
showHistory(e) {
console.log(e);
this.setData({
showIn: !this.data.showIn,
});
let that = this;
let urlStr = app.getNetAddresss(
"plugin.kart.Frontend.Store.Modules.Ranking.Controllers.MyGradeHistory.index"
);
app._postNetWork({
url: urlStr,
data: {
store_id: this.data.id,
},
success: (resdata) => {
var res = resdata.data;
if (res.result == 1) {
that.setData({
history: res.data,
});
} else {
wx.showToast({
title: res.msg,
duration: 1000,
icon: "none",
});
}
},
});
},
tapGroupNav(e) {
let ind = e.currentTarget.dataset.ind;
console.log(ind);
this.setData({
GroupTaps: ind,
});
if (this.data.realTimeIn_set) {
clearInterval(this.data.realTimeIn_set);
}
this.getData();
},
tapCarNav(e) {
let ind = e.currentTarget.dataset.ind;
console.log(ind);
this.setData({
carTaps: ind,
});
this.getData();
},
tapTopNav(e) {
let ind = e.currentTarget.dataset.ind;
this.setData({
topNav: ind,
});
if (this.data.interval) {
clearInterval(this.data.interval);
this.setData({
interval: null
});
}
if (this.data.realTimeIn_set) {
clearInterval(this.data.realTimeIn_set);
this.setData({
realTimeIn_set: null
});
}
if (this.data.realTimeAll) {
clearInterval(this.data.realTimeAll);
this.setData({
realTimeAll: null
});
}
console.log(this.data.interval);
if (ind == 2) {
this.data.realTimeAll = setInterval(() => {
this.timeIsReal();
}, 1000);
this.data.interval = setInterval(() => {
this.setData({
local_time: utils.formatTime(new Date()).slice(11),
});
}, 1000);
}
this.getData();
},
monthYearShow() {
console.log(this.data.textTime_class);
this.setData({
monthYearShow: false,
});
},
tapCalendar(e) {
console.log(e);
let now = e.detail[0];
now = Date.parse(now);
now = now / 1000;
now = utils.formatTimeTwo(now, "Y-M-D");
console.log(now);
let dayNow = this.getSteven(now);
this.setData({
calendarArr: [dayNow.monday, dayNow.sunday],
});
},
getSteven(stime) {
var now = new Date(stime);
var nowTime = now.getTime();
var day = now.getDay() || 7;
var oneDayLong = 24 * 60 * 60 * 1000;
var MondayTime = nowTime - (day - 1) * oneDayLong;
var SundayTime = nowTime + (7 - day) * oneDayLong;
var monday = new Date(MondayTime);
for (let i = 0; i < 7; i++) {
var tmpDate = new Date(MondayTime);
tmpDate = tmpDate.setDate(tmpDate.getDate() + i);
tmpDate = new Date(tmpDate);
console.log(tmpDate);
var mondayDateStr = tmpDate.getMonth() + 1 + "月";
mondayDateStr += tmpDate.getDate() + "日";
let days = tmpDate.getDay();
console.log(days);
switch (days) {
case 1:
days = "星期一";
break;
case 2:
days = "星期二";
break;
case 3:
days = "星期三";
break;
case 4:
days = "星期四";
break;
case 5:
days = "星期五";
break;
case 6:
days = "星期六";
break;
case 0:
days = "星期日";
break;
}
mondayDateStr += days;
console.log(mondayDateStr);
}
var sunday = new Date(SundayTime);
return {
monday: Date.parse(monday),
sunday: Date.parse(sunday),
};
},
getTimeC(e) {
console.log(e.detail.postTime);
let time = e.detail;
if (this.data.navTaps == 3) {
this.setData({
postTime: time.postTime,
textTime_class: time.textTime_class,
monthYearShow: false,
});
} else {
this.setData({
postTime: time.postTime,
textTime_class: time.textTime_class,
monthYearShow: false,
});
}
this.getData();
},
// 日 周 月 年 榜单选项
tapNav(e) {
let ind = e.currentTarget.dataset.ind;
if (ind == 1) {
//周榜需要自动选择
// 一周前的日期 和 当天的日期 格式 2021-05
console.log(this.data.nowTime.slice(0, 7));
let dayNow = this.data.nowTime.slice(0, 7);
dayNow = this.test(dayNow);
console.log(dayNow);
this.setData({
textTime_class: this.data.nowTime.slice(0, 7),
calendarArr: [dayNow.monday, dayNow.sunday],
});
} else if (ind == 2) {
let date = new Date();
let month = date.getMonth();
console.log(month);
this.setData({
textTime_class: this.data.nowTime.slice(0, 7),
monthIndex: month,
});
} else if (ind == 3) {
let date = new Date();
let year = date.getFullYear();
console.log(year);
this.setData({
textTime_class: this.data.nowTime.slice(0, 4),
monthIndex: year,
});
}
this.setData({
navTaps: ind,
postTime: Date.parse(new Date()),
});
console.log(this.data.navTaps);
this.getData();
},
tapCaledar() {
let navTaps = this.data.navTaps;
// 日,周榜使用组件
if (navTaps == 1 || navTaps == 0) {
this.setData({
show: true,
});
} else {
this.setData({
show: false,
});
if (this.data.navTaps == 2) {
this.setData({
monthYearShow: true,
selectMonth: this.data.textTime_class,
});
}
if (this.data.navTaps == 3) {
console.log(this.data.textTime_class);
let arr = [];
for (let i = 0; i < 10; i++) {
arr = arr.concat(this.data.textTime_class - i);
}
console.log(arr);
this.setData({
yearArr: arr,
monthYearShow: true,
selectMonth: this.data.textTime_class,
});
}
}
},
onConfirm(e) {
let time = e.detail;
if (this.data.navTaps == 1) {
console.log(utils.formatTimes(time[0]));
this.setData({
show: false,
textTime_class: utils.formatTimes(time[0]).slice(0, 7),
});
} else {
this.setData({
show: false,
nowTime: utils.formatTimes(time),
postTime: Date.parse(time),
});
}
this.getData();
},
yesterday(e) {
// let day = new Date();
if (this.data.navTaps == 0) {
let Arr = this.data.nowTime.split("-");
let now = new Date(
Number(Arr["0"]),
Number(Arr["1"]) - 1,
Number(Arr["2"])
);
now.setDate(now.getDate() - 1);
now = this.formatTime(now);
this.setData({
nowTime: now,
postTime: Date.parse(new Date(now)),
});
} else if (this.data.navTaps == 1) {
let lastMonday = utils.formatTimeTwo(
this.data.calendarArr[0] / 1000 - 86400,
"Y-M-D"
);
lastMonday = this.getSteven(lastMonday);
let now = utils.formatTimeTwo(lastMonday.monday / 1000, "Y-M-D");
now = now.slice(0, 7);
let arr = [lastMonday.monday, lastMonday.sunday];
console.log(now);
this.setData({
textTime_class: now,
calendarArr: arr,
});
} else if (this.data.navTaps == 2) {
let last = this.data.postTime;
let date = utils.formatTimeTwo(last / 1000, "Y-M-D");
let islast = this.etXmonthToday(-1, date);
date = Date.parse(new Date(islast));
this.setData({
postTime: date,
textTime_class: islast.slice(0, 7),
});
} else if (this.data.navTaps == 3) {
let year = Number(this.data.textTime_class) - 1;
let now = `${year}-01-01`;
this.setData({
textTime_class: year,
postTime: Date.parse(now),
});
}
this.getData();
},
tomorrow() {
if (this.data.navTaps == 0) {
let Arr = this.data.nowTime.split("-");
let now = new Date(
Number(Arr["0"]),
Number(Arr["1"]) - 1,
Number(Arr["2"])
);
now.setDate(now.getDate() + 1);
now = this.formatTime(now);
this.setData({
nowTime: now,
postTime: Date.parse(new Date(now)),
});
} else if (this.data.navTaps == 1) {
let lastMonday = utils.formatTimeTwo(
this.data.calendarArr[0] / 1000 + 86400 * 7,
"Y-M-D"
);
console.log(lastMonday);
lastMonday = this.getSteven(lastMonday);
let now = utils.formatTimeTwo(lastMonday.monday / 1000, "Y-M-D");
now = now.slice(0, 7);
let arr = [lastMonday.monday, lastMonday.sunday];
console.log(now);
this.setData({
textTime_class: now,
calendarArr: arr,
});
} else if (this.data.navTaps == 2) {
let last = this.data.postTime;
let date = utils.formatTimeTwo(last / 1000, "Y-M-D");
let islast = this.etXmonthToday(1, date);
date = Date.parse(new Date(islast));
this.setData({
postTime: date,
textTime_class: islast.slice(0, 7),
});
} else if (this.data.navTaps == 3) {
let year = Number(this.data.textTime_class) + 1;
let now = `${year}-01-01`;
this.setData({
textTime_class: year,
postTime: Date.parse(now),
});
}
this.getData();
},
onClose(e) {
this.setData({
show: false,
});
},
formatTime(date) {
var year = date.getFullYear();
let month = date.getMonth() + 1;
month = month < 10 ? "0" + month : month;
let day = date.getDate();
day = day < 10 ? "0" + day : day;
return year + "-" + month + "-" + day;
},
goMy(e) {
console.log(this.data.realTimeAll);
if (this.data.realTimeAll) {
clearInterval(this.data.realTimeAll);
this.setData({
realTimeAll: null
});
}
// if (e.currentTarget.dataset.item.ranking != 0) {
let uid = e.currentTarget.dataset.item.uid;
let rank = e.currentTarget.dataset.item.ranking;
let myuid = wx.getStorageSync("yz_uid");
if (uid == myuid) {
wx.navigateTo({
url: "/packageH/turmaroundTime/turmaroundMy/turmaroundMy?id=" +
this.data.id +
"&ranking=" +
rank,
});
} else {
wx.navigateTo({
url: "/packageH/turmaroundTime/turmaroundMy/turmaroundMy?id=" +
this.data.id +
"&ranking=" +
rank +
"&uid=" +
uid,
});
}
// }
},
etXmonthToday(type, time) {
// type 0 是当天 -1 是上个月 1是下个月
var now = new Date(time); // 可以传值调式 now = new Date(2019,2,30); 今天是3月30号
var year = now.getFullYear(); //getYear()+1900=getFullYear()
var month = now.getMonth() + 1; //0-11表示1-12月
var day = now.getDate(); // 当天日期
if (parseInt(month) < 10) {
month = "0" + month;
}
if (parseInt(day) < 10) {
day = "0" + day;
}
now = year + "-" + month + "-" + day; // 如果取当月日期可直接 return 返回
var preMonth = parseInt(month) - 1;
preMonth = preMonth < 10 ? "0" + preMonth : preMonth; // 获取上个月的值
var nextMonth = parseInt(month) + 1;
nextMonth = nextMonth < 10 ? "0" + nextMonth : nextMonth; // 获取下个月个月的值
if (parseInt(month) == 1 && type == -1) {
//如果是1月份要上个月 则取上一年的12月份
return parseInt(year) - 1 + "-12-" + day;
} else if (parseInt(month) == 12 && type == 1) {
// 如果是12月要下个月取下一年的1月
return parseInt(year) + 1 + "-01-" + day;
}
var preSize = new Date(year, parseInt(month) - 1, 0).getDate(); //上月总天数
var nextSize = new Date(year, parseInt(month) + 1, 0).getDate(); //下月总天数
console.log(preSize, nextSize);
if (preSize < parseInt(day) && type == -1) {
// 取上个月,如果上个月总天数小于本月今天,取上个月最后一天
return year + "-" + preMonth + "-" + preSize;
} else if (nextSize < parseInt(day) && type == 1) {
// 如果下个月总天数小于本月今天,取下个月最后一天
return year + "-" + nextMonth + "-" + nextSize;
}
if (type == -1) {
return year + "-" + preMonth + "-" + day;
} else if (type == 1) {
return year + "-" + nextMonth + "-" + day;
} else if (type == 0) {
return now;
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
this.setData({
topNav: 0,
navTaps: 0
});
this.getCartClass();
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
if (this.data.interval) {
clearInterval(this.data.interval);
this.setData({
interval: null
});
}
if (this.data.realTimeIn_set) {
clearInterval(this.data.realTimeIn_set);
this.setData({
realTimeIn_set: null
});
}
if (this.data.realTimeAll) {
clearInterval(this.data.realTimeAll);
this.setData({
realTimeAll: null
});
}
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
return {
path: "/packageH/turmaroundTime/turmaroundIndex/turmaroundIndex?id=" +
this.data.id,
};
},
getCartClass() {
let that = this;
let urlStr = app.getNetAddresss(
"plugin.kart.Frontend.Account.Modules.KartType.Controllers.records.index"
);
app._postNetWork({
url: urlStr,
success: (resdata) => {
var res = resdata.data;
console.log(res);
that.setData({
carlis: res.data,
carTaps: String(res.data[this.data.carTaps].id),
});
that.getData();
},
});
},
getData() {
let json = {};
let urlStr;
let that = this;
if (this.data.topNav == "0") {
// 成绩排行
urlStr = app.getNetAddresss(
"plugin.kart.Frontend.Store.Modules.Ranking.Controllers.records.index"
);
if (this.data.navTaps == 1) {
json = {
store_id: Number(this.data.id),
ranking_type: this.data.navTaps + 1,
kart_type_id: Number(this.data.carTaps),
start_time: this.data.calendarArr[0] / 1000,
end_time: this.data.calendarArr[1] / 1000,
};
} else {
json = {
store_id: Number(this.data.id),
ranking_type: this.data.navTaps + 1,
kart_type_id: Number(this.data.carTaps),
start_time: this.data.postTime / 1000,
end_time: this.data.postTime / 1000,
};
}
} else if (this.data.topNav == "1") {
// 我的成绩
urlStr = app.getNetAddresss(
"plugin.kart.Frontend.Account.Modules.Store.Controllers.Store.index"
);
json = {
store_id: Number(this.data.id),
};
} else {
// 实时成绩
urlStr = app.getNetAddresss(
"plugin.kart.Frontend.Store.Modules.Screen.Controllers.records.index"
);
json = {
store_id: Number(this.data.id),
screen_id: "real_time",
kart_match_id: this.data.GroupTaps,
};
}
app._postNetWork({
url: urlStr,
data: json,
success: (resdata) => {
var res = resdata.data;
if (res.result == 1) {
if (that.data.topNav == "0") {
console.log("成绩排行================>>>>>>>>");
that.setData({
first_info: res.data.ranking.slice(0, 3),
info: res.data.ranking.slice(3),
is_ranking: res.data.member_ranking.is_ranking,
title: res.data.title ? res.data.title : "",
my_info: res.data.member_ranking,
});
if (res.data.ranking.length == 0) {
that.setData({
istemp: false,
});
} else {
that.setData({
istemp: true,
});
}
console.log(that.data.istemp);
wx.setNavigationBarTitle({
title: res.data.title,
});
for (let i = 0; i < res.data.ranking.length; i++) {
if (res.data.ranking[i].uid == that.data.myUid) {
console.log(res.data.ranking[i]);
that.setData({
my_info_ind: i,
});
}
}
}
if (that.data.topNav == 2) {
console.log("实时成绩================>>>>>>>>");
that.setData({
group: res.data.kart_match,
first_info: res.data.member_ranking.slice(0, 3),
info: res.data.member_ranking.slice(3),
});
if (
res.data.member_ranking == 0 &&
res.data.kart_match.length == 0
) {
that.setData({
istemp: false,
});
} else {
that.setData({
istemp: true,
});
}
for (let i = 0; i < res.data.kart_match.length; i++) {
console.log(res.data.kart_match[i]);
if (that.data.GroupTaps) {
if (res.data.kart_match[i].id == that.data.GroupTaps) {
if (res.data.kart_match[i].state != 6) {
// if (res.data.kart_match[i].running_at == 0) {
that.realTimeIn(i, res);
// }else{
// let nowTime = Date.parse(new Date()) / 1000;
// }
}
res.data.kart_match[i].started_at = utils.formatTimeTwo(
res.data.kart_match[i].started_at,
"Y-M-D"
);
that.setData({
GroupList: res.data.kart_match[i],
GroupTaps: res.data.kart_match[i].id,
});
}
} else {
that.setData({
GroupList: res.data.kart_match[0],
GroupTaps: Number(res.data.kart_match[0].id),
});
if (res.data.kart_match[0].state != 6) {
if (res.data.kart_match[0].running_at == 0) {
that.realTimeIn(0, res);
} else {
console.log("000000000000000000000");
that.realTimeIn(0, res);
}
}
}
}
// if (res.data.kart_match.length > 0) {
// that.data.interval = setInterval(() => {
// that.setData({
// local_time: utils.formatTime(new Date()).slice(11),
// });
// console.log(that.data.interval)
// }, 1000);
// }
}
if (that.data.topNav == 1) {
that.setData({
memberInfo: res.data,
});
}
} else {
console.log(res.msg);
}
},
});
},
realTimeIn(i, res) {
res.data.kart_match[i].running_at = res.data.kart_match[i].started_at;
let nowTime = Date.parse(new Date()) / 1000;
console.log(nowTime);
// let that = this;
this.data.realTimeIn_set = setInterval(() => {
let isnow = nowTime++;
this.settime_a(res.data.kart_match[i].running_at, isnow);
}, 1000);
},
settime_a(time, nowTime) {
let timeing = time;
this.time_endS(timeing, nowTime);
console.log((nowTime - timeing) * 1000);
let date3 = (nowTime - timeing) * 1000;
// var day = Math.floor(date3 / (24 * 3600 * 1000));
var leave1 = date3 % (24 * 3600 * 1000);
var hours = Math.floor(leave1 / (3600 * 1000));
var leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数
var minutes = Math.floor(leave2 / (60 * 1000));
var leave3 = leave2 % (60 * 1000); //计算分钟数后剩余的毫秒数
var seconds = Math.round(leave3 / 1000);
if (hours < 10) {
hours = `0${hours}`;
}
if (minutes < 10) {
minutes = `0${minutes}`;
}
if (seconds < 10) {
seconds = `0${seconds}`;
}
let txt = `${hours}:${minutes}:${seconds}`;
this.setData({
is_running_at: txt,
});
return txt;
},
time_endS(time, nowTime) {
let start_at_time = (time + this.data.GroupList.countdown) - nowTime;
start_at_time = start_at_time * 1000;
let date3 = start_at_time;
// var day = Math.floor(date3 / (24 * 3600 * 1000));
var leave1 = date3 % (24 * 3600 * 1000);
var hours = Math.floor(leave1 / (3600 * 1000));
var leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数
var minutes = Math.floor(leave2 / (60 * 1000));
var leave3 = leave2 % (60 * 1000); //计算分钟数后剩余的毫秒数
var seconds = Math.round(leave3 / 1000);
if (hours < 10) {
hours = `0${hours}`;
}
if (minutes < 10) {
minutes = `0${minutes}`;
}
if (seconds < 10) {
seconds = `0${seconds}`;
}
let txt = `${hours}:${minutes}:${seconds}`;
this.setData({
start_at_time: txt
});
},
timeIsReal() {
let json = {};
let urlStr;
let that = this;
// 实时成绩
urlStr = app.getNetAddresss(
"plugin.kart.Frontend.Store.Modules.Screen.Controllers.records.index"
);
json = {
store_id: Number(this.data.id),
screen_id: "real_time",
kart_match_id: this.data.GroupTaps,
};
app._postNetWork({
url: urlStr,
data: json,
success: (resdata) => {
var res = resdata.data;
if (res.result == 1) {
if (that.data.topNav == 2) {
console.log("实时成绩================>>>>>>>>");
that.setData({
group: res.data.kart_match,
first_info: res.data.member_ranking.slice(0, 3),
info: res.data.member_ranking.slice(3),
});
if (
res.data.member_ranking == 0 &&
res.data.kart_match.length == 0
) {
that.setData({
istemp: false,
});
} else {
that.setData({
istemp: true,
});
}
for (let i = 0; i < res.data.kart_match.length; i++) {
console.log(res.data.kart_match[i]);
if (that.data.GroupTaps) {
if (res.data.kart_match[i].id == that.data.GroupTaps) {
res.data.kart_match[i].started_at = utils.formatTimeTwo(res.data.kart_match[i].started_at, "Y-M-D");
that.setData({
GroupList: res.data.kart_match[i],
GroupTaps: res.data.kart_match[i].id,
});
}
} else {
that.setData({
GroupList: res.data.kart_match[0],
GroupTaps: Number(res.data.kart_match[0].id),
});
}
}
}
} else {
console.log(res.msg);
}
},
});
},
});