fix: 角色权限与数据范围修复

- 添加 RoleRoute 路由守卫组件,防止越权访问页面
- 菜单配置:区域经理加'区域对比',店长加'态势感知'
- database.ts: scope注入时检测主表别名避免store_code歧义
- analytics-enhanced.ts: KPI region模式手动注入scope过滤
- situational-awareness.ts: health-score手动注入scope,alerts加skipScope
- smart-scheduling.ts: position-salary-compare店长角色降低HAVING阈值
This commit is contained in:
freedakgmail
2026-08-02 21:28:25 +08:00
parent cfa12c9b7f
commit a011729fc9
13 changed files with 474 additions and 110 deletions
+21
View File
@@ -0,0 +1,21 @@
import { ReactNode } from 'react'
import { Navigate } from 'react-router-dom'
interface RoleRouteProps {
roles: string[]
children: ReactNode
fallback?: string
}
export function RoleRoute({ roles, children, fallback }: RoleRouteProps) {
const userStr = localStorage.getItem('user')
const user = userStr ? JSON.parse(userStr) : null
const role = user?.role
if (!role || !roles.includes(role)) {
const redirect = fallback || (role === 'store' ? '/store' : role === 'regional' ? '/regional' : role === 'platform_admin' ? '/tenant-management' : '/')
return <Navigate to={redirect} replace />
}
return <>{children}</>
}