refactor: 重构工作台与首页仪表盘模块

- 调整dashboard工作台与首页的组件布局与模块迁移
- 统一卡片样式与hover交互效果
- 修复部分样式顺序与css语法问题
- 移除冗余的github corner组件与重复的页面模块
This commit is contained in:
zhangtao
2026-05-20 01:20:24 +08:00
parent 5533612a4c
commit b7304155ab
33 changed files with 493 additions and 1043 deletions
@@ -1,6 +1,6 @@
<!-- 卡片横幅组件 -->
<template>
<div class="fa-card-sm flex-c flex-col pb-6" :style="{ height: height }">
<div class="fa-card p-5 flex-c flex-col pb-6 h-full" :style="{ height: height }">
<div class="flex-c flex-col gap-4 text-center">
<div class="w-45">
<img :src="image" :alt="title" class="w-full h-full object-contain" loading="eager" />
@@ -76,7 +76,7 @@ interface CardBannerProps {
// 定义组件属性默认值
withDefaults(defineProps<CardBannerProps>(), {
height: "24rem",
height: "100%",
image: defaultIcon,
title: "",
description: "",
@@ -1,6 +1,6 @@
<!-- 数据列表卡片 -->
<template>
<div class="fa-card p-5">
<div class="fa-card p-5 h-[28.2rem] overflow-hidden">
<div class="pb-3.5">
<p class="text-lg font-medium">{{ title }}</p>
<p class="text-sm text-g-600">{{ subtitle }}</p>
@@ -1,7 +1,7 @@
<!-- 图片卡片 -->
<template>
<div class="w-full c-p" @click="handleClick">
<div class="fa-card overflow-hidden">
<div class="w-full c-p h-full" @click="handleClick">
<div class="fa-card overflow-hidden h-full">
<div class="relative w-full aspect-16/10 overflow-hidden">
<ElImage
:src="props.imageUrl"
@@ -1,6 +1,6 @@
<!-- 时间轴列表卡片 -->
<template>
<div class="fa-card p-5">
<div class="fa-card p-5 h-[28.2rem] overflow-hidden">
<div class="pb-3.5">
<p class="text-lg font-medium">{{ title }}</p>
<p class="text-sm text-g-600">{{ subtitle }}</p>
@@ -1,6 +1,9 @@
<!-- 地图图表 -->
<template>
<div class="relative w-full" :style="{ height: 'calc(100vh - 120px)' }">
<div
class="relative w-full h-100 p-5 mb-5 max-sm:mb-4"
:style="{ height: 'calc(100vh - 180px)' }"
>
<div v-if="isEmpty" class="h-full flex-cc">
<ElEmpty description="暂无地图数据" />
</div>
@@ -25,11 +25,7 @@
/>
</ElTooltip>
<ElTooltip content="关闭" placement="top">
<FaIconButton
class="core-overlay-icon-btn"
icon="ri:close-line"
@click="close"
/>
<FaIconButton class="core-overlay-icon-btn" icon="ri:close-line" @click="close" />
</ElTooltip>
</div>
</div>
@@ -141,8 +137,8 @@ const dialogAttrs = computed(() => {
transition: all 0.2s ease;
&:hover {
box-shadow: 0 4px 12px rgb(0 0 0 / 10%);
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
}
}
@@ -128,8 +128,8 @@ const drawerAttrs = computed(() => {
transition: all 0.2s ease;
&:hover {
box-shadow: 0 4px 12px rgb(0 0 0 / 10%);
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
}
}
@@ -1,66 +0,0 @@
<!-- github 角标 -->
<template>
<a
href="https://github.com/fastapiadmin/FastapiAdmin"
target="_blank"
class="github-corner"
aria-label="View source on Github"
>
<svg
width="80"
height="80"
viewBox="0 0 250 250"
:style="'color: var(--el-color-white); fill: var(--el-color-primary)'"
aria-hidden="true"
>
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z" />
<path
d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"
fill="currentColor"
:style="'transform-origin: 130px 106px'"
class="octo-arm"
/>
<path
d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z"
fill="currentColor"
class="octo-body"
/>
</svg>
</a>
</template>
<script setup lang="ts">
defineOptions({ name: "FaGithubCorner" });
</script>
<style scoped>
.github-corner:hover .octo-arm {
animation: octocat-wave 560ms ease-in-out;
}
@keyframes octocat-wave {
0%,
100% {
transform: rotate(0);
}
20%,
60% {
transform: rotate(-25deg);
}
40%,
80% {
transform: rotate(10deg);
}
}
@media (width <= 500px) {
.github-corner .octo-arm {
animation: octocat-wave 560ms ease-in-out;
}
.github-corner:hover .octo-arm {
animation: none;
}
}
</style>