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 @@
+
+
+
+
+
开关 / Switch
+
+
+ 开启
+ 关闭
+
+
+
背景颜色 / Background Color
+
+
+
+
切换全屏 / Toggle Fullscreen
+
+
+ 开启
+ 关闭
+
+
+
隐藏界面 / Hide UI
+
+
+ 隐藏
+ 显示
+
+
+
+
+
+
+
+
+