feat: 添加财务摘要接口,更新管理员抽奖模块和导航,优化权限管理逻辑

This commit is contained in:
2026-05-11 16:21:22 +08:00
parent f083b28fc6
commit b539bf0660
57 changed files with 2134 additions and 108 deletions

View File

@@ -0,0 +1,17 @@
import type { AdminNavItem } from "@/modules/_config/admin-nav";
/** 已登录且拥有 `requiredAny` 中任一 slug 则显示;未配置 `requiredAny` 则始终显示。 */
export function adminNavItemVisible(
item: AdminNavItem,
permissionSlugs: readonly string[] | null | undefined,
): boolean {
const req = item.requiredAny;
if (req === undefined || req.length === 0) {
return true;
}
const set = permissionSlugs ?? [];
if (set.length === 0) {
return false;
}
return req.some((slug) => set.includes(slug));
}

View File

@@ -0,0 +1,11 @@
/** 当前登录管理员是否拥有 `required` 中任一权限(与 Laravel `prd.*` slug 对齐)。 */
export function adminHasAnyPermission(
permissionSlugs: readonly string[] | null | undefined,
required: readonly string[],
): boolean {
const set = permissionSlugs ?? [];
if (set.length === 0 || required.length === 0) {
return false;
}
return required.some((slug) => set.includes(slug));
}