fix: 标签管理添加搜索功能,实时过滤标签列表
This commit is contained in:
@@ -486,10 +486,18 @@ INDEX_TEMPLATE = '''
|
|||||||
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<div class="mb-3">
|
<div class="row mb-3">
|
||||||
<div class="input-group">
|
<div class="col">
|
||||||
<input type="text" id="newTagName" class="form-control" placeholder="新标签名称">
|
<div class="input-group">
|
||||||
<button class="btn btn-primary" onclick="createTag()"><i class="bi bi-plus"></i> 创建</button>
|
<input type="text" id="tagSearch" class="form-control" placeholder="搜索标签...">
|
||||||
|
<button class="btn btn-outline-secondary" onclick="loadTagManagerList()"><i class="bi bi-search"></i></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="text" id="newTagName" class="form-control" placeholder="新标签名称">
|
||||||
|
<button class="btn btn-primary" onclick="createTag()"><i class="bi bi-plus"></i> 创建</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="tagListContainer">
|
<div id="tagListContainer">
|
||||||
@@ -518,6 +526,9 @@ document.addEventListener('DOMContentLoaded', async () => {
|
|||||||
document.getElementById('addTags').addEventListener('input', showTagSuggestions);
|
document.getElementById('addTags').addEventListener('input', showTagSuggestions);
|
||||||
document.getElementById('editTags').addEventListener('input', showTagSuggestionsEdit);
|
document.getElementById('editTags').addEventListener('input', showTagSuggestionsEdit);
|
||||||
|
|
||||||
|
// 标签搜索实时过滤
|
||||||
|
document.getElementById('tagSearch')?.addEventListener('input', debounce(loadTagManagerList, 300));
|
||||||
|
|
||||||
// 类型切换时显示/隐藏字段
|
// 类型切换时显示/隐藏字段
|
||||||
document.getElementById('addType').addEventListener('change', (e) => {
|
document.getElementById('addType').addEventListener('change', (e) => {
|
||||||
const type = e.target.value;
|
const type = e.target.value;
|
||||||
@@ -964,12 +975,20 @@ async function loadTagManagerList() {
|
|||||||
if (!data.success) return;
|
if (!data.success) return;
|
||||||
|
|
||||||
const container = document.getElementById('tagListContainer');
|
const container = document.getElementById('tagListContainer');
|
||||||
if (!data.data.length) {
|
|
||||||
|
// 搜索过滤
|
||||||
|
const searchKeyword = document.getElementById('tagSearch').value.trim().toLowerCase();
|
||||||
|
let tags = data.data;
|
||||||
|
if (searchKeyword) {
|
||||||
|
tags = tags.filter(t => t.name.toLowerCase().includes(searchKeyword));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!tags.length) {
|
||||||
container.innerHTML = '<div class="text-center text-muted py-3">暂无标签</div>';
|
container.innerHTML = '<div class="text-center text-muted py-3">暂无标签</div>';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
container.innerHTML = data.data.map(tag => `
|
container.innerHTML = tags.map(tag => `
|
||||||
<div class="d-flex justify-content-between align-items-center p-2 border-bottom">
|
<div class="d-flex justify-content-between align-items-center p-2 border-bottom">
|
||||||
<div>
|
<div>
|
||||||
<span class="badge bg-secondary">${tag.name}</span>
|
<span class="badge bg-secondary">${tag.name}</span>
|
||||||
|
|||||||
Reference in New Issue
Block a user