-- ============================================================ -- 导航栏新增一级菜单「报表分析」,并把「患者费用明细统计」挂载其下 -- 对应前端: -- frontend/src/pages/Report/PatientFeeDetail.tsx (页面已由 pages/Profit 迁移至此) -- frontend/src/routes/menuRoutes.ts keyToPath 'report-fee-detail' -> '/report/fee-detail' -- menuTitleMap 'report-fee-detail' -> '患者费用明细统计' -- frontend/src/routes/menuRouteRegistry.tsx MENU_RENDERERS['report-fee-detail'] -> -- frontend/src/context/MenuContext.tsx iconMap['BarChartOutlined'] / parentLabelMap['report'] / parentIconKeyMap['report'] -- -- 说明:前端导航栏完全遵从后端菜单维护,必须先在 BS_DrgSystemMenu 插入记录前端才会渲染。 -- MenuCode 必须与 menuRouteRegistry.tsx 注册的 key 完全一致(大小写敏感)。 -- ============================================================ -- 0. 执行前确认:是否已存在 report / profit-fee-detail 记录(避免重复插入) -- SELECT MenuCode, MenuName, ParentID, MenuPath, SeqNo, MenuLevel, IsLeaf, IsActive, IsVisible, MenuType -- FROM SQLUser.BS_DrgSystemMenu -- WHERE MenuCode IN ('report', 'report-fee-detail', 'profit-fee-detail'); -- 1. 一级菜单:报表分析(目录节点,本身不渲染页面) INSERT INTO SQLUser.BS_DrgSystemMenu (MenuCode, MenuName, ParentID, MenuPath, MenuIcon, Component, SeqNo, MenuLevel, IsLeaf, IsActive, IsVisible, MenuType, Permission, CreateDate, CreateTime, Remark) VALUES ('report', '报表分析', '0', '/report', 'BarChartOutlined', '', 45, 1, 'N', 'Y', 'Y', '01', 'report', CURRENT_DATE, CURRENT_TIME, '报表分析一级菜单(患者费用明细统计等报表类页面)'); -- 注:SeqNo=45 为建议排序(排在「盈亏分析」之后),可按实际现有 SeqNo 调整; -- MenuIcon 需与前端 MenuContext.iconMap 的 key 一致才能显示图标(BarChartOutlined = 📈)。 -- 2. 二级菜单:患者费用明细统计(挂在「报表分析」下) INSERT INTO SQLUser.BS_DrgSystemMenu (MenuCode, MenuName, ParentID, MenuPath, MenuIcon, Component, SeqNo, MenuLevel, IsLeaf, IsActive, IsVisible, MenuType, Permission, CreateDate, CreateTime, Remark) VALUES ('report-fee-detail', '患者费用明细统计', 'report', '/report/fee-detail', 'BarChartOutlined', 'pages/Report/PatientFeeDetail', 10, 2, 'Y', 'Y', 'Y', '02', 'report:fee-detail', CURRENT_DATE, CURRENT_TIME, '患者费用明细 / 按结算类别、按收费项目汇总统计(接口 02010411)'); -- 注:Component 已随文件迁移由 pages/Profit/PatientFeeDetail 改为 pages/Report/PatientFeeDetail。 -- 3. 处理旧的 profit-fee-detail 记录(避免导航出现两个入口) -- 方案 A(推荐,保留历史编码便于回溯):直接停用旧记录 UPDATE SQLUser.BS_DrgSystemMenu SET IsVisible = 'N', IsActive = 'N', Remark = CONCAT('已迁移至 report-fee-detail(报表分析) - ', COALESCE(Remark, '')) WHERE MenuCode = 'profit-fee-detail'; -- 方案 B(如需彻底清理):删除旧记录 -- DELETE FROM SQLUser.BS_DrgSystemMenu WHERE MenuCode = 'profit-fee-detail'; -- ⚠ 若存在按 MenuCode 关联的角色菜单权限数据(如 BS_DRGRoleMenu),删除前需同步迁移到 report-fee-detail, -- 否则已授权角色会丢失该菜单入口;采用方案 A(停用)则不影响权限数据。 -- 4. 部署后验证 SELECT MenuCode, MenuName, ParentID, MenuPath, Component, SeqNo, MenuLevel, IsLeaf, IsActive, IsVisible, MenuType FROM SQLUser.BS_DrgSystemMenu WHERE MenuCode IN ('report', 'report-fee-detail', 'profit-fee-detail') ORDER BY MenuLevel, SeqNo; -- ============================================================ -- 附:若当前环境使用的是 CB_Menu 菜单体系(而非 BS_DrgSystemMenu),请改用下面的语句 -- CB_Menu 结构请以实际库为准,字段可能为 Code / MenuName / ParentCode / RoutePath / Component / SortNo / MenuLevel / IsLeaf / Active / Visible / MenuType -- ============================================================ -- INSERT INTO SQLUser.CB_Menu (Code, Name, ParentCode, RoutePath, Icon, Component, SortNo, MenuLevel, IsLeaf, IsActive, IsVisible, MenuType, Permission) -- VALUES ('report', '报表分析', '', '/report', 'BarChartOutlined', '', 45, 1, 'N', 'Y', 'Y', '01', 'report'); -- -- INSERT INTO SQLUser.CB_Menu (Code, Name, ParentCode, RoutePath, Icon, Component, SortNo, MenuLevel, IsLeaf, IsActive, IsVisible, MenuType, Permission) -- VALUES ('report-fee-detail', '患者费用明细统计', 'report', '/report/fee-detail', 'BarChartOutlined', 'pages/Report/PatientFeeDetail', 10, 2, 'Y', 'Y', 'Y', '02', 'report:fee-detail'); -- -- UPDATE SQLUser.CB_Menu SET IsVisible='N', IsActive='N' WHERE Code='profit-fee-detail';