mirror of
https://github.com/Awuqing/BackupX.git
synced 2026-05-11 18:10:23 +08:00
功能: Wizard Step2 部署参数表单
This commit is contained in:
90
web/src/pages/nodes/wizard/Step2DeployOptions.tsx
Normal file
90
web/src/pages/nodes/wizard/Step2DeployOptions.tsx
Normal file
@@ -0,0 +1,90 @@
|
||||
import React from 'react'
|
||||
import { Form, Radio, Select, Typography } from '@arco-design/web-react'
|
||||
import type { InstallMode, InstallArch, InstallSource } from '../../../types/nodes'
|
||||
|
||||
const { Text } = Typography
|
||||
|
||||
export interface DeployOptions {
|
||||
mode: InstallMode
|
||||
arch: InstallArch
|
||||
agentVersion: string
|
||||
downloadSrc: InstallSource
|
||||
ttlSeconds: number
|
||||
}
|
||||
|
||||
interface Props {
|
||||
masterVersion: string
|
||||
value: DeployOptions
|
||||
onChange: (v: DeployOptions) => void
|
||||
}
|
||||
|
||||
export function Step2DeployOptions({ masterVersion, value, onChange }: Props) {
|
||||
const update = (patch: Partial<DeployOptions>) => onChange({ ...value, ...patch })
|
||||
|
||||
return (
|
||||
<Form layout="vertical" size="default">
|
||||
<Form.Item label="安装模式">
|
||||
<Radio.Group
|
||||
type="button"
|
||||
value={value.mode}
|
||||
onChange={(v) => update({ mode: v as InstallMode })}
|
||||
options={[
|
||||
{ label: 'systemd(推荐)', value: 'systemd' },
|
||||
{ label: 'Docker', value: 'docker' },
|
||||
{ label: '前台运行(调试)', value: 'foreground' },
|
||||
]}
|
||||
/>
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item label="架构">
|
||||
<Select
|
||||
value={value.arch}
|
||||
onChange={(v) => update({ arch: v as InstallArch })}
|
||||
options={[
|
||||
{ label: '自动检测(uname -m)', value: 'auto' },
|
||||
{ label: 'amd64 (x86_64)', value: 'amd64' },
|
||||
{ label: 'arm64 (aarch64)', value: 'arm64' },
|
||||
]}
|
||||
/>
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item label="Agent 版本">
|
||||
<Select
|
||||
value={value.agentVersion}
|
||||
onChange={(v) => update({ agentVersion: v })}
|
||||
options={[
|
||||
{ label: `${masterVersion}(跟随 Master,推荐)`, value: masterVersion },
|
||||
]}
|
||||
/>
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item label="安装命令有效期">
|
||||
<Select
|
||||
value={value.ttlSeconds}
|
||||
onChange={(v) => update({ ttlSeconds: v as number })}
|
||||
options={[
|
||||
{ label: '5 分钟', value: 300 },
|
||||
{ label: '15 分钟(推荐)', value: 900 },
|
||||
{ label: '1 小时', value: 3600 },
|
||||
{ label: '24 小时', value: 86400 },
|
||||
]}
|
||||
/>
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item
|
||||
label="二进制下载源"
|
||||
extra={<Text type="secondary">国内服务器选 ghproxy 镜像加速</Text>}
|
||||
>
|
||||
<Radio.Group
|
||||
type="button"
|
||||
value={value.downloadSrc}
|
||||
onChange={(v) => update({ downloadSrc: v as InstallSource })}
|
||||
options={[
|
||||
{ label: 'GitHub 直连', value: 'github' },
|
||||
{ label: 'ghproxy 镜像', value: 'ghproxy' },
|
||||
]}
|
||||
/>
|
||||
</Form.Item>
|
||||
</Form>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user