kun-galgame-vue/src/store/modules/settings.ts

65 lines
1.8 KiB
TypeScript
Raw Normal View History

2023-05-12 18:23:22 +00:00
// KUNGalgame 设置面板的 store
import { defineStore } from 'pinia'
2023-05-26 09:07:35 +00:00
2023-06-15 15:51:50 +00:00
// 网站的默认设置
2023-08-20 13:38:40 +00:00
import { KUNGalgameLanguage, mode } from '@/utils/getDefaultEnv'
2023-06-15 15:51:50 +00:00
2023-05-26 09:07:35 +00:00
// 设置面板配置
interface KUNGalgameSettings {
2023-06-06 16:58:09 +00:00
// 白天黑夜模式切换
showKUNGalgameMode: string
// 网站显示语言
showKUNGalgameLanguage: string
2023-05-26 09:07:35 +00:00
// 主页宽度
2023-09-09 15:42:55 +00:00
showKUNGalgamePageWidth: Record<string, number>
2023-09-10 10:49:47 +00:00
// 网站字体
showKUNGalgameFontStyle: string
2023-05-27 02:39:57 +00:00
// 背景图
showKUNGalgameBackground: string
2023-05-30 14:06:30 +00:00
// 自定义背景图
showKUNGalgameCustomBackground: string
2023-09-10 10:49:47 +00:00
// 显示页面宽度还是显示字体设置
2023-05-26 09:07:35 +00:00
}
export const useKUNGalgameSettingsStore = defineStore({
id: 'KUNGalgame-settings',
persist: true,
// 默认值
state: (): KUNGalgameSettings => ({
2023-06-15 15:51:50 +00:00
showKUNGalgameMode: mode,
2023-08-20 13:38:40 +00:00
showKUNGalgameLanguage: KUNGalgameLanguage,
2023-09-09 15:42:55 +00:00
showKUNGalgamePageWidth: {
KUN: 61.8,
Topic: 90,
Edit: 90,
KUNGalgame: 90,
Pool: 90,
Bylaw: 90,
Technique: 90,
ThanksList: 90,
},
2023-09-10 10:49:47 +00:00
showKUNGalgameFontStyle: '',
showKUNGalgameBackground: 'none',
showKUNGalgameCustomBackground: '',
}),
actions: {
2023-06-06 16:58:09 +00:00
// 设置主题,只有两种模式 light 和 darklight 为 ''
setKUNGalgameTheme(theme: string) {
this.showKUNGalgameMode = theme
document.documentElement.className = theme
},
2023-09-10 10:49:47 +00:00
// 设置字体,用户自己设置,默认为系统 UI
setKUNGalgameFontStyle(font: string) {
this.showKUNGalgameFontStyle = font
document.documentElement.style.fontFamily = font
},
// 恢复所有设置,由于调用了 document所以 pinia 响应式不生效
setKUNGalgameSettingsRecover() {
this.$reset()
this.setKUNGalgameTheme('')
this.setKUNGalgameFontStyle('')
},
},
2023-05-12 18:23:22 +00:00
})