fix: K8s 集群添加缺少 code 必填字段

- KubernetesClusterDialog: 新增 code 表单字段
- 名称变更自动生成 code(小写+连字符)
- handleSubmit 增加 code 校验 + toast 提示
- payload 增加 code 字段(后端 binding:required)
This commit is contained in:
attacker committed 2026-06-21 09:50:07 +00:00
1 parent f24fe43ac0
commit ce438c9f05
18 files changed
+3941 -144

No files matched your search

@@ -1,18 +1,45 @@
// DeploymentDetailPage.tsx — 路由包装:解析 cluster/namespace/mode/name
// 支持 Kuboard 风格双模式路由:
// view: /kubernetes/:c/namespace/:n/workload/view/Deployment/:name
// edit: /kubernetes/:c/namespace/:n/workload/edit/Deployment/:name
// 兼容旧路由: /kubernetes/:c/namespace/:n/deployments/:name(默认 view)
// 作者: Logan <admin@attacker.club>
import { useParams, useNavigate } from 'react-router-dom';
import { DeploymentDetail } from './DeploymentDetail';
import { DeploymentWorkload } from './DeploymentWorkload';
export default function DeploymentDetailPage() {
const { clusterCode, namespace, name } = useParams<{
clusterCode: string; namespace: string; name: string;
// 兼容两种路由参数命名:旧 :name 与新 :name(路径段不同)
const params = useParams<{
clusterCode: string;
namespace: string;
name: string;
mode?: string; // 'view' | 'edit'(新路由)
workloadKind?: string; // 'Deployment'(新路由,预留扩展)
}>();
const navigate = useNavigate();
const clusterCode = params.clusterCode || '';
const namespace = params.namespace || '';
const deploymentName = params.name || '';
const currentMode: 'view' | 'edit' = params.mode === 'edit' ? 'edit' : 'view';
// 模式切换:在 view/edit 路由间跳转
const handleModeChange = (m: 'view' | 'edit') => {
if (m === currentMode) return;
navigate(
`/kubernetes/${clusterCode}/namespace/${namespace}/workload/${m}/Deployment/${deploymentName}`,
{ replace: true }
);
};
return (
<DeploymentDetail
clusterCode={clusterCode || ''}
namespace={namespace || ''}
deploymentName={name || ''}
<DeploymentWorkload
clusterCode={clusterCode}
namespace={namespace}
deploymentName={deploymentName}
mode={currentMode}
onBack={() => navigate(-1)}
onModeChange={handleModeChange}
/>
);
}