当前位置: 首页 > news >正文

Vue主题色实现

主题色实现

情境

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

实现

1.定义主题色变量

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

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

2.定义主题色切换函数

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

// 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.骨架屏页面切换主题色

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

// skeleton.vue
import { triggerTheme } from '@/theme/triggerTheme'
created() {this.init()
},
async init() {let resp = await getTenantInfo()triggerTheme(resp.data.theme)
}
http://www.lryc.cn/news/444033.html

相关文章:

  • ChartLlama: A Multimodal LLM for Chart Understanding and Generation论文阅读
  • ByteCinema(1):用户的登录注册
  • 电力电网电线变电站输电线绝缘子无人机类数据集/农业植物病虫害类数据集/光伏板/工程煤矿矿场类数据集/道路类数据集
  • 深度学习之表示学习 - 引言篇
  • Linux驱动开发 ——架构体系
  • Django一分钟:lookupAPI详解,使用django orm生成高效的WHERE子句
  • 信息安全工程师(8)网络新安全目标与功能
  • 返利机器人在电商返利系统中的负载均衡实现
  • MATLAB中typecast函数用法
  • 植物大战僵尸【源代码分享+核心思路讲解】
  • 变压器设备漏油数据集 voc txt
  • 算法练习题25——leetcode3279统计重新排列后包含另一个字符串的子字符串的数目(滑动窗口 双指针 哈希)
  • JavaEE: 深入探索TCP网络编程的奇妙世界(二)
  • GPT1-GPT3论文理解
  • C/C++内存管理 ——
  • 深度学习02-pytorch-04-张量的运算函数
  • OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【文件系统】上
  • NISP 一级 | 8.4 《网络安全法》
  • 实现人体模型可点击
  • C++ | Leetcode C++题解之第429题N叉树的层序遍历
  • Pandas简介
  • Python | Leetcode Python题解之第430题扁平化多级双向链表
  • 机器人机构、制造
  • 《拿下奇怪的前端报错》:nvm不可用报错`GLIBC_2.27‘‘GLIBCXX_3.4.20‘not Found?+ 使用docker构建多个前端项目实践
  • 5.《DevOps》系列K8S部署CICD流水线之K8S通过Yaml部署GitLab
  • [SAP ABAP] 创建数据库视图和维护视图
  • 【最快最简单的排序 —— 桶排序算法】
  • AI时代,服务器厂商能否打破薄利的命运?
  • 2024年9月python二级易错题和难题大全(附详细解析)(二)
  • 4.结构型设计模式 - 第1回:引言与适配器模式 (Adapter Pattern) ——设计模式入门系列