使用element-plus的暗黑模式

1.界面中加入el-switch

<el-switch v-model="isDark" :active-action-icon="Sunny" :inactive-action-icon="Moon" />

2.导入模块

import { useDark, useToggle } from '@vueuse/core'

import { Sunny, Moon } from '@element-plus/icons-vue'

3.定义方法

const isDark = useDark()

4.至此暗黑模式就生效了

下面是完整的代码

复制代码
<template>
	<div class="header">
  
		<div class="header-right">
			<div class="header-user-con">
 
				<!-- 用户头像 -->
				<el-switch v-model="isDark" :active-action-icon="Sunny" :inactive-action-icon="Moon" /> 
				<el-avatar class="user-avator" :size="30" :src="imgurl" />
				<!-- 用户名下拉菜单 -->
				<el-dropdown class="user-name" trigger="click" @command="handleCommand">
					<span class="el-dropdown-link">
						{{ username }}
						<el-icon class="el-icon--right">
							<arrow-down />
						</el-icon>
					</span>
					<template #dropdown>
						<el-dropdown-menu>
							<el-dropdown-item command="user">个人中心</el-dropdown-item>
							<el-dropdown-item divided command="loginout">退出登录</el-dropdown-item>
							<el-dropdown-item divided command="fullscreen">全屏</el-dropdown-item>
						</el-dropdown-menu>

					</template>
				</el-dropdown>
	 
			</div>
		</div>
	</div>
</template>
<script setup lang="ts">
import { onMounted, ref } from 'vue';
import { useSidebarStore } from '../store/sidebar';
import { useRouter } from 'vue-router';

import imgurl from '../assets/img/img.jpg';
import screenfull from 'screenfull';

import { getMyConfig, getMyPageConfig, MyGlobalFun, SetMySystemConfig } from '../globalFun';
import { global_PageParam } from '../globalconst';
import { useDark, useToggle } from '@vueuse/core'
import { Sunny, Moon } from '@element-plus/icons-vue' 
const isDark = useDark() 

let CurrentLanguage = ref<any>('')
const username: string | null = localStorage.getItem('ms_username');
  
const sidebar = useSidebarStore();
// 侧边栏折叠
const collapseChage = () => {
	sidebar.handleCollapse();
}; 

const jsonObject = getMyPageConfig();
 
onMounted(() => {
 
});
 
 
</script>
<style scoped>
.header {
	position: relative;
	box-sizing: border-box;
	width: 100%;
	height: 70px;
	font-size: 22px;
	color: #fff;
}

.collapse-btn {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100%;
	float: left;
	padding: 0 21px;
	cursor: pointer;
}

.header .logo {
	float: left;
	width: 350px;
	line-height: 70px;
}

.header-right {
	float: right;
	padding-right: 50px;
}

.header-user-con {
	display: flex;
	height: 70px;
	align-items: center;
}

.btn-fullscreen {
	transform: rotate(45deg);
	margin-right: 5px;
	font-size: 24px;
}
 
 
 
</style>
相关推荐
低保和光头哪个先来2 小时前
Axios 近期安全版本
开发语言·前端·javascript·前端框架
@Mr.h2 小时前
(源码)基于Spring Boot + Vue志愿者服务平台的设计与实现
java·vue.js·spring boot·后端
han_2 小时前
JavaScript设计模式(八):命令模式实现与应用
前端·javascript·设计模式
踩着两条虫2 小时前
揭秘VTJ.PRO前端架构:一套代码,多端运行的低代码引擎
前端·vue.js·低代码
Highcharts.js2 小时前
React中频繁使用setState更新图表会影响性能
前端·javascript·react.js
计算机学姐2 小时前
基于SpringBoot的特色美食分享系统
java·vue.js·spring boot·后端·spring·tomcat·mybatis
zzginfo2 小时前
JavaScript 假值示例详解
开发语言·前端·javascript·ecmascript
计算机学姐2 小时前
基于SpringBoot的在线课程学习网站
java·vue.js·spring boot·后端·学习·spring·intellij-idea
早點睡3903 小时前
ReactNative项目OpenHarmony三方库集成实战:react-native-snackbar
javascript·react native·react.js