Skip to content

Commit 41dbb19

Browse files
authored
chore(Select): revert Select component update (#4844)
* refactor: 增加级联参数 * doc: 更新示例文档 * doc: 更改示例文件名 * doc: 增加原 Select 组件文档 * test: 增加 SelectGeneric 组件单元测试 * revert: 撤销忽略单元测试标签 * revert: 撤销单元测试更新 * revert: 恢复支持泛型逻辑 * test: 更新单元测试 * refactor: 更改可见性 * refactor: 移动组件到独立包 * chore: bump version 9.1.3-beta07 * revert: 撤销泛型更改
1 parent 56e8e74 commit 41dbb19

20 files changed

+1116
-1499
lines changed

src/BootstrapBlazor.Shared/Components/Samples/SelectGenerics.razor

+441
Large diffs are not rendered by default.

src/BootstrapBlazor.Shared/Components/Samples/SelectGenerics.razor.cs

+405
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
.select-custom ::deep .dropdown-menu {
2+
--bs-dropdown-link-active-bg: var(--bs-secondary);
3+
--bs-dropdown-link-active-color: var(--bs-body-color);
4+
--bb-dropdown-max-height: 540px;
5+
}
6+
7+
.select-custom ::deep .divider {
8+
--bb-divider-margin: 1rem 0;
9+
--bb-divider-bg: #c0c4cc;
10+
}
11+
12+
.dropdown-item-demo {
13+
border-radius: var(--bs-dropdown-border-radius);
14+
border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);
15+
padding: .5rem;
16+
flex-direction: column;
17+
}
18+
19+
.select-custom-header {
20+
display: flex;
21+
align-items: center;
22+
margin-top: .5rem;
23+
}
24+
25+
.select-custom-header .id {
26+
background-color: var(--bs-success);
27+
padding: .25rem .5rem;
28+
border-radius: var(--bs-dropdown-border-radius);
29+
}
30+
31+
.select-custom-header .name {
32+
padding: .25rem .5rem;
33+
margin: 0 1rem;
34+
flex: 1;
35+
font-weight: bold;
36+
}
37+
38+
.select-custom-header .status {
39+
}
40+
41+
.select-custom-body {
42+
display: flex;
43+
}
44+
45+
.select-custom-body ::deep .progress {
46+
height: 6px;
47+
margin-bottom: .5rem;
48+
}
49+
50+
.select-custom-body .bb-avatar {
51+
width: 102px;
52+
border: 2px solid var(--bs-info);
53+
}
54+
55+
.select-custom-detail {
56+
flex: 1;
57+
margin-inline-start: 2rem;
58+
}
59+
60+
.select-custom-detail > div {
61+
margin-bottom: .5rem;
62+
}

src/BootstrapBlazor.Shared/Components/Samples/Selects.razor

-14
Original file line numberDiff line numberDiff line change
@@ -436,20 +436,6 @@
436436
</div>
437437
</DemoBlock>
438438

439-
<DemoBlock Title="@Localizer["SelectsGenericTitle"]"
440-
Introduction="@Localizer["SelectsGenericIntro"]"
441-
Name="Generic">
442-
<section ignore>@((MarkupString)Localizer["SelectsGenericDesc"].Value)</section>
443-
<div class="row">
444-
<div class="col-12 col-sm-6">
445-
<SelectGeneric Items="_genericItems" @bind-Value="_selectedFoo" IsEditable="true"></SelectGeneric>
446-
</div>
447-
<div class="col-12 col-sm-6">
448-
<Display Value="_selectedFoo?.Address"></Display>
449-
</div>
450-
</div>
451-
</DemoBlock>
452-
453439
<AttributeTable Items="@GetAttributes()" />
454440

455441
<EventTable Items="@GetEvents()" />

src/BootstrapBlazor.Shared/Components/Samples/Selects.razor.cs

-9
Original file line numberDiff line numberDiff line change
@@ -242,15 +242,6 @@ private Task OnTimeZoneValueChanged(string timeZoneId)
242242
return Task.CompletedTask;
243243
}
244244

245-
private readonly List<SelectedItem<Foo?>> _genericItems =
246-
[
247-
new() { Text = "Foo1", Value = new Foo() { Id = 1, Address = "Address_F001" } },
248-
new() { Text = "Foo2", Value = new Foo() { Id = 2, Address = "Address_F002" } },
249-
new() { Text = "Foo3", Value = new Foo() { Id = 3, Address = "Address_F003" } }
250-
];
251-
252-
private Foo? _selectedFoo;
253-
254245
/// <summary>
255246
/// 获得事件方法
256247
/// </summary>

src/BootstrapBlazor/BootstrapBlazor.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk.Razor">
22

33
<PropertyGroup>
4-
<Version>9.1.3-beta06</Version>
4+
<Version>9.1.3-beta07</Version>
55
</PropertyGroup>
66

77
<ItemGroup>

src/BootstrapBlazor/Components/Select/Select.razor.cs

+2-59
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ namespace BootstrapBlazor.Components;
1212
/// Select 组件实现类
1313
/// </summary>
1414
/// <typeparam name="TValue"></typeparam>
15-
[ExcludeFromCodeCoverage]
16-
public partial class Select<TValue> : ISelect, IModelEqualityComparer<TValue>
15+
public partial class Select<TValue> : ISelect
1716
{
1817
[Inject]
1918
[NotNull]
@@ -93,13 +92,6 @@ public partial class Select<TValue> : ISelect, IModelEqualityComparer<TValue>
9392
[Parameter]
9493
public Func<string, Task>? OnInputChangedCallback { get; set; }
9594

96-
/// <summary>
97-
/// 获得/设置 选项输入更新后转换为 Value 回调方法 默认 null
98-
/// </summary>
99-
/// <remarks>设置 <see cref="IsEditable"/> 后生效</remarks>
100-
[Parameter]
101-
public Func<string, Task<TValue>>? TextConvertToValueCallback { get; set; }
102-
10395
/// <summary>
10496
/// 获得/设置 无搜索结果时显示文字
10597
/// </summary>
@@ -169,26 +161,6 @@ public partial class Select<TValue> : ISelect, IModelEqualityComparer<TValue>
169161
[Parameter]
170162
public bool DisableItemChangedWhenFirstRender { get; set; }
171163

172-
/// <summary>
173-
/// 获得/设置 比较数据是否相同回调方法 默认为 null
174-
/// <para>提供此回调方法时忽略 <see cref="CustomKeyAttribute"/> 属性</para>
175-
/// </summary>
176-
[Parameter]
177-
public Func<TValue, TValue, bool>? ValueEqualityComparer { get; set; }
178-
179-
Func<TValue, TValue, bool>? IModelEqualityComparer<TValue>.ModelEqualityComparer
180-
{
181-
get => ValueEqualityComparer;
182-
set => ValueEqualityComparer = value;
183-
}
184-
185-
/// <summary>
186-
/// 获得/设置 数据主键标识标签 默认为 <see cref="KeyAttribute"/>用于判断数据主键标签,如果模型未设置主键时可使用 <see cref="ValueEqualityComparer"/> 参数自定义判断数据模型支持联合主键
187-
/// </summary>
188-
[Parameter]
189-
[NotNull]
190-
public Type? CustomKeyAttribute { get; set; } = typeof(KeyAttribute);
191-
192164
[NotNull]
193165
private Virtualize<SelectedItem>? VirtualizeElement { get; set; }
194166

@@ -482,27 +454,6 @@ private async Task OnClickItem(SelectedItem item)
482454
}
483455

484456
private async Task SelectedItemChanged(SelectedItem item)
485-
{
486-
if (item is SelectedItem<TValue> d && !Equals(d.Value, Value))
487-
{
488-
item.Active = true;
489-
SelectedItem = item;
490-
491-
CurrentValue = d.Value;
492-
493-
// 触发 SelectedItemChanged 事件
494-
if (OnSelectedItemChanged != null)
495-
{
496-
await OnSelectedItemChanged(SelectedItem);
497-
}
498-
}
499-
else
500-
{
501-
await ValueTypeChanged(item);
502-
}
503-
}
504-
505-
private async Task ValueTypeChanged(SelectedItem item)
506457
{
507458
if (_lastSelectedValueString != item.Value)
508459
{
@@ -511,7 +462,7 @@ private async Task ValueTypeChanged(SelectedItem item)
511462
SelectedItem = item;
512463

513464
// 触发 StateHasChanged
514-
_lastSelectedValueString = item.Value ?? "";
465+
_lastSelectedValueString = item.Value;
515466
CurrentValueAsString = _lastSelectedValueString;
516467

517468
// 触发 SelectedItemChanged 事件
@@ -585,12 +536,4 @@ private async Task OnChange(ChangeEventArgs args)
585536
}
586537
}
587538
}
588-
589-
/// <summary>
590-
/// <inheritdoc/>
591-
/// </summary>
592-
/// <param name="x"></param>
593-
/// <param name="y"></param>
594-
/// <returns></returns>
595-
public bool Equals(TValue? x, TValue? y) => this.Equals<TValue>(x, y);
596539
}

src/BootstrapBlazor/Components/Select/SelectOption.cs

-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ namespace BootstrapBlazor.Components;
88
/// <summary>
99
/// SelectOption 组件
1010
/// </summary>
11-
[ExcludeFromCodeCoverage]
1211
public class SelectOption : ComponentBase
1312
{
1413
/// <summary>

src/BootstrapBlazor/Components/Select/VirtualizeQueryOption.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ public class VirtualizeQueryOption
1313
/// <summary>
1414
/// 请求记录开始索引
1515
/// </summary>
16-
public int StartIndex { get; internal set; }
16+
public int StartIndex { get; set; }
1717

1818
/// <summary>
1919
/// 请求记录总数
2020
/// </summary>
21-
public int Count { get; internal set; }
21+
public int Count { get; set; }
2222

2323
/// <summary>
2424
/// Select 组件搜索文本
2525
/// </summary>
26-
public string? SearchText { get; internal set; }
26+
public string? SearchText { get; set; }
2727
}

src/BootstrapBlazor/Components/SelectGeneric/ISelectGeneric.cs

-18
This file was deleted.

src/BootstrapBlazor/Components/SelectGeneric/SelectGeneric.razor

-115
This file was deleted.

0 commit comments

Comments
 (0)