feat(ui): overhaul interface with Nuxt UI

Integrate the Nuxt UI component library and completely revamp the application's user interface to improve usability, aesthetics, and maintainability.

- Replace all custom components and native browser dialogs (`alert`, `prompt`, `confirm`) with Nuxt UI components like `UCard`, `UButton`, `UModal`, and `UNotifications`.
- Refactor the main page by extracting the sidebar into dedicated panel components: `CategoryPanel`, `BoardSummaryPanel`, and `HistoryPanel`.
- Redesign all major components (Toolbar, Board, Stage, Task) for a cleaner layout and improved information hierarchy.
- Implement user-friendly modals for all creation, editing, and deletion flows, providing a more consistent user experience.
- Add toast notifications to provide immediate feedback for user actions.
This commit is contained in:
xiaomai
2025-10-22 17:52:17 +08:00
parent 2384e42933
commit 485d75820b
19 changed files with 1823 additions and 318 deletions

19
app.vue
View File

@@ -1,11 +1,18 @@
<template>
<div class="min-h-full bg-slate-950 text-slate-100">
<NuxtPage />
</div>
<UApp>
<NuxtLayout>
<NuxtPage />
</NuxtLayout>
<UNotifications />
</UApp>
</template>
<script setup lang="ts">
const config = useRuntimeConfig().public
useHead({ title: config.appTitle })
const config = useRuntimeConfig().public;
useHead({
titleTemplate: (title) => {
if (!title || title === config.appTitle) return config.appTitle;
return `${title} · ${config.appTitle}`;
},
});
</script>