refactor: 组件按功能分组到子目录
components/ 拆分为 5 个子目录: - layout/ TitleBar, StatusBar, Sidebar, MainArea - connection/ ConnectionList, ConnectionCard, NewConnectionDialog - key/ KeyBrowser, KeyList, KeyDetail, DbSelector - editors/ String/Hash/List/Set/Zset/Stream/ReJson Editor - views/ StatusView, CliView, SlowLogView, MemoryAnalysis, CommandLog, SettingsView 更新 4 个文件的跨目录引用 (App.vue, Sidebar, MainArea, KeyDetail) AGENTS.md 架构树同步更新
This commit is contained in:
@@ -68,30 +68,35 @@ Renderer (src/renderer/)
|
||||
│ ├── connection.ts # connections CRUD, connect/disconnect, health check
|
||||
│ └── key.ts # key list, scan, tree view, selected key data
|
||||
├── components/
|
||||
│ ├── TitleBar.vue # window controls
|
||||
│ ├── StatusBar.vue # connection status, DB selector
|
||||
│ ├── Sidebar.vue # keyboard shortcuts, dialog host
|
||||
│ ├── ConnectionList.vue # search, import/export, new button
|
||||
│ ├── ConnectionCard.vue # single connection card
|
||||
│ ├── NewConnectionDialog.vue # create/edit/test connection
|
||||
│ ├── DbSelector.vue # database 0-15 dropdown
|
||||
│ ├── MainArea.vue # tab host (Status/Keys/CLI/SlowLog/Settings)
|
||||
│ ├── layout/ # App shell
|
||||
│ │ ├── TitleBar.vue # window controls
|
||||
│ │ ├── StatusBar.vue # connection status
|
||||
│ │ ├── Sidebar.vue # connection list host, keyboard shortcuts
|
||||
│ │ └── MainArea.vue # tab host (Status/Keys/CLI/SlowLog/Settings)
|
||||
│ ├── connection/ # Connection management
|
||||
│ │ ├── ConnectionList.vue # search, import/export, context menu
|
||||
│ │ ├── ConnectionCard.vue # single connection card
|
||||
│ │ └── NewConnectionDialog.vue # create/edit/test connection
|
||||
│ ├── key/ # Key browsing
|
||||
│ │ ├── KeyBrowser.vue # split pane (KeyList + KeyDetail)
|
||||
│ │ ├── KeyList.vue # tree view, SCAN, filter, multi-select
|
||||
│ │ ├── KeyDetail.vue # type dispatch, TTL, rename, copy
|
||||
│ │ └── DbSelector.vue # database 0-15 dropdown
|
||||
│ ├── editors/ # Type-specific value editors
|
||||
│ │ ├── StringEditor.vue # view/edit with JSON format
|
||||
│ │ ├── HashEditor.vue # field table CRUD
|
||||
│ │ ├── ListEditor.vue # paginated elements
|
||||
│ │ ├── SetEditor.vue # member list
|
||||
│ │ ├── ZsetEditor.vue # sorted set with scores
|
||||
│ │ ├── StreamEditor.vue # stream entries
|
||||
│ │ └── ReJsonEditor.vue # JSON.GET / JSON.SET editing
|
||||
│ └── views/ # Tab content views
|
||||
│ ├── StatusView.vue # INFO dashboard with stat cards
|
||||
│ ├── KeyBrowser.vue # split pane (KeyList + KeyDetail)
|
||||
│ ├── KeyList.vue # pattern search, filter, SCAN, multi-select
|
||||
│ ├── KeyDetail.vue # type dispatch, TTL, rename, copy
|
||||
│ ├── StringEditor.vue # view/edit with JSON format
|
||||
│ ├── HashEditor.vue # field table CRUD
|
||||
│ ├── ListEditor.vue # paginated elements
|
||||
│ ├── SetEditor.vue # member list
|
||||
│ ├── ZsetEditor.vue # sorted set with scores
|
||||
│ ├── StreamEditor.vue # stream entries
|
||||
│ ├── CliView.vue # interactive terminal
|
||||
│ ├── SlowLogView.vue # slow log table
|
||||
│ ├── SettingsView.vue # theme, language, scan count
|
||||
│ ├── MemoryAnalysis.vue # MEMORY USAGE scan & sort
|
||||
│ ├── CommandLog.vue # command execution history
|
||||
│ └── ReJsonEditor.vue # JSON.GET / JSON.SET editing
|
||||
│ └── SettingsView.vue # theme, language, font
|
||||
├── i18n/
|
||||
│ ├── index.ts # useI18n composable
|
||||
│ └── locales/
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<script setup lang="ts">
|
||||
import { ref, onMounted } from 'vue'
|
||||
import TitleBar from './components/TitleBar.vue'
|
||||
import Sidebar from './components/Sidebar.vue'
|
||||
import MainArea from './components/MainArea.vue'
|
||||
import StatusBar from './components/StatusBar.vue'
|
||||
import TitleBar from './components/layout/TitleBar.vue'
|
||||
import Sidebar from './components/layout/Sidebar.vue'
|
||||
import MainArea from './components/layout/MainArea.vue'
|
||||
import StatusBar from './components/layout/StatusBar.vue'
|
||||
import { useConnectionStore } from '@renderer/stores/connection'
|
||||
|
||||
const connStore = useConnectionStore()
|
||||
|
||||
+7
-7
@@ -5,13 +5,13 @@ import { useConnectionStore } from '@renderer/stores/connection'
|
||||
import { useI18n } from '@renderer/i18n'
|
||||
import { formatKeyName, isBinaryKey } from '@renderer/utils/binary'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import StringEditor from './StringEditor.vue'
|
||||
import HashEditor from './HashEditor.vue'
|
||||
import ListEditor from './ListEditor.vue'
|
||||
import SetEditor from './SetEditor.vue'
|
||||
import ZsetEditor from './ZsetEditor.vue'
|
||||
import StreamEditor from './StreamEditor.vue'
|
||||
import ReJsonEditor from './ReJsonEditor.vue'
|
||||
import StringEditor from '../editors/StringEditor.vue'
|
||||
import HashEditor from '../editors/HashEditor.vue'
|
||||
import ListEditor from '../editors/ListEditor.vue'
|
||||
import SetEditor from '../editors/SetEditor.vue'
|
||||
import ZsetEditor from '../editors/ZsetEditor.vue'
|
||||
import StreamEditor from '../editors/StreamEditor.vue'
|
||||
import ReJsonEditor from '../editors/ReJsonEditor.vue'
|
||||
|
||||
const keyStore = useKeyStore()
|
||||
const connStore = useConnectionStore()
|
||||
+7
-7
@@ -2,13 +2,13 @@
|
||||
import { ref, watch, computed, nextTick, onMounted, onUnmounted } from 'vue'
|
||||
import { useConnectionStore } from '@renderer/stores/connection'
|
||||
import { useI18n } from '@renderer/i18n'
|
||||
import StatusView from './StatusView.vue'
|
||||
import KeyBrowser from './KeyBrowser.vue'
|
||||
import CliView from './CliView.vue'
|
||||
import SlowLogView from './SlowLogView.vue'
|
||||
import MemoryAnalysis from './MemoryAnalysis.vue'
|
||||
import SettingsView from './SettingsView.vue'
|
||||
import DbSelector from './DbSelector.vue'
|
||||
import StatusView from '../views/StatusView.vue'
|
||||
import KeyBrowser from '../key/KeyBrowser.vue'
|
||||
import CliView from '../views/CliView.vue'
|
||||
import SlowLogView from '../views/SlowLogView.vue'
|
||||
import MemoryAnalysis from '../views/MemoryAnalysis.vue'
|
||||
import SettingsView from '../views/SettingsView.vue'
|
||||
import DbSelector from '../key/DbSelector.vue'
|
||||
|
||||
const connStore = useConnectionStore()
|
||||
const { t } = useI18n()
|
||||
+3
-3
@@ -1,8 +1,8 @@
|
||||
<script setup lang="ts">
|
||||
import { ref, onMounted, onUnmounted } from 'vue'
|
||||
import ConnectionList from './ConnectionList.vue'
|
||||
import NewConnectionDialog from './NewConnectionDialog.vue'
|
||||
import CommandLog from './CommandLog.vue'
|
||||
import ConnectionList from '../connection/ConnectionList.vue'
|
||||
import NewConnectionDialog from '../connection/NewConnectionDialog.vue'
|
||||
import CommandLog from '../views/CommandLog.vue'
|
||||
import { useConnectionStore } from '@renderer/stores/connection'
|
||||
import { useKeyStore } from '@renderer/stores/key'
|
||||
import { useI18n } from '@renderer/i18n'
|
||||
Reference in New Issue
Block a user