# 页面设计: 内容详情页 (Content Detail) > **路由**: `/contents/:contentId` > **布局**: `LayoutMain` (Header + Footer) > **结构**: 固定宽度经典阅读布局 (左文右侧栏) ## 1. 页面结构 (Structure) 内容区域固定最大宽度为 `max-w-screen-xl` (`1280px`),水平居中。 - **分栏比例**: 主内容区 (Main) 占 **9份** (`col-span-9`),侧边栏 (Sidebar) 占 **3份** (`col-span-3`)。 - **间距**: 左右分栏间距 `gap-8` (32px)。 - **Sticky 策略**: 侧边栏采用 `sticky` 定位,顶部偏移 `top-24` (Header 64px + 间距 32px),确保滚动时不被遮挡。 --- ## 2. 详细设计 (Detailed Specs) ### 2.1 顶部面包屑 (Breadcrumb) - **位置**: 内容容器上方 `py-4`。 - **路径**: `首页 > [一级分类] > [二级标签] > 正文`。 - **交互**: 点击分类可跳转至首页筛选状态。最后一级(正文标题)为灰字不可点。 ### 2.2 左侧正文区 (Article Body) **容器**: `bg-white rounded-lg shadow-sm p-8 min-h-[600px]`。 #### A. 头部信息 (Header) - **标题 (H1)**: - 结构: `[曲种] 剧目名·选段名` (如: [京剧] 锁麟囊·春秋亭)。 - 样式: `text-3xl sm:text-4xl font-bold text-slate-900 leading-tight mb-4`。 - **戏曲属性 (Opera Meta)**: - 显示在标题下方,徽章样式。 - 内容: `[行当: 青衣]` `[主定调: E大调]` `[板式: 西皮流水]`。 - **元数据行**: - **左侧**: 作者头像 (32px) + 名称 + "发布于 2025-12-25"。 - **右侧工具栏**: 字号调节 / 收藏 / 分享。 #### B. 正文内容 (Content) - **排版规范**: - **默认字号**: `text-lg` (18px),行高 `1.8` (Relaxed)。 - **戏曲剧本模式 (Script Mode)**: - 样式: `[角色]:` 加粗并左侧悬挂,台词缩进对齐。 - 示例: > **薛湘灵**: (白) >    听薛良一语,一似那金钟猛撞。 - **唱段属性块 (Aria Block)**: - 样式: 嵌入正文的播放条卡片。 - 内容: [播放按钮] + 唱段名 + `Key: E` | `Beat: 原板`。 - 交互: 点击播放时,高亮当前块。 - **图片交互**: 支持 Lightbox。 #### C. 付费墙与拦截 (Paywall) - **逻辑**: - **免费/已购**: 展示完整内容。 - **限时免费**: 标题下方显示橙色倒计时条 "限时免费中,剩余 12:00:00"。 - **付费未购**: - **遮罩**: 正文展示前 300 字,下方叠加 `bg-gradient-to-t from-white via-white/90 to-transparent h-64`。 - **购买卡片**: 位于遮罩中心,阻断阅读。 - **价格**: `¥ 99.00` (大号红字) + `¥ 199.00` (划线原价)。 - **按钮**: [立即解锁全文] (Primary, h-14, text-xl)。 - **提示**: "登录后购买,永久有效"。 #### D. 底部区域 (Article Footer) - **版权/免责声明**: 灰色背景块,声明内容来源或免责信息。 - **标签云**: 展示关联 Tags,点击跳转搜索。 - **上下篇导航**: - 上一篇: [标题...] - 下一篇: [标题...] (若无则不显示) ### 2.3 评论区 (Comments) **位置**: 正文容器下方,独立卡片 `mt-6 p-8`。 - **排序与统计**: - 顶部显示 "全部评论 (124)"。 - 右侧排序切换: [最新] (默认) | [热门]。 - **输入交互**: - 文本域: 最小高度 `h-24`,大字号输入。 - **发布按钮**: 点击后进入 `loading` 状态。 - **异常反馈**: - **敏感词**: 接口返回后,输入框下方显示红字 "评论包含敏感词汇,请修改后发布",输入内容保留。 - **重复提交**: 30秒内禁止发布相同内容,提示 "请勿频繁发表重复评论"。 - **网络失败**: Toast 提示 "发布失败,请检查网络",内容保留在输入框。 - **列表结构 (两级嵌套)**: - **主评论 (Level 1)**: 头像 (40px) + 名称 + 正文 + [时间 / 点赞 / 回复]。 - **回复列表 (Level 2)**: 在主评论下方灰色区域显示。 - 结构: `A 回复 B: [内容]`。 - 交互: 点击 [回复] 自动在输入框前置 `@用户名称`。 - **适老化**: 不支持三级以上嵌套,所有回复统一平铺在主评论下方,避免视觉混乱。 - **状态**: - 正常: 显示内容。 - **审核中**: 显示 "该评论正在审核中" (灰色斜体)。 - **已删除**: 显示 "评论已折叠/删除"。 ### 2.4 右侧侧边栏 (Sidebar) **特性**: `h-fit sticky top-24`。 1. **作者/租户名片 (Author Profile)**: - 包含: 大头像 (64px)、名称 (H3)、简介、[+ 关注] 按钮、[私信] 按钮。 - 统计: "102 篇内容" | "1.5w 获赞"。 2. **目录 (TOC)**: - **适老化**: 仅展示 H2 一级目录,避免层级过深。 - **高亮**: 滚动监听,当前章节左侧加粗色条。 3. **相关推荐**: - 图文列表 (左文右图小图模式),推荐 5 篇相似内容。 ### 2.5 媒体渲染器 (Media Renderers) 根据内容的主体类型,Main 区域将采用不同的渲染组件: #### A. 视频组件 (Video Player) - **播放记忆**: 自动记录播放进度。再次打开时 Toast 提示 "已恢复至上次观看处 05:20"。 - **异常处理**: - **加载失败**: 容器显示黑色背景 + 居中提示 "内容解析失败" + [点击重试] 按钮。 - **版权限制**: 显示 "应版权方要求,此内容暂不支持在您所在的地区播放"。 - **控制**: 进度条加宽至 `8px` (Hover 后 `12px`),始终可见大尺寸 [播放/暂停] 按钮。 - **交互规范**: 增加 [后退10秒] / [快进10秒] 按钮,支持全屏模式。 - **试看模式 (Trial Mode)**: - **进度条**: 试看部分显示为**高亮色**,锁定部分显示为**灰色带锁图标**。 - **交互限制**: 拖拽进度条超过试看点时,自动回弹并提示 "后续内容需购买"。 - **中断体验**: 播放至试看结束点,视频暂停,画面覆盖半透明 **购买引导遮罩 (Paywall)**,显示 [¥9.9 解锁全片]。 #### B. 音频组件 (Audio Player) - **播放记忆**: 同视频。 - **试听模式**: 同视频。进度条明确标记 "试听结束点",播放结束后停止并弹出购买卡片。 - **视觉/控制**: 封面图居中,下方大进度条与大控制钮。 - **控制面板**: 背景浅灰色块,大尺寸 [播放/暂停] 按钮居中,支持倍速播放 (0.75x, 1.0x, 1.25x, 1.5x)。 #### C. 图片集 (Gallery) - **单图模式**: 默认大图展示。 - **多图模式**: 默认采用 **“流式竖排”** (类似长微博),避免中老年用户找不到切换箭头的困扰。 - **加载失败**: 占位图显示 "图片加载失败" 图标 + [点击刷新]。 - **交互**: 强制支持 Lightbox 点击放大。 #### D. 混合型 (Mixed Content) - **规则**: 将上述组件作为“块 (Block)”在正文中穿插。 - **间距**: 媒体块与文本块之间统一保持 `my-8` (32px) 的垂直间距,确保视觉节奏清晰。 --- ## 3. 状态与异常 - **内容审核中**: 只有作者自己可见,顶部黄色 Banner "内容审核中,仅自己可见"。 - **内容被下架/删除**: 替换为 404 状态页,提示 "内容已被删除"。 - **无权限**: 若是私密内容,提示 403 "您无权访问此内容"。