Commit 5a7632a3c401ea28cda620ec737c14088c0e04c9
1 parent
ce4f6b20
h3-console: "新建任务"固定在筛选框上面,不再跟着任务列表滚动
之前塞在 #job-list 第一行,列表一滚就跟着跑没了;挪到 #sidebar-filters 外面单独一行,选中态(新建视图时高亮)用 renderSidebar() 里同步 class 的方式保留,回收站视图沿用原来的隐藏逻辑。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JDWoVwpqrsyzv9LRszTw9d
Showing
1 changed file
with
8 additions
and
6 deletions
h3-console/static/index.html
| ... | ... | @@ -92,6 +92,9 @@ |
| 92 | 92 | <div id="sidebar-header"> |
| 93 | 93 | <h1>H3 Console</h1> |
| 94 | 94 | </div> |
| 95 | + <div id="new-task-row" class="job-row new-row" onclick="showCreate()"> | |
| 96 | + <span>+</span><span>新建任务</span> | |
| 97 | + </div> | |
| 95 | 98 | <div id="sidebar-filters"> |
| 96 | 99 | <input id="job-search" type="text" placeholder="搜索 prompt / id…"> |
| 97 | 100 | <div class="sf-row"> |
| ... | ... | @@ -751,6 +754,11 @@ function fmtTime(ts) { |
| 751 | 754 | function renderSidebar() { |
| 752 | 755 | const box = document.getElementById('job-list'); box.innerHTML = ''; |
| 753 | 756 | document.getElementById('sidebar-filters').style.display = viewingTrash ? 'none' : 'flex'; |
| 757 | + // "+新建任务" 固定在筛选框上面、列表外面,不随 #job-list 滚动——之前是塞进 job-list 第一 | |
| 758 | + // 行的,列表一滚就跟着跑没了,2026-08-28 用户反馈要求固定住。 | |
| 759 | + const newTaskRow = document.getElementById('new-task-row'); | |
| 760 | + newTaskRow.style.display = viewingTrash ? 'none' : 'flex'; | |
| 761 | + newTaskRow.classList.toggle('selected', !viewingTrash && selectedId === null); | |
| 754 | 762 | |
| 755 | 763 | if (viewingTrash) { |
| 756 | 764 | const backRow = document.createElement('div'); |
| ... | ... | @@ -779,12 +787,6 @@ function renderSidebar() { |
| 779 | 787 | return; |
| 780 | 788 | } |
| 781 | 789 | |
| 782 | - const newRow = document.createElement('div'); | |
| 783 | - newRow.className = 'job-row new-row' + (selectedId === null ? ' selected' : ''); | |
| 784 | - newRow.onclick = () => showCreate(); | |
| 785 | - newRow.innerHTML = `<span>+</span><span>新建任务</span>`; | |
| 786 | - box.appendChild(newRow); | |
| 787 | - | |
| 788 | 790 | jobsCache.forEach(j => { |
| 789 | 791 | const row = document.createElement('div'); |
| 790 | 792 | row.className = 'job-row' + (j.id === selectedId ? ' selected' : ''); | ... | ... |