|
@@ -1,189 +0,0 @@
|
|
|
-import Vue from 'vue'
|
|
|
-import Vuex from 'vuex'
|
|
|
-import getters from './getters'
|
|
|
-import app from './modules/app'
|
|
|
-import settings from './modules/settings'
|
|
|
-import user from './modules/user'
|
|
|
-import { login, logout, getInfo } from '@/api/user'
|
|
|
-import { getToken, setToken, removeToken } from '@/utils/auth'
|
|
|
-import router from '../router/index'
|
|
|
-/* Layout */
|
|
|
-import Layout from '@/layout'
|
|
|
-
|
|
|
-Vue.use(Vuex)
|
|
|
-
|
|
|
-
|
|
|
-const getDefaultState = () => {
|
|
|
- return {
|
|
|
- token: getToken(),
|
|
|
- name: '',
|
|
|
- avatar: '',
|
|
|
- routes: []
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-const state = getDefaultState()
|
|
|
-
|
|
|
-const mutations = {
|
|
|
- RESET_STATE: (state) => {
|
|
|
- Object.assign(state, getDefaultState())
|
|
|
- },
|
|
|
- SET_TOKEN: (state, token) => {
|
|
|
- state.token = token
|
|
|
- },
|
|
|
- SET_NAME: (state, name) => {
|
|
|
- state.name = name
|
|
|
- },
|
|
|
- SET_AVATAR: (state, avatar) => {
|
|
|
- state.avatar = avatar
|
|
|
- },
|
|
|
- // 移除用户
|
|
|
- REMOVE: (state) => {
|
|
|
- state.name = ''
|
|
|
- state.addRoutes = []
|
|
|
- //退出后,改变还原静态路由
|
|
|
- removeArrayData(constantRoutes)
|
|
|
- },
|
|
|
- ADD_ROUTES: (state, routes) => {
|
|
|
- state.addRoutes = routes
|
|
|
- routes.forEach((i, index) => {
|
|
|
- // 从第3+index个位置插入
|
|
|
- constantRoutes.splice(3 + index, 0, i)
|
|
|
- })
|
|
|
- },
|
|
|
- SET_MENULIST: (state, menuList) => {
|
|
|
- console.log(state.menuList = menuList)
|
|
|
- state.menuList = menuList
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-const actions = {
|
|
|
- // user login
|
|
|
- login({ commit }, userInfo) {
|
|
|
- const { username, password } = userInfo
|
|
|
- return new Promise((resolve, reject) => {
|
|
|
- login({ username: username.trim(), password: password }).then(response => {
|
|
|
- var time = new Date().getTime()
|
|
|
- if (response.flag == true) {
|
|
|
- var data = {
|
|
|
- token: time
|
|
|
- }
|
|
|
- commit('SET_TOKEN', data.token)
|
|
|
- setToken(data.token)
|
|
|
- resolve()
|
|
|
- } else {
|
|
|
- reject("输入的账号密码有误!")
|
|
|
- }
|
|
|
- }).catch(error => {
|
|
|
- reject(error)
|
|
|
- })
|
|
|
- })
|
|
|
- },
|
|
|
- // get user info
|
|
|
- getInfo({ commit, state }, data) {
|
|
|
- const { parentId, userId } = data
|
|
|
- return new Promise((resolve, reject) => {
|
|
|
- getInfo({ parentId: parentId, userId: userId }).then(response => {
|
|
|
- // console.log(response)
|
|
|
- var arrayList = [];
|
|
|
- for (let i = 0; i < response.length; i++) {
|
|
|
- arrayList.push({
|
|
|
- path: response[i].path,
|
|
|
- component: Layout,
|
|
|
- redirect: response[i].url,
|
|
|
- name: response[i].name,
|
|
|
- meta: {
|
|
|
- title: response[i].title,
|
|
|
- icon: response[i].icon
|
|
|
- },
|
|
|
- children: []
|
|
|
- })
|
|
|
- for (let j = 0; j < response[i].children.length; j++) {
|
|
|
- var new_response = response[i].children[j]
|
|
|
- var url = new_response.url
|
|
|
- arrayList[i].children.push({
|
|
|
- path: new_response.path,
|
|
|
- name: new_response.name,
|
|
|
- component: (resolve) => require([`@/views` + `${url}`], resolve),
|
|
|
- meta: {
|
|
|
- title: new_response.title,
|
|
|
- icon: new_response.icon
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
- // console.log(arrayList)
|
|
|
-
|
|
|
- var List = [
|
|
|
- {
|
|
|
- path: '/index',
|
|
|
- component: () =>
|
|
|
- import ('@/views/index/index'),
|
|
|
- hidden: true,
|
|
|
- },
|
|
|
- {
|
|
|
- path: '/',
|
|
|
- component: Layout,
|
|
|
- redirect: '/index',
|
|
|
- children: [{
|
|
|
- path: 'index',
|
|
|
- name: 'index',
|
|
|
- component: () =>
|
|
|
- import ('@/views/index/index'),
|
|
|
- meta: { title: '首页', icon: 'home' }
|
|
|
- }]
|
|
|
- },
|
|
|
- {
|
|
|
- path: '*',
|
|
|
- redirect: '/404',
|
|
|
- hidden: true
|
|
|
- }
|
|
|
- ]
|
|
|
- router.options.routes = arrayList
|
|
|
- state.app.routes = router.options.routes
|
|
|
- router.addRoutes(List)
|
|
|
-
|
|
|
- }).catch(error => {
|
|
|
- reject(error)
|
|
|
- })
|
|
|
- })
|
|
|
- },
|
|
|
-
|
|
|
- // user logout
|
|
|
- logout({ commit, state }) {
|
|
|
- return new Promise((resolve, reject) => {
|
|
|
- logout().then((response) => {
|
|
|
- removeToken() // must remove token first
|
|
|
- // resetRouter()
|
|
|
- commit('RESET_STATE')
|
|
|
- resolve()
|
|
|
- }).catch(error => {
|
|
|
- reject(error)
|
|
|
- })
|
|
|
- })
|
|
|
- },
|
|
|
-
|
|
|
- // remove token
|
|
|
- resetToken({ commit }) {
|
|
|
- return new Promise(resolve => {
|
|
|
- removeToken() // must remove token first
|
|
|
- commit('RESET_STATE')
|
|
|
- resolve()
|
|
|
- })
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-const store = new Vuex.Store({
|
|
|
- modules: {
|
|
|
- app,
|
|
|
- settings,
|
|
|
- user
|
|
|
- },
|
|
|
- getters,
|
|
|
- actions,
|
|
|
- state,
|
|
|
- mutations,
|
|
|
- router
|
|
|
-})
|
|
|
-
|
|
|
-export default store
|