zs 9 months ago
parent
commit
d385f2d100
5 changed files with 84 additions and 137 deletions
  1. 0 6
      src/store/getters.js
  2. 42 0
      src/store/system/menus.js
  3. 42 0
      src/store/system/role.js
  4. 0 116
      src/store/user/user.js
  5. 0 15
      src/util/auth.js

+ 0 - 6
src/store/getters.js

@@ -1,6 +0,0 @@
-const getters = {
-  visitedViews: (state) => state.tagsView.visitedViews,
-  cachedViews: (state) => state.tagsView.cachedViews,
-  token: (state) => state.user.token,
-};
-export default getters;

+ 42 - 0
src/store/system/menus.js

@@ -0,0 +1,42 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  test: `/menu`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(`${api.test}`, {
+      skip,
+      limit,
+      ...info,
+    });
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.test}/${payload}`);
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.test}`, payload);
+    return res;
+  },
+  async update({ commit }, { id, ...info } = {}) {
+    const res = await this.$axios.$post(`${api.test}/${id}`, { ...info });
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.test}/${payload}`);
+    return res;
+  },
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 42 - 0
src/store/system/role.js

@@ -0,0 +1,42 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  test: `/role`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(`${api.test}`, {
+      skip,
+      limit,
+      ...info,
+    });
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.test}/${payload}`);
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.test}`, payload);
+    return res;
+  },
+  async update({ commit }, { id, ...info } = {}) {
+    const res = await this.$axios.$post(`${api.test}/${id}`, { ...info });
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.test}/${payload}`);
+    return res;
+  },
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 0 - 116
src/store/user/user.js

@@ -1,116 +0,0 @@
-import { login, logout, getInfo } from '@/api/user';
-import { getToken, setToken, removeToken } from '@/util/auth';
-import router, { resetRouter } from '@/router';
-
-const state = {
-  token: getToken(),
-  name: '',
-};
-
-const mutations = {
-  SET_TOKEN: (state, token) => {
-    state.token = token;
-  },
-  SET_NAME: (state, name) => {
-    state.name = name;
-  },
-  SET_ROLES: (state, roles) => {
-    state.roles = roles;
-  },
-};
-
-const actions = {
-  // user login
-  login({ commit }, userInfo) {
-    const { username, password } = userInfo;
-    return new Promise((resolve, reject) => {
-      login({ username: username.trim(), password: password })
-        .then((response) => {
-          const { data } = response;
-          commit('SET_TOKEN', data.token);
-          setToken(data.token);
-          resolve();
-        })
-        .catch((error) => {
-          reject(error);
-        });
-    });
-  },
-
-  // get user info
-  getInfo({ commit, state }) {
-    return new Promise((resolve, reject) => {
-      getInfo(state.token)
-        .then((response) => {
-          const { data } = response;
-
-          if (!data) {
-            reject('Verification failed, please Login again.');
-          }
-          const { roles, name, avatar, introduction } = data;
-          // roles must be a non-empty array
-          if (!roles || roles.length <= 0) {
-            reject('getInfo: roles must be a non-null array!');
-          }
-          commit('SET_ROLES', roles);
-          commit('SET_NAME', name);
-          resolve(data);
-        })
-        .catch((error) => {
-          reject(error);
-        });
-    });
-  },
-
-  // user logout
-  logout({ commit, state, dispatch }) {
-    return new Promise((resolve, reject) => {
-      logout(state.token)
-        .then(() => {
-          commit('SET_TOKEN', '');
-          commit('SET_ROLES', []);
-          removeToken();
-          resetRouter();
-          // reset visited views and cached views
-          // to fixed https://github.com/PanJiaChen/vue-element-admin/issues/2485
-          dispatch('tagsView/delAllViews', null, { root: true });
-          resolve();
-        })
-        .catch((error) => {
-          reject(error);
-        });
-    });
-  },
-
-  // remove token
-  resetToken({ commit }) {
-    return new Promise((resolve) => {
-      commit('SET_TOKEN', '');
-      commit('SET_ROLES', []);
-      removeToken();
-      resolve();
-    });
-  },
-
-  // dynamically modify permissions
-  async changeRoles({ commit, dispatch }, role) {
-    const token = role + '-token';
-    commit('SET_TOKEN', token);
-    setToken(token);
-    const { roles } = await dispatch('getInfo');
-    resetRouter();
-    // generate accessible routes map based on roles
-    const accessRoutes = await dispatch('permission/generateRoutes', roles, { root: true });
-    // dynamically add accessible routes
-    router.addRoutes(accessRoutes);
-    // reset visited views and cached views
-    dispatch('tagsView/delAllViews', null, { root: true });
-  },
-};
-
-export default {
-  namespaced: true,
-  state,
-  mutations,
-  actions,
-};

+ 0 - 15
src/util/auth.js

@@ -1,15 +0,0 @@
-import Cookies from 'js-cookie';
-
-const TokenKey = 'token';
-
-export function getToken() {
-  return Cookies.get(TokenKey);
-}
-
-export function setToken(token) {
-  return Cookies.set(TokenKey, token);
-}
-
-export function removeToken() {
-  return Cookies.remove(TokenKey);
-}