跳到主要内容
Skip to content

目录


文件上传

概述

FastapiAdmin 采用统一上传架构,所有文件上传都通过单一接口实现,支持不同类型文件的分类存储。

上传类型

类型路径参数存储目录用途
fileupload_type=fileupload/file/YYYY/MM/DD/通用文件上传(默认)
avatarupload_type=avatarupload/avatar/YYYY/MM/DD/用户头像上传
paramupload_type=paramupload/param/YYYY/MM/DD/参数配置文件上传
resourceupload_type=resourceupload/resource/[target_path]/YYYY/MM/DD/监控资源文件,支持指定目录

统一上传接口

接口地址: /api/v1/common/file/upload

请求方式: POST

Content-Type: multipart/form-data

权限要求: module_common:file:upload

请求参数:

参数类型位置必填说明
fileUploadFileBody上传的文件
upload_typestringQuery上传类型,默认 file
target_pathstringForm目标目录路径,仅 resource 类型支持

响应示例:

json
{
  "code": 0,
  "msg": "上传文件成功",
  "data": {
    "file_path": "/app/uploads/resource/images/2024/01/15/abc123.png",
    "file_name": "abc123.png",
    "origin_name": "original-file.png",
    "file_url": "http://localhost:8000/app/uploads/resource/images/2024/01/15/abc123.png"
  }
}

资源上传接口

接口地址: /api/v1/monitor/resource/upload

请求方式: POST

Content-Type: multipart/form-data

权限要求: module_monitor:resource:upload

请求参数:

参数类型位置必填说明
fileUploadFileBody上传的文件
target_pathstringForm目标目录路径

说明: 此接口是统一上传接口的快捷方式,内部调用统一上传接口,使用 resource 类型。

前端调用示例

通用文件上传

typescript
import { request } from "@utils";

async function uploadFile(file: File) {
  const formData = new FormData();
  formData.append("file", file);

  const response = await request<ApiResponse<UploadFilePath>>({
    url: "/common/file/upload",
    method: "post",
    data: formData,
    headers: { "Content-Type": "multipart/form-data" },
  });

  return response.data.data;
}

头像上传

typescript
import { UserAPI } from "@api/module_system/user";

async function uploadAvatar(file: File) {
  const formData = new FormData();
  formData.append("file", file);

  const response = await UserAPI.uploadCurrentUserAvatar(formData);
  return response.data.data;
}

参数配置上传

typescript
import { uploadFile } from "@api/module_system/params";

async function uploadParamConfig(file: File) {
  const formData = new FormData();
  formData.append("file", file);

  const response = await uploadFile(formData);
  return response.data.data;
}

资源文件上传(指定目录)

typescript
import { ResourceAPI } from "@api/module_monitor/resource";

async function uploadResource(file: File, targetPath: string) {
  const formData = new FormData();
  formData.append("file", file);
  formData.append("target_path", targetPath);

  const response = await ResourceAPI.uploadFile(formData);
  return response.data.data;
}

// 使用示例:上传到 images 目录
await uploadResource(file, "images");

// 使用示例:上传到 nested/path 目录
await uploadResource(file, "nested/path");

安全特性

  1. 文件名清理: 自动清理文件名中的危险字符
  2. 路径穿越防护: 检测并阻止 ../ 等路径穿越攻击
  3. 文件类型验证: 基于 MIME 类型和扩展名的双重验证
  4. 文件大小限制: 可配置的单个文件大小限制
  5. 内容检测: 通过文件头字节验证文件真实性

目录结构

upload/
├── file/           # 通用文件
│   └── YYYY/MM/DD/
├── avatar/         # 头像
│   └── YYYY/MM/DD/
├── param/          # 参数配置
│   └── YYYY/MM/DD/
└── resource/       # 监控资源
    ├── images/
    ├── documents/
    └── YYYY/MM/DD/

资源管理

概述

资源管理模块提供对 upload/resource 目录的完整管理能力,包括文件浏览、上传、下载、删除、移动、复制、重命名和目录创建等功能。

功能列表

功能方法接口说明
目录浏览listResourceGET /api/v1/monitor/resource/list浏览指定目录
文件上传uploadFilePOST /api/v1/monitor/resource/upload上传到指定目录
文件下载downloadFileGET /api/v1/monitor/resource/download下载文件
删除资源deleteResourceDELETE /api/v1/monitor/resource/delete删除文件或目录
移动资源moveResourcePOST /api/v1/monitor/resource/move移动文件或目录
复制资源copyResourcePOST /api/v1/monitor/resource/copy复制文件或目录
重命名资源renameResourcePOST /api/v1/monitor/resource/rename重命名文件或目录
创建目录createDirectoryPOST /api/v1/monitor/resource/create-dir创建新目录
导出列表exportResourcePOST /api/v1/monitor/resource/export导出资源列表

目录浏览

接口: GET /api/v1/monitor/resource/list

权限: module_monitor:resource:list

查询参数:

参数类型必填说明
pathstring目录路径,默认根目录
include_hiddenboolean是否包含隐藏文件,默认 false
page_nointeger页码,默认 1
page_sizeinteger每页数量,默认 20

响应示例:

json
{
  "code": 0,
  "msg": "获取目录列表成功",
  "data": {
    "path": "/upload/resource",
    "name": "resource",
    "items": [
      {
        "name": "images",
        "is_file": false,
        "is_dir": true,
        "size": null,
        "created_time": "2024-01-15T10:30:00",
        "modified_time": "2024-01-15T10:30:00",
        "is_hidden": false
      },
      {
        "name": "logo.svg",
        "is_file": true,
        "is_dir": false,
        "size": 12345,
        "created_time": "2024-01-15T10:30:00",
        "modified_time": "2024-01-15T10:30:00",
        "is_hidden": false,
        "file_url": "http://localhost:8000/app/uploads/resource/logo.svg"
      }
    ],
    "total_files": 10,
    "total_dirs": 5,
    "total_size": 1024000
  }
}

删除资源

接口: DELETE /api/v1/monitor/resource/delete

权限: module_monitor:resource:delete

请求体: string[] - 文件路径数组

示例:

json
["upload/resource/images/logo.svg", "upload/resource/documents"]

移动资源

接口: POST /api/v1/monitor/resource/move

权限: module_monitor:resource:move

请求体:

json
{
  "source_path": "upload/resource/images/logo.svg",
  "target_path": "upload/resource/backup/logo.svg",
  "overwrite": false
}

复制资源

接口: POST /api/v1/monitor/resource/copy

权限: module_monitor:resource:copy

请求体:

json
{
  "source_path": "upload/resource/images/logo.svg",
  "target_path": "upload/resource/images/logo_copy.svg",
  "overwrite": false
}

重命名资源

接口: POST /api/v1/monitor/resource/rename

权限: module_monitor:resource:rename

请求体:

json
{
  "old_path": "upload/resource/images/logo.svg",
  "new_name": "logo_new.png"
}

创建目录

接口: POST /api/v1/monitor/resource/create-dir

权限: module_monitor:resource:create-dir

请求体:

json
{
  "parent_path": "upload/resource/images",
  "dir_name": "screenshots"
}

健康检查

概述

健康检查端点提供应用状态的实时监控,支持三级健康检查。

检查类型

类型接口用途依赖
基础检查GET /health负载均衡器探活
就绪检查GET /health/readyK8s readinessProbe数据库、Redis
存活检查GET /health/liveK8s livenessProbe

基础健康检查

接口: GET /api/v1/common/health

权限: 无

响应示例:

json
{
  "code": 0,
  "msg": "健康",
  "data": {
    "status": "ok",
    "timestamp": "2024-01-15T10:30:00",
    "version": "1.0.0"
  }
}

就绪检查

接口: GET /api/v1/common/health/ready

权限: 无

说明: 检查所有依赖(数据库、Redis)是否就绪,用于判断应用是否可以接收流量。

响应示例:

json
{
  "code": 0,
  "msg": "依赖就绪",
  "data": {
    "status": "ready",
    "timestamp": "2024-01-15T10:30:00",
    "version": "1.0.0",
    "uptime_seconds": 3600.5,
    "dependencies": {
      "database": {
        "status": "up",
        "latency_ms": 5.23
      },
      "redis": {
        "status": "up",
        "latency_ms": 1.12
      }
    },
    "disk_usage": {
      "total": 500000000000,
      "used": 250000000000,
      "free": 250000000000,
      "percent": 50.0
    }
  }
}

失败响应 (HTTP 503):

json
{
  "code": 503,
  "msg": "依赖未就绪",
  "data": {
    "status": "not_ready",
    "timestamp": "2024-01-15T10:30:00",
    "version": "1.0.0",
    "uptime_seconds": 3600.5,
    "dependencies": {
      "database": {
        "status": "down",
        "latency_ms": null
      },
      "redis": {
        "status": "up",
        "latency_ms": 1.12
      }
    },
    "disk_usage": {
      "total": 500000000000,
      "used": 250000000000,
      "free": 250000000000,
      "percent": 50.0
    }
  }
}

存活检查

接口: GET /api/v1/common/health/live

权限: 无

响应示例:

json
{
  "code": 0,
  "msg": "存活",
  "data": {
    "status": "alive",
    "timestamp": "2024-01-15T10:30:00",
    "uptime_seconds": 3600.5
  }
}

监控指标

概述

FastapiAdmin 集成了 Prometheus 指标采集,通过 /metrics 端点暴露 HTTP 请求指标。

指标端点

接口: GET /api/v1/common/metrics

格式: Prometheus text format

可用指标

指标名称类型说明
http_requests_totalCounterHTTP 请求总数
http_request_duration_secondsHistogramHTTP 请求延迟(秒)
http_request_size_bytesHistogramHTTP 请求大小(字节)
http_response_size_bytesHistogramHTTP 响应大小(字节)
http_requests_in_progressGauge正在处理的 HTTP 请求数

配置说明

指标采集已在 app/scripts/init_app.py 中自动配置,无需手动启用。

默认排除的端点:

  • /metrics - 指标端点本身
  • /health - 健康检查
  • /health/live - 存活检查
  • /health/ready - 就绪检查
  • /docs - API 文档
  • /redoc - 文档
  • /openapi.json - OpenAPI 规范
  • /static/* - 静态资源
  • /favicon.ico - 网站图标

Grafana 配置示例

yaml
# Prometheus 数据源配置
apiVersion: 1
datasources:
  - name: Prometheus
    type: prometheus
    url: http://prometheus:9090
    access: proxy

# HTTP 请求速率面板
- title: HTTP Request Rate
  type: graph
  targets:
    - expr: rate(http_requests_total[5m])
      legendFormat: "{{handler}} - {{method}}"

# 请求延迟面板
- title: HTTP Request Latency
  type: graph
  targets:
    - expr: histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m]))
      legendFormat: "p95 - {{handler}}"

最佳实践

1. 文件上传

  • ✅ 使用统一上传接口处理所有文件上传
  • ✅ 上传前在客户端验证文件类型和大小
  • ✅ 使用 target_path 参数组织文件结构
  • ✅ 文件名避免使用特殊字符和中文

2. 资源管理

  • ✅ 定期清理不再使用的文件
  • ✅ 使用目录结构组织不同类型的资源
  • ✅ 删除前确认文件没有被其他资源引用

3. 监控运维

  • ✅ 配置 K8s 探针使用 /health/ready/health/live
  • ✅ 使用 Prometheus 采集 /metrics 数据
  • ✅ 设置合理的告警阈值

认证系统

概述

FastapiAdmin 提供完整的用户认证系统,包括用户登录、Token 管理、验证码、租户切换等功能。

登录流程

  1. 获取验证码 (可选): 调用 /captcha 获取验证码图片
  2. 用户登录: 调用 /login 提交用户名、密码和验证码
  3. 获取租户列表: 登录成功后返回用户关联的租户列表
  4. 选择租户: 调用 /select-tenant 选择工作租户
  5. 获取用户信息: 调用 /current/info 获取当前用户详情

核心接口

功能方法接口说明
获取验证码getCaptchaGET /api/v1/system/auth/captcha获取验证码图片
用户登录loginPOST /api/v1/system/auth/login用户认证
退出登录logoutPOST /api/v1/system/auth/logout清除Token
刷新TokenrefreshPOST /api/v1/system/auth/refresh刷新访问令牌
获取租户列表getTenantsGET /api/v1/system/auth/tenants获取用户关联的租户
选择租户selectTenantPOST /api/v1/system/auth/select-tenant切换租户上下文
获取用户信息getCurrentUserInfoGET /api/v1/system/user/current/info获取当前用户详情

前端调用示例

typescript
import { AuthAPI } from "@api/module_system/auth";
import { UserAPI } from "@api/module_system/user";

// 1. 获取验证码
async function getCaptcha() {
  const response = await AuthAPI.getCaptcha();
  return response.data.data;
}

// 2. 用户登录
async function login(username: string, password: string, captchaKey: string, captcha: string) {
  const response = await AuthAPI.login({
    username,
    password,
    captcha_key: captchaKey,
    captcha: captcha,
    login_type: "password",
  });
  return response.data.data;
}

// 3. 选择租户
async function selectTenant(tenantId: number) {
  const response = await AuthAPI.selectTenant({ tenant_id: tenantId });
  return response.data.data;
}

// 4. 获取用户信息
async function getUserInfo() {
  const response = await UserAPI.getCurrentUserInfo();
  return response.data.data;
}

Token 管理

  • 访问令牌: 有效期由 ACCESS_TOKEN_EXPIRE_MINUTES 配置,用于API认证
  • 刷新令牌: 有效期更长,用于刷新访问令牌
  • 会话ID: 唯一标识用户会话,存储在Redis中

插件市场

概述

FastapiAdmin 提供插件市场功能,支持插件的安装、卸载、启用/禁用等操作。

核心接口

功能方法接口权限说明
插件市场列表marketplaceGET /api/v1/system/plugin/marketplace租户用户获取可用插件
我的插件myPluginsGET /api/v1/system/plugin/my租户用户获取已安装插件
安装插件installPOST /api/v1/system/plugin/install租户用户安装插件
卸载插件uninstallPOST /api/v1/system/plugin/uninstall租户用户卸载插件
切换状态togglePOST /api/v1/system/plugin/toggle租户用户启用/禁用插件

插件状态说明

状态码插件市场含义我的插件含义
0插件可用已启用
1插件不可用已禁用

前端调用示例

typescript
import PluginAPI, { type PluginTable } from "@api/module_application/plugin";

// 获取插件市场列表
async function getMarketplace(category?: string) {
  const response = await PluginAPI.marketplace(
    { page_no: 1, page_size: 10 },
    category
  );
  return response.data.data;
}

// 安装插件
async function installPlugin(pluginId: number) {
  await PluginAPI.install(pluginId);
}

// 切换插件状态
async function togglePlugin(pluginId: number) {
  await PluginAPI.toggle(pluginId);
}

定时任务

概述

FastapiAdmin 提供基于 APScheduler 的定时任务管理功能,支持任务的创建、修改、删除、暂停、恢复和立即执行。

核心接口

功能方法接口说明
获取调度器状态getSchedulerStatusGET /api/v1/task/cronjob/job/scheduler/status获取调度器运行状态
获取任务列表getSchedulerJobsGET /api/v1/task/cronjob/job/scheduler/jobs获取所有任务
启动调度器startSchedulerPOST /api/v1/task/cronjob/job/scheduler/start启动调度器
暂停调度器pauseSchedulerPOST /api/v1/task/cronjob/job/scheduler/pause暂停调度器
恢复调度器resumeSchedulerPOST /api/v1/task/cronjob/job/scheduler/resume恢复调度器
关闭调度器shutdownSchedulerPOST /api/v1/task/cronjob/job/scheduler/shutdown关闭调度器
暂停任务pauseJobPOST /api/v1/task/cronjob/job/task/pause/{jobId}暂停指定任务
恢复任务resumeJobPOST /api/v1/task/cronjob/job/task/resume/{jobId}恢复指定任务
立即执行runJobNowPOST /api/v1/task/cronjob/job/task/run/{jobId}立即执行任务
删除任务removeJobDELETE /api/v1/task/cronjob/job/task/remove/{jobId}删除任务
获取日志getJobLogListGET /api/v1/task/cronjob/job/log/list获取任务执行日志
同步任务syncJobsToDbPOST /api/v1/task/cronjob/job/scheduler/sync同步任务到数据库

调度器状态

typescript
interface SchedulerStatus {
  status: string;        // running, paused, shutdown
  is_running: boolean;   // 是否运行中
  job_count: number;     // 任务数量
}

前端调用示例

typescript
import JobAPI from "@api/module_task/cronjob/job";

// 获取调度器状态
async function getStatus() {
  const response = await JobAPI.getSchedulerStatus();
  return response.data.data;
}

// 启动调度器
async function startScheduler() {
  await JobAPI.startScheduler();
}

// 暂停任务
async function pauseTask(jobId: string) {
  await JobAPI.pauseJob(jobId);
}

// 立即执行任务
async function runNow(jobId: string) {
  await JobAPI.runJobNow(jobId);
}

AI 对话

概述

FastapiAdmin 集成 AI 对话功能,支持创建会话、发送消息、获取历史记录等操作。

核心接口

功能方法接口说明
会话列表getSessionListGET /api/v1/ai/chat/list获取会话分页列表
创建会话createSessionPOST /api/v1/ai/chat/create创建新会话
更新会话updateSessionPUT /api/v1/ai/chat/update/{id}更新会话标题
删除会话deleteSessionDELETE /api/v1/ai/chat/delete删除会话
AI对话chatPOST /api/v1/ai/chat/ai-chat发送消息获取AI回复
会话详情getSessionDetailGET /api/v1/ai/chat/detail/{sessionId}获取会话详情和消息

数据结构

typescript
interface ChatSession {
  session_id: string;
  id: string;
  title: string | null;
  agent_id: string | null;
  team_id: string | null;
  workflow_id: string | null;
  created_time: string | null;
  updated_time: string | null;
  message_count: number;
  messages: ChatSessionMessage[];
}

interface ChatSessionMessage {
  id: string;
  role: string;        // user, assistant
  content: string;
  created_at: number | null;
}

interface AiChatResponse {
  response: string;    // AI回复内容
  session_id: string;  // 会话ID
  function_calls: Array<{
    name: string;
    arguments: Record<string, any>;
  }> | null;           // 函数调用(可选)
}

前端调用示例

typescript
import AiChatAPI from "@api/module_ai/chat";

// 创建会话
async function createChat(title: string) {
  const response = await AiChatAPI.createSession({ title });
  return response.data.data;
}

// 发送消息
async function sendMessage(message: string, sessionId?: string) {
  const response = await AiChatAPI.chat({
    message,
    session_id: sessionId ?? null,
  });
  return response.data.data;
}

// 获取会话详情
async function getChatDetail(sessionId: string) {
  const response = await AiChatAPI.getSessionDetail(sessionId);
  return response.data.data;
}

用户管理

概述

用户管理模块提供完整的用户生命周期管理功能,包括用户的创建、查询、更新、删除、密码管理、导入导出等操作。

核心接口

功能方法接口权限
获取当前用户信息getCurrentUserInfoGET /api/v1/system/user/current/info登录用户
更新当前用户信息updateCurrentUserInfoPUT /api/v1/system/user/current/info/update登录用户
修改密码changeCurrentUserPasswordPUT /api/v1/system/user/current/password/change登录用户
重置密码resetUserPasswordPUT /api/v1/system/user/reset/passwordmodule_system:user:update
用户注册registerUserPOST /api/v1/system/user/register公开
忘记密码forgetPasswordPOST /api/v1/system/user/forget/password公开
查询用户列表listUserGET /api/v1/system/user/listmodule_system:user:query
查询用户详情detailUserGET /api/v1/system/user/detail/{id}module_system:user:detail
创建用户createUserPOST /api/v1/system/user/createmodule_system:user:create
更新用户updateUserPUT /api/v1/system/user/update/{id}module_system:user:update
删除用户deleteUserDELETE /api/v1/system/user/deletemodule_system:user:delete
批量设置状态batchUserPATCH /api/v1/system/user/available/settingmodule_system:user:patch
导出用户exportUserPOST /api/v1/system/user/exportmodule_system:user:export
下载导入模板downloadTemplateUserPOST /api/v1/system/user/import/templatemodule_system:user:download
导入用户importUserPOST /api/v1/system/user/import/datamodule_system:user:import

关键业务逻辑

用户创建流程

  1. 验证用户名不能为空
  2. 检查是否试图创建超级管理员(不允许)
  3. 检查用户名是否已存在
  4. 检查部门是否存在(如果指定了部门)
  5. 密码加密存储
  6. 关联角色和岗位

权限控制

  • 超级管理员不能被创建、修改、删除
  • 不能删除当前登录用户
  • 启用状态的用户不能被删除

前端调用示例

typescript
// 获取用户列表
const users = await UserAPI.listUser({ page_no: 1, page_size: 10 });

// 创建用户
await UserAPI.createUser({
  username: 'user001',
  name: '张三',
  dept_id: 1,
  role_ids: [1, 2],
  position_ids: [1],
  password: 'password123',
  gender: 1,
  email: 'zhangsan@example.com',
  mobile: '13800138000'
});

// 修改密码
await UserAPI.changeCurrentUserPassword({
  old_password: 'oldpass',
  new_password: 'newpass',
  confirm_password: 'newpass'
});

角色管理

概述

角色管理模块提供角色的创建、查询、更新、删除以及权限分配功能,支持数据权限范围设置。

核心接口

功能方法接口权限
查询角色列表listRoleGET /api/v1/system/role/listmodule_system:role:query
查询角色详情detailRoleGET /api/v1/system/role/detail/{id}module_system:role:detail
创建角色createRolePOST /api/v1/system/role/createmodule_system:role:create
更新角色updateRolePUT /api/v1/system/role/update/{id}module_system:role:update
删除角色deleteRoleDELETE /api/v1/system/role/deletemodule_system:role:delete
批量设置状态batchRolePATCH /api/v1/system/role/available/settingmodule_system:role:patch
角色授权setRolePermissionPATCH /api/v1/system/role/permission/settingmodule_system:role:permission
导出角色exportRolePOST /api/v1/system/role/exportmodule_system:role:export

数据权限范围

范围值说明
1仅本人数据权限
2本部门数据权限
3本部门及以下数据权限
4全部数据权限
5自定义数据权限

前端调用示例

typescript
// 获取角色列表
const roles = await RoleAPI.listRole({ page_no: 1, page_size: 10 });

// 角色授权
await RoleAPI.setRolePermission({
  role_ids: [1],
  menu_ids: [1, 2, 3],
  data_scope: 4,
  dept_ids: []
});

部门管理

概述

部门管理模块提供部门的树形结构管理功能,支持部门的创建、查询、更新、删除和状态管理。

核心接口

功能方法接口权限
查询部门树getDeptTreeGET /api/v1/system/dept/treemodule_system:dept:query
查询部门详情detailDeptGET /api/v1/system/dept/detail/{id}module_system:dept:detail
创建部门createDeptPOST /api/v1/system/dept/createmodule_system:dept:create
更新部门updateDeptPUT /api/v1/system/dept/update/{id}module_system:dept:update
删除部门deleteDeptDELETE /api/v1/system/dept/deletemodule_system:dept:delete
批量设置状态batchDeptPATCH /api/v1/system/dept/available/settingmodule_system:dept:patch

关键业务逻辑

部门删除

  • 删除部门时会递归删除所有子部门
  • 确保数据完整性

状态联动

  • 启用部门时,会级联启用所有上级部门
  • 停用部门时,会级联停用所有子部门

前端调用示例

typescript
// 获取部门树
const deptTree = await DeptAPI.getDeptTree({});

// 创建部门
await DeptAPI.createDept({
  name: '技术部',
  code: 'tech',
  parent_id: 0,
  order: 1,
  status: '0'
});

// 删除部门(会递归删除子部门)
await DeptAPI.deleteDept([1]);

菜单管理

概述

菜单管理模块提供系统菜单的树形结构管理功能,支持菜单的创建、查询、更新、删除和状态管理。

核心接口

功能方法接口权限
查询菜单树getMenuTreeGET /api/v1/system/menu/treemodule_system:menu:query
查询菜单详情detailMenuGET /api/v1/system/menu/detail/{id}module_system:menu:detail
创建菜单createMenuPOST /api/v1/system/menu/createmodule_system:menu:create
更新菜单updateMenuPUT /api/v1/system/menu/update/{id}module_system:menu:update
删除菜单deleteMenuDELETE /api/v1/system/menu/deletemodule_system:menu:delete
批量设置状态batchMenuPATCH /api/v1/system/menu/available/settingmodule_system:menu:patch

菜单类型

类型值说明
1目录
2菜单
3按钮
4外链

前端调用示例

typescript
// 获取菜单树
const menuTree = await MenuAPI.getMenuTree({});

// 创建菜单
await MenuAPI.createMenu({
  name: '系统管理',
  path: '/system',
  component: 'Layout',
  type: 1,
  parent_id: 0,
  order: 1,
  status: '0',
  icon: 'system'
});

缓存管理

概述

缓存管理模块提供对 Redis 缓存的监控和管理功能,包括缓存信息查询、缓存键管理和缓存清除等操作。

核心接口

功能方法接口权限
获取缓存监控信息getCacheInfoGET /api/v1/monitor/cache/infomodule_monitor:cache:query
获取缓存名称列表getCacheNamesGET /api/v1/monitor/cache/get/namesmodule_monitor:cache:query
获取缓存键名列表getCacheKeysGET /api/v1/monitor/cache/get/keys/{cache_name}module_monitor:cache:query
获取缓存值getCacheValueGET /api/v1/monitor/cache/get/value/{cache_name}/{cache_key}module_monitor:cache:query
清除指定缓存名称clearCacheByNameDELETE /api/v1/monitor/cache/delete/name/{cache_name}module_monitor:cache:delete
清除指定缓存键clearCacheByKeyDELETE /api/v1/monitor/cache/delete/key/{cache_key}module_monitor:cache:delete
清除所有缓存clearAllCacheDELETE /api/v1/monitor/cache/delete/allmodule_monitor:cache:delete

响应数据结构

typescript
interface CacheMonitorSchema {
  command_stats: Array<{
    name: string;    // 命令名称
    value: string;   // 调用次数
  }>;
  db_size: number;   // Redis数据库中的Key总数
  info: object;      // Redis服务器信息
}

interface CacheInfoSchema {
  cache_key: string;      // 缓存键名
  cache_name: string;     // 缓存名称
  cache_value: any;       // 缓存值
  remark: string | null;  // 备注说明
}

前端调用示例

typescript
// 获取缓存监控信息
const cacheInfo = await CacheAPI.getCacheInfo();

// 获取缓存名称列表
const cacheNames = await CacheAPI.getCacheNames();

// 获取指定缓存名称的键名列表
const keys = await CacheAPI.getCacheKeys('captcha');

// 清除所有缓存
await CacheAPI.clearAllCache();

在线用户管理

概述

在线用户管理模块提供对当前在线用户的监控和管理功能,支持查看在线用户列表、强制下线和清除所有在线用户等操作。

核心接口

功能方法接口权限
获取在线用户列表getOnlineListGET /api/v1/monitor/online/listmodule_monitor:online:query
强制下线forceOfflineDELETE /api/v1/monitor/online/deletemodule_monitor:online:delete
清除所有在线用户clearAllOnlineDELETE /api/v1/monitor/online/clearmodule_monitor:online:delete

前端调用示例

typescript
// 获取在线用户列表
const onlineUsers = await OnlineAPI.getOnlineList({ page_no: 1, page_size: 10 });

// 强制下线指定用户
await OnlineAPI.forceOffline('session-id-xxx');

// 清除所有在线用户(慎用)
await OnlineAPI.clearAllOnline();

服务器监控

概述

服务器监控模块提供服务器系统资源的实时监控信息,包括 CPU、内存、磁盘、网络等使用情况。

核心接口

功能方法接口权限
获取服务器监控信息getServerInfoGET /api/v1/monitor/server/infomodule_monitor:server:query

响应数据结构

typescript
interface ServerMonitorSchema {
  cpu: {
    percent: number;      // CPU使用率(%)
    cores: number;        // CPU核心数
  };
  memory: {
    total: number;        // 总内存(字节)
    used: number;         // 已使用内存(字节)
    free: number;         // 空闲内存(字节)
    percent: number;      // 内存使用率(%)
  };
  disk: {
    total: number;        // 磁盘总容量(字节)
    used: number;         // 已使用(字节)
    free: number;         // 空闲(字节)
    percent: number;      // 使用率(%)
  };
  network: {
    bytes_sent: number;   // 发送字节数
    bytes_recv: number;   // 接收字节数
  };
  uptime: number;         // 服务器运行时间(秒)
}

数据字典管理

概述

数据字典管理模块提供系统字典类型和字典数据的管理功能,支持字典的增删改查和缓存同步。

核心接口

字典类型

功能方法接口权限
获取字典类型列表listDictTypeGET /api/v1/system/dict/type/listmodule_system:dict_type:query
获取字典类型详情detailDictTypeGET /api/v1/system/dict/type/detail/{id}module_system:dict_type:detail
创建字典类型createDictTypePOST /api/v1/system/dict/type/createmodule_system:dict_type:create
更新字典类型updateDictTypePUT /api/v1/system/dict/type/update/{id}module_system:dict_type:update
删除字典类型deleteDictTypeDELETE /api/v1/system/dict/type/deletemodule_system:dict_type:delete

字典数据

功能方法接口权限
获取字典数据列表listDictDataGET /api/v1/system/dict/data/listmodule_system:dict_data:query
获取字典数据详情detailDictDataGET /api/v1/system/dict/data/detail/{id}module_system:dict_data:detail
创建字典数据createDictDataPOST /api/v1/system/dict/data/createmodule_system:dict_data:create
更新字典数据updateDictDataPUT /api/v1/system/dict/data/update/{id}module_system:dict_data:update
删除字典数据deleteDictDataDELETE /api/v1/system/dict/data/deletemodule_system:dict_data:delete
根据类型获取字典数据getDictDataByTypeGET /api/v1/system/dict/data/info/{dict_type}公开

前端调用示例

typescript
// 获取字典类型列表
const dictTypes = await DictAPI.listDictType({ page_no: 1, page_size: 10 });

// 根据字典类型获取数据(用于下拉选择等场景)
const statusOptions = await DictAPI.getDictDataByType('sys_user_status');

日志管理

概述

日志管理模块提供操作日志的查询、详情查看和导出功能。

核心接口

功能方法接口权限
获取日志列表listLogGET /api/v1/system/log/listmodule_system:log:query
获取日志详情detailLogGET /api/v1/system/log/detail/{id}module_system:log:detail
删除日志deleteLogDELETE /api/v1/system/log/deletemodule_system:log:delete
导出日志exportLogPOST /api/v1/system/log/exportmodule_system:log:export

前端调用示例

typescript
// 查询日志
const logs = await LogAPI.listLog({
  page_no: 1,
  page_size: 20,
  start_time: '2024-01-01',
  end_time: '2024-01-31'
});

// 导出日志
const response = await LogAPI.exportLog({
  start_time: '2024-01-01',
  end_time: '2024-01-31'
});

通知管理

概述

通知管理模块提供公告通知的管理功能,支持公告的创建、查询、更新、删除和状态管理。

核心接口

功能方法接口权限
获取公告列表listNoticeGET /api/v1/system/notice/listmodule_system:notice:query
获取公告详情detailNoticeGET /api/v1/system/notice/detail/{id}module_system:notice:detail
创建公告createNoticePOST /api/v1/system/notice/createmodule_system:notice:create
更新公告updateNoticePUT /api/v1/system/notice/update/{id}module_system:notice:update
删除公告deleteNoticeDELETE /api/v1/system/notice/deletemodule_system:notice:delete
获取启用公告getAvailableNoticeGET /api/v1/system/notice/available登录用户
获取通知面板getNotificationPanelGET /api/v1/system/notice/panel登录用户

前端调用示例

typescript
// 获取启用的公告(首页展示)
const notices = await NoticeAPI.getAvailableNotice();

// 获取通知面板数据(铃铛图标)
const panelData = await NoticeAPI.getNotificationPanel();

参数配置管理

概述

参数配置管理模块提供系统参数的管理功能,支持参数的增删改查和缓存同步。

核心接口

功能方法接口权限
获取参数列表listParamsGET /api/v1/system/param/listmodule_system:param:query
获取参数详情detailParamsGET /api/v1/system/param/detail/{id}module_system:param:detail
根据键获取参数getParamsByKeyGET /api/v1/system/param/key/{config_key}module_system:param:query
根据键获取参数值getParamsValueGET /api/v1/system/param/value/{config_key}module_system:param:query
创建参数createParamsPOST /api/v1/system/param/createmodule_system:param:create
更新参数updateParamsPUT /api/v1/system/param/update/{id}module_system:param:update
删除参数deleteParamsDELETE /api/v1/system/param/deletemodule_system:param:delete
获取初始化参数getInitParamsGET /api/v1/system/param/info公开

前端调用示例

typescript
// 获取初始化参数(用于系统启动时加载配置)
const configParams = await ParamsAPI.getInitParams();

// 根据键获取参数值
const maxUploadSize = await ParamsAPI.getParamsValue('sys.max_upload_size');

岗位管理

概述

岗位管理模块提供岗位的管理功能,支持岗位的增删改查和状态管理。

核心接口

功能方法接口权限
获取岗位列表listPositionGET /api/v1/system/position/listmodule_system:position:query
获取岗位详情detailPositionGET /api/v1/system/position/detail/{id}module_system:position:detail
创建岗位createPositionPOST /api/v1/system/position/createmodule_system:position:create
更新岗位updatePositionPUT /api/v1/system/position/update/{id}module_system:position:update
删除岗位deletePositionDELETE /api/v1/system/position/deletemodule_system:position:delete

前端调用示例

typescript
// 获取岗位列表
const positions = await PositionAPI.listPosition({ page_no: 1, page_size: 10 });

// 创建岗位
await PositionAPI.createPosition({
  name: '高级开发工程师',
  code: 'senior_dev',
  order: 1,
  status: '0'
});

租户管理

概述

租户管理模块提供多租户架构下的租户管理功能,支持租户的创建、查询、更新、删除以及用户管理、配额管理、配置管理和菜单权限管理。

核心接口

租户基本操作

功能方法接口权限
获取租户列表listTenantGET /api/v1/system/tenant/listmodule_system:tenant:query
获取租户详情detailTenantGET /api/v1/system/tenant/detail/{id}module_system:tenant:query
创建租户createTenantPOST /api/v1/system/tenant/createmodule_system:tenant:create
更新租户updateTenantPUT /api/v1/system/tenant/update/{id}module_system:tenant:update
删除租户deleteTenantDELETE /api/v1/system/tenant/deletemodule_system:tenant:delete
切换租户状态toggleTenantStatusPUT /api/v1/system/tenant/status/{id}module_system:tenant:patch

租户用户管理

功能方法接口权限
获取租户用户getTenantUsersGET /api/v1/system/tenant/{id}/usersmodule_system:tenant:query
添加租户用户addTenantUserPOST /api/v1/system/tenant/{id}/usersmodule_system:tenant:create
移除租户用户removeTenantUserDELETE /api/v1/system/tenant/{id}/users/{uid}module_system:tenant:delete

租户配额管理

功能方法接口权限
获取租户配额getTenantQuotaGET /api/v1/system/tenant/{id}/quotamodule_system:tenant:query
更新租户配额updateTenantQuotaPUT /api/v1/system/tenant/{id}/quotamodule_system:tenant:update

租户配置管理

功能方法接口权限
获取租户配置getTenantConfigGET /api/v1/system/tenant/{id}/configmodule_system:tenant:query
更新租户配置updateTenantConfigPUT /api/v1/system/tenant/{id}/configmodule_system:tenant:update

租户菜单权限

功能方法接口权限
获取租户菜单getTenantMenusGET /api/v1/system/tenant/{id}/menusmodule_system:tenant:query
设置租户菜单setTenantMenusPUT /api/v1/system/tenant/{id}/menusmodule_system:tenant:update

前端调用示例

typescript
// 创建租户
const tenant = await TenantAPI.createTenant({
  name: '示例租户',
  code: 'example_tenant',
  admin_name: '管理员',
  admin_account: 'admin',
  admin_password: 'password'
});

// 添加用户到租户
await TenantAPI.addTenantUser(tenant.id, { user_id: 123 });

// 设置租户配额
await TenantAPI.updateTenantQuota(tenant.id, {
  user_limit: 100,
  storage_limit: 1024 * 1024 * 1024 // 1GB
});

工单管理

概述

工单管理模块提供工单的创建、查询、更新和删除功能,支持工单流程管理。

核心接口

功能方法接口权限
获取工单列表listTicketGET /api/v1/system/ticket/listmodule_ticket:ticket:query
获取工单详情detailTicketGET /api/v1/system/ticket/detail/{id}module_ticket:ticket:query
创建工单createTicketPOST /api/v1/system/ticket/createmodule_ticket:ticket:create
更新工单updateTicketPUT /api/v1/system/ticket/update/{id}module_ticket:ticket:update
删除工单deleteTicketDELETE /api/v1/system/ticket/deletemodule_ticket:ticket:delete

前端调用示例

typescript
// 创建工单
await TicketAPI.createTicket({
  title: '系统故障报告',
  content: '系统登录页面无法正常加载',
  priority: 'high',
  type: 'bug'
});

// 获取工单列表
const tickets = await TicketAPI.listTicket({ page_no: 1, page_size: 10 });