添加网关类型GOST

This commit is contained in:
Eamon
2026-06-11 09:38:32 +08:00
parent d2c7846a91
commit d9790c6d15
3 changed files with 35 additions and 4 deletions

View File

@@ -14,7 +14,8 @@ export async function createGateway(data: {
host?: string host?: string
type: number type: number
status: number status: number
secret: string secret?: string
port?: number
}) { }) {
return callByUser<Gateway>("/api/admin/proxy/create", data) return callByUser<Gateway>("/api/admin/proxy/create", data)
} }

View File

@@ -48,7 +48,8 @@ const schema = z.object({
.or(z.literal("")), .or(z.literal("")),
type: z.string().optional(), type: z.string().optional(),
status: z.string().optional(), status: z.string().optional(),
secret: z.string().min(1, "请填写密钥"), secret: z.string().optional(),
proxy_port: z.string().optional(),
}) })
export default function CreatePage(props: { onSuccess?: () => void }) { export default function CreatePage(props: { onSuccess?: () => void }) {
@@ -63,6 +64,7 @@ export default function CreatePage(props: { onSuccess?: () => void }) {
type: "1", type: "1",
status: "0", status: "0",
secret: "", secret: "",
proxy_port: "",
}, },
}) })
@@ -75,7 +77,8 @@ export default function CreatePage(props: { onSuccess?: () => void }) {
host: data?.host.trim(), host: data?.host.trim(),
type: data.type ? Number(data.type) : 0, type: data.type ? Number(data.type) : 0,
status: data.status ? Number(data.status) : 0, status: data.status ? Number(data.status) : 0,
secret: data.secret.trim(), secret: data.secret?.trim() ?? "",
port: Number(data.proxy_port?.trim()) ?? "",
} }
const res = await createGateway(payload) const res = await createGateway(payload)
@@ -110,6 +113,7 @@ export default function CreatePage(props: { onSuccess?: () => void }) {
const typeOptions = [ const typeOptions = [
{ value: "1", label: "自有" }, { value: "1", label: "自有" },
{ value: "2", label: "白银" }, { value: "2", label: "白银" },
{ value: "3", label: "GOST" },
] ]
return ( return (
@@ -186,6 +190,24 @@ export default function CreatePage(props: { onSuccess?: () => void }) {
</Field> </Field>
)} )}
/> />
<Controller
control={form.control}
name="proxy_port"
render={({ field, fieldState }) => (
<Field>
<FieldLabel htmlFor="gateway-create-host">:</FieldLabel>
<Input
id="gateway-create-host"
placeholder="请输入端口8080"
{...field}
aria-invalid={fieldState.invalid}
/>
{fieldState.invalid && fieldState.error && (
<FieldError errors={[fieldState.error]} />
)}
</Field>
)}
/>
<Controller <Controller
control={form.control} control={form.control}
name="secret" name="secret"

View File

@@ -83,6 +83,7 @@ export default function GatewayPage() {
accessorKey: "host", accessorKey: "host",
}, },
{ header: "IP地址", accessorKey: "ip" }, { header: "IP地址", accessorKey: "ip" },
{ header: "端口", accessorKey: "port" },
{ {
header: "MAC地址", header: "MAC地址",
accessorKey: "mac", accessorKey: "mac",
@@ -94,7 +95,14 @@ export default function GatewayPage() {
{ {
header: "类型", header: "类型",
accessorKey: "type", accessorKey: "type",
cell: ({ row }) => (row.original.type === 1 ? "自有" : "白银"), cell: ({ row }) => {
const typeMap: Record<number, string> = {
1: "自有",
2: "白银",
3: "GOST",
}
return typeMap[row.original.type] ?? ""
},
}, },
{ {
header: "状态", header: "状态",