From f80f277660801c6dfca532fcbaa7c328aaf07ee9 Mon Sep 17 00:00:00 2001 From: Artur Oliveira Date: Thu, 14 Aug 2025 13:04:17 -0300 Subject: [PATCH] feat: implementa dashboard de monitoramento de servidores MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Adiciona biblioteca lucide-vue-next para ícones modernos - Cria componente ServerCard com informações detalhadas: * Exibe nome, IP e status do servidor * Barras de progresso para RAM e armazenamento * Cores dinâmicas baseadas na porcentagem de uso * Informações detalhadas de memória (livre, cache) - Aprimora SidePanel com funcionalidade de colapsar: * Botão para expandir/recolher o painel lateral * Ícones lucide para navegação (Dashboard, Settings) * Estados ativos baseados na rota atual - Implementa dados mock para 4 servidores de exemplo - Atualiza Dashboard com layout em grid dos cards de servidor --- package.json | 1 + src/components/ServerCard.vue | 90 +++++++++++++++++++++++++++++++++++ src/components/SidePanel.vue | 57 +++++++++++++++++----- src/mocks/mockServersList.ts | 58 ++++++++++++++++++++++ src/pages/Dashboard.vue | 8 +++- yarn.lock | 5 ++ 6 files changed, 205 insertions(+), 14 deletions(-) create mode 100644 src/components/ServerCard.vue create mode 100644 src/mocks/mockServersList.ts diff --git a/package.json b/package.json index 9d39722..44037bf 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "preview": "vite preview" }, "dependencies": { + "lucide-vue-next": "^0.539.0", "vue": "^3.5.18", "vue-router": "4" }, diff --git a/src/components/ServerCard.vue b/src/components/ServerCard.vue new file mode 100644 index 0000000..f8bbee9 --- /dev/null +++ b/src/components/ServerCard.vue @@ -0,0 +1,90 @@ + + + \ No newline at end of file diff --git a/src/components/SidePanel.vue b/src/components/SidePanel.vue index 6140329..4cef0d4 100644 --- a/src/components/SidePanel.vue +++ b/src/components/SidePanel.vue @@ -1,22 +1,53 @@ \ No newline at end of file diff --git a/src/mocks/mockServersList.ts b/src/mocks/mockServersList.ts new file mode 100644 index 0000000..5c007ec --- /dev/null +++ b/src/mocks/mockServersList.ts @@ -0,0 +1,58 @@ +export interface ServerData { + name: string; + ip: string; + totalRam: string; + totalRamUsed: string; + cachedRam: string; + freeRam: string; + totalStorage: string; + usedStorage: string; + freeStorage: string; +} + +export const mockServersList: ServerData[] = [ + { + name: "Servidor Web 01", + ip: "192.168.1.10", + totalRam: "16GB", + totalRamUsed: "8.5GB", + cachedRam: "2.1GB", + freeRam: "7.5GB", + totalStorage: "500GB", + usedStorage: "320GB", + freeStorage: "180GB" + }, + { + name: "Servidor BD Principal", + ip: "192.168.1.11", + totalRam: "32GB", + totalRamUsed: "24.2GB", + cachedRam: "4.8GB", + freeRam: "7.8GB", + totalStorage: "1TB", + usedStorage: "750GB", + freeStorage: "250GB" + }, + { + name: "Servidor API", + ip: "192.168.1.12", + totalRam: "8GB", + totalRamUsed: "3.2GB", + cachedRam: "1.1GB", + freeRam: "4.8GB", + totalStorage: "250GB", + usedStorage: "120GB", + freeStorage: "130GB" + }, + { + name: "Servidor Backup", + ip: "192.168.1.13", + totalRam: "16GB", + totalRamUsed: "5.1GB", + cachedRam: "2.5GB", + freeRam: "10.9GB", + totalStorage: "2TB", + usedStorage: "1.2TB", + freeStorage: "800GB" + } +]; diff --git a/src/pages/Dashboard.vue b/src/pages/Dashboard.vue index 38e1189..b132db4 100644 --- a/src/pages/Dashboard.vue +++ b/src/pages/Dashboard.vue @@ -1,8 +1,14 @@ diff --git a/yarn.lock b/yarn.lock index c7886ea..5b1d498 100644 --- a/yarn.lock +++ b/yarn.lock @@ -871,6 +871,11 @@ lru-cache@^10.2.0: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== +lucide-vue-next@^0.539.0: + version "0.539.0" + resolved "https://registry.yarnpkg.com/lucide-vue-next/-/lucide-vue-next-0.539.0.tgz#e10c39ab86f08f9fee9180df9c3c8e89c65632ee" + integrity sha512-8Y75ekxsBqW+9YZPCbxE6KXoCbNmJYUujKP+nK2cIqmONJXvUSeyroEW4DV1Kjlw8ZvmfKwP0FpdjPzuKvRsQw== + magic-string@^0.30.17: version "0.30.17" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453"