From 7781b565db049b6c4150113abbddf46e798c900d Mon Sep 17 00:00:00 2001 From: 董国庆 <364620639@qq.com> Date: 星期四, 19 六月 2025 18:46:55 +0800 Subject: [PATCH] 修改bug,加权限 --- laboratory/src/router/index.js | 71 +++++++++++++++++++++++++++++++---- 1 files changed, 63 insertions(+), 8 deletions(-) diff --git a/laboratory/src/router/index.js b/laboratory/src/router/index.js index f4d206b..63a437c 100644 --- a/laboratory/src/router/index.js +++ b/laboratory/src/router/index.js @@ -41,6 +41,7 @@ meta: { title: "中台", middleground: true, + privilege:'middleground' // hide: true, }, component: () => import("../views/middleground"), @@ -49,6 +50,8 @@ path: "/system", meta: { title: "系统管理", + privilege:'system' + }, component: Layouts, children: [{ @@ -56,6 +59,7 @@ name: "User", meta: { title: "人员管理", + privilege:'system_user' }, component: () => import("../views/system/user"), }, @@ -64,6 +68,7 @@ name: "Role", meta: { title: "角色管理", + privilege:'system_role' }, component: () => import("../views/system/role"), }, @@ -98,6 +103,7 @@ path: "operation-log", meta: { title: "操作日志", + privilege:'system_operation-log' }, component: () => import("../views/system/operation-log"), }, @@ -107,6 +113,7 @@ path: "/projectList", meta: { title: "项目组管理", + privilege:'projectList' }, component: Layouts, children: [{ @@ -114,6 +121,7 @@ name: "ProjectList", meta: { title: "项目组管理", + privilege:'projectList_list' }, component: () => import("../views/projectList"), }, @@ -152,12 +160,14 @@ component: Layouts, meta: { title: "实验室数据管理", + privilege:'dataManagement' }, children: [{ path: "approvalPlan", meta: { title: "项目课题方案审批", keepAlive: true, + privilege:'dataManagement_approvalPlan' }, component: () => import("../views/dataManagement/approvalPlan/list.vue"), }, @@ -176,6 +186,7 @@ meta: { title: "实验调度管理", keepAlive: true, + privilege:'dataManagement_dispatching' }, component: () => import("../views/dataManagement/dispatching/list.vue"), }, @@ -193,6 +204,7 @@ name: "ConfirmationSheet", meta: { title: "检验方法确认单", + privilege:'dataManagement_confirmation-sheet' }, component: () => import("../views/dataManagement/confirmation-sheet"), }, @@ -210,6 +222,7 @@ name: "schemeManagement", meta: { title: "实验方案管理", + privilege:'dataManagement_scheme-management' }, component: () => import("../views/dataManagement/schemeManagement/list.vue"), }, @@ -234,6 +247,7 @@ path: "/sampleManage", meta: { title: "样品管理", + privilege:'sampleManage' // keepAlive: true, }, component: Parent, @@ -242,6 +256,7 @@ meta: { title: "样品管理", keepAlive: true, + privilege:'sampleManage_manage' }, component: () => import("../views/dataManagement/sampleManage/list.vue"), }, @@ -259,6 +274,7 @@ meta: { title: "取样操作记录列表", keepAlive: true, + privilege:'sampleManage_record' }, component: () => import("../views/dataManagement/sampleRecordList/list.vue"), }, @@ -276,6 +292,7 @@ meta: { title: "送样单列表", keepAlive: true, + privilege:'sampleManage_submissionList' }, component: () => import("../views/dataManagement/sampleSubmissionList/list.vue"), }, @@ -297,6 +314,7 @@ meta: { title: "取样送样记录", keepAlive: true, + privilege:'dataManagement_deliveryRecord' }, component: () => import("../views/dataManagement/SampleDeliveryRecord/list.vue"), }, @@ -315,6 +333,7 @@ meta: { title: "原始检验记录", keepAlive: true, + privilege:'dataManagement_originalRecordTest' }, component: () => import("../views/dataManagement/originalRecordTest/list.vue"), }, @@ -333,6 +352,7 @@ meta: { title: "检验报告管理", keepAlive: true, + privilege:'dataManagement_inspectionReport' }, component: () => import("../views/dataManagement/inspectionReport/list.vue"), }, @@ -351,6 +371,7 @@ meta: { title: "实验结果汇报", keepAlive: true, + privilege:'dataManagement_testResultReport' }, component: () => import("../views/dataManagement/testResultReport/list.vue"), }, @@ -369,6 +390,7 @@ meta: { title: "实验中止审批", keepAlive: true, + privilege:'dataManagement_suspendExperiment' }, component: () => import("../views/dataManagement/suspendExperiment/list.vue"), }, @@ -379,12 +401,14 @@ component: Layouts, meta: { title: "专业报告库审批", + privilege:'reportLibrary' }, children: [{ path: "feasibilityStudy", meta: { title: "可研报告库", keepAlive: true, + privilege:'reportLibrary_feasibilityStudy' }, component: () => import("../views/reportLibrary/feasibilityStudy/index.vue"), }, @@ -406,12 +430,12 @@ }, component: () => import("../views/reportLibrary/feasibilityStudy/add.vue"), }, - { path: "feasibilityReport", meta: { title: "可行报告库", keepAlive: true, + privilege:'reportLibrary_feasibilityReport' }, component: () => import("../views/reportLibrary/feasibilityReport/index.vue"), }, @@ -440,6 +464,7 @@ meta: { title: "工艺开发工具", keepAlive: true, + privilege:'reportLibrary_processDevelopment' }, component: () => import("../views/reportLibrary/processDevelopment/index.vue"), }, @@ -462,14 +487,12 @@ }, component: () => import("../views/reportLibrary/processDevelopment/add.vue"), }, - - - { path: "verificationRelease", meta: { title: "验证与发布", keepAlive: true, + privilege:'reportLibrary_verificationRelease' }, component: () => import("../views/reportLibrary/verificationRelease/index.vue"), }, @@ -496,6 +519,7 @@ meta: { title: "立项报告库", keepAlive: true, + privilege:'reportLibrary_projectProposalLibrary' }, component: () => import("../views/reportLibrary/projectProposalLibrary/index.vue"), }, @@ -524,12 +548,14 @@ component: Layouts, meta: { title: "化验师QA专题报告", + privilege:'chemistQa' }, children: [{ path: "projectTesting", meta: { title: "项目检测项、检验包列表", keepAlive: true, + privilege:'chemistQa_projectTesting' }, component: () => import("../views/chemistQa/projectTesting/index.vue"), }, @@ -556,6 +582,7 @@ meta: { title: "中试、生产验证试验检验分析报告", keepAlive: true, + privilege:'chemistQa_pilotAndProduction' }, component: () => import("../views/chemistQa/pilotAndProduction/index.vue"), }, @@ -573,6 +600,7 @@ meta: { title: "原辅料、包材、竞品检验分析报告", keepAlive: true, + privilege:'chemistQa_rawMaterials' }, component: () => import("../views/chemistQa/rawMaterials/index.vue"), }, @@ -590,6 +618,7 @@ meta: { title: "产品报批及项目工作总计报告", keepAlive: true, + privilege:'chemistQa_productApproval' }, component: () => import("../views/chemistQa/productApproval/index.vue"), }, @@ -609,11 +638,13 @@ component: Layouts, meta: { title: "工作交付评定", + privilege:'deliveryAssessment' }, children: [{ path: "projectTeamIntegral", meta: { title: "项目组总积分", + privilege:'deliveryAssessment_projectTeamIntegral' }, component: () => import("../views/deliveryAssessment/projectTeamIntegral"), }, @@ -630,6 +661,7 @@ path: "taskList", meta: { title: "课题列表", + privilege:'deliveryAssessment_taskList' }, component: () => import("../views/deliveryAssessment/taskList"), }, @@ -638,6 +670,7 @@ path: "restsTask", meta: { title: "实验员其他任务", + privilege:'deliveryAssessment_restsTask' }, component: () => import("../views/deliveryAssessment/restsTask"), }, @@ -646,6 +679,7 @@ path: "clinicalTrial", meta: { title: "临床试验积分列表", + privilege:'deliveryAssessment_clinicalTrial' }, component: () => import("../views/deliveryAssessment/clinicalTrial"), }, @@ -654,6 +688,7 @@ path: "testingAndEvaluation", meta: { title: "检测项评定列表", + privilege:'deliveryAssessment_testingAndEvaluation' }, component: () => import("../views/deliveryAssessment/testingAndEvaluation"), }, @@ -662,6 +697,7 @@ path: "experimentResults", meta: { title: "实验结果评定", + privilege:'deliveryAssessment_experimentResults' }, component: () => import("../views/deliveryAssessment/experimentResults"), }, @@ -670,6 +706,7 @@ path: "assayTaskList", meta: { title: "课题评定列表", + privilege:'deliveryAssessment_assayTaskList' }, component: () => import("../views/deliveryAssessment/assayTaskList"), }, @@ -678,6 +715,7 @@ path: "processEngineerEvaluate", meta: { title: "工艺工程师工作评定详情", + privilege:'deliveryAssessment_processEngineerEvaluate' }, component: () => import("../views/deliveryAssessment/processEngineerEvaluate"), }, @@ -686,6 +724,7 @@ path: "testerWorkerEvaluate", meta: { title: "实验员工作评定", + privilege:'deliveryAssessment_testerWorkerEvaluate' }, component: () => import("../views/deliveryAssessment/testerWorkerEvaluate"), }, @@ -705,6 +744,7 @@ path: "chemistEvaluate", meta: { title: "化验师工作评定", + privilege:'deliveryAssessment_chemistEvaluate' }, component: () => import("../views/deliveryAssessment/chemistEvaluate"), }, @@ -725,6 +765,7 @@ name: 'QAList', meta: { title: "化验师QA专题报告评定", + privilege:'deliveryAssessment_QAList', keepAlive: true, }, component: () => import("../views/deliveryAssessment/QA"), @@ -735,6 +776,7 @@ name: 'ExperimenterJobEvaluation', meta: { title: "实验员工作评定详情", + privilege:'deliveryAssessment_experimenterJobEvaluation', keepAlive: true, }, component: () => import("../views/deliveryAssessment/experimenterJobEvaluation"), @@ -746,6 +788,7 @@ meta: { title: "化验师工作评定详情", keepAlive: true, + privilege:'deliveryAssessment_technicianJobEvaluation' }, component: () => import("../views/deliveryAssessment/technicianJobEvaluation"), }, @@ -756,6 +799,7 @@ meta: { title: "专业报告库评定", keepAlive: true, + privilege:'deliveryAssessment_reportEvaluation' }, component: () => import("../views/deliveryAssessment/reportEvaluation"), }, @@ -792,10 +836,21 @@ return; } - // 判断是否拥有要跳转菜单权限 - let menus = store.state.menus - if (to.meta.hasOwnProperty('privilege') && !menus.includes(to.meta.privilege)) { - return + // 权限判断(使用flatMenus) + let flatMenus = store.state.flatMenus + if (!flatMenus || flatMenus.length === 0) { + // 刷新后从sessionStorage恢复 + const menus = JSON.parse(sessionStorage.getItem('menus') || '[]') + const flat = JSON.parse(sessionStorage.getItem('flatMenus') || '[]') + store.commit('SET_MENUS', menus) + store.commit('SET_FLAT_MENUS', flat) + flatMenus = flat + } + if (to.meta && to.meta.privilege) { + if (!flatMenus.includes(to.meta.privilege)) { + next('/403') // 无权限跳转403 + return + } } // 设置标签列表 -- Gitblit v1.7.1