refactor: 统一组件样式,优化圆角和阴影效果,提升视觉一致性

This commit is contained in:
jxxghp
2026-06-07 19:49:15 +08:00
parent e239c0c5ea
commit c9ebf23977
17 changed files with 144 additions and 54 deletions
@@ -109,7 +109,14 @@ function submitSettings() {
</script>
<template>
<VDialog v-if="visible" v-model="visible" width="35rem" class="settings-dialog" scrollable :fullscreen="!display.mdAndUp.value">
<VDialog
v-if="visible"
v-model="visible"
width="35rem"
class="settings-dialog"
scrollable
:fullscreen="!display.mdAndUp.value"
>
<VCard class="settings-card">
<VCardItem class="settings-card-header">
<VCardTitle>
@@ -195,6 +202,7 @@ function submitSettings() {
.setting-item {
position: relative;
overflow: hidden;
border-radius: var(--app-surface-radius);
background-color: rgba(var(--v-theme-surface-variant), 0.3);
cursor: pointer;
padding-block: 10px;
+6 -2
View File
@@ -90,7 +90,7 @@ function closeDialog() {
/>
</VToolbar>
<VDialogCloseBtn @click="closeDialog" />
<VList v-if="plugins.length > 0" lines="two">
<VList v-if="plugins.length > 0" class="plugin-search-list" lines="two">
<VVirtualScroll :items="plugins">
<template #default="{ item }">
<VListItem @click="emit('open-plugin', item)">
@@ -130,4 +130,8 @@ function closeDialog() {
</VCard>
</VDialog>
</template>
<style lang="scss" scoped>
.plugin-search-list {
border-radius: 0 !important;
}
</style>
+5 -2
View File
@@ -129,7 +129,7 @@ const filteredSites = computed(() => {
<div
v-bind="props"
:class="[
'site-checkbox-wrapper pa-2 pa-sm-3 rounded-lg d-flex align-center',
'site-checkbox-wrapper pa-2 pa-sm-3 d-flex align-center',
{
'site-selected': selectedSites.includes(site.id),
'site-hover': isHovering && !selectedSites.includes(site.id),
@@ -193,8 +193,11 @@ const filteredSites = computed(() => {
<style scoped>
.site-checkbox-wrapper {
border: 1px solid rgba(var(--v-theme-on-surface), 0.08);
border-radius: var(--app-surface-radius);
cursor: pointer;
transition: transform 0.2s ease, background-color 0.2s ease;
transition:
transform 0.2s ease,
background-color 0.2s ease;
}
.site-checkbox-wrapper:hover {
@@ -216,11 +216,50 @@ function getMediaTypeText(type: string | undefined) {
</VVirtualScroll>
</VInfiniteScroll>
</VList>
<VCardText v-if="historyList.length === 0 && isRefreshed" class="text-center">{{
t('dialog.subscribeHistory.noData')
}}</VCardText>
<VCardText v-if="historyList.length === 0 && isRefreshed" class="subscribe-history-empty">
<VIcon class="subscribe-history-empty__icon" icon="mdi-sync" size="30" />
<div class="subscribe-history-empty__headline">
{{ t('dialog.subscribeHistory.noData') }}
</div>
<div class="subscribe-history-empty__description">
{{ t('dialog.subscribeHistory.noDataHint') }}
</div>
</VCardText>
</VCard>
<!-- 进度框 -->
<ProgressDialog v-if="progressDialog" v-model="progressDialog" :text="progressText" />
</VDialog>
</template>
<style scoped>
.subscribe-history-empty {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 0.75rem;
min-block-size: 13rem;
padding-block: 2.5rem !important;
padding-inline: 1.5rem !important;
text-align: center;
}
.subscribe-history-empty__icon {
color: rgba(var(--v-theme-on-surface), 0.32);
}
.subscribe-history-empty__headline {
color: rgba(var(--v-theme-on-surface), 0.9);
font-size: 1.15rem;
font-weight: 600;
line-height: 1.4;
}
.subscribe-history-empty__description {
color: rgba(var(--v-theme-on-surface), 0.6);
font-size: 0.92rem;
line-height: 1.65;
max-inline-size: 25rem;
}
</style>