ebike-plus-ui/src/store/modules/theme-config.ts
2024-05-06 16:07:17 +08:00

92 lines
2.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { defineStore } from "pinia";
import persistedstateConfig from "@/store/config/index";
interface ThemeConfig {
collapsed: Boolean;
refreshPage: Boolean;
language: string;
darkMode: Boolean;
isAccordion: Boolean;
isBreadcrumb: Boolean;
isTabs: Boolean;
isFooter: Boolean;
watermark: string;
watermarkStyle: any;
watermarkRotate: number;
watermarkGap: Array<number>;
layoutType: string;
grayMode: Boolean;
colorWeakMode: Boolean;
themeColor: string;
presetColors: Array<string>;
}
/**
* 全局配置
* @methods setCollapsed 设置菜单折叠
* @methods setRefreshPage 刷新页面
* @methods setLanguage 设置语言
*/
export const useThemeConfig = defineStore("theme-config", {
state: (): ThemeConfig => ({
collapsed: false, // 是否折叠菜单
refreshPage: true, // 刷新页面
language: "zh-CN", // 系统语言
darkMode: false, // 黑暗模式
isAccordion: true, // 菜单手风琴
isBreadcrumb: true, // 面包屑渲染
isTabs: true, // 标签栏渲染
isFooter: true, // 页脚渲染
watermark: "dc admin", // 水印
watermarkStyle: {
fontSize: 12,
color: "rgba(0, 0, 0, 0.15)"
}, // 水印风格
watermarkRotate: 330, // 水印角度
watermarkGap: [100, 100], // 水印间隙
layoutType: "layoutDefaults", // 布局模式layoutDefaults、layoutHead、layoutMixing
colorWeakMode: false, // 色弱模式
grayMode: false, // 灰色模式
themeColor: "#165DFF", // 主题色
presetColors: [
"#165DFF",
"#F53F3F",
"#F77234",
"#FF7D00",
"#F7BA1E",
"#FADC19",
"#9FDB1D",
"#00B42A",
"#14C9C9",
"#3491FA",
"#165DFF",
"#722ED1",
"#D91AD9",
"#F5319D",
"#67C23A",
"#E6A23C",
"#F56C6C",
"#409EFF",
"#a27b42",
"#dfc683",
"#59a680",
"#b1d391"
]
}),
actions: {
// 折叠菜单
setCollapsed(data: boolean) {
this.collapsed = data;
},
// 刷新页面
setRefreshPage(data: Boolean) {
this.refreshPage = data;
},
// 设置语言
setLanguage(data: string) {
this.language = data;
}
},
persist: persistedstateConfig("theme-config")
});