|
@@ -3,21 +3,44 @@
|
|
|
<div title="系统设置">
|
|
|
<i class="sfont system-shezhi"></i>
|
|
|
</div>
|
|
|
- <el-drawer v-model="drawer" title="系统设置" custom-class="herder_height">
|
|
|
- <el-collapse>
|
|
|
|
|
|
- <el-collapse-item title="菜单配置">
|
|
|
+
|
|
|
+ <el-drawer v-model="drawer" title="系统设置" custom-class="herder_height">
|
|
|
+ <!-- todo 这里是否需要开启黑夜模式 -->
|
|
|
+ <!-- <el-button @click="toggleDark(false) ">黑夜模式</el-button>-->
|
|
|
+ <el-collapse v-model="activeNames">
|
|
|
+ <el-collapse-item title="菜单配置" name="0">
|
|
|
<el-form>
|
|
|
<el-form-item label="侧边菜单栏背景色">
|
|
|
- <el-color-picker v-model="theme.menu.sideMenuBarBackgroundColor"/>
|
|
|
+ <el-color-picker v-model="theme['--el-menu-bg-color']"/>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="侧边菜单文字颜色">
|
|
|
- <el-color-picker v-model="theme.menu.sideMenuTextColor"/>
|
|
|
+ <el-color-picker v-model="theme['--el-menu-text-color']"/>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="侧边菜单激活项背景色">
|
|
|
- <el-color-picker v-model="theme.menu.activateMenu"/>
|
|
|
+ <el-color-picker v-model="theme['--el-menu-active-color']"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-collapse-item>
|
|
|
+
|
|
|
+ <el-collapse-item title="顶部配置" name="1">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="激活菜单背景颜色">
|
|
|
+ <el-color-picker v-model="theme['--xc-header-active-bg-color']"/>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="激活菜单文字颜色">
|
|
|
+ <el-color-picker v-model="theme['--xc-header-active-text-color']"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-collapse-item>
|
|
|
+
|
|
|
+ <el-collapse-item title="按钮配置" name="2">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="默认按钮颜色">
|
|
|
+ <el-color-picker v-model="theme['--el-color-primary']"/>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</el-collapse-item>
|
|
@@ -27,39 +50,44 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup name="Theme">
|
|
|
-import {theme, themeStyle} from "@/theme";
|
|
|
-import {clone} from "@/utils/clone";
|
|
|
+import {theme} from "@/theme";
|
|
|
+import {useDark, useToggle} from '@vueuse/core'
|
|
|
|
|
|
const tabsHook = {
|
|
|
setItem: function (val) {
|
|
|
localStorage.setItem('theme', JSON.stringify(val))
|
|
|
},
|
|
|
getItem: function () {
|
|
|
- return clone(JSON.parse(localStorage.getItem('theme') || '{}'))
|
|
|
+ return JSON.parse(localStorage.getItem('theme') || '{}')
|
|
|
},
|
|
|
}
|
|
|
|
|
|
+const isDark = useDark()
|
|
|
+const toggleDark = useToggle(isDark)
|
|
|
+
|
|
|
+
|
|
|
let drawer = $ref(false)
|
|
|
+let activeNames = $ref(['0', '1', '2'])
|
|
|
+
|
|
|
|
|
|
watch(() => theme.value, () => {
|
|
|
- let tempStyle = {}
|
|
|
+ const el = document.documentElement
|
|
|
for (let key in theme.value) {
|
|
|
- let item = theme.value[key]
|
|
|
- if (typeof item === 'object') {
|
|
|
- for (let key2 in item) {
|
|
|
- tempStyle['--' + key2] = item[key2]
|
|
|
- }
|
|
|
- } else {
|
|
|
- tempStyle['--' + key] = item
|
|
|
- }
|
|
|
+ el.style.setProperty(key, theme.value[key])
|
|
|
}
|
|
|
- themeStyle.value = tempStyle
|
|
|
tabsHook.setItem(theme.value)
|
|
|
- console.log(localStorage.getItem('theme'))
|
|
|
-}, {deep: true, immediate: true})
|
|
|
+}, {deep: true})
|
|
|
|
|
|
onMounted(() => {
|
|
|
- theme.value = tabsHook.getItem()
|
|
|
+ const el = document.documentElement
|
|
|
+ for (let key in theme.value) {
|
|
|
+ el.style.setProperty(key, theme.value[key])
|
|
|
+ }
|
|
|
+ if (localStorage.getItem('theme') == null) {
|
|
|
+ tabsHook.setItem(theme.value)
|
|
|
+ } else {
|
|
|
+ theme.value = tabsHook.getItem()
|
|
|
+ }
|
|
|
})
|
|
|
|
|
|
</script>
|