Portal Administrativo
Frontend PWA para administradores da plataforma.
Informações Gerais
| Item | Detalhe |
|---|---|
| Versão | 2.0.0 |
| Runtime | Node.js ≥ 18 (build) + Express (serve) |
| Framework | Quasar Framework v2 / Vue.js 3 |
| Build tool | @quasar/app-webpack 3 |
| Entrega | Progressive Web App (PWA) |
| Porta | 6880 |
Arquitetura
quasar.config.js # Configuração principal
src/
├── boot/ # Inicialização global (ordem de execução)
│ ├── axios.js # Axios com interceptor JWT (axios ^1.x)
│ ├── featureFlags.js # Carregamento das feature flags
│ └── google-maps.js # Integração Google Maps (@fawmi/vue-google-maps)
├── components/ # Componentes reutilizáveis
│ ├── DrawGoogleMap.vue # Mapa Google Maps interativo
│ ├── DrawGoogleMapSimple.vue # Mapa simplificado
│ ├── MapAddPoi.vue # Adição de POIs no mapa
│ ├── MapPreview.vue # Preview de rota no mapa
│ └── MapRoutes.vue # Visualização de rotas
├── css/
│ ├── app.scss # Estilos globais
│ └── quasar.variables.scss # Variáveis de tema Quasar
├── layouts/ # Layout base da aplicação
├── pages/ # Módulos por domínio
│ ├── admin/ # Configurações administrativas
│ ├── cliente/ # Gestão de clientes
│ ├── colaborador/ # Gestão de colaboradores
│ ├── feature-flags/ # Controle de feature flags
│ ├── fretamento/ # Módulo de fretamentos
│ ├── integra-rfid/ # Integração RFID
│ ├── integracao/ # Monitoramento de integrações
│ ├── motorista/ # Gestão de motoristas
│ ├── permission/ # Controle de permissões
│ ├── poi/ # Pontos de interesse
│ ├── report/ # Relatórios
│ ├── rota/ # Gestão de rotas
│ ├── roteirizacao/ # Roteirização
│ ├── translado/ # Módulo de translados
│ ├── user/ # Perfil e usuários
│ └── veiculo/ # Gestão de veículos
├── router/ # Vue Router 4
└── store/ # Vuex 4 (auth, featureFlags)
src-pwa/ # Service Worker e configuração PWA
server.js # Servidor Express para servir o buildComunicação com o Backend
Todas as chamadas ao backend passam pelo módulo boot/axios.js, que injeta automaticamente o token JWT nas requisições (axios v1.x).
Google Maps
Integrado via @fawmi/vue-google-maps com suporte às bibliotecas:
placesgeometrydrawingdirections
Setup
bash
cd utrbus
npm install --legacy-peer-deps
# Desenvolvimento (hot-reload)
npm run dev
# Build de produção (PWA)
npm run build
# Servir o build via Express
npm startVariáveis de Ambiente
Configuradas em quasar.config.js:
- Endpoints da API
- Chave do Google Maps
Migração v1 → v2
| Aspecto | Antes (v1.x) | Agora (v2.0) |
|---|---|---|
| Quasar | v1 | v2.17 |
| Vue | 2 | 3.5 |
| Vue Router | 3 (implícito) | 4.5 (explícito) |
| Vuex | 3 (implícito) | 4.1 (explícito) |
| Node.js | não especificado | ≥ 18.x |
| Config | quasar.conf.js | quasar.config.js |
| CSS | Stylus (.styl) | SCSS (.scss) |
| axios | 0.27.x | 1.7.x |
| vue-auth | 2.x beta | 4.x |
| ESLint | 6.x | 8.x |
| Docker base | node:14-alpine | node:18-alpine (multi-stage) |
| Google Maps | — | @fawmi/vue-google-maps |