refactor: loading wthen action submjit

This commit is contained in:
katherinehhh 2023-04-04 10:10:32 +08:00
parent 4b78c2161e
commit 2ba95787c3
2 changed files with 11 additions and 3 deletions

View File

@ -1,6 +1,6 @@
import { DownOutlined, PlusOutlined } from '@ant-design/icons';
import { ArrayTable } from '@formily/antd';
import { ISchema, useForm } from '@formily/react';
import { ISchema, useField, useForm } from '@formily/react';
import { uid } from '@formily/shared';
import { Button, Dropdown, Menu } from 'antd';
import { cloneDeep } from 'lodash';
@ -195,8 +195,11 @@ const useCreateCollection = (schema?: any) => {
const ctx = useActionContext();
const { refresh } = useResourceActionContext();
const { resource } = useResourceContext();
const field = useField();
return {
async run() {
field.data = field.data || {};
field.data.loading = true;
await form.submit();
const values = cloneDeep(form.values);
if (schema?.events?.beforeSubmit) {
@ -218,6 +221,7 @@ const useCreateCollection = (schema?: any) => {
});
ctx.setVisible(false);
await form.reset();
field.data.loading = false;
refresh();
await refreshCM();
},

View File

@ -1,6 +1,6 @@
import { PlusOutlined } from '@ant-design/icons';
import { ArrayTable } from '@formily/antd';
import { useForm } from '@formily/react';
import { useForm, useField } from '@formily/react';
import { uid } from '@formily/shared';
import { Button, Dropdown, Menu } from 'antd';
import { cloneDeep } from 'lodash';
@ -136,9 +136,12 @@ const useCreateCollectionField = () => {
const ctx = useActionContext();
const { refresh } = useResourceActionContext();
const { resource } = useResourceContext();
const field = useField();
return {
async run() {
await form.submit();
field.data = field.data || {};
field.data.loading = true;
const values = cloneDeep(form.values);
if (values.autoCreateReverseField) {
} else {
@ -148,6 +151,7 @@ const useCreateCollectionField = () => {
await resource.create({ values });
ctx.setVisible(false);
await form.reset();
field.data.loading = false;
refresh();
await refreshCM();
},