You've already forked SmartisanNote.Remake
所有页面的语法改写为setup形式;
修改了Header组件的样式、布局; 更新了IFLOW上下文; 添加了全局样式; 添加了pinia状态管理;
This commit is contained in:
139
src/stores/useAppStore.js
Normal file
139
src/stores/useAppStore.js
Normal 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 });
|
||||
}
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user