Add lean review issues: up to two problem tags plus short note.

Persist review_issues, enforce max two on save, and show issue breakdown in stats.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-10-21 20:56:32 +08:00
parent 1bf353c505
commit 01ed885646
6 changed files with 165 additions and 10 deletions
+28 -1
View File
@@ -75,7 +75,7 @@
<div class="card">
<div class="muted">入场形式标注</div>
<div class="stat" style="font-size:22px">{{ stats.annotated }} <span class="muted" style="font-size:14px">/ {{ stats.total }}</span></div>
<div class="muted" style="margin-top:6px">未标注 {{ stats.unannotated }}</div>
<div class="muted" style="margin-top:6px">未标注 {{ stats.unannotated }} · 问题标注 {{ stats.issue_tagged }}</div>
</div>
</div>
@@ -185,6 +185,33 @@
</div>
</div>
<div class="card" style="margin-top:14px">
<h3>按主要问题</h3>
<p class="muted" style="margin:0 0 10px">一笔可勾 1~2 个问题,会分别计入对应行。</p>
<table>
<thead>
<tr>
<th>问题</th><th>笔数</th><th>胜率</th><th>盈亏</th><th>平均持仓</th>
</tr>
</thead>
<tbody>
{% for g in stats.by_issue %}
<tr>
<td>{{ g.label }}</td>
<td>{{ g.count }}</td>
<td>{{ '%.1f'|format(g.win_rate) }}%</td>
<td style="color:{% if g.profit>0 %}var(--green){% elif g.profit<0 %}var(--red){% else %}inherit{% endif %}">
{{ '%.2f'|format(g.profit) }}
</td>
<td class="muted">{{ g.avg_hold }}</td>
</tr>
{% else %}
<tr><td colspan="5" class="muted">暂无问题标注</td></tr>
{% endfor %}
</tbody>
</table>
</div>
<div class="card" style="margin-top:14px">
<h3>按机器</h3>
<table>