feat: P1 合盘/星座/问答与测测完整设计包及模拟器取证工具

落地 synastry/star/ask API 与 H5 页面,补齐 cece-frontend-re complete-design 证据文档,并加入 Android 模拟器截图抓取脚本。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
jackyu66git
2026-08-03 11:37:53 +08:00
co-authored by Cursor
parent 15a9db374a
commit bd22d9dddd
248 changed files with 26309 additions and 842 deletions
+35 -10
View File
@@ -3,18 +3,43 @@ import { createRouter, createWebHistory } from 'vue-router'
const router = createRouter({
history: createWebHistory(),
routes: [
{ path: '/', name: 'home', component: () => import('../pages/HomePage.vue'), meta: { tab: true } },
{ path: '/explore', name: 'explore', component: () => import('../pages/ExplorePage.vue'), meta: { tab: true } },
{ path: '/ask', name: 'ask', component: () => import('../pages/AskPage.vue'), meta: { tab: true } },
{ path: '/companion', name: 'companion', component: () => import('../pages/CompanionPage.vue'), meta: { tab: true } },
{ path: '/mine', name: 'mine', component: () => import('../pages/MinePage.vue'), meta: { tab: true } },
{ path: '/profile', name: 'profile', component: () => import('../pages/ProfilePage.vue'), meta: { tab: false } },
{ path: '/portrait', name: 'portrait', component: () => import('../pages/PortraitPage.vue'), meta: { tab: false } },
{ path: '/relation', name: 'relation', component: () => import('../pages/RelationPage.vue'), meta: { tab: false } },
{ path: '/membership', name: 'membership', component: () => import('../pages/MembershipPage.vue'), meta: { tab: false } },
{ path: '/scales/:slug', name: 'scale', component: () => import('../pages/ScalePage.vue'), meta: { tab: false } },
{ 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: '/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