feat: 用户徽章与等级体系,积分经济管理重构

- 新增徽章系统:badge 服务与 handler、管理端配置页、BadgeChip/LevelBadge 展示组件
- 新增等级模型:model/level 及前端 levels 元数据
- 管理端经济模块拆分为 points/badges/levels 独立页面,EconomySettings 迁入设置
- 积分、签到、评论等服务适配等级与徽章逻辑
This commit is contained in:
2026-09-25 16:38:29 +08:00
parent 7b327bc8cc
commit 4ae57d9392
57 changed files with 3939 additions and 147 deletions

View File

@@ -0,0 +1,47 @@
import type { LucideIcon } from "lucide-react";
import {
Medal,
Award,
Trophy,
Crown,
Star,
Heart,
Zap,
Flame,
Gem,
Shield,
Rocket,
Sparkles,
ThumbsUp,
BookOpen,
Code,
Wrench,
} from "lucide-react";
/**
* 徽章图标白名单:后台管理以 lucide 图标名存储,前端仅渲染此表内的图标,
* 未知/空名回落 Medal(与后端 model.Badge.Icon 注释约定一致)。
*/
export const BADGE_ICONS: Record<string, LucideIcon> = {
medal: Medal,
award: Award,
trophy: Trophy,
crown: Crown,
star: Star,
heart: Heart,
zap: Zap,
flame: Flame,
gem: Gem,
shield: Shield,
rocket: Rocket,
sparkles: Sparkles,
thumbs_up: ThumbsUp,
book_open: BookOpen,
code: Code,
wrench: Wrench,
};
/** 取徽章图标组件;未知/空名回落 Medal */
export function badgeIcon(name?: string | null): LucideIcon {
return (name && BADGE_ICONS[name]) || Medal;
}