✨ 支持暗黑主题切换
This commit is contained in:
parent
23e0140544
commit
5dddc31bfa
@ -14,7 +14,7 @@
|
|||||||
html.dark {
|
html.dark {
|
||||||
// * admin
|
// * admin
|
||||||
--bg-color: #000;
|
--bg-color: #000;
|
||||||
--v-main-bg-color: #181818;
|
--main-bg-color: #181818;
|
||||||
--v-border-light: 1px solid #4c4c4d;
|
--v-border-light: 1px solid #4c4c4d;
|
||||||
|
|
||||||
body {
|
body {
|
||||||
@ -24,20 +24,20 @@ html.dark {
|
|||||||
.login_container {
|
.login_container {
|
||||||
// background: rgba(171, 181, 196, 0.3);
|
// background: rgba(171, 181, 196, 0.3);
|
||||||
.login_box {
|
.login_box {
|
||||||
background-color: var(--v-main-bg-color) !important;
|
background-color: var(--main-bg-color) !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.top_bar_container {
|
.top_bar_container {
|
||||||
background-color: var(--bg-color) !important;
|
background-color: var(--main-bg-color) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.router_box {
|
.router_box {
|
||||||
background-color: var(--v-main-bg-color) !important;
|
background-color: var(--main-bg-color) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.aside_container {
|
.aside_container {
|
||||||
background-color: var(--v-main-bg-color) !important;
|
background-color: var(--main-bg-color) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.terminal_top {
|
.terminal_top {
|
||||||
@ -66,7 +66,7 @@ html.dark {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.app-main-container {
|
.app-main-container {
|
||||||
background-color: var(--v-main-bg-color) !important;
|
background-color: var(--main-bg-color) !important;
|
||||||
|
|
||||||
.card {
|
.card {
|
||||||
background-color: var(--bg-color) !important;
|
background-color: var(--bg-color) !important;
|
||||||
@ -75,7 +75,7 @@ html.dark {
|
|||||||
|
|
||||||
.layout-footer-container {
|
.layout-footer-container {
|
||||||
color: var(--el-text-color-regular) !important;
|
color: var(--el-text-color-regular) !important;
|
||||||
background-color: var(--v-main-bg-color) !important;
|
background-color: var(--main-bg-color) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.fold-unfold {
|
.fold-unfold {
|
||||||
@ -128,7 +128,7 @@ html.dark {
|
|||||||
|
|
||||||
.el-tabs__item.is-active {
|
.el-tabs__item.is-active {
|
||||||
color: var(--el-color-primary);
|
color: var(--el-color-primary);
|
||||||
background-color: var(--v-main-bg-color) !important;
|
background-color: var(--main-bg-color) !important;
|
||||||
|
|
||||||
.el-icon {
|
.el-icon {
|
||||||
color: var(--el-color-primary) !important;
|
color: var(--el-color-primary) !important;
|
||||||
@ -136,7 +136,7 @@ html.dark {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.el-tabs__item:not(.is_active):hover {
|
.el-tabs__item:not(.is_active):hover {
|
||||||
background-color: var(--v-main-bg-color) !important;
|
background-color: var(--main-bg-color) !important;
|
||||||
|
|
||||||
.el-icon {
|
.el-icon {
|
||||||
color: var(--el-color-primary) !important;
|
color: var(--el-color-primary) !important;
|
||||||
|
@ -9,7 +9,6 @@
|
|||||||
:active-icon="Moon"
|
:active-icon="Moon"
|
||||||
:inactive-icon="Sunny"
|
:inactive-icon="Sunny"
|
||||||
class="dark_switch"
|
class="dark_switch"
|
||||||
@change="setTheme"
|
|
||||||
/>
|
/>
|
||||||
<el-button
|
<el-button
|
||||||
type="info"
|
type="info"
|
||||||
@ -62,15 +61,14 @@ let visible = ref(false)
|
|||||||
let checkVersionErr = ref(false)
|
let checkVersionErr = ref(false)
|
||||||
let currentVersion = ref(`v${ packageJson.version }`)
|
let currentVersion = ref(`v${ packageJson.version }`)
|
||||||
let latestVersion = ref(null)
|
let latestVersion = ref(null)
|
||||||
// let isDark = ref(true)
|
|
||||||
|
|
||||||
let isNew = computed(() => latestVersion.value && latestVersion.value !== currentVersion.value)
|
let isNew = computed(() => latestVersion.value && latestVersion.value !== currentVersion.value)
|
||||||
let user = computed(() => $store.user)
|
let user = computed(() => $store.user)
|
||||||
let title = computed(() => $store.title)
|
let title = computed(() => $store.title)
|
||||||
let isDark = computed({
|
let isDark = computed({
|
||||||
get: () => $store.isDark,
|
get: () => $store.isDark,
|
||||||
set: (value) => {
|
set: (isDark) => {
|
||||||
$store.setTheme({ isDark: value })
|
$store.setTheme(isDark)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -114,6 +114,10 @@ const useStore = defineStore({
|
|||||||
setTheme(isDark) {
|
setTheme(isDark) {
|
||||||
// $store.setThemeConfig({ isDark: val })
|
// $store.setThemeConfig({ isDark: val })
|
||||||
const html = document.documentElement
|
const html = document.documentElement
|
||||||
|
document.startViewTransition(() => {
|
||||||
|
// 在 startViewTransition 中修改 DOM 状态产生动画
|
||||||
|
document.documentElement.classList.toggle('dark')
|
||||||
|
})
|
||||||
if (isDark) html.setAttribute('class', 'dark')
|
if (isDark) html.setAttribute('class', 'dark')
|
||||||
else html.setAttribute('class', '')
|
else html.setAttribute('class', '')
|
||||||
localStorage.setItem('isDark', isDark)
|
localStorage.setItem('isDark', isDark)
|
||||||
@ -126,7 +130,7 @@ const useStore = defineStore({
|
|||||||
} else {
|
} else {
|
||||||
const prefersDarkScheme = window.matchMedia('(prefers-color-scheme: dark)')
|
const prefersDarkScheme = window.matchMedia('(prefers-color-scheme: dark)')
|
||||||
const systemTheme = prefersDarkScheme.matches
|
const systemTheme = prefersDarkScheme.matches
|
||||||
// console.log('当前系统使用的是深色模式:', systemTheme ? '是' : '否')
|
console.log('当前系统使用的是深色模式:', systemTheme ? '是' : '否')
|
||||||
isDark = systemTheme
|
isDark = systemTheme
|
||||||
}
|
}
|
||||||
this.setTheme(isDark)
|
this.setTheme(isDark)
|
||||||
|
@ -52,7 +52,7 @@ onBeforeMount(async () => {
|
|||||||
min-height: calc(100vh - 60px - 20px);
|
min-height: calc(100vh - 60px - 20px);
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
margin: 0 10px 10px;
|
margin: 10px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-card shadow="always" class="host_card">
|
<div class="host_card">
|
||||||
<el-table
|
<el-table
|
||||||
ref="tableRef"
|
ref="tableRef"
|
||||||
:data="hosts"
|
:data="hosts"
|
||||||
@ -93,7 +93,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-card>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
@ -194,21 +194,8 @@ const handleRemoveHost = async ({ host }) => {
|
|||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.host_card {
|
.host_card {
|
||||||
margin: -10px 30px 0 30px;
|
margin: 0px 10px;
|
||||||
transition: all 0.5s;
|
// transition: all 0.5s;
|
||||||
position: relative;
|
|
||||||
|
|
||||||
// &:hover {
|
|
||||||
// box-shadow: 0px 0px 15px rgba(6, 30, 37, 0.5);
|
|
||||||
// }
|
|
||||||
|
|
||||||
:deep(.el-descriptions__title) {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
:deep(.el-descriptions) {
|
|
||||||
padding: 0 25px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.no_client_data {
|
.no_client_data {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
|
@ -47,8 +47,7 @@
|
|||||||
{{ groupName }}
|
{{ groupName }}
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<div class="host_card_container">
|
<!-- <HostCard
|
||||||
<!-- <HostCard
|
|
||||||
v-for="(item, index) in hosts"
|
v-for="(item, index) in hosts"
|
||||||
:key="index"
|
:key="index"
|
||||||
:host-info="item"
|
:host-info="item"
|
||||||
@ -56,13 +55,12 @@
|
|||||||
@update-host="handleUpdateHost"
|
@update-host="handleUpdateHost"
|
||||||
@update-list="handleUpdateList"
|
@update-list="handleUpdateList"
|
||||||
/> -->
|
/> -->
|
||||||
<HostTable
|
<HostTable
|
||||||
ref="hostTableRefs"
|
ref="hostTableRefs"
|
||||||
:hosts="hosts"
|
:hosts="hosts"
|
||||||
@update-host="handleUpdateHost"
|
@update-host="handleUpdateHost"
|
||||||
@update-list="handleUpdateList"
|
@update-list="handleUpdateList"
|
||||||
/>
|
/>
|
||||||
</div>
|
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
</el-collapse>
|
</el-collapse>
|
||||||
</div>
|
</div>
|
||||||
@ -255,9 +253,6 @@ let hostFormClosed = () => {
|
|||||||
line-height: 22px;
|
line-height: 22px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.host_card_container {
|
|
||||||
padding-top: 15px;
|
|
||||||
}
|
|
||||||
.or {
|
.or {
|
||||||
color: var(--el-text-color-secondary);
|
color: var(--el-text-color-secondary);
|
||||||
font-size: var(--el-font-size-base);
|
font-size: var(--el-font-size-base);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user