使用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>
相关推荐
|晴 天|15 分钟前
Vue 3 + TypeScript + Element Plus 博客系统开发总结与思考
前端·vue.js·typescript
猫3281 小时前
v-cloak
前端·javascript·vue.js
AC赳赳老秦1 小时前
OpenClaw二次开发实战:编写专属办公自动化技能,适配个性化需求
linux·javascript·人工智能·python·django·测试用例·openclaw
旷世奇才李先生1 小时前
Vue 3\+Vite\+Pinia实战:企业级前端项目架构设计
前端·javascript·vue.js
Ulyanov2 小时前
《PySide6 GUI开发指南:QML核心与实践》 第二篇:QML语法精要——构建声明式UI的基础
java·开发语言·javascript·python·ui·gui·雷达电子对抗系统仿真
聚美智数2 小时前
企业实际控制人查询-公司实控人查询
android·java·javascript
herinspace4 小时前
管家婆实用贴-如何分离和附加数据库
开发语言·前端·javascript·数据库·语音识别
Lkstar5 小时前
我把Vue2响应式源码从头到尾啃了一遍,这是整理笔记
vue.js
这里不能睡觉6 小时前
js 实现 Blob、File、ArrayBuffer、base64、URL 之间互转
javascript
拉拉肥_King6 小时前
Ant Design Table 横向滚动条神秘消失?我是如何一步步找到真凶的
前端·javascript