init: 数字员工平台初始代码

包含前端(Vue3 + VueFlow 画布)、后端(Go)、文档体系。
- 工作台画布:节点拖放、连线模式、右键菜单、AI 助手
- 后端:连接器 API、专员种子数据
- 导航:左侧导航、工坊、市场、控制台
This commit is contained in:
eaiadmin
2026-08-18 20:19:58 +08:00
commit 4e8817d768
239 changed files with 48631 additions and 0 deletions
+61
View File
@@ -0,0 +1,61 @@
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: '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: '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