fix(ui): empty data when saving form at first time

This commit is contained in:
Fu Diwei
2025-09-14 21:36:29 +08:00
parent d0acdb1ef6
commit b72b1ca9e2
4 changed files with 18 additions and 15 deletions
@@ -53,9 +53,12 @@ const AccessEditDrawer = ({ afterClose, afterSubmit, mode, data, loading, trigge
};
const handleOkClick = async () => {
let formValues: AccessModel;
setFormPending(true);
try {
await formInst.validateFields();
formValues = await formInst.validateFields();
formValues.reserve = usage === "ca" ? "ca" : usage === "notification" ? "notif" : void 0;
} catch (err) {
message.warning(t("common.errmsg.form_invalid"));
@@ -64,26 +67,23 @@ const AccessEditDrawer = ({ afterClose, afterSubmit, mode, data, loading, trigge
}
try {
let values: AccessModel = formInst.getFieldsValue(true);
values.reserve = usage === "ca" ? "ca" : usage === "notification" ? "notif" : void 0;
if (mode === "create") {
if (data?.id) {
throw "Invalid props: `data`";
}
values = await createAccess(values);
formValues = await createAccess(formValues);
} else if (mode === "edit") {
if (!data?.id) {
throw "Invalid props: `data`";
}
values = await updateAccess({ ...data, ...values });
formValues = await updateAccess({ ...data, ...formValues });
} else {
throw "Invalid props: `action`";
}
afterSubmit?.(values);
afterSubmit?.(formValues);
setOpen(false);
} catch (err) {
notification.error({ message: t("common.text.request_error"), description: getErrMsg(err) });
@@ -256,8 +256,8 @@ const BranchBlockNodeConfigExprInputBox = forwardRef<BranchBlockNodeConfigExprIn
useImperativeHandle(ref, () => {
return {
validate: async () => {
await formInst.validateFields();
return formValuesToExpr(formInst.getFieldsValue());
const formValues = await formInst.validateFields();
return formValuesToExpr(formValues);
},
};
});
@@ -80,9 +80,11 @@ export const NodeConfigDrawer = ({ children, afterClose, anchor, footer = true,
return;
}
let formValues: Record<string, unknown>;
setFormPending(true);
try {
await formInst.validateFields();
formValues = await formInst.validateFields();
} catch (err) {
message.warning(t("common.errmsg.form_invalid"));
@@ -91,7 +93,7 @@ export const NodeConfigDrawer = ({ children, afterClose, anchor, footer = true,
}
try {
getNodeForm(node)!.setValueIn("config", formInst.getFieldsValue(true));
getNodeForm(node)!.setValueIn("config", formValues);
getNodeForm(node)!.validate();
setOpen(false);
+5 -4
View File
@@ -35,18 +35,19 @@ const AccessNew = () => {
};
const handleSubmitClick = async () => {
let formValues: AccessModel;
setFormPending(true);
try {
await formInst.validateFields();
formValues = await formInst.validateFields();
formValues.reserve = providerUsage === "ca" ? "ca" : providerUsage === "notification" ? "notif" : void 0;
} catch (err) {
setFormPending(false);
throw err;
}
try {
const values: AccessModel = formInst.getFieldsValue(true);
values.reserve = providerUsage === "ca" ? "ca" : providerUsage === "notification" ? "notif" : void 0;
await createAccess(values);
await createAccess(formValues);
navigate(`/accesses?usage=${providerUsage}`, { replace: true });
} catch (err) {