mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-09-07 16:56:40 +08:00
feat: add reorganize preview panel and optimize dialog layout
- Add reorganize result preview panel on the right side of ReorganizeDialog - Add preview types: ManualTransferPayload, ManualTransferPreviewSummary, ManualTransferPreviewItem, ManualTransferPreviewData - Add preview-related locale keys for zh-CN, zh-TW, en-US - Optimize dialog width, split ratios, and button positions - Support horizontal scroll for before/after file name columns - Auto-calculate pagination via ResizeObserver with fixed row height - Display media info, stats, and season/episode counts in preview header - Support parallel preview requests with per-item error handling - Replace setTimeout with nextTick for DOM-dependent operations
This commit is contained in:
@@ -1311,6 +1311,57 @@ export interface TransferForm {
|
|||||||
library_category_folder?: boolean
|
library_category_folder?: boolean
|
||||||
// 剧集组编号
|
// 剧集组编号
|
||||||
episode_group?: string
|
episode_group?: string
|
||||||
|
// 预览模式
|
||||||
|
preview?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
// 手动整理请求
|
||||||
|
export interface ManualTransferPayload extends TransferForm {}
|
||||||
|
|
||||||
|
// 手动整理预览统计
|
||||||
|
export interface ManualTransferPreviewSummary {
|
||||||
|
// 总数
|
||||||
|
total: number
|
||||||
|
// 成功数
|
||||||
|
success: number
|
||||||
|
// 失败数
|
||||||
|
failed: number
|
||||||
|
}
|
||||||
|
|
||||||
|
// 手动整理预览项
|
||||||
|
export interface ManualTransferPreviewItem {
|
||||||
|
// 原始路径
|
||||||
|
source?: string
|
||||||
|
// 目标路径
|
||||||
|
target?: string
|
||||||
|
// 目标目录
|
||||||
|
target_dir?: string
|
||||||
|
// 是否成功
|
||||||
|
success?: boolean
|
||||||
|
// 提示信息
|
||||||
|
message?: string
|
||||||
|
// 媒体类型
|
||||||
|
type?: string
|
||||||
|
// 媒体标题
|
||||||
|
title?: string
|
||||||
|
// 季
|
||||||
|
season?: number | string
|
||||||
|
// 开始集
|
||||||
|
episode?: number | string
|
||||||
|
// 结束集
|
||||||
|
episode_end?: number | string
|
||||||
|
// Part
|
||||||
|
part?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// 手动整理预览数据
|
||||||
|
export interface ManualTransferPreviewData {
|
||||||
|
// 统计信息
|
||||||
|
summary: ManualTransferPreviewSummary
|
||||||
|
// 预览结果
|
||||||
|
items: ManualTransferPreviewItem[]
|
||||||
|
// 额外消息
|
||||||
|
message?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
// 整理队列
|
// 整理队列
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -2494,6 +2494,31 @@ export default {
|
|||||||
scrapeHint: 'Automatically scrape metadata after organization',
|
scrapeHint: 'Automatically scrape metadata after organization',
|
||||||
fromHistoryOption: 'Reuse Historical Recognition Info',
|
fromHistoryOption: 'Reuse Historical Recognition Info',
|
||||||
fromHistoryHint: 'Use media info already recognized in historical organization records',
|
fromHistoryHint: 'Use media info already recognized in historical organization records',
|
||||||
|
previewTitle: 'Preview Result',
|
||||||
|
previewSubtitle: 'The right panel shows the expected organization result without changing files.',
|
||||||
|
previewResult: 'Preview Result',
|
||||||
|
previewLoading: 'Generating preview result...',
|
||||||
|
previewRequestFailed: 'Preview request failed',
|
||||||
|
previewTotal: 'Total {count}',
|
||||||
|
previewSuccess: 'Success {count}',
|
||||||
|
previewFailed: 'Failed {count}',
|
||||||
|
previewSourcePath: 'Source Path',
|
||||||
|
previewTargetPath: 'Target Path',
|
||||||
|
previewMediaInfo: 'Media',
|
||||||
|
previewMediaName: 'Name',
|
||||||
|
previewMediaType: 'Type',
|
||||||
|
previewSeasonInfo: 'Season',
|
||||||
|
previewSeasonLabel: 'Season',
|
||||||
|
previewEpisodeCount: 'Episodes',
|
||||||
|
previewAfterColumn: 'After',
|
||||||
|
previewBeforeColumn: 'Before',
|
||||||
|
previewFileNameColumn: 'Filename',
|
||||||
|
previewEmptyTitle: 'No preview yet',
|
||||||
|
previewEmptyDescription: 'Click "Preview Result" below to inspect target paths and failure reasons here.',
|
||||||
|
noPreviewData: 'No preview data',
|
||||||
|
noFailedPreviewData: 'No failed items',
|
||||||
|
copySuccess: 'Path copied',
|
||||||
|
copyFailed: 'Copy failed',
|
||||||
addToQueue: 'Add to Organization Queue',
|
addToQueue: 'Add to Organization Queue',
|
||||||
reorganizeNow: 'Organize Now',
|
reorganizeNow: 'Organize Now',
|
||||||
auto: 'Auto',
|
auto: 'Auto',
|
||||||
|
|||||||
@@ -2449,6 +2449,31 @@ export default {
|
|||||||
scrapeHint: '整理完成后自动刮削元数据',
|
scrapeHint: '整理完成后自动刮削元数据',
|
||||||
fromHistoryOption: '复用历史识别信息',
|
fromHistoryOption: '复用历史识别信息',
|
||||||
fromHistoryHint: '使用历史整理记录中已识别的媒体信息',
|
fromHistoryHint: '使用历史整理记录中已识别的媒体信息',
|
||||||
|
previewTitle: '整理结果预览',
|
||||||
|
previewSubtitle: '右侧显示本次整理的预计入库结果,不会实际改动文件',
|
||||||
|
previewResult: '预览整理结果',
|
||||||
|
previewLoading: '正在生成预览结果...',
|
||||||
|
previewRequestFailed: '预览请求失败',
|
||||||
|
previewTotal: '总数 {count}',
|
||||||
|
previewSuccess: '成功 {count}',
|
||||||
|
previewFailed: '失败 {count}',
|
||||||
|
previewSourcePath: '原始路径',
|
||||||
|
previewTargetPath: '目的路径',
|
||||||
|
previewMediaInfo: '媒体信息',
|
||||||
|
previewMediaName: '名称',
|
||||||
|
previewMediaType: '类型',
|
||||||
|
previewSeasonInfo: '季信息',
|
||||||
|
previewSeasonLabel: '季',
|
||||||
|
previewEpisodeCount: '总集数',
|
||||||
|
previewAfterColumn: '整理后',
|
||||||
|
previewBeforeColumn: '整理前',
|
||||||
|
previewFileNameColumn: '文件名',
|
||||||
|
previewEmptyTitle: '尚未生成预览',
|
||||||
|
previewEmptyDescription: '点击"预览整理结果"按钮后,在这里查看整理结果预览。',
|
||||||
|
noPreviewData: '暂无预览结果',
|
||||||
|
noFailedPreviewData: '当前没有失败项',
|
||||||
|
copySuccess: '路径已复制',
|
||||||
|
copyFailed: '复制失败',
|
||||||
addToQueue: '加入整理队列',
|
addToQueue: '加入整理队列',
|
||||||
reorganizeNow: '立即整理',
|
reorganizeNow: '立即整理',
|
||||||
auto: '自动',
|
auto: '自动',
|
||||||
|
|||||||
@@ -2451,6 +2451,31 @@ export default {
|
|||||||
scrapeHint: '整理完成後自動刮削元數據',
|
scrapeHint: '整理完成後自動刮削元數據',
|
||||||
fromHistoryOption: '復用歷史識別資訊',
|
fromHistoryOption: '復用歷史識別資訊',
|
||||||
fromHistoryHint: '使用歷史整理記錄中已識別的媒體資訊',
|
fromHistoryHint: '使用歷史整理記錄中已識別的媒體資訊',
|
||||||
|
previewTitle: '整理結果預覽',
|
||||||
|
previewSubtitle: '右側顯示本次整理的預計入庫結果,不會實際改動文件',
|
||||||
|
previewResult: '預覽整理結果',
|
||||||
|
previewLoading: '正在生成預覽結果...',
|
||||||
|
previewRequestFailed: '預覽請求失敗',
|
||||||
|
previewTotal: '總數 {count}',
|
||||||
|
previewSuccess: '成功 {count}',
|
||||||
|
previewFailed: '失敗 {count}',
|
||||||
|
previewSourcePath: '原始路徑',
|
||||||
|
previewTargetPath: '目的路徑',
|
||||||
|
previewMediaInfo: '媒體資訊',
|
||||||
|
previewMediaName: '名稱',
|
||||||
|
previewMediaType: '類型',
|
||||||
|
previewSeasonInfo: '季資訊',
|
||||||
|
previewSeasonLabel: '季',
|
||||||
|
previewEpisodeCount: '總集數',
|
||||||
|
previewAfterColumn: '整理後',
|
||||||
|
previewBeforeColumn: '整理前',
|
||||||
|
previewFileNameColumn: '文件名',
|
||||||
|
previewEmptyTitle: '尚未生成預覽',
|
||||||
|
previewEmptyDescription: '點擊下方「預覽整理結果」按鈕後,在這裡查看目標路徑和失敗原因。',
|
||||||
|
noPreviewData: '暫無預覽結果',
|
||||||
|
noFailedPreviewData: '目前沒有失敗項',
|
||||||
|
copySuccess: '路徑已複製',
|
||||||
|
copyFailed: '複製失敗',
|
||||||
addToQueue: '加入整理隊列',
|
addToQueue: '加入整理隊列',
|
||||||
reorganizeNow: '立即整理',
|
reorganizeNow: '立即整理',
|
||||||
auto: '自動',
|
auto: '自動',
|
||||||
|
|||||||
Reference in New Issue
Block a user