# Clover PRD-前端(界面名:龙石小红书内容生产平台) > 前端技术框架。**承接层**:5屏画面金标准见 `../../前端交互设计.md`(经倩倩姐确认),视觉见 `../../前端设计参考图.png`。本文①承接5屏②补工程细节③对接后端契约——**唯一冻结源 = `../启动包/API契约.md`**(端点§1 / SSE事件§2 / 错误码§0),不看 PRD-后端。 > 技术栈:Next.js+React+TS+Tailwind+Zustand(范式扒banana/frontend,全新重建)。PC优先,最小宽度1280px,不做移动端。 > 🔴 红线(CLAUDE.md):不展示Token余额/不做积分页/key只录不显余额。 ## 0. 一句话定位 前端就是"挑挑挑":挑文案(出N条选若干)→挑图(出N张选若干,N=用户设定,图最多8)→组长挑过不过。飞轮全程隐形记录。 ## 1. 三角色 + 路由表 | 角色 | 默认首页 | 能进的页 | |------|---------|---------| | 熟手(运营) | /tasks/new | 开任务/挑文案/挑图/确认预览/历史 | | 组长 | /review | 审核台/历史 | | 管理员(北哥/老板) | /config | 配置台(产品/标杆/成员/违禁词)+全部 | 路由表: - /login(登录+首登key引导) / /dashboard(工作台) / /tasks/new(开任务) - /tasks/[id]/text(挑文案) / /images(挑图) / /confirm(确认预览·熟手提审前) - /review(组长审核台) / /history(历史归档) / /config(配置台·管理员) - 🔴 角色路由守卫:/review只组长+管理员;/config只管理员;越权重定向工作台 ## 2. 全局布局(对齐设计图) - 顶部:标题"龙石小红书内容生产平台"+右上角当前用户(运营-小李) - 5步流程条(1开新任务/2选择文案/3选择图片/4确认文案/5成片发布)——熟手常驻;组长/管理员登录后不走此条(各进自己首页) - 左侧8项导航(工作台/开新任务/选择文案/选择图片/建立任务/任务列表/历史归档/配置中心) - 主区 + 右侧配置预览面板 - 🔴 底部原Token余额位置(设计图568320)→**移除**,替换为版本号/留白小草装饰 - 视觉:暖橙/奶油色+绿色小草 ## 3. 五屏详述(承接前端交互设计.md) ### 屏1 配置台(管理员·/config) - 产品库:素颜霜/面膜/精华卡片+[加产品](品类不写死,客户自助加) - 每产品配:卖点/品牌词/违禁词(三级可调)/固定标签/风格调性/可调prompt/参考图 - **标杆笔记管理**(一期主通道=截图上传+手填亮点;列表展示;关联产品) - 成员管理(workspace邀请/角色分配) ; key录入(各人自录,只录不显余额) - → 飞轮的"出厂设置",配一次天天用 ### 屏2 开新任务(熟手·/tasks/new·设计图主表单) - 选产品[素颜霜▾] + **今天主题输入框**(如"黄皮提亮·早八伪素颜",驱动当次方向,关键字段勿漏) - 单条数量/生成数量(可+/-,数量不写死) + 生成方向 - 双轨入口:轨A[开始批量生成文案] / 轨B[导入外部文案](粘贴豆包等) - 右侧配置预览面板:产品名称/卖点/成分/质地/标签/参考图3张 + [编辑配置](点击→侧滑面板原地编辑,改完实时刷新预览) - **生成前显示"本次已注入:最近偏好X/打回原因Y"**(调GET /preference/context,基石E④) - 底部"最近任务"横向卡(4个,任务名+状态+进度条) ### 屏3 挑文案(熟手·/tasks/[id]/text·飞轮第1次学) - 生成N条文案卡(可多选),每卡:标题+正文+标签+**五维分数**(标题/情绪/买点/关键词/合规,展示分数条+总分,数据来自后端scoreCopy) - 轨B导入的文案标注来源区分(source=import角标) - 选中触发飞轮+3(隐形,无"训练AI"按钮) ; [用这N条去生图→] ### 屏4 挑图+出成品(熟手·/tasks/[id]/images·飞轮第2次学) - N批图缩略图(可多选) ; 选中触发飞轮+3 - 选中图+文案→自动套版预览(封面+内页拼成笔记长相) - [满意,交组长审→] ### 屏4.5 确认预览(熟手提审前·/tasks/[id]/confirm) - 熟手提审前最后预览整套笔记 ; [提交审核] ; [重新生成](飞轮-1) - ⚠️ 注意:通过/打回是组长动作,不在此页(修正骨架视角错位) ### 屏5 组长审核台(组长·/review·飞轮最强信号) - 待审笔记列表(N):每条[预览]+[✓通过]+[✗打回+原因] - 通过+5(权重最高,飞轮最强对信号) ; 打回必填原因(下次自动注入prompt提醒AI别再犯,-3) - 打回原因输入:模态框,必填校验 - 通过→进成品库(熟手可去屏导出打包) ; 打回→任务回pending_selection - 导出后人工去小红书/给达人发(工具到此为止,诚实边界:小红书无接口不自动发) ## 4. 异步生图电影 + 飞轮隐形 + 错误态 ### 4.1 异步生图进度(承接交互设计.md §2·体验核心) 对接后端SSE事件(契约§2): - 点生图→不空白干等:显"正在生成N批…0/N [进度条] 预计30-60秒,可先去忙别的好了提醒" - 并发跑,**谁好谁先冒**(好一批亮一批,对接 image_candidate 事件,每个带 event_seq) ; "3/N"实时计数 - 单批失败标红+[⟳重试](不拖垮其他批) ; "完成9/10,这9批够挑了[继续→]"(不强求全齐) - 🔴 铁律:老demo"点完干等18分钟转圈到崩"绝不能再有 ### 4.2 飞轮隐形运转(交互设计.md §3) - 前端**无任何"训练AI/打分"按钮**(会吓到运营),只如实把动作记给后端(带谁+哪账号) - 三动作埋点:屏3勾文案+3 / 屏4勾图+3 / 屏5通过+5打回-3 / 屏4.5重生成-1 - "变聪明"在后端,前端只管操作顺滑+显示"本次已注入" ### 4.3 错误态UI(对接契约§0 数字错误码,前端按 code 映射语义,**不硬编码字符串码**) | code | 语义 | 前端响应(非统一toast) | |------|------|----------------------| | 42201 | 业务校验失败(未配key/违禁词硬拦截) | 未配key→引导配key页/banner按钮置灰(首登强制引导);违禁词→显示触发词+级别,提交前后立即提示 | | 50002 | AI/token站调用失败 | "生图通道繁忙"特殊提示(区别普通错误)+[重试] | | 50001 | 服务端错误 | "生成失败"+[重试]按钮 | | 40901 | 状态机非法流转 | 提示当前状态不可操作,刷新看最新态 | | 40301 | 越权访问 workspace | "无权访问"提示,跳回工作区列表 | | 40101 | 未认证/JWT失效 | 自动触发token刷新(扒banana已实现),失败则跳登录 | | 40001 | 参数校验失败 | 表单字段级红字提示 | > 前端维护一份 `errorCodeMap`(code→{文案,处理动作})常量,所有错误统一查表,违禁词/限速等细分信息从 `message` 字段读。 - 真实状况兜底(交互设计.md §4):关页面回来任务还在(后端有状态不靠前端内存)/多人各看各的 ## 5. 工程细节 - 状态管理4Store(参banana):authStore(user/workspace_id/role/token) / taskStore(任务id/状态/已选文案图id) / generationStore(SSE进度/各图状态/已完成N) / preferenceStore(本次注入偏好摘要) - SSE客户端(扒banana sse.ts,5次重连退避)+断线重连UI("连接断开重连中1/5…"+"重连失败任务后台仍在,可刷新") - 组件库:流程条/文案卡(带五维分)/分镜图卡/配置预览面板/交付包预览/飞轮注入提示横幅/打回原因模态框/单图进度卡/审核操作栏。🔴 删除"Token余额组件" - 骨架屏:文案卡/图卡/审核队列loading ; 表单校验:产品必选/主题字数限/数量范围 - API客户端(扒banana api.ts含token刷新) ; AuthGuard+角色守卫(扒banana) - 可扒banana前端零件:authStore范式/api.ts/sse.ts/AuthGuard/NextUI组件;表单字段全重建(Clover字段不同) ## 6. ❌不做(CLAUDE.md红线) - Token余额/用量展示(去中转站后台看) / 积分中心billing页 / 移动端适配