136 lines
3.7 KiB
TypeScript
136 lines
3.7 KiB
TypeScript
import store from '../index'
|
|
import { VuexModule, getModule, Module, Mutation, Action } from 'vuex-module-decorators'
|
|
|
|
export interface AppState {
|
|
collapsed: Boolean
|
|
showTags: Boolean
|
|
showLogo: Boolean
|
|
showNavbar: Boolean
|
|
fixedHeader: Boolean
|
|
layout: String
|
|
showBreadcrumb: Boolean
|
|
showHamburger: Boolean
|
|
showScreenfull: Boolean
|
|
showUserInfo: Boolean
|
|
title: String
|
|
logoTitle: String
|
|
userInfo: String
|
|
}
|
|
|
|
@Module({ dynamic: true, namespaced: true, store, name: 'app' })
|
|
class App extends VuexModule implements AppState {
|
|
public collapsed = false // 菜单栏是否栏缩收
|
|
public showLogo = true // 是否显示logo
|
|
public showTags = true // 是否显示标签栏
|
|
public showNavbar = true // 是否显示navbar
|
|
public fixedHeader = true // 是否固定header
|
|
public layout = 'Classic' // layout布局
|
|
public showBreadcrumb = true // 是否显示面包屑
|
|
public showHamburger = true // 是否显示侧边栏缩收按钮
|
|
public showScreenfull = true // 是否全屏按钮
|
|
public showUserInfo = true // 是否显示用户头像
|
|
public title = 'vue-element-plus-admin' // 标题
|
|
public logoTitle = 'vue-ElPlus-admin' // logo标题
|
|
public userInfo = 'userInfo' // 登录信息存储字段-建议每个项目换一个字段,避免与其他项目冲突
|
|
|
|
@Mutation
|
|
private SET_COLLAPSED(collapsed: boolean): void {
|
|
this.collapsed = collapsed
|
|
}
|
|
@Mutation
|
|
private SET_SHOWLOGO(showLogo: boolean): void {
|
|
this.showLogo = showLogo
|
|
}
|
|
@Mutation
|
|
private SET_SHOWTAGS(showTags: boolean): void {
|
|
this.showTags = showTags
|
|
}
|
|
@Mutation
|
|
private SET_NAVBAR(showNavbar: boolean): void {
|
|
this.showNavbar = showNavbar
|
|
}
|
|
@Mutation
|
|
private SET_FIXEDHEADER(fixedHeader: boolean): void {
|
|
this.fixedHeader = fixedHeader
|
|
}
|
|
@Mutation
|
|
private SET_LAYOUT(layout: 'Classic' | 'LeftTop' | 'Top' | 'Test'): void {
|
|
this.layout = layout
|
|
}
|
|
@Mutation
|
|
private SET_BREADCRUMB(showBreadcrumb: boolean): void {
|
|
this.showBreadcrumb = showBreadcrumb
|
|
}
|
|
@Mutation
|
|
private SET_HAMBURGER(showHamburger: boolean): void {
|
|
this.showHamburger = showHamburger
|
|
}
|
|
@Mutation
|
|
private SET_SCREENFULL(showScreenfull: boolean): void {
|
|
this.showScreenfull = showScreenfull
|
|
}
|
|
@Mutation
|
|
private SET_USERINFO(showUserInfo: boolean): void {
|
|
this.showUserInfo = showUserInfo
|
|
}
|
|
@Mutation
|
|
private SET_TITLE(title: string): void {
|
|
this.title = title
|
|
}
|
|
@Mutation
|
|
private SET_LOGOTITLE(logoTitle: string): void {
|
|
this.logoTitle = logoTitle
|
|
}
|
|
|
|
@Action
|
|
public SetCollapsed(collapsed: boolean): void {
|
|
this.SET_COLLAPSED(collapsed)
|
|
}
|
|
@Action
|
|
public SetShowLogo(showLogo: boolean): void {
|
|
this.SET_SHOWLOGO(showLogo)
|
|
}
|
|
@Action
|
|
public SetShowTags(showTags: boolean): void {
|
|
this.SET_SHOWTAGS(showTags)
|
|
}
|
|
@Action
|
|
public SetShowNavbar(showNavbar: boolean): void {
|
|
this.SET_NAVBAR(showNavbar)
|
|
}
|
|
@Action
|
|
public SetFixedHeader(fixedHeader: boolean): void {
|
|
this.SET_FIXEDHEADER(fixedHeader)
|
|
}
|
|
@Action
|
|
public SetLayout(layout: 'Classic' | 'LeftTop' | 'Top' | 'Test'): void {
|
|
this.SET_LAYOUT(layout)
|
|
}
|
|
@Action
|
|
public SetBreadcrumb(showBreadcrumb: boolean): void {
|
|
this.SET_BREADCRUMB(showBreadcrumb)
|
|
}
|
|
@Action
|
|
public SetHamburger(showHamburger: boolean): void {
|
|
this.SET_HAMBURGER(showHamburger)
|
|
}
|
|
@Action
|
|
public SetScreenfull(showScreenfull: boolean): void {
|
|
this.SET_SCREENFULL(showScreenfull)
|
|
}
|
|
@Action
|
|
public SetUserInfo(showUserInfo: boolean): void {
|
|
this.SET_USERINFO(showUserInfo)
|
|
}
|
|
@Action
|
|
public SetTitle(title: string): void {
|
|
this.SET_TITLE(title)
|
|
}
|
|
@Action
|
|
public SetLogoTitle(logoTitle: string): void {
|
|
this.SET_LOGOTITLE(logoTitle)
|
|
}
|
|
}
|
|
|
|
export const appStore = getModule<App>(App)
|