Skip to content

breaking(TSteps): 收敛进度、可选择与纯展示模式 - #1084

Merged
RSS1102 merged 13 commits into
developfrom
rss1102/breaking/steps-design-alignment
Sep 8, 2026
Merged

breaking(TSteps): 收敛进度、可选择与纯展示模式#1084
RSS1102 merged 13 commits into
developfrom
rss1102/breaking/steps-design-alignment

Conversation

@RSS1102

@RSS1102 RSS1102 commented Sep 5, 2026

Copy link
Copy Markdown
Collaborator

🤔 这个 PR 的性质是?

勾选规则:
1.只要有新增参数,就勾选”新特性提交“
2.只修改内部bug,未新增参数,才勾选”日常 bug 修复“
3.其他选项视具体改动判断

  • 日常 bug 修复
  • 新特性提交
  • 文档改进
  • 演示代码改进
  • 组件样式/交互改进
  • CI/CD 改进
  • 重构
  • 代码风格优化
  • 测试用例
  • 分支合并
  • 其他

🔗 相关 Issue

💡 需求背景和解决方案

旧版 TSteps 由一个构造函数同时承载进度、点状、只读和垂直选择能力,并允许实例参数与 TStepsThemeData 共同持有业务模式,导致有效组合、状态所有权和主题优先级不清晰。本 PR 将公开契约收敛为三个职责明确的命名构造:

  • TSteps.progress:普通受控进度步骤条。value 是唯一进度状态,status 只描述当前步骤的 process/error 状态,indicator 选择 standard/dotonChange 可选且只报告点击索引。
  • TSteps.selectable:垂直可选择步骤条。固定点状指示器、必填 value/onChange 并显示右箭头,由调用方在回调中更新 value
  • TSteps.display:纯展示步骤条。不接收进度、状态或交互参数,横向与纵向均以完成态节点和连线展示。

同时完成以下收敛与修复:

  • 移除未命名 TSteps(...)simple/readOnly/verticalSelect 以及持有业务模式的 TStepsThemeData;新增 TStepsIndicator.standard/dot
  • TStepsStatus.success 更名为 processTStepsItemData.successIcon 更名为 iconcustomTitle/customContent 继续优先于字符串便利字段。
  • 修复标题、内容和序号的内置默认样式遮蔽显式文字主题的问题;默认颜色和字体由 TDesign 语义 Token 兜底,实例自定义 Widget 优先。
  • 公开 Demo 收敛为“组件类型 / 组件状态 / 特殊类型”三组,覆盖水平与垂直的默认、图标、点状、自定义内容、错误、可选择和纯展示场景。
  • 可选择 Demo 使用单一 _selectedStep 受控状态派生“已完成步骤 / 当前步骤 / 未完成步骤”,点击后同步更新节点样式、状态文案并显示 Toast;生成代码片段同步说明 State 宿主和回调重建方式。

Spec 与视觉证据:行为契约验收记录浅色 Golden深色 Golden

验证结果:

  • GitHub Actions 的 Flutter 3.32.0 与 latest analyze、功能测试、APK/iOS/Web 构建均已通过;Flutter 3.32.0 Linux 视觉回归通过。
  • Steps 生产源码覆盖率 238/239(99.58%),共享 Text 生产源码覆盖率 219/222(98.65%)。
  • Xiaomi Android 16 真机完成 Demo 安装、页面导航、完整滚动、步骤选择、动态状态文案与 Toast 验证;点击首项后为 1 个“当前步骤”和 3 个“未完成步骤”,纯展示步骤不受交互影响。
  • 当前 GitHub CLA 检查仍为 pending,不将其计作代码验证通过。

📝 更新日志

  • breaking(TSteps): 使用 TSteps.progress/selectable/display 收敛进度、可选择与纯展示模式,使用 indicator/onChange 替代 simple/readOnly/verticalSelect

  • breaking(TSteps): 将 TStepsStatus.success 更名为 processTStepsItemData.successIcon 更名为 icon,移除持有业务模式的 TStepsThemeData

  • fix(TSteps): 修复局部文字主题覆盖失效、横向纯展示节点状态不一致以及可选择示例状态文案不随选择更新的问题

  • 本条 PR 不需要纳入 Changelog

☑️ 请求合并前的自查清单

⚠️ 请自检并全部勾选全部选项⚠️

  • 标题遵循 Conventional Commits 格式:type(<scope>?): 修改描述
    示例:fix(TBottomTabBar): 修复 iconText 模式底部溢出
  • “相关 Issue”处带上修复的 Issue 链接或无关联 Issue
  • 已添加对应的 Spec 链接,或已由 Review 确认本次改动无需 Spec
  • 相关文档已补充或无须补充

@RSS1102 RSS1102 mentioned this pull request Sep 5, 2026
@tencent-adm

Copy link
Copy Markdown
Member

CLA assistant check
Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ RSS1102
❌ autofix-ci[bot]
You have signed the CLA already but the status is still pending? Let us recheck it.

@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

完成

Web Demo

APK 下载

…teps-design-alignment

# Conflicts:
#	tdesign-component/example/test/fonts/README.md
…teps-design-alignment

# Conflicts:
#	tdesign-component/example/test/fonts/README.md
#	tdesign-component/test/components/goldens/navigation_components_dark.png
#	tdesign-component/test/components/goldens/navigation_components_light.png
#	tdesign-component/tool/component_test_manifest.dart
…teps-design-alignment

# Conflicts:
#	tdesign-component/example/test/fonts/README.md
…teps-design-alignment

# Conflicts:
#	tdesign-component/example/test/fonts/README.md
@RSS1102 RSS1102 changed the title breaking(TSteps): 收敛步骤条设计与公开契约 breaking(TSteps): 收敛进度、可选择与纯展示模式 Sep 8, 2026
@RSS1102
RSS1102 merged commit fecddc0 into develop Sep 8, 2026
17 of 18 checks passed
@RSS1102
RSS1102 deleted the rss1102/breaking/steps-design-alignment branch September 8, 2026 18:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants