# UniLivo 产品需求文档

## 1. 文档概览

| 项目 | 内容 |
|---|---|
| 产品名称 | UniLivo |
| 文档版本 | MVP v0.26 |
| 文档状态 | 当前前端 MVP 基线 |
| 最近更新 | 2026-08-21 |
| 产品阶段 | 前端交互验证 / PMF 探索 |
| 正式 Demo | `Style4-demo-mvp.html` |
| 维护站点 | `/docs` |
| 独立官网 PRD | `unilivo-official-website.PRD.md` |
| 历史长版 | `PRD-UniLivo校园墙.md` |
| 历史视觉稿 | `Style1-demo-mvp.html`、`Style2-demo-mvp.html`、`Style3-demo-mvp.html`、`homepage-concepts.html` |

### 1.1 本版整理原则

本 PRD 以当前可运行 HTML Demo 为产品事实基线：

- `已实现`：当前 `Style4-demo-mvp.html` 中存在并可操作的前端能力。
- `模拟实现`：流程已具备，但数据、认证、消息或结算仅保存在当前浏览器。
- `待实现`：属于后续正式产品范围，当前 Demo 尚未具备。
- 独立视觉稿只用于风格评审，不自动成为正式产品需求。
- Style4 已确认为后续唯一正式 MVP 视觉与交互基线；Style1–Style3 仅保留为历史对照稿，不再并行开发。
- UniLivo 面向澳大利亚、英国、美国和德国校园市场；产品统一采用“国家 → 地区 → 城市 → 大学 → 校区 → 校园社区”主数据结构，以校园为内容与履约单元、国家配置为货币/时区/合规单元、UniLivo 账号为跨地区身份单元。
- Style4 学校选择器支持 AU、UK、US、DE 四国切换；切换时同步更新学校、校区、邮箱域名、货币、时区、地区导航、Banner、搜索语境与示例内容。闲置、单人任务和活动不得跨国家或跨校园自动撮合。
- 每所校园拥有独立的闲置、任务与活动前端状态；离开校园时保存当前业务上下文，返回后恢复。切换学校会使原学校邮箱认证失效，但登录与 18+ 资格可保留，需要使用新学校域名重新认证。
- Style4 的个人中心支持管理发布、收藏与通知：用户可筛选、编辑或删除自定义发布，收藏状态与首页同步，通知可跳转业务详情或清空。
- Style4 校园活动支持报名资料确认、电子凭证、取消报名、现场签到和活动后评价；活动与帖子不同，但报名流程不包含支付。
- Style4 提供前端演示场景控制台和网络异常模拟；危险操作需要二次确认，失败操作不得改变既有业务状态。
- Style4 首页支持搜索历史、校园热搜、业务分类结果和无结果推荐；搜索历史仅保存在当前浏览器。
- Style4 热榜支持今日、本周、本月以及澳洲州别筛选，榜单内容可跳转对应业务详情，热度为前端演示数据。
- Style4 提供普通学生、发布者、活动主办方和管理员角色切换；角色测试台展示权限、业务状态机、工作台与跨页面联动日志。
- Style4 举报流程包含原因、说明与处理记录；拉黑用户会进入可管理黑名单，并支持解除拉黑。
- Style4 单人任务支持异常争议：承接后可选择原因、补充说明和凭证，争议期间任务暂停并展示平台处理时间线。
- Style4 底部主导航是独立于首页与全屏业务页的全局常驻层；进入任意帖子详情、热榜、消息或“我的”后仍须保持可见、可点击，并允许直接切换一级页面。
- 首页、热榜、消息和“我的”属于同级一级页面：点击底部 Tab 必须立即替换整页内容，不使用从右侧推入、卡片浮层或返回箭头；只有会话、帖子和业务详情等二级页面展示返回结构。
- 首页搜索默认收纳为顶部圆形图标，固定放在语言切换按钮左侧；点击后展开搜索输入框、历史记录和校园热搜，提交或点击页面其他区域后自动收起。
- 二手闲置详情页顶部必须展示卖家头像、姓名、校园认证、校区与发布时间；身份区域可进入独立公开个人主页。公开主页展示简介、校园身份、公开统计、Campus Trust、公开发布/已售/帖子与评价，并支持关注、私信和内容跳转。
- 用户公开主页不得展示邮箱、课程表、精确位置、私信内容或私人交易信息；从商品详情进入个人主页、再进入主页内容时，需要保留可理解的返回路径。
- 闲置交易必须记录咨询、报价、接受/拒绝、预留、取消、交付完成、争议和评价等关键行为，形成按订单和用户可追溯的交易行为时间线；前端 Demo 保存于 LocalStorage，正式开发由服务端生成不可篡改记录。
- 交易完成后开启双方独立评价：买家评价卖家，卖家评价买家。每份评价包含 1–5 星、结构化印象标签、公开文字与时间；未完成交易不得评价，同一订单同一方向只能提交一次。
- 面向用户只展示完成量、协商取消、争议、爽约、24 小时回复率、综合评分和合规公开评价；后台诊断可查看订单行为时间线、双方评价、风险事件和争议状态，但单次差评不得直接触发账号限制。
- Style4 消息中心已与核心业务状态联动：闲置、单人任务和校园活动的关键变化自动生成业务动态，支持分类筛选、未读角标、全部已读和详情深链。
- Style4 搜索和高级筛选共用智能无结果恢复：展示导致无结果的关键词与筛选条件，并提供清除关键词、放宽条件、恢复全部和同校相关推荐；筛选弹层必须高于全局导航，避免底部操作误触。
- Style4 首次访问采用渐进式激活：语言选择后依次说明产品价值、确认国际校园、选择至少 2 个兴趣，再进入首页；校园认证只在闲置、单人任务和校园合伙人等高信任操作前按场景触发。
- Style4 本机数据采用显式 Schema v10：启动时按版本自动兼容迁移，不覆盖既有业务记录；“我的”提供数据健康检查、诊断摘要、JSON 备份、离线同步队列和分享回流记录，并明确当前仅为本机模拟统计。
- Style4 的帖子、闲置、单人任务和校园活动均可从首页卡片或独立详情页分享；分享链接直达对应内容并展示来源提示，支持推荐语、复制链接、渠道选择、校园海报和“我的 → 分享与邀请”记录。
- Style4 首页信息流在手机端统一使用 18px 左右页面边距；帖子卡片外轮廓必须与 Banner、州标签、筛选区和“加载更多”左右对齐，不允许卡片单独贴边。
- Style4 首页顶部不再展示独立的 “Australian Campus Network / Semester 2” 信息卡；当前校园只保留在左上学校选择器，澳洲语境通过学校、城市州别、AUD、Banner 与内容数据表达，避免信息重复。
- Style4 的帖子、闲置、单人任务和校园活动详情统一展示作者头像、姓名、认证、校园身份与“最近来过”；头像和姓名可进入公开个人主页，详情与主页均可关注且状态实时同步。
- Style4 将 Dana 的创始人故事作为品牌内容长期保留：首页第三张轮播 Banner 和“我的”菜单底部均提供入口，点击进入独立长文页面；故事页不展示创始人头像，以 2024 年、澳大利亚留学与咖啡厅场景建立叙事识别，正式内容源文件为 `UniLivo-创始人故事.md`。
- 项目统一品牌名称为 `UniLivo`，APP Demo、官网、Docs、BP/PPT、分享物料和 Markdown 文档必须使用同一名称；品牌方形字标统一使用字母 `U`。既有线上域名、Vercel 项目名与 Git 仓库地址属于基础设施标识，在完成独立迁移前继续保持现状。

### 1.2 PRD 持续更新机制

从 MVP v0.7 起，`PRD.md` 是项目需求事实源。每次对代码、页面或交互进行优化时，必须在同一轮工作中同步更新本文件，不允许只更新 `DEV-UPDATE.md`。

每次更新至少完成以下动作：

1. 将新增或变化的能力写入对应功能模块，补充需求编号、当前状态和验收标准。
2. 若涉及状态机、角色权限、金额、佣金、名额或异常分支，必须同步修改对应业务规则。
3. 在“优化更新记录”中追加一行，写明日期、优化主题、用户价值、影响模块和实现状态。
4. 若需求优先级、MVP 边界或下一步计划发生变化，同步更新第 10、12、13 节。
5. 仅视觉微调也要记录；若不影响产品逻辑，可标注为“体验优化”，无需新增功能编号。
6. 部署行为本身不改变需求时，只记录到 `DEV-UPDATE.md`，无需重复写入 PRD。

#### 1.2.1 优化更新记录

| 日期 | 优化主题 | 用户价值 | 影响模块 | 状态 |
|---|---|---|---|---|
| 2026-08-21 | 四国校园市场与本地业务范围 | 用户可在澳大利亚、英国、美国、德国校园间切换，并获得正确的学校、货币、时区、邮箱认证和本地内容；交易、任务和活动不会跨境串联 | 国际校园目录、首页、学校选择、发布、认证、校园业务状态、Schema v10 | 前端模拟实现 |
| 2026-08-21 | 交易信用前置与未到场双向确认 | 用户在报价前即可判断卖家可靠程度；未到场不会因单方面申报立即损害信用，并支持确认、延期、异议与超时 | 闲置详情、个人主页、交易评价、交易详情、消息、Schema v9 | 前端模拟实现 |
| 2026-08-20 | 闲置预留期限、异常与交易待办 | 双方能明确预留剩余时间，处理延期、协商取消、未到场和重新上架，并在“我的交易”优先看到下一步 | 闲置交易详情、我的交易、交易档案、消息、Schema v8 | 前端模拟实现 |
| 2026-08-20 | 闲置商品状态与独立交易单闭环 | 报价沟通不再错误改变商品状态；接受单一报价后进入独立交易页，由买卖双方共同确认交付并沉淀交易记录 | 闲置详情、商品管理、交易详情、我的交易、个人主页、Schema v7 | 前端模拟实现 |
| 2026-08-20 | 全项目品牌升级为 UniLivo | 用户在 APP、官网、文档和对外 BP 中获得一致的品牌识别，同时旧浏览器业务数据不因改名丢失 | Style1–Style4、官网、Docs、分享物料、Markdown、PPT、LocalStorage 兼容迁移 | 已实现 |
| 2026-08-20 | Dana 创始人故事与双入口 | 用户可以通过真实留学场景理解 UniLivo 的产品起点、使命和信任价值，增强品牌记忆与传播表达 | 首页三图 Banner、我的、品牌故事页、Markdown 内容资产 | 已实现 |
| 2026-08-20 | 全内容作者身份、公开主页与关注关系 | 用户可在进入任意内容后识别发布者活跃状态，查看公开主页、信用与历史内容，并建立可持续关注关系 | 帖子、闲置、任务、活动详情、公开个人主页、关注状态、返回路径 | 已实现 |
| 2026-08-20 | 精简首页顶部校园信息卡 | 删除与学校选择器重复的网络、城市和学期信息，缩短首屏并让搜索与 Banner 更快出现 | Style4 首页头部、校园上下文、多语言 | 体验优化 |
| 2026-08-20 | 移动端帖子卡片边距统一 | 手机端信息流卡片与首页其他元素使用同一左右基线，减少卡片贴边和版面跳动 | Style4 首页、信息流、帖子/闲置/任务/活动卡片 | 体验优化 |
| 2026-08-20 | 全内容分享与校园回流闭环 | 用户可从任意内容快速分享给同校同学，接收者直达独立详情并继续浏览，分享者可查看本机分享与回流记录 | 首页、四类内容详情、分享面板、分享海报、URL 深链、我的、本机数据 | 模拟实现 |
| 2026-08-20 | 首次激活与按场景校园认证 | 新用户可先选校园和兴趣快速看到价值，仅在交易、任务或合伙人申请前补充登录、18+ 与学校邮箱验证，降低首次使用门槛 | 首次访问、首页、校园目录、兴趣推荐、校园认证、闲置、任务、校园合伙人、我的 | 模拟实现 |
| 2026-08-20 | 一级导航改为直接整页切换 | 热榜、消息和“我的”不再像临时卡片从右侧推入，用户能明确理解它们与首页是同级核心板块 | 首页、热榜、消息、我的、底部导航、详情层级 | 已实现 |
| 2026-08-19 | 离线操作与恢复同步闭环 | 网络不可用时关键业务动作仍可保存在本机，恢复后能查看、确认并统一同步，不再误以为操作丢失 | 全业务状态、本机数据、异常提示、底部导航 | 模拟实现 |
| 2026-08-19 | 本机数据版本、迁移与健康检查 | 旧版 Demo 数据可以安全升级，用户能看懂本机保存边界并主动备份，降低迭代后状态损坏风险 | LocalStorage、我的、数据管理、全业务状态 | 已实现 |
| 2026-08-19 | 搜索与筛选智能无结果恢复 | 用户能理解为什么没有结果，并通过放宽条件或相关推荐继续浏览，避免陷入死路 | 首页、搜索、筛选、详情、弹层层级 | 已实现 |
| 2026-08-19 | 业务状态与消息中心联动 | 用户无需重复进入详情即可获知闲置、任务和活动进度，并能从消息直达对应业务 | 消息、闲置、任务、活动、底部导航 | 模拟实现 |
| 2026-08-19 | Style4 升级为正式 MVP 基线 | 后续设计、交互、文档和默认入口统一，避免多风格并行造成逻辑漂移 | 全局、部署路由、维护文档 | 已确认 |
| 2026-08-19 | 二手闲置争议闭环 | 面交或商品异常时可暂停关键操作、保留记录并获得不涉及付款的处理建议 | 二手闲置、管理员工作台 | 模拟实现 |
| 2026-08-18 | 单人任务争议流程 | 任务异常时可暂停推进并保留处理记录 | 有奖任务、安全中心 | 模拟实现 |
| 2026-08-18 | 举报与黑名单闭环 | 用户可提交原因、查看记录并解除拉黑 | 内容安全、我的 | 模拟实现 |
| 2026-08-18 | 活动候补与主办方管理 | 满员后可候补，主办方可转正、释放名额和提醒 | 校园活动 | 模拟实现 |
| 2026-08-18 | 闲置交易买卖双方闭环 | 买家报价可撤回，卖家可接受、婉拒、预留和确认售出 | 二手闲置 | 模拟实现 |
| 2026-08-18 | 校园合伙人招募 | 学生可了解权益、提交申请并查看审核进度 | 校园选择、增长运营 | 模拟实现 |
| 2026-08-18 | 校园合伙人运营工作台 | 审核通过后可查看认证、运营任务、数据和激励 | 校园合伙人 | 模拟实现 |
| 2026-08-18 | 首页多主题轮播 Banner | 首页可承载多个运营主题并直达对应业务流程 | 首页、校园合伙人 | 已实现 |
| 2026-08-18 | Banner 轮播间隔调整为 2 秒 | 提高运营主题曝光频率，同时保留暂停与手动控制 | 首页 | 体验优化 |
| 2026-08-18 | 内容下架与账号限制异常闭环 | 用户明确知道受限原因、可用能力和申诉路径，管理员可恢复状态 | 内容安全、管理员工作台 | 模拟实现 |
| 2026-08-18 | 首页组合筛选 | 用户可按内容类型、AUD 金额、当前校园和可参与状态快速缩小结果 | 首页、搜索与发现 | 已实现 |
| 2026-08-18 | 活动取消闭环 | 取消报名时明确原因、名额释放和凭证失效结果，减少误操作 | 校园活动、我的参与 | 模拟实现 |
| 2026-08-18 | 首页时空筛选与排序 | 用户可按发布时间、校园距离和业务目标快速重排内容 | 首页、搜索与发现 | 模拟实现 |
| 2026-08-18 | 统一安全入口与角色权限回归 | 所有主要用户内容使用一致治理入口，关键动作按角色统一拦截 | 内容安全、角色系统 | 模拟实现 |
| 2026-08-18 | 键盘与弹层无障碍闭环 | 键盘用户可进入、操作并退出主要页面，焦点不会丢失 | 全局交互、弹层、Feed | 已实现 |
| 2026-08-18 | 主办方活动改期与取消 | 活动发生变化时参与者及时获知，新动作与凭证状态保持一致 | 校园活动、消息、我的参与 | 模拟实现 |
| 2026-08-18 | 活动结束与回顾沉淀 | 活动结束后保留现场成果、数据与评价，形成长期校园内容 | 校园活动、主办方工作台 | 模拟实现 |
| 2026-08-18 | 全内容独立详情页与多图 | 帖子、闲置、任务、活动统一进入全屏详情；任务与活动支持最多 9 图 | 首页、详情、任务、活动 | 前端实现 |

### 1.3 修订记录

| 版本 | 日期 | 修改内容 |
|---|---|---|
| v0.4 | 2026-08-11 | 建立帖子、闲置、任务、活动与个人中心基础需求 |
| v0.5 | 2026-08-11 | 补充 URL 恢复、演示场景与前端状态闭环 |
| v0.6 | 2026-08-17 | 按当前 HTML Demo 重构 PRD，补充需求编号、状态枚举、验收标准和视觉实验边界 |
| v0.7 | 2026-08-18 | 建立 PRD 强制同步机制，补录 Style4 近期核心逻辑与体验优化 |
| v0.8 | 2026-08-19 | 确认 Style4 为唯一正式 MVP 基线，补充二手闲置争议与处理记录 |
| v0.9 | 2026-08-19 | 补充业务状态驱动消息、分类筛选、未读管理和详情深链规则 |
| v0.10 | 2026-08-19 | 补充搜索与筛选无结果原因、恢复动作、相关推荐和弹层防误触规则 |
| v0.11 | 2026-08-19 | 补充 LocalStorage Schema v3、自动迁移、本机数据健康检查与 JSON 备份规则 |
| v0.12 | 2026-08-19 | 增加 Schema v4、离线待同步队列、全局状态提示和恢复同步验收规则 |
| v0.13 | 2026-08-20 | 将首页、热榜、消息、我的统一为无推入动画的同级一级页面，明确二级详情返回规则 |
| v0.14 | 2026-08-20 | 增加首次价值引导、校园与兴趣设置、渐进式校园认证、关键操作拦截和 Schema v5 兼容迁移 |
| v0.15 | 2026-08-20 | 增加四类内容分享入口、推荐语、渠道与海报、独立详情回流、分享记录和 Schema v6 迁移 |
| v0.16 | 2026-08-20 | 统一手机端首页信息流卡片与 Banner、筛选区的 18px 左右页面基线 |
| v0.17 | 2026-08-20 | 移除首页顶部重复的 Australian Campus Network / Semester 2 信息卡，收紧首屏层级 |
| v0.18 | 2026-08-20 | 拆分商品、报价与交易状态，新增唯一交易单、独立交易详情、双方交付确认、我的交易和 Schema v7 迁移；明确 MVP 不做多报价管理 |
| v0.24 | 2026-08-20 | 增加预留倒计时、单次延长、延期、协商取消、未到场、自动释放、重新上架、待办型我的交易和 Schema v8 |
| v0.25 | 2026-08-21 | 增加商品详情信用决策卡、买卖角色信用、已验证交易评价、未到场双向确认与 Schema v9 |
| v0.26 | 2026-08-21 | 从澳洲单一市场升级为 AU / UK / US / DE 四国校园模型，增加国家适配器、校园业务隔离、重新认证与 Schema v10 |

## 2. 产品背景与目标

### 2.1 产品定位

UniLivo 是面向澳大利亚、英国、美国和德国高校学生的可信校园社区。学生可以在当前学校或校区范围内发现校园信息、参与讨论、进行二手闲置线下面交、承接有明确奖励的校园任务，以及报名校园活动。

产品使用全球统一骨架和国家本地配置：澳大利亚使用 AUD 与当地时区，英国使用 GBP，英国校园时间按 GMT/BST，德国使用 EUR 与 CET/CEST，美国使用 USD 并按学校所在地使用 PT/MT/CT/ET。界面语言与校园国家相互独立，例如用户可以在德国校园继续使用中文界面，但交易金额必须保持 EUR。

当前前端 Demo 使用固定时区缩写验证联动；正式开发必须使用 IANA Time Zone 和夏令时规则计算实际时间，不得长期写死 GMT、CET 或 AEST。

### 2.2 核心用户问题

1. 校园信息分散在群聊、社交平台和学校网站，时效性与相关性不足。
2. 二手交易缺少校园身份与商品状态，沟通成本高且线下面交风险不透明。
3. 校园代办需求缺少明确奖励、唯一承接人和履约状态，容易重复报名或责任不清。
4. 校园活动与普通帖子混在一起，缺少时间、地点、名额和报名管理。

### 2.3 产品目标

- 让用户在进入首页后 30 秒内发现至少一条与当前校园相关的内容。
- 让帖子发布、评论与收藏形成完整前端闭环。
- 让二手闲置从发布、报价、预留到面交评价形成可演示闭环。
- 让有奖任务严格遵循单人承接，从锁定、执行、交付到验收形成可演示闭环。
- 让校园活动具备区别于帖子的独立报名入口和状态表达。
- 建立“校园合伙人”机制，由认证在校生协助校园社区冷启动、日常内容与活动运营，并通过透明激励和官方支持形成长期运营网络。

### 2.4 北极星指标与关键指标

北极星指标：每周完成一次“可信校园互动”的活跃用户数。

可信校园互动包括：有效发帖、评论、收藏、二手报价、任务承接完成、活动报名或签到。

| 指标 | 定义 |
|---|---|
| 首页内容点击率 | 首页内容详情打开次数 / 首页有效曝光次数 |
| 发布完成率 | 成功发布数 / 打开发布器次数 |
| 二手闭环率 | 已完成面交商品数 / 进入预留状态商品数 |
| 任务履约率 | 已验收任务数 / 已被承接任务数 |
| 活动报名转化率 | 报名成功人数 / 活动详情访问人数 |
| 争议率 | 进入争议状态任务数 / 已承接任务数 |
| 7 日留存率 | 首次激活后第 7 日仍有有效行为的用户比例 |

## 3. 用户角色与权限

| 角色 | 浏览 | 社区互动 | 发布帖子 | 发布闲置/任务 | 报价/承接任务 | 活动报名 |
|---|---|---|---|---|---|---|
| 游客 | 允许 | 不允许 | 不允许 | 不允许 | 不允许 | 不允许 |
| 普通用户 | 允许 | 点赞、评论、收藏、关注 | 允许 | 不允许 | 不允许 | 允许 |
| 认证学生 | 允许 | 全部允许 | 允许 | 允许 | 允许 | 允许 |

### 3.1 首次激活与身份升级流程

首次激活：`语言选择 → 价值说明 → 确认校园 → 选择至少 2 个兴趣 → 普通校园首页`

高信任能力升级：`触发闲置 / 单人任务 / 合伙人操作 → 登录 → 18+ 校验 → 学校邮箱认证 → 认证学生`

当前 Demo 状态：`模拟实现`。

验收标准：

1. 首次访问必须在语言选择后展示产品价值，允许确认当前校园并从 6 个兴趣中至少选择 2 个。
2. 用户可以跳过首次设置并直接浏览；首页使用轻量认证提示卡，不使用反复阻断的长弹窗。
3. 浏览普通内容和活动报名不强制校园邮箱认证；发布普通帖子也不属于交易能力。
4. 闲置咨询、报价、发布闲置、发布或承接单人任务、发布活动与申请校园合伙人前，必须进入独立校园认证页，并明确触发原因。
5. 认证顺序为模拟登录、确认已满 18 岁、验证当前校园邮箱；前一步未完成时后一步保持禁用。
6. 未满 18 岁不能解锁闲置、单人任务和校园合伙人等高信任能力，但不阻止浏览校园内容。
7. 认证完成后，当前校园、认证状态和邮箱域名写入 LocalStorage；Demo 不保存出生日期、完整邮箱、证件或真实验证码。
8. 旧版 Schema v4 数据迁移到 v5 时保持原有认证体验，不突然阻断已经可用的演示流程。

### 3.2 首次激活需求清单

| 编号 | 需求 | 当前状态 |
|---|---|---|
| ACTIVATE-01 | 首次语言选择后进入 4 段式全屏激活流程，显示进度、返回和跳过 | 已实现 |
| ACTIVATE-02 | 校园步骤支持搜索 50 所澳洲高校与 TAFE，并同步首页校园上下文 | 已实现 |
| ACTIVATE-03 | 兴趣步骤提供新生季、学习互助、二手闲置、有奖任务、校园活动、租房生活，至少选择 2 个 | 已实现 |
| ACTIVATE-04 | 完成或跳过后进入首页，未认证用户展示可关闭的轻量认证提示 | 已实现 |
| ACTIVATE-05 | 闲置、任务、活动发布与校园合伙人申请按场景进入独立认证页 | 模拟实现 |
| ACTIVATE-06 | 认证中心展示 3 步进度、当前校园邮箱域名、隐私边界和重新体验首次引导入口 | 模拟实现 |

## 4. 产品范围

### 4.1 MVP 范围

- 校园内容 Feed、热榜、搜索与筛选。
- 普通帖子及其 Tag、多图和多级评论。
- 二手闲置发布、报价、预留、面交和评价。
- 单人承接的有奖任务、履约凭证、验收、评价和争议。
- 校园活动发布、报名和取消报名。
- 消息、通知、我的发布、我的收藏和我的参与。
- URL 页面恢复、LocalStorage 状态保存和演示场景切换。

### 4.2 当前不做

- 真实支付、资金托管、自动扣款或自动结算。
- 生产级实时聊天、推送和消息已读回执。
- 真实学校邮箱发信、人工审核和证件核验。
- 生产级推荐算法、内容治理后台和数据分析平台。
- 物流配送、跨校邮寄和平台担保交易。
- 多人承接同一个有奖任务。

## 5. 信息架构

### 5.1 主导航

底部导航固定为：`首页 / 热榜 / 发布 / 消息 / 我的`。

- 底部导航在首页、热榜、消息、我的和所有全屏二级页面中持续可见，不因进入详情、会话或管理页面而消失。
- 点击任意主 Tab 直接切换目标一级页面，并同步唯一选中态；点击首页时关闭当前二级页面并返回首页顶部。
- 一级页面切换不得使用左右推入、抽屉或弹窗转场；热榜、消息和“我的”不显示返回按钮，标题与内容直接形成完整页面。
- 从一级页面进入会话、帖子、闲置、任务、活动或管理详情时切换为二级页面，恢复返回按钮；用户仍可通过底部导航直接跳转到任意一级页面。
- 中央发布按钮始终可用，但发布表单和危险确认弹层可临时覆盖导航。

### 5.2 首页频道

| 频道 | 内容形态 | 是否涉及金额 | 核心状态 |
|---|---|---|---|
| 全部 | 四类内容混合 Feed | 视内容类型而定 | 推荐、最新、关注 |
| 帖子 | 普通 UGC 帖子 | 否 | 已发布、草稿、下架、删除 |
| 闲置市场 | 校园二手商品 | 展示 AUD 售价 | 审核中、在售、已预留、已售出、已下架 |
| 有奖任务 | 校园代办与互助任务 | 展示 AUD 奖励 | 待承接、待开始、进行中、待确认、已完成、已取消、争议中 |
| 校园活动 | 可报名的独立活动 | 可显示费用说明 | 报名中、即将满员、报名截止、进行中、已结束 |

### 5.3 帖子 Tag

普通帖子使用统一内容结构，通过 Tag 区分：吐槽八卦、二手闲置讨论、新学季、学习互助、租房生活、求助问答。

产品约束：帖子 Tag 中的“二手闲置”只代表讨论主题，不包含商品价格、报价、预留或支付逻辑。真实商品交易必须发布到“闲置市场”。

## 6. 核心功能需求

### 6.1 首页、发现与范围

| 编号 | 需求 | 当前状态 |
|---|---|---|
| FEED-01 | 支持全部、帖子、闲置、任务、活动频道切换 | 已实现 |
| FEED-01A | 首页支持多主题 Banner 自动轮播、手动圆点切换和移动端滑动 | 已实现 |
| FEED-02 | 支持当前校园、同城和当前国家范围；闲置、任务、活动默认锁定当前校园 | 已实现 |
| FEED-03 | 支持为你推荐、最新发布、我的关注三种排序 | 已实现 |
| FEED-04 | 支持频道状态筛选和帖子 Tag 筛选 | 已实现 |
| FEED-05 | 支持刷新、加载更多、到底提示和回到顶部 | 已实现 |
| FEED-06 | 支持按标题、正文与分类进行校园内搜索 | 已实现 |
| FEED-07 | 覆盖澳大利亚 50 所高校与 TAFE，并提供英国、美国、德国各 8 所代表高校；支持国家、学校、简称、校区、城市、地区和邮箱域名搜索 | 已实现 |
| FEED-08 | 支持内容类型、价格或奖励上限、当前校园、可参与状态组合筛选，并持久保存 | 已实现 |
| FEED-09 | 支持发布时间、校园距离筛选，以及综合、最新、最近、金额和热度排序 | 模拟实现 |
| FEED-10 | 搜索或组合筛选无结果时，展示当前限制条件、分层恢复动作和最多 3 条相关推荐 | 已实现 |
| FEED-11 | 国家与校园切换同步货币、时区、学校邮箱、地区条、Banner、发布表单和本地内容，并使旧校园认证失效 | 已实现 |
| FEED-12 | 闲置、任务和活动业务状态按校园独立保存；切换校园不串单，返回原校园恢复上下文 | 模拟实现 |

验收标准：

1. 切换频道后只展示匹配内容，并重置不适用的状态筛选。
2. 切换校园后首页回到全部频道并显示对应校园内容。
3. 推荐、最新和关注模式拥有独立、可解释的结果。
4. 加载更多不会重复内容，到底后给出完成提示。
5. 首页筛选、范围和校园写入 URL，刷新后可以恢复。
6. 多个高级筛选条件同时生效，按钮显示生效条件数量；无结果时提供一键重置。
7. 排序只改变当前筛选结果的展示顺序；距离为前端 Demo 模拟值，正式开发需接入定位授权与地理数据。
8. 切换校园后，国家、学校简称、校区、城市、地区、货币、时区和校园邮箱域名必须同步更新；历史校园值无法匹配时回退到默认校园。
9. 无结果状态必须说明当前关键词、内容类型、当地货币上限、距离、时间、校园或可参与限制；用户可以只清关键词、放宽金额与距离，或恢复全部条件。
10. 无结果状态展示最多 3 条可进入独立详情页的同校推荐，优先匹配当前内容类型；恢复后空状态隐藏，Feed 与筛选计数同步更新。
11. 高级筛选弹层必须覆盖全局底部导航，底部提交按钮不得被导航遮挡或误触为一级 Tab。
12. 切换到其他学校后，不展示旧校园用户发布内容，也不继承旧校园进行中的交易、任务或活动；返回旧校园后原上下文可恢复。
13. 切换学校后，原学校邮箱认证立即失效；重新认证只接受当前学校配置的邮箱域名。

### 6.1.1 全内容互动

| 编号 | 需求 | 当前状态 |
|---|---|---|
| ENGAGE-01 | 普通帖子、闲置、任务和活动详情统一展示点赞、评论和收藏 | 已实现 |
| ENGAGE-02 | 详情互动数量与首页对应卡片同步，刷新后从 LocalStorage 恢复 | 已实现 |
| ENGAGE-03 | 四类内容均可发表评论，并支持针对评论或回复继续回复 | 已实现 |
| ENGAGE-04 | 评论区展示最新评论、总数量、作者或发布者身份和发布时间 | 已实现 |
| ENGAGE-05 | 首页评论按钮直接打开对应独立详情并定位到讨论区 | 已实现 |

验收标准：

1. 任意内容详情都不得缺少点赞、评论和收藏入口。
2. 点赞与收藏只有两种明确状态，重复点击执行取消操作，数量不能小于零。
3. 新评论或回复发布后立即进入对应内容，不得错误写入其他帖子。
4. 新回复需显示被回复对象；评论和回复均保留统一内容安全入口。
5. 业务主操作与社区互动分区展示，点赞不得误触任务承接、闲置报价或活动报名。

### 6.1.2 作者身份、公开主页与关注关系

| 编号 | 需求 | 当前状态 |
|---|---|---|
| PROFILE-01 | 帖子、闲置、单人任务和校园活动详情顶部统一展示作者头像、姓名、认证校园和角色 | 已实现 |
| PROFILE-02 | 详情作者区域展示“最近来过”相对时间，不暴露精确位置或完整在线轨迹 | 已实现 |
| PROFILE-03 | 点击头像或姓名进入独立公开个人主页，展示简介、认证、统计、Campus Trust 与公开内容 | 已实现 |
| PROFILE-04 | 详情页和公开主页均支持关注/取消关注，状态写入 LocalStorage 并实时同步 | 已实现 |
| PROFILE-05 | 个人主页的公开内容可进入对应详情，并可返回原主页和最初内容 | 已实现 |
| PROFILE-06 | 当前用户查看自己内容时显示“我的主页”，不得出现关注自己的操作 | 已实现 |

验收标准：

1. 四类详情页使用同一作者身份组件，信息顺序、触控尺寸和关注状态一致。
2. 头像与姓名的可点击范围不小于 44px，并提供明确的个人主页无障碍标签。
3. “最近来过”只使用模糊相对时间；正式版需允许用户关闭活跃状态展示。
4. 公开主页不得展示邮箱、课程表、精确位置、私信内容或私人交易明细。
5. 关注状态在详情和主页之间双向同步；刷新后从当前账号关系数据恢复，前端 Demo 暂存于本机。

### 6.2 普通帖子

| 编号 | 需求 | 当前状态 |
|---|---|---|
| POST-01 | 发布帖子并选择 Tag | 已实现 |
| POST-02 | 保存草稿、编辑、下架、重新上架和删除 | 已实现 |
| POST-03 | 单帖支持最多 9 张图片 | 已实现展示结构 |
| POST-04 | 点赞、取消点赞、收藏、取消收藏、关注和分享 | 已实现 |
| POST-05 | 首页展示最新 1–2 条评论 | 已实现 |
| POST-06 | 详情支持多级评论与回复缩进 | 已实现 |
| POST-07 | 评论点赞、回复目标和评论输入 | 已实现 |

验收标准：

1. 普通帖子不得出现价格、奖励、交易状态和支付入口。
2. 图片数量超过 9 张时禁止继续添加。
3. 点击帖子主体进入详情，点击互动按钮不误触详情。
4. 发表评论后立即出现在评论区，并清除回复目标。
5. 已删除内容通过原 URL 打开时显示“内容不可用”。

### 6.2.1 全内容分享与校园回流

| 编号 | 需求 | 当前状态 |
|---|---|---|
| SHARE-01 | 帖子、闲置、单人任务和校园活动的首页卡片均展示独立分享按钮 | 已实现 |
| SHARE-02 | 四类内容的独立详情页均在点赞、评论、收藏旁展示分享按钮 | 已实现 |
| SHARE-03 | 分享面板展示内容预览、可选推荐语、链接和微信、WhatsApp、系统分享、复制链接入口 | 模拟实现 |
| SHARE-04 | 支持生成符合 Style4 视觉的校园分享海报；正式版二维码与图片导出待服务端接入 | 模拟实现 |
| SHARE-05 | 分享链接使用 `detail / ref / src` 参数直达对应独立详情，并展示分享来源与返回首页入口 | 已实现 |
| SHARE-06 | 无效、已删除或仅存在于分享者本机的内容显示“分享内容暂不可用”，不得错误回退到其他活动 | 已实现 |
| SHARE-07 | “我的 → 分享与邀请”展示当前设备累计分享、回流查看和最近分享记录 | 模拟实现 |

验收标准：

1. 点击分享按钮不得触发卡片详情、点赞、收藏或业务主操作。
2. 推荐语只进入用户复制或系统分享的文案，不写入公开 URL。
3. 接收者打开有效链接后直接进入该内容详情，来源提示与固定底部导航同时可见。
4. 同一浏览会话重复刷新同一 `ref + detail` 不重复计算回流查看。
5. 当前前端 Demo 不宣称真实发到微信或 WhatsApp；正式开发需接入不可猜测短链、服务端归因、失效策略、反作弊和隐私控制。

### 6.3 二手闲置

核心约束：MVP 保持单一报价模式，同一商品同一时间最多存在一个有效报价；不设计多报价列表、报价排序、竞价或卖家横向比较多位买家的管理能力。报价被撤回、拒绝或取消后，才允许进入下一次报价。

#### 6.3.1 商品状态

`审核中 → 在售 → 已预留 → 已售出`，异常或主动操作可进入 `已下架`。

| 状态 | 定义 | 允许操作 |
|---|---|---|
| 审核中 | 商品信息等待平台审核 | 发布者查看、编辑、下架 |
| 在售 | 可被浏览、收藏、咨询和报价 | 买家报价；卖家选择意向买家 |
| 已预留 | 已锁定一名意向买家 | 约定校园面交；其他用户不可成交 |
| 已售出 | 双方确认交易完成 | 查看记录、评价 |
| 已下架 | 发布者或平台停止展示 | 发布者重新上架或删除 |

#### 6.3.2 功能需求

| 编号 | 需求 | 当前状态 |
|---|---|---|
| MARKET-01 | 卡片与详情明显展示 AUD 价格 | 已实现 |
| MARKET-02 | 展示成色、校园、面交方式和商品状态 | 已实现 |
| MARKET-03 | 买家提交报价与留言，并可在卖家处理前撤回 | 模拟实现 |
| MARKET-04 | 卖家接受或婉拒唯一有效报价；接受后锁定该买家并创建独立交易单 | 模拟实现 |
| MARKET-05 | 独立交易页记录校园公共区域、面交时间、双方身份、下一步动作和完整时间线 | 模拟实现 |
| MARKET-06 | 卖家确认已交付、买家确认已收到且符合描述；双方确认后才进入已售出 | 模拟实现 |
| MARKET-07 | 使用真实感商品图片并标注 AI 生成素材 | 已实现 |
| MARKET-08 | 已预留或已售出阶段允许买卖双方提交争议原因与说明，暂停关键交易操作 | 模拟实现 |
| MARKET-09 | 管理员核验记录并给出继续协商或关闭记录建议，不介入付款与退款 | 模拟实现 |
| MARKET-10 | “我的”提供闲置交易中心，区分进行中、已完成、已取消和待评价记录 | 模拟实现 |
| MARKET-11 | 商品状态与交易状态独立保存，报价或咨询不把商品从“在售”改成“沟通中” | 模拟实现 |
| MARKET-12 | 公开个人主页展示脱敏的完成量、回复率、取消、爽约、争议和交易评分，不公开私人订单 | 模拟实现 |
| MARKET-13 | Schema v7 将旧版已预留、已售出数据迁移为商品状态与交易单，不清空原有记录 | 已实现 |
| MARKET-14 | 卖家接受唯一报价后创建预留期限；到期自动取消交易并将商品恢复为“在售” | 模拟实现 |
| MARKET-15 | 卖家可将当前预留延长一次；延期行为写入双方可见交易时间线 | 模拟实现 |
| MARKET-16 | 双方可记录协商延期、协商取消与对方未到场；未到场作为高风险行为进入交易档案 | 模拟实现 |
| MARKET-17 | 交易取消或预留到期后，卖家可重新上架并清除上一笔失效报价，不提供多报价管理 | 模拟实现 |
| MARKET-18 | “我的交易”优先展示待我处理、进行中和历史记录，并为每笔交易给出下一步动作 | 模拟实现 |
| MARKET-19 | 商品详情在报价操作前展示卖家完成量、交易评分、确认未到场次数与完整档案入口 | 模拟实现 |
| MARKET-20 | 公开个人主页分别展示作为卖家和作为买家的履约维度，不使用单一不透明信用分替代事实数据 | 模拟实现 |
| MARKET-21 | 交易评价展示“已验证交易”、评价方向、商品和交易单标识；普通评论不得伪装为交易评价 | 模拟实现 |
| MARKET-22 | 未到场采用提交、对方回应、确认成立／协商延期／转争议流程；待回应阶段不得计入公开信用 | 模拟实现 |
| MARKET-23 | 对方 24 小时未回应未到场申报时记录成立；正式服务端需提供通知、申诉和审计证据 | 模拟实现 |

验收标准：

1. 商品价格必须包含数值与 `AUD` 单位。
2. 卖家选择买家后商品立即转为“已预留”。
3. 一个商品同一时间只能对应一个预留买家。
4. 面交地点优先提供校园公共区域选项。
5. 页面明确提示 UniLivo 不经手资金，现场验货后自行付款。
6. 争议处理中不得接受报价、释放预留或确认售出；商品、报价和消息记录保持可查。
7. 争议处理结果只提供平台记录与安全建议，不得承诺退款、仲裁资金或代替双方付款。
8. 提交报价后商品仍保持“在售”；只有卖家接受报价时，商品才进入“已预留”并创建唯一交易单。
9. 卖家单方确认交付不得直接完成交易；买家确认收到后才进入“已完成 / 已售出”。
10. 交易详情页作为普通二级页面打开，保留固定底部导航与可预测返回路径，不使用弹窗承载核心履约流程。
11. 预留页必须展示剩余时间；卖家最多延长一次，到期后商品自动恢复在售且保留原交易记录。
12. 协商延期不得创建第二笔报价或第二张交易单；协商取消、预留到期和未到场必须使用不同原因记录。
13. 未到场记录需明确由哪一方提交、被记录方和时间，并进入后台诊断；公开主页只展示聚合次数。
14. 取消后卖家可重新上架，旧报价立即失效；“我的交易”需要优先展示当前用户的下一步动作。
15. 商品详情的信用摘要必须位于报价操作之前，并明确统计周期与“已验证交易”来源。
16. 卖家与买家信用使用不同履约维度；未成立的申报、私人聊天和精确面交信息不得公开。
17. 未到场申报待回应时暂停交付确认，但商品仍保持已预留，公开确认未到场次数不得增加。
18. 对方可以确认、改为双方延期或提出异议；确认或 24 小时超时才形成已成立记录，异议转入争议且暂不计入公开信用。

### 6.4 有奖任务

#### 6.4.1 核心产品约束

每个任务只有一个承接名额，不采用多人报名、多人竞标或发布者从报名者中选人的模式。首位满足权限并确认承接的学生锁定任务。

#### 6.4.2 任务状态

`待承接 → 待开始 → 进行中 → 待确认 → 已完成`，异常状态包括 `已取消` 与 `争议中`。

| 状态 | 定义 | 允许操作 |
|---|---|---|
| 待承接 | 尚无承接者，唯一名额开放 | 认证学生确认承接 |
| 待开始 | 已锁定唯一承接者 | 双方沟通、承接者开始任务 |
| 进行中 | 承接者正在执行 | 更新进度、提交完成凭证 |
| 待确认 | 已提交完成说明或图片凭证 | 发布者验收或提出问题 |
| 已完成 | 发布者确认完成 | 双方评价、查看记录 |
| 已取消 | 任务终止 | 只读查看 |
| 争议中 | 对履约、费用或凭证存在异议 | 奖励冻结、保留沟通与凭证 |

#### 6.4.3 功能需求

| 编号 | 需求 | 当前状态 |
|---|---|---|
| TASK-01 | 卡片与详情明显展示 AUD 奖励 | 已实现 |
| TASK-02 | 展示唯一承接名额、截止时间、地点与预计耗时 | 已实现 |
| TASK-03 | 认证学生一键承接并立即锁定任务 | 模拟实现 |
| TASK-04 | 锁定后创建任务专属会话 | 模拟实现 |
| TASK-05 | 承接者开始任务并提交说明和图片凭证 | 模拟实现 |
| TASK-06 | 任务正文支持 1–9 张说明图片，信息流展示摘要网格，详情页展示可放大画廊 | 已实现展示结构 |
| TASK-07 | 发布者验收、确认奖励或发起争议 | 模拟实现 |
| TASK-08 | 完成后进行星级和文字评价 | 模拟实现 |

验收标准：

1. 任意页面不得出现“多人报名”“报名人数”或“发布者选人”的任务文案。
2. 任务被承接后，其他用户只能查看，不能再次承接。
3. 任务奖励必须包含数值与 `AUD` 单位。
4. 未认证用户点击承接时先进入认证引导。
5. 提交凭证后任务转为“待确认”，只有发布者可执行验收。
6. 发起争议后奖励显示暂时冻结，状态与通知同步更新。
7. MVP 仅模拟奖励确认，不执行真实支付或结算。

### 6.5 校园活动

| 编号 | 需求 | 当前状态 |
|---|---|---|
| EVENT-01 | 活动为独立内容类型，不复用普通帖子交易逻辑 | 已实现 |
| EVENT-02 | 展示主办方、日期、时间、地点、费用与容量 | 已实现 |
| EVENT-03 | 展示已报名人数和剩余名额 | 已实现 |
| EVENT-04 | 用户报名或取消报名 | 模拟实现 |
| EVENT-05 | 报名结果进入“我的参与”并产生通知 | 模拟实现 |
| EVENT-06 | 满员候补、候补退出/转正、签到码、活动提醒和活动评价 | 模拟实现 |
| EVENT-07 | 主办方查看报名、候补和签到数据，并执行名额释放、候补转正与提醒 | 模拟实现 |
| EVENT-08 | 保存报名联系信息与提醒偏好；取消时选择原因、确认释放名额并保留结果记录 | 模拟实现 |
| EVENT-09 | 主办方可填写原因并改期、取消或恢复活动，统一通知报名与候补用户 | 模拟实现 |
| EVENT-10 | 主办方结束活动后发布标题、总结、亮点、签到数据和现场图集 | 模拟实现 |
| EVENT-11 | 活动正文支持 1–9 张介绍图片，报名各阶段保留活动图片与逐图查看能力 | 已实现展示结构 |

验收标准：

1. 活动卡片优先展示日期、地点和剩余名额。
2. 报名成功后按钮变为可取消状态，并进入“我的参与”。
3. 报名截止、已结束或已取消的活动不能继续报名。
4. 活动允许多人报名，与有奖任务的单人承接逻辑明确区分。
5. 取消报名必须二次确认名额释放；成功后电子凭证失效、人数减一，并在活动详情展示取消结果。
6. 主办方取消活动后，报名、候补和签到入口全部不可用，既有凭证明确标记失效。
7. 主办方改期后，首页、详情和“我的参与”展示同一个新时间及变更原因。
8. 活动回顾只能由主办方在活动结束后发布；发布后原活动详情持续展示回顾与评价汇总。
9. 活动图片属于活动正文，在报名、电子凭证、签到和评价阶段均可继续查看。

### 6.6 发布器

发布入口支持四种类型：帖子、闲置、有奖任务、校园活动。

| 类型 | 必填字段 |
|---|---|
| 帖子 | 标题、正文、Tag |
| 闲置 | 标题、描述、AUD 售价、成色 |
| 有奖任务 | 标题、描述、AUD 奖励、分类、承接截止时间、最多 9 张图片 |
| 校园活动 | 标题、描述、活动时间、名额、地点、费用说明、最多 9 张图片 |

验收标准：

1. 发布闲置、任务或活动前必须完成校园认证。
2. 表单标签显示在输入控件上方，不用 placeholder 替代字段名。
3. 发布过程中显示提交状态，完成后进入“我的发布”。
4. 草稿不进入公开 Feed；重新编辑后可以正式发布。
5. 用户创建内容保存在当前浏览器 LocalStorage。
6. 任务和活动发布器支持一次选择多张 JPG、PNG 或 WebP 图片，总数不得超过 9 张。
7. 图片选择后必须即时展示缩略图、当前数量和单张删除入口；发布前统一压缩，避免原图直接写入浏览器存储。
8. 发布成功后，图片必须同步出现在首页卡片摘要、独立详情页和“我的发布”入口中。

### 6.7 消息与通知

| 编号 | 需求 | 当前状态 |
|---|---|---|
| MSG-01 | 消息分为全部、交易和通知 | 已实现 |
| MSG-02 | 底部导航与消息页展示未读数量 | 已实现 |
| MSG-03 | 支持全部标记为已读 | 已实现 |
| MSG-04 | 通知深链到内容详情或专属会话 | 已实现 |
| MSG-05 | 二手与任务拥有上下文卡片和专属会话 | 模拟实现 |
| MSG-06 | 支持发送文字消息 | 模拟实现 |
| MSG-07 | 实时同步、图片消息和系统推送 | 待实现 |
| MSG-08 | 闲置、单人任务和校园活动关键状态自动生成业务动态 | 模拟实现 |
| MSG-09 | 业务动态支持按闲置、任务、活动分类筛选，并展示业务标签、时间和未读状态 | 已实现 |
| MSG-10 | 点击业务动态标记单条已读并跳转对应独立详情；全部已读同步清空底部角标 | 已实现 |

验收：任务承接等关键操作发生后，消息未读数立即增加；用户可筛选对应业务类型并直达详情；点击“全部已读”后消息标题、未读点和底部导航角标同步归零。

### 6.8 我的

| 模块 | 需求 | 当前状态 |
|---|---|---|
| 我的发布 | 按全部、帖子、闲置、任务、活动筛选；查看、编辑、上下架和删除 | 已实现 |
| 我的收藏 | 集中查看四类已收藏内容并支持打开详情 | 已实现 |
| 我的参与 | 查看报价、承接任务和已报名活动 | 已实现 |
| 校园认证 | 展示当前角色、校园与认证状态 | 已实现 |
| 演示场景 | 一键准备认证学生、任务待验收、二手待面交和未读消息 | 已实现 |
| 隐私与安全 | 举报、拉黑、黑名单、陌生人消息、内容下架、账号限制和申诉 | 模拟实现 |
| 重置 Demo | 清除本地身份、互动和业务状态 | 已实现 |

### 6.9 校园合伙人

校园合伙人是 UniLivo 在单个校园的学生运营代表，不等同于平台管理员，默认不拥有资金处理和内容处罚权限。

| 编号 | 需求 | 当前状态 |
|---|---|---|
| PARTNER-01 | 学校选择页顶部展示“招募校园合伙人”入口 | 已实现 |
| PARTNER-01A | 首页轮播 Banner 提供校园合伙人招募入口并直达介绍页 | 已实现 |
| PARTNER-02 | 招募页说明校园运营、提成佣金、官方认证与培训支持 | 已实现 |
| PARTNER-03 | 展示在读认证、时间投入、校园连接与安全原则等条件 | 已实现 |
| PARTNER-04 | 支持提交姓名、联系方式、相关经历和运营计划 | 模拟实现 |
| PARTNER-05 | 提交后展示审核、沟通、培训和权限开通进度 | 模拟实现 |
| PARTNER-06 | 审核通过后展示校园合伙人官方认证标识 | 模拟实现 |
| PARTNER-07 | 提供校园运营工作台，展示运营任务、拉新、内容协作和激励数据 | 模拟实现 |
| PARTNER-08 | 明确合伙人不能代收交易款、查看证件、处罚账号或处理平台举报 | 已实现 |

验收标准：

1. 用户从任意当前校园均可进入对应校园的招募页面。
2. 申请前明确佣金属于运营激励，不承诺固定收入。
3. 申请提交不自动授予运营、审核或资金权限。
4. 申请状态保存于当前浏览器，重复进入时展示审核进度。
5. 合伙人激励以 `AUD` 展示预估、已确认和待确认金额，不在 MVP 中执行真实结算。

## 7. 页面状态与前端演示要求

### 7.1 URL 与页面恢复

- 首页校园、范围、频道、排序、Tag 和状态筛选同步到 URL。
- 内容详情、消息、我的发布等主要页面拥有可恢复的 URL 状态。
- 浏览器前进和后退恢复上一页面。
- 从详情返回首页时恢复原筛选条件和滚动位置。
- 分享旧版 `?post={id}` 链接时仍能打开对应详情。

### 7.2 页面状态

| 状态 | 当前要求 |
|---|---|
| Loading | Feed 刷新展示与最终卡片结构一致的骨架屏 |
| Empty | 关注为空、收藏为空、参与为空和分类为空均提供下一步引导 |
| Not Found | 无效或已删除内容展示独立不可用页面，不回退到其他数据 |
| Error | 离线时关键操作先保存在本机队列，并显示待同步数量；真实 API 错误码与自动重试待后端接入 |
| Disabled | 已结束、已售出、已被承接或无权限操作必须明确禁用 |

### 7.3 Demo 数据

- 当前 Demo 使用虚构的学生姓名、校园内容和业务数据。
- 学生头像与部分商品图为 AI 生成素材，不代表真实人物或真实商品。
- Style4 关键交互使用 LocalStorage `unilivo-style4-state` 保存，并兼容读取旧 Key `campushub-style4-state`；当前显式结构版本为 Schema v9。页面启动时依次执行兼容迁移，并保留最近 5 次迁移摘要。`activation` 保存首次流程与认证，`shareMetrics / shareHistory / shareReferralCode` 保存分享演示状态，`listingStatus / marketOffer / marketTransaction` 分别保存商品、唯一报价与交易单；交易单追加预留到期、延期次数、取消原因、未到场、重新上架和 `noShowRequest` 双向确认记录。
- Demo 数据不得包含真实证件、银行卡、登录凭据或个人敏感信息。

### 7.4 本机数据管理

| 编号 | 需求 | 当前状态 |
|---|---|---|
| DATA-01 | 持久化数据包含显式 Schema 版本与最后保存时间 | 已实现 |
| DATA-02 | 旧数据按版本顺序迁移集合字段、内容生命周期、筛选、单人任务、业务消息、离线队列与激活认证状态 | 已实现 |
| DATA-03 | “我的”提供数据版本、占用空间、集合、筛选、消息容量和离线队列六项健康检查 | 已实现 |
| DATA-04 | 用户可以复制诊断摘要并导出包含版本和导出时间的 JSON 备份 | 已实现 |
| DATA-05 | 正式开发接入账号云同步、服务端备份与跨设备恢复 | 待实现 |
| DATA-06 | 离线时核心业务动作写入最多 20 条待同步队列，状态条展示数量并可直达数据管理 | 模拟实现 |
| DATA-07 | 恢复在线后用户可手动同步，成功后清空队列并记录最近同步时间与最近 10 次同步摘要 | 模拟实现 |

验收：旧设备首次打开新版本后自动升级到 v9，原任务、活动、闲置、发布、消息和既有认证体验不被清空；旧交易单补齐预留期限、异常记录和未到场双向确认字段，新设备则从未完成激活与认证状态开始。健康检查增加分享回流、预留异常和未到场请求结构校验。模拟离线后发起核心业务操作，状态立即落入本机队列并显示数量；恢复在线并同步后队列归零、最近同步时间更新。数据页始终说明“仅当前设备”，导出操作不包含真实敏感凭据。

## 8. 视觉与交互要求

### 8.1 当前正式 MVP

- 移动端优先，桌面端以手机原型方式展示。
- UniLivo 使用 Style4 薄荷绿作为品牌与主要操作色；闲置价格使用珊瑚红、交易提示使用橙色，任务奖励保持高对比但不取代品牌层级。
- 核心按钮具备按压、波纹或轻量高光反馈，并支持 `prefers-reduced-motion`。
- 状态标签、卡片圆角、间距和图标遵循 `DESIGN.md`。

### 8.2 历史视觉方案与 Style4 正式基线

`Style3-demo-mvp.html` 是独立的 Instagram-inspired 交互 MVP：

- 使用内容优先的暖白画布、黑灰 UI、细边框和全宽媒体。
- 渐变仅用于 UniLivo 品牌标识和校园 Story 环。
- 包含频道筛选、点赞、收藏、关注、活动报名和深色模式演示。
- 不影响 `Style1-demo-mvp.html`，未经过产品确认前不得替换当前生产首页。

`Style4-demo-mvp.html` 是 Yupao 青春校园视觉与澳洲本地化正式 MVP：

- 支持 English、简体中文和繁體中文三种语言选择，首次访问先展示语言选择，再进入价值、校园、兴趣与完成四段式全屏引导；之后可从首页顶部重新切换语言。
- 首次引导使用 Style4 薄荷绿、冷灰画布、白色大圆角分组与轻量澳洲校园几何插图；不叠加多个说明弹窗，不在首次访问强迫用户完成高信任认证。
- 语言选择写入 LocalStorage；切换后更新首页导航、搜索、筛选、核心内容和澳洲校园认证文案。
- 多语言界面保留 AUD、Opal、Semester、Welcome Fest 等澳洲专有名词，避免错误直译。
- 消息按闲置、任务、活动进行业务分类；进入会话后保留业务上下文、价格或奖励和快捷回复。
- 个人中心展示校园认证、内容资产和业务状态；信任分仅用于前端信息架构验证，不形成真实信用评价。
- Style4 自 2026-08-19 起作为唯一持续开发基线；Style1–Style3 不再接收新增产品逻辑。

`homepage-concepts.html` 保存其他首页风格方向，用于内部视觉评审，不代表已确认需求。

## 9. 非功能需求

### 9.1 兼容与响应式

- 优先适配 375px、390px、430px 移动端宽度。
- 桌面浏览器需完整展示手机原型或独立响应式风格稿。
- 底部导航适配 `safe-area-inset-bottom`。
- 所有全屏页面正文必须预留至少 124px 底部安全空间，不能被悬浮导航遮挡。
- 滚动区域支持移动端惯性滚动，不锁死页面上下滑动。

### 9.2 可访问性

- 核心触控区域不小于 44×44px。
- 图标按钮提供 `aria-label`。
- 键盘可访问交互显示清晰焦点。
- 正文与按钮文字达到 WCAG AA 对比度。
- 动效支持 reduced motion。
- 底部弹层和语言选择具有 Dialog 语义、标题关联和 `aria-hidden` 状态；全屏二级页使用普通页面区域语义并同步可见状态。
- 弹层打开后焦点进入内容区域，Tab 在当前弹层内循环，Esc 关闭后焦点回到原触发按钮；全屏页面不限制 Tab，确保键盘可以访问持续显示的主导航。
- Feed 卡片支持 Enter 或空格打开详情；分类 Tab、筛选按钮和语言选项同步暴露选中状态。

### 9.3 性能

- 首屏图片应压缩并提供合适尺寸。
- Feed 图片进入视口前应支持懒加载。
- 不因连续滚动或点赞动画造成明显掉帧。
- 正式接入 API 后，首屏关键内容目标在正常 4G 网络下 2 秒内可交互。

### 9.4 安全与隐私

- 不在前端代码、LocalStorage 或日志中保存密钥和真实验证码。
- 不保存出生日期，只保存是否通过 18+ 校验。
- 面交与任务页面持续提示公共区域见面、验货后付款和保护证件信息。
- 举报、拉黑、隐私控制与内容治理是正式上线前的阻断项。

| 编号 | 安全需求 | 当前状态 |
|---|---|---|
| SAFE-01 | 管理员可基于举报下架或恢复内容 | 模拟实现 |
| SAFE-02 | 管理员可限制账号一定期限并随时解除 | 模拟实现 |
| SAFE-03 | 内容下架后详情展示原因与作者处理方向，不回退到普通详情 | 模拟实现 |
| SAFE-04 | 账号受限时拦截发布、报价、承接任务和报名活动 | 模拟实现 |
| SAFE-05 | 受限账号仍可浏览已有记录并提交申诉 | 模拟实现 |
| SAFE-06 | 管理员工作台展示内容、账号和待处理申诉状态 | 模拟实现 |
| SAFE-07 | 帖子、评论、闲置、任务、活动和私信使用统一举报、隐藏与拉黑入口 | 模拟实现 |
| SAFE-08 | 举报记录保存对象类型、标题、用户、原因、说明和处理状态 | 模拟实现 |
| SAFE-09 | 帖子、闲置、任务和活动统一支持正常、仅自己可见、平台下架、发布者删除四种可用性状态 | 模拟实现 |
| SAFE-10 | 从首页、热榜、收藏或历史链接进入异常内容时恢复同一个独立状态页，并保留全局导航 | 模拟实现 |

验收标准：

1. 下架内容在信息流中有明确遮罩，点击后只能进入“内容暂不可用”说明。
2. 账号受限不得改变既有任务、交易或活动状态，只拦截新的关键动作。
3. 申诉提交后显示处理中状态，同一限制期间不重复提交。
4. 管理员恢复内容或账号后，对应拦截立即解除。
5. Feed 与详情中的同一内容必须进入同一个安全流程；拉黑后可在“安全与隐私”中解除。
6. 普通学生、内容发布者、活动主办方和管理员的关键动作必须经过统一权限规则，不依赖页面是否显示按钮。
7. 四类内容均可在 Demo 状态测试台切换可用性；异常页面必须解释状态来源、公开互动限制、必要记录保留和可执行的下一步。

## 10. MVP 优先级

| 优先级 | 内容 | 状态 |
|---|---|---|
| Must | 首页浏览、筛选、搜索和详情 | 前端已完成 |
| Must | 普通帖子发布与多级评论 | 前端已完成 |
| Must | 单一报价、独立交易单、双方确认至面交评价闭环 | 前端模拟完成 |
| Must | 单人任务承接至履约争议闭环 | 前端模拟完成 |
| Must | 消息通知、收藏、参与和我的发布 | 前端已完成 |
| Must | 举报、拉黑、隐私与内容安全 | 前端模拟完成；真实治理后台仍为上线阻断项 |
| Should | 活动候补、提醒、签到和评价 | 前端模拟完成 |
| Should | 50 所澳洲高校与 TAFE 数据 | 前端已完成 |
| Should | 网络异常、重试和离线恢复 | 离线保存、待同步队列、恢复在线与手动同步已模拟；真实 API 重试待实现 |
| Could | Instagram-inspired 首页风格迁移 | 待用户评审 |
| Won't | 真实支付、资金托管、多人承接任务 | 本阶段不做 |

## 11. 核心验收场景

### 场景 A：游客浏览并升级身份

1. 游客进入首页并切换校园、频道与范围。
2. 游客点击点赞，系统提示登录。
3. 用户完成登录和 18+ 校验，成为普通用户。
4. 用户尝试承接任务，系统提示完成校园认证。
5. 完成学校邮箱模拟认证后，任务承接入口解锁。

### 场景 B：二手交易闭环

1. 认证学生发布闲置，商品初始为“审核中”。
2. 商品转为“在售”，买家提交报价和留言。
3. 商品仍保持“在售”，卖家接受唯一报价后商品转为“已预留”并创建交易单。
4. 双方在独立交易页约定校园公共区域和时间。
5. 卖家确认已交付，买家确认收到且符合描述，双方确认后商品转为“已售出”。
6. 双方可以分别提交评价，记录进入个人交易档案，全流程不发生平台支付。

### 场景 C：单人有奖任务闭环

1. 发布者填写奖励、截止时间和任务要求。
2. 首位认证学生确认承接，任务立即锁定为“待开始”。
3. 承接者开始任务，状态变为“进行中”。
4. 承接者提交说明或图片凭证，状态变为“待确认”。
5. 发布者确认完成或发起争议。
6. 确认完成后进入评价；争议状态下奖励显示冻结。

### 场景 D：校园活动报名

1. 用户打开活动详情，看到主办方、时间、地点、费用与剩余名额。
2. 用户报名后收到通知，并在“我的参与”中看到活动。
3. 用户在活动开始前可以取消报名。
4. 报名截止或活动结束后，报名按钮不可用。

### 场景 E：页面恢复

1. 用户在首页选择校园、范围、频道和排序并滚动列表。
2. 打开内容详情后复制 URL，刷新仍显示同一内容。
3. 浏览器返回后恢复原筛选和滚动位置。
4. 打开无效或已删除内容 URL，显示“内容不可用”。

## 12. 风险与待确认决策

| 风险或决策 | 影响 | 建议 |
|---|---|---|
| 正式上线前缺少举报、拉黑和治理后台 | 线下交易与陌生人互动风险高 | 作为 Must，在真实用户测试前完成 |
| 50 所学校目前为前端静态目录 | 校区、域名和时区信息后续可能变化 | 正式开发接入受控学校主数据并建立定期校验机制 |
| LocalStorage 与真实后端状态差异大 | 多设备、实时消息和并发锁定无法验证 | 后端阶段优先实现认证、内容和任务锁 |
| 二手与任务不经手资金 | 纠纷处理能力有限 | 强化安全提示、凭证与状态记录 |
| 历史风格稿仍保存在仓库 | 维护者可能误改非正式版本 | 所有新增逻辑仅进入 Style4，并在文件职责中明确历史稿只读 |
| 活动多人报名与任务单人承接容易混淆 | 用户可能误解任务逻辑 | 在文案、按钮和状态标签上持续区分 |

## 13. 下一阶段建议

1. 围绕首次价值理解、校园选择完成率、兴趣选择完成率和校园认证转化，开展 5–8 人 Style4 可用性测试。
2. 将前端账号受限、内容下架与申诉流程接入真实治理后台和审计记录。
3. 为校园合伙人补充真实审核、任务配置、激励计算和权限后台方案。
4. 将现有 50 所澳大利亚高校与 TAFE 静态目录迁移到学校主数据服务，并补充多校区支持。
5. 将单文件 Demo 拆分为组件化项目，建立激活、认证、权限和核心业务端到端测试。

## 14. Style4 核心页面间距规范（2026-08-20）

1. 手机端核心页面统一采用 `18px` 水平主栅格，首页、热榜、消息、我的、内容详情与用户主页的主要内容必须左右对齐。
2. 页面标题后的首个内容模块默认使用 `14px` 垂直间距；特殊沉浸式页面如需例外，必须在设计规范中明确说明。
3. 帖子、闲置、任务和活动详情页不再使用额外的 `12px` 外层缩进，正文、图片、互动与评论统一落在 `18px` 页面基线上。
4. 消息业务卡片必须在页面主栅格内自适应宽度，不允许 `width:100%` 与左右外边距叠加产生横向溢出。
5. 页面底部必须继续保留足够的导航安全距离，内容不得被悬浮底部导航遮挡。

## 官网文档边界

UniLivo 官方网站是独立于 APP/Style4 MVP 的品牌产品，其需求统一维护在 `unilivo-official-website.PRD.md`。本文件仅维护 APP 与 Style4 MVP 的需求，不再重复记录官网专属信息架构、内容和转化流程。
