no message
This commit is contained in:
231
js/signIn.js
231
js/signIn.js
@@ -3,15 +3,13 @@ const { createApp, ref, onMounted, nextTick, onUnmounted, computed, watch, provi
|
||||
const appSectionIndex = createApp({
|
||||
setup() {
|
||||
onMounted(() => {
|
||||
console.log("signIn");
|
||||
|
||||
getFirstDay();
|
||||
getList();
|
||||
});
|
||||
|
||||
let dayOfWeek = ref(0); // 当月第一天是星期几
|
||||
let totalDaysInMonth = ref(0); // 当月第一共今天
|
||||
let currentDay = ref(0); // 今天几号
|
||||
let showList = ref([]); // 展示的 签到列表
|
||||
|
||||
const getFirstDay = () => {
|
||||
const firstDayOfMonth = new Date();
|
||||
@@ -30,33 +28,228 @@ const appSectionIndex = createApp({
|
||||
init();
|
||||
};
|
||||
|
||||
let integral = ref(""); // 全部的寄托币
|
||||
let tips = ref([]);
|
||||
let issign = ref(0); // 是否签到了
|
||||
let signList = ref([]); // 签到列表
|
||||
let succeedState = ref(false); // 签到弹窗状态
|
||||
let extra_reward = ref(0); // 额外奖励
|
||||
let reward = ref(0); // 额外奖励
|
||||
let token = ref(""); //
|
||||
|
||||
let signnum = ref(0); // 签到多少天
|
||||
let signreward = ref(0); // 签到获得寄托币
|
||||
|
||||
// 初始化
|
||||
const init = () => {
|
||||
ajaxGet("https://api.gter.net/v2/api/forum/getSignInfo").then((res) => {
|
||||
fetchGetData("https://api.gter.net/v2/api/forum/getSignInfo").then((res) => {
|
||||
if (res.code != 200) return;
|
||||
console.log("res", res);
|
||||
const data = res.data;
|
||||
|
||||
const list = data.list || {};
|
||||
this.getDateList(list);
|
||||
getDateList(list);
|
||||
|
||||
const issign = data.issign || 0;
|
||||
if (issign == 1) wx.setStorageSync("signInState", util.getCurrentDate()); // 存储签到时间
|
||||
|
||||
this.setData({
|
||||
tips: data.tips || [],
|
||||
integral: Number(data.integral) || 0,
|
||||
token: data.token || "",
|
||||
signnum: data.signnum || 0,
|
||||
signreward: data.signreward || 0,
|
||||
issign,
|
||||
});
|
||||
|
||||
console.log("integral", this.data.integral);
|
||||
if (data.issign == 1) localStorage.setItem("signInState", getCurrentDate()); // 存储签到时间
|
||||
tips.value = data.tips || [];
|
||||
integral.value = Number(data.integral) || 0;
|
||||
token.value = data.token || "";
|
||||
signnum.value = data.signnum || 0;
|
||||
signreward.value = data.signreward || 0;
|
||||
issign.value = data.issign;
|
||||
});
|
||||
};
|
||||
|
||||
return { dayOfWeek };
|
||||
let dateList = ref([]); // 签到列表
|
||||
|
||||
const getDateList = (list = {}) => {
|
||||
let listT = [];
|
||||
// type 0 还没有到来 1 已经过去没有签到 2 签到 3 今天 没有签到的
|
||||
for (let i = 1; i < totalDaysInMonth.value + 1; i++) {
|
||||
let type = 0;
|
||||
let name = "";
|
||||
|
||||
let ii = i.toString().padStart(2, "0");
|
||||
|
||||
if (list[ii]) {
|
||||
type = 2;
|
||||
name = `+${list[ii]}`;
|
||||
} else if (currentDay.value > i) type = 1;
|
||||
else if (currentDay.value == i) type = 3;
|
||||
|
||||
if (!name) name = currentDay.value == i ? "今" : i;
|
||||
listT.push({
|
||||
type,
|
||||
name,
|
||||
});
|
||||
}
|
||||
dateList.value = listT;
|
||||
};
|
||||
|
||||
const calendarClass = ref({
|
||||
1: "formerly",
|
||||
2: "already",
|
||||
3: "today",
|
||||
});
|
||||
|
||||
let loading = ref(false);
|
||||
let list = ref([]);
|
||||
let showList = ref([]); // 展示的 签到列表
|
||||
let my = ref({}); // 我的签到信息
|
||||
let todaycount = ref(0); // 签到总数
|
||||
|
||||
const getList = () => {
|
||||
loading.value = true;
|
||||
|
||||
fetchGetData("https://api.gter.net/v2/api/forum/getSignRankList")
|
||||
.then((res) => {
|
||||
if (res.code != 200) return;
|
||||
const data = res.data || {};
|
||||
showList.value = data.list.slice(0, 10);
|
||||
list.value = data.list;
|
||||
my.value = data.my;
|
||||
todaycount.value = data.todaycount;
|
||||
})
|
||||
.finally(() => {
|
||||
loading.value = false;
|
||||
});
|
||||
};
|
||||
|
||||
let showPage = 1;
|
||||
// 签到列表更多 切割列表的
|
||||
const moreList = () => {
|
||||
// 10 开始 间隔20
|
||||
const arr = list.value.slice(showPage * 20 - 10, showPage * 20 + 10);
|
||||
showList.value = showList.value.concat(arr);
|
||||
showPage++;
|
||||
};
|
||||
|
||||
let ruleState = ref(false); // 规则弹窗
|
||||
|
||||
// 切换规则弹窗
|
||||
const cutRing = () => (ruleState.value = !ruleState.value);
|
||||
|
||||
const postSign = () => {
|
||||
const user = window.userInfoWin;
|
||||
// 没有绑定 寄托账号
|
||||
if (!user || (user?.uin <= 0 && user?.uid <= 0)) {
|
||||
console.log("user99999");
|
||||
creationAlertBox("error", "没有绑定寄托账号");
|
||||
showWindow("login", "https://passport.gter.net/login/ajax", "get", -1, { cover: true });
|
||||
return;
|
||||
}
|
||||
|
||||
fetchData("https://api.gter.net/v2/api/forum/sign").then((res) => {
|
||||
if (res.code != 200) {
|
||||
creationAlertBox("error", res.message);
|
||||
return;
|
||||
}
|
||||
|
||||
const data = res.data;
|
||||
|
||||
data.extra_reward = data.extra_reward * 1;
|
||||
data.reward = data.reward * 1;
|
||||
|
||||
const rewardT = data.extra_reward + data.reward || 0; // 一共加了多少寄托币
|
||||
|
||||
dateList.value[currentDay.value - 1]["type"] = 2;
|
||||
dateList.value[currentDay.value - 1]["name"] = `+${rewardT}`;
|
||||
|
||||
issign.value = 1;
|
||||
extra_reward.value = data.extra_reward || 0;
|
||||
reward.value = data.reward || 0;
|
||||
todaycount.value = todaycount.value + 1;
|
||||
signnum.value = signnum.value + 1;
|
||||
signreward.value = signreward.value + rewardT;
|
||||
integral.value = integral.value + rewardT;
|
||||
|
||||
my.value = {
|
||||
avatar: user.avatar || "",
|
||||
username: user.nickname || "匿名用户",
|
||||
uin: user.uin || 0,
|
||||
uid: user.uid || 0,
|
||||
rank: data.rank || 1,
|
||||
reward: rewardT,
|
||||
timestamp: getCurrentDateTime(),
|
||||
};
|
||||
|
||||
cutSucceed();
|
||||
localStorage.setItem("signInState", getCurrentDate());
|
||||
});
|
||||
};
|
||||
|
||||
// 打开签到弹窗 后关闭
|
||||
const cutSucceed = () => {
|
||||
succeedState.value = true;
|
||||
setTimeout(() => (succeedState.value = false), 1800);
|
||||
};
|
||||
|
||||
const getCurrentDateTime = () => {
|
||||
const currentDate = new Date();
|
||||
|
||||
const year = currentDate.getFullYear();
|
||||
const month = this.padNumber(currentDate.getMonth() + 1); // 月份从0开始,需要加1
|
||||
const day = this.padNumber(currentDate.getDate());
|
||||
const hours = this.padNumber(currentDate.getHours());
|
||||
const minutes = this.padNumber(currentDate.getMinutes());
|
||||
const seconds = this.padNumber(currentDate.getSeconds());
|
||||
|
||||
const formattedDateTime = year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
|
||||
|
||||
return formattedDateTime;
|
||||
};
|
||||
|
||||
const getCurrentDate = () => {
|
||||
const now = new Date();
|
||||
const year = now.getFullYear();
|
||||
const month = (now.getMonth() + 1).toString().padStart(2, "0"); // 月份从0开始,需要加1,并确保两位数
|
||||
const day = now.getDate().toString().padStart(2, "0"); // 确保两位数
|
||||
|
||||
return `${year}-${month}-${day}`;
|
||||
};
|
||||
|
||||
const fetchData = (url, data) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.responseType = "json";
|
||||
xhr.withCredentials = true;
|
||||
|
||||
xhr.open("POST", url, true);
|
||||
xhr.setRequestHeader("Content-Type", "application/json");
|
||||
|
||||
if (["127.0.0.1", "localhost", "192.168.18.219"].includes(location.hostname)) xhr.setRequestHeader("Authorization", "3b01343c65e3b2fa3ce32ae26feb3a9b");
|
||||
|
||||
xhr.onreadystatechange = function () {
|
||||
if (xhr.readyState === 4 && xhr.status === 200) {
|
||||
let response = xhr.response;
|
||||
resolve(response);
|
||||
}
|
||||
};
|
||||
|
||||
xhr.send(JSON.stringify(data));
|
||||
});
|
||||
};
|
||||
|
||||
const fetchGetData = (url) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
const xhr = new XMLHttpRequest();
|
||||
xhr.withCredentials = true;
|
||||
|
||||
xhr.open("GET", url, true);
|
||||
if (["127.0.0.1", "localhost", "192.168.18.219"].includes(location.hostname)) xhr.setRequestHeader("Authorization", "3b01343c65e3b2fa3ce32ae26feb3a9b");
|
||||
|
||||
xhr.onreadystatechange = function () {
|
||||
if (xhr.readyState === 4 && xhr.status === 200) {
|
||||
let response = xhr.response;
|
||||
resolve(JSON.parse(response));
|
||||
}
|
||||
};
|
||||
|
||||
xhr.send();
|
||||
});
|
||||
};
|
||||
|
||||
return { postSign, cutRing, moreList, todaycount, my, showList, list, loading, calendarClass, dateList, signreward, signnum, token, reward, extra_reward, succeedState, ruleState, signList, issign, tips, integral, currentDay, totalDaysInMonth, dayOfWeek };
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user