From 8bdfcfb7c135e8ca54a1190dee706544c4a5a9aa Mon Sep 17 00:00:00 2001 From: SaarHV Date: Wed, 4 Jan 2023 17:31:52 +0800 Subject: [PATCH 1/2] Use pritter to format theme.ts --- src/utils/theme.ts | 58 +++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/src/utils/theme.ts b/src/utils/theme.ts index deb0810..1da8b07 100644 --- a/src/utils/theme.ts +++ b/src/utils/theme.ts @@ -1,39 +1,39 @@ import { ElMessage } from 'element-plus'; -// hex to rgb +// Hex color to rgb color export function hexToRgb(str: any) { - let hexs: any = ''; - let reg = /^\#?[0-9A-F]{6}$/; - if (!reg.test(str)) return ElMessage({ type: 'warning', message: "输入错误的hex" }); - str = str.replace("#", ""); - hexs = str.match(/../g); - for (let i = 0; i < 3; i++) hexs[i] = parseInt(hexs[i], 16); - return hexs; + let hexs: any = ''; + let reg = /^\#?[0-9A-Fa-f]{6}$/; + if (!reg.test(str)) return ElMessage.warning('输入错误的hex'); + str = str.replace('#', ''); + hexs = str.match(/../g); + for (let i = 0; i < 3; i++) hexs[i] = parseInt(hexs[i], 16); + return hexs; } -// rgb to Hex +// Rgb color to Hex color export function rgbToHex(r: any, g: any, b: any) { - let reg = /^\d{1,3}$/; - if (!reg.test(r) || !reg.test(g) || !reg.test(b)) return ElMessage({ type: 'warning', message: "输入错误的rgb颜色值" }); - let hexs = [r.toString(16), g.toString(16), b.toString(16)]; - for (let i = 0; i < 3; i++) if (hexs[i].length == 1) hexs[i] = `0${hexs[i]}`; - return `#${hexs.join("")}`; + let reg = /^\d{1,3}$/; + if (!reg.test(r) || !reg.test(g) || !reg.test(b)) return ElMessage.warning('输入错误的rgb颜色值'); + let hexs = [r.toString(16), g.toString(16), b.toString(16)]; + for (let i = 0; i < 3; i++) if (hexs[i].length == 1) hexs[i] = `0${hexs[i]}`; + return `#${hexs.join('')}`; } -// make color darker -export function getDarkColor(color: any, level: number) { - let reg = /^\#?[0-9A-F]{6}$/; - if (!reg.test(color)) return ElMessage({ type: 'warning', message: "输入错误的hex颜色值" }); - let rgb = hexToRgb(color); - for (let i = 0; i < 3; i++) rgb[i] = Math.floor(rgb[i] * (1 - level)); - return rgbToHex(rgb[0], rgb[1], rgb[2]); +// Deepen Color Value +export function getDarkColor(color: string, level: number) { + let reg = /^\#?[0-9A-Fa-f]{6}$/; + if (!reg.test(color)) return ElMessage.warning('输入错误的hex颜色值'); + let rgb = hexToRgb(color); + for (let i = 0; i < 3; i++) rgb[i] = Math.floor(rgb[i] * (1 - level)); + return rgbToHex(rgb[0], rgb[1], rgb[2]); } -// make color lighter -export function getLightColor(color: any, level: number) { - let reg = /^\#?[0-9A-F]{6}$/; - if (!reg.test(color)) return ElMessage({ type: 'warning', message: "输入错误的hex颜色值" }); - let rgb = hexToRgb(color); - for (let i = 0; i < 3; i++) rgb[i] = Math.floor((255 - rgb[i]) * level + rgb[i]); - return rgbToHex(rgb[0], rgb[1], rgb[2]); -} \ No newline at end of file +// Lighten Color Value +export function getLightColor(color: string, level: number) { + let reg = /^\#?[0-9A-Fa-f]{6}$/; + if (!reg.test(color)) return ElMessage.warning('输入错误的hex颜色值'); + let rgb = hexToRgb(color); + for (let i = 0; i < 3; i++) rgb[i] = Math.floor((255 - rgb[i]) * level + rgb[i]); + return rgbToHex(rgb[0], rgb[1], rgb[2]); +} -- Gitee From ff1f2fb4fbbc7f0c7a5aca7bf77112941fcceb60 Mon Sep 17 00:00:00 2001 From: SaarHV Date: Wed, 4 Jan 2023 20:39:55 +0800 Subject: [PATCH 2/2] Add the interface of ThemeConfig --- src/stores/interface/index.ts | 43 +++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/src/stores/interface/index.ts b/src/stores/interface/index.ts index 05fa94e..b1a57db 100644 --- a/src/stores/interface/index.ts +++ b/src/stores/interface/index.ts @@ -19,3 +19,46 @@ export interface KeepAliveNamesState { keepAliveNames: string[]; cachedViews: string[]; } + +// Layout Configuration +export interface ThemeConfigState { + isDrawer: boolean; + primary: string; + topBar: string; + topBarColor: string; + menuBar: string; + menuBarColor: string; + columnsMenuBar: string; + columnsMenuBarColor: string; + isCollapse: boolean; + isUniqueOpened: boolean; + isFixedHeader: boolean; + isFixedHeaderChange: boolean; + isClassicSplitMenu: boolean; + isShowLogo: boolean; + isShowLogoChange: boolean; + isBreadcrumb: boolean; + isTagsview: boolean; + isBreadcrumbIcon: boolean; + isTagsviewIcon: boolean; + isCacheTagsView: boolean; + isSortableTagsView: boolean; + isShareTagsView: boolean; + isFooter: boolean; + isInvert: boolean; + isIsDark: boolean; + isWartermark: boolean; + wartermarkText: string; + tagsStyle: string; + animation: string; + columnsAsideStyle: string; + columnsAsideLayout: string; + layout: string; + isRequestRoutes: boolean; + globalTitle: string; + globalViceTitle: string; + globalComponentSize: string; +} +export interface ThemeConfigStates { + themeConfig: ThemeConfigState; +} -- Gitee