From 62fa776ec360587f235e39098ec64e1f16bd1663 Mon Sep 17 00:00:00 2001 From: x1ao4 Date: Sat, 9 Aug 2025 22:43:30 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=B5=E5=BD=B1?= =?UTF-8?q?=E5=91=BD=E5=90=8D=E8=A7=84=E5=88=99=E7=A9=BA=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E8=A2=AB=E5=BC=BA=E5=88=B6=E8=A6=86=E7=9B=96=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/templates/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/templates/index.html b/app/templates/index.html index c000b2c..1c89c35 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -3185,11 +3185,11 @@ auto_search_resources: "enabled" }; } - // 确保电影命名规则字段存在 - if (!config_data.task_settings.movie_naming_pattern) { + // 确保电影命名规则字段存在,只在字段不存在时设置默认值,允许用户设置为空字符串 + if (config_data.task_settings.movie_naming_pattern === undefined) { config_data.task_settings.movie_naming_pattern = "^(.*)\\.([^.]+)"; } - if (!config_data.task_settings.movie_naming_replace) { + if (config_data.task_settings.movie_naming_replace === undefined) { config_data.task_settings.movie_naming_replace = "片名 (年份).\\2"; } // 确保电视忽略后缀设置存在 From 2283747d6c8d9c48a7a781a66d3bfdb26e2d4839 Mon Sep 17 00:00:00 2001 From: x1ao4 Date: Sat, 9 Aug 2025 23:39:28 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E5=88=86=E9=A1=B5=E5=AF=BC=E8=88=AA=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=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 | 13 +++ app/templates/index.html | 174 +++++++++++++++++++++++++++------------ 2 files changed, 133 insertions(+), 54 deletions(-) diff --git a/app/static/css/main.css b/app/static/css/main.css index cd4eb25..d9964a3 100644 --- a/app/static/css/main.css +++ b/app/static/css/main.css @@ -2885,6 +2885,19 @@ div.jsoneditor-treepath * { .pagination-settings .dropdown-toggle { height: 32px; } + + /* 移动端分页按钮优化:确保不换行 */ + .pagination-controls { + flex-wrap: nowrap !important; /* 强制不换行 */ + max-width: 100%; + overflow-x: auto; + scrollbar-width: none; /* Firefox */ + -ms-overflow-style: none; /* IE and Edge */ + } + + .pagination-controls::-webkit-scrollbar { + display: none; /* Chrome, Safari and Opera */ + } } .pagination-settings { diff --git a/app/templates/index.html b/app/templates/index.html index 1c89c35..27c0d02 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -5017,31 +5017,54 @@ getVisiblePageNumbers() { const current = parseInt(this.historyParams.page) || 1; const total = parseInt(this.totalPages) || 1; - const delta = 2; // 当前页左右显示的页码数 + // 根据屏幕宽度动态调整显示的页码数:移动端显示较少页码,桌面端显示较多页码 + const isMobile = window.innerWidth <= 768; + const delta = isMobile ? 1 : 2; // 移动端左右各显示1个页码,桌面端左右各显示2个页码 // 处理特殊情况 if (total <= 1) return []; let range = []; - // 确定显示范围 - let rangeStart = Math.max(2, current - delta); - let rangeEnd = Math.min(total - 1, current + delta); - - // 调整范围,确保显示足够的页码 - if (rangeEnd - rangeStart < delta * 2) { - if (current - rangeStart < delta) { - // 当前页靠近开始,扩展结束范围 - rangeEnd = Math.min(total - 1, rangeStart + delta * 2); + // 移动端简化逻辑:只显示当前页附近的少数页码 + if (isMobile) { + // 移动端:最多显示4个中间页码按钮(不包括第1页和最后1页),总共5个页码 + if (current <= 4) { + // 当前页在前面时,显示 1, 2, 3, 4 + for (let i = 2; i <= Math.min(4, total - 1); i++) { + range.push(i); + } + } else if (current >= total - 3) { + // 当前页在后面时,显示倒数几页 + for (let i = Math.max(2, total - 3); i <= total - 1; i++) { + range.push(i); + } } else { - // 当前页靠近结束,扩展开始范围 - rangeStart = Math.max(2, rangeEnd - delta * 2); + // 当前页在中间时,显示当前页前后各1页,总共3个中间页码 + range.push(current - 1); + range.push(current); + range.push(current + 1); + } + } else { + // 桌面端保持原有逻辑 + let rangeStart = Math.max(2, current - delta); + let rangeEnd = Math.min(total - 1, current + delta); + + // 调整范围,确保显示足够的页码 + if (rangeEnd - rangeStart < delta * 2) { + if (current - rangeStart < delta) { + // 当前页靠近开始,扩展结束范围 + rangeEnd = Math.min(total - 1, rangeStart + delta * 2); + } else { + // 当前页靠近结束,扩展开始范围 + rangeStart = Math.max(2, rangeEnd - delta * 2); + } + } + + // 生成页码数组 + for (let i = rangeStart; i <= rangeEnd; i++) { + range.push(i); } - } - - // 生成页码数组 - for (let i = rangeStart; i <= rangeEnd; i++) { - range.push(i); } return range; @@ -6273,31 +6296,54 @@ getVisibleFolderPageNumbers() { const current = parseInt(this.fileManager.currentPage) || 1; const total = parseInt(this.fileManager.totalPages) || 1; - const delta = 2; // 当前页左右显示的页码数 + // 根据屏幕宽度动态调整显示的页码数:移动端显示较少页码,桌面端显示较多页码 + const isMobile = window.innerWidth <= 768; + const delta = isMobile ? 1 : 2; // 移动端左右各显示1个页码,桌面端左右各显示2个页码 // 处理特殊情况 if (total <= 1) return []; let range = []; - // 确定显示范围 - let rangeStart = Math.max(2, current - delta); - let rangeEnd = Math.min(total - 1, current + delta); - - // 调整范围,确保显示足够的页码 - if (rangeEnd - rangeStart < delta * 2) { - if (current - rangeStart < delta) { - // 当前页靠近开始,扩展结束范围 - rangeEnd = Math.min(total - 1, rangeStart + delta * 2); + // 移动端简化逻辑:只显示当前页附近的少数页码 + if (isMobile) { + // 移动端:最多显示4个中间页码按钮(不包括第1页和最后1页),总共5个页码 + if (current <= 4) { + // 当前页在前面时,显示 1, 2, 3, 4 + for (let i = 2; i <= Math.min(4, total - 1); i++) { + range.push(i); + } + } else if (current >= total - 3) { + // 当前页在后面时,显示倒数几页 + for (let i = Math.max(2, total - 3); i <= total - 1; i++) { + range.push(i); + } } else { - // 当前页靠近结束,扩展开始范围 - rangeStart = Math.max(2, rangeEnd - delta * 2); + // 当前页在中间时,显示当前页前后各1页,总共3个中间页码 + range.push(current - 1); + range.push(current); + range.push(current + 1); + } + } else { + // 桌面端保持原有逻辑 + let rangeStart = Math.max(2, current - delta); + let rangeEnd = Math.min(total - 1, current + delta); + + // 调整范围,确保显示足够的页码 + if (rangeEnd - rangeStart < delta * 2) { + if (current - rangeStart < delta) { + // 当前页靠近开始,扩展结束范围 + rangeEnd = Math.min(total - 1, rangeStart + delta * 2); + } else { + // 当前页靠近结束,扩展开始范围 + rangeStart = Math.max(2, rangeEnd - delta * 2); + } + } + + // 生成页码数组 + for (let i = rangeStart; i <= rangeEnd; i++) { + range.push(i); } - } - - // 生成页码数组 - for (let i = rangeStart; i <= rangeEnd; i++) { - range.push(i); } return range; @@ -6864,34 +6910,54 @@ getVisibleFolderPageNumbers() { const current = parseInt(this.fileManager.currentPage) || 1; const total = parseInt(this.fileManager.totalPages) || 1; - const delta = 2; // 当前页左右显示的页码数 + // 根据屏幕宽度动态调整显示的页码数:移动端显示较少页码,桌面端显示较多页码 + const isMobile = window.innerWidth <= 768; + const delta = isMobile ? 1 : 2; // 移动端左右各显示1个页码,桌面端左右各显示2个页码 // 处理特殊情况 if (total <= 1) return []; - if (total <= 5) { - return Array.from({ length: total - 2 }, (_, i) => i + 2); - } let range = []; - // 确定显示范围 - let rangeStart = Math.max(2, current - delta); - let rangeEnd = Math.min(total - 1, current + delta); - - // 调整范围,确保显示足够的页码 - if (rangeEnd - rangeStart < delta * 2) { - if (current - rangeStart < delta) { - // 当前页靠近开始,扩展结束范围 - rangeEnd = Math.min(total - 1, rangeStart + delta * 2); + // 移动端简化逻辑:只显示当前页附近的少数页码 + if (isMobile) { + // 移动端:最多显示4个中间页码按钮(不包括第1页和最后1页),总共5个页码 + if (current <= 4) { + // 当前页在前面时,显示 1, 2, 3, 4 + for (let i = 2; i <= Math.min(4, total - 1); i++) { + range.push(i); + } + } else if (current >= total - 3) { + // 当前页在后面时,显示倒数几页 + for (let i = Math.max(2, total - 3); i <= total - 1; i++) { + range.push(i); + } } else { - // 当前页靠近结束,扩展开始范围 - rangeStart = Math.max(2, rangeEnd - delta * 2); + // 当前页在中间时,显示当前页前后各1页,总共3个中间页码 + range.push(current - 1); + range.push(current); + range.push(current + 1); + } + } else { + // 桌面端保持原有逻辑 + let rangeStart = Math.max(2, current - delta); + let rangeEnd = Math.min(total - 1, current + delta); + + // 调整范围,确保显示足够的页码 + if (rangeEnd - rangeStart < delta * 2) { + if (current - rangeStart < delta) { + // 当前页靠近开始,扩展结束范围 + rangeEnd = Math.min(total - 1, rangeStart + delta * 2); + } else { + // 当前页靠近结束,扩展开始范围 + rangeStart = Math.max(2, rangeEnd - delta * 2); + } + } + + // 生成页码数组 + for (let i = rangeStart; i <= rangeEnd; i++) { + range.push(i); } - } - - // 生成页码数组 - for (let i = rangeStart; i <= rangeEnd; i++) { - range.push(i); } return range;