feat: 迁移自定义功能至 1.5.9.9 版本
包含音乐源限制、CI 防 OOM 优化、数据库连接池优化、管理端权限及 UI 细节定制等功能
This commit is contained in:
@@ -12,27 +12,27 @@
|
||||
</div>
|
||||
|
||||
<div class="title-section">
|
||||
<h1 class="main-title">{{ yearReview.reportTitle }}</h1>
|
||||
<h1 class="main-title">年度点歌报告</h1>
|
||||
<p class="subtitle">Music Journey</p>
|
||||
</div>
|
||||
|
||||
<div class="stats-grid">
|
||||
<div class="stat-item">
|
||||
<div class="stat-value">{{ data.totalRequests }}</div>
|
||||
<div class="stat-label">{{ yearReview.requests }}</div>
|
||||
<div class="stat-label">点歌次数</div>
|
||||
</div>
|
||||
<div class="stat-item">
|
||||
<div class="stat-value">{{ data.playedRequests }}</div>
|
||||
<div class="stat-label">{{ yearReview.played }}</div>
|
||||
<div class="stat-label">已播放</div>
|
||||
</div>
|
||||
<div class="stat-item">
|
||||
<div class="stat-value">{{ data.totalVotes }}</div>
|
||||
<div class="stat-label">{{ yearReview.votes }}</div>
|
||||
<div class="stat-label">投票数</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
<div class="footer-text">{{ yearReview.footerSlogan }}</div>
|
||||
<div class="footer-text">用音乐记录每一刻</div>
|
||||
<div class="footer-line" />
|
||||
</div>
|
||||
</div>
|
||||
@@ -41,7 +41,6 @@
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue'
|
||||
import { useLocale } from '~/utils/locale'
|
||||
|
||||
defineProps({
|
||||
data: {
|
||||
@@ -51,7 +50,6 @@ defineProps({
|
||||
})
|
||||
|
||||
const shareCardRef = ref(null)
|
||||
const { yearReview } = useLocale()
|
||||
|
||||
defineExpose({
|
||||
shareCardRef
|
||||
@@ -65,7 +63,7 @@ defineExpose({
|
||||
height: 100%;
|
||||
min-height: 600px;
|
||||
overflow: hidden;
|
||||
background: linear-gradient(135deg, var(--panel-bg-tertiary) 0%, var(--panel-bg-tertiary) 50%, var(--panel-bg-tertiary) 100%);
|
||||
background: linear-gradient(135deg, var(--bg-secondary, #0f0f23) 0%, #1a1a2e 50%, #16213e 100%);
|
||||
}
|
||||
|
||||
.card-background {
|
||||
@@ -77,9 +75,9 @@ defineExpose({
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background:
|
||||
radial-gradient(circle at 20% 30%, var(--index-card-glow) 0%, transparent 50%),
|
||||
radial-gradient(circle at 80% 70%, var(--year-review-gradient-overlay-end) 0%, transparent 50%),
|
||||
radial-gradient(circle at 50% 50%, var(--primary-10) 0%, transparent 60%);
|
||||
radial-gradient(circle at 20% 30%, rgba(139, 92, 246, 0.15) 0%, transparent 50%),
|
||||
radial-gradient(circle at 80% 70%, rgba(244, 114, 182, 0.15) 0%, transparent 50%),
|
||||
radial-gradient(circle at 50% 50%, rgba(59, 130, 246, 0.1) 0%, transparent 60%);
|
||||
}
|
||||
|
||||
.noise-overlay {
|
||||
@@ -108,7 +106,7 @@ defineExpose({
|
||||
.logo {
|
||||
font-size: 1.5rem;
|
||||
font-weight: 900;
|
||||
background: linear-gradient(135deg, var(--color-collab), var(--color-pink));
|
||||
background: linear-gradient(135deg, #8b5cf6, #ec4899);
|
||||
-webkit-background-clip: text;
|
||||
background-clip: text;
|
||||
color: transparent;
|
||||
@@ -117,7 +115,7 @@ defineExpose({
|
||||
.year {
|
||||
font-size: 3rem;
|
||||
font-weight: 900;
|
||||
color: var(--overlay-10);
|
||||
color: rgba(255, 255, 255, 0.1);
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
@@ -129,7 +127,7 @@ defineExpose({
|
||||
.main-title {
|
||||
font-size: 3.5rem;
|
||||
font-weight: 900;
|
||||
background: linear-gradient(135deg, var(--text-primary) 0%, var(--panel-border-light) 50%, var(--text-muted) 100%);
|
||||
background: linear-gradient(135deg, var(--card-bg, #ffffff) 0%, #e5e7eb 50%, #9ca3af 100%);
|
||||
-webkit-background-clip: text;
|
||||
background-clip: text;
|
||||
color: transparent;
|
||||
@@ -139,7 +137,7 @@ defineExpose({
|
||||
|
||||
.subtitle {
|
||||
font-size: 1.25rem;
|
||||
color: var(--overlay-50);
|
||||
color: rgba(255, 255, 255, 0.5);
|
||||
letter-spacing: 0.3em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
@@ -154,16 +152,16 @@ defineExpose({
|
||||
.stat-item {
|
||||
text-align: center;
|
||||
padding: 1.5rem;
|
||||
background: var(--overlay-3);
|
||||
background: rgba(255, 255, 255, 0.03);
|
||||
border-radius: 1rem;
|
||||
border: 1px solid var(--overlay-8);
|
||||
border: 1px solid rgba(255, 255, 255, 0.08);
|
||||
backdrop-filter: blur(10px);
|
||||
}
|
||||
|
||||
.stat-value {
|
||||
font-size: 2.5rem;
|
||||
font-weight: 900;
|
||||
background: linear-gradient(135deg, var(--color-accent-light), var(--color-accent-light));
|
||||
background: linear-gradient(135deg, #60a5fa, #3b82f6);
|
||||
-webkit-background-clip: text;
|
||||
background-clip: text;
|
||||
color: transparent;
|
||||
@@ -172,7 +170,7 @@ defineExpose({
|
||||
|
||||
.stat-label {
|
||||
font-size: 0.875rem;
|
||||
color: var(--overlay-50);
|
||||
color: rgba(255, 255, 255, 0.5);
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
|
||||
@@ -183,7 +181,7 @@ defineExpose({
|
||||
|
||||
.footer-text {
|
||||
font-size: 0.875rem;
|
||||
color: var(--overlay-40);
|
||||
color: rgba(255, 255, 255, 0.4);
|
||||
letter-spacing: 0.1em;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
@@ -191,7 +189,7 @@ defineExpose({
|
||||
.footer-line {
|
||||
width: 100px;
|
||||
height: 2px;
|
||||
background: linear-gradient(90deg, transparent, var(--overlay-20), transparent);
|
||||
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user