fix:联调评论接口、新增流程管理列表模块页面

This commit is contained in:
liangdong
2026-01-08 18:34:05 +08:00
parent cbdc1231ce
commit 6d93092f10
24 changed files with 824 additions and 645 deletions

View File

@@ -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: '获取用户信息成功',
}
}

View File

@@ -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,
}

View File

@@ -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 菜单数据的响应格式
* 模拟后端接口返回的数据结构