diff --git a/app/static/css/main.css b/app/static/css/main.css index 78eda54..d70673e 100644 --- a/app/static/css/main.css +++ b/app/static/css/main.css @@ -6384,6 +6384,8 @@ body .selectable-files tr.selected-file:has([style*="white-space: normal"]) .fil overflow: hidden; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); margin-bottom: 10px; + /* 默认占位背景,避免纯白闪烁 */ + background: #f3f3f3 url('../images/no-poster.svg') center/contain no-repeat; } .discovery-poster img { diff --git a/app/templates/index.html b/app/templates/index.html index 5e44741..c0ea09b 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -1236,17 +1236,21 @@
-
+
-
+
@@ -1281,7 +1285,7 @@
{{ getTransferProgress(getCalendarTaskByName(task.taskname)) }}% @@ -1289,7 +1293,7 @@ -
+
#{{ String((task.__originalIndex !== undefined ? task.__originalIndex : index) + 1).padStart(2, '0') }}
@@ -3187,6 +3191,8 @@ // 任务列表视图模式:list 或 poster(默认列表视图,支持持久化) viewMode: (localStorage.getItem('tasklist_view_mode') === 'poster') ? 'poster' : 'list' }, + // 任务列表海报加载标记:taskname -> boolean(用于优先显示图片,再渐进显示其他信息) + tasklistPosterLoaded: {}, // 任务列表排序设置(记忆到localStorage) tasklistSort: (() => { try { @@ -5888,7 +5894,13 @@ } else if (sname && this.imageCacheBustByShowName && this.imageCacheBustByShowName[sname]) { tick = this.imageCacheBustByShowName[sname]; } else { - tick = this.imageCacheBustTick || 0; + // 优化:任务列表海报视图下,未命中特定节目/名称的情况下不使用全局穿透参数,避免本地海报反复绕过浏览器缓存 + // 仅对日历等视图保留全局 bust(以确保热更新及时生效) + if (this.activeTab === 'calendar') { + tick = this.imageCacheBustTick || 0; + } else { + tick = 0; + } } } catch (e) { tick = this.imageCacheBustTick || 0; } return tick ? `${path}?t=${tick}` : path;