| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import { defineStore } from "pinia";
- import {
- store,
- getConfig,
- storageLocal,
- responsiveStorageNameSpace
- } from "../utils";
- export const useEpThemeStore = defineStore("pure-epTheme", {
- state: () => ({
- epThemeColor:
- storageLocal().getItem<StorageConfigs>(
- `${responsiveStorageNameSpace()}layout`
- )?.epThemeColor ?? getConfig().EpThemeColor,
- epTheme:
- storageLocal().getItem<StorageConfigs>(
- `${responsiveStorageNameSpace()}layout`
- )?.theme ?? getConfig().Theme
- }),
- getters: {
- getEpThemeColor(state) {
- return state.epThemeColor;
- },
- /** 用于mix导航模式下hamburger-svg的fill属性 */
- fill(state) {
- if (state.epTheme === "light") {
- return "#409eff";
- } else {
- return "#fff";
- }
- }
- },
- actions: {
- setEpThemeColor(newColor: string): void {
- const layout = storageLocal().getItem<StorageConfigs>(
- `${responsiveStorageNameSpace()}layout`
- );
- this.epTheme = layout?.theme;
- this.epThemeColor = newColor;
- if (!layout) return;
- layout.epThemeColor = newColor;
- storageLocal().setItem(`${responsiveStorageNameSpace()}layout`, layout);
- }
- }
- });
- export function useEpThemeStoreHook() {
- return useEpThemeStore(store);
- }
|