【Element】Vue3 中快捷设置 Element 主题色

news/2025/2/12 19:45:07/

直接放代码,很简单

<script setup lang="ts">
import zhCn from 'element-plus/dist/locale/zh-cn.mjs';
import { computed, onMounted, watch } from 'vue';
import { ElNotification } from 'element-plus';
import { useUserStore } from '@/store/index';
const userStore = useUserStore();
const color = computed(() => userStore.baseForm.color);// 监听浏览器版本
// @ts-ignore
import getBsInfo from 'browser-tag';
const bsInfo = getBsInfo(); //  { bs_name: "chrome浏览器", bs_tag: "chrome", bs_version: "108.0.0.0" },
console.log(bsInfo);
if (bsInfo.bs_tag === 'firefox' && bsInfo.bs_version.split(',')[0] < 100) {ElNotification({title: '警告',message: '当前浏览器版本过低,部分功能不可用,请更新火狐浏览器版本(不低于100.x版本)',type: 'warning',duration: 0,});
}onMounted(() => {// 初始化主题色setColor(color.value);
});// 更新主题色
watch(() => color.value,(newValue, oldValue) => {setColor(newValue);},
);const setColor = (color: string) => {// document.documentElement 是全局变量时const el = document.documentElement;// const el = document.getElementById('xxx')// 获取 css 变量getComputedStyle(el).getPropertyValue(`--el-color-primary`);// 主题色系// --el-color-primary: #f0905a;// --el-color-primary-light-3: #f2a67a;// --el-color-primary-light-5: #f4b88c;// --el-color-primary-light-7: #f6c99e;// --el-color-primary-light-8: #f7d3ab;// --el-color-primary-light-9: #f8ddba;// --el-color-primary-dark-2: #e88e4e;// 主题色系算法const getColorMap = (color: string) => {const colorMap = {'--el-color-primary': color,'--el-color-primary-light-3': color.replace(/#/, '#').replace(/(\w{2})/g, (a) => {return (parseInt(a, 16) + 30).toString(16);}),'--el-color-primary-light-5': color.replace(/#/, '#').replace(/(\w{2})/g, (a) => {return (parseInt(a, 16) + 50).toString(16);}),'--el-color-primary-light-7': color.replace(/#/, '#').replace(/(\w{2})/g, (a) => {return (parseInt(a, 16) + 70).toString(16);}),'--el-color-primary-light-8': color.replace(/#/, '#').replace(/(\w{2})/g, (a) => {return (parseInt(a, 16) + 80).toString(16);}),'--el-color-primary-light-9': color.replace(/#/, '#').replace(/(\w{2})/g, (a) => {return (parseInt(a, 16) + 90).toString(16);}),'--el-color-primary-dark-2': color.replace(/#/, '#').replace(/(\w{2})/g, (a) => {return (parseInt(a, 16) - 30).toString(16);}),};return colorMap;};// 设置 css 变量const colorMap: any = getColorMap(color);for (const key in colorMap) {el.style.setProperty(key, colorMap[key]);}
};
</script><template><el-config-provider :locale="zhCn"><router-view /></el-config-provider>
</template><style scoped></style>

http://www.ppmy.cn/news/1379330.html

相关文章

【C++庖丁解牛】模拟实现STL的string容器(最后附源码)

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 目录 1.vs和g下string结构…

【工具相关】zentao用例管理平台部署实践

文章目录 一、备份还原1、数据备份1.1、前言1.2、版本备份1.3、数据备份 2、数据恢复2.1、版本恢复2.2、数据恢复 二、问题处理1、ERROR: SQLSTATE[HY000] [2002] Connection refused 一、备份还原 1、数据备份 1.1、前言 禅道系统从10.6版本以后&#xff0c;新增数据备份设…

最新基于R语言lavaan结构方程模型(SEM)技术

原文链接&#xff1a;最新基于R语言lavaan结构方程模型&#xff08;SEM&#xff09;技术https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247596681&idx4&sn08753dd4d3e7bc492d750c0f06bba1b2&chksmfa823b6ecdf5b278ca0b94213391b5a222d1776743609cd3d14…

如何轻松打造属于自己的水印相机小程序?

水印相机小程序源码 描述&#xff1a;微信小程序。本文将为您详细介绍小程序水印相机源码的搭建过程&#xff0c;教您如何轻松打造属于自己的水印相机小程序。无论您是初学者还是有一定基础的开发者&#xff0c;都能轻松掌握这个教程。 一&#xff1a;水印相机搭建教程 1 隐…

代码背后的女性:突破性别壁垒的技术先驱

个人主页&#xff1a;17_Kevin-CSDN博客 收录专栏&#xff1a;《程序人生》 引言 在计算机科学的历史长河中&#xff0c;有许多杰出的女性为这个领域的发展做出了重要贡献。她们不仅在技术上取得了卓越成就&#xff0c;还打破了性别壁垒&#xff0c;为后来的女性树立了榜样。今…

C++ 文件操作

目录 C文件操作1. 使用系统函数读写linux平台判断是否存在创建文件 create()接口打开文件 open()接口读取文件 read()接口写文件 write()接口关闭文件 close()接口调整读写文件的位置&#xff08;偏移量&#xff09;lseek()接口获取文件基本信息操作文件状态 fcntl函数 windows…

在Jetson Xavier NX 开发板上使用VScode执行ROS程序详细过程

1.创建 ROS 工作空间ws 在home下打开终端输入下面指令 mkdir -p xxx_ws/src(必须得有 src) cd 自己命名_ws catkin_make2.启动 vscode cd 自己命名_ws code .3.vscode 中编译 ros 快捷键 ctrl shift B 调用编译&#xff0c;在上方弹窗位置选择:catkin_make:build 可以点击…

登录失败重试次数安全设计方案

1、登录失败重试次数设计方案 1、无论是账号还是密码错误&#xff0c;统一提示&#xff1a;用户名或密码错误&#xff0c;账号剩余登录次数N&#xff01; 2、同一账号连续登录失败5次&#xff0c;锁定该账号5分钟&#xff0c;5分钟后可以再重试登录。 开发设计 key&#xff…