SxSelect UI 设计规范

自动生成时间: 2026-02-04 组件路径: src/NextUI.Blazor/Components/SxSelect.razor

1. 组件概述

  • 组件包含 3 个参数,0 个回调,2 个公开方法。
  • 内部组合组件:SxIcon。
  • 依赖注入: IJSRuntime JS, INextUILocalizer L。
  • 实现接口: IAsyncDisposable。

2. 组件模式

模式 条件 说明
条件渲染 !string.IsNullOrEmpty(Label 影响局部渲染块
条件渲染 Loading 影响局部渲染块
条件渲染 LoadingTemplate != null 影响局部渲染块
条件渲染 AllowClear && HasValue && !IsDisabled && !ReadOnly 影响局部渲染块
条件渲染 Open 影响局部渲染块
条件渲染 EffectiveItems == null || !EffectiveItems.Any( 影响局部渲染块
条件渲染 EmptyTemplate != null 影响局部渲染块
条件渲染 OptionTemplate != null 影响局部渲染块
条件渲染 IsSelected(opt 影响局部渲染块

3. 表单字段

字段组件 绑定
- -

4. 操作按钮

外观 动作/链接 禁用条件
- - -

5. 验证规则

未检测到显式验证标记。

6. 状态与流程

内部状态字段: 未检测到明确状态字段。

7. 公共 API

7.1 Parameters

参数 类型 默认值 说明
AllowClear bool true
Appearance SxInputAppearance SxInputAppearance.Outline
Position SelectPosition SelectPosition.Below

7.2 Public Methods

  • DisposeAsync: ValueTask
  • FocusAsync: ValueTask

7.3 Events/Callbacks

无回调事件。

8. 典型使用场景 (Use Cases)

8.1 UC-1: 基础渲染

  1. 组件渲染默认状态
  2. 关键区域可见
  3. 无异常

9. 状态不变性测试 (State Invariants)

  • 同一参数重复设置不应触发非必要 UI 改变
  • 与表单字段无关的操作不应影响字段值

10. 测试检查点

  • 条件 !string.IsNullOrEmpty(Label 下渲染正确
  • 条件 Loading 下渲染正确
  • 条件 LoadingTemplate != null 下渲染正确
  • 条件 AllowClear && HasValue && !IsDisabled && !ReadOnly 下渲染正确
  • 条件 Open 下渲染正确
  • 条件 EffectiveItems == null || !EffectiveItems.Any( 下渲染正确
  • 条件 EmptyTemplate != null 下渲染正确
  • 条件 OptionTemplate != null 下渲染正确

11. Fluent UI 对齐

对应 Fluent UI Blazor 组件:FluentSelect 源码:src/Core/Components/List/FluentSelect.razor(.cs) 对齐要点:

  • Multiple 支持多选;多选模式下 SelectedOptionsChanged 才有效。
  • Open/Position 控制弹层;Appearance 支持外观。
  • 内部通过 CSS ::part(listbox) 设置高度与 ZIndex。 关键参数/事件:
  • OpenPositionAppearanceMultiple
  • OptionText/OptionValue/OptionSelectedSelectedOption(s)。 差异与扩展:
  • SxSelect 需对齐多选/单选的事件与样式分支。

12. 参考文档摘要

  • docs/ComponentInventory.md: NextUI 组件全量版图审计 (Fluent UI v4.13.2 对齐) 本文档作为 NextUI 设计系统的“全量施工蓝图”,实时对齐 Microsoft Fluent UI Blazor v4.13.2 官方组件库。所有组件分为已实现 [x]、开发中 [-] 和待开发 [ ] 状态。
  • docs/IDENTITY-DESIGN.md: NextUI 用户身份与认证设计方案 ## 一、问题分析
  • docs/ComponentAPIGuide.md: Next UI Component API Guide (Standard Interface) 本指南定义了 Next UI 组件的标准接口。我们的目标是 API 兼容优先,确保与 Microsoft Fluent UI Blazor 库的命名习惯对齐。

13. 规范合规检查

  • 可能存在硬编码样式: 存在 px 硬编码

14. 变更历史

  • 2026-02-04: 深度分析填充规范。