mirror of
https://github.com/zclzone/vue-naive-admin.git
synced 2026-01-08 17:20:21 +08:00
57 lines
1.6 KiB
JavaScript
57 lines
1.6 KiB
JavaScript
/**********************************
|
|
* @Author: Ronnie Zhang
|
|
* @LastEditor: Ronnie Zhang
|
|
* @LastEditTime: 2023/12/05 21:25:31
|
|
* @Email: zclzone@outlook.com
|
|
* Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top
|
|
**********************************/
|
|
|
|
import { defineStore } from 'pinia'
|
|
import { useDark } from '@vueuse/core'
|
|
import { generate, getRgbStr } from '@arco-design/color'
|
|
import { defaultLayout, defaultPrimaryColor, naiveThemeOverrides } from '@/settings'
|
|
|
|
export const useAppStore = defineStore('app', {
|
|
state: () => ({
|
|
collapsed: false,
|
|
isDark: useDark(),
|
|
layout: defaultLayout,
|
|
primaryColor: defaultPrimaryColor,
|
|
naiveThemeOverrides,
|
|
}),
|
|
actions: {
|
|
switchCollapsed() {
|
|
this.collapsed = !this.collapsed
|
|
},
|
|
setCollapsed(b) {
|
|
this.collapsed = b
|
|
},
|
|
toggleDark() {
|
|
this.isDark = !this.isDark
|
|
},
|
|
setLayout(v) {
|
|
this.layout = v
|
|
},
|
|
setPrimaryColor(color) {
|
|
this.primaryColor = color
|
|
},
|
|
setThemeColor(color = this.primaryColor, isDark = this.isDark) {
|
|
const colors = generate(color, {
|
|
list: true,
|
|
dark: isDark,
|
|
})
|
|
document.body.style.setProperty('--primary-color', getRgbStr(colors[5]))
|
|
this.naiveThemeOverrides.common = Object.assign(this.naiveThemeOverrides.common || {}, {
|
|
primaryColor: colors[5],
|
|
primaryColorHover: colors[4],
|
|
primaryColorSuppl: colors[4],
|
|
primaryColorPressed: colors[6],
|
|
})
|
|
},
|
|
},
|
|
persist: {
|
|
paths: ['collapsed', 'layout', 'primaryColor', 'naiveThemeOverrides'],
|
|
storage: sessionStorage,
|
|
},
|
|
})
|