feat(api): 完善系统管理模块API接口
- 扩展菜单管理API接口和类型定义 - 新增登录日志管理API接口 - 完善类型定义和接口规范 - 支持权限管理功能所需的API调用
This commit is contained in:
parent
72d152a8cf
commit
fed1ee9089
54
src/service/api/system/loginlog/index.ts
Normal file
54
src/service/api/system/loginlog/index.ts
Normal file
@ -0,0 +1,54 @@
|
||||
import { request } from '../../../http'
|
||||
import type { LoginLogForm, LoginLogQueryBo, LoginLogVo } from './types'
|
||||
|
||||
// 重新导出类型供外部使用
|
||||
export type { LoginLogForm, LoginLogQueryBo, LoginLogVo } from './types'
|
||||
|
||||
/**
|
||||
* 分页查询登录日志列表
|
||||
*/
|
||||
export function getLoginLogListPage(params: LoginLogQueryBo) {
|
||||
return request.Get<Service.ResponseResult<Service.PageResult<LoginLogVo>>>('/coder/sysLoginLog/listPage', { params })
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询登录日志列表
|
||||
*/
|
||||
export function getLoginLogList() {
|
||||
return request.Get<Service.ResponseResult<LoginLogVo[]>>('/coder/sysLoginLog/list')
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据ID查询登录日志详情
|
||||
*/
|
||||
export function getLoginLogById(id: number) {
|
||||
return request.Get<Service.ResponseResult<LoginLogVo>>(`/coder/sysLoginLog/getById/${id}`)
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增登录日志
|
||||
*/
|
||||
export function addLoginLog(data: LoginLogForm) {
|
||||
return request.Post<Service.ResponseResult<null>>('/coder/sysLoginLog/add', data)
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改登录日志
|
||||
*/
|
||||
export function updateLoginLog(data: LoginLogForm) {
|
||||
return request.Post<Service.ResponseResult<null>>('/coder/sysLoginLog/update', data)
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除登录日志
|
||||
*/
|
||||
export function deleteLoginLog(id: number) {
|
||||
return request.Post<Service.ResponseResult<null>>(`/coder/sysLoginLog/deleteById/${id}`)
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除登录日志
|
||||
*/
|
||||
export function batchDeleteLoginLog(ids: number[]) {
|
||||
return request.Post<Service.ResponseResult<null>>('/coder/sysLoginLog/batchDelete', ids)
|
||||
}
|
||||
39
src/service/api/system/loginlog/types.ts
Normal file
39
src/service/api/system/loginlog/types.ts
Normal file
@ -0,0 +1,39 @@
|
||||
/**
|
||||
* 登录日志模块类型定义
|
||||
*/
|
||||
|
||||
// 登录日志查询参数
|
||||
export interface LoginLogQueryBo {
|
||||
pageNo?: number
|
||||
pageSize?: number
|
||||
loginName?: string
|
||||
loginIp?: string
|
||||
loginStatus?: string
|
||||
beginTime?: string
|
||||
endTime?: string
|
||||
}
|
||||
|
||||
// 登录日志响应数据
|
||||
export interface LoginLogVo {
|
||||
loginLogId: number
|
||||
loginName: string
|
||||
loginIp: string
|
||||
loginLocation?: string
|
||||
loginBrowser?: string
|
||||
loginOs?: string
|
||||
loginStatus: string
|
||||
loginMsg?: string
|
||||
loginTime: string
|
||||
}
|
||||
|
||||
// 登录日志表单数据
|
||||
export interface LoginLogForm {
|
||||
loginLogId?: number
|
||||
loginName: string
|
||||
loginIp: string
|
||||
loginLocation?: string
|
||||
loginBrowser?: string
|
||||
loginOs?: string
|
||||
loginStatus: string
|
||||
loginMsg?: string
|
||||
}
|
||||
@ -1,41 +1,124 @@
|
||||
import { request } from '../../../http'
|
||||
import type {
|
||||
MenuCascaderBo,
|
||||
MenuForm,
|
||||
MenuNormalResponse,
|
||||
MenuQueryBo,
|
||||
MenuRouterBo,
|
||||
MenuVo,
|
||||
} from './types'
|
||||
|
||||
// 菜单信息类型
|
||||
export interface MenuVo {
|
||||
menuId: number
|
||||
menuName: string
|
||||
parentId: number
|
||||
menuType: string
|
||||
isSpread?: string
|
||||
auth?: string // 权限标识
|
||||
perms?: string // 权限标识的别名
|
||||
permission?: string // 权限标识的另一个别名
|
||||
// 重新导出类型供外部使用
|
||||
export type {
|
||||
MenuCascaderBo,
|
||||
MenuForm,
|
||||
MenuNormalResponse,
|
||||
MenuQueryBo,
|
||||
MenuRouterBo,
|
||||
MenuVo,
|
||||
} from './types'
|
||||
|
||||
// 兼容性类型别名
|
||||
export interface MenuPermissionData extends MenuNormalResponse {}
|
||||
|
||||
// 菜单管理基础API
|
||||
|
||||
/**
|
||||
* 分页查询菜单列表
|
||||
*/
|
||||
export function getMenuListPage(params: MenuQueryBo) {
|
||||
return request.Get<Service.ResponseResult<Service.PageResult<MenuVo>>>('/coder/sysMenu/listPage', { params })
|
||||
}
|
||||
|
||||
// 菜单权限数据类型
|
||||
export interface MenuPermissionData {
|
||||
menuList: MenuVo[]
|
||||
spreadList: number[]
|
||||
/**
|
||||
* 查询菜单列表
|
||||
*/
|
||||
export function getMenuList(params?: MenuQueryBo) {
|
||||
return request.Get<Service.ResponseResult<MenuVo[]>>('/coder/sysMenu/list', { params })
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据ID查询菜单详情
|
||||
*/
|
||||
export function getMenuById(id: number) {
|
||||
return request.Get<Service.ResponseResult<MenuVo>>(`/coder/sysMenu/getById/${id}`)
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增菜单
|
||||
*/
|
||||
export function addMenu(data: MenuForm) {
|
||||
return request.Post<Service.ResponseResult<null>>('/coder/sysMenu/add', data)
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改菜单
|
||||
*/
|
||||
export function updateMenu(data: MenuForm) {
|
||||
return request.Post<Service.ResponseResult<null>>('/coder/sysMenu/update', data)
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除菜单
|
||||
*/
|
||||
export function deleteMenu(id: number) {
|
||||
return request.Post<Service.ResponseResult<null>>(`/coder/sysMenu/deleteById/${id}`)
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除菜单
|
||||
*/
|
||||
export function batchDeleteMenu(ids: number[]) {
|
||||
return request.Post<Service.ResponseResult<null>>('/coder/sysMenu/batchDelete', ids)
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改菜单状态
|
||||
*/
|
||||
export function updateMenuStatus(id: number, menuStatus: string) {
|
||||
return request.Post<Service.ResponseResult<null>>(`/coder/sysMenu/updateStatus/${id}/${menuStatus}`)
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改菜单展开状态
|
||||
*/
|
||||
export function updateMenuSpread(id: number, isSpread: string) {
|
||||
return request.Post<Service.ResponseResult<null>>(`/coder/sysMenu/updateSpread/${id}/${isSpread}`)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取菜单级联下拉框数据
|
||||
*/
|
||||
export function getMenuCascaderList() {
|
||||
return request.Get<Service.ResponseResult<MenuCascaderBo[]>>('/coder/sysMenu/cascaderList')
|
||||
}
|
||||
|
||||
// 菜单路由管理相关API
|
||||
|
||||
// 获取用户动态路由信息
|
||||
/**
|
||||
* 获取用户动态路由信息
|
||||
*/
|
||||
export function getUserRoutes() {
|
||||
return request.Get<Service.ResponseResult<AppRoute.RowRoute[]>>('/coder/sysMenu/listRouters')
|
||||
return request.Get<Service.ResponseResult<MenuRouterBo[]>>('/coder/sysMenu/listRouters')
|
||||
}
|
||||
|
||||
// 查询所有正常的菜单和展开节点(角色分配菜单权限使用)
|
||||
/**
|
||||
* 查询所有正常的菜单和展开节点(角色分配菜单权限使用)
|
||||
*/
|
||||
export function getMenuPermissionData() {
|
||||
return request.Get<Service.ResponseResult<MenuPermissionData>>('/coder/sysMenu/listMenuNormal')
|
||||
return request.Get<Service.ResponseResult<MenuNormalResponse>>('/coder/sysMenu/listMenuNormal')
|
||||
}
|
||||
|
||||
// 根据角色ID查询菜单权限ID列表
|
||||
/**
|
||||
* 根据角色ID查询菜单权限ID列表
|
||||
*/
|
||||
export function getMenuIdsByRoleId(roleId: number) {
|
||||
return request.Get<Service.ResponseResult<number[]>>(`/coder/sysMenu/listMenuIdsByRoleId/${roleId}`)
|
||||
}
|
||||
|
||||
// 保存角色和菜单权限之间的关系
|
||||
/**
|
||||
* 保存角色和菜单权限之间的关系
|
||||
*/
|
||||
export function saveRoleMenuPermission(roleId: number, menuIds: number[]) {
|
||||
const menuIdsStr = menuIds.length > 0 ? menuIds.join(',') : '-1'
|
||||
return request.Post<Service.ResponseResult<string>>(`/coder/sysMenu/saveRoleMenu/${roleId}/${menuIdsStr}`)
|
||||
@ -45,3 +128,4 @@ export function saveRoleMenuPermission(roleId: number, menuIds: number[]) {
|
||||
export const fetchUserRoutes = getUserRoutes
|
||||
export const fetchMenuPermissionData = getMenuPermissionData
|
||||
export const fetchMenuIdsByRoleId = getMenuIdsByRoleId
|
||||
export const saveRoleMenu = saveRoleMenuPermission
|
||||
|
||||
89
src/service/api/system/menu/types.ts
Normal file
89
src/service/api/system/menu/types.ts
Normal file
@ -0,0 +1,89 @@
|
||||
/**
|
||||
* 菜单管理模块类型定义
|
||||
*/
|
||||
|
||||
// 菜单查询参数
|
||||
export interface MenuQueryBo {
|
||||
pageNo?: number
|
||||
pageSize?: number
|
||||
menuName?: string
|
||||
menuStatus?: string
|
||||
auth?: string
|
||||
}
|
||||
|
||||
// 菜单响应数据
|
||||
export interface MenuVo {
|
||||
menuId: number
|
||||
menuName: string
|
||||
parentId: number
|
||||
menuType: string
|
||||
path?: string
|
||||
component?: string
|
||||
auth?: string
|
||||
icon?: string
|
||||
sorted: number
|
||||
isHide: string
|
||||
isKeepAlive: string
|
||||
isAffix: string
|
||||
isSpread: string
|
||||
isLink?: string
|
||||
menuStatus: string
|
||||
remark?: string
|
||||
createTime?: string
|
||||
updateTime?: string
|
||||
createBy?: string
|
||||
updateBy?: string
|
||||
children?: MenuVo[]
|
||||
}
|
||||
|
||||
// 菜单表单数据
|
||||
export interface MenuForm {
|
||||
menuId?: number
|
||||
menuName: string
|
||||
parentId: number
|
||||
menuType: string
|
||||
path?: string
|
||||
component?: string
|
||||
auth?: string
|
||||
icon?: string
|
||||
sorted: number
|
||||
isHide: string
|
||||
isKeepAlive: string
|
||||
isAffix: string
|
||||
isSpread: string
|
||||
isLink?: string
|
||||
menuStatus: string
|
||||
remark?: string
|
||||
}
|
||||
|
||||
// 菜单路由数据
|
||||
export interface MenuRouterBo {
|
||||
menuId: number
|
||||
menuName: string
|
||||
path: string
|
||||
component?: string
|
||||
redirect?: string
|
||||
meta?: {
|
||||
title: string
|
||||
icon?: string
|
||||
auth?: string
|
||||
roles?: string[]
|
||||
keepAlive?: boolean
|
||||
affix?: boolean
|
||||
hide?: boolean
|
||||
}
|
||||
children?: MenuRouterBo[]
|
||||
}
|
||||
|
||||
// 级联选择器数据
|
||||
export interface MenuCascaderBo {
|
||||
value: number
|
||||
label: string
|
||||
children?: MenuCascaderBo[]
|
||||
}
|
||||
|
||||
// 菜单正常数据返回结构
|
||||
export interface MenuNormalResponse {
|
||||
menuList: MenuVo[]
|
||||
spreadList: number[]
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user