一、代码整体结构
使用 export default
导出一个对象,该对象包含了多个方法,每个方法对应一个与后端交互的 API 请求操作。从功能划分来看,涵盖了用户管理、角色管理、菜单管理、API 管理、部门管理以及审计日志和客户管理等多个模块的常见操作,方便前端在不同业务场景下调用对应的后端接口。
使用方法:
二、举例
-
登录相关
login: (data) => request.post('/base/access_token', data, { noNeedToken: true })
-
这是登录方法,使用
post
请求发送登录数据到/base/access_token
接口。 -
参数
data
是包含登录信息(如用户名、密码等)的对象。 -
{ noNeedToken: true }
表示这个请求不需要携带 token,因为只有登录成功后才能获取到 token 用于后续请求的身份验证。
-
-
获取用户信息
getUserInfo: () => request.get('/base/userinfo')
-
通过
get
请求获取当前登录用户的信息,调用的是/base/userinfo
接口。 -
这个方法没有参数,返回的是后端返回的用户详细信息数据,可用于在前端展示用户相关资料。
-
三、代码逻辑
统一的请求封装:这里所有的方法都基于 import { request } from '@/utils'
中导入的 request
对象来进行不同类型的 HTTP 请求操作,说明项目中对 Axios 请求进行了统一的封装。这样的封装有很多好处,比如可以在 request
封装中统一处理请求拦截(在请求发送前做一些操作,如添加通用的请求头、对请求数据进行预处理等)、响应拦截(对接收到的响应数据进行统一处理,如判断响应状态码是否正常、对返回数据进行格式化等),方便对整个项目的 HTTP 请求进行集中管理和维护,减少在每个请求方法中重复编写一些通用的请求逻辑代码,提高代码的复用性和可维护性。
四、完整代码分析
-
登录相关
login: (data) => request.post('/base/access_token', data, { noNeedToken: true })
-
这是登录方法,使用
post
请求发送登录数据到/base/access_token
接口。 -
参数
data
是包含登录信息(如用户名、密码等)的对象。 -
{ noNeedToken: true }
表示这个请求不需要携带 token,因为只有登录成功后才能获取到 token 用于后续请求的身份验证。
-
-
获取用户信息
getUserInfo: () => request.get('/base/userinfo')
-
通过
get
请求获取当前登录用户的信息,调用的是/base/userinfo
接口。 -
这个方法没有参数,返回的是后端返回的用户详细信息数据,可用于在前端展示用户相关资料。
-
-
获取用户菜单
getUserMenu: () => request.get('/base/usermenu')
-
同样是
get
请求,从/base/usermenu
接口获取用户对应的菜单权限信息。 -
用于根据用户权限动态渲染前端菜单,实现不同用户看到不同功能菜单的效果。
-
-
获取用户 API
getUserApi: () => request.get('/base/userapi')
-
通过
get
请求从/base/userapi
接口获取用户可访问的 API 信息。 -
这在涉及到接口权限控制的系统中很有用,可以根据用户权限来决定前端能否调用某些接口。
-
-
修改密码
updatePassword: (data = {}) => request.post('/base/update_password', data)
-
使用
post
请求向/base/update_password
接口发送修改密码的数据。 -
参数
data
用来包含旧密码和新密码等信息,前端收集用户输入的密码信息后通过这个方法发送给后端进行密码更新操作。
-
-
获取用户列表
getUserList: (params = {}) => request.get('/user/list', { params })
-
通过
get
请求获取用户列表,调用的是/user/list
接口。 -
参数
params
可以包含分页信息(如页码、每页大小)、搜索条件(如用户名、邮箱等关键字)等,用于从后端分页、有条件地获取用户数据列表,方便在前端展示用户列表并支持分页和搜索功能。
-
-
根据 ID 获取用户信息
getUserById: (params = {}) => request.get('/user/get', { params })
-
这是一个
get
请求,用于根据用户 ID 从/user/get
接口获取特定用户的信息。 -
参数
params
中会包含用户 ID 等关键信息,以便后端根据 ID 查找到对应用户并返回详细信息,可用于在编辑用户信息等场景下先获取当前用户的数据进行展示和修改。
-
-
创建用户
createUser: (data = {}) => request.post('/user/create', data)
-
使用
post
请求向/user/create
接口发送创建新用户的数据。 -
参数
data
包含了新用户的各项信息,如用户名、密码、邮箱、角色等,前端在用户填写完创建用户表单后,通过这个方法将数据发送给后端进行用户创建操作。
-
-
更新用户
updateUser: (data = {}) => request.post('/user/update', data)
-
也是
post
请求,用于向/user/update
接口发送更新用户信息的数据。 -
参数
data
包含需要更新的用户信息,如用户 ID(用于标识要更新的用户)、新的用户名、邮箱、角色等字段,实现对已存在用户信息的修改。
-
-
删除用户 *
deleteUser: (params = {}) => request.delete(
/user/delete, { params
}) * 使用delete
请求调用/user/delete
接口来删除用户。-
参数
params
中包含要删除的用户 ID 等信息,后端根据这个 ID 执行删除对应用户的操作。
-
-
重置密码 *
resetPassword: (data = {}) => request.post(
/user/reset_password, data)
-
通过
post
请求向/user/reset_password
接口发送重置密码的数据。 -
参数
data
可能包含用户 ID、新的默认密码等信息,用于帮助用户重置其密码,比如在忘记密码或者管理员重置用户密码的场景下使用。
-
-
获取角色列表 *
getRoleList: (params = {}) => request.get('/role/list', { params })
-
是
get
请求,用于从/role/list
接口获取角色列表。 -
参数
params
可以包含分页、搜索条件等,方便在前端展示角色列表并支持相应操作,和获取用户列表方法类似,只是操作对象变成了角色。
-
-
创建角色 *
createRole: (data = {}) => request.post('/role/create', data)
-
post
请求向/role/create
接口发送创建新角色的数据。 -
参数
data
包括角色名称、描述、权限等信息,用于在系统中添加新的角色。
-
-
更新角色 *
updateRole: (data = {}) => request.post('/role/update', data)
-
也是
post
请求,向/role/update
接口发送更新角色信息的数据。 -
参数
data
包含角色 ID(标识要更新的角色)、新的角色名称、描述、权限等信息,实现对已有角色信息的修改。
-
-
删除角色 *
deleteRole: (params = {}) => request.delete('/role/delete', { params })
-
使用
delete
请求调用/role/delete
接口删除角色。 -
参数
params
里有要删除的角色 ID 等信息,后端据此执行删除操作。
-
-
更新角色授权 *
updateRoleAuthorized: (data = {}) => request.post('/role/authorized', data)
-
通过
post
请求向/role/authorized
接口发送更新角色授权的数据。 -
参数
data
包含角色 ID 以及对应的授权信息(比如可以访问哪些菜单、API 等),用于对角色的权限进行重新分配和设置。
-
-
获取角色授权信息 *
getRoleAuthorized: (params = {}) => request.get('/role/authorized', { params })
-
是
get
请求,从/role/authorized
接口获取角色的授权信息。 -
参数
params
中有角色 ID 等信息,返回该角色当前被授权的菜单、API 等详细权限内容,在展示角色权限或者进行权限调整时很有用。
-
-
获取菜单列表 *
getMenus: (params = {}) => request.get('/menu/list', { params })
-
get
请求获取菜单列表,调用/menu/list
接口。 -
参数
params
可能包含分页、搜索条件等,用于在前端展示菜单列表并支持相应操作,方便对菜单进行管理。
-
-
创建菜单 *
createMenu: (data = {}) => request.post('/menu/create', data)
-
使用
post
请求向/menu/create
接口发送创建新菜单的数据。 -
参数
data
包括菜单名称、路径、父菜单 ID(如果有的话)、排序等信息,用于在系统中添加新的菜单项。
-
-
更新菜单 *
updateMenu: (data = {}) => request.post('/menu/update', data)
-
post
请求向/menu/update
接口发送更新菜单信息的数据。 -
参数
data
包含菜单 ID(标识要更新的菜单)、新的菜单名称、路径、排序等信息,实现对已有菜单信息的修改。
-
-
删除菜单 *
deleteMenu: (params = {}) => request.delete('/menu/delete', { params })
-
delete
请求调用/menu/delete
接口删除菜单。 -
参数
params
里包含要删除的菜单 ID 等信息,后端根据这个执行删除操作。
-
-
获取 API 列表 *
getApis: (params = {}) => request.get('/api/list', { params })
-
get
请求获取 API 列表,调用/api/list
接口。 -
参数
params
可能包含分页、搜索条件(如 API 名称关键字等),在前端展示 API 列表并支持操作,便于对 API 进行管理。
-
-
创建 API *
createApi: (data = {}) => request.post('/api/create', data)
-
通过
post
请求向/api/create
接口发送创建新 API 的数据。 -
参数
data
包括 API 名称、路径、请求方法、描述等信息,用于在系统中添加新的 API 定义。
-
-
更新 API *
updateApi: (data = {}) => request.post('/api/update', data)
-
post
请求向/api/update
接口发送更新 API 信息的数据。 -
参数
data
包含 API ID(标识要更新的 API)、新的 API 名称、路径、请求方法、描述等信息,实现对已有 API 信息的修改。
-
-
删除 API *
deleteApi: (params = {}) => request.delete('/api/delete', { params })
-
使用
delete
请求调用/api/delete
接口删除 API。 -
参数
params
中包含要删除的 API ID 等信息,后端据此执行删除操作。
-
-
刷新 API *
refreshApi: (data = {}) => request.post('/api/refresh', data)
-
通过
post
请求向/api/refresh
接口发送数据来刷新 API。 -
参数
data
可能包含一些和刷新操作相关的配置或者标识信息,用于在系统中更新 API 的某些状态或者重新加载 API 相关缓存等操作。
-
-
获取部门列表 *
getDepts: (params = {}) => request.get('/dept/list', { params })
-
是
get
请求,获取部门列表,调用/dept/list
接口。 -
参数
params
包含分页、搜索条件(如部门名称关键字等),用于在前端展示部门列表并支持分页、搜索等操作,方便对部门进行管理。
-
-
创建部门 *
createDept: (data = {}) => request.post('/dept/create', data)
-
使用
post
请求向/dept/create
接口发送创建新部门的数据。 -
参数
data
包括部门名称、上级部门 ID(如果有)、部门描述等信息,用于在系统中添加新的部门。
-
-
更新部门 *
updateDept: (data = {}) => request.post('/dept/update', data)
-
post
请求向/dept/update
接口发送更新部门信息的数据。 -
参数
data
包含部门 ID(标识要更新的部门)、新的部门名称、上级部门 ID、描述等信息,实现对已有部门信息的修改。
-
-
删除部门 *
deleteDept: (params = {}) => request.delete('/dept/delete', { params })
-
delete
请求调用/dept/delete
接口删除部门。 -
参数
params
里包含要删除的部门 ID 等信息,后端根据这个执行删除操作。
-
-
获取审计日志列表 *
getAuditLogList: (params = {}) => request.get('/auditlog/list', { params })
-
通过
get
请求获取审计日志列表,调用/auditlog/list
接口。 -
参数
params
可以包含分页、时间范围、操作类型等搜索条件,方便在前端展示审计日志并支持按条件查询,用于记录和查看系统的操作行为,便于后续的问题排查和安全审计等。
-
-
获取客户列表 *
getCustomersList: (params = {}) => request.get('/production/customers/list', { params })
-
是
get
请求,从/production/customers/list
接口获取客户列表。 -
参数
params
包含分页、搜索条件(如客户名称、联系方式等关键字),用于在前端展示客户列表并支持操作,方便对客户信息进行管理,适用于涉及客户相关业务的系统模块。
-
-
创建客户 *
createCustomers: (data = {}) => request.post('/production/customers/create', data)
-
使用
post
请求向/production/customers/create
接口发送创建新客户的数据。 -
参数
data
包含客户名称、联系方式、地址等信息,用于在系统中添加新的客户。
-
-
更新客户 *
updateCustomers: (data = {}) => request.post('/production/customers/update', data)
-
post
请求向/production/customers/update
接口发送更新客户信息的数据。 -
参数
data
包含客户 ID(标识要更新的客户)、新的客户名称、联系方式、地址等信息,实现对已有客户信息的修改。
-
-
删除客户 *
deleteCustomers: (params = {}) => request.delete('/production/customers/delete', { params })
-
通过
delete
请求调用/production/customers/delete
接口删除客户。 -
参数
params
里包含要删除的客户 ID 等信息,后端据此执行删除操作。
-
-
获取客户信息 *
getCustomers: (params = {}) => request.get('/production/customers/get', { params })
-
是
get
请求,用于根据客户 ID 等条件从/production/customers/get
接口获取特定客户的信息。 -
参数
params
包含客户 ID 等关键信息,返回该客户的详细信息,可用于在编辑客户信息等场景下先获取当前客户的数据进行展示和修改。
-