大屏页面初始化

This commit is contained in:
2026-03-02 14:33:24 +08:00
parent 1de57f2089
commit e21ced5c40
3 changed files with 20 additions and 16 deletions

View File

@@ -318,7 +318,7 @@ const handleFullScreen = () => {
const handleBigScreen = () => { const handleBigScreen = () => {
if (!isMounted.value) return if (!isMounted.value) return
const baseUrl = window.location.origin + "/bigScreen"; const baseUrl = window.location.origin + "/#/bigScreen";
window.open(baseUrl, '_blank'); window.open(baseUrl, '_blank');
} }

View File

@@ -1,4 +1,4 @@
import { createRouter, createWebHistory } from 'vue-router' import { createRouter, createWebHashHistory } from 'vue-router'
import Login from '@/views/Login.vue' import Login from '@/views/Login.vue'
import Page404 from '@/views/error/404.vue' import Page404 from '@/views/error/404.vue'
import Layout from '@/components/Layout/index.vue' import Layout from '@/components/Layout/index.vue'
@@ -52,16 +52,16 @@ const routes = [
component: Login, component: Login,
meta: { isPublic: true } meta: { isPublic: true }
}, },
{
path: '/',
redirect: '/login'
},
{ {
path: '/bigScreen', path: '/bigScreen',
name: 'bigScreen', name: 'bigScreen',
component: bigScreen, component: bigScreen,
meta: { requiresAuth: true } meta: { requiresAuth: true }
}, },
{
path: '/',
redirect: '/login'
},
{ {
path: '/layout', path: '/layout',
component: Layout, component: Layout,
@@ -83,37 +83,41 @@ const routes = [
] ]
const router = createRouter({ const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL || '/'), history: createWebHashHistory(import.meta.env.BASE_URL || './'),
routes, routes,
scrollBehavior() { scrollBehavior() {
return { top: 0 } return { top: 0 }
} }
}) })
// 优化路由守卫逻辑:更健壮的登录校验 // 优化路由守卫适配hash模式增强容错
router.beforeEach((to, from, next) => { router.beforeEach((to, from, next) => {
// 公开页面直接放行 // 1. 公开页面直接放行(登录页)
if (to.meta.isPublic) { if (to.meta.isPublic) {
next() next()
return return
} }
// 非公开页面校验token // 2. 非公开页面校验token兼容hash模式
try { try {
const token = localStorage.getItem('token') const token = localStorage.getItem('token')
// 严格校验token有效性 const isValidToken = token.trim().length > 0
if (token && typeof token === 'string' && token.trim() !== '') {
if (isValidToken) {
next() next()
} else { } else {
next({ next({
path: '/login', path: '/login',
query: { redirect: to.fullPath }, query: { redirect: to.fullPath },
replace: true // 替换历史记录,避免回退问题 replace: true
}) })
} }
} catch (error) { } catch (error) {
console.error('路由守卫校验token失败:', error) console.error('路由守卫校验失败:', error)
next({ path: '/login', replace: true }) next({
path: '/login',
replace: true
})
} }
}) })

View File

@@ -31,7 +31,7 @@ public class LoginInterceptor implements HandlerInterceptor {
} }
String token = (String) session.getAttribute("token"); String token = (String) session.getAttribute("token");
if (StringUtils.isEmpty(token)){ if (StringUtils.isEmpty(token)) {
String json = objectMapper.writeValueAsString(Result.unauthorized()); String json = objectMapper.writeValueAsString(Result.unauthorized());
try (PrintWriter writer = response.getWriter()) { try (PrintWriter writer = response.getWriter()) {
writer.write(json); writer.write(json);