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
+5 -3
View File
@@ -24,7 +24,9 @@ const route = useRoute()
const Draggable = defineAsyncComponent(() => import('vuedraggable').then(module => module.default))
const PluginAppCard = defineAsyncComponent(() => import('@/components/cards/PluginAppCard.vue'))
const PluginFolderCreateDialog = defineAsyncComponent(() => import('@/components/dialog/PluginFolderCreateDialog.vue'))
const PluginMarketSettingDialog = defineAsyncComponent(() => import('@/components/dialog/PluginMarketSettingDialog.vue'))
const PluginMarketSettingDialog = defineAsyncComponent(
() => import('@/components/dialog/PluginMarketSettingDialog.vue'),
)
const ProgressDialog = defineAsyncComponent(() => import('@/components/dialog/ProgressDialog.vue'))
const PluginSearchDialog = defineAsyncComponent(() => import('@/components/dialog/PluginSearchDialog.vue'))
@@ -1643,8 +1645,8 @@ function onDragStartPlugin(evt: any) {
<div>
<VPageContentTitle v-if="installedFilter" :title="t('plugin.filter', { name: installedFilter })" />
<LoadingBanner v-if="!isRefreshed" class="mt-12" />
<VAlert v-if="sortMode" color="warning" variant="tonal" class="mb-4">
<div class="d-flex flex-wrap align-center justify-space-between gap-2">
<VAlert v-if="sortMode" color="warning" variant="tonal" class="mb-4 py-0 app-surface-static">
<div class="d-flex flex-wrap align-center justify-space-between gap-2 py-5">
<span>{{ t('common.sortModeHint') }}</span>
<VBtn variant="tonal" color="error" @click="sortMode = false">
{{ t('common.exit') }}
+1 -1
View File
@@ -204,7 +204,7 @@ onMounted(loadDownloadDirectories)
</script>
<template>
<div class="file-browser-view app-surface">
<div class="file-browser-view app-surface-static">
<FileBrowser
v-if="operItem"
:storages="storages"
+4 -4
View File
@@ -18,7 +18,9 @@ import { useBackground } from '@/composables/useBackground'
import { useGlobalSettingsStore } from '@/stores'
import { openSharedDialog } from '@/composables/useSharedDialog'
const TransferHistoryDeleteDialog = defineAsyncComponent(() => import('@/components/dialog/TransferHistoryDeleteDialog.vue'))
const TransferHistoryDeleteDialog = defineAsyncComponent(
() => import('@/components/dialog/TransferHistoryDeleteDialog.vue'),
)
// i18n
const { t } = useI18n()
@@ -33,8 +35,7 @@ const { appMode } = usePWA()
const { useProgressSSE } = useBackground()
// 计算列表可用高度
// componentOffset = VCardItem搜索栏(68) + VDivider(1) + 分页栏(40) + VCard边距(2) = 111
const { availableHeight } = useAvailableHeight(125, 300)
const { availableHeight } = useAvailableHeight(135, 300)
// 提示框
const $toast = useToast()
@@ -1209,7 +1210,6 @@ onUnmounted(() => {
/>
</div>
</Teleport>
</template>
<style lang="scss">
+2 -2
View File
@@ -410,8 +410,8 @@ useDynamicButton({
</div>
</div>
<VAlert v-if="sortMode" color="warning" variant="tonal" class="mb-4">
<div class="d-flex flex-wrap align-center justify-space-between gap-2">
<VAlert v-if="sortMode" color="warning" variant="tonal" class="mb-4 py-0 app-surface-static">
<div class="d-flex flex-wrap align-center justify-space-between gap-2 py-5">
<span>{{ t('common.sortModeHint') }}</span>
<VBtn variant="tonal" color="error" @click="sortMode = false">
{{ t('common.exit') }}
+12 -10
View File
@@ -31,7 +31,12 @@ let progressDialogController: ReturnType<typeof openSharedDialog> | null = null
// 打开订阅日历共享进度弹窗。
function openProgressDialog() {
progressDialogController?.close()
progressDialogController = openSharedDialog(ProgressDialog, { text: `${t('common.loading')} ...` }, {}, { closeOn: false })
progressDialogController = openSharedDialog(
ProgressDialog,
{ text: `${t('common.loading')} ...` },
{},
{ closeOn: false },
)
}
// 关闭订阅日历共享进度弹窗。
@@ -85,7 +90,10 @@ async function eventsHander(subscribe: Subscribe) {
} else {
// 调用API查询集信息
const params = subscribe.episode_group ? { episode_group: subscribe.episode_group } : undefined
const episodes: TmdbEpisode[] = await api.get(`tmdb/${subscribe.tmdbid}/${subscribe.season}`, params ? { params } : undefined)
const episodes: TmdbEpisode[] = await api.get(
`tmdb/${subscribe.tmdbid}/${subscribe.season}`,
params ? { params } : undefined,
)
interface EpisodeInfo {
title: string
@@ -160,8 +168,8 @@ onActivated(() => {
<template>
<FullCalendar :options="calendarOptions">
<template #eventContent="arg">
<div class="hidden md:block overflow-hidden">
<VCard>
<div class="hidden md:block">
<VCard class="app-surface">
<div class="d-flex justify-space-between flex-nowrap flex-row">
<div class="ma-auto">
<VImg
@@ -434,12 +442,6 @@ onActivated(() => {
background-color: transparent !important;
}
.v-application .fc .fc-popover {
border-radius: 6px;
box-shadow: 0 4px 14px -4px var(--v-shadow-key-umbra-opacity), 0 4px 8px -4px var(--v-shadow-key-penumbra-opacity),
0 4px 8px -4px var(--v-shadow-key-ambient-opacity);
}
.v-application .fc .fc-popover .fc-popover-header,
.v-application .fc .fc-popover .fc-popover-body {
padding: 0.5rem;
+2 -2
View File
@@ -572,8 +572,8 @@ defineExpose({
</VCard>
</div>
<VAlert v-if="sortMode" color="warning" variant="tonal" class="mb-4 mx-2">
<div class="d-flex flex-wrap align-center justify-space-between gap-2">
<VAlert v-if="sortMode" color="warning" variant="tonal" class="mb-4 mx-2 py-0 app-surface-static">
<div class="d-flex flex-wrap align-center justify-space-between gap-2 py-5">
<span>{{ t('common.sortModeHint') }}</span>
<VBtn variant="tonal" color="error" @click="sortMode = false">
{{ t('common.exit') }}