| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682 |
- 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: '50000000000000000000000000000020',
- name: 'CellStoragePresignOrder',
- path: 'presign-order',
- component: '/cell-storage/presign-order/index',
- meta: {
- title: '预签约订单',
- keepAlive: true,
- menuCode: 'cell-storage:presign-order:list'
- }
- },
- {
- id: '904b5173519411f1944300163e3bdd96',
- name: 'CellStoragePaymentInfo',
- path: 'payment-info',
- component: '/cell-storage/payment-info/index',
- meta: {
- title: '缴费信息',
- keepAlive: true,
- menuCode: 'cellStorage:paymentInfo: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: '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: '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: '40000000000000000000000000000007',
- name: 'BasicInfoInsuranceCompany',
- path: 'insurance-company',
- component: '/basic-info/insurance-company/index',
- meta: {
- title: '保险公司及险种价格',
- keepAlive: true,
- isHide: true,
- menuCode: 'basic-info:insurance-company: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: '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: '80000000000000000000000000000007',
- name: 'CheckupInstitution',
- path: 'checkup-institution',
- component: '/pilot-service/checkup-institution/index',
- meta: {
- title: '体检机构及项目价格',
- keepAlive: true,
- isHide: true,
- menuCode: 'pilot-service:checkup-institution: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'
- }
- }
- ]
- },
- // ── 中试服务 ──────────────────────────────────────────────────────────
- {
- 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' }
- }
- ]
- }
- ]
- },
- // ═══════════════════════════════════════════════════════════════════════════
- // 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: '95500000000000000000000000000001',
- name: 'ProductionStorageReleaseReview',
- path: 'storage-release-review',
- component: '/quality-inspection/storage-release-review/index',
- meta: {
- title: '入库放行审核',
- keepAlive: true,
- menuCode: 'production:storageReleaseReview:list'
- },
- props: { reviewRole: 'production' }
- },
- {
- 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'
- }
- },
- {
- id: '95400000000000000000000000000001',
- name: 'ProductionTaskSet',
- path: 'production-task-set',
- component: '/production/production-task-set/index',
- meta: {
- title: '生产任务组合模版',
- keepAlive: true,
- menuCode: 'production:task-set: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'
- }
- },
- {
- id: '70000000000000000000000000000014',
- name: 'QualityInspectionStorageReleaseReview',
- path: 'storage-release-review',
- component: '/quality-inspection/storage-release-review/index',
- meta: {
- title: '入库放行审核',
- keepAlive: true,
- menuCode: 'quality:storageReleaseReview:list'
- },
- props: { reviewRole: 'qc' }
- }
- ]
- },
- // ── 质检基础信息 ──────────────────────────────────────────────────────
- {
- 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: 'OA000000000000000000000000000203',
- name: 'OaApprovalHistory',
- path: 'history/:appId',
- component: '/oa-approval/history/index',
- meta: {
- title: '历史记录',
- keepAlive: true,
- isHide: true,
- worktabMulti: 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: 'OA000000000000000000000000000110',
- name: 'OaApprovalMention',
- path: 'mentions',
- component: '/oa-approval/mentions/index',
- meta: {
- title: '提到我的',
- keepAlive: true,
- menuCode: 'oa:mention'
- }
- },
- {
- 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'
- }
- }
- ]
- }
- ]
- }
- ]
|