重命名前端项目目录:web-flowith -> web

- 将前端项目目录从 web-flowith 重命名为 web,使目录结构更简洁
- 保持所有前端代码和配置文件不变
- 统一项目目录命名规范
This commit is contained in:
2025-07-24 22:20:19 +08:00
parent ca42a7d9a4
commit bbe8fcd776
57 changed files with 0 additions and 0 deletions
+189
View File
@@ -0,0 +1,189 @@
import { createRouter, createWebHistory } from 'vue-router'
import type { RouteRecordRaw } from 'vue-router'
const routes: RouteRecordRaw[] = [
{
path: '/',
name: 'Home',
component: () => import('@/views/Home/index.vue'),
meta: {
title: '开心APP - 你的情绪陪伴使者',
keepAlive: true
}
},
{
path: '/chat',
name: 'Chat',
component: () => import('@/views/Chat/index.vue'),
meta: {
title: '与开开聊天',
requiresAuth: false
}
},
{
path: '/diary',
name: 'Diary',
component: () => import('@/views/Diary/index.vue'),
meta: {
title: '情绪日记',
requiresAuth: false
}
},
{
path: '/dashboard',
name: 'Dashboard',
component: () => import('@/views/Dashboard/index.vue'),
meta: {
title: '个人展板',
requiresAuth: false
}
},
{
path: '/profile',
name: 'Profile',
component: () => import('@/views/Profile/index.vue'),
meta: {
title: '个人中心',
requiresAuth: true
}
},
{
path: '/topic-tracker',
name: 'TopicTracker',
component: () => import('@/views/TopicTracker/index.vue'),
meta: {
title: '话题追踪',
requiresAuth: false
}
},
{
path: '/life-trajectory',
name: 'LifeTrajectory',
component: () => import('@/views/LifeTrajectory/index.vue'),
meta: {
title: '人生轨迹',
requiresAuth: false
}
},
{
path: '/messages',
name: 'Messages',
component: () => import('@/views/Messages/index.vue'),
meta: {
title: '消息中心',
requiresAuth: false
}
},
{
path: '/settings',
name: 'Settings',
component: () => import('@/views/Settings/index.vue'),
meta: {
title: '用户设置',
requiresAuth: false
}
},
{
path: '/chat-history',
name: 'ChatHistory',
component: () => import('@/views/Chat/History.vue'),
meta: {
title: '聊天历史',
requiresAuth: false
}
},
{
path: '/login',
name: 'Login',
component: () => import('@/views/Login/index.vue'),
meta: {
title: '用户登录',
requiresAuth: false
}
},
{
path: '/register',
name: 'Register',
component: () => import('@/views/Register/index.vue'),
meta: {
title: '用户注册',
requiresAuth: false
}
},
{
path: '/token-test',
name: 'TokenTest',
component: () => import('@/views/TokenTest.vue'),
meta: {
title: 'Token测试',
requiresAuth: false
}
},
{
path: '/:pathMatch(.*)*',
name: 'NotFound',
component: () => import('@/views/NotFound.vue'),
meta: {
title: '页面未找到'
}
}
]
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes,
scrollBehavior(to, from, savedPosition) {
if (savedPosition) {
return savedPosition
} else {
return { top: 0 }
}
}
})
// 路由守卫
router.beforeEach(async (to, from, next) => {
// 设置页面标题
if (to.meta.title) {
document.title = to.meta.title as string
}
// 检查是否需要认证
if (to.meta.requiresAuth) {
// 动态导入用户store以避免循环依赖
const { useUserStore } = await import('@/stores/user')
const userStore = useUserStore()
if (!userStore.isLoggedIn) {
// 保存当前路径,登录后跳转回来
next({
path: '/login',
query: { redirect: to.fullPath }
})
return
}
}
// 如果已登录用户访问登录/注册页面,重定向到首页
if (to.path === '/login' || to.path === '/register') {
const { useUserStore } = await import('@/stores/user')
const userStore = useUserStore()
console.log('路由守卫检查登录状态:', {
path: to.path,
isLoggedIn: userStore.isLoggedIn,
token: !!userStore.token,
userInfo: !!userStore.userInfo
})
if (userStore.isLoggedIn) {
console.log('用户已登录,重定向到首页')
next('/')
return
}
}
next()
})
export default router