diff --git a/src/api/modules/app.ts b/src/api/modules/app.ts new file mode 100644 index 00000000..d993b2b9 --- /dev/null +++ b/src/api/modules/app.ts @@ -0,0 +1,13 @@ +import api from '../index' + +export default { + // 后端获取路由数据 + routeList: () => api.get('mock/app/route/list', { + baseURL: '/mock/', + }), + + // 基于文件系统路由模式下,后端获取导航菜单数据 + menuList: () => api.get('mock/app/menu/list', { + baseURL: '/mock/', + }), +} diff --git a/src/api/modules/user.ts b/src/api/modules/user.ts new file mode 100644 index 00000000..b9fd2b25 --- /dev/null +++ b/src/api/modules/user.ts @@ -0,0 +1,24 @@ +import api from '../index' + +export default { + // 登录 + login: (data: { + account: string + password: string + }) => api.post('user/login', data, { + baseURL: '/mock/', + }), + + // 获取权限 + permission: () => api.get('user/permission', { + baseURL: '/mock/', + }), + + // 修改密码 + passwordEdit: (data: { + password: string + newpassword: string + }) => api.post('user/password/edit', data, { + baseURL: '/mock/', + }), +} diff --git a/src/mock/member.ts b/src/mock/user.ts similarity index 67% rename from src/mock/member.ts rename to src/mock/user.ts index 55f68342..e372cf6e 100644 --- a/src/mock/member.ts +++ b/src/mock/user.ts @@ -1,25 +1,25 @@ export default [ { - url: '/mock/member/login', + url: '/mock/user/login', method: 'post', - response: (option: any) => { + response: ({ body }: any) => { return { error: '', status: 1, data: { - account: option.body.account, - token: `${option.body.account}_@string`, + account: body.account, + token: `${body.account}_@string`, failure_time: Math.ceil(new Date().getTime() / 1000) + 24 * 60 * 60, }, } }, }, { - url: '/mock/member/permission', + url: '/mock/user/permission', method: 'get', - response: (option: any) => { + response: ({ headers }: any) => { let permissions: string[] = [] - if (option.headers.token.indexOf('admin') === 0) { + if (headers.token.indexOf('admin') === 0) { permissions = [ 'permission.browse', 'permission.create', @@ -27,7 +27,7 @@ export default [ 'permission.remove', ] } - else if (option.headers.token.indexOf('test') === 0) { + else if (headers.token.indexOf('test') === 0) { permissions = [ 'permission.browse', ] @@ -42,7 +42,7 @@ export default [ }, }, { - url: '/mock/member/edit/password', + url: '/mock/user/password/edit', method: 'post', response: { error: '', diff --git a/src/store/modules/menu.ts b/src/store/modules/menu.ts index 26c69941..d416b876 100644 --- a/src/store/modules/menu.ts +++ b/src/store/modules/menu.ts @@ -2,11 +2,10 @@ import { cloneDeep } from 'lodash-es' import useSettingsStore from './settings' import useUserStore from './user' import useRouteStore from './route' -import type { Menu } from '#/global' - import { resolveRoutePath } from '@/utils' -import api from '@/api' +import apiApp from '@/api/modules/app' import menu from '@/menu' +import type { Menu } from '#/global' const useMenuStore = defineStore( // 唯一ID @@ -147,9 +146,7 @@ const useMenuStore = defineStore( } // 生成导航(后端生成) async function generateMenusAtBack() { - await api.get('menu/list', { - baseURL: '/mock/', - }).then(async (res) => { + await apiApp.menuList().then(async (res) => { let accessedMenus: Menu.recordMainRaw[] // 如果权限功能开启,则需要对导航数据进行筛选过滤 if (settingsStore.settings.app.enablePermission) { diff --git a/src/store/modules/route.ts b/src/store/modules/route.ts index 089f5e83..83a3b886 100644 --- a/src/store/modules/route.ts +++ b/src/store/modules/route.ts @@ -2,9 +2,9 @@ import { cloneDeep } from 'lodash-es' import type { RouteMeta, RouteRecordRaw } from 'vue-router' import useSettingsStore from './settings' import useUserStore from './user' -import api from '@/api' import { resolveRoutePath } from '@/utils' import { systemRoutes } from '@/router/routes' +import apiApp from '@/api/modules/app' import type { Route } from '#/global' const useRouteStore = defineStore( @@ -196,9 +196,7 @@ const useRouteStore = defineStore( } // 根据权限动态生成路由(后端获取) async function generateRoutesAtBack() { - await api.get('route/list', { - baseURL: '/mock/', - }).then(async (res) => { + await apiApp.routeList().then(async (res) => { // 设置 routes 数据 routesRaw.value = formatBackRoutes(res.data) if (settingsStore.settings.app.enablePermission) { diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index 56ba4478..4090d389 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -1,6 +1,6 @@ import useRouteStore from './route' import useMenuStore from './menu' -import api from '@/api' +import apiUser from '@/api/modules/user' const useUserStore = defineStore( // 唯一ID @@ -29,9 +29,7 @@ const useUserStore = defineStore( password: string }) { // 通过 mock 进行登录 - const res = await api.post('member/login', data, { - baseURL: '/mock/', - }) + const res = await apiUser.login(data) localStorage.setItem('account', res.data.account) localStorage.setItem('token', res.data.token) localStorage.setItem('failure_time', res.data.failure_time) @@ -53,9 +51,7 @@ const useUserStore = defineStore( // 获取我的权限 async function getPermissions() { // 通过 mock 获取权限 - const res = await api.get('member/permission', { - baseURL: '/mock/', - }) + const res = await apiUser.permission() permissions.value = res.data.permissions return permissions.value } @@ -64,12 +60,7 @@ const useUserStore = defineStore( password: string newpassword: string }) { - await api.post('member/edit/password', { - password: data.password, - newpassword: data.newpassword, - }, { - baseURL: '/mock/', - }) + await apiUser.passwordEdit(data) } return {