Skip to content

应用管理模块

概述

应用(Application)是低代码平台的顶层容器,用于组织和隔离表单、工作流、页面、菜单等资源。每个应用拥有独立的编码、状态、版本和团队成员。

模块路径backend-fastapi/core/application/

API 前缀/api/core/applications

数据模型

python
class Application(BaseModel):
    __tablename__ = "core_application"

    name: str           # 应用名称
    code: str           # 应用编码(唯一,用于 URL 路由)
    description: str    # 应用描述
    icon: str           # 应用图标
    cover: str          # 应用封面图 URL
    app_type: str       # 应用类型
    status: str         # 应用状态
    home_path: str      # 应用首页路径
    version: int        # 版本号
    config: dict        # 应用配置(JSON)
    owner_id: str       # 所有者 ID(逻辑外键)
    team_ids: list      # 团队成员 ID 列表
    system_menu_ids: list  # 开发模式下显示的系统菜单 ID 列表

应用类型 (app_type)

说明
form表单应用
workflow流程应用
dashboard数据应用
screen大屏应用
mixed混合应用(默认)
aiAI 应用

应用状态 (status)

说明
draft开发中(默认)
published已发布
disabled已停用

服务层

ApplicationService 继承 BaseService,提供以下方法:

方法说明
get_by_code(db, code)根据编码获取应用
get_list_by_owner(db, owner_id, page, page_size)获取指定用户拥有的应用
get_list_by_status(db, status, page, page_size)按状态筛选应用
get_list_by_type(db, app_type, page, page_size)按类型筛选应用
search(db, keyword, app_type, status, owner_id, page, page_size)综合搜索(名称/描述/编码)
publish(db, record_id)发布应用(状态改为 published,版本号 +1)
disable(db, record_id)停用应用
get_stats(db)获取统计信息(总数、按状态、按类型)

API 接口

基础 CRUD

方法路径说明
POST/创建应用
GET/获取应用列表(分页 + 搜索)
GET/{record_id}获取应用详情
GET/code/{code}根据编码获取应用
PUT/{record_id}更新应用
DELETE/{record_id}删除应用

状态管理

方法路径说明
POST/{record_id}/publish发布应用
POST/{record_id}/disable停用应用

辅助接口

方法路径说明
GET/stats获取应用统计
GET/check/unique检查字段唯一性(code/name)

请求/响应示例

创建应用

请求

json
POST /api/core/applications
{
  "name": "客户管理系统",
  "code": "crm",
  "description": "客户关系管理应用",
  "icon": "users",
  "app_type": "mixed"
}

响应

json
{
  "id": "abc123",
  "name": "客户管理系统",
  "code": "crm",
  "description": "客户关系管理应用",
  "icon": "users",
  "app_type": "mixed",
  "status": "draft",
  "version": 1,
  "sys_create_datetime": "2024-01-01T00:00:00"
}

搜索应用

请求

GET /api/core/applications?keyword=客户&appType=mixed&status=published&page=1&pageSize=10

获取统计

响应

json
{
  "message": "获取成功",
  "data": {
    "total": 15,
    "by_status": {
      "draft": 5,
      "published": 8,
      "disabled": 2
    },
    "by_type": {
      "form": 3,
      "workflow": 4,
      "mixed": 8
    }
  }
}

与其他模块的关系

  • 菜单模块:菜单通过 application_id 关联到应用
  • 表单模块:表单通过 application_id 关联到应用
  • 工作流模块:工作流通过 application_id 关联到应用
  • 页面模块:页面通过 application_id 关联到应用

更新应用时会自动清除该应用相关的菜单缓存。

Released under the MIT License.