no message

This commit is contained in:
DESKTOP-RQ919RC\Pc
2025-11-24 18:26:40 +08:00
parent f73a662141
commit 15d1a40cc9
5 changed files with 1455 additions and 287 deletions

View File

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