From 48f771063b4d5205634daef8b2b024d91180f915 Mon Sep 17 00:00:00 2001 From: x1ao4 Date: Tue, 15 Jul 2025 02:16:26 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=BD=B1=E8=A7=86?= =?UTF-8?q?=E5=8F=91=E7=8E=B0=E9=A1=B5=E9=9D=A2=E6=B5=B7=E6=8A=A5=E5=A2=99?= =?UTF-8?q?=E7=9A=84=E6=98=BE=E7=A4=BA=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 缩小海报墙行距,微调影视类型文本的颜色 - 当存在多个导演时,最多只显示前两位导演的名字 --- app/static/css/main.css | 8 +++++--- app/templates/index.html | 14 +++++++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/static/css/main.css b/app/static/css/main.css index 446b1ca..7e7b32a 100644 --- a/app/static/css/main.css +++ b/app/static/css/main.css @@ -5970,7 +5970,8 @@ body .selectable-files tr.selected-file:has([style*="white-space: normal"]) .fil .discovery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); - gap: 20px; + column-gap: 20px; + row-gap: 14px; padding: 0; } @@ -6110,7 +6111,7 @@ body .selectable-files tr.selected-file:has([style*="white-space: normal"]) .fil .discovery-genre { font-size: 0.95rem; - color: #888; + color: #979799; margin-bottom: 2px; overflow: hidden; text-overflow: ellipsis; @@ -6131,7 +6132,8 @@ body .selectable-files tr.selected-file:has([style*="white-space: normal"]) .fil @media (max-width: 576px) { .discovery-grid { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); - gap: 20px; + column-gap: 20px; + row-gap: 14px; } .discovery-btn { diff --git a/app/templates/index.html b/app/templates/index.html index 12a474d..5319cab 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -7209,7 +7209,19 @@ details.push(parts[2]); // 类型 } if (parts.length >= 4 && parts[3]) { - details.push(parts[3]); // 导演 + // 处理导演信息,最多显示两个导演 + const directors = parts[3].trim(); + if (directors) { + const directorList = directors.split(/\s+/); // 按空格分割导演名字 + if (directorList.length > 2) { + // 如果导演超过2个,只取前两个 + const limitedDirectors = directorList.slice(0, 2).join(' '); + details.push(limitedDirectors); + } else { + // 导演不超过2个,直接显示 + details.push(directors); + } + } } if (parts.length >= 5 && parts[4]) { details.push(parts[4]); // 主演 From fcdec5e58a25c91afebe626021574838a5d6b293 Mon Sep 17 00:00:00 2001 From: x1ao4 Date: Tue, 15 Jul 2025 02:42:43 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=88=87=E6=8D=A2=E5=88=B0=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=88=97=E8=A1=A8=E9=A1=B5=E9=9D=A2=E6=97=B6=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=88=B7=E6=96=B0=E4=BB=BB=E5=8A=A1=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 activeTab 监听器和 changeTab 函数中添加对 tasklist 页面的检测 - 切换到任务列表时自动调用 loadTaskLatestInfo() 刷新最新转存文件和更新日期 - 保持与转存记录页面一致的用户体验,确保显示最新数据 --- app/templates/index.html | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/app/templates/index.html b/app/templates/index.html index 5319cab..d6a4237 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -602,7 +602,7 @@ -
+

任务设置

@@ -2475,6 +2475,10 @@ } }, activeTab(newValue, oldValue) { + // 如果切换到任务列表页面,则刷新任务最新信息 + if (newValue === 'tasklist') { + this.loadTaskLatestInfo(); + } // 如果切换到文件整理页面,则加载文件列表 if (newValue === 'filemanager') { this.fetchAccountsDetail(); @@ -3038,14 +3042,19 @@ if (window.innerWidth <= 768) { $('#sidebarMenu').collapse('toggle') } - + + // 当切换到任务列表标签时刷新任务最新信息 + if (tab === 'tasklist') { + this.loadTaskLatestInfo(); + } + // 当切换到历史记录标签时加载数据 if (tab === 'history') { this.loadHistoryRecords(); // 加载所有任务名称用于筛选 this.loadAllTaskNames(); } - + // 当切换到文件整理标签时加载文件列表 if (tab === 'filemanager') { // 从本地存储中恢复文件管理器的分页大小设置 From 41c09f78f1ab75f16027ed440586803d2824a8eb Mon Sep 17 00:00:00 2001 From: x1ao4 Date: Tue, 15 Jul 2025 22:42:52 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E4=BB=BB=E5=8A=A1=E5=88=97=E8=A1=A8=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E6=95=88=E6=9E=9C=EF=BC=8C=E4=BF=AE=E5=A4=8D=20iOS=20=E5=BD=93?= =?UTF-8?q?=E6=97=A5=E6=9B=B4=E6=96=B0=E6=A0=87=E8=AF=86=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 移动端任务列表交互优化 - 默认状态:隐藏按钮,显示任务元数据(最近文件、更新日期、当日标识) - 悬停/展开状态:显示按钮,隐藏元数据,保持当日更新标识可见 ## iOS 兼容性修复 - 针对 iOS 不支持渐变文本的问题,使用纯色当日更新标识 - 其他设备保持原有渐变效果不变 --- app/static/css/main.css | 102 ++++++++++++++++++++++++++++++++++++++- app/templates/index.html | 24 +++++++++ 2 files changed, 125 insertions(+), 1 deletion(-) diff --git a/app/static/css/main.css b/app/static/css/main.css index 7e7b32a..d4ac5e0 100644 --- a/app/static/css/main.css +++ b/app/static/css/main.css @@ -4084,7 +4084,7 @@ table.selectable-records .expand-button:hover { position: static; } -/* 确保按钮容器在悬停时保持宽度 */ +/* 确保按钮容器在悬停时保持宽度 - 桌面端 */ .task-buttons { position: relative; min-width: 160px; /* 根据按钮数量和间距调整 */ @@ -4104,6 +4104,95 @@ table.selectable-records .expand-button:hover { .task .col-auto.task-buttons { padding-right: 15px; /* 与添加任务按钮的右边距保持一致 */ } + + /* 移动端优化:当所有按钮都是悬停显示时,减少按钮容器的最小宽度 */ + .task-buttons { + min-width: 40px; /* 大幅减少最小宽度,从160px减少到40px */ + } + + /* 当任务不在悬停状态且所有按钮都是悬停显示时,进一步减少宽度 */ + .task:not(:hover) .task-buttons { + min-width: 20px; /* 非悬停状态下进一步减少宽度 */ + } + + /* 移动端任务列表显示优化 */ + /* 默认状态:隐藏所有按钮,显示元数据信息 */ + .task-buttons .btn { + display: none; + } + + .task-latest-date, + .task-latest-file { + display: inline; + } + + /* 悬停状态或展开状态:显示按钮,隐藏元数据信息 */ + .task:hover .task-buttons .btn, + .task.task-expanded .task-buttons .btn { + display: flex !important; + align-items: center; + justify-content: center; + } + + .task:hover .task-latest-date, + .task:hover .task-latest-file, + .task.task-expanded .task-latest-date, + .task.task-expanded .task-latest-file { + display: none; + } + + /* 当日更新标识在所有状态下都显示 */ + .task-today-indicator { + display: inline-block !important; + } + + /* 确保移动端Plex和AList图标样式不受影响 */ + .task-buttons .btn-outline-plex .plex-icon { + width: 10.3px; + height: auto; + object-fit: contain; + position: static; + top: auto; + } + + .task-buttons .btn-outline-alist .alist-icon { + width: 18px; + height: auto; + object-fit: contain; + position: relative; + top: -0.5px; + } +} + +/* 确保桌面端不受移动端优化影响 */ +@media (min-width: 768px) { + .task-buttons .btn { + display: flex !important; + align-items: center; + justify-content: center; + } + + .task-latest-date, + .task-latest-file { + display: inline !important; + } + + /* 确保桌面端图标样式正常 */ + .task-buttons .btn-outline-plex .plex-icon { + width: 10.3px; + height: auto; + object-fit: contain; + position: static; + top: auto; + } + + .task-buttons .btn-outline-alist .alist-icon { + width: 18px; + height: auto; + object-fit: contain; + position: relative; + top: -0.5px; + } } /* 任务最近更新日期样式 */ @@ -4153,6 +4242,17 @@ table.selectable-records .expand-button:hover { color: var(--focus-border-color); /* 备用颜色,以防渐变不支持 */ } +/* iOS Safari兼容性修复 - 只针对iOS设备使用纯色 */ +@supports (-webkit-touch-callout: none) { + @media (max-width: 767.98px) { + .task-today-indicator i { + /* 在iOS设备上使用纯色,确保可见性 */ + -webkit-text-fill-color: var(--focus-border-color); + background: none; + } + } +} + /* 当日更新图标悬停显示样式 */ .task-today-indicator.hover-only { opacity: 0; diff --git a/app/templates/index.html b/app/templates/index.html index d6a4237..c1e6127 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -2647,6 +2647,9 @@ // 检查分享链接状态 this.checkShareUrlStatus(); + + // 添加移动端任务列表展开/收起状态监听 + this.setupMobileTaskListToggle(); }, 500); }, beforeDestroy() { @@ -2655,6 +2658,27 @@ document.removeEventListener('click', this.handleOutsideClick); }, methods: { + // 设置移动端任务列表展开/收起状态监听 + setupMobileTaskListToggle() { + // 监听所有collapse事件 + $(document).on('show.bs.collapse', '[id^="collapse_"]', (e) => { + const collapseId = e.target.id; + const taskIndex = collapseId.replace('collapse_', ''); + const taskElement = $(e.target).closest('.task'); + if (taskElement.length) { + taskElement.addClass('task-expanded'); + } + }); + + $(document).on('hide.bs.collapse', '[id^="collapse_"]', (e) => { + const collapseId = e.target.id; + const taskIndex = collapseId.replace('collapse_', ''); + const taskElement = $(e.target).closest('.task'); + if (taskElement.length) { + taskElement.removeClass('task-expanded'); + } + }); + }, // 获取文件图标类名 getFileIconClass(fileName, isDir = false) { return getFileIconClass(fileName, isDir);