Skip to content

Commit 46907b7

Browse files
committed
feat: 增加表头按钮逻辑
1 parent 9611c54 commit 46907b7

2 files changed

Lines changed: 34 additions & 13 deletions

File tree

src/components/BootstrapBlazor.Region/Components/SelectCity.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
@foreach (var item in GetProvinces())
2020
{
2121
<div class="bb-region-city-item">
22-
<div class="bb-region-city-title">@item</div>
22+
<div class="bb-region-city-title" @onclick="() => OnSelectProvince(item)">@item</div>
2323
<ul>
2424
@foreach (var city in GetCities(item))
2525
{

src/components/BootstrapBlazor.Region/Components/SelectCity.razor.cs

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,33 @@ private async Task OnClearValue()
4040
}
4141
}
4242

43+
private void OnSelectProvince(string province)
44+
{
45+
if (IsMultiple)
46+
{
47+
HashSet<string> cities = [];
48+
if (province == "直辖市")
49+
{
50+
cities = Municipalities;
51+
}
52+
else if (province == "特别行政区")
53+
{
54+
cities = SpecialAdministrativeRegions;
55+
}
56+
else
57+
{
58+
cities = GetCities(province);
59+
}
60+
foreach (var city in cities)
61+
{
62+
if (!_values.Remove(city))
63+
{
64+
_values.Add(city);
65+
}
66+
}
67+
}
68+
}
69+
4370
private void OnSelectCity(string item)
4471
{
4572
if (IsMultiple)
@@ -93,26 +120,20 @@ private static HashSet<string> GetProvinces()
93120
];
94121
}
95122

123+
private static readonly HashSet<string> Municipalities = ["北京市", "天津市", "上海市", "重庆市"];
124+
125+
private static readonly HashSet<string> SpecialAdministrativeRegions = ["香港特别行政区", "澳门特别行政区"];
126+
96127
private HashSet<string> GetCities(string provinceName)
97128
{
98129
if (provinceName == "直辖市")
99130
{
100-
return
101-
[
102-
"北京市",
103-
"天津市",
104-
"上海市",
105-
"重庆市"
106-
];
131+
return Municipalities;
107132
}
108133

109134
if (provinceName == "特别行政区")
110135
{
111-
return
112-
[
113-
"香港特别行政区",
114-
"澳门特别行政区"
115-
];
136+
return SpecialAdministrativeRegions;
116137
}
117138

118139
return RegionService.GetCities(provinceName);

0 commit comments

Comments
 (0)