feat(log、post、user、project、work-report): 添加用户姓名字段并实现岗位用户导出功能

- 在API访问日志、API错误日志中新增用户姓名字段显示
- 优化日志管理页面布局样式,修复高度自适应问题
- 添加系统岗位数据导出功能及相应API接口
- 添加系统用户数据导出功能及相应API接口
- 新增通用文件下载和导出文件名生成工具函数
- 修复工作报表删除确认提示文案
- 调整项目列表默认展开状态逻辑
- 完善岗位和用户管理页面导出按钮权限控制
- 更新日志实体类型定义,增加用户昵称字段
This commit is contained in:
dk
2026-07-01 17:15:12 +08:00
parent a650f6e96d
commit a8e2bac65a
15 changed files with 172 additions and 13 deletions

View File

@@ -18,6 +18,29 @@ const POST_PREFIX = `${SYSTEM_SERVICE_PREFIX}/post`;
const ORG_LEADER_PREFIX = `${SYSTEM_SERVICE_PREFIX}/org-leader`;
const USER_MANAGEMENT_RELATION_PREFIX = `${SYSTEM_SERVICE_PREFIX}/user-management-relation`;
function appendQueryValue(query: URLSearchParams, key: string, value: unknown) {
if (value === null || value === undefined || value === '') {
return;
}
if (Array.isArray(value)) {
value.forEach(item => appendQueryValue(query, key, item));
return;
}
query.append(key, String(value));
}
function buildQuery(params: object = {}) {
const query = new URLSearchParams();
Object.entries(params).forEach(([key, value]) => {
appendQueryValue(query, key, value);
});
return query.toString();
}
function createRolePageQuery(params?: Api.SystemManage.RoleSearchParams) {
const query = new URLSearchParams();
@@ -469,6 +492,17 @@ export function fetchBatchDeletePost(ids: number[]) {
});
}
/** 导出岗位 */
export function fetchExportPost(params: Api.SystemManage.PostSearchParams) {
const query = buildQuery(params);
return request<Blob, 'blob'>({
url: query ? `${POST_PREFIX}/export-excel?${query}` : `${POST_PREFIX}/export-excel`,
method: 'get',
responseType: 'blob'
});
}
/** 获取用户简单列表(用于用户选择下拉框) */
export async function fetchGetUserSimpleList() {
return request<UserSimpleResponse[]>({
@@ -579,6 +613,17 @@ export function fetchBatchDeleteUser(ids: number[]) {
});
}
/** 导出用户 */
export function fetchExportUser(params: Api.SystemManage.UserSearchParams) {
const query = buildQuery(params);
return request<Blob, 'blob'>({
url: query ? `${USER_PREFIX}/export-excel?${query}` : `${USER_PREFIX}/export-excel`,
method: 'get',
responseType: 'blob'
});
}
/** 获取菜单列表 */
export async function fetchGetMenuList(params?: Api.SystemManage.MenuSearchParams) {
const result = await request<MenuResponse[]>({