From 5ec99168172433e7c45f05d96f119e8e317ba5b2 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Mon, 19 Jan 2026 11:01:48 +0800 Subject: [PATCH] chore: FormDialog --- .../ui/certd-client/src/use/use-dialog.ts | 38 +++++++++++++++++++ .../src/views/certd/cert/domain/use.tsx | 29 ++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 packages/ui/certd-client/src/use/use-dialog.ts create mode 100644 packages/ui/certd-client/src/views/certd/cert/domain/use.tsx diff --git a/packages/ui/certd-client/src/use/use-dialog.ts b/packages/ui/certd-client/src/use/use-dialog.ts new file mode 100644 index 000000000..c77b78b70 --- /dev/null +++ b/packages/ui/certd-client/src/use/use-dialog.ts @@ -0,0 +1,38 @@ +import { useFormWrapper } from "@fast-crud/fast-crud"; + +export type FormOptionReq = { + title: string; + columns: any; + onSubmit?: any; +}; + +export function useFormDialog() { + const { openCrudFormDialog } = useFormWrapper(); + + async function openFormDialog(req: FormOptionReq) { + function createCrudOptions() { + return { + crudOptions: { + columns: req.columns, + form: { + wrapper: { + title: req.title, + saveRemind: false, + }, + async afterSubmit() {}, + async doSubmit({ form }: any) { + if (req.onSubmit) { + await req.onSubmit(form); + } + }, + }, + }, + }; + } + const { crudOptions } = createCrudOptions(); + await openCrudFormDialog({ crudOptions }); + } + return { + openFormDialog, + }; +} diff --git a/packages/ui/certd-client/src/views/certd/cert/domain/use.tsx b/packages/ui/certd-client/src/views/certd/cert/domain/use.tsx new file mode 100644 index 000000000..c25bff793 --- /dev/null +++ b/packages/ui/certd-client/src/views/certd/cert/domain/use.tsx @@ -0,0 +1,29 @@ +import * as api from "./api"; +import { useFormDialog } from "/@/use/use-dialog"; + +export function useDomainImport() { + const { openFormDialog } = useFormDialog(); + + const columns = { + dnsProviderType: { + title: "域名提供商", + type: "select", + }, + dnsProviderAccessId: { + title: "域名提供商访问ID", + type: "input", + }, + }; + + return function openDomainImportDialog() { + openFormDialog({ + title: "从域名提供商导入域名", + columns: columns, + onSubmit: async (form: any) => { + await api.Save({ + title: form.title, + }); + }, + }); + }; +}