优化命名预览界面的重命名排序显示逻辑

This commit is contained in:
x1ao4 2025-06-20 00:37:37 +08:00
parent f0a05d5572
commit 5383f61f37
2 changed files with 25 additions and 11 deletions

View File

@ -680,7 +680,7 @@ def get_share_detail():
if any(word in item['file_name'] for word in filterwords_list):
item["filtered"] = True
# 为每个文件生成新文件名
# 为每个文件生成新文件名并存储剧集编号用于排序
for file in sorted_files:
if not file.get("filtered"):
# 获取文件扩展名
@ -694,9 +694,12 @@ def get_share_detail():
file["file_name_re"] = f"{episode_num:02d}{file_ext}"
else:
file["file_name_re"] = episode_pattern.replace("[]", f"{episode_num:02d}") + file_ext
# 存储原始的剧集编号,用于数值排序
file["episode_number"] = episode_num
else:
# 无法提取剧集号,标记为无法处理
file["file_name_re"] = "❌ 无法识别剧集号"
file["episode_number"] = 9999999 # 给一个很大的值,确保排在最后
return share_detail
else:

View File

@ -3212,14 +3212,13 @@
},
// 文件选择模态框的排序方法
sortFileList(field) {
// 如果点击了当前排序字段,则切换排序顺序
// 切换排序方向
if (this.fileSelect.sortBy === field) {
this.fileSelect.sortOrder = this.fileSelect.sortOrder === 'asc' ? 'desc' : 'asc';
} else {
// 如果点击了不同的字段,则设置为该字段并使用默认排序顺序
this.fileSelect.sortBy = field;
// 对于日期和重命名列使用降序,其他字段使用升序
this.fileSelect.sortOrder = field === 'updated_at' || field === 'file_name_re' ? 'desc' : 'asc';
// 默认降序(除了文件名外)
this.fileSelect.sortOrder = field === 'file_name' ? 'asc' : 'desc';
}
// 按选定字段和顺序对文件列表进行排序
@ -3235,9 +3234,15 @@
aValue = a.file_name.toLowerCase();
bValue = b.file_name.toLowerCase();
} else if (field === 'file_name_re') {
// 对于重命名列,使用重命名后的文件名进行排序
aValue = (a.file_name_re || '').toLowerCase();
bValue = (b.file_name_re || '').toLowerCase();
// 对于重命名列优先使用episode_number进行数值排序如果存在
if (a.episode_number !== undefined && b.episode_number !== undefined) {
aValue = a.episode_number;
bValue = b.episode_number;
} else {
// 否则使用重命名后的文件名进行字符串排序
aValue = (a.file_name_re || '').toLowerCase();
bValue = (b.file_name_re || '').toLowerCase();
}
} else if (field === 'size') {
// 对于文件大小,使用数字进行排序
if (a.dir && b.dir) {
@ -3279,9 +3284,15 @@
aValue = a.file_name.toLowerCase();
bValue = b.file_name.toLowerCase();
} else if (field === 'file_name_re') {
// 对于重命名列,使用重命名后的文件名进行排序
aValue = (a.file_name_re || '').toLowerCase();
bValue = (b.file_name_re || '').toLowerCase();
// 对于重命名列优先使用episode_number进行数值排序如果存在
if (a.episode_number !== undefined && b.episode_number !== undefined) {
aValue = a.episode_number;
bValue = b.episode_number;
} else {
// 否则使用重命名后的文件名进行字符串排序
aValue = (a.file_name_re || '').toLowerCase();
bValue = (b.file_name_re || '').toLowerCase();
}
} else if (field === 'size') {
// 对于文件大小,使用数字进行排序
if (a.dir && b.dir) {