Files
digital-psychology/apps/user-h5/src/router/index.ts
T
jackyu66gitandCursor 7ab9add5dd
ci / h5 (push) Canceled after 0s
ci / api (push) Canceled after 0s
ci / ess-docs (push) Canceled after 0s
feat(ops): ECR-007 行为分析与 ECR-008 内容运营后台
落地埋点 ingest/数据看板、首页宫格 CMS 与测评上下架;含账号引导、问答流式与免责声明去重,以及 review P1 审计同事务修复。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 02:26:16 +08:00

47 lines
2.4 KiB
TypeScript

import { createRouter, createWebHistory } from 'vue-router'
const router = createRouter({
history: createWebHistory('/psy/'),
routes: [
{ path: '/', name: 'home', component: () => import('../pages/HomePage.vue') },
{ path: '/explore', name: 'explore', component: () => import('../pages/ExplorePage.vue') },
{
path: '/explore/:category',
name: 'explore-category',
component: () => import('../pages/ExploreCategoryPage.vue'),
},
{
path: '/growth-plan',
name: 'growth-plan',
component: () => import('../pages/GrowthPlanPage.vue'),
},
{ path: '/ask', name: 'ask', component: () => import('../pages/AskPage.vue') },
{ path: '/companion', name: 'companion', component: () => import('../pages/CompanionPage.vue') },
{ path: '/mine', name: 'mine', component: () => import('../pages/MinePage.vue') },
{ path: '/login', name: 'login', component: () => import('../pages/LoginPage.vue') },
{ path: '/profile', name: 'profile', component: () => import('../pages/ProfilePage.vue') },
{ path: '/portrait', name: 'portrait', component: () => import('../pages/PortraitPage.vue') },
{ path: '/star', name: 'star', component: () => import('../pages/StarProfilePage.vue') },
{ path: '/synastry', name: 'synastry', component: () => import('../pages/SynastryPage.vue') },
{
path: '/synastry/invite/:token',
name: 'synastry-invite',
component: () => import('../pages/SynastryInvitePage.vue'),
},
{ path: '/rhythm', name: 'rhythm', component: () => import('../pages/LifeRhythmPage.vue') },
{ path: '/cards', name: 'cards', component: () => import('../pages/ImageCardPage.vue') },
{ path: '/relation', name: 'relation', component: () => import('../pages/RelationPage.vue') },
{ path: '/membership', name: 'membership', component: () => import('../pages/MembershipPage.vue') },
{ path: '/scales/:slug', name: 'scale', component: () => import('../pages/ScalePage.vue') },
{ path: '/share', name: 'share', component: () => import('../pages/SharePage.vue') },
{ path: '/reports', name: 'reports', component: () => import('../pages/ReportsPage.vue') },
{ path: '/reports/:id', name: 'report', component: () => import('../pages/ReportPage.vue') },
{ path: '/decode', redirect: (to) => ({ path: '/portrait', query: to.query }) },
],
scrollBehavior() {
return { top: 0 }
},
})
export default router