Skip to content

Commit 3c2992f

Browse files
committed
feat: 新增哀悼模式和色弱模式
1 parent 306f357 commit 3c2992f

File tree

4 files changed

+44
-0
lines changed

4 files changed

+44
-0
lines changed

src/settings.default.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
const globalSettingsDefault: RecursiveRequired<Settings.all> = {
33
app: {
44
colorScheme: 'light',
5+
enableMournMode: false,
6+
enableColorAmblyopiaMode: false,
57
enablePermission: false,
68
},
79
menu: {

src/store/modules/settings.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,23 @@ export const useSettingsStore = defineStore(
3737
break
3838
}
3939
}
40+
watch([
41+
() => settings.value.app.enableMournMode,
42+
() => settings.value.app.enableColorAmblyopiaMode,
43+
], (val) => {
44+
document.documentElement.style.removeProperty('filter')
45+
if (val[0] && val[1]) {
46+
document.documentElement.style.setProperty('filter', 'grayscale(100%) invert(80%)')
47+
}
48+
else if (val[0]) {
49+
document.documentElement.style.setProperty('filter', 'grayscale(100%)')
50+
}
51+
else if (val[1]) {
52+
document.documentElement.style.setProperty('filter', 'invert(80%)')
53+
}
54+
}, {
55+
immediate: true,
56+
})
4057

4158
watch(() => settings.value.menu.mode, (val) => {
4259
document.body.setAttribute('data-menu-mode', val)

src/types/global.d.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,16 @@ declare namespace Settings {
1414
* @可选值 `'dark'` 暗黑模式
1515
*/
1616
colorScheme?: '' | 'light' | 'dark'
17+
/**
18+
* 是否开启哀悼模式
19+
* @默认值 `false`
20+
*/
21+
enableMournMode?: boolean
22+
/**
23+
* 是否开启色弱模式
24+
* @默认值 `false`
25+
*/
26+
enableColorAmblyopiaMode?: boolean
1727
/**
1828
* 是否开启权限功能
1929
* @默认值 `false`

src/views/components/AppSetting/index.vue

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,21 @@ function handleCopy() {
244244
</div>
245245
<HToggle v-model="settingsStore.settings.app.enablePermission" />
246246
</div>
247+
<div class="setting-item">
248+
<div class="label">
249+
哀悼模式
250+
<HTooltip text="该功能开启时,整站会变为灰色">
251+
<SvgIcon name="i-ri:question-line" />
252+
</HTooltip>
253+
</div>
254+
<HToggle v-model="settingsStore.settings.app.enableMournMode" />
255+
</div>
256+
<div class="setting-item">
257+
<div class="label">
258+
色弱模式
259+
</div>
260+
<HToggle v-model="settingsStore.settings.app.enableColorAmblyopiaMode" />
261+
</div>
247262
<template v-if="isSupported" #footer>
248263
<HButton block @click="handleCopy">
249264
<SvgIcon name="i-ep:document-copy" />

0 commit comments

Comments
 (0)