Skip to content

Commit 0864fd6

Browse files
committed
refactor: 重构代码
1 parent 961767b commit 0864fd6

File tree

3 files changed

+24
-6
lines changed

3 files changed

+24
-6
lines changed

src/BootstrapBlazor/Components/Select/MultiSelect.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
}
3636
}
3737
}
38-
@if (IsEditable)
38+
@if (CheckCanEdit())
3939
{
4040
<input type="text" class="multi-select-input" autocomplete="off" tabindex="0" data-bb-trigger-key="@EditSubmitKeyString" />
4141
}

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

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -298,14 +298,15 @@ public async Task<bool> TriggerEditTag(string val)
298298
else if (!string.IsNullOrEmpty(val))
299299
{
300300
ret = GetData().Find(i => i.Text.Equals(val, StringComparison.OrdinalIgnoreCase)) ?? new SelectedItem(val, val);
301+
}
302+
if (ret != null)
303+
{
301304
if (SelectedItems.Find(i => i.Text.Equals(val, StringComparison.OrdinalIgnoreCase)) == null)
302305
{
303306
SelectedItems.Add(ret);
304307
}
305-
}
306-
if (ret != null)
307-
{
308308
// 更新选中值
309+
_isToggle = true;
309310
await SetValue();
310311
}
311312
return ret != null;
@@ -442,6 +443,21 @@ private bool CheckCanSelect(SelectedItem item)
442443
return !ret;
443444
}
444445

446+
private bool CheckCanEdit()
447+
{
448+
var ret = IsEditable;
449+
if (ret == false)
450+
{
451+
return false;
452+
}
453+
454+
if (Max > 0)
455+
{
456+
ret = SelectedItems.Count < Max;
457+
}
458+
return ret;
459+
}
460+
445461
private List<SelectedItem> GetData()
446462
{
447463
var data = Items;

src/BootstrapBlazor/Components/Select/MultiSelect.razor.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,10 @@ export function init(id, invoke, method) {
3333
EventHandler.on(itemsElement, 'keyup', '.multi-select-input', async e => {
3434
const triggerSpace = e.target.getAttribute('data-bb-trigger-key') === 'space';
3535
let submit = false;
36-
if (triggerSpace && e.code === 'Space') {
37-
submit = true;
36+
if (triggerSpace) {
37+
if (e.code === 'Space') {
38+
submit = true;
39+
}
3840
}
3941
else if (e.code === 'Enter' || e.code === 'NumPadEnter') {
4042
submit = true;

0 commit comments

Comments
 (0)