This commit is contained in:
mangomqy
2025-11-13 02:54:06 +00:00
commit c5e51ed069
254 changed files with 54901 additions and 0 deletions

View File

@ -0,0 +1,168 @@
# Frontend 类型同步总结
## 概述
根据 backend 的最新 DTO 定义,对 frontend 的类型定义和组件代码进行了全面更新,确保前后端数据结构一致。
## 修改的文件
### 1. 核心类型定义
#### `/frontend/src/core/types/index.ts`
- **Cluster 接口**:
-`has_ca_data`, `has_cert_data`, `has_key_data`, `has_token` 改为 camelCase: `hasCAData`, `hasCertData`, `hasKeyData`, `hasToken`
-`ca_data`, `cert_data`, `key_data` 改为 camelCase: `caData`, `certData`, `keyData`
- **AppRegistry 接口**:
-`has_password` 改为 camelCase: `hasPassword`
- `username``password` 改为可选字段(与 backend DTO 一致)
- **AppInstance 接口**:
- 使用 snake_case `cluster_id``registry_id`(与 backend DTO 一致)
- 添加 `chart` 字段
- 添加 `version` 字段
- 添加 `revision` 字段
#### `/frontend/src/core/api/instance.api.ts`
- **Instance 接口**:
-`clusterId` 改为 `cluster_id`
-`registryId` 改为 `registry_id`
- 添加 `chart` 字段
-`tag` 改为 `version`
- 移除 `notes``deployedAt`backend DTO 中不存在)
### 2. 配置组件
#### `/frontend/src/features/configuration/clusters/components/ClusterForm.tsx`
- 更新所有对 `cluster.ca_data` 的引用为 `cluster.caData`
- 更新所有对 `cluster.cert_data` 的引用为 `cluster.certData`
- 更新所有对 `cluster.key_data` 的引用为 `cluster.keyData`
- 更新所有对 `cluster.has_ca_data` 的引用为 `cluster.hasCAData`
- 更新所有对 `cluster.has_cert_data` 的引用为 `cluster.hasCertData`
- 更新所有对 `cluster.has_key_data` 的引用为 `cluster.hasKeyData`
#### `/frontend/src/features/configuration/clusters/components/ClusterList.tsx`
- 更新配置状态检查使用 camelCase 命名
#### `/frontend/src/features/configuration/registries/components/RegistryForm.tsx`
-`has_password` 改为 `hasPassword`
### 3. 实例管理组件
#### `/frontend/src/features/artifact/instances/components/EndpointsModal.tsx`
-`instance.clusterId` 改为 `instance.cluster_id`
#### `/frontend/src/features/artifact/instances/pages/InstancesManagementPage.tsx`
- 将所有 `instance.clusterId` 改为 `instance.cluster_id`
#### `/frontend/src/features/artifact/instances/components/ModifyModal.tsx`
-`instance.clusterId` 改为 `instance.cluster_id`
-`instance.registryId` 改为 `instance.registry_id`
-`instance.tag` 改为 `instance.version`
- 更新显示文本从 "Current Tag" 改为 "Current Version"
#### `/frontend/src/features/artifact/instances/components/InstanceCard.tsx`
-`instance.tag` 改为 `instance.version`
## Backend DTO 参考
### ClusterResponse
```go
type ClusterResponse struct {
ID string `json:"id"`
Name string `json:"name"`
Host string `json:"host"`
Description string `json:"description"`
HasCAData bool `json:"hasCAData"`
HasCertData bool `json:"hasCertData"`
HasKeyData bool `json:"hasKeyData"`
HasToken bool `json:"hasToken"`
CAData string `json:"caData,omitempty"`
CertData string `json:"certData,omitempty"`
KeyData string `json:"keyData,omitempty"`
Token string `json:"token,omitempty"`
CreatedAt string `json:"createdAt"`
UpdatedAt string `json:"updatedAt"`
}
```
### RegistryResponse
```go
type RegistryResponse struct {
ID string `json:"id"`
Name string `json:"name"`
URL string `json:"url"`
Description string `json:"description"`
Username string `json:"username,omitempty"`
Password string `json:"password,omitempty"`
HasPassword bool `json:"hasPassword"`
Insecure bool `json:"insecure"`
CreatedAt string `json:"createdAt"`
UpdatedAt string `json:"updatedAt"`
}
```
### InstanceResponse
```go
type InstanceResponse struct {
ID string `json:"id"`
ClusterID string `json:"cluster_id"`
Name string `json:"name"`
Namespace string `json:"namespace"`
RegistryID string `json:"registry_id"`
Repository string `json:"repository"`
Chart string `json:"chart"`
Version string `json:"version"`
Description string `json:"description"`
Status string `json:"status"`
Revision int `json:"revision"`
Values map[string]interface{} `json:"values,omitempty"`
CreatedAt string `json:"createdAt"`
UpdatedAt string `json:"updatedAt"`
}
```
## 命名约定总结
1. **响应字段Response**
- Cluster 和 Registry: 使用 **camelCase** (如 `hasCAData`, `hasCertData`, `hasPassword`)
- Instance: 混合使用,`cluster_id``registry_id` 使用 **snake_case**,其他字段使用 **camelCase**
2. **请求字段Request**
- 使用 **snake_case** (如 `ca_data`, `cert_data`, `key_data`)
- Backend 会接受这些字段并进行验证
## 验证步骤
1. **启动 Backend**:
```bash
cd backend
make run-mock # 或 make dev
```
2. **启动 Frontend**:
```bash
cd frontend
npm install
npm run dev
```
3. **测试功能**:
- ✅ 创建/编辑集群配置
- ✅ 查看集群证书配置状态
- ✅ 创建/编辑 Registry 配置
- ✅ 查看 Registry 密码配置状态
- ✅ 部署应用实例
- ✅ 查看实例详情chart, version 等字段)
- ✅ 修改/升级实例
- ✅ 查看实例入口信息
## 注意事项
1. **向后兼容性**: 如果有旧数据,可能需要数据迁移
2. **GraphQL Schema**: 如果使用 GraphQL需要同步更新 schema
3. **API 文档**: 建议更新 API 文档以反映最新的字段命名
## Linter 检查结果
✅ 所有修改的文件都通过了 linter 检查,无错误或警告。