后端改进: - MenuController 添加自动创建 Vue 组件文件功能 - 创建菜单时自动生成对应的 .vue 文件模板 - 修复路径处理逻辑,确保子菜单使用相对路径 - 添加菜单名称唯一性检查,自动添加时间戳避免重复 - 修复 ViewsPath 配置路径 - 修复文件写入编码为 UTF-8 前端改进: - 添加创建目录/子菜单的帮助说明 - 子菜单自动生成组件路径(如果用户未填写) - 添加 autoCreateComponent 参数支持 - 优化菜单类型判断逻辑
120 lines
2.3 KiB
TypeScript
120 lines
2.3 KiB
TypeScript
import request from '@/utils/http'
|
|
import { AppRouteRecord } from '@/types/router'
|
|
|
|
// 获取用户列表
|
|
export function fetchGetUserList(params: Api.SystemManage.UserSearchParams) {
|
|
return request.get<Api.SystemManage.UserList>({
|
|
url: '/api/user/list',
|
|
params
|
|
})
|
|
}
|
|
|
|
// 创建用户
|
|
export function fetchCreateUser(data: {
|
|
userName: string
|
|
password?: string
|
|
nickName?: string
|
|
email?: string
|
|
phone?: string
|
|
gender?: string
|
|
roles?: string[]
|
|
}) {
|
|
return request.post({
|
|
url: '/api/user',
|
|
params: data,
|
|
showSuccessMessage: true
|
|
})
|
|
}
|
|
|
|
// 更新用户
|
|
export function fetchUpdateUser(id: number, data: {
|
|
nickName?: string
|
|
email?: string
|
|
phone?: string
|
|
gender?: string
|
|
status?: string
|
|
roles?: string[]
|
|
}) {
|
|
return request.put({
|
|
url: `/api/user/${id}`,
|
|
params: data,
|
|
showSuccessMessage: true
|
|
})
|
|
}
|
|
|
|
// 删除用户
|
|
export function fetchDeleteUser(id: number) {
|
|
return request.del({
|
|
url: `/api/user/${id}`,
|
|
showSuccessMessage: true
|
|
})
|
|
}
|
|
|
|
// 获取角色列表
|
|
export function fetchGetRoleList(params: Api.SystemManage.RoleSearchParams) {
|
|
return request.get<Api.SystemManage.RoleList>({
|
|
url: '/api/role/list',
|
|
params
|
|
})
|
|
}
|
|
|
|
// 获取菜单列表
|
|
export function fetchGetMenuList() {
|
|
return request.get<AppRouteRecord[]>({
|
|
url: '/api/v3/system/menus/simple'
|
|
})
|
|
}
|
|
|
|
// 创建菜单
|
|
export function fetchCreateMenu(data: {
|
|
parentId?: number | null
|
|
name: string
|
|
path: string
|
|
component?: string
|
|
title: string
|
|
icon?: string
|
|
sort?: number
|
|
isHide?: boolean
|
|
keepAlive?: boolean
|
|
link?: string
|
|
isIframe?: boolean
|
|
roles?: string[]
|
|
autoCreateComponent?: boolean // 是否自动创建组件文件
|
|
}) {
|
|
return request.post({
|
|
url: '/api/menu',
|
|
params: data,
|
|
showSuccessMessage: true
|
|
})
|
|
}
|
|
|
|
// 更新菜单
|
|
export function fetchUpdateMenu(id: number, data: {
|
|
parentId?: number | null
|
|
name?: string
|
|
path?: string
|
|
component?: string
|
|
title?: string
|
|
icon?: string
|
|
sort?: number
|
|
isHide?: boolean
|
|
keepAlive?: boolean
|
|
link?: string
|
|
isIframe?: boolean
|
|
roles?: string[]
|
|
}) {
|
|
return request.put({
|
|
url: `/api/menu/${id}`,
|
|
params: data,
|
|
showSuccessMessage: true
|
|
})
|
|
}
|
|
|
|
// 删除菜单
|
|
export function fetchDeleteMenu(id: number) {
|
|
return request.del({
|
|
url: `/api/menu/${id}`,
|
|
showSuccessMessage: true
|
|
})
|
|
}
|