fix:联调评论接口、新增流程管理列表模块页面
This commit is contained in:
@@ -1,52 +0,0 @@
|
||||
/**
|
||||
* 登录相关 Mock 数据
|
||||
*/
|
||||
|
||||
/**
|
||||
* Mock 登录响应
|
||||
*/
|
||||
export const getMockLoginResponse = (username: string, password: string) => {
|
||||
// 模拟登录验证
|
||||
if (username && password) {
|
||||
return {
|
||||
code: 0,
|
||||
data: {
|
||||
accessToken: 'mock_access_token_' + Date.now(),
|
||||
refreshToken: 'mock_refresh_token_' + Date.now(),
|
||||
expiresIn: 7200, // 2小时
|
||||
userInfo: {
|
||||
id: 1,
|
||||
username: username,
|
||||
name: username === 'admin' ? '管理员' : '普通用户',
|
||||
role: username === 'admin' ? 'admin' : 'user',
|
||||
avatar: '',
|
||||
},
|
||||
},
|
||||
msg: '登录成功',
|
||||
}
|
||||
} else {
|
||||
return {
|
||||
code: 400,
|
||||
data: null,
|
||||
msg: '用户名或密码不能为空',
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Mock 用户信息响应
|
||||
*/
|
||||
export const getMockUserInfoResponse = () => {
|
||||
return {
|
||||
code: 0,
|
||||
data: {
|
||||
id: 1,
|
||||
username: 'admin',
|
||||
name: '管理员',
|
||||
role: 'admin',
|
||||
avatar: '',
|
||||
},
|
||||
msg: '获取用户信息成功',
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,97 +0,0 @@
|
||||
/**
|
||||
* Mock 数据管理
|
||||
* 用于开发阶段模拟后端接口返回的数据
|
||||
*/
|
||||
|
||||
import { getMockMenuResponse } from './menu'
|
||||
import { getMockLoginResponse, getMockUserInfoResponse } from './auth'
|
||||
|
||||
// 是否启用 Mock(可以通过环境变量控制)
|
||||
export const ENABLE_MOCK = import.meta.env.VITE_USE_MOCK === 'true' || import.meta.env.DEV
|
||||
|
||||
/**
|
||||
* Mock API 响应映射
|
||||
* key: API 路径
|
||||
* value: 返回的 Mock 数据函数
|
||||
*/
|
||||
const mockApiMap: Record<string, (params?: any, data?: any) => any> = {
|
||||
'/api/menus': () => getMockMenuResponse(),
|
||||
'/api/auth/login': (_params?: any, data?: any) => {
|
||||
return getMockLoginResponse(data?.username || '', data?.password || '')
|
||||
},
|
||||
'/api/user/info': () => getMockUserInfoResponse(),
|
||||
// 可以在这里添加更多的 mock 接口
|
||||
// '/api/user/list': getMockUserList,
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取 Mock 数据
|
||||
* @param url API 路径
|
||||
* @param params 请求参数(GET)
|
||||
* @param data 请求体(POST/PUT)
|
||||
* @returns Mock 数据或 null
|
||||
*/
|
||||
export const getMockData = (url: string, params?: any, data?: any): any => {
|
||||
if (!ENABLE_MOCK || !url) {
|
||||
return null
|
||||
}
|
||||
|
||||
// 精确匹配
|
||||
if (mockApiMap[url]) {
|
||||
return mockApiMap[url](params, data)
|
||||
}
|
||||
|
||||
// 模糊匹配(支持带查询参数的 URL)
|
||||
const urlWithoutQuery = url.split('?')[0]
|
||||
if (urlWithoutQuery && mockApiMap[urlWithoutQuery]) {
|
||||
return mockApiMap[urlWithoutQuery](params, data)
|
||||
}
|
||||
|
||||
return null
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查是否应该使用 Mock 数据
|
||||
* @param url API 路径
|
||||
* @returns 是否应该使用 Mock
|
||||
*/
|
||||
export const shouldUseMock = (url: string): boolean => {
|
||||
if (!ENABLE_MOCK || !url) {
|
||||
return false
|
||||
}
|
||||
|
||||
// 精确匹配
|
||||
if (mockApiMap[url]) {
|
||||
return true
|
||||
}
|
||||
|
||||
// 模糊匹配(支持带查询参数的 URL)
|
||||
const urlWithoutQuery = url.split('?')[0]
|
||||
return !!(urlWithoutQuery && mockApiMap[urlWithoutQuery])
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加 Mock 接口
|
||||
* @param url API 路径
|
||||
* @param mockFn Mock 数据函数
|
||||
*/
|
||||
export const addMockApi = (url: string, mockFn: (params?: any, data?: any) => any) => {
|
||||
mockApiMap[url] = mockFn
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除 Mock 接口
|
||||
* @param url API 路径
|
||||
*/
|
||||
export const removeMockApi = (url: string) => {
|
||||
delete mockApiMap[url]
|
||||
}
|
||||
|
||||
export default {
|
||||
getMockData,
|
||||
shouldUseMock,
|
||||
addMockApi,
|
||||
removeMockApi,
|
||||
ENABLE_MOCK,
|
||||
}
|
||||
|
||||
@@ -296,6 +296,45 @@ export const mockMenuData: MockMenuRoute[] = [
|
||||
},
|
||||
];
|
||||
|
||||
|
||||
export const mockBackendMenuData = [
|
||||
{
|
||||
"name": "字典管理",
|
||||
"code": "dict",
|
||||
"icon": "OfficeBuilding",
|
||||
"metadata": null,
|
||||
"children": null
|
||||
},
|
||||
{
|
||||
"name": "组织管理",
|
||||
"code": "origanization",
|
||||
"icon": "OfficeBuilding",
|
||||
"metadata": null,
|
||||
"children": null
|
||||
},
|
||||
{
|
||||
"name": "人员管理",
|
||||
"code": "personnel",
|
||||
"icon": "OfficeBuilding",
|
||||
"metadata": null,
|
||||
"children": null
|
||||
},
|
||||
{
|
||||
"name": "权限管理",
|
||||
"code": "permission",
|
||||
"icon": "OfficeBuilding",
|
||||
"metadata": null,
|
||||
"children": null
|
||||
},
|
||||
{
|
||||
"name": "流程管理",
|
||||
"code": "flow",
|
||||
"icon": "OfficeBuilding",
|
||||
"metadata": null,
|
||||
"children": null
|
||||
}
|
||||
]
|
||||
|
||||
/**
|
||||
* 获取 Mock 菜单数据的响应格式
|
||||
* 模拟后端接口返回的数据结构
|
||||
|
||||
Reference in New Issue
Block a user