Refactor frontend to Composition API and improve UI/UX

Major Changes:
- Migrate components from Options API to Composition API with <script setup>
- Add centralized service layer (serviceService, deliveryService, adminService)
- Implement new reusable components (EnhancedButton, EnhancedModal, StatCard, etc.)
- Add theme store for consistent theming across application
- Improve ServiceCalendar with federal holidays and better styling
- Refactor customer profile and tank estimation components
- Update all delivery and payment pages to use centralized services
- Add utility functions for formatting and validation
- Update Dockerfiles for better environment configuration
- Enhance Tailwind config with custom design tokens

UI Improvements:
- Modern, premium design with glassmorphism effects
- Improved form layouts with FloatingInput components
- Better loading states and empty states
- Enhanced modals and tables with consistent styling
- Responsive design improvements across all pages

Technical Improvements:
- Strict TypeScript types throughout
- Better error handling and validation
- Removed deprecated api.js in favor of TypeScript services
- Improved code organization and maintainability
This commit is contained in:
2026-02-01 19:04:07 -05:00
parent 72d8e35e06
commit 61f93ec4e8
86 changed files with 3931 additions and 2086 deletions

View File

@@ -70,6 +70,19 @@ export const deliveryService = {
getIssues: (page: number = 1): Promise<AxiosResponse<DeliveriesResponse>> =>
api.get(`/delivery/issue/${page}`),
deleteCancelled: (id: number): Promise<AxiosResponse<{ ok: boolean }>> =>
api.delete(`/delivery/cancelled/${id}`),
// Totals
getWaitingTotals: (): Promise<AxiosResponse<{ totals: any[]; grand_total: number }>> =>
api.get('/deliverystatus/waiting-totals'),
getTodayTotals: (): Promise<AxiosResponse<{ totals: any[]; grand_total: number }>> =>
api.get('/deliverystatus/today-totals'),
getTomorrowTotals: (): Promise<AxiosResponse<{ totals: any[]; grand_total: number }>> =>
api.get('/deliverystatus/tomorrow-totals'),
// Status & totals
updateStatus: (data: { id: number; status: number }): Promise<AxiosResponse<{ ok: boolean }>> =>
api.put('/delivery/updatestatus', data),