From ef95e5ce7307d2fae581afe6f2dc708d9e3ffa5c Mon Sep 17 00:00:00 2001 From: Frost-ZX Date: Fri, 11 Oct 2024 00:12:11 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=B7=A5=E5=85=B7=E7=AE=B1):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E2=80=9C=E4=BF=9D=E6=8C=81=E4=BA=AE=E5=B1=8F=E2=80=9D?= =?UTF-8?q?=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/js/toolbox-data.js | 13 +- src/assets/js/utils.js | 30 +++ src/views/ToolboxView/Other/KeepScreenOn.vue | 221 +++++++++++++++++++ 3 files changed, 263 insertions(+), 1 deletion(-) create mode 100644 src/views/ToolboxView/Other/KeepScreenOn.vue diff --git a/src/assets/js/toolbox-data.js b/src/assets/js/toolbox-data.js index 17d38c8..a134c93 100644 --- a/src/assets/js/toolbox-data.js +++ b/src/assets/js/toolbox-data.js @@ -195,8 +195,19 @@ export const toolList = [ { id: 'other-tools', title: '其他', - enabled: false, + enabled: true, items: [ + { + id: 'keep-screen-on', + component: 'Other/KeepScreenOn', + title: '保持亮屏', + iconClass: 'mdi mdi-monitor', + desc: '保持屏幕开启,不息屏,不休眠', + createdAt: '2024-10-13', + updatedAt: '2024-10-13', + version: '1', + enabled: true, + }, { id: 'open-new-window', component: 'Other/OpenNewWindow', diff --git a/src/assets/js/utils.js b/src/assets/js/utils.js index 5787cb9..c54a022 100644 --- a/src/assets/js/utils.js +++ b/src/assets/js/utils.js @@ -4,6 +4,36 @@ import { description as appDesc, } from '@package-json'; +/** 将十六进制颜色值转为灰度值 */ +export function colorHexToGrayLevel(hex = '') { + + let rgb = colorHexToRgb(hex); + + return Math.round(rgb.r * 0.299 + rgb.g * 0.587 + rgb.b * 0.114); + +} + +/** 将十六进制颜色值转为 RGB */ +export function colorHexToRgb(hex = '') { + + // 去除可能存在的 '#' 字符 + hex = hex.replace('#', ''); + + // 检查十六进制颜色值的长度,并根据长度决定如何处理 + if (hex.length === 3) { + // 如果是简写形式,如 #FFF,需要将其转换为完整形式 #FFFFFF + hex = hex.split('').map(char => char + char).join(''); + } + + // 分别解析出红色、绿色和蓝色的值 + let r = parseInt(hex.slice(0, 2), 16); + let g = parseInt(hex.slice(2, 4), 16); + let b = parseInt(hex.slice(4, 6), 16); + + return { r, g, b }; + +} + /** * @description 更新页面标题 * @param {string} title diff --git a/src/views/ToolboxView/Other/KeepScreenOn.vue b/src/views/ToolboxView/Other/KeepScreenOn.vue new file mode 100644 index 0000000..a69dbf6 --- /dev/null +++ b/src/views/ToolboxView/Other/KeepScreenOn.vue @@ -0,0 +1,221 @@ + + + + +