gohttpdUi/src/pages/index/store/modules/app.ts

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)