Files
zkxw/web-admin/src/router/modules/sqxp.ts
T

1604 lines
54 KiB
TypeScript

import type { AppRouteRecord } from '@/types/router'
/**
* 前端路由(5 个一级菜单分组:市场、生产、质检、运营支撑、系统管理)
* 与后端菜单对齐时请同步 `backend/app/api/menu.py`。
*/
export const sqxpAdminRoutes: AppRouteRecord[] = [
// ═══════════════════════════════════════════════════════════════════════════
// 1. 市场 (menu:market)
// 二级菜单:细胞存储、科研捐赠、中试服务、基础实验、市场基础信息
// ═══════════════════════════════════════════════════════════════════════════
{
id: 'TOP00000000000000000000000000001',
name: 'Market',
path: '/market',
component: '/index/index',
meta: {
title: '市场',
icon: 'ri:store-2-line',
keepAlive: false,
isTopMenu: true,
menuCode: 'menu:market',
roles: ['admin']
},
children: [
// ── 细胞存储 ──────────────────────────────────────────────────────────
{
id: 'CEL00000000000000000000000000001',
name: 'CellStorage',
path: 'cell-storage',
component: '',
meta: {
title: '细胞存储',
icon: 'ri:test-tube-line',
keepAlive: false,
roles: ['admin']
},
children: [
{
id: '50000000000000000000000000000002',
name: 'CellStorageProtocol',
path: 'protocol',
component: '/cell-storage/protocol/index',
meta: {
title: '采集协议单录入',
keepAlive: true,
isHide: true,
menuCode: 'biz:cellStorageProtocol:list'
}
},
{
id: '50000000000000000000000000000003',
name: 'CellStorageProtocolAudit',
path: 'protocol-audit',
component: '/cell-storage/protocol-audit/index',
meta: {
title: '采集协议单',
keepAlive: true,
menuCode: 'biz:cellStorageProtocolAudit:list'
}
},
{
id: '50000000000000000000000000000013',
name: 'CellStorageSampleInfo',
path: 'sample-info',
component: '/cell-storage/sample-info/index',
meta: {
title: '样本信息管理',
keepAlive: true,
menuCode: 'cell-storage:sample-info:list'
}
},
{
id: '904b5173519411f1944300163e3bdd96',
name: 'CellStoragePaymentInfo',
path: 'payment-info',
component: '/cell-storage/payment-info/index',
meta: {
title: '缴费信息',
keepAlive: false,
isHide: true,
menuCode: 'cellStorage:paymentInfo:list'
}
},
{
id: '50000000000000000000000000000004',
name: 'CellStoragePaymentConfirm',
path: 'payment-confirm',
component: '/cell-storage/payment-confirm/index',
meta: {
title: '缴退费财务确认及开票',
keepAlive: true,
menuCode: 'biz:cellStoragePaymentConfirm:list'
}
},
{
id: '70000000000000000000000000000011',
name: 'CellStorageStorageReleaseReview',
path: 'storage-release-review',
component: '/quality-inspection/storage-release-review/index',
meta: {
title: '入库放行审核',
keepAlive: true,
menuCode: 'biz:storageReleaseReview:list'
}
},
{
id: '50000000000000000000000000000005',
name: 'CellStorageRefundConfirm',
path: 'refund-confirm',
component: '/cell-storage/refund-confirm/index',
meta: {
title: '退费确认(财务)',
keepAlive: false,
isHide: true,
menuCode: 'biz:cellStorageRefundConfirm:list'
}
},
{
id: '50000000000000000000000000000011',
name: 'CellStorageSampleReceptionInfo',
path: 'sample-reception-info',
component: '/cell-storage/sample-reception-info/index',
meta: {
title: '样本接收信息',
keepAlive: false,
isHide: true,
menuCode: 'cell-storage:sample-reception-info:list'
}
},
{
id: '50000000000000000000000000000012',
name: 'CellStorageStorageEntryInfo',
path: 'storage-entry-info',
component: '/cell-storage/storage-entry-info/index',
meta: {
title: '样本入库信息',
keepAlive: false,
isHide: true,
menuCode: 'cell-storage:storage-entry-info:list'
}
},
{
id: '50000000000000000000000000000006',
name: 'CellStorageStorageCert',
path: 'storage-cert',
component: '/cell-storage/storage-cert/index',
meta: {
title: '储存证管理',
keepAlive: false,
isHide: true,
menuCode: 'cell-storage:storage-cert:list'
}
},
{
id: '50000000000000000000000000000008',
name: 'CellStorageFullmoonTodo',
path: 'fullmoon-todo',
component: '/cell-storage/fullmoon-todo/index',
meta: {
title: '满月待办管理',
keepAlive: false,
isHide: true,
menuCode: 'cell-storage:fullmoon-todo:list'
}
}
]
},
// ── 科研捐赠 ──────────────────────────────────────────────────────────
{
id: 'RSC00000000000000000000000000001',
name: 'ResearchDonation',
path: 'research-donation',
component: '',
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,
isHide: true,
menuCode: 'biz:researchDonation:list'
}
},
{
id: '60000000000000000000000000000003',
name: 'ResearchDonationAudit',
path: 'audit',
component: '/research-donation/audit/index',
meta: {
title: '捐赠协议单',
keepAlive: true,
menuCode: 'biz:researchDonationAudit:list'
}
},
{
id: '60000000000000000000000000000004',
name: 'ResearchDonationSampleInfo',
path: 'sample-info',
component: '/research-donation/sample-info/index',
meta: {
title: '样本信息管理',
keepAlive: true,
menuCode: 'research-donation:sample-info:list'
}
}
]
},
// ── 中试服务 ──────────────────────────────────────────────────────────
{
id: 'PIL00000000000000000000000000001',
name: 'PilotService',
path: 'pilot-service',
component: '',
meta: {
title: '中试服务',
icon: 'ri:flask-line',
keepAlive: false,
roles: ['admin']
},
children: [
{
id: '80000000000000000000000000000010',
name: 'PilotApplication',
path: 'pilot-application',
component: '/pilot-service/pilot-application/index',
meta: {
title: '中试服务申请单',
keepAlive: true,
menuCode: 'pilot-service:pilot-application:list'
},
props: { bizType: 'pilot_service' }
},
{
id: 'PIL00000000000000000000000000002',
name: 'PilotCheckupManagement',
path: 'checkup-management',
component: '/pilot-service/checkup-management/index',
meta: {
title: '体检管理',
keepAlive: false,
isHide: true,
menuCode: 'pilot-service:checkup-management:list'
},
props: { bizType: 'pilot_service' }
},
{
id: 'PIL00000000000000000000000000003',
name: 'PilotInfusionSchedule',
path: 'infusion-schedule-management',
component: '/pilot-service/infusion-schedule-management/index',
meta: {
title: '输注计划管理',
keepAlive: false,
isHide: true,
menuCode: 'pilot-service:infusion-schedule-management:list'
},
props: { bizType: 'pilot_service' }
},
{
id: 'PIL00000000000000000000000000004',
name: 'PilotOutboundRelease',
path: 'outbound-release-review',
component: '/pilot-service/outbound-release-review/index',
meta: {
title: '出库放行审核',
keepAlive: true,
menuCode: 'pilot-service:outbound-release-review:list'
},
props: { bizType: 'pilot_service' }
}
]
},
// ── 基础实验 ──────────────────────────────────────────────────────────
{
id: 'BEX00000000000000000000000000001',
name: 'BasicExperiment',
path: 'basic-experiment',
component: '',
meta: {
title: '基础实验',
icon: 'ri:flask-line',
keepAlive: false,
roles: ['admin']
},
children: [
{
id: 'BEX00000000000000000000000000002',
name: 'BasicExperimentApplication',
path: 'application',
component: '/pilot-service/pilot-application/index',
meta: {
title: '基础实验申请单',
keepAlive: true,
menuCode: 'basic-experiment:application:list'
},
props: { bizType: 'basic_experiment' }
},
{
id: 'BEX00000000000000000000000000003',
name: 'BasicExperimentPaymentConfirm',
path: 'payment-confirm',
component: '/pilot-service/clinical-payment-confirm/index',
meta: {
title: '缴退费财务确认',
keepAlive: true,
menuCode: 'basic-experiment:payment-confirm:list'
},
props: { bizType: 'basic_experiment' }
},
{
id: 'BEX00000000000000000000000000004',
name: 'BasicExperimentOutboundRelease',
path: 'outbound-release-review',
component: '/pilot-service/outbound-release-review/index',
meta: {
title: '出库放行审核',
keepAlive: true,
menuCode: 'basic-experiment:outbound-release-review:list'
},
props: { bizType: 'basic_experiment' }
}
]
},
// ── 市场基础信息 ─────────────────────────────────────────────────────
{
id: 'MKT00000000000000000000000000001',
name: 'MarketInfo',
path: 'market-info',
component: '',
meta: {
title: '市场基础信息',
icon: 'ri:price-tag-3-line',
keepAlive: false,
roles: ['admin']
},
children: [
{
id: '122',
name: 'BizCellSampleType',
path: 'cell-sample-type',
component: '/basic-info/cell-sample-type/index',
meta: {
title: '细胞样本基础信息维护',
keepAlive: true,
menuCode: 'biz:cellSampleType:list'
}
},
{
id: '125',
name: 'BizSampleCode',
path: 'sample-code',
component: '/basic-info/sample-code/index',
meta: {
title: '样本编码管理',
keepAlive: false,
isHide: true,
menuCode: 'biz:sampleCode:list'
}
},
{
id: '123',
name: 'BizCollectionRegion',
path: 'collection-region',
component: '/basic-info/collection-region/index',
meta: {
title: '细胞采集基础信息维护',
keepAlive: true,
menuCode: 'biz:collectionRegion:list'
}
},
{
id: '124',
name: 'BizCollectionProtocolNo',
path: 'collection-protocol-no',
component: '/basic-info/collection-protocol-no/index',
meta: {
title: '采集协议号管理',
keepAlive: false,
isHide: true,
menuCode: 'biz:collectionProtocolNo:list'
}
},
{
id: '80000000000000000000000000000002',
name: 'CellProductType',
path: 'cell-product-type',
component: '/pilot-service/cell-product-type/index',
meta: {
title: '细胞产品基础信息维护',
keepAlive: true,
menuCode: 'pilot-service:cell-product-type:list'
}
},
{
id: '80000000000000000000000000000003',
name: 'CellProductSpec',
path: 'cell-product-spec',
component: '/pilot-service/cell-product-spec/index',
meta: {
title: '细胞产品规格管理',
keepAlive: false,
isHide: true,
menuCode: 'pilot-service:cell-product-spec:list'
}
},
{
id: '80000000000000000000000000000004',
name: 'CellProductPrice',
path: 'cell-product-price',
component: '/pilot-service/cell-product-price/index',
meta: {
title: '细胞产品价格体系管理',
keepAlive: false,
isHide: true,
menuCode: 'pilot-service:cell-product-price:list'
}
},
{
id: '80000000000000000000000000000005',
name: 'ProjectPriceSystem',
path: 'project-price-system',
component: '/pilot-service/project-price-system/index',
meta: {
title: '细胞产品项目价格管理',
keepAlive: false,
isHide: true,
menuCode: 'pilot-service:project-price-system:list'
}
},
{
id: '40000000000000000000000000000007',
name: 'BasicInfoInsuranceCompany',
path: 'insurance-company',
component: '/basic-info/insurance-company/index',
meta: {
title: '保险公司及险种价格',
keepAlive: true,
menuCode: 'basic-info:insurance-company:list'
}
},
{
id: '80000000000000000000000000000007',
name: 'CheckupInstitution',
path: 'checkup-institution',
component: '/pilot-service/checkup-institution/index',
meta: {
title: '体检机构及项目价格',
keepAlive: true,
menuCode: 'pilot-service:checkup-institution:list'
}
},
{
id: '50000000000000000000000000000009',
name: 'MarketMaterial',
path: 'material',
component: '/cell-storage/material/index',
meta: {
title: '市场物料库',
keepAlive: true,
menuCode: 'biz:material:list'
}
},
{
id: '95000000000000000000000000000003',
name: 'MarketMyMaterialUsage',
path: 'my-material-usage',
component: '/cell-storage/my-material-usage/index',
meta: {
title: '我的物料领用记录',
keepAlive: true,
menuCode: 'market:material-usage:list'
}
},
{
id: '50000000000000000000000000000010',
name: 'MarketMaterialStockLog',
path: 'material-stock-log',
component: '/cell-storage/material-stock-log/index',
meta: {
title: '市场物料变动记录',
keepAlive: false,
isHide: true,
menuCode: 'biz:materialStockLog:list'
}
},
{
id: '121',
name: 'BizCustomer',
path: 'customer',
component: '/basic-info/customer/index',
meta: { title: '客户管理', keepAlive: true, menuCode: 'biz:customer:list' }
},
{
id: '80000000000000000000000000000006',
name: 'Channel',
path: 'channel',
component: '/pilot-service/channel/index',
meta: {
title: '渠道信息管理',
keepAlive: true,
menuCode: 'pilot-service:channel:list'
}
},
{
id: '80000000000000000000000000000008',
name: 'ChannelServiceOrder',
path: 'channel-service-order',
component: '/pilot-service/channel-service-order/index',
meta: {
title: '渠道服务购买订单',
keepAlive: false,
isHide: true,
menuCode: 'pilot-service:channel-service-order:list'
}
},
{
id: '80000000000000000000000000000009',
name: 'ChannelServiceOrderFinance',
path: 'channel-service-order-finance',
component: '/pilot-service/channel-service-order-finance/index',
meta: {
title: '渠道服务订单(财务确认)',
keepAlive: true,
menuCode: 'pilot-service:channel-service-order-finance:list'
}
}
]
}
]
},
// ═══════════════════════════════════════════════════════════════════════════
// 2. 生产 (menu:production)
// 二级菜单:临床应用、生产管理、生产基础信息
// ═══════════════════════════════════════════════════════════════════════════
{
id: 'TOP00000000000000000000000000002',
name: 'Production',
path: '/production-group',
component: '/index/index',
meta: {
title: '生产',
icon: 'ri:building-4-line',
keepAlive: false,
isTopMenu: true,
menuCode: 'menu:production',
roles: ['admin']
},
children: [
// ── 临床应用 ──────────────────────────────────────────────────────────
{
id: 'CLI00000000000000000000000000001',
name: 'ClinicalApplication',
path: 'clinical-application',
component: '',
meta: {
title: '临床应用',
icon: 'ri:heart-pulse-line',
keepAlive: false,
isHide: true,
roles: ['admin']
},
children: [
{
id: 'CLI00000000000000000000000000002',
name: 'ClinicalApplicationList',
path: 'clinical-application',
component: '/pilot-service/pilot-application/index',
meta: {
title: '临床申请单',
keepAlive: true,
isHide: true,
menuCode: 'clinical-application:application:list'
},
props: { bizType: 'clinical_application' }
},
{
id: 'CLI00000000000000000000000000003',
name: 'ClinicalCheckupManagement',
path: 'clinical-checkup-management',
component: '/pilot-service/checkup-management/index',
meta: {
title: '体检管理',
keepAlive: true,
isHide: true,
menuCode: 'clinical-application:checkup-management:list'
},
props: { bizType: 'clinical_application' }
},
{
id: 'CLI00000000000000000000000000004',
name: 'ClinicalInfusionSchedule',
path: 'clinical-infusion-schedule-management',
component: '/pilot-service/infusion-schedule-management/index',
meta: {
title: '输注计划管理',
keepAlive: false,
isHide: true,
menuCode: 'clinical-application:infusion-schedule-management:list'
},
props: { bizType: 'clinical_application' }
},
{
id: 'CLI00000000000000000000000000005',
name: 'ClinicalPaymentInfo',
path: 'clinical-payment-info',
component: '/pilot-service/clinical-payment-info/index',
meta: {
title: '缴费信息',
keepAlive: false,
isHide: true,
menuCode: 'clinical-application:payment-info:list'
}
},
{
id: 'CLI00000000000000000000000000006',
name: 'ClinicalPaymentConfirm',
path: 'clinical-payment-confirm',
component: '/pilot-service/clinical-payment-confirm/index',
meta: {
title: '缴退费财务确认',
keepAlive: true,
isHide: true,
menuCode: 'clinical-application:payment-confirm:list'
}
},
{
id: 'CLI00000000000000000000000000007',
name: 'ClinicalRefundConfirm',
path: 'clinical-refund-confirm',
component: '/pilot-service/clinical-refund-confirm/index',
meta: {
title: '退费确认(财务)',
keepAlive: false,
isHide: true,
menuCode: 'clinical-application:refund-confirm:list'
}
},
{
id: 'CLI00000000000000000000000000008',
name: 'ClinicalOutboundRelease',
path: 'clinical-outbound-release-review',
component: '/pilot-service/outbound-release-review/index',
meta: {
title: '出库放行审核',
keepAlive: true,
isHide: true,
menuCode: 'clinical-application:outbound-release-review:list'
},
props: { bizType: 'clinical_application' }
}
]
},
// ── 生产管理 ──────────────────────────────────────────────────────────
{
id: 'PRM00000000000000000000000000001',
name: 'ProductionManage',
path: 'production',
component: '',
meta: {
title: '生产管理',
icon: 'grid',
keepAlive: false,
roles: ['admin']
},
children: [
{
id: '95200000000000000000000000000001',
name: 'ProductionPreTransitSample',
path: 'pre-transit-sample',
component: '/production/pre-transit-sample/index',
meta: {
title: '预产及在途样本',
keepAlive: true,
menuCode: 'production:preTransitSample:list'
}
},
{
id: '61000000000000000000000000000003',
name: 'ProductionStorageFacility',
path: 'storage-facility',
component: '/operations/storage-facility/index',
meta: {
title: '库位管理',
keepAlive: true,
menuCode: 'operations:storage-facility:list'
}
},
{
id: '90000000000000000000000000000013',
name: 'CellProduct',
path: 'cell-product',
component: '/production/cell-product/index',
meta: {
title: '细胞产品库',
keepAlive: true,
menuCode: 'production:cell-product:list'
}
},
{
id: '90000000000000000000000000000011',
name: 'ProductionWorkOrder',
path: 'production-work-order',
component: '/production/production-work-order/index',
meta: {
title: '生产工单',
keepAlive: true,
menuCode: 'production:work-order:list'
}
},
{
id: '94000000000000000000000000000001',
name: 'ProductionMyProductionTask',
path: 'my-production-task',
component: '/production/my-production-task/index',
meta: {
title: '我的生产任务',
keepAlive: true,
menuCode: 'production:my-task:list'
}
},
{
id: '90000000000000000000000000000012',
name: 'ProductionTask',
path: 'production-task',
component: '/production/production-task/index',
meta: {
title: '生产任务',
keepAlive: false,
isHide: true,
menuCode: 'production:task:list'
}
},
{
id: '94000000000000000000000000000002',
name: 'ProductionMyMaterialUsage',
path: 'my-production-material-usage',
component: '/production/my-production-material-usage/index',
meta: {
title: '我的物料领用记录',
keepAlive: true,
menuCode: 'production:my-material-usage:list'
}
},
{
id: '91000000000000000000000000000001',
name: 'ProductionSampleReceptionCompletion',
path: 'sample-reception-completion',
component: '/production/sample-reception-completion/index',
meta: {
title: '样本接收信息完善',
keepAlive: true,
menuCode: 'production:sample-reception-completion:list',
/** 入口已转移至入库生产工单卡片,此路由保留但隐藏菜单 */
hidden: true
}
},
{
id: '95000000000000000000000000000003',
name: 'ProductionCleanroomGarment',
path: 'cleanroom-garment',
component: '/production/cleanroom-garment/index',
meta: {
title: '洁净服管理',
keepAlive: true,
menuCode: 'production:cleanroom-garment:list'
}
},
{
id: '95300000000000000000000000000001',
name: 'ProductionWasteOutput',
path: 'waste-output',
component: '/production/waste-output/index',
meta: {
title: '废弃物管理',
keepAlive: true,
menuCode: 'production:waste-output:list'
}
}
]
},
// ── 生产基础信息 ──────────────────────────────────────────────────────
{
id: 'PRB00000000000000000000000000001',
name: 'ProductionBase',
path: 'production-base',
component: '',
meta: {
title: '生产基础信息',
icon: 'ri:tools-line',
keepAlive: false,
roles: ['admin']
},
children: [
{
id: '90000000000000000000000000000014',
name: 'ProductionMaterial',
path: 'production-material',
component: '/production/production-material/index',
meta: {
title: '生产物料库',
keepAlive: true,
menuCode: 'production:material:list'
}
},
{
id: '90000000000000000000000000000002',
name: 'ProductionConsumable',
path: 'consumable',
component: '/production/consumable/index',
meta: {
title: '耗材管理',
keepAlive: true,
isHide: true,
menuCode: 'production:consumable:list'
}
},
{
id: '90000000000000000000000000000007',
name: 'ProductionConsumablePack',
path: 'consumable-pack',
component: '/production/consumable-pack/index',
meta: {
title: '耗材包管理',
keepAlive: false,
isHide: true,
menuCode: 'production:consumable-pack:list'
}
},
{
id: '90000000000000000000000000000003',
name: 'ProductionReagent',
path: 'reagent',
component: '/production/reagent/index',
meta: {
title: '试剂管理',
keepAlive: true,
isHide: true,
menuCode: 'production:reagent:list'
}
},
{
id: '90000000000000000000000000000004',
name: 'ProductionSop',
path: 'sop',
component: '/production/sop/index',
meta: {
title: 'SOP文档',
keepAlive: true,
menuCode: 'production:sop-document:list'
}
},
{
id: '90000000000000000000000000000005',
name: 'ProductionProcessCategory',
path: 'process-category',
component: '/production/process-category/index',
meta: {
title: '工艺基础信息维护',
keepAlive: true,
menuCode: 'production:process-category:list'
}
},
{
id: '90000000000000000000000000000006',
name: 'ProductionOutputType',
path: 'output-type',
component: '/production/output-type/index',
meta: {
title: '工艺产出物类型',
keepAlive: false,
isHide: true,
menuCode: 'production:output-type:list'
}
},
{
id: '90000000000000000000000000000008',
name: 'ProductionProcess',
path: 'process',
component: '/production/process/index',
meta: {
title: '工艺库管理',
keepAlive: true,
menuCode: 'production:process:list'
}
},
{
id: '90000000000000000000000000000009',
name: 'ProductionEquipment',
path: 'equipment',
component: '/production/equipment/index',
meta: {
title: '设备管理',
keepAlive: true,
menuCode: 'production:equipment:list'
}
},
{
id: '90000000000000000000000000000010',
name: 'ProductionProcessRoute',
path: 'process-route',
component: '/production/process-route/index',
meta: {
title: '工艺路线管理',
keepAlive: false,
isHide: true,
menuCode: 'production:process-route:list'
}
}
]
}
]
},
// ═══════════════════════════════════════════════════════════════════════════
// 3. 质检 (menu:quality)
// 二级菜单:质检管理、质检基础信息
// ═══════════════════════════════════════════════════════════════════════════
{
id: 'TOP00000000000000000000000000003',
name: 'Quality',
path: '/quality-group',
component: '/index/index',
meta: {
title: '质检',
icon: 'ri:shield-check-line',
keepAlive: false,
isTopMenu: true,
menuCode: 'menu:quality',
roles: ['admin']
},
children: [
// ── 质检管理 ──────────────────────────────────────────────────────────
{
id: 'QCM00000000000000000000000000001',
name: 'QualityManage',
path: 'quality-manage',
component: '',
meta: {
title: '质检管理',
icon: 'ri:shield-check-line',
keepAlive: false,
roles: ['admin']
},
children: [
{
id: '70000000000000000000000000000001',
name: 'QualityInspectionPreTransitSample',
path: 'pre-transit-sample',
component: '/quality-inspection/pre-transit-sample/index',
meta: {
title: '预产及在途样本',
keepAlive: true,
menuCode: 'biz:preTransitSample:list'
}
},
{
id: '70000000000000000000000000000002',
name: 'QualityInspectionSampleReception',
path: 'sample-reception',
component: '/quality-inspection/sample-reception/index',
meta: {
title: '样本接收',
keepAlive: true,
menuCode: 'biz:sampleReception: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: '71000000000000000000000000000002',
name: 'QualityInspectionEnvDetectRecord',
path: 'env-detect-record',
component: '/quality-inspection/env-detect-record/index',
meta: {
title: '环境检测管理',
keepAlive: true,
menuCode: 'biz:envDetectRecord:list'
}
},
{
id: '92000000000000000000000000000001',
name: 'QualityInspectionMyQcMaterialUsage',
path: 'my-qc-material-usage',
component: '/quality-inspection/my-qc-material-usage/index',
meta: {
title: '我的物料领用记录',
keepAlive: true,
menuCode: 'biz:myQcMaterialUsage:list'
}
},
{
id: '93000000000000000000000000000001',
name: 'QualityInspectionMyQcTask',
path: 'my-qc-task',
component: '/quality-inspection/my-qc-task/index',
meta: {
title: '我的质检任务',
keepAlive: true,
menuCode: 'biz:myQcTask:list'
}
},
{
id: '70000000000000000000000000000008',
name: 'QualityInspectionQcTask',
path: 'qc-task',
component: '/quality-inspection/qc-task/index',
meta: {
title: '质检任务',
keepAlive: false,
isHide: true,
menuCode: 'biz:qcTask:list'
}
},
{
name: 'QualityInspectionStorageReleaseReviewRedirect',
path: 'storage-release-review',
redirect: '/market/cell-storage/storage-release-review',
meta: {
title: '入库放行审核',
keepAlive: false,
isHide: true
}
}
]
},
// ── 质检基础信息 ──────────────────────────────────────────────────────
{
id: 'QCB00000000000000000000000000001',
name: 'QualityBase',
path: 'quality-base',
component: '',
meta: {
title: '质检基础信息',
icon: 'ri:clipboard-line',
keepAlive: false,
roles: ['admin']
},
children: [
{
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: '70000000000000000000000000000006',
name: 'QualityInspectionLabTestItem',
path: 'lab-test-item',
component: '/quality-inspection/lab-test-item/index',
meta: {
title: '质检项目管理',
keepAlive: true,
menuCode: 'biz:qcLabTestItem:list'
}
},
{
id: '95300000000000000000000000000001',
name: 'QualityInspectionInspectionItemTemplate',
path: 'inspection-item-template',
component: '/quality-inspection/inspection-item-template/index',
meta: {
title: '检测项目模版',
keepAlive: true,
menuCode: 'biz:qcInspectionItemTemplate:list'
}
},
{
id: '70000000000000000000000000000004',
name: 'QualityInspectionThirdPartyCompany',
path: 'third-party-company',
component: '/quality-inspection/third-party-company/index',
meta: {
title: '第三方检测公司及项目',
keepAlive: false,
isHide: true,
menuCode: 'biz:qcThirdPartyCompany:list'
}
},
{
id: '71000000000000000000000000000001',
name: 'QualityInspectionEnvDetectItem',
path: 'env-detect-item',
component: '/quality-inspection/env-detect-item/index',
meta: {
title: '环境检测项维护',
keepAlive: true,
menuCode: 'biz:envDetectItem:list'
}
},
{
id: '70000000000000000000000000000009',
name: 'QualityInspectionQcMaterial',
path: 'qc-material',
component: '/quality-inspection/qc-material/index',
meta: {
title: '质检物料库',
keepAlive: true,
menuCode: 'biz:qcMaterial:list'
}
},
{
id: '95100000000000000000000000000001',
name: 'QualityInspectionQcMaterialAmountAuth',
path: 'qc-material-amount-auth',
component: '/quality-inspection/qc-material-amount-auth/index',
meta: {
title: '质检物料金额查看授权',
keepAlive: true,
menuCode: 'biz:qcMaterialAmountAuth:list'
}
},
{
id: '70000000000000000000000000000010',
name: 'QualityInspectionQcMaterialUsage',
path: 'qc-material-usage',
component: '/quality-inspection/qc-material-usage/index',
meta: {
title: '质检物料变动记录',
keepAlive: false,
isHide: true,
menuCode: 'biz:qcMaterialUsage:list'
}
}
]
}
]
},
// ═══════════════════════════════════════════════════════════════════════════
// 4. 运营支撑 (menu:operations)
// 二级菜单:系统基础信息、运营支撑
// ═══════════════════════════════════════════════════════════════════════════
{
id: 'TOP00000000000000000000000000004',
name: 'OperationsGroup',
path: '/operations-group',
component: '/index/index',
meta: {
title: '运营支撑',
icon: 'ri:settings-3-line',
keepAlive: false,
isTopMenu: true,
menuCode: 'menu:operations',
roles: ['admin']
},
children: [
// ── 系统基础信息 ──────────────────────────────────────────────────────
{
id: 'SYSB000000000000000000000000000001',
name: 'SystemBase',
path: 'system-base',
component: '',
meta: {
title: '系统基础信息',
icon: 'ri:archive-line',
keepAlive: false,
roles: ['admin']
},
children: [
{
id: '107',
name: 'Site',
path: 'site',
component: '/system/site/index',
meta: {
title: '站点管理',
keepAlive: true,
menuCode: 'system:site: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: 'OPS00000000000000000000000000001',
name: 'Operations',
path: 'operations',
component: '',
meta: {
title: '运营支撑',
icon: 'operation',
keepAlive: false,
roles: ['admin']
},
children: [
{
id: '61000000000000000000000000000002',
name: 'CleanRoom',
path: 'clean-room',
component: '/operations/clean-room/index',
meta: {
title: '洁净室管理',
keepAlive: true,
menuCode: 'operations:clean-room:list'
}
},
{
id: '61000000000000000000000000000004',
name: 'ExhibitionAppointment',
path: 'exhibition-appointment',
component: '/operations/exhibition-appointment/index',
meta: {
title: '展馆预约',
keepAlive: true,
menuCode: 'operations:exhibition-appointment:list'
}
}
]
}
]
},
// ═══════════════════════════════════════════════════════════════════════════
// 5. 系统管理 (menu:system-manage)
// 二级菜单:系统管理、OA审批(旧工作流侧栏隐藏)
// ═══════════════════════════════════════════════════════════════════════════
{
id: 'TOP00000000000000000000000000005',
name: 'SystemManageGroup',
path: '/system-manage',
component: '/index/index',
meta: {
title: '系统管理',
icon: 'ri:server-line',
keepAlive: false,
isTopMenu: true,
menuCode: 'menu:system-manage',
roles: ['admin']
},
children: [
// ── 系统管理 ──────────────────────────────────────────────────────────
{
id: 'SYSM000000000000000000000000000001',
name: 'SystemManage',
path: 'system',
component: '',
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: '106',
name: 'Menu',
path: 'menu',
component: '/system/menu/index',
meta: {
title: '菜单管理',
keepAlive: true,
menuCode: 'system:menu:list'
}
},
{
id: '103',
name: 'Dept',
path: 'dept',
component: '/system/dept/index',
meta: {
title: '组织管理',
keepAlive: true,
menuCode: 'system:dept:list'
}
},
{
id: '105',
name: 'Role',
path: 'role',
component: '/system/role/index',
meta: {
title: '角色管理',
keepAlive: true,
menuCode: 'system:role:list'
}
},
{
id: '104',
name: 'User',
path: 'user',
component: '/system/user/index',
meta: {
title: '用户管理',
keepAlive: true,
menuCode: 'system:user:list'
}
},
{
id: '108',
name: 'Post',
path: 'post',
component: '/system/post/index',
meta: {
title: '职位管理',
keepAlive: true,
menuCode: 'system:post:list'
}
},
{
id: '10000000000000000000000000000008',
name: 'UserDetail',
path: 'user/detail',
component: '/system/user/detail',
meta: { title: '用户详情', isHide: true, keepAlive: true }
}
]
},
// ── OA审批(钉钉交互;旧工作流菜单位 isHide,见 F14)──────────────────
{
id: 'OA000000000000000000000000000001',
name: 'OaApproval',
path: 'oa-approval',
component: '',
meta: {
title: 'OA审批',
icon: 'ri:auction-line',
keepAlive: false,
roles: ['admin']
},
children: [
{
id: 'OA000000000000000000000000000101',
name: 'OaApprovalApps',
path: 'apps',
component: '/oa-approval/apps/index',
meta: {
title: '审批管理',
keepAlive: true,
menuCode: 'oa:apps:list'
}
},
{
id: 'OA000000000000000000000000000103',
name: 'OaApprovalStart',
path: 'start',
component: '/oa-approval/start/index',
meta: {
title: '发起审批',
keepAlive: true,
menuCode: 'oa:start'
}
},
{
id: 'OA000000000000000000000000000109',
name: 'OaApprovalDrafts',
path: 'drafts',
component: '/oa-approval/drafts/index',
meta: {
title: '草稿箱',
keepAlive: true,
menuCode: 'oa:drafts'
}
},
{
id: 'OA000000000000000000000000000104',
name: 'OaApprovalPending',
path: 'pending',
component: '/oa-approval/pending/index',
meta: {
title: '待办中心',
keepAlive: true,
menuCode: 'oa:pending'
}
},
{
id: 'OA000000000000000000000000000105',
name: 'OaApprovalDone',
path: 'done',
component: '/oa-approval/done/index',
meta: {
title: '已办中心',
keepAlive: true,
menuCode: 'oa:done'
}
},
{
id: 'OA000000000000000000000000000106',
name: 'OaApprovalMine',
path: 'mine',
component: '/oa-approval/mine/index',
meta: {
title: '我发起的',
keepAlive: true,
menuCode: 'oa:mine'
}
},
{
id: 'OA000000000000000000000000000107',
name: 'OaApprovalCc',
path: 'cc',
component: '/oa-approval/cc/index',
meta: {
title: '抄送我的',
keepAlive: true,
menuCode: 'oa:cc'
}
},
{
id: 'OA000000000000000000000000000108',
name: 'OaApprovalReceiveAccounts',
path: 'receive-accounts',
component: '/oa-approval/receive-accounts/index',
meta: {
title: '收款账户管理',
keepAlive: true,
menuCode: 'oa:receive-accounts:list'
}
},
{
id: 'OA000000000000000000000000000201',
name: 'OaApprovalDesigner',
path: 'designer/:id',
component: '/oa-approval/designer/index',
meta: {
title: '审批设计',
keepAlive: false,
isHide: true,
menuCode: 'oa:designer'
}
},
{
id: 'OA000000000000000000000000000202',
name: 'OaApprovalInstanceDetail',
path: 'instances/:id',
component: '/oa-approval/instances/detail',
meta: {
title: '审批详情',
keepAlive: false,
isHide: true,
menuCode: 'oa:instance:detail'
}
},
{
id: '1000000000000000000000000000oa01',
name: 'OaFormDesignerSpike',
path: 'oa-form-designer-spike',
component: '/oa-approval/form-designer-spike/index',
meta: {
title: 'OA表单设计器Spike',
keepAlive: false,
isHide: true
}
}
]
},
// ── 旧工作流管理(过渡保留,侧栏隐藏)──────────────────────────────────
{
id: 'WKF00000000000000000000000000001',
name: 'Workflow',
path: 'workflow',
component: '',
meta: {
title: '工作流管理',
icon: 'workflow',
keepAlive: false,
isHide: true,
roles: ['admin']
},
children: [
{
id: '10000000000000000000000000000wf01',
name: 'WorkflowProcess',
path: 'process',
component: '/system/workflow/process/index',
meta: {
title: '流程配置',
keepAlive: true,
icon: 'workflow',
isHide: true,
menuCode: 'workflow:process'
}
},
{
id: '10000000000000000000000000000wf02',
name: 'WorkflowPending',
path: 'pending',
component: '/system/workflow/task-pending/index',
meta: {
title: '待办中心',
keepAlive: true,
isHide: true,
menuCode: 'workflow:pending'
}
},
{
id: '10000000000000000000000000000wf03',
name: 'WorkflowCompleted',
path: 'completed',
component: '/system/workflow/task-completed/index',
meta: {
title: '已办中心',
keepAlive: true,
isHide: true,
menuCode: 'workflow:completed'
}
},
{
id: '10000000000000000000000000000wf05',
name: 'WorkflowMyApplications',
path: 'my-applications',
component: '/system/workflow/my-applications/index',
meta: {
title: '我的申请',
keepAlive: true,
isHide: true,
menuCode: 'workflow:myApplications'
}
},
{
id: '10000000000000000000000000000wf04',
name: 'LeaveRequest',
path: 'leave',
component: '/system/leave/index',
meta: {
title: '请假申请',
keepAlive: true,
isHide: true,
menuCode: 'workflow:leave'
}
}
]
}
]
}
]