# 后台登录与权限实现依据 本文件与当前交互线稿共同作为后续功能实现依据。业务开发应保持页面入口、字段、权限边界、状态反馈与返回行为一致;学习范围之外的栏目保持范围说明。涉及接口的实现需要同步更新 OpenAPI、接口指南和真实组件验证。 会话与列表的信息展示、消息形式及滚动行为遵循 [会话与列表展示规范](conversation-list-presentation.md)。 ## 页面与账户 - M00 商家后台登录:商家标识、员工账户、密码,全部必填。 - P00 平台后台登录:平台员工账户、密码,全部必填。 - 两个后台分别验证身份和管理登录状态。商家账户不能凭商家登录状态进入平台后台。 - 商家后台共用系统框架,客服、主管、管理员的菜单和操作由服务端实际授权决定;页面路径不能改变身份或权限。 - 角色选择仅存在于线稿评审工具,正式登录页不允许用户自行选择权限角色。 - 账户由对应管理员分配。无法登录或忘记密码时,页面提示联系对应管理员核实与重置;当前范围不提供公开自助注册。 ## 登录流程 1. 未登录访问后台页面,保存同一后台内的目标页面地址,进入所属后台登录页。 2. 校验必填字段;提交期间显示处理中并阻止重复提交。 3. 服务端校验账户、密码、启用状态、所属商家及后台访问权限。 4. 失败时停留登录页,保留账户和商家标识,清空密码,显示统一失败提示;不得泄露账户是否存在。 5. 网络失败显示可重试提示;限流按服务端等待时间提示,不自动连续重试。 6. 成功后加载账户权限。如果原目标页面仍有权限则返回;否则进入当前账户有权限的首页。 7. 返回地址只允许当前后台内的已登记页面,不接受任意外部地址。 ## 会话与退出 - 正式前端在当前标签页的 `sessionStorage` 中分别保存消费者、商家和平台的会话凭据。刷新页面后重新向对应身份接口验证 Bearer token,并读取最新身份与权限;验证成功后保留原有授权页面。 - 恢复身份期间展示加载提示,验证完成前不挂载业务页面。网络失败保留凭据并提供“重新验证登录”;会话过期或被服务端撤销时清除当前入口凭据并进入登录流程。 - 本地仅保存令牌、到期时间和展示用账户名称。账户身份、角色、店铺授权和菜单权限均来自身份接口,业务数据及未提交表单继续只保存在内存。 - 登录页不展示受保护的菜单和业务内容。 - 会话过期时隐藏受保护内容、停止业务提交,进入所属后台登录页。 - 过期前未提交的表单在当前浏览器内存中保留。重新登录后重新读取版本与权限,用户检查后再次提交,禁止自动重放写操作。 - 切换账户后不得向新账户恢复前一账户的客户数据或表单。保留内容只恢复给重新验证的同一身份。 - 点击退出登录后再次确认;服务端撤销当前后台会话,清理当前后台敏感页面与未提交表单,返回该后台登录页。 - 退出商家后台不自动退出平台后台,反向行为相同。 - 密码不得写入日志、URL、浏览器持久存储或草稿缓存。 ## 验收要点 - 商家、平台分别验证成功登录、失败登录、禁用账户和无后台权限账户。 - 未登录直接访问业务地址时,页面与 API 均拒绝访问受保护数据。 - 客服不能审批,主管不能审批自己提交的申请;商家管理员的配置身份不自动包含售后审批权限。 - 过期重新登录返回原授权页面;权限撤销后返回有权限的页面,原写入不能继续提交。 - 退出后旧会话无法继续访问;另一后台的有效会话仍按其权限工作。 ## 商家员工消息通知 - 商家后台提供顶部“消息通知(未读数量)”入口及侧栏通知中心,适用于当前已登录员工。 - 管理员通知覆盖知识待发布、模型预算提醒及渠道接入异常;客服通知覆盖人工协助请求、已分配会话中的客户新消息和关联工单进度。主管按审批权限接收待办。 - 通知接收范围按商家、员工、授权店铺及具体业务权限计算。管理员身份不自动获得客户聊天正文或费用审批权限。 - 人工协助请求发送给对应店铺有接待权限的员工;有人接管后关联原会话,其他员工进入时读取当前接待状态。已接管会话的新消息只通知当前接管员工。 - 列表展示未读状态、类型、标题、摘要、时间及详情入口,支持全部与未读筛选、无通知状态、全部标为已读。 - 查看通知详情后标记当前接收人的通知为已读;重复请求幂等。全部已读需要确认,只影响当前员工已收到的通知,新到通知仍为未读。 - 已读与业务处理状态分别管理。读取通知不会自动接管、审批、发布或完成工单。 - 详情中的操作入口重新校验权限并读取最新业务状态。目标已删除、权限撤销或任务已处理时展示对应提示。 - 客户消息通知摘要只提示有新消息,敏感正文通过授权会话页面读取。 - 后续实现需按业务事件和接收人去重,保存通知投递与已读状态,确保重新登录后仍能查询。连接中断后重新查询未读数量和增量通知。 - 线稿演示使用代表通知。客户申请人工、人工接管期间收到客户消息、客户确认方案时,相应通知重新显示未读。真实事件投递、持久化、重复消息和跨员工隔离需要实际组件验收。 ## 线稿验证范围 线稿仅演示浏览器交互,任意非空账户密码会进入演示身份,刷新后演示登录状态清空。失败和过期通过评审情景展示。以上身份认证、账户隔离、登录限流、服务端会话撤销与权限检查需要后续真实实现及测试,不能以线稿检查代替。 ## Agent 发布与会话 - 商家发布 Agent 配置后,所有会话后续新建的 `AgentRun` 都读取当前店铺的最新已发布版本。客户可以继续使用原账号和原聊天记录。 - 每个 `AgentRun` 保存发布时的运行图、提示词、工具与模型配置快照。运行期间、等待补充资料、等待客户确认或主管审批及恢复执行时继续使用同一快照。 - 商家 AI 配置页面及发布确认窗口明确说明:所有会话中新建的助手任务使用已发布配置,进行中和等待中的任务继续使用原配置。 - 发布操作沿用当前店铺权限、候选内容检查、并发版本及幂等规则;发布不会修改正在进行的任务、已有消息或工单。 ## 换货服务评价 本节对应用户授权的课程前端改造,补充 H08 售后进度和 S04 工单详情的服务评价区域;主管售后记录、审批资料和商家售后管理复用相同的只读内容。页面入口、导航、售后状态和已确认视觉参数继续沿用现有规范。 - H08 在工单内容下方展示“服务评价”。工单尚未完成时提示“换货完成后可以提交服务评价”;本人 `COMPLETED` 工单尚未评价时显示评分、处理结果和评价内容。 - 评分为 1 至 5 的整数,处理结果必选“问题已解决”或“问题未解决”,文字选填且去除首尾空白后最多 500 个字符。 - 点击“提交服务评价”打开确认窗口,列出评分、处理结果、文字和每个工单仅评价一次的说明。返回检查保留表单,确认后开始提交;提交期间禁用输入与重复提交。 - 成功后显示已评价、评分、处理结果、文字及时间,不提供再次评价或修改入口。文字为空时显示说明;较长文字使用现有全文查看组件。 - 读取期间展示加载提示。读取失败展示错误与“读取最新评价”,读取成功前不允许提交;无工单时沿用现有空内容页面。 - 网络中断、超时或服务端异常保留原提交内容与幂等标识,禁用输入并显示“重试原评价”。人工再次确认后发送同一请求,不自动重试。 - 版本冲突、工单状态变化或已有评价时重新读取工单及评价。仍可评价时要求客户检查并重新确认,已有评价时展示原结果。 - 会话过期进入所属登录入口,同一身份重新登录后读取当前版本与权限;退出或更换客户身份时清理草稿。无权限或工单不可访问时停止提交并显示失败提示,接口仍须验证商家、店铺和工单本人范围。 - S04 及其他员工工单页面展示相同评价结果与“读取最新评价”,员工没有代客户提交入口。当前店铺具备 `tickets:read` 权限的有效员工可以读取。 - 接口使用 `GET /openapi/v1/tickets/{ticket_id}/feedback` 查询单个工单,使用同路径 `POST` 提交。POST 携带 Bearer 会话、`Idempotency-Key`、`expected_version`、`score`、`resolved`、`comment`;成功返回评价对象。完整字段和错误规则见 `frontend/data-sources.md`。 - 评分不高于 2 分或问题未解决时,服务端通知当前店铺具备工单读取权限的有效员工。现有通知详情通过 `target_id` 读取最新工单,按当前员工权限进入客服工单、主管售后记录或商家售后管理。通知已读与业务跟进分别处理。 - 消费者表单使用 Vant,员工读取区域使用 Element Plus 标签及按钮;卡片、字号、间距和颜色复用原有 H5 与后台规范。后端完成课程开发后,通过真实 API 验证提交、重复请求、身份隔离和通知跳转。 ## 换货问题的客服回访 本节对应用户授权的后端与 Agent 能力课程,补充 H08、S04 及复用工单组件的员工页面。客户使用已有 AI 咨询提出回访需求,工单显示登记结果。 - 已有 `followup` 时,在服务评价组件内展示“客服回访”,依次显示“已登记”、回访原因、期望联系时段和登记时间。客户与员工均只读,较长原因和联系时段使用现有全文查看组件。 - 工单尚无回访时隐藏该区域。客户在现有咨询输入中说明工单、问题和期望联系时段,例如“工单 xxx 换货后仍有问题,请客服在工作日晚上联系我”。 - Agent 缺少资料时继续使用现有补充输入:展示助手的问题,客户通过“补充问题”和“发送”回答,同一运行继续处理。 - 组件每次“读取最新评价”同时读取最新工单与评价,工单的 `followup` 字段提供回访记录。加载提示说明正在读取评价与回访,读取失败使用原错误提示;两个查询成功前禁止评价提交。 - 工单刷新保留尚未确认结果的评价请求正文与幂等标识。回访登记不代替客户评价、方案确认或主管审批,工单状态和版本遵循现有售后规则。 - 回访通知仍通过原通知详情进入当前员工有权读取的工单。店铺权限和工单本人范围由服务端检查,通知已读与回访登记分别处理。 - H5 使用 Vant 标签,员工页面使用 Element Plus 标签;间距、颜色和文字样式沿用现有服务评价区域。