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
+5 -3
View File
@@ -14,10 +14,12 @@ export function DesktopLayout({
className = '',
}: DesktopLayoutProps) {
return (
<div className={`min-h-screen bg-bg-page flex ${className}`}>
<div className={`h-screen bg-bg-page flex overflow-hidden ${className}`}>
<Sidebar role={role} />
<main className="flex-1 ml-[260px] p-8 overflow-auto">
{children}
<main className="flex-1 ml-[260px] p-8 overflow-y-auto overflow-x-hidden">
<div className="min-h-full">
{children}
</div>
</main>
</div>
)
+5 -3
View File
@@ -19,10 +19,12 @@ export function MobileLayout({
className = '',
}: MobileLayoutProps) {
return (
<div className={`min-h-screen bg-bg-page flex flex-col overflow-x-hidden ${className}`}>
<div className={`h-screen bg-bg-page flex flex-col overflow-hidden ${className}`}>
{showStatusBar && <StatusBar />}
<main className={`flex-1 ${showBottomNav ? 'pb-[95px]' : ''}`}>
{children}
<main className={`flex-1 overflow-y-auto overflow-x-hidden ${showBottomNav ? 'pb-[80px]' : ''}`}>
<div className="min-h-full">
{children}
</div>
</main>
{showBottomNav && <BottomNav role={role} />}
</div>
@@ -37,7 +37,7 @@ export function ResponsiveLayout({
const closeSidebar = () => setSidebarOpen(false)
return (
<div className={cn('min-h-screen bg-bg-page', className)}>
<div className={cn('h-screen bg-bg-page overflow-hidden', className)}>
{/* 移动端:汉堡菜单按钮 */}
{isMobile && !sidebarOpen && (
<button
@@ -84,11 +84,13 @@ export function ResponsiveLayout({
{/* 主内容区 */}
<main
className={cn(
'min-h-screen transition-all duration-300',
'h-full overflow-y-auto overflow-x-hidden transition-all duration-300',
isMobile ? 'ml-0 pt-16 px-4 pb-6' : 'ml-[260px] p-8'
)}
>
{children}
<div className="min-h-full">
{children}
</div>
</main>
</div>
)
+10 -2
View File
@@ -25,7 +25,15 @@ const sizeStyles = {
md: 'max-w-md',
lg: 'max-w-lg',
xl: 'max-w-xl',
full: 'max-w-[90vw] max-h-[90vh]',
full: 'max-w-[90vw]',
};
const bodyMaxHeightStyles = {
sm: 'max-h-[50vh]',
md: 'max-h-[60vh]',
lg: 'max-h-[65vh]',
xl: 'max-h-[70vh]',
full: 'max-h-[75vh]',
};
export const Modal: React.FC<ModalProps> = ({
@@ -105,7 +113,7 @@ export const Modal: React.FC<ModalProps> = ({
)}
{/* Body */}
<div className="px-5 py-4 max-h-[60vh] overflow-y-auto">
<div className={`px-5 py-4 overflow-y-auto ${bodyMaxHeightStyles[size]}`}>
{children}
</div>