import { GetterTree, Module, MutationTree } from 'vuex' import { RootState } from '..' import { SysMenuOutput as MenuTree } from '@/api/swagger' export interface MenuInfoState { menus: MenuTree[] buttons: string[] } const mutations: MutationTree = { init(state: MenuInfoState, payload: { menus: MenuTree[]; buttons: string[] }) { state.menus = payload.menus state.buttons = payload.buttons }, // 权限校验 authorization(state: MenuInfoState, auth): boolean { return true }, clear(state: MenuInfoState): void { state.menus = [] state.buttons = [] }, } const getters: GetterTree = { menus: (state: MenuInfoState) => state.menus || [], buttons: (state: MenuInfoState) => state.buttons || [], } const menuInfoState: MenuInfoState = { menus: [], buttons: [], } const menuModule: Module = { namespaced: true, state: menuInfoState, mutations, getters, } export default menuModule