379 lines
11 KiB
TypeScript
379 lines
11 KiB
TypeScript
import type { AppRouteRecord } from '@/types/router'
|
|
|
|
/**
|
|
* 前端路由(系统管理 + 基础信息管理 + 细胞存储 + 工作流)
|
|
* 与后端菜单对齐时请同步 `backend/app/api/menu.py`。
|
|
*/
|
|
export const sqxpAdminRoutes: AppRouteRecord[] = [
|
|
{
|
|
id: '10000000000000000000000000000001_child',
|
|
name: 'Console',
|
|
path: '/console',
|
|
component: '/dashboard/console/index',
|
|
meta: {
|
|
title: '工作台',
|
|
/** 无 icon:侧栏用与一级菜单同宽的虚拟槽对齐标题 */
|
|
virtualMenuIcon: true,
|
|
keepAlive: true,
|
|
fixedTab: true,
|
|
menuCode: 'dashboard'
|
|
}
|
|
},
|
|
{
|
|
id: '100',
|
|
name: 'System',
|
|
path: '/system',
|
|
component: '/index/index',
|
|
meta: {
|
|
title: '系统管理',
|
|
icon: 'ri:settings-3-line',
|
|
keepAlive: false,
|
|
roles: ['admin']
|
|
},
|
|
children: [
|
|
{
|
|
id: '101',
|
|
name: 'Tenant',
|
|
path: 'tenant',
|
|
component: '/system/tenant/index',
|
|
meta: { title: '租户管理', keepAlive: true, menuCode: 'system:tenant:list' }
|
|
},
|
|
{
|
|
id: '102',
|
|
name: 'Dict',
|
|
path: 'dict',
|
|
component: '/system/dict/index',
|
|
meta: { title: '字典管理', keepAlive: true, menuCode: 'system:dict:list' }
|
|
},
|
|
{
|
|
id: '103',
|
|
name: 'Dept',
|
|
path: 'dept',
|
|
component: '/system/dept/index',
|
|
meta: { title: '组织管理', keepAlive: true, menuCode: 'system:dept:list' }
|
|
},
|
|
{
|
|
id: '104',
|
|
name: 'User',
|
|
path: 'user',
|
|
component: '/system/user/index',
|
|
meta: { title: '用户管理', keepAlive: true, menuCode: 'system:user:list' }
|
|
},
|
|
{
|
|
id: '10000000000000000000000000000008',
|
|
name: 'UserDetail',
|
|
path: 'user/detail',
|
|
component: '/system/user/detail',
|
|
meta: { title: '用户详情', isHide: true, keepAlive: true }
|
|
},
|
|
{
|
|
id: '105',
|
|
name: 'Role',
|
|
path: 'role',
|
|
component: '/system/role/index',
|
|
meta: { title: '角色管理', keepAlive: true, menuCode: 'system:role:list' }
|
|
},
|
|
{
|
|
id: '106',
|
|
name: 'Menu',
|
|
path: 'menu',
|
|
component: '/system/menu/index',
|
|
meta: { title: '菜单管理', keepAlive: true, menuCode: 'system:menu:list' }
|
|
},
|
|
{
|
|
id: '107',
|
|
name: 'Site',
|
|
path: 'site',
|
|
component: '/system/site/index',
|
|
meta: { title: '站点管理', keepAlive: true, menuCode: 'system:site:list' }
|
|
},
|
|
{
|
|
id: '108',
|
|
name: 'Post',
|
|
path: 'post',
|
|
component: '/system/post/index',
|
|
meta: { title: '职位管理', keepAlive: true, menuCode: 'system:post:list' }
|
|
},
|
|
{
|
|
id: '109',
|
|
name: 'Unit',
|
|
path: 'unit',
|
|
component: '/system/unit/index',
|
|
meta: { title: '物品单位', keepAlive: true, menuCode: 'system:unit:list' }
|
|
},
|
|
{
|
|
id: '110',
|
|
name: 'Express',
|
|
path: 'express',
|
|
component: '/system/express/index',
|
|
meta: { title: '快递公司', keepAlive: true, menuCode: 'system:express:list' }
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: '60000000000000000000000000000001',
|
|
name: 'Operations',
|
|
path: '/operations',
|
|
component: '/index/index',
|
|
meta: {
|
|
title: '运营支撑',
|
|
icon: 'operation',
|
|
keepAlive: false,
|
|
roles: ['admin']
|
|
},
|
|
children: [
|
|
{
|
|
id: '60000000000000000000000000000002',
|
|
name: 'CleanRoom',
|
|
path: 'clean-room',
|
|
component: '/operations/clean-room/index',
|
|
meta: { title: '洁净室管理', keepAlive: true }
|
|
},
|
|
{
|
|
id: '60000000000000000000000000000003',
|
|
name: 'StorageFacility',
|
|
path: 'storage-facility',
|
|
component: '/operations/storage-facility/index',
|
|
meta: { title: '库位管理', keepAlive: true }
|
|
},
|
|
{
|
|
id: '60000000000000000000000000000004',
|
|
name: 'ExhibitionAppointment',
|
|
path: 'exhibition-appointment',
|
|
component: '/operations/exhibition-appointment/index',
|
|
meta: { title: '展馆预约', keepAlive: true }
|
|
},
|
|
{
|
|
id: '60000000000000000000000000000005',
|
|
name: 'OperationsDemo',
|
|
path: 'demo',
|
|
component: '/operations/demo/index',
|
|
meta: { title: 'demo', keepAlive: true }
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: '40000000000000000000000000000001',
|
|
name: 'BasicInfo',
|
|
path: '/basic-info',
|
|
component: '/index/index',
|
|
meta: {
|
|
title: '基础信息管理',
|
|
icon: 'folder-opened',
|
|
keepAlive: false,
|
|
roles: ['admin']
|
|
},
|
|
children: [
|
|
{
|
|
id: '40000000000000000000000000000002',
|
|
name: 'BizCustomer',
|
|
path: 'customer',
|
|
component: '/basic-info/customer/index',
|
|
meta: { title: '客户管理', keepAlive: true }
|
|
},
|
|
{
|
|
id: '40000000000000000000000000000003',
|
|
name: 'BizCellSampleType',
|
|
path: 'cell-sample-type',
|
|
component: '/basic-info/cell-sample-type/index',
|
|
meta: { title: '细胞样本类型管理', keepAlive: true }
|
|
},
|
|
{
|
|
id: '40000000000000000000000000000004',
|
|
name: 'BizCollectionRegion',
|
|
path: 'collection-region',
|
|
component: '/basic-info/collection-region/index',
|
|
meta: { title: '采集地区及医院管理', keepAlive: true }
|
|
},
|
|
{
|
|
id: '40000000000000000000000000000005',
|
|
name: 'BizCollectionProtocolNo',
|
|
path: 'collection-protocol-no',
|
|
component: '/basic-info/collection-protocol-no/index',
|
|
meta: { title: '采集协议号管理', keepAlive: true }
|
|
},
|
|
{
|
|
id: '40000000000000000000000000000006',
|
|
name: 'BizSampleCode',
|
|
path: 'sample-code',
|
|
component: '/basic-info/sample-code/index',
|
|
meta: { title: '样本编码管理', keepAlive: true }
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: '50000000000000000000000000000001',
|
|
name: 'CellStorage',
|
|
path: '/cell-storage',
|
|
component: '/index/index',
|
|
meta: {
|
|
title: '细胞存储管理',
|
|
icon: 'collection-tag',
|
|
keepAlive: false,
|
|
roles: ['admin']
|
|
},
|
|
children: [
|
|
{
|
|
id: '50000000000000000000000000000002',
|
|
name: 'CellStorageProtocol',
|
|
path: 'protocol',
|
|
component: '/cell-storage/protocol/index',
|
|
meta: { title: '采集协议单', keepAlive: true }
|
|
},
|
|
{
|
|
id: '50000000000000000000000000000007',
|
|
name: 'CellStoragePaymentInfo',
|
|
path: 'payment-info',
|
|
component: '/cell-storage/payment-info/index',
|
|
meta: { title: '缴费信息', keepAlive: true }
|
|
},
|
|
{
|
|
id: '50000000000000000000000000000003',
|
|
name: 'CellStorageProtocolAudit',
|
|
path: 'protocol-audit',
|
|
component: '/cell-storage/protocol-audit/index',
|
|
meta: { title: '采集协议单审核', keepAlive: true }
|
|
},
|
|
{
|
|
id: '50000000000000000000000000000004',
|
|
name: 'CellStoragePaymentConfirm',
|
|
path: 'payment-confirm',
|
|
component: '/cell-storage/payment-confirm/index',
|
|
meta: { title: '缴费确认(财务)', keepAlive: true }
|
|
},
|
|
{
|
|
id: '50000000000000000000000000000005',
|
|
name: 'CellStorageRefundConfirm',
|
|
path: 'refund-confirm',
|
|
component: '/cell-storage/refund-confirm/index',
|
|
meta: { title: '退费确认(财务)', keepAlive: true }
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: '70000000000000000000000000000001',
|
|
name: 'QualityInspection',
|
|
path: '/quality-inspection',
|
|
component: '/index/index',
|
|
meta: {
|
|
title: '质量检测',
|
|
icon: 'ri:shield-check-line',
|
|
keepAlive: false,
|
|
roles: ['admin']
|
|
},
|
|
children: [
|
|
{
|
|
id: '70000000000000000000000000000002',
|
|
name: 'QualityInspectionSampleReception',
|
|
path: 'sample-reception',
|
|
component: '/quality-inspection/sample-reception/index',
|
|
meta: { title: '样本接收', keepAlive: true, menuCode: 'biz:sampleReception:list' }
|
|
},
|
|
{
|
|
id: '70000000000000000000000000000003',
|
|
name: 'QualityInspectionSampleReceptionCheckItem',
|
|
path: 'sample-reception-check-item',
|
|
component: '/quality-inspection/sample-reception-check-item/index',
|
|
meta: {
|
|
title: '接收检查项配置',
|
|
keepAlive: true,
|
|
menuCode: 'biz:sampleReceptionCheckItem:list'
|
|
}
|
|
},
|
|
{
|
|
id: '70000000000000000000000000000004',
|
|
name: 'QualityInspectionThirdPartyCompany',
|
|
path: 'third-party-company',
|
|
component: '/quality-inspection/third-party-company/index',
|
|
meta: {
|
|
title: '第三方检测公司及项目',
|
|
keepAlive: true,
|
|
menuCode: 'biz:qcThirdPartyCompany:list'
|
|
}
|
|
},
|
|
{
|
|
id: '70000000000000000000000000000006',
|
|
name: 'QualityInspectionLabTestItem',
|
|
path: 'lab-test-item',
|
|
component: '/quality-inspection/lab-test-item/index',
|
|
meta: {
|
|
title: '实验室自检项目',
|
|
keepAlive: true,
|
|
menuCode: 'biz:qcLabTestItem:list'
|
|
}
|
|
},
|
|
{
|
|
id: '70000000000000000000000000000007',
|
|
name: 'QualityInspectionQcWorkOrder',
|
|
path: 'qc-work-order',
|
|
component: '/quality-inspection/qc-work-order/index',
|
|
meta: {
|
|
title: '质检工单',
|
|
keepAlive: true,
|
|
menuCode: 'biz:qcWorkOrder:list'
|
|
}
|
|
},
|
|
{
|
|
id: '70000000000000000000000000000008',
|
|
name: 'QualityInspectionQcTask',
|
|
path: 'qc-task',
|
|
component: '/quality-inspection/qc-task/index',
|
|
meta: {
|
|
title: '质检任务',
|
|
keepAlive: true,
|
|
menuCode: 'biz:qcTask:list'
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
id: '30000000000000000000000000000001',
|
|
name: 'Workflow',
|
|
path: '/workflow',
|
|
component: '/index/index',
|
|
meta: {
|
|
title: '工作流管理',
|
|
icon: 'workflow',
|
|
keepAlive: false,
|
|
roles: ['admin']
|
|
},
|
|
children: [
|
|
{
|
|
id: '10000000000000000000000000000wf01',
|
|
name: 'WorkflowProcess',
|
|
path: 'process',
|
|
component: '/system/workflow/process/index',
|
|
meta: { title: '流程配置', keepAlive: true, icon: 'workflow' }
|
|
},
|
|
{
|
|
id: '10000000000000000000000000000wf02',
|
|
name: 'WorkflowPending',
|
|
path: 'pending',
|
|
component: '/system/workflow/task-pending/index',
|
|
meta: { title: '待办中心', keepAlive: true }
|
|
},
|
|
{
|
|
id: '10000000000000000000000000000wf03',
|
|
name: 'WorkflowCompleted',
|
|
path: 'completed',
|
|
component: '/system/workflow/task-completed/index',
|
|
meta: { title: '已办中心', keepAlive: true }
|
|
},
|
|
{
|
|
id: '10000000000000000000000000000wf05',
|
|
name: 'WorkflowMyApplications',
|
|
path: 'my-applications',
|
|
component: '/system/workflow/my-applications/index',
|
|
meta: { title: '我的申请', keepAlive: true }
|
|
},
|
|
{
|
|
id: '10000000000000000000000000000wf04',
|
|
name: 'LeaveRequest',
|
|
path: 'leave',
|
|
component: '/system/leave/index',
|
|
meta: { title: '请假申请', keepAlive: true }
|
|
}
|
|
]
|
|
}
|
|
]
|