Compare commits

...

7 Commits

Author SHA1 Message Date
x1ao4
b8fd00de2b
Merge pull request #45 from x1ao4/dev
优化任务列表空间利用,解决长任务名换行问题
2025-07-16 00:15:33 +08:00
x1ao4
80cfb42f82 优化任务列表空间利用,解决长任务名换行问题
- 默认状态完全隐藏按钮容器 (display: none)
- 悬停/展开时动态显示并优化左侧空间占用
- 覆盖 Bootstrap col-auto 样式,减少不必要的空间占用
- 仅影响移动端,桌面端不受影响
2025-07-16 00:06:34 +08:00
x1ao4
d045463fa7
Merge pull request #44 from x1ao4/dev
优化任务列表和海报墙,修复 iOS 当日更新标识问题
2025-07-15 22:50:53 +08:00
x1ao4
41c09f78f1 优化移动端任务列表显示效果,修复 iOS 当日更新标识显示问题
## 移动端任务列表交互优化
- 默认状态:隐藏按钮,显示任务元数据(最近文件、更新日期、当日标识)
- 悬停/展开状态:显示按钮,隐藏元数据,保持当日更新标识可见

## iOS 兼容性修复
- 针对 iOS 不支持渐变文本的问题,使用纯色当日更新标识
- 其他设备保持原有渐变效果不变
2025-07-15 22:42:52 +08:00
x1ao4
fcdec5e58a 切换到任务列表页面时自动刷新任务数据
- 在 activeTab 监听器和 changeTab 函数中添加对 tasklist 页面的检测
- 切换到任务列表时自动调用 loadTaskLatestInfo() 刷新最新转存文件和更新日期
- 保持与转存记录页面一致的用户体验,确保显示最新数据
2025-07-15 02:42:43 +08:00
x1ao4
48f771063b 优化影视发现页面海报墙的显示效果
- 缩小海报墙行距,微调影视类型文本的颜色
- 当存在多个导演时,最多只显示前两位导演的名字
2025-07-15 02:16:26 +08:00
x1ao4
351b4df844
Merge pull request #43 from x1ao4/x
解决和原版 Cookie 的冲突问题,避免双持用户相互挤掉登录状态
2025-07-14 18:29:33 +08:00
2 changed files with 174 additions and 8 deletions

View File

@ -4084,7 +4084,7 @@ table.selectable-records .expand-button:hover {
position: static;
}
/* 确保按钮容器在悬停时保持宽度 */
/* 确保按钮容器在悬停时保持宽度 - 桌面端 */
.task-buttons {
position: relative;
min-width: 160px; /* 根据按钮数量和间距调整 */
@ -4104,6 +4104,114 @@ table.selectable-records .expand-button:hover {
.task .col-auto.task-buttons {
padding-right: 15px; /* 与添加任务按钮的右边距保持一致 */
}
/* 移动端优化:当所有按钮都是悬停显示时,减少按钮容器的最小宽度 */
.task-buttons {
min-width: 40px; /* 大幅减少最小宽度从160px减少到40px */
}
/* 当任务不在悬停状态且所有按钮都是悬停显示时,完全隐藏按钮容器 */
.task:not(:hover):not(.task-expanded) .task-buttons {
display: none; /* 完全隐藏按钮容器,释放所有空间 */
}
/* 移动端任务列表显示优化 */
/* 默认状态:隐藏所有按钮,显示元数据信息 */
.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-buttons,
.task.task-expanded .task-buttons {
display: flex !important; /* 恢复显示 */
min-width: 40px !important;
padding-right: 15px !important;
padding-left: 0 !important; /* 移除左内边距 */
margin-left: 0 !important; /* 移除左外边距 */
justify-content: flex-end; /* 按钮右对齐 */
}
/* 针对移动端覆盖Bootstrap col-auto的默认样式 */
.task:hover .col-auto.task-buttons,
.task.task-expanded .col-auto.task-buttons {
flex: 0 0 auto !important; /* 不伸缩,仅占用内容宽度 */
width: auto !important; /* 自动宽度 */
max-width: none !important; /* 移除最大宽度限制 */
}
.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 +4261,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;
@ -5970,7 +6089,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 +6230,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 +6251,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 {

View File

@ -602,7 +602,7 @@
</div>
<!-- 任务设置模块 -->
<div class="row title" title="配置影视发现页面创建任务时的智能填充规则,包括各类型内容的保存路径格式和命名规则">
<div class="row title" title="配置影视发现页面创建任务时的智能填充规则,请使用你的网盘目录替换默认的目录前缀否则将自动继承任务列表最后一个任务的保存路径查阅Wiki了解详情">
<div class="col">
<h2 style="display: inline-block; font-size: 1.5rem;">任务设置</h2>
<span class="badge badge-pill badge-light">
@ -2475,6 +2475,10 @@
}
},
activeTab(newValue, oldValue) {
// 如果切换到任务列表页面,则刷新任务最新信息
if (newValue === 'tasklist') {
this.loadTaskLatestInfo();
}
// 如果切换到文件整理页面,则加载文件列表
if (newValue === 'filemanager') {
this.fetchAccountsDetail();
@ -2643,6 +2647,9 @@
// 检查分享链接状态
this.checkShareUrlStatus();
// 添加移动端任务列表展开/收起状态监听
this.setupMobileTaskListToggle();
}, 500);
},
beforeDestroy() {
@ -2651,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);
@ -3038,14 +3066,19 @@
if (window.innerWidth <= 768) {
$('#sidebarMenu').collapse('toggle')
}
// 当切换到任务列表标签时刷新任务最新信息
if (tab === 'tasklist') {
this.loadTaskLatestInfo();
}
// 当切换到历史记录标签时加载数据
if (tab === 'history') {
this.loadHistoryRecords();
// 加载所有任务名称用于筛选
this.loadAllTaskNames();
}
// 当切换到文件整理标签时加载文件列表
if (tab === 'filemanager') {
// 从本地存储中恢复文件管理器的分页大小设置
@ -7209,7 +7242,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]); // 主演