初始化
This commit is contained in:
160
saiadmin-vue/src/store/modules/app.js
Normal file
160
saiadmin-vue/src/store/modules/app.js
Normal file
@@ -0,0 +1,160 @@
|
||||
let defaultSetting = {
|
||||
mode: 'light',
|
||||
tag: true,
|
||||
menuCollapse: false,
|
||||
menuWidth: 230,
|
||||
layout: 'classic',
|
||||
skin: 'mine',
|
||||
i18n: false,
|
||||
language: 'zh_CN',
|
||||
animation: 'ma-slide-down',
|
||||
color: '#7166F0',
|
||||
settingOpen: false,
|
||||
searchOpen: false,
|
||||
roundOpen: true,
|
||||
waterMark: true,
|
||||
waterContent: 'saiadmin',
|
||||
ws: false,
|
||||
registerWangEditorButtonFlag: false
|
||||
}
|
||||
|
||||
import { defineStore } from 'pinia'
|
||||
import tool from '@/utils/tool'
|
||||
import { generate, getRgbStr } from '@arco-design/color'
|
||||
|
||||
if (!tool.local.get('setting')) {
|
||||
tool.local.set('setting', defaultSetting)
|
||||
} else {
|
||||
defaultSetting = tool.local.get('setting')
|
||||
}
|
||||
|
||||
document.body.setAttribute('arco-theme', defaultSetting.mode)
|
||||
document.body.setAttribute('mine-skin', defaultSetting.skin)
|
||||
|
||||
const useAppStore = defineStore('app', {
|
||||
state: () => ({ ...defaultSetting }),
|
||||
|
||||
getters: {
|
||||
appCurrentSetting() {
|
||||
return { ...this.$state }
|
||||
}
|
||||
},
|
||||
|
||||
actions: {
|
||||
updateSettings(partial) {
|
||||
this.$patch(partial)
|
||||
},
|
||||
|
||||
toggleMode(dark) {
|
||||
this.mode = dark
|
||||
document.getElementsByTagName('html')[0].className = this.mode
|
||||
document.body.setAttribute('arco-theme', this.mode)
|
||||
defaultSetting.mode = this.mode
|
||||
this.changeColor(this.color)
|
||||
tool.local.set('setting', defaultSetting)
|
||||
},
|
||||
|
||||
toggleMenu(status) {
|
||||
this.menuCollapse = status
|
||||
defaultSetting.menuCollapse = this.menuCollapse
|
||||
tool.local.set('setting', defaultSetting)
|
||||
},
|
||||
|
||||
toggleRound(status) {
|
||||
this.roundOpen = status
|
||||
if (this.roundOpen) {
|
||||
document.body.style.setProperty(`--border-radius-small`, '4px')
|
||||
document.body.style.setProperty(`--border-radius-medium`, '6px')
|
||||
} else {
|
||||
document.body.style.setProperty(`--border-radius-small`, '2px')
|
||||
document.body.style.setProperty(`--border-radius-medium`, '4px')
|
||||
}
|
||||
defaultSetting.roundOpen = this.roundOpen
|
||||
tool.local.set('setting', defaultSetting)
|
||||
},
|
||||
|
||||
toggleWater(status) {
|
||||
this.waterMark = status
|
||||
defaultSetting.waterMark = this.waterMark
|
||||
tool.local.set('setting', defaultSetting)
|
||||
},
|
||||
|
||||
changeWaterContent(val) {
|
||||
this.waterContent = val.target ? val.target.value : val
|
||||
defaultSetting.waterContent = this.waterContent
|
||||
tool.local.set('setting', defaultSetting)
|
||||
},
|
||||
|
||||
toggleTag(status) {
|
||||
this.tag = status
|
||||
defaultSetting.tag = this.tag
|
||||
tool.local.set('setting', defaultSetting)
|
||||
},
|
||||
|
||||
toggleI18n(i18n) {
|
||||
this.i18n = i18n
|
||||
defaultSetting.i18n = this.i18n
|
||||
tool.local.set('setting', defaultSetting)
|
||||
},
|
||||
|
||||
toggleWs(val) {
|
||||
this.ws = val
|
||||
defaultSetting.ws = this.ws
|
||||
tool.local.set('setting', defaultSetting)
|
||||
},
|
||||
|
||||
changeMenuWidth(width) {
|
||||
this.menuWidth = width
|
||||
defaultSetting.menuWidth = this.menuWidth
|
||||
tool.local.set('setting', defaultSetting)
|
||||
},
|
||||
|
||||
changeLayout(layout) {
|
||||
this.layout = layout
|
||||
defaultSetting.layout = this.layout
|
||||
tool.local.set('setting', defaultSetting)
|
||||
},
|
||||
|
||||
changeLanguage(language) {
|
||||
this.language = language
|
||||
defaultSetting.language = this.language
|
||||
tool.local.set('setting', defaultSetting)
|
||||
window.location.reload()
|
||||
},
|
||||
|
||||
changeColor(color) {
|
||||
if (!/^#[0-9A-Za-z]{6}/.test(color)) return
|
||||
this.color = color
|
||||
const list = generate(this.color, {
|
||||
list: true,
|
||||
dark: this.mode === 'dark'
|
||||
})
|
||||
list.forEach((color, index) => {
|
||||
const rgbStr = getRgbStr(color)
|
||||
document.body.style.setProperty(`--primary-${index + 1}`, rgbStr)
|
||||
document.body.style.setProperty(`--arcoblue-${index + 1}`, rgbStr)
|
||||
})
|
||||
defaultSetting.color = this.color
|
||||
tool.local.set('setting', defaultSetting)
|
||||
},
|
||||
|
||||
changeAnimation(name) {
|
||||
this.animation = name
|
||||
defaultSetting.animation = this.animation
|
||||
tool.local.set('setting', defaultSetting)
|
||||
},
|
||||
|
||||
useSkin(name) {
|
||||
this.skin = name
|
||||
defaultSetting.skin = this.skin
|
||||
document.body.setAttribute('mine-skin', this.skin)
|
||||
tool.local.set('setting', defaultSetting)
|
||||
},
|
||||
|
||||
setRegisterWangEditorButtonFlag(value) {
|
||||
this.registerWangEditorButtonFlag = value
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
export default useAppStore
|
||||
Reference in New Issue
Block a user