From f0112ffcd43fa335d08d76695de11af5aa970f38 Mon Sep 17 00:00:00 2001 From: Julian Freeman Date: Sun, 22 Mar 2026 19:32:49 -0400 Subject: [PATCH] save json --- src-tauri/src/engine.rs | 5 +++++ src-tauri/src/lib.rs | 3 ++- src/App.vue | 3 +-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src-tauri/src/engine.rs b/src-tauri/src/engine.rs index 2bd8609..b4f3c7f 100644 --- a/src-tauri/src/engine.rs +++ b/src-tauri/src/engine.rs @@ -168,6 +168,11 @@ pub fn get_timeline(date: String, base_dir: String) -> Vec { results } +#[tauri::command] +pub fn write_file(path: String, content: String) -> Result<(), String> { + std::fs::write(&path, content).map_err(|e| e.to_string()) +} + pub fn start_engine(app: AppHandle) { // Start Cleanup routine let app_cleanup = app.clone(); diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 76b869d..4305e31 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -30,7 +30,8 @@ pub fn run() { engine::get_events, engine::get_events_range, engine::save_event, - engine::delete_event + engine::delete_event, + engine::write_file ]) .setup(|app| { app.manage(engine::AppState { diff --git a/src/App.vue b/src/App.vue index 38d2226..b6927b5 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,7 +2,6 @@ import { ref, onMounted, onUnmounted, computed, nextTick } from "vue"; import { load } from "@tauri-apps/plugin-store"; import { open, save } from "@tauri-apps/plugin-dialog"; -import { writeTextFile } from "@tauri-apps/plugin-fs"; import { invoke } from "@tauri-apps/api/core"; import { listen } from "@tauri-apps/api/event"; import { Tag as TagIcon, FolderOpen, Settings, Play, Pause, Maximize2, X, RefreshCw, Plus, Trash2, ChevronDown, ChevronLeft, ChevronRight, Calendar, Download } from "lucide-vue-next"; @@ -380,7 +379,7 @@ const handleExport = async () => { content: e.content })); - await writeTextFile(savePath, JSON.stringify(exportData, null, 2)); + await invoke("write_file", { path: savePath, content: JSON.stringify(exportData, null, 2) }); isExportModalOpen.value = false; showToast("导出成功"); }