# 供应侧 UI/UX 设计规范(XR-003) - 版本:v1.0 - 日期:2026-03-25 - 状态:生效(设计与验收基线) - 目标:建立供应侧统一交互规范,补齐空态/异常态/权限态与可访问性基线 - 关联文档: - `supply_button_level_prd_v1_2026-03-25.md` - `supply_ui_test_cases_executable_v1_2026-03-25.md` - `supply_api_contract_openapi_draft_v1_2026-03-25.yaml` - `acceptance_gate_single_source_v1_2026-03-18.md` --- ## 1. 信息架构(IA) ## 1.1 导航结构 1. 一级导航:`供应账号`、`套餐管理`、`收益结算`。 2. 二级视图: 1. 供应账号:账号列表、挂载弹窗、审计侧栏。 2. 套餐管理:列表、编辑页、批量调价弹窗。 3. 收益结算:收益卡片、提现弹窗、流水抽屉、对账单下载。 3. 全局辅助入口:帮助中心、操作日志、权限说明。 ## 1.2 页面布局基线 1. 顶部固定:页面标题 + 关键 KPI + 最近更新时间。 2. 主体区域:筛选区、列表区、详情区(抽屉或侧栏)。 3. 底部区域:批量操作栏(仅在多选时显示)。 --- ## 2. 交互规则(按钮级) ## 2.1 按钮等级与视觉规则 | 等级 | 用途 | 样式规则 | 示例 | |---|---|---|---| | Primary | 页面主动作(每屏最多 1 个) | 实色高对比 | 发布上架、发起提现 | | Secondary | 常规辅助动作 | 描边/弱强调 | 保存草稿、刷新收益 | | Tertiary | 次级动作 | 文本按钮 | 查看审计、查看流水 | | Danger | 高风险动作 | 红色警示 + 二次确认 | 删除账号、立即下架 | ## 2.2 禁用态与提示规则 1. 禁用按钮必须可见禁用原因(tooltip 或内联提示),禁止“只灰不解释”。 2. 权限不足与状态不满足必须区分文案: 1. 权限不足:`你没有执行该操作的权限`。 2. 状态不满足:`当前状态不允许执行此操作`。 3. 按钮进入 loading 时,文案切换为进行时且禁止重复点击。 ## 2.3 危险操作确认规则 1. `删除账号`、`立即下架`、`撤销提现`必须二次确认。 2. 二次确认弹窗必须包含: 1. 操作对象名称与 ID。 2. 影响范围说明。 3. 不可逆后果说明。 3. 高风险动作需二次输入验证码或对象别名(可配置)。 --- ## 3. 状态设计(闭环) ## 3.1 空态 1. 首次空态:展示引导文案 + 主按钮(如“立即挂载账号”)。 2. 过滤空态:展示“无匹配结果” + 清空筛选操作。 3. 异常空态:展示“加载失败” + 重试按钮 + 错误编号。 ## 3.2 异常态 1. 表单错误:字段级错误 + 全局错误摘要。 2. 接口失败:保留用户输入,不自动清空。 3. 冲突错误(409):提示“状态已变化,请刷新后重试”。 4. 系统错误(5xx):提示可重试并记录 `request_id`。 ## 3.3 权限态 1. `supplier_owner`:可执行所有业务按钮。 2. `supplier_viewer`:仅查看与导出,不可写操作。 3. `platform_admin`:可执行风控恢复、禁用解除。 4. UI 必须按权限前置控制,后端再做最终鉴权。 --- ## 4. 可访问性(A11y)基线 ## 4.1 键盘与焦点 1. 所有可交互控件支持 Tab/Shift+Tab 顺序访问。 2. 焦点可见:focus ring 对比度 >= 3:1。 3. 弹窗打开后焦点锁定在弹窗内,关闭后返回触发元素。 ## 4.2 可读性 1. 正文最小字号 14px,行高 >= 1.5。 2. 文本与背景对比度: 1. 常规文本 >= 4.5:1 2. 大字号文本 >= 3:1 3. 错误提示不能仅靠颜色表达,需配合图标或文字标签。 ## 4.3 可理解性 1. 表单字段必须有 label 与帮助文案。 2. 错误消息必须指向可操作修复方式。 3. 必填项统一使用 `*` 且配套说明“*为必填”。 --- ## 5. 页面级规范补充 ## 5.1 供应账号页(SUP-PAGE-001) 1. 凭证输入框默认掩码,粘贴后仅展示前后各 2 位。 2. 验证通过后展示摘要,不展示原始凭证。 3. 状态标签颜色统一: 1. `pending`:中性黄 2. `active`:绿色 3. `suspended`:橙色 4. `disabled`:红色 ## 5.2 套餐管理页(SUP-PAGE-002) 1. 批量调价入口仅在多选>=2时出现。 2. 保护价未达标时禁用发布按钮并给出最低可填值。 3. 复制套餐后自动定位到新草稿并高亮 3 秒。 ## 5.3 收益结算页(SUP-PAGE-003) 1. 发起提现前展示“可提现余额、预计到账时间、手续费”。 2. 处理中结算单必须固定在列表顶部并带进度状态。 3. 对账单下载失败时提供重试与工单入口。 --- ## 6. 反馈与文案规范 1. 成功反馈:简短结果 + 下一步建议(如“可前往套餐页继续上架”)。 2. 失败反馈:失败原因 + 修复建议 + request_id。 3. 文案禁用词:避免“系统异常”这类无信息词,必须给可执行建议。 4. 安全文案:不得出现可复用凭证片段、真实账户号全量信息。 --- ## 7. Design QA Checklist(验收清单) | 编号 | 检查项 | 通过标准 | 严重级别 | |---|---|---|---| | DQA-001 | 按钮层级正确 | Primary/Secondary/Danger 使用符合规范 | P1 | | DQA-002 | 禁用态可解释 | 所有禁用按钮有明确原因 | P1 | | DQA-003 | 危险操作二次确认 | 所有高风险动作均有确认弹窗 | P0 | | DQA-004 | 权限态一致 | viewer 不可触发写操作 | P0 | | DQA-005 | 状态机可视一致 | 页面状态与后端状态一致,无跳态文案 | P0 | | DQA-006 | 错误信息可操作 | 错误提示包含修复建议 | P1 | | DQA-007 | 键盘可达性 | 全页面可纯键盘操作完成关键流程 | P1 | | DQA-008 | 焦点可见性 | focus ring 清晰可见 | P1 | | DQA-009 | 对比度达标 | 文本对比度满足 WCAG AA | P1 | | DQA-010 | 表单可读性 | label/help/error 三要素完整 | P1 | | DQA-011 | 空态完整 | 首次空态/过滤空态/异常空态均定义 | P2 | | DQA-012 | 异常态完整 | 4xx/5xx/409 均有标准展示 | P1 | | DQA-013 | 数据保留策略 | 提交失败后表单值保留 | P1 | | DQA-014 | 审计可追溯提示 | 关键动作提示可追踪 request_id | P0 | | DQA-015 | 敏感信息脱敏 | 界面与导出无可复用凭证片段 | P0 | | DQA-016 | 组件复用一致 | 相同控件样式/交互一致 | P2 | | DQA-017 | 响应式适配 | 1280/1024/768 宽度均可用 | P1 | | DQA-018 | 文案一致性 | 同义动作命名一致,不混用 | P2 | | DQA-019 | 加载反馈清晰 | loading/skeleton/spinner 使用统一 | P2 | | DQA-020 | 业主验收可解释性 | SLA/申诉入口可见且流程清晰 | P1 | 判定规则: 1. 任一 P0 不通过则 UI Gate 不通过。 2. P1 通过率需 >=95%,低于阈值禁止发布。 --- ## 8. 与测试和门禁对齐 1. DQA-001~020 对应测试集:`UI-DESIGN-QA-*`(纳入 SUP-003/SUP-008)。 2. 凭证脱敏相关 DQA-015 与 `SEC-SUP-001` 强绑定。 3. 权限态相关 DQA-004 与 `UI-SUP-ACC-005`、`UI-SUP-SET-*` 强绑定。 4. 业主可解释性 DQA-020 与申诉/赔付验收条款强绑定。 完成 DQA 全量执行并达标,即视为 XR-003 关闭。