2024-04-13 22:09:14 +08:00
|
|
|
|
import { defineStore } from "pinia";
|
2024-04-29 11:58:26 +08:00
|
|
|
|
import persistedstateConfig from "@/store/config/index";
|
2024-05-04 23:36:38 +08:00
|
|
|
|
|
|
|
|
|
|
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;
|
2024-05-06 16:07:17 +08:00
|
|
|
|
grayMode: Boolean;
|
|
|
|
|
|
colorWeakMode: Boolean;
|
2024-05-06 00:20:09 +08:00
|
|
|
|
themeColor: string;
|
2024-05-06 16:07:17 +08:00
|
|
|
|
presetColors: Array<string>;
|
2024-05-04 23:36:38 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2024-04-13 22:09:14 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 全局配置
|
|
|
|
|
|
* @methods setCollapsed 设置菜单折叠
|
2024-04-28 18:19:17 +08:00
|
|
|
|
* @methods setRefreshPage 刷新页面
|
|
|
|
|
|
* @methods setLanguage 设置语言
|
2024-04-13 22:09:14 +08:00
|
|
|
|
*/
|
2024-04-28 14:28:26 +08:00
|
|
|
|
export const useThemeConfig = defineStore("theme-config", {
|
2024-05-04 23:36:38 +08:00
|
|
|
|
state: (): ThemeConfig => ({
|
2024-04-21 17:09:20 +08:00
|
|
|
|
collapsed: false, // 是否折叠菜单
|
2024-04-27 19:18:49 +08:00
|
|
|
|
refreshPage: true, // 刷新页面
|
2024-05-01 23:56:53 +08:00
|
|
|
|
language: "zh-CN", // 系统语言
|
2024-05-03 18:05:14 +08:00
|
|
|
|
darkMode: false, // 黑暗模式
|
2024-05-04 23:36:38 +08:00
|
|
|
|
isAccordion: true, // 菜单手风琴
|
2024-05-03 18:05:14 +08:00
|
|
|
|
isBreadcrumb: true, // 面包屑渲染
|
|
|
|
|
|
isTabs: true, // 标签栏渲染
|
2024-05-04 23:36:38 +08:00
|
|
|
|
isFooter: true, // 页脚渲染
|
|
|
|
|
|
watermark: "dc admin", // 水印
|
|
|
|
|
|
watermarkStyle: {
|
|
|
|
|
|
fontSize: 12,
|
|
|
|
|
|
color: "rgba(0, 0, 0, 0.15)"
|
|
|
|
|
|
}, // 水印风格
|
|
|
|
|
|
watermarkRotate: 330, // 水印角度
|
|
|
|
|
|
watermarkGap: [100, 100], // 水印间隙
|
2024-05-06 00:20:09 +08:00
|
|
|
|
layoutType: "layoutDefaults", // 布局模式:layoutDefaults、layoutHead、layoutMixing
|
2024-05-06 16:07:17 +08:00
|
|
|
|
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"
|
|
|
|
|
|
]
|
2024-04-13 22:09:14 +08:00
|
|
|
|
}),
|
|
|
|
|
|
actions: {
|
2024-04-21 17:09:20 +08:00
|
|
|
|
// 折叠菜单
|
2024-04-28 14:28:26 +08:00
|
|
|
|
setCollapsed(data: boolean) {
|
2024-04-13 22:09:14 +08:00
|
|
|
|
this.collapsed = data;
|
2024-04-21 17:09:20 +08:00
|
|
|
|
},
|
|
|
|
|
|
// 刷新页面
|
|
|
|
|
|
setRefreshPage(data: Boolean) {
|
|
|
|
|
|
this.refreshPage = data;
|
2024-04-27 19:18:49 +08:00
|
|
|
|
},
|
|
|
|
|
|
// 设置语言
|
|
|
|
|
|
setLanguage(data: string) {
|
|
|
|
|
|
this.language = data;
|
2024-04-13 22:09:14 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
2024-04-29 11:58:26 +08:00
|
|
|
|
persist: persistedstateConfig("theme-config")
|
2024-04-13 22:09:14 +08:00
|
|
|
|
});
|