导入事件数据
(jsonData: string)
| 216 | |
| 217 | /** 导入事件数据 */ |
| 218 | async importEvents(jsonData: string): Promise<boolean> { |
| 219 | try { |
| 220 | const events = JSON.parse(jsonData); |
| 221 | if (!Array.isArray(events)) return false; |
| 222 | |
| 223 | const existingEvents = await this.getAllEvents(); |
| 224 | const merged = [...existingEvents]; |
| 225 | |
| 226 | for (const event of events) { |
| 227 | const index = merged.findIndex(e => e.id === event.id); |
| 228 | if (index >= 0) { |
| 229 | merged[index] = event; |
| 230 | } else { |
| 231 | merged.push(event); |
| 232 | } |
| 233 | } |
| 234 | |
| 235 | localStorage.setItem(EVENTS_STORAGE_KEY, JSON.stringify(merged)); |
| 236 | return true; |
| 237 | } catch (error) { |
| 238 | console.error('导入事件失败:', error); |
| 239 | return false; |
| 240 | } |
| 241 | } |
| 242 | } |
| 243 | |
| 244 | // 单例导出 |
nothing calls this directly
no test coverage detected