feat: feature discussion as separate detail page, not inline

This commit is contained in:
2026-07-16 23:50:16 +08:00
parent e9ef425545
commit ab08b1a2a9
4 changed files with 61 additions and 11 deletions

View File

@@ -65,10 +65,7 @@ const FeaturesPage = {
const items = await API.get('/features?' + params);
ct.innerHTML = items.length === 0 ? '<div class="empty"><i class="fas fa-inbox"></i><p>暂无内容</p></div>'
: items.map(i => this.renderItem(i)).join('');
for (const i of items) {
if (Auth.logged()) this.bindVote(i);
this.bindComment(i);
}
for (const i of items) { if (Auth.logged()) this.bindVote(i); }
} catch (e) { ct.innerHTML = `<div class="alert alert-e">${e.message}</div>`; }
},
@@ -77,7 +74,7 @@ const FeaturesPage = {
const statusLabel = i.status==='done'?'已完成':i.status==='planned'?'计划中':'待定';
return `<div class="card feat-item" id="feat-${i.id}">
<div class="card-h">
<span><span class="status-dot" style="color:${sc}">${i.status==='done'?'\u2713':i.status==='planned'?'\u25C9':'\u25CB'}</span> ${U.esc(i.title)}</span>
<span><a href="#/feature/${i.id}" style="color:inherit;text-decoration:none"><span class="status-dot" style="color:${sc}">${i.status==='done'?'\u2713':i.status==='planned'?'\u25C9':'\u25CB'}</span> ${U.esc(i.title)}</a></span>
<div style="display:flex;gap:8px;align-items:center">
${i.group_name ? `<span class="badge bg-player">${U.esc(i.group_name)}</span>` : ''}
${Auth.isOwner() ? `<button class="btn btn-o btn-sm" data-action="FeaturesPage:showEdit:${i.id}:${U.escJs(i.title)}:${U.escJs(i.description||'')}:${i.status}:${U.escJs(i.group_name||'')}:${U.escJs(i.server_name||'')}"><i class="fas fa-edit"></i></button>` : ''}
@@ -87,14 +84,9 @@ const FeaturesPage = {
${i.description ? `<p style="white-space:pre-wrap;margin-bottom:12px">${U.esc(i.description)}</p>` : ''}
<div class="feat-bar">
<button class="btn btn-${i.my_vote?'s':'o'} btn-sm feat-vote-btn" data-id="${i.id}"><i class="fas fa-thumbs-up"></i> ${i.votes_count||0}</button>
<span class="ts tm"><i class="fas fa-comment"></i> ${i.comments_count||0} 讨论</span>
<span class="ts tm"><i class="fas fa-comment"></i> <a href="#/feature/${i.id}" style="color:inherit;text-decoration:none">${i.comments_count||0} 讨论</a></span>
<span class="ts tm">${U.date(i.created_at)}</span>
</div>
<button class="btn btn-o btn-sm feat-discuss-btn" data-action="FeaturesPage:toggleDiscuss:${i.id}"><i class="fas fa-comments"></i> 展开讨论</button>
<div id="discuss-${i.id}" class="feat-comments" style="display:none">
<div id="comments-${i.id}" class="mb-4"></div>
<form id="comment-form-${i.id}" class="flex g2"><input id="comment-input-${i.id}" class="feat-comment-input" placeholder="添加评论..."><button type="submit" class="btn btn-p btn-sm"><i class="fas fa-reply"></i></button></form>
</div>
</div>
</div>`;
},