Vue主题色实现

embedded/2024/9/23 16:42:34/

主题色实现

情境

配置平台支持多个主题色的选择,用户可通过在配置平台选择项目主题色。前端项目在骨架屏加载页面获取配置信息,设置项目主题色,实现同个项目不同主题色渲染的需求

实现

1.定义主题色变量

不同主题色根据不同js文件划分定义,根据不同主题区别设置对应的样式变量

javascript">// blueTheme.js
export default {'main-color': '#314360','main-color-8': '#314360CC','main-color-6': '#31436099','main-color-1': '#3143601A',...
}

2.定义主题色切换函数

封装主题色切换函数,用于根据配置参数切换主题色变量

javascript">// triggerTheme.js
// 目前支持五种主题色选择
import blueTheme from './blueTheme'
import orangeTheme from './orangeTheme'
import redTheme from './redTheme'
import greenTheme from './greenTheme'
import blackTheme from './blackTheme'let targetTheme = {}export function triggerTheme(themeName) {switch(themeName) {case 'orange':targetTheme = orangeThemebreakcase 'red':targetTheme = redThemebreakcase 'green':targetTheme = greenThemebreakcase 'black':targetTheme = blackThemebreakdefault:targetTheme = blueThemebreak}for (let prop in targetTheme) {document.body.style.setProperty(`--${prop}`, targetTheme[prop])}
}// 支持部分API渲染相关函数式调用时主题色获取
export function getColor(prop) {return targetTheme[prop]
}

3.骨架屏页面切换主题色

需要在类似加载、骨架屏页面或者无主题色页面切换主题色,避免主题色切换造成的页面异常

javascript">// skeleton.vue
import { triggerTheme } from '@/theme/triggerTheme'
created() {this.init()
},
async init() {let resp = await getTenantInfo()triggerTheme(resp.data.theme)
}

http://www.ppmy.cn/embedded/115687.html

相关文章

【深度学习】【TensorRT】【C++】模型转化、环境搭建以及模型部署的详细教程

【深度学习】【TensorRT】【C】模型转化、环境搭建以及模型部署的详细教程 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【深度学习】【TensorRT】【C】模型转化、环境搭建以及模型部署的详细教程前言模型转换--pytorch转engineWindows平台搭…

评估数据库元数据:注释、索引与约束的重要性及其对性能与维护的影响

在导入预设表结构时,评估自定义元数据(例如注释、索引和约束)对数据库性能和维护的影响是非常重要的。下面将分别讨论这些元素的作用以及它们如何影响数据库系统,并给出一些具体的例子。 注释(Comments) …

Unity3d开发的C#编码规范

Unity3d开发的C#编码规范 我的大部分的项目都是按照这一准则做的,不一定完全符合大家的习惯,仅供参考。 目录 一、目的 二、C#类和接口命名 1)C#类 2)接口命名 三、方法声明 四、属性声明 五、C#变量声明 1&#…

Linux实用命令 lsof命令

1.命令简介 lsof(list open files)用于查看进程打开的文件,是十分方便的系统监测工具。因为 lsof 命令需要访问核心内存和各种系统文件,所以需要root权限才可执行。 在 Linux 中,一切皆文件。通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件,所以lsof不仅可…

php基础语法

PHP 是一种流行的服务器端脚本语言&#xff0c;广泛应用于 Web 开发。以下是 PHP 的基础语法和常用功能介绍&#xff0c;适合初学者入门学习。 1. PHP 基本语法 1.1 PHP 标签 PHP 代码可以嵌入到 HTML 中&#xff0c;使用 <?php ?> 标签来包裹 PHP 代码&#xff1a;…

keil安装HAL库

通义千问给我的控制电机定时器的代码里包含一个头文件stm32f1xx_hal.h 经过搜索&#xff0c;得知这个头文件需要安装HAL库 可以从意法半导体官方网站下载最新版的STM32CubeMX&#xff1a;https://www.st.com/en/development-tools/stm32cubemx.htmlhttps://www.st.com/en/dev…

更新 Git 软件

更新 Git 软件本身是指将你当前安装的 Git 版本升级到最新版本。不同的操作系统有不同的更新方法。以下是针对 Windows、macOS 和 Linux 的 Git 更新步骤&#xff1a; Windows 检查当前版本&#xff1a; git --version访问官网下载最新版本&#xff1a; 访问 Git 官方网站 (ht…

计算机毕业设计 公寓出租系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…