CEES-H5-New/src/router/index.ts

77 lines
2.3 KiB
TypeScript
Raw Normal View History

import { createRouter, createWebHashHistory, Router } from 'vue-router';
import {getAccessTime} from '@/api/index';
2025-03-19 13:15:34 +08:00
import routes from './routes';
import {showDialog } from 'Vant';
2025-03-19 13:15:34 +08:00
const router: Router = createRouter({
history: createWebHashHistory(import.meta.env.BASE_URL),
2025-03-19 13:15:34 +08:00
routes: routes,
});
//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: '访问提示',
message: `当前不在访问时间段内,请稍后再试。\n访问时间段\n${startTimeString} —— ${endTimeString}`,
}).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;