feat: 全量功能模块开发与集成测试修复

- 新增后端模块:Alert、APIAsset、Compliance、Lineage、Masking、Risk、SchemaChange、Unstructured、Watermark
- 新增前端模块页面与API接口
- 新增Alembic迁移脚本(002-014)覆盖全量业务表
- 新增测试数据生成脚本与集成测试脚本
- 修复metadata模型JSON类型导入缺失导致启动失败的问题
- 修复前端Alert/APIAsset页面request模块路径错误
- 更新docker-compose与开发计划文档
This commit is contained in:
hiderfong
2026-04-25 08:51:38 +08:00
parent 8b2bc84399
commit 6d70520e79
110 changed files with 6125 additions and 87 deletions
+49 -1
View File
@@ -18,7 +18,7 @@ const routes = [
path: 'dashboard',
name: 'Dashboard',
component: () => import('@/views/dashboard/Dashboard.vue'),
meta: { title: '首页', icon: 'HomeFilled', roles: ['superadmin', 'admin', 'project_manager', 'labeler', 'reviewer', 'guest'] },
meta: { title: '首页', icon: 'HomeFilled', roles: ['superadmin', 'admin', 'project_manager', 'labeler', 'reviewer', 'guest'], keepAlive: true },
},
{
path: 'datasource',
@@ -62,6 +62,54 @@ const routes = [
component: () => import('@/views/report/Report.vue'),
meta: { title: '报表统计', icon: 'TrendCharts', roles: ['superadmin', 'admin', 'project_manager'] },
},
{
path: 'masking',
name: 'Masking',
component: () => import('@/views/masking/Masking.vue'),
meta: { title: '数据脱敏', icon: 'Hide', roles: ['superadmin', 'admin', 'project_manager'] },
},
{
path: 'watermark',
name: 'Watermark',
component: () => import('@/views/watermark/Watermark.vue'),
meta: { title: '水印溯源', icon: 'Memo', roles: ['superadmin', 'admin', 'project_manager'] },
},
{
path: 'unstructured',
name: 'Unstructured',
component: () => import('@/views/unstructured/Unstructured.vue'),
meta: { title: '非结构化文件', icon: 'Document', roles: ['superadmin', 'admin', 'project_manager', 'labeler', 'reviewer', 'guest'] },
},
{
path: 'schema-change',
name: 'SchemaChange',
component: () => import('@/views/schema_change/SchemaChange.vue'),
meta: { title: 'Schema变更', icon: 'Refresh', roles: ['superadmin', 'admin', 'project_manager'] },
},
{
path: 'compliance',
name: 'Compliance',
component: () => import('@/views/compliance/Compliance.vue'),
meta: { title: '合规检查', icon: 'CircleCheck', roles: ['superadmin', 'admin', 'project_manager'] },
},
{
path: 'lineage',
name: 'Lineage',
component: () => import('@/views/lineage/Lineage.vue'),
meta: { title: '数据血缘', icon: 'Share', roles: ['superadmin', 'admin', 'project_manager'] },
},
{
path: 'alerts',
name: 'Alerts',
component: () => import('@/views/alert/Alert.vue'),
meta: { title: '告警与工单', icon: 'Warning', roles: ['superadmin', 'admin', 'project_manager'] },
},
{
path: 'api-assets',
name: 'ApiAssets',
component: () => import('@/views/api_asset/APIAsset.vue'),
meta: { title: 'API资产扫描', icon: 'Connection', roles: ['superadmin', 'admin', 'project_manager'] },
},
{
path: 'system',
name: 'System',