所有页面的语法改写为setup形式;

修改了Header组件的样式、布局;
更新了IFLOW上下文;
添加了全局样式;
添加了pinia状态管理;
This commit is contained in:
User
2025-10-10 11:43:51 +08:00
parent 0d4c7353f4
commit e40288e8ef
20 changed files with 2147 additions and 1521 deletions

139
src/stores/useAppStore.js Normal file
View File

@@ -0,0 +1,139 @@
import { defineStore } from 'pinia';
import * as storage from '../utils/storage';
export const useAppStore = defineStore('app', {
state: () => ({
notes: [],
folders: [],
settings: { cloudSync: false, darkMode: false }
}),
getters: {
starredNotesCount: (state) => {
return state.notes.filter(note => note.isStarred).length;
},
allNotesCount: (state) => {
return state.notes.length;
}
},
actions: {
// 初始化数据
async loadData() {
try {
const loadedNotes = await storage.getNotes();
const loadedFolders = await storage.getFolders();
const loadedSettings = await storage.getSettings();
this.notes = loadedNotes;
this.folders = loadedFolders;
this.settings = loadedSettings;
} catch (error) {
console.error('Error loading data:', error);
}
},
// 保存notes到localStorage
async saveNotes() {
try {
await storage.saveNotes(this.notes);
} catch (error) {
console.error('Error saving notes:', error);
}
},
// 保存folders到localStorage
async saveFolders() {
try {
await storage.saveFolders(this.folders);
} catch (error) {
console.error('Error saving folders:', error);
}
},
// 保存settings到localStorage
async saveSettings() {
try {
await storage.saveSettings(this.settings);
} catch (error) {
console.error('Error saving settings:', error);
}
},
// Note functions
async addNote(note) {
try {
const newNote = await storage.addNote(note);
this.notes.push(newNote);
return newNote;
} catch (error) {
console.error('Error adding note:', error);
throw error;
}
},
async updateNote(id, updates) {
try {
const updatedNote = await storage.updateNote(id, updates);
if (updatedNote) {
const index = this.notes.findIndex(note => note.id === id);
if (index !== -1) {
this.notes[index] = updatedNote;
}
}
return updatedNote;
} catch (error) {
console.error('Error updating note:', error);
throw error;
}
},
async deleteNote(id) {
try {
const result = await storage.deleteNote(id);
if (result) {
this.notes = this.notes.filter(note => note.id !== id);
}
return result;
} catch (error) {
console.error('Error deleting note:', error);
throw error;
}
},
// Folder functions
async addFolder(folder) {
try {
const newFolder = await storage.addFolder(folder);
this.folders.push(newFolder);
return newFolder;
} catch (error) {
console.error('Error adding folder:', error);
throw error;
}
},
// Settings functions
async updateSettings(newSettings) {
try {
const updatedSettings = { ...this.settings, ...newSettings };
this.settings = updatedSettings;
await storage.saveSettings(updatedSettings);
} catch (error) {
console.error('Error updating settings:', error);
throw error;
}
},
// 切换云同步设置
async toggleCloudSync() {
await this.updateSettings({ cloudSync: !this.settings.cloudSync });
},
// 切换深色模式设置
async toggleDarkMode() {
await this.updateSettings({ darkMode: !this.settings.darkMode });
}
}
});