feat: 为所有终端添加平台显示功能

- 新增 frontend/lib/platforms.ts 共享平台配置模块
- 支持6个平台: 抖音、小红书、B站、快手、微博、微信视频号
- 品牌方终端: 项目看板、项目详情、终审台列表添加平台显示
- 代理商终端: 工作台概览、审核台、Brief配置、达人管理、
  数据报表、消息中心、申诉处理添加平台显示
- 达人端: 任务列表添加平台显示
- 统一使用彩色头部条样式展示平台信息

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Your Name
2026-02-06 18:53:51 +08:00
co-authored by Claude Opus 4.5
parent 964797d2e9
commit 0bfedb95c8
22 changed files with 1784 additions and 460 deletions
+19 -1
View File
@@ -17,6 +17,7 @@ import {
MoreVertical,
PlusCircle
} from 'lucide-react'
import { getPlatformInfo } from '@/lib/platforms'
// 消息类型
interface Message {
@@ -29,6 +30,7 @@ interface Message {
icon: typeof Bell
iconColor: string
bgColor: string
platform?: string
// 申诉次数请求专用字段
appealRequest?: {
creatorName: string
@@ -50,6 +52,7 @@ const mockMessages: Message[] = [
icon: PlusCircle,
iconColor: 'text-accent-amber',
bgColor: 'bg-accent-amber/20',
platform: 'douyin',
appealRequest: {
creatorName: '李小红',
taskName: '618美妆推广视频',
@@ -67,6 +70,7 @@ const mockMessages: Message[] = [
icon: FileText,
iconColor: 'text-accent-indigo',
bgColor: 'bg-accent-indigo/20',
platform: 'xiaohongshu',
},
{
id: 'msg-003',
@@ -78,6 +82,7 @@ const mockMessages: Message[] = [
icon: PlusCircle,
iconColor: 'text-accent-amber',
bgColor: 'bg-accent-amber/20',
platform: 'xiaohongshu',
appealRequest: {
creatorName: '美妆达人小王',
taskName: '双11护肤品种草',
@@ -95,6 +100,7 @@ const mockMessages: Message[] = [
icon: CheckCircle,
iconColor: 'text-accent-green',
bgColor: 'bg-accent-green/20',
platform: 'xiaohongshu',
},
{
id: 'msg-005',
@@ -106,6 +112,7 @@ const mockMessages: Message[] = [
icon: XCircle,
iconColor: 'text-accent-coral',
bgColor: 'bg-accent-coral/20',
platform: 'bilibili',
},
{
id: 'msg-006',
@@ -117,6 +124,7 @@ const mockMessages: Message[] = [
icon: Users,
iconColor: 'text-purple-400',
bgColor: 'bg-purple-500/20',
platform: 'douyin',
},
{
id: 'msg-007',
@@ -128,6 +136,7 @@ const mockMessages: Message[] = [
icon: AlertTriangle,
iconColor: 'text-orange-400',
bgColor: 'bg-orange-500/20',
platform: 'xiaohongshu',
},
{
id: 'msg-008',
@@ -139,6 +148,7 @@ const mockMessages: Message[] = [
icon: Video,
iconColor: 'text-purple-400',
bgColor: 'bg-purple-500/20',
platform: 'bilibili',
},
]
@@ -222,15 +232,23 @@ export default function AgencyMessagesPage() {
const Icon = message.icon
const isAppealRequest = message.type === 'appeal_quota_request'
const appealStatus = message.appealRequest?.status
const platform = message.platform ? getPlatformInfo(message.platform) : null
return (
<Card
key={message.id}
className={`transition-all ${
className={`transition-all overflow-hidden ${
!isAppealRequest ? 'cursor-pointer hover:border-accent-indigo/50' : ''
} ${!message.read ? 'border-l-4 border-l-accent-indigo' : ''}`}
onClick={() => !isAppealRequest && markAsRead(message.id)}
>
{/* 平台顶部条 */}
{platform && (
<div className={`px-4 py-1.5 ${platform.bgColor} border-b ${platform.borderColor} flex items-center gap-1.5`}>
<span className="text-sm">{platform.icon}</span>
<span className={`text-xs font-medium ${platform.textColor}`}>{platform.name}</span>
</div>
)}
<CardContent className="py-4">
<div className="flex items-start gap-4">
<div className={`w-10 h-10 rounded-lg ${message.bgColor} flex items-center justify-center flex-shrink-0`}>