feat(ui): implement dashboard layout and refactor pages

This commit replaces the previous simple layout with a comprehensive dashboard interface using Nuxt UI Pro components.

- Introduced a new default layout with `UDashboardSidebar` and `UDashboardPanel`.
- Refactored the main page (`index.vue`) by splitting it into `ItemManageStatistics` and `ItemManageTable` components.
- Added new computed stats for monthly growth and total images, and displayed them in new statistic cards.
- Reorganized components from `item/` to a new `itemManage/` directory.
- Added custom primary and secondary theme colors.
This commit is contained in:
xiaomai
2025-10-21 14:16:27 +08:00
parent 802c4460a7
commit 3909f614d2
10 changed files with 451 additions and 296 deletions

View File

@@ -1,6 +1,14 @@
<template>
<div>
<main class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
<UDashboardPanel>
<template #header>
<UDashboardNavbar :title="pageTitle" toggle>
<template #leading>
<UDashboardSidebarCollapse />
</template>
</UDashboardNavbar>
</template>
<template #body>
<div class="space-y-4">
<div class="flex gap-4">
<!-- 物品列表 -->
@@ -174,11 +182,13 @@
<div>
<ExportEditModal ref="biddingItemEditModal" />
</div>
</main>
</div>
</template>
</UDashboardPanel>
</template>
<script lang="ts" setup>
const pageTitle = "导出配置";
import type { TableColumn, TableRow } from "@nuxt/ui";
import type { Table, Row } from "@tanstack/table-core";
import { useSortable } from "@vueuse/integrations/useSortable";
@@ -189,7 +199,7 @@ const { items } = useItemsStore();
const itemsList = computed(() => items.value ?? []);
const { biddingItems, addBiddingItem, removeBiddingItem } = useBiddingItems();
const biddingItemList = biddingItems
const biddingItemList = biddingItems;
const biddingItemEditModal = ref<any>(null);