用户:RedDragon/Test:修订间差异
来自Rizline中文维基
更多操作
小 |
小 |
||
| 第8行: | 第8行: | ||
<button id="alias-btn" | <button id="alias-btn" | ||
style="padding: 0.5rem 1rem; background: #3366CC; color: #ffffff; font-size: 16px; border: none; border-radius: 0 5px 5px 0">搜索</button> | style="padding: 0.5rem 1rem; background: #3366CC; color: #ffffff; font-size: 16px; border: none; border-radius: 0 5px 5px 0">搜索</button> | ||
</div> | </div> | ||
<div style="margin-top: 100px"> | <div style="margin-top: 100px"> | ||
<h3>搜索结果:</h3> | <h3>搜索结果:</h3> | ||
<div id="alias-results" style="color: #333"> | <div id="alias-results" style="color: #333"> | ||
<div class="no-results"></div> | |||
</div> | </div> | ||
</div> | </div> | ||
| 第40行: | 第37行: | ||
songlist.forEach(function (song) { | songlist.forEach(function (song) { | ||
const li = document.createElement('li') | const li = document.createElement('li') | ||
li.innerHTML = `<span class="song-title">${song.title}</span>: <span class="aliases">${song.aliases.join('、')}</span>` | |||
li.innerHTML = `<span class="song-title">${song.title | |||
container.appendChild(li) | container.appendChild(li) | ||
}) | }) | ||
} | } | ||
| 第74行: | 第45行: | ||
const searchText = document.getElementById('alias-input').value.trim().toLowerCase() | const searchText = document.getElementById('alias-input').value.trim().toLowerCase() | ||
const resultsContainer = document.getElementById('alias-results') | const resultsContainer = document.getElementById('alias-results') | ||
if (!searchText) { | if (!searchText) { | ||
resultsContainer.innerHTML = '<div>输入关键词进行搜索</div>' | resultsContainer.innerHTML = '<div class="no-results">输入关键词进行搜索</div>' | ||
return | return | ||
} | } | ||
// 计算匹配度并排序 | |||
const results = songlist.map(function (song) { | const results = songlist.map(function (song) { | ||
// 检查标题匹配 | |||
const titleMatch = song.title.toLowerCase().includes(searchText) | |||
// 检查别名匹配 | |||
const aliasMatches = song.aliases.filter(function (alias) { | |||
return alias.toLowerCase().includes(searchText) | |||
}) | |||
// 计算权重 | |||
let score = 0 | |||
if (titleMatch) score += 2 // 标题权重 | |||
score += aliasMatches.length * 3 // 别名权重 | |||
return { | return { | ||
song: song, | song: song, | ||
score: | score: score | ||
} | } | ||
}).filter(function (result) { | }).filter(function (result) { | ||
// const resc = 2 | |||
// if (result.score >= resc) { | // if (result.score >= resc) { | ||
// console.log(result.song.title + ": " + result.score) | // console.log(result.song.title + ": " + result.score) | ||
// } | // } | ||
return result.score >= | return result.score >= 2 // 过滤掉不匹配的 | ||
}).sort(function (a, b) { | }).sort(function (a, b) { | ||
return b.score - a.score | return b.score - a.score // 按匹配度降序排序 | ||
}) | }) | ||
if (results.length == 0) { | if (results.length == 0) { | ||
resultsContainer.innerHTML = '<div>没有找到匹配的曲目</div>' | resultsContainer.innerHTML = '<div class="no-results">没有找到匹配的曲目</div>' | ||
} else { | } else { | ||
resultsContainer.innerHTML = '' | resultsContainer.innerHTML = '' | ||
| 第110行: | 第86行: | ||
div.style.margin = "0 0 0.5rem 1rem" | div.style.margin = "0 0 0.5rem 1rem" | ||
div.style.lineHeight = "1.5" | div.style.lineHeight = "1.5" | ||
div.innerHTML = '<div class="song-title">' + result.song.title + '</div>' + | |||
div.innerHTML = '<div class="song-title">' + | |||
'<div class="aliases" style="font-size: 13px; margin-left: 1rem">alias: ' + | '<div class="aliases" style="font-size: 13px; margin-left: 1rem">alias: ' + | ||
result.song.aliases.join('、') + '</div>' | result.song.aliases.join('、') + '</div>' | ||
2025年9月12日 (五) 20:32的版本