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

@@ -1,5 +1,5 @@
<template>
<footer class="footer p-10 bg-neutral text-neutral-content mt-20 bg-secondary">
<footer class="footer p-10 bg-secondary text-neutral-content">
<nav>
<h6 class="footer-title">Social</h6>
<a class="link link-hover" href="https://www.facebook.com/auburnoil">Facebook</a>
@@ -25,29 +25,17 @@
</template>
<script lang="ts">
import { defineComponent } from 'vue'
<script setup lang="ts">
import { ref } from 'vue';
export default defineComponent({
name: 'Footer',
data() {
return {
user: null,
}
},
mounted() { },
methods: {
async copyReviewLink() {
try {
await navigator.clipboard.writeText('https://g.page/r/CZHnPQ85LsMUEBM/review')
alert('Link copied to clipboard!')
} catch (err) {
console.error('Failed to copy text: ', err)
alert('Failed to copy link. Please try again.')
}
},
},
})
const copyReviewLink = async () => {
try {
await navigator.clipboard.writeText('https://g.page/r/CZHnPQ85LsMUEBM/review')
alert('Link copied to clipboard!')
} catch (err) {
console.error('Failed to copy text: ', err)
alert('Failed to copy link. Please try again.')
}
};
</script>
<style></style>