Files
zkxw/web-admin/src/router/modules/sqxp.ts
T
2026-05-20 14:32:07 +08:00

582 lines
18 KiB
TypeScript

import type { AppRouteRecord } from '@/types/router'
/**
* 前端路由(系统管理 + 基础信息管理 + 细胞存储 + 工作流)
* 与后端菜单对齐时请同步 `backend/app/api/menu.py`。
*/
export const sqxpAdminRoutes: AppRouteRecord[] = [
{
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: '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: '40000000000000000000000000000007',
name: 'BasicInfoInsuranceCompany',
path: 'insurance-company',
component: '/basic-info/insurance-company/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: '50000000000000000000000000000003',
name: 'CellStorageProtocolAudit',
path: 'protocol-audit',
component: '/cell-storage/protocol-audit/index',
meta: { title: '采集协议单管理', keepAlive: true }
},
{
id: '50000000000000000000000000000007',
name: 'CellStoragePaymentInfo',
path: 'payment-info',
component: '/cell-storage/payment-info/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: '50000000000000000000000000000006',
name: 'CellStorageStorageCert',
path: 'storage-cert',
component: '/cell-storage/storage-cert/index',
meta: { title: '储存证管理', keepAlive: true }
},
{
id: '50000000000000000000000000000008',
name: 'CellStorageFullmoonTodo',
path: 'fullmoon-todo',
component: '/cell-storage/fullmoon-todo/index',
meta: { title: '满月待办管理', keepAlive: true }
},
{
id: '50000000000000000000000000000009',
name: 'CellStorageMaterial',
path: 'material',
component: '/cell-storage/material/index',
meta: { title: '物料库', keepAlive: true }
},
{
id: '50000000000000000000000000000010',
name: 'CellStorageMaterialStockLog',
path: 'material-stock-log',
component: '/cell-storage/material-stock-log/index',
meta: { title: '物料变动记录', keepAlive: true }
}
]
},
{
id: '60000000000000000000000000000001',
name: 'ResearchDonation',
path: '/research-donation',
component: '/index/index',
meta: {
title: '科研捐赠管理',
icon: 'ri:hand-heart-line',
keepAlive: false,
roles: ['admin']
},
children: [
{
id: '60000000000000000000000000000002',
name: 'ResearchDonationList',
path: 'list',
component: '/research-donation/list/index',
meta: { title: '捐赠协议单录入', keepAlive: true }
},
{
id: '60000000000000000000000000000003',
name: 'ResearchDonationAudit',
path: 'audit',
component: '/research-donation/audit/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: '70000000000000000000000000000009',
name: 'QualityInspectionQcMaterial',
path: 'qc-material',
component: '/quality-inspection/qc-material/index',
meta: { title: '质检物料库', keepAlive: true, menuCode: 'biz:qcMaterial:list' }
},
{
id: '70000000000000000000000000000010',
name: 'QualityInspectionQcMaterialUsage',
path: 'qc-material-usage',
component: '/quality-inspection/qc-material-usage/index',
meta: { title: '物料变动记录', keepAlive: true, menuCode: 'biz:qcMaterialUsage: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 }
}
]
},
{
id: '90000000000000000000000000000001',
name: 'ProductionManagement',
path: '/production',
component: '/index/index',
meta: {
title: '生产管理',
icon: 'grid',
keepAlive: false,
roles: ['admin']
},
children: [
{
id: '90000000000000000000000000000010',
name: 'ProductionConsumable',
path: 'consumable',
component: '/production/consumable/index',
meta: { title: '耗材管理', keepAlive: true, menuCode: 'production:consumable:list' }
},
{
id: '90000000000000000000000000000060',
name: 'ProductionConsumablePack',
path: 'consumable-pack',
component: '/production/consumable-pack/index',
meta: { title: '耗材包管理', keepAlive: true, menuCode: 'production:consumable-pack:list' }
},
{
id: '90000000000000000000000000000020',
name: 'ProductionReagent',
path: 'reagent',
component: '/production/reagent/index',
meta: { title: '试剂管理', keepAlive: true, menuCode: 'production:reagent:list' }
},
{
id: '90000000000000000000000000000040',
name: 'ProductionProcessCategory',
path: 'process-category',
component: '/production/process-category/index',
meta: { title: '工艺工序分类', keepAlive: true, menuCode: 'production:process-category:list' }
},
{
id: '90000000000000000000000000000050',
name: 'ProductionOutputType',
path: 'output-type',
component: '/production/output-type/index',
meta: { title: '工艺产出物类型', keepAlive: true, menuCode: 'production:output-type:list' }
},
{
id: '90000000000000000000000000000070',
name: 'ProductionProcess',
path: 'process',
component: '/production/process/index',
meta: { title: '工艺库管理', keepAlive: true, menuCode: 'production:process:list' }
},
{
id: '90000000000000000000000000000030',
name: 'ProductionSop',
path: 'sop',
component: '/production/sop/index',
meta: { title: 'SOP文档', keepAlive: true, menuCode: 'production:sop:list' }
},
{
id: '90000000000000000000000000000010',
name: 'ProductionProcessRoute',
path: 'process-route',
component: '/production/process-route/index',
meta: { title: '工艺路线管理', keepAlive: true, menuCode: 'production:process-route:list' }
},
{
id: '90000000000000000000000000000080',
name: 'CellProduct',
path: 'cell-product',
component: '/production/cell-product/index',
meta: { title: '细胞产品库', keepAlive: true, menuCode: 'production:cell-product:list' }
},
{
id: '90000000000000000000000000000090',
name: 'ProductionWorkOrder',
path: 'production-work-order',
component: '/production/production-work-order/index',
meta: { title: '入库生产工单', keepAlive: true, menuCode: 'production:work-order:list' }
},
{
id: '90000000000000000000000000000100',
name: 'ProductionTask',
path: 'production-task',
component: '/production/production-task/index',
meta: { title: '生产任务', keepAlive: true, menuCode: 'production:task:list' }
}
]
},
{
id: '80000000000000000000000000000001',
name: 'PilotService',
path: '/pilot-service',
component: '/index/index',
meta: {
title: '中试服务管理',
icon: 'ri:flask-line',
keepAlive: false,
roles: ['admin']
},
children: [
{
id: '80000000000000000000000000000002',
name: 'CellProductType',
path: 'cell-product-type',
component: '/pilot-service/cell-product-type/index',
meta: { title: '细胞产品类型管理', keepAlive: true }
},
{
id: '80000000000000000000000000000003',
name: 'CellProductSpec',
path: 'cell-product-spec',
component: '/pilot-service/cell-product-spec/index',
meta: { title: '细胞产品规格管理', keepAlive: true }
},
{
id: '80000000000000000000000000000004',
name: 'CellProductPrice',
path: 'cell-product-price',
component: '/pilot-service/cell-product-price/index',
meta: { title: '细胞产品价格体系管理', keepAlive: true }
},
{
id: '80000000000000000000000000000005',
name: 'ProjectPriceSystem',
path: 'project-price-system',
component: '/pilot-service/project-price-system/index',
meta: { title: '细胞产品项目价格管理', keepAlive: true }
},
{
id: '80000000000000000000000000000006',
name: 'Channel',
path: 'channel',
component: '/pilot-service/channel/index',
meta: { title: '渠道信息管理', keepAlive: true }
},
{
id: '80000000000000000000000000000007',
name: 'CheckupInstitution',
path: 'checkup-institution',
component: '/pilot-service/checkup-institution/index',
meta: { title: '体检机构及项目价格', keepAlive: true }
}
]
}
]