优化调整

This commit is contained in:
zhongluofeng
2026-08-14 17:47:06 +08:00
parent 6c7897bf47
commit 7d49a7395f
50 changed files with 2805 additions and 259 deletions
+82 -1
View File
@@ -54,7 +54,11 @@ export const commands = {
quickpanelShowWindow: () => __TAURI_INVOKE<null>("quickpanel_show_window"),
/** 锁定屏幕(Windows: rundll32 user32.dll,LockWorkStationCREATE_NO_WINDOW 避免黑窗) */
quickpanelLockScreen: () => __TAURI_INVOKE<null>("quickpanel_lock_screen"),
/** 初始化文件索引数据库(应用启动时调用) */
/**
* 初始化文件索引数据库(应用启动时调用)。
* 若存在上次构建的索引(last_built_dirs 非空),自动恢复 notify 增量监听,
* 无需重建即可继续自动同步文件变更。
*/
quickpanelInitFileIndex: () => __TAURI_INVOKE<null>("quickpanel_init_file_index"),
/** 构建文件索引(全量重建,阻塞操作建议在 spawn_blocking 调用) */
quickpanelBuildFileIndex: () => __TAURI_INVOKE<number>("quickpanel_build_file_index"),
@@ -96,6 +100,35 @@ export const commands = {
* 适用于内置系统工具:regedit、shutdown、cmd、powershell、taskmgr 等。
*/
quickpanelRunSystemCommand: (command: string, args: string[]) => __TAURI_INVOKE<null>("quickpanel_run_system_command", { command, args }),
/** 列出目录下的压缩包文件(供批量解压面板使用)。 */
quickpanelListArchives: (dir: string) => __TAURI_INVOKE<ArchiveInfo[]>("quickpanel_list_archives", { dir }),
/** 列出目录下的全部条目(供批量重命名/删除面板使用,不含子目录递归)。 */
quickpanelListDir: (dir: string) => __TAURI_INVOKE<FileEntry[]>("quickpanel_list_dir", { dir }),
/**
* 批量解压。`files` 为压缩包路径列表,`dest_dir` 为目标目录,
* `password` 为统一解压密码(可空),`into_subfolder` 是否解压到同名子文件夹。
* 每完成一个文件通过 `quickpanel-extract-progress` 事件推送进度。
*/
quickpanelBatchExtract: (files: string[], destDir: string, password: string | null, intoSubfolder: boolean) => __TAURI_INVOKE<ExtractResult[]>("quickpanel_batch_extract", { files, destDir, password, intoSubfolder }),
/**
* 正则批量重命名预览:对每个文件名应用 `pattern → replacement`
* 仅返回有匹配的文件,`newName` 为替换结果。
*/
quickpanelPreviewRename: (files: string[], pattern: string, replacement: string) => __TAURI_INVOKE<RenamePreview[]>("quickpanel_preview_rename", { files, pattern, replacement }),
/** 执行重命名。同一目录下若目标已存在则跳过该项。 */
quickpanelApplyRename: (items: RenameItem[]) => __TAURI_INVOKE<RenameResult[]>("quickpanel_apply_rename", { items }),
/**
* 批量删除文件/目录。`force=false` 时移动至回收站;`force=true` 时先递归清除
* 只读属性再永久删除(可绕过只读/部分占用导致的删除失败,但被其他进程真正
* 锁定的文件仍会失败并返回原因)。
*/
quickpanelDeleteFiles: (paths: string[], force: boolean) => __TAURI_INVOKE<DeleteResult[]>("quickpanel_delete_files", { paths, force }),
/**
* 显示主窗口并强制置为前台。
* Tauri 的 set_focus 在 Windows 上受前台锁定限制,主窗口被其他应用遮挡时无法到前台;
* 改用原生 SetForegroundWindow + BringWindowToTop(模拟 Alt 键重置前台锁定)。
*/
quickpanelFocusMainWindow: () => __TAURI_INVOKE<null>("quickpanel_focus_main_window"),
clipboardGetHistory: (limit: number | null, offset: number | null, kind: string | null) => __TAURI_INVOKE<HistoryPage>("clipboard_get_history", { limit, offset, kind }),
clipboardGetPinned: () => __TAURI_INVOKE<ClipboardItem[]>("clipboard_get_pinned"),
clipboardSearch: (query: string, limit: number | null, offset: number | null) => __TAURI_INVOKE<HistoryPage>("clipboard_search", { query, limit, offset }),
@@ -206,6 +239,12 @@ export type AppRecord = {
path: string,
};
export type ArchiveInfo = {
name: string,
path: string,
size: number,
};
/** 前端可见的捕获数据 */
export type CaptureData = {
pngBase64: string,
@@ -280,6 +319,14 @@ export type CustomCommand = {
args?: string[],
};
/** 批量删除单个条目的结果。 */
export type DeleteResult = {
name: string,
path: string,
ok: boolean,
error: string,
};
/** 下载任务 */
export type DownloadTask = {
/** 任务 ID(自增 hex 字符串) */
@@ -350,6 +397,20 @@ export type ExistingTaskInfo = {
status: TaskStatus,
};
export type ExtractResult = {
name: string,
path: string,
ok: boolean,
error: string,
};
export type FileEntry = {
name: string,
path: string,
isDir: boolean,
size: number,
};
/** 单个文件记录(返回给前端) */
export type FileRecord = {
path: string,
@@ -449,6 +510,26 @@ export type QuickPanelSettings = {
customCommands?: CustomCommand[],
};
export type RenameItem = {
path: string,
oldName: string,
newName: string,
};
export type RenamePreview = {
path: string,
oldName: string,
newName: string,
error: string,
};
export type RenameResult = {
oldName: string,
newName: string,
ok: boolean,
error: string,
};
export type ScreenRect = {
x: number,
y: number,
+11
View File
@@ -28,6 +28,7 @@ export const EVENTS = {
quickpanelShow: 'quickpanel-show',
quickpanelHide: 'quickpanel-hide',
quickpanelExecuteCommand: 'quickpanel-execute-command',
quickpanelExtractProgress: 'quickpanel-extract-progress',
// 截图
screenshotBegin: 'screenshot-begin',
screenshotOverlayReady: 'screenshot-overlay-ready',
@@ -56,6 +57,8 @@ export const EVENTS = {
// 其他
processStatusChanged: 'process-status-changed',
downloadAdded: 'download-added',
/** 浏览器扩展通过 HTTP API 新增下载(置前主窗口并跳到下载画面) */
downloadExtensionAdded: 'download-extension-added',
} as const
/** localStorage 存储键 */
@@ -66,6 +69,14 @@ export const STORAGE_KEYS = {
quickpanelSettings: 'thing_quickpanel_settings',
quickpanelHistory: 'thing_quickpanel_history',
quickpanelHistoryItems: 'thing_quickpanel_history_items',
quickpanelPwdHistory: 'thing_quickpanel_pwd_history',
quickpanelPwdFavs: 'thing_quickpanel_pwd_favs',
quickpanelRenameMatchHistory: 'thing_quickpanel_rename_match_history',
quickpanelRenameMatchFavs: 'thing_quickpanel_rename_match_favs',
quickpanelRenameReplaceHistory: 'thing_quickpanel_rename_replace_history',
quickpanelRenameReplaceFavs: 'thing_quickpanel_rename_replace_favs',
quickpanelDeleteFilterHistory: 'thing_quickpanel_delete_filter_history',
quickpanelDeleteFilterFavs: 'thing_quickpanel_delete_filter_favs',
currencyRates: 'thing_quickpanel_currency_rates',
monitorOsdConfig: 'thing_monitor_osd_config',
screenshotHistory: 'thing_screenshot_history',
+3
View File
@@ -10,3 +10,6 @@ import { ref } from 'vue'
/** 待打开新建下载对话框(由托盘"新建下载"触发) */
export const pendingNewDownload = ref(false)
/** 待切换到下载任务列表页(由浏览器扩展新增下载触发,不弹对话框直接看任务) */
export const pendingShowDownloadTasks = ref(false)