Skip to content

fix(desktop): 账号选择页支持访问全部身份 - #3323

Open
weikl666 wants to merge 1 commit into
makecindy:mainfrom
weikl666:fix/login-account-list-scroll
Open

fix(desktop): 账号选择页支持访问全部身份#3323
weikl666 wants to merge 1 commit into
makecindy:mainfrom
weikl666:fix/login-account-list-scroll

Conversation

@weikl666

Copy link
Copy Markdown

这次改了什么

摘要

修复 Desktop 登录身份选择页在“个人身份 + 多个企业身份”时只能访问前三项的问题。

根因不是服务端少返回身份,而是登录面板固定高度并裁切溢出内容,第 4 项开始落在面板可视区域之外。现在标题区保持固定,身份卡片区域在超过 3 项时独立滚动,并在进入页面时短暂显示滚动条提示,避免用户不知道下方还有身份。

变更类型

  • feat 新功能
  • fix 缺陷修复
  • refactor / perf 重构或性能优化
  • docs / test / chore 文档、测试或工程维护
  • 其他:

范围

  • 关联 Issue / 需求:无
  • 本 PR 包含:Desktop 登录身份选择列表的滚动可达性、滚动提示及回归测试
  • 明确不包含:服务端、Mobile、登录数据协议或身份排序调整
  • 用户可见变化:身份超过 3 个时可在面板内滚动并选择全部个人/企业身份;前三项的位置和样式保持不变
  • 是否存在 breaking change:无

UI 变化

  • 静态视觉样式不变:未修改颜色、字体、文案、图标和身份卡片样式;新增的变化仅是 4 项以上时列表可滚动,并复用现有滚动条短暂显形机制。
  • 引用的设计规范:docs/design-rules/DESIGN.md §16.2(几何常量集中管理,保留既有标题与前三项坐标)以及 Light / Dark 双模式交付约束(继续使用既有语义 token,无新增硬编码颜色)。

怎么验证的

自动验证

pnpm test:unit:related
结果:通过,apps/desktop related unit tests PASS

pnpm --filter desktop run --if-present typecheck
结果:通过

pnpm --filter desktop exec vitest run src/renderer/components/login/__tests__/LoginPage.pr2a.harness.test.tsx
结果:通过,17/17

pnpm --filter desktop exec eslint src/renderer/components/login/LoginPage.tsx src/renderer/components/login/loginDesignTokens.ts src/renderer/components/login/__tests__/LoginPage.pr2a.harness.test.tsx
结果:通过

pnpm check:dco
结果:通过,1/1 commit signed off

git diff origin/main...HEAD --check
结果:通过

手工验证

  • macOS,CN Desktop dev,独立 userData 沙箱,不读取正式登录数据。
  • 使用 dev-only 登录场景进入“个人身份 + 4 个企业身份”的身份选择页。
  • 确认列表可视高度 352、内容高度 604、overflow-y: auto
  • 确认前三项原位置不变,向下滚动后 XDS 与最后一个企业身份可完整显示。
  • 点击第 4 个企业身份 XDS,成功进入客户端主界面。
  • Light / Dark 模式均目检,未发现布局或颜色异常。

未执行的验证

  • 未在 Windows 实机验证;实现使用 Chromium 原生纵向滚动,独立复审确认键盘 Tab、鼠标和触控板路径均可访问隐藏项。
  • Desktop 全量 lint 存在仓库基线失败(此前实跑为 379 errors / 5 warnings,分布于大量未改文件);本 PR 涉及的 3 个文件已通过定向 ESLint。

风险

风险分类

  • 无已知风险
  • SQLite / migration
  • system prompt
  • 协议兼容
  • 权限 / 安全 / 用户数据
  • 存量插件兼容(批准状态 / 指纹 / manifest 校验 / 安装布局 / 包格式)
  • 原生层 / fingerprint / OTA
  • 跨平台差异
  • 其他:

影响与回滚

  • 影响范围:仅 Desktop 登录流程的 account-selection 视图。
  • 回滚 / 降级方式:回退本 PR 即恢复原固定布局;不涉及数据迁移、协议或持久状态。

提交前检查

  • 已 review 完整 diff
  • 每个 commit 都带 DCO 签名(git commit -s,见 DCO
  • UI 改动已在「UI 变化」注明引用的设计规范章节(不涉及 UI 则跳过)
  • 未提交凭证、令牌或授权文件
  • 已补充必要文档(本次无需新增文档)
  • 已确认测试结果或说明未执行原因

Signed-off-by: weikl666 <126861179+weikl666@users.noreply.github.com>
@weikl666
weikl666 requested a review from a team as a code owner August 24, 2026 04:42
@greptile-apps

greptile-apps Bot commented Aug 24, 2026

Copy link
Copy Markdown

Greptile Summary

修复 Desktop 登录身份选择面板只能访问前三项的问题。

  • 将身份卡片放入固定高度的独立滚动区域,同时保持标题及前三项原有坐标不变
  • 身份超过三项时启用纵向滚动并短暂显示滚动条提示
  • 集中新增身份列表几何常量,并补充多身份滚动与选择回归测试

Confidence Score: 5/5

当前变更看起来可以安全合并,未发现会阻断身份列表滚动、选择或既有布局的具体问题。

新滚动区域在超过三个身份时提供足够的内容高度和纵向滚动能力,前三项坐标保持不变,选择操作仍沿用原有 dispatch 路径。

Important Files Changed

Filename Overview
apps/desktop/src/renderer/components/login/LoginPage.tsx 新增身份列表滚动视口、内容高度计算和滚动条提示;几何计算覆盖最后一项且保留原有前三项位置。
apps/desktop/src/renderer/components/login/tests/LoginPage.pr2a.harness.test.tsx 增加两项与五项身份场景,验证原坐标、滚动条件、提示调用和第四个企业身份选择。
apps/desktop/src/renderer/components/login/loginDesignTokens.ts 集中定义身份列表视口、行间距和底部留白常量,与面板及身份行尺寸一致。

Reviews (1): Last reviewed commit: "fix(desktop): make all login accounts re..." | Re-trigger Greptile

@MagicLizi MagicLizi added the touches:product-ui 改动碰到产品 / UI 面(review-pr 自动维护,仅展示) label Aug 24, 2026
@MagicLizi

Copy link
Copy Markdown
Contributor

这条 PR 需要维护者确认(product)。

登录身份选择页在超过 3 个身份时改为可滚动,并短暂显示滚动条提示——这是用户看得见的布局/交互变化,不是纯内部数据修复。

确认方式:请维护者直接在本 PR 上 Approve;若要改,请 Request Changes,作者改完后再 Approve。讨论见 #3336

@MagicLizi MagicLizi added the awaiting-discussion 等待维护者讨论(review-pr) label Aug 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting-discussion 等待维护者讨论(review-pr) touches:product-ui 改动碰到产品 / UI 面(review-pr 自动维护,仅展示)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants