使用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>
相关推荐
INS_KF13 分钟前
【编程笔记】成员函数中两个 const 的区别(const Data &getData() const;)
前端·javascript·笔记
宿6741 小时前
vue3-async
前端·javascript·vue.js
excel2 小时前
Nuxt + Twin CSS 中宽度超过屏幕时底部出现空白的原因与解决方案
前端·javascript
一个游离的指针5 小时前
函数管道:消除深度嵌套调用
前端·javascript
柚yuzumi5 小时前
前端优化,从少触发一次开始:防抖与节流
前端·javascript
默_笙6 小时前
🚤 CSS 布局的"圈地运动":BFC 就是浏览器的独立领地
前端·javascript
用户938515635076 小时前
大模型记忆指南:从短时缓存到永久记忆,手把手带你吃透 LangChain Memory 管理
javascript·人工智能
xqchen6 小时前
Web Components 普及困境深度解析:技术标准与工程实践的落差
javascript
爱丶不疚6 小时前
写给前端工程师的现代 Python 工程化最佳实践:从 pnpm 到 uv,从 CommonJS 到 src-layout
javascript·python·typescript
Dreams°1237 小时前
【Java后端+Vue前后端分离:内网正常、公网访问异常|5个高频经典踩坑完整复盘】
java·开发语言·vue.js