Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions docs/design/ui/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,20 +46,22 @@

## 二、索引

### Wireframes(静态线框图,10 张)
### Wireframes(静态线框图,10 + 5 张)

| # | 文件 | 主题 |
|---|------|------|
| 1 | [main-three-pane.md](./wireframes/01-main-three-pane.md) | 主视图(侧边栏 + 聊天 + Artifact) |
| 2 | [setup-wizard.md](./wireframes/02-setup-wizard.md) | 首次启动 4 步向导 |
| 3 | [settings.md](./wireframes/03-settings.md) | 设置页(General / Provider / Shortcuts / Experimental) |
| 3 | [settings.md](./wireframes/03-settings.md) | 设置页(通用 / 供应商 / 快捷键 / 实验性) |
| 4 | [slash-command-palette.md](./wireframes/04-slash-command-palette.md) | 斜杠命令浮层 |
| 5 | [artifact-panel-expanded.md](./wireframes/05-artifact-panel-expanded.md) | Artifact 全屏详情 |
| 6 | [provider-switcher.md](./wireframes/06-provider-switcher.md) | 供应商切换浮层 |
| 7 | [search-overlay.md](./wireframes/07-search-overlay.md) | 全局搜索(⌘K) |
| 8 | [conversation-context-menu.md](./wireframes/08-conversation-context-menu.md) | 会话右键菜单 + 收藏 + 分组 |
| 9 | [empty-states.md](./wireframes/09-empty-states.md) | 各种空状态 |
| 10 | [env-status-bar.md](./wireframes/10-env-status-bar.md) | 持久化环境健康状态栏 |
| **11** | [**登录**](./wireframes/11-login.md) | 企业 SSO + IM 扫码 + 账号密码(Sprint 6 新增) |
| **12-15** | [**四大场景工作流**](./wireframes/12-15-workflow-scenes.md) | 业务/开发/测试/运维 角色视角(Sprint 6 新增) |

### Interaction Flows(交互流程,5 个 Mermaid)

Expand Down
32 changes: 31 additions & 1 deletion docs/design/ui/prototype/01-main-three-pane.html
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,41 @@
<div class="app">

<!-- Topbar -->
<div class="topbar">
<div class="topbar" style="position:relative">
<span class="brand">EP Code AI</span>
<nav style="display:flex;gap:var(--sp-4);margin-left:var(--sp-5);font-size:var(--fs-sm)">
<a href="12-workflow-business.html" style="color:var(--color-text-muted)">💼 业务</a>
<a href="13-workflow-development.html" style="color:var(--color-text-muted)">💻 开发</a>
<a href="14-workflow-testing.html" style="color:var(--color-text-muted)">🧪 测试</a>
<a href="15-workflow-operations.html" style="color:var(--color-text-muted)">🚀 运维</a>
</nav>
<span class="spacer"></span>
<button class="btn sm">Anthropic ▾</button>
<button class="btn sm ghost">⚙</button>
<div class="user-chip" onclick="document.getElementById('userMenu').style.display='block'">
<div class="user-avatar">张</div>
<span class="user-name">张工</span>
</div>

<!-- 用户菜单(默认隐藏) -->
<div class="user-menu" id="userMenu" style="display:none">
<div class="user-menu-header">
<div class="user-avatar lg">张</div>
<div style="flex:1">
<div class="user-name">张工</div>
<div class="user-role">产品经理 · 基础架构组</div>
<div style="font-size:var(--fs-xs);color:var(--color-text-muted);margin-top:2px">zhang.san@company.com</div>
</div>
</div>
<div class="user-menu-item"><span>👤 我的资料</span></div>
<div class="user-menu-item"><span>🎭 切换角色</span><span class="kbd">⌘⇧R</span></div>
<div class="user-menu-item"><span>📊 我的使用统计</span></div>
<div class="user-menu-sep"></div>
<div class="user-menu-item"><span>⚙ 设置</span><span class="kbd">⌘,</span></div>
<div class="user-menu-item"><span>❓ 帮助 & 文档</span></div>
<div class="user-menu-sep"></div>
<div class="user-menu-item" onclick="location.href='11-login.html'" style="color:var(--color-error)"><span>🚪 退出登录</span></div>
</div>
</div>

<!-- Main -->
Expand Down
2 changes: 1 addition & 1 deletion docs/design/ui/prototype/02-setup-wizard.html
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@
<div class="wizard">

<div class="wizard-header">
<span>Setup · 第 <span id="step-num">2</span> 步 / 共 4 步</span>
<span>初始化向导 · 第 <span id="step-num">2</span> 步 / 共 4 步</span>
<span><a href="#" style="color:var(--color-text-muted)">✕ 跳过</a></span>
</div>

Expand Down
16 changes: 8 additions & 8 deletions docs/design/ui/prototype/03-settings.html
Original file line number Diff line number Diff line change
Expand Up @@ -137,16 +137,16 @@ <h2>设置</h2>

<div class="settings-main">
<div class="settings-nav">
<div class="nav-item active" data-tab="general">General</div>
<div class="nav-item" data-tab="provider">Provider</div>
<div class="nav-item" data-tab="shortcuts">Shortcuts</div>
<div class="nav-item" data-tab="exp">Experimental ⚗️</div>
<div class="nav-item active" data-tab="general">通用</div>
<div class="nav-item" data-tab="provider">供应商</div>
<div class="nav-item" data-tab="shortcuts">快捷键</div>
<div class="nav-item" data-tab="exp">实验性 ⚗️</div>
</div>

<div class="settings-content">
<!-- General -->
<div data-pane="general">
<h3>General · 通用</h3>
<h3>通用设置</h3>

<h4>外观</h4>
<div class="row">
Expand Down Expand Up @@ -187,7 +187,7 @@ <h4>数据</h4>

<!-- Provider -->
<div data-pane="provider" style="display:none">
<h3>Provider · 供应商管理</h3>
<h3>供应商管理</h3>

<div style="display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-4)">
<span style="color:var(--color-text-muted)">已配置 2 个</span>
Expand Down Expand Up @@ -222,7 +222,7 @@ <h3>Provider · 供应商管理</h3>

<!-- Shortcuts -->
<div data-pane="shortcuts" style="display:none">
<h3>Shortcuts · 快捷键</h3>
<h3>快捷键</h3>

<input type="text" placeholder="搜索快捷键..." style="margin-bottom:var(--sp-4);width:100%;padding:var(--sp-2) var(--sp-3);border:1px solid var(--color-border);border-radius:var(--radius-md)" />

Expand All @@ -245,7 +245,7 @@ <h4>输入</h4>

<!-- Experimental -->
<div data-pane="exp" style="display:none">
<h3>Experimental ⚗️</h3>
<h3>实验性功能 ⚗️</h3>
<p style="color:var(--color-warning);margin-bottom:var(--sp-4)">⚠️ 以下功能不稳定,启用前请知悉风险</p>

<div class="row">
Expand Down
84 changes: 84 additions & 0 deletions docs/design/ui/prototype/11-login.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>11 · 登录 · EP Code AI</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>

<div class="proto-banner">
<span>🎨 原型 11 / 15 · 登录(企业 SSO + 账号密码)</span>
<span><a href="index.html">← 返回导航</a></span>
</div>

<div class="login-wrap">
<div class="login-card">

<div class="login-logo">🚀</div>
<div class="login-title">EP Code AI</div>
<div class="login-sub">企业级 AI 研发助手</div>

<!-- 企业 SSO(后续接入企业用户体系的主入口) -->
<button class="sso-btn">
<span style="font-size:20px">🏢</span>
<div style="flex:1;text-align:left">
<div style="font-weight:600">企业账号登录</div>
<div style="font-size:var(--fs-xs);color:var(--color-text-muted)">通过公司统一身份登录(SSO)</div>
</div>
<span style="color:var(--color-text-muted)">→</span>
</button>

<button class="sso-btn">
<span style="font-size:20px">💬</span>
<div style="flex:1;text-align:left">
<div style="font-weight:600">企业微信 / 钉钉 / 飞书</div>
<div style="font-size:var(--fs-xs);color:var(--color-text-muted)">扫码登录</div>
</div>
<span style="color:var(--color-text-muted)">→</span>
</button>

<div class="divider">或使用账号密码</div>

<div class="field">
<div class="field-label">工号 / 邮箱</div>
<input type="text" placeholder="zhang.san@company.com" />
</div>

<div class="field">
<div class="field-label">密码</div>
<input type="password" placeholder="" />
</div>

<div style="display:flex;justify-content:space-between;margin-bottom:var(--sp-4);font-size:var(--fs-sm)">
<label><input type="checkbox" checked /> 保持登录 7 天</label>
<a href="#">忘记密码?</a>
</div>

<button class="btn primary lg" style="width:100%" onclick="location.href='01-main-three-pane.html'">登录</button>

<div style="text-align:center;margin-top:var(--sp-5);font-size:var(--fs-xs);color:var(--color-text-muted)">
登录即表示同意 <a href="#">用户协议</a> 和 <a href="#">隐私政策</a>
<br>
<span style="color:var(--color-primary)">⚠️ 本页为原型,真实 SSO 接入在 Sprint 8+</span>
</div>

</div>
</div>

<!-- 说明区 -->
<div style="max-width: 880px; margin: 40px auto; padding: 0 16px; font-size: var(--fs-sm); color: var(--color-text-muted); line-height: 1.8">
<h3 style="color:var(--color-text);margin-bottom:12px">关于用户体系(预留设计)</h3>
<p><strong>Phase 2 简化方案</strong>: 本地单用户,登录时记录身份 + 选择角色(产品/开发/测试/运维),用于场景工作流的个性化显示。</p>
<p style="margin-top:8px"><strong>Phase 3 企业集成</strong>: 接入企业 SSO (OIDC / SAML),从 HR 系统拉取用户基本信息 + 角色 + 团队,打通企业微信/钉钉的身份。</p>
<h4 style="color:var(--color-text);margin-top:16px;margin-bottom:8px">登录后会记录</h4>
<ul style="margin-left:24px">
<li>用户名 / 工号 / 头像 / 邮箱(来源: SSO / 用户填写)</li>
<li>主角色 (产品 / 开发 / 测试 / 运维 / 其他) - 决定工作流推荐</li>
<li>团队 / 项目组 (Phase 3)</li>
<li>上次登录时间 + 设备信息(用于审计,见 PLAN.md ④ 服务端 RFC)</li>
</ul>
</div>

</body>
</html>
Loading
Loading