feat(phase3): key browser MVP

- useKeyStore (Pinia): scan, tree view, key data cache, db switching
- KeyBrowser: split pane with KeyList + KeyDetail
- KeyList: SCAN pagination, filter, tree toggle, load more
- KeyDetail: type badge, TTL display, delete, type-based editor dispatch
- StringEditor: view/edit with JSON auto-format
- HashEditor: field table, add/edit/delete fields
- StatusView: INFO dashboard with stat cards + section grid
- MainArea: tab host (Status / Keys)
- RedisService: selectDb, dbSize
- Preload: selectDb, dbSize IPC channels
- App.vue updated with MainArea layout
This commit is contained in:
2026-07-04 17:48:41 +08:00
parent 4f9398c65d
commit 272eb6b3af
14 changed files with 1210 additions and 91 deletions
+3
View File
@@ -52,6 +52,9 @@ const electronAPI = {
ipcRenderer.invoke('redis:hashDel', id, key, field),
setTTL: (id: string, key: string, ttl: number): Promise<void> =>
ipcRenderer.invoke('redis:setTTL', id, key, ttl),
selectDb: (id: string, db: number): Promise<void> =>
ipcRenderer.invoke('redis:selectDb', id, db),
dbSize: (id: string): Promise<number> => ipcRenderer.invoke('redis:dbSize', id),
},
}