import { createRouter, createWebHashHistory } from 'vue-router' const routes = [ { path: '/login', name: 'Login', component: () => import('@/views/Login.vue'), }, { path: '/', component: () => import('@/layout/MainLayout.vue'), redirect: '/home', children: [ { path: 'home', name: 'Home', component: () => import('@/views/home/HomePage.vue') }, { path: 'knowledge-hub', name: 'KnowledgeHub', component: () => import('@/views/workbench/KnowledgeHub.vue') }, { path: 'knowledge-management', name: 'KnowledgeManagement', meta: { requiresAdmin: true }, component: () => import('@/views/workbench/KnowledgeManagementPage.vue') }, { path: 'market', name: 'Market', meta: { requiresAdmin: true }, component: () => import('@/views/workbench/MarketPage.vue') }, { path: 'studio', name: 'Studio', meta: { requiresAdmin: true }, component: () => import('@/views/workbench/StudioPage.vue') }, { path: 'console', name: 'Console', meta: { requiresAdmin: true }, component: () => import('@/views/workbench/ConsolePage.vue') }, { path: 'apps/contract-review', name: 'ContractReviewApp', meta: { workspaceKey: 'contract-review' }, component: () => import('@/views/workbench/BusinessAppPage.vue') }, { path: 'apps/solution-proposal', name: 'SolutionProposalApp', meta: { workspaceKey: 'solution-proposal' }, component: () => import('@/views/workbench/BusinessAppPage.vue') }, { path: 'apps/training-delivery', name: 'TrainingDeliveryApp', meta: { workspaceKey: 'training-delivery' }, component: () => import('@/views/workbench/BusinessAppPage.vue') }, { path: 'apps/knowledge-operations', name: 'KnowledgeOperationsApp', meta: { workspaceKey: 'knowledge-operations' }, component: () => import('@/views/workbench/BusinessAppPage.vue') }, { path: 'apps/process-coordination', name: 'ProcessCoordinationApp', meta: { workspaceKey: 'process-coordination' }, component: () => import('@/views/workbench/BusinessAppPage.vue') }, { path: 'apps/report-generation', name: 'ReportGenerationApp', meta: { workspaceKey: 'report-generation' }, component: () => import('@/views/workbench/BusinessAppPage.vue') }, { path: 'tools/contract-review', name: 'ContractReview', component: () => import('@/views/tools/ContractReviewPage.vue') }, { path: 'report-gen', name: 'ReportGeneration', meta: { requiresAdmin: true }, component: () => import('@/views/report/ReportGenerationPage.vue') }, { path: 'tools/document-translate', name: 'DocumentTranslate', component: () => import('@/views/tools/DocumentTranslatePage.vue) }, { path: 'tools/copy-proofreading', name: 'CopyProofreading', component: () => import('@/views/tools/CopyProofreadingPage.vue) }, { path: 'tools/smart-assistant', name: 'SmartAssistant', component: () => import('@/views/tools/SmartAssistantPage.vue) }, { path: 'tools/batch-extract', name: 'BatchExtract', component: () => import('@/views/tools/BatchExtractPage.vue) }, { path: 'apps/wechat-official-account', name: 'WechatOfficialAccountApp', meta: { workspaceKey: 'wechat-official-account' }, component: () => import('@/views/workbench/OfficialAccountWorkflowPage.vue') }, { path: 'apps/logistics-fulfillment', name: 'LogisticsFulfillmentApp', meta: { workspaceKey: 'logistics-fulfillment' }, component: () => import('@/views/workbench/BusinessAppPage.vue') }, { path: 'apps/hr-email-sorter', name: 'HrEmailSorter', meta: { workspaceKey: 'hr-email-sorter' }, component: () => import('@/views/workbench/BusinessAppPage.vue') }, { path: 'apps/resume-processor', name: 'ResumeProcessor', meta: { workspaceKey: 'resume-processor' }, component: () => import('@/views/workbench/BusinessAppPage.vue') }, { path: 'company-train', name: 'CompanyTrain', component: () => import('@/views/companyTrain/CompanyTrain.vue') }, { path: 'products', name: 'ProductList', component: () => import('@/views/product/ProductList.vue') }, { path: 'products/:id', name: 'ProductDetail', component: () => import('@/views/product/ProductDetail.vue') }, { path: 'courses', name: 'CourseList', component: () => import('@/views/salesTrain/CourseList.vue') }, { path: 'courses/:id', name: 'CourseDetail', component: () => import('@/views/salesTrain/CourseDetail.vue') }, { path: 'exam/self-test', name: 'ExamSelfTest', component: () => import('@/views/exam/ExamSelfTest.vue') }, { path: 'exam/formal', name: 'ExamFormal', component: () => import('@/views/exam/ExamFormal.vue') }, { path: 'exam/my-records', name: 'ExamMyRecord', component: () => import('@/views/exam/ExamMyRecord.vue') }, { path: 'exam/my-position', name: 'MyPosition', component: () => import('@/views/exam/MyPosition.vue') }, { path: 'exam/my-mistakes', name: 'MyMistakes', component: () => import('@/views/exam/MyMistakes.vue') }, { path: 'exam/my-profile', name: 'MyProfile', component: () => import('@/views/exam/MyProfile.vue') }, { path: 'exam/my-certificates', name: 'MyCertificates', component: () => import('@/views/exam/MyCertificates.vue') }, { path: 'exam/leaderboard', name: 'Leaderboard', component: () => import('@/views/exam/Leaderboard.vue') }, { path: 'notifications', name: 'Notification', component: () => import('@/views/Notification.vue') }, { path: 'knowledge/materials', name: 'MaterialManage', meta: { requiresAdmin: true }, component: () => import('@/views/knowledge/MaterialManage.vue') }, { path: 'knowledge/audit', name: 'MaterialAudit', meta: { requiresAdmin: true }, component: () => import('@/views/knowledge/MaterialAudit.vue') }, { path: 'knowledge/questions', name: 'ExamQuestionBank', meta: { requiresAdmin: true }, component: () => import('@/views/knowledge/ExamQuestionBank.vue') }, { path: 'knowledge/exam-records', name: 'ExamRecordManage', meta: { requiresAdmin: true }, component: () => import('@/views/knowledge/ExamRecordManage.vue') }, { path: 'system/positions', name: 'PositionManage', meta: { requiresAdmin: true }, component: () => import('@/views/system/PositionManage.vue') }, { path: 'system/departments', name: 'DepartmentManage', meta: { requiresAdmin: true }, component: () => import('@/views/system/DepartmentManage.vue') }, { path: 'system/users', name: 'UserManage', meta: { requiresAdmin: true }, component: () => import('@/views/system/UserManage.vue') }, { path: 'system/company-config', name: 'CompanyConfig', meta: { requiresAdmin: true }, component: () => import('@/views/system/CompanyConfigPage.vue') }, { path: 'system/config', name: 'SystemConfig', meta: { requiresAdmin: true }, component: () => import('@/views/system/SystemConfigPage.vue') }, { path: 'system/ai-usage', name: 'AiUsage', meta: { requiresAdmin: true }, component: () => import('@/views/system/AiUsage.vue') }, ], }, ] const router = createRouter({ history: createWebHashHistory(), routes, }) export default router