vue
routes:[
{
path: '/login',
name: 'login',
component: loginPage,
beforeEnter: (to, from, next) => {
Store.dispatch('role/getMe').then(response => {
next()
})
}
},
]
===========================================================================
import Vue from 'vue'
import Vuex from 'vuex'
import sms from './modules/sms'
import role from './modules/role'
import group from './modules/group'
import permission from './modules/permission'
Vue.use(Vuex)
const store = new Vuex.Store({
modules: {
sms: sms,
role: role,
group: group,
permission: permission
}
})
export default store
===========================================================================
import axios from 'axios'
const state = {
permissionList: [],
permissionDropdownList: [],
permissionDetail: {}
}
const actions = {
async getList ({ commit }, params) {
try {
const { data: { data, total } } = await axios.get(`api/permissions`, { params })
commit('SET_PERMISSION_LIST', {
data,
total: total
})
} catch (err) {
console.log('get list', err)
}
},
async getDropdownList ({ commit }, params) {
try {
const { data: { data, total } } = await axios.get(`api/permissions/dropdownlist`, { params })
commit('SET_PERMISSION_DROPDOWNLIST', {
data,
total: total
})
} catch (err) {
console.log('get dropdown list', err)
}
},
}
const mutations = {
SET_PERMISSION_LIST (state, permissions) {
state.permissionList = permissions.data
},
SET_PERMISSION_DROPDOWNLIST (state, permissions) {
state.permissionDropdownList = permissions.data
},
SET_PERMISSION_DETAIL (state, permission) {
state.permissionDetail = permission.data.data
},
}
export default {
namespaced: true,
state,
mutations,
actions
}