This commit is contained in:
2026-05-11 00:32:03 +08:00
parent 2535bec2ed
commit 10022ae048
32 changed files with 2450 additions and 203 deletions
@@ -0,0 +1,76 @@
<script setup lang="ts">
import { computed } from "vue";
import { Hammer, ShieldCheck, Sparkles } from "lucide-vue-next";
import { useConfigStore, useInfoStore } from "@/stores";
import { Button } from "@/components/ui/button";
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
const configStore = useConfigStore();
const infoStore = useInfoStore();
const summary = computed(() => {
const equipCount = Object.values(configStore.config.equips || {}).filter(
(item) => !!item.id,
).length;
const avatarCount = Object.values(configStore.config.avatar || {}).filter(
(item) => !!item.id,
).length;
const oathCount = Object.values(configStore.config.oaths || {}).filter(
(item) => !!item.id,
).length;
return {
equipCount,
avatarCount,
oathCount,
emblemSlots: infoStore.emblemParts.length,
};
});
</script>
<template>
<div class="grid grid-cols-1 gap-4 lg:grid-cols-3">
<Card>
<CardHeader>
<CardTitle class="flex items-center gap-2">
<Hammer class="size-4" />
装备打造
</CardTitle>
<CardDescription>已迁移基础统计,后续补齐增幅/强化/锻造编辑器。</CardDescription>
</CardHeader>
<CardContent class="space-y-2 text-sm text-muted-foreground">
<div>已配置装备: {{ summary.equipCount }}</div>
<div>誓约槽位: {{ summary.oathCount }}</div>
</CardContent>
</Card>
<Card>
<CardHeader>
<CardTitle class="flex items-center gap-2">
<Sparkles class="size-4" />
时装与徽章
</CardTitle>
<CardDescription>保留旧版数据结构,逐步替换为 shadcn-vue 控件。</CardDescription>
</CardHeader>
<CardContent class="space-y-2 text-sm text-muted-foreground">
<div>已配置时装: {{ summary.avatarCount }}</div>
<div>徽章位类型: {{ summary.emblemSlots }}</div>
</CardContent>
</Card>
<Card>
<CardHeader>
<CardTitle class="flex items-center gap-2">
<ShieldCheck class="size-4" />
助手导入
</CardTitle>
<CardDescription>沿用助手识别能力快速回填打造数据。</CardDescription>
</CardHeader>
<CardContent>
<router-link to="/dcalc/dnfhelper">
<Button variant="outline">前往助手导入</Button>
</router-link>
</CardContent>
</Card>
</div>
</template>