From 3933f348839516c024e8825ed51040a4a11e2858 Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Fri, 9 Dec 2022 20:18:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=9A=97=E9=BB=91?= =?UTF-8?q?=E4=B8=BB=E9=A2=98=E6=A0=B7=E5=BC=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/optimize.ts | 1 - package.json | 1 - pnpm-lock.yaml | 8 +++---- src/layout/hooks/useDataThemeChange.ts | 29 +++++++++----------------- src/style/dark.scss | 2 +- 5 files changed, 14 insertions(+), 27 deletions(-) diff --git a/build/optimize.ts b/build/optimize.ts index 58c78d5b8..f89fb27c7 100644 --- a/build/optimize.ts +++ b/build/optimize.ts @@ -28,7 +28,6 @@ const include = [ "v-contextmenu", "vue-pdf-embed", "lodash-unified", - "@ctrl/tinycolor", "china-area-data", "vue-json-pretty", "@logicflow/core", diff --git a/package.json b/package.json index 80df23feb..f917f7ae2 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,6 @@ ], "dependencies": { "@amap/amap-jsapi-loader": "^1.0.1", - "@ctrl/tinycolor": "^3.4.1", "@howdyjs/mouse-menu": "^2.0.5", "@logicflow/core": "^1.1.30", "@logicflow/extension": "^1.1.30", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2cd1ab476..9a377099e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,7 +4,6 @@ specifiers: "@amap/amap-jsapi-loader": ^1.0.1 "@commitlint/cli": 13.1.0 "@commitlint/config-conventional": 13.1.0 - "@ctrl/tinycolor": ^3.4.1 "@howdyjs/mouse-menu": ^2.0.5 "@iconify-icons/ep": ^1.2.7 "@iconify-icons/mdi": ^1.2.8 @@ -118,7 +117,6 @@ specifiers: dependencies: "@amap/amap-jsapi-loader": 1.0.1 - "@ctrl/tinycolor": 3.4.1 "@howdyjs/mouse-menu": 2.0.5_vue@3.2.45 "@logicflow/core": 1.1.31 "@logicflow/extension": 1.1.31 @@ -836,10 +834,10 @@ packages: postcss-selector-parser: 6.0.11 dev: true - /@ctrl/tinycolor/3.4.1: + /@ctrl/tinycolor/3.5.0: resolution: { - integrity: sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw== + integrity: sha512-tlJpwF40DEQcfR/QF+wNMVyGMaO9FQp6Z1Wahj4Gk3CJQYHwA2xVG7iKDFdW6zuxZY9XWOpGcfNCTsX4McOsOg== } engines: { node: ">=10" } dev: false @@ -3769,7 +3767,7 @@ packages: peerDependencies: vue: ^3.2.0 dependencies: - "@ctrl/tinycolor": 3.4.1 + "@ctrl/tinycolor": 3.5.0 "@element-plus/icons-vue": 2.0.10_vue@3.2.45 "@floating-ui/dom": 1.0.7 "@popperjs/core": /@sxzz/popperjs-es/2.11.7 diff --git a/src/layout/hooks/useDataThemeChange.ts b/src/layout/hooks/useDataThemeChange.ts index a4089b2e6..0dde9876c 100644 --- a/src/layout/hooks/useDataThemeChange.ts +++ b/src/layout/hooks/useDataThemeChange.ts @@ -3,7 +3,6 @@ import { getConfig } from "@/config"; import { find } from "lodash-unified"; import { useLayout } from "./useLayout"; import { themeColorsType } from "../types"; -import { TinyColor } from "@ctrl/tinycolor"; import { useGlobal } from "@pureadmin/utils"; import { useEpThemeStoreHook } from "@/store/modules/epTheme"; import { @@ -61,30 +60,22 @@ export function useDataThemeChange() { } } - /** - * @description 自动计算hover和active颜色 - * @see {@link https://element-plus.org/zh-CN/component/button.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E9%A2%9C%E8%89%B2} - */ - const shadeBgColor = (color: string): string => { - return new TinyColor(color).shade(10).toString(); - }; + function setPropertyPrimary(mode: string, i: number, color: string) { + document.documentElement.style.setProperty( + `--el-color-primary-${mode}-${i}`, + dataTheme.value ? darken(color, i / 10) : lighten(color, i / 10) + ); + } /** 设置 `element-plus` 主题色 */ const setEpThemeColor = (color: string) => { useEpThemeStoreHook().setEpThemeColor(color); - body.style.setProperty("--el-color-primary-active", shadeBgColor(color)); document.documentElement.style.setProperty("--el-color-primary", color); - for (let i = 1; i <= 9; i++) { - document.documentElement.style.setProperty( - `--el-color-primary-light-${i}`, - lighten(color, i / 10) - ); - } for (let i = 1; i <= 2; i++) { - document.documentElement.style.setProperty( - `--el-color-primary-dark-${i}`, - darken(color, i / 10) - ); + setPropertyPrimary("dark", i, color); + } + for (let i = 1; i <= 9; i++) { + setPropertyPrimary("light", i, color); } }; diff --git a/src/style/dark.scss b/src/style/dark.scss index da2cf48f2..2150b9123 100644 --- a/src/style/dark.scss +++ b/src/style/dark.scss @@ -1,4 +1,4 @@ -@import "element-plus/theme-chalk/src/dark/css-vars.scss"; +@use "element-plus/theme-chalk/src/dark/css-vars.scss" as *; /* 暗黑模式适配 */ html.dark {