zhangjf 8e4afcd1a5 feat: TenantAwareLoadBalancer 整合 TenantRoutingProperties 配置
问题:TenantRoutingProperties 定义了配置但未被使用

解决方案:
1. TenantAwareLoadBalancer 注入 TenantRoutingProperties
   - 使用配置的 tenantHeader 名称
   - 使用配置的 buildTenantGroup 方法
   - 使用配置的 isSharedService 判断
   - 使用配置的 isFallbackToShared 策略

2. 新增功能
   - 支持 enabled=false 禁用租户路由
   - 共享服务跳过租户过滤
   - 可配置是否回退到共享实例

3. 更新测试适配新构造函数
2026-02-19 21:02:25 +08:00

47 lines
1.1 KiB
TypeScript

import { defineStore } from 'pinia'
import { ref } from 'vue'
import { request } from '@/api/request'
export const usePermissionStore = defineStore('permission', () => {
const permissions = ref<string[]>([])
const loaded = ref(false)
// 获取用户权限列表
async function fetchPermissions(userId: number) {
try {
const res = await request.get<string[]>(`/sys/menu/permissions/${userId}`)
permissions.value = res.data || []
loaded.value = true
return permissions.value
} catch (error) {
console.error('获取权限失败:', error)
return []
}
}
// 检查是否有权限
function hasPermission(permission: string | string[]): boolean {
if (!permission) return true
if (permissions.value.length === 0) return false
if (Array.isArray(permission)) {
return permission.some(p => permissions.value.includes(p))
}
return permissions.value.includes(permission)
}
// 清空权限
function clearPermissions() {
permissions.value = []
loaded.value = false
}
return {
permissions,
loaded,
fetchPermissions,
hasPermission,
clearPermissions
}
})