deploy-ease-platform/frontend/src/domain/dataSource/presets
2025-10-25 00:20:19 +08:00
..
cascade.ts 表单设计器 2025-10-23 23:26:33 +08:00
deploy.ts 增加审批组件 2025-10-24 22:45:10 +08:00
docker.ts 表单设计器 2025-10-23 23:00:14 +08:00
git.ts 表单设计器 2025-10-23 23:00:14 +08:00
jenkins.ts 表单设计器 2025-10-23 23:00:14 +08:00
k8s.ts 表单设计器 2025-10-23 23:00:14 +08:00
notification.ts 表单设计器 2025-10-23 23:00:14 +08:00
README.md 增加审批组件 2025-10-25 00:20:19 +08:00
user.ts 表单设计器 2025-10-23 23:00:14 +08:00

数据源预设配置

本目录包含所有预定义的数据源配置。

已注册的数据源

部署相关 (deploy.ts)

1. ENVIRONMENTS - 环境列表

import { DataSourceType, loadDataSource } from '@/domain/dataSource';

// 使用示例
const options = await loadDataSource(DataSourceType.ENVIRONMENTS);

接口: GET /api/v1/environments/list?enabled=true

返回格式:

{
  label: string;      // 环境名称
  value: number;      // 环境 ID
  code: string;       // 环境代码
  type: string;       // 环境类型
  description: string;// 描述
}

2. PROJECT_GROUPS - 项目组列表

const options = await loadDataSource(DataSourceType.PROJECT_GROUPS);

接口: GET /api/v1/project-groups/list?enabled=true

返回格式:

{
  label: string;      // 项目组名称
  value: number;      // 项目组 ID
  code: string;       // 项目组代码
  description: string;// 描述
}

3. APPLICATIONS - 应用列表

const options = await loadDataSource(DataSourceType.APPLICATIONS);

接口: GET /api/v1/applications/list?enabled=true

返回格式:

{
  label: string;       // 应用名称
  value: number;       // 应用 ID
  code: string;        // 应用代码
  projectGroupId: number; // 所属项目组 ID
  description: string; // 描述
}

外部系统 (jenkins.ts, k8s.ts, git.ts, docker.ts)

  • JENKINS_SERVERS - Jenkins 服务器列表
  • K8S_CLUSTERS - K8s 集群列表
  • GIT_REPOSITORIES - Git 仓库列表
  • DOCKER_REGISTRIES - Docker 镜像仓库列表

通知相关 (notification.ts)

  • NOTIFICATION_CHANNEL_TYPES - 通知渠道类型
  • NOTIFICATION_CHANNELS - 通知渠道列表

用户相关 (user.ts)

  • USERS - 用户列表
  • ROLES - 角色列表
  • DEPARTMENTS - 部门列表

使用示例

在 React 组件中使用

import { useState, useEffect } from 'react';
import { DataSourceType, loadDataSource } from '@/domain/dataSource';

function MyComponent() {
  const [environments, setEnvironments] = useState([]);
  const [projectGroups, setProjectGroups] = useState([]);
  const [applications, setApplications] = useState([]);

  useEffect(() => {
    // 加载环境列表
    loadDataSource(DataSourceType.ENVIRONMENTS).then(setEnvironments);
    
    // 加载项目组列表
    loadDataSource(DataSourceType.PROJECT_GROUPS).then(setProjectGroups);
    
    // 加载应用列表
    loadDataSource(DataSourceType.APPLICATIONS).then(setApplications);
  }, []);

  return (
    <select>
      {environments.map(env => (
        <option key={env.value} value={env.value}>
          {env.label}
        </option>
      ))}
    </select>
  );
}

在表单设计器中使用

这些数据源可以直接在表单设计器的下拉框、单选框等组件中使用:

{
  type: 'select',
  label: '选择环境',
  dataSource: DataSourceType.ENVIRONMENTS
}

添加新数据源

  1. types.ts 中添加枚举类型
  2. presets/ 目录创建配置文件
  3. DataSourceRegistry.ts 中注册

详见主 README.md。