|
|
|
@@ -1,21 +1,17 @@ |
|
|
|
import KFModal from '@/components/KFModal'; |
|
|
|
import { AvailableRange } from '@/enums'; |
|
|
|
import { type CodeConfigData } from '@/pages/CodeConfig/List'; |
|
|
|
import { addCodeConfigReq, updateCodeConfigReq } from '@/services/codeConfig'; |
|
|
|
import { to } from '@/utils/promise'; |
|
|
|
import { Form, Input, Radio, message, type ModalProps } from 'antd'; |
|
|
|
import { omit } from 'lodash'; |
|
|
|
|
|
|
|
export enum RepoVisibleEnum { |
|
|
|
Private = 0, // 私有 |
|
|
|
Public = 1, // 公开 |
|
|
|
} |
|
|
|
|
|
|
|
export enum VerifyModeEnum { |
|
|
|
export enum VerifyMode { |
|
|
|
Password = 0, // 用户名密码 |
|
|
|
SSH = 1, // SSH Key |
|
|
|
} |
|
|
|
|
|
|
|
export enum OperationTypeEnum { |
|
|
|
export enum OperationType { |
|
|
|
Create = 0, // 新建 |
|
|
|
Update = 1, // 更新 |
|
|
|
} |
|
|
|
@@ -23,7 +19,7 @@ export enum OperationTypeEnum { |
|
|
|
type FormData = Partial<CodeConfigData>; |
|
|
|
|
|
|
|
interface AddCodeConfigModalProps extends Omit<ModalProps, 'onOk'> { |
|
|
|
opType: OperationTypeEnum; |
|
|
|
opType: OperationType; |
|
|
|
codeConfigData?: CodeConfigData; |
|
|
|
onOk: () => void; |
|
|
|
} |
|
|
|
@@ -35,21 +31,21 @@ function AddCodeConfigModal({ opType, codeConfigData, onOk, ...rest }: AddCodeCo |
|
|
|
...formData, |
|
|
|
}; |
|
|
|
// 清除多余的信息 |
|
|
|
if (formData.code_repo_vis === RepoVisibleEnum.Public) { |
|
|
|
if (formData.code_repo_vis === AvailableRange.Public) { |
|
|
|
omit(params, ['verify_mode', 'git_user_name', 'git_password', 'ssh_key']); |
|
|
|
} |
|
|
|
if (formData.verify_mode === VerifyModeEnum.Password) { |
|
|
|
if (formData.verify_mode === VerifyMode.Password) { |
|
|
|
omit(params, ['ssh_key']); |
|
|
|
} else if (formData.verify_mode === VerifyModeEnum.SSH) { |
|
|
|
} else if (formData.verify_mode === VerifyMode.SSH) { |
|
|
|
omit(params, ['git_user_name', 'git_password']); |
|
|
|
} |
|
|
|
if (opType === OperationTypeEnum.Update) { |
|
|
|
if (opType === OperationType.Update) { |
|
|
|
params.id = codeConfigData?.id; |
|
|
|
} |
|
|
|
const request = opType === OperationTypeEnum.Create ? addCodeConfigReq : updateCodeConfigReq; |
|
|
|
const request = opType === OperationType.Create ? addCodeConfigReq : updateCodeConfigReq; |
|
|
|
const [res] = await to(request(params)); |
|
|
|
if (res) { |
|
|
|
message.success(opType === OperationTypeEnum.Create ? '创建成功' : '修改成功'); |
|
|
|
message.success(opType === OperationType.Create ? '创建成功' : '修改成功'); |
|
|
|
onOk?.(); |
|
|
|
} |
|
|
|
}; |
|
|
|
@@ -61,11 +57,11 @@ function AddCodeConfigModal({ opType, codeConfigData, onOk, ...rest }: AddCodeCo |
|
|
|
|
|
|
|
// 设置初始值 |
|
|
|
const initialValues: FormData = codeConfigData ?? { |
|
|
|
code_repo_vis: RepoVisibleEnum.Public, |
|
|
|
verify_mode: VerifyModeEnum.Password, |
|
|
|
code_repo_vis: AvailableRange.Public, |
|
|
|
verify_mode: VerifyMode.Password, |
|
|
|
}; |
|
|
|
if (initialValues.verify_mode === undefined || initialValues.verify_mode === null) { |
|
|
|
initialValues.verify_mode = VerifyModeEnum.Password; |
|
|
|
initialValues.verify_mode = VerifyMode.Password; |
|
|
|
} |
|
|
|
|
|
|
|
return ( |
|
|
|
@@ -114,8 +110,8 @@ function AddCodeConfigModal({ opType, codeConfigData, onOk, ...rest }: AddCodeCo |
|
|
|
]} |
|
|
|
> |
|
|
|
<Radio.Group> |
|
|
|
<Radio value={RepoVisibleEnum.Public}>公开</Radio> |
|
|
|
<Radio value={RepoVisibleEnum.Private}>私有</Radio> |
|
|
|
<Radio value={AvailableRange.Public}>公开</Radio> |
|
|
|
<Radio value={AvailableRange.Private}>私有</Radio> |
|
|
|
</Radio.Group> |
|
|
|
</Form.Item> |
|
|
|
<Form.Item |
|
|
|
@@ -153,7 +149,7 @@ function AddCodeConfigModal({ opType, codeConfigData, onOk, ...rest }: AddCodeCo |
|
|
|
} |
|
|
|
> |
|
|
|
{({ getFieldValue }) => { |
|
|
|
return getFieldValue('code_repo_vis') === RepoVisibleEnum.Private ? ( |
|
|
|
return getFieldValue('code_repo_vis') === AvailableRange.Private ? ( |
|
|
|
<> |
|
|
|
<Form.Item |
|
|
|
label="验证方式" |
|
|
|
@@ -166,8 +162,8 @@ function AddCodeConfigModal({ opType, codeConfigData, onOk, ...rest }: AddCodeCo |
|
|
|
]} |
|
|
|
> |
|
|
|
<Radio.Group> |
|
|
|
<Radio value={VerifyModeEnum.Password}>用户名/密码</Radio> |
|
|
|
<Radio value={VerifyModeEnum.SSH}>SSH Key</Radio> |
|
|
|
<Radio value={VerifyMode.Password}>用户名/密码</Radio> |
|
|
|
<Radio value={VerifyMode.SSH}>SSH Key</Radio> |
|
|
|
</Radio.Group> |
|
|
|
</Form.Item> |
|
|
|
<Form.Item |
|
|
|
@@ -177,7 +173,7 @@ function AddCodeConfigModal({ opType, codeConfigData, onOk, ...rest }: AddCodeCo |
|
|
|
} |
|
|
|
> |
|
|
|
{({ getFieldValue }) => { |
|
|
|
return getFieldValue('verify_mode') === VerifyModeEnum.Password ? ( |
|
|
|
return getFieldValue('verify_mode') === VerifyMode.Password ? ( |
|
|
|
<> |
|
|
|
<Form.Item |
|
|
|
label="Git 用户名" |
|
|
|
|