75 lines
1.7 KiB
JavaScript
75 lines
1.7 KiB
JavaScript
import { createRouter, createWebHistory } from 'vue-router'
|
|
import Dashboard from '@/views/Dashboard.vue'
|
|
import HealthCheck from '@/views/HealthCheck.vue'
|
|
import Rankings from '@/views/Rankings.vue'
|
|
import StockSearch from '@/views/StockSearch.vue'
|
|
import StockDetail from '@/views/StockDetail.vue'
|
|
import MarketAnalysis from '@/views/MarketAnalysis.vue'
|
|
|
|
const routes = [
|
|
{
|
|
path: '/',
|
|
name: 'Dashboard',
|
|
component: Dashboard,
|
|
meta: { title: '仪表盘' }
|
|
},
|
|
{
|
|
path: '/rankings',
|
|
name: 'Rankings',
|
|
component: Rankings,
|
|
meta: { title: '股票排行榜' }
|
|
},
|
|
{
|
|
path: '/search',
|
|
name: 'StockSearch',
|
|
component: StockSearch,
|
|
meta: { title: '股票搜索' }
|
|
},
|
|
{
|
|
path: '/stock/:stockCode',
|
|
name: 'StockDetail',
|
|
component: StockDetail,
|
|
meta: { title: '股票详情' }
|
|
},
|
|
{
|
|
path: '/stock/:stockCode/trend',
|
|
name: 'StockTrend',
|
|
component: StockDetail,
|
|
meta: { title: '股票趋势' }
|
|
},
|
|
{
|
|
path: '/stock/:stockCode/prediction',
|
|
name: 'StockPrediction',
|
|
component: StockDetail,
|
|
meta: { title: '股票预测' }
|
|
},
|
|
{
|
|
path: '/market-analysis',
|
|
name: 'MarketAnalysis',
|
|
component: MarketAnalysis,
|
|
meta: { title: '市场分析' }
|
|
},
|
|
{
|
|
path: '/health',
|
|
name: 'HealthCheck',
|
|
component: HealthCheck,
|
|
meta: { title: '健康检查' }
|
|
}
|
|
]
|
|
|
|
const router = createRouter({
|
|
history: createWebHistory(import.meta.env.BASE_URL || '/'),
|
|
routes
|
|
})
|
|
|
|
// 路由守卫 - 设置页面标题
|
|
router.beforeEach((to, from, next) => {
|
|
if (to.meta.title) {
|
|
document.title = `${to.meta.title} - 农业股票数据分析平台`
|
|
} else {
|
|
document.title = '农业股票数据分析平台'
|
|
}
|
|
next()
|
|
})
|
|
|
|
export default router
|