From 4f44e76ef185b1729437a7003c9f5bfb585fa487 Mon Sep 17 00:00:00 2001 From: Hide_D Date: Fri, 16 Jan 2026 16:33:44 +0000 Subject: [PATCH] feat: Refactor command selection and message handling components; add main dashboard store --- .../src/components/main/CommandListPanel.vue | 87 ++------ .../src/components/main/CommandSelectForm.vue | 208 ++++++++++++++++++ .../src/components/main/MapViewer.vue | 179 +++++++++++++-- .../src/components/main/MessagePanel.vue | 194 +++++++++++----- app/game-frontend/src/stores/mainDashboard.ts | 202 +++++++++++++++++ app/game-frontend/src/views/MainView.vue | 149 +++++-------- 6 files changed, 791 insertions(+), 228 deletions(-) create mode 100644 app/game-frontend/src/components/main/CommandSelectForm.vue create mode 100644 app/game-frontend/src/stores/mainDashboard.ts diff --git a/app/game-frontend/src/components/main/CommandListPanel.vue b/app/game-frontend/src/components/main/CommandListPanel.vue index 89ae347..806626e 100644 --- a/app/game-frontend/src/components/main/CommandListPanel.vue +++ b/app/game-frontend/src/components/main/CommandListPanel.vue @@ -1,10 +1,13 @@ diff --git a/app/game-frontend/src/components/main/CommandSelectForm.vue b/app/game-frontend/src/components/main/CommandSelectForm.vue new file mode 100644 index 0000000..885dcfa --- /dev/null +++ b/app/game-frontend/src/components/main/CommandSelectForm.vue @@ -0,0 +1,208 @@ + + + + + diff --git a/app/game-frontend/src/components/main/MapViewer.vue b/app/game-frontend/src/components/main/MapViewer.vue index a996dc9..668dce6 100644 --- a/app/game-frontend/src/components/main/MapViewer.vue +++ b/app/game-frontend/src/components/main/MapViewer.vue @@ -1,21 +1,77 @@ @@ -37,25 +108,101 @@ const props = defineProps<{ .map-viewer { display: flex; flex-direction: column; - gap: 8px; + gap: 12px; +} + +.map-top { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; +} + +.map-title { + font-size: 0.95rem; + font-weight: 600; +} + +.map-controls { + display: flex; + gap: 6px; +} + +.map-toggle { + border: 1px solid rgba(201, 164, 90, 0.4); + padding: 4px 8px; + font-size: 0.75rem; + cursor: pointer; +} + +.map-toggle.active { + background: rgba(201, 164, 90, 0.2); +} + +.map-body { + display: grid; + gap: 12px; +} + +.map-placeholder { + border: 1px dashed rgba(201, 164, 90, 0.4); + padding: 12px; + display: flex; + flex-direction: column; + gap: 6px; + background: rgba(16, 16, 16, 0.6); +} + +.map-placeholder-text { + font-size: 0.85rem; + color: rgba(232, 221, 196, 0.8); } .map-meta { display: flex; - flex-wrap: wrap; gap: 12px; - font-size: 0.8rem; - color: rgba(232, 221, 196, 0.8); + font-size: 0.75rem; + color: rgba(232, 221, 196, 0.6); } -.map-placeholder { - height: 240px; - border: 1px dashed rgba(201, 164, 90, 0.4); +.city-list { display: flex; + flex-direction: column; + gap: 6px; +} + +.city-row { + display: grid; + grid-template-columns: 14px 1fr auto auto; + gap: 8px; align-items: center; - justify-content: center; + padding: 4px 6px; + border: 1px solid rgba(201, 164, 90, 0.2); + font-size: 0.75rem; +} + +.city-row.mine { + background: rgba(201, 164, 90, 0.15); +} + +.city-row .nation { + width: 12px; + height: 12px; + border: 1px solid rgba(232, 221, 196, 0.6); +} + +.city-row .name { + color: rgba(232, 221, 196, 0.9); +} + +.city-row .meta, +.city-row .state { + color: rgba(232, 221, 196, 0.6); +} + +.city-empty { + font-size: 0.8rem; color: rgba(232, 221, 196, 0.6); - background: rgba(16, 16, 16, 0.6); } .map-empty { diff --git a/app/game-frontend/src/components/main/MessagePanel.vue b/app/game-frontend/src/components/main/MessagePanel.vue index 4743452..ebd8355 100644 --- a/app/game-frontend/src/components/main/MessagePanel.vue +++ b/app/game-frontend/src/components/main/MessagePanel.vue @@ -1,10 +1,13 @@