使用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>
相关推荐
随心点儿9 小时前
js postMessage 实现跨域发送消息-应用示例
javascript·ecmascript·postmessage
kyriewen10 小时前
我让AI改一个bug——它偷偷动了5个我没让它碰的地方
前端·javascript·ai编程
慧一居士12 小时前
Element Plus 按需引入的配置使用说明和完整示例
前端·vue.js
gis开发之家15 小时前
《Vue3 从入门到大神35篇》Vue3 源码详解(五):effect 依赖收集原理——track 与 trigger 是如何工作的?
javascript·typescript·前端框架·vue3·vue3源码
橘子星16 小时前
我一个前端切图仔,凭什么能在浏览器里跑大模型?
前端·javascript·前端框架
半个落月16 小时前
用 LangChain JS 做可控写作实验:理解温度参数、提示词与异步调用
javascript·人工智能·后端
观远数据16 小时前
Excel到数据资产池:文件数据入湖的治理规范怎么建
前端·javascript·excel
CoderWeen16 小时前
我写了个能一步步点着看的 Dijkstra 可视化项目(Vue3 + Leaflet + Generator)
前端·javascript·vue.js
无人生还16 小时前
第 1 篇:从 Vue3 到 React 的思维转变
前端·vue.js·react.js
就业发动机17 小时前
我用 Tauri 做了一个约 1.5 MB 的开源屏幕标注工具:MarkerOn
vue.js·rust