app.js 2.21 KB
import Cookies from 'js-cookie';
import {modifyThemeColor} from '@/utils';

const state = {
    sidebar: {
        opened: true,
        withoutAnimation: false
    },
    device: 'desktop',
    size: Cookies.get('size') || 'medium',
    theme: Cookies.get('theme') || '#409EFF',
    layout: Cookies.get('layout') || 'layout2'
};

const mutations = {
    TOGGLE_SIDEBAR: state => {
        // state.sidebar.opened = !state.sidebar.opened;
        // state.sidebar.withoutAnimation = false;
        // if (state.sidebar.opened) {
        //     Cookies.set('sidebarStatus', 1);
        // } else {
        //     Cookies.set('sidebarStatus', 0);
        // }
    },
    CLOSE_SIDEBAR: (state, withoutAnimation) => {
        // Cookies.set('sidebarStatus', 0);
        // state.sidebar.opened = false;
        // state.sidebar.withoutAnimation = withoutAnimation;
    },
    TOGGLE_DEVICE: (state, device) => {
        state.device = device;
    },
    SET_SIZE: (state, size) => {
        state.size = size;
        Cookies.set('size', size);
    },
    SET_THEME: (state, theme) => {
        modifyThemeColor(state.theme, theme);
        state.theme = theme;
        Cookies.set('theme', theme);
    },
    SET_LAYOUT: (state, layout) => {
        state.layout = layout;
        Cookies.set('layout', layout);
    }
};

const actions = {
    toggleSideBar({
                      commit
                  }) {
        commit('TOGGLE_SIDEBAR');
    },
    closeSideBar({
                     commit
                 }, {
                     withoutAnimation
                 }) {
        commit('CLOSE_SIDEBAR', withoutAnimation);
    },
    toggleDevice({
                     commit
                 }, device) {
        commit('TOGGLE_DEVICE', device);
    },
    setSize({
                commit
            }, size) {
        commit('SET_SIZE', size);
    },
    setTheme({
                 commit
             }, theme) {
        commit('SET_THEME', theme);
    },
    initThemeColorLayout({
                             commit
                         }) {
    },
    setLayout({
                  commit
              }, layout) {
        commit('SET_LAYOUT', layout);
    }
};

export default {
    namespaced: true,
    state,
    mutations,
    actions
};