2025-05-14 20:54:01 +08:00
|
|
|
|
import { createRouter, createWebHashHistory, Router } from 'vue-router';
|
|
|
|
|
import {getAccessTime} from '@/api/index';
|
2025-03-19 13:15:34 +08:00
|
|
|
|
import routes from './routes';
|
2025-05-14 20:54:01 +08:00
|
|
|
|
import {showDialog } from 'Vant';
|
2025-03-19 13:15:34 +08:00
|
|
|
|
|
|
|
|
|
const router: Router = createRouter({
|
2025-05-14 20:54:01 +08:00
|
|
|
|
history: createWebHashHistory(import.meta.env.BASE_URL),
|
2025-03-19 13:15:34 +08:00
|
|
|
|
routes: routes,
|
|
|
|
|
});
|
|
|
|
|
|
2025-05-14 20:54:01 +08:00
|
|
|
|
//router.beforeEach(async (_to, _from, next) => {
|
|
|
|
|
// next();
|
|
|
|
|
//});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 防止重复检查访问时间
|
|
|
|
|
let accessChecked = false;
|
|
|
|
|
|
|
|
|
|
router.beforeEach(async (to, from, next) => {
|
|
|
|
|
if (!accessChecked) {
|
|
|
|
|
try {
|
|
|
|
|
const res = await getAccessTime();
|
|
|
|
|
const currentTime = new Date();
|
|
|
|
|
const startTime = new Date(res.result.startTime);
|
|
|
|
|
const endTime = new Date(res.result.endTime);
|
|
|
|
|
|
|
|
|
|
console.log("startTime", startTime);
|
|
|
|
|
console.log("endTime", endTime);
|
|
|
|
|
// 格式化日期,保留年月日和时分,去掉秒
|
|
|
|
|
const startTimeString = startTime.toLocaleString('zh-CN', {
|
|
|
|
|
year: 'numeric',
|
|
|
|
|
month: '2-digit',
|
|
|
|
|
day: '2-digit',
|
|
|
|
|
hour: '2-digit',
|
|
|
|
|
minute: '2-digit',
|
|
|
|
|
});
|
|
|
|
|
const endTimeString = endTime.toLocaleString('zh-CN', {
|
|
|
|
|
year: 'numeric',
|
|
|
|
|
month: '2-digit',
|
|
|
|
|
day: '2-digit',
|
|
|
|
|
hour: '2-digit',
|
|
|
|
|
minute: '2-digit',
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 判断当前时间是否在允许的访问时间范围内
|
|
|
|
|
if (currentTime >= startTime && currentTime <= endTime) {
|
|
|
|
|
accessChecked = true;
|
|
|
|
|
next(); // 在允许的访问时间内,继续访问
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
// 如果不在访问时间内,弹出警告框
|
|
|
|
|
showDialog({
|
|
|
|
|
title: '访问提示',
|
2025-05-16 12:16:06 +08:00
|
|
|
|
message: `请在规定的时间内进行报名。\n报名时间:\n${startTimeString} —— ${endTimeString}`,
|
2025-05-14 20:54:01 +08:00
|
|
|
|
}).then(() => {
|
|
|
|
|
// 用户点击“确定”后的处理,关闭页面
|
|
|
|
|
window.close(); // 关闭当前浏览器窗口
|
|
|
|
|
});
|
|
|
|
|
next(false); // 阻止跳转
|
|
|
|
|
}
|
|
|
|
|
} catch (err) {
|
|
|
|
|
// 获取访问时间失败,弹出错误提示
|
|
|
|
|
showDialog({
|
|
|
|
|
title: '访问错误',
|
|
|
|
|
message: '获取访问时间失败,请稍后再试。',
|
|
|
|
|
}).then(() => {
|
|
|
|
|
window.close(); // 关闭当前浏览器窗口
|
|
|
|
|
});
|
|
|
|
|
next(false); // 阻止跳转
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
next(); // 已经检查过了,继续访问
|
|
|
|
|
}
|
2025-03-19 13:15:34 +08:00
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
export default router;
|