feat: improve action schema settings
This commit is contained in:
parent
fd493dba9c
commit
6d917d36c2
@ -38,12 +38,15 @@ export const useCreateActionProps = () => {
|
|||||||
const actionSchema = useFieldSchema();
|
const actionSchema = useFieldSchema();
|
||||||
return {
|
return {
|
||||||
async onClick() {
|
async onClick() {
|
||||||
await form.submit();
|
const skipValidator = actionSchema?.['x-action-settings']?.skipValidator;
|
||||||
const initialValues = actionSchema?.['x-action-params']?.initialValues;
|
const overwriteValues = actionSchema?.['x-action-settings']?.overwriteValues;
|
||||||
|
if (!skipValidator) {
|
||||||
|
await form.submit();
|
||||||
|
}
|
||||||
await resource.create({
|
await resource.create({
|
||||||
values: {
|
values: {
|
||||||
...form.values,
|
...form.values,
|
||||||
...initialValues,
|
...overwriteValues,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
__parent?.service?.refresh?.();
|
__parent?.service?.refresh?.();
|
||||||
@ -81,13 +84,16 @@ export const useUpdateActionProps = () => {
|
|||||||
const actionSchema = useFieldSchema();
|
const actionSchema = useFieldSchema();
|
||||||
return {
|
return {
|
||||||
async onClick() {
|
async onClick() {
|
||||||
const initialValues = actionSchema?.['x-action-params']?.initialValues;
|
const skipValidator = actionSchema?.['x-action-settings']?.skipValidator;
|
||||||
await form.submit();
|
const overwriteValues = actionSchema?.['x-action-settings']?.overwriteValues;
|
||||||
|
if (!skipValidator) {
|
||||||
|
await form.submit();
|
||||||
|
}
|
||||||
await resource.update({
|
await resource.update({
|
||||||
filterByTk,
|
filterByTk,
|
||||||
values: {
|
values: {
|
||||||
...form.values,
|
...form.values,
|
||||||
...initialValues,
|
...overwriteValues,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
__parent?.service?.refresh?.();
|
__parent?.service?.refresh?.();
|
||||||
|
@ -77,30 +77,48 @@ export const ActionDesigner = (props) => {
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{fieldSchema['x-action-params'] && (
|
{fieldSchema?.['x-action-settings'] && (
|
||||||
|
<SchemaSettings.SwitchItem
|
||||||
|
title={'跳过表单校验'}
|
||||||
|
checked={!!fieldSchema?.['x-action-settings']?.skipValidator}
|
||||||
|
onChange={(value) => {
|
||||||
|
fieldSchema['x-action-settings'].skipValidator = value;
|
||||||
|
dn.emit('patch', {
|
||||||
|
schema: {
|
||||||
|
['x-uid']: fieldSchema['x-uid'],
|
||||||
|
'x-action-settings': {
|
||||||
|
...fieldSchema['x-action-settings'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
{fieldSchema?.['x-action-settings'] && (
|
||||||
<SchemaSettings.ModalItem
|
<SchemaSettings.ModalItem
|
||||||
title={'表单默认值'}
|
title={'表单值'}
|
||||||
schema={
|
schema={
|
||||||
{
|
{
|
||||||
type: 'object',
|
type: 'object',
|
||||||
properties: {
|
properties: {
|
||||||
initialValues: {
|
overwriteValues: {
|
||||||
|
title: '以下字段提交时,保存值为',
|
||||||
'x-decorator': 'FormItem',
|
'x-decorator': 'FormItem',
|
||||||
'x-component': 'Input.TextArea',
|
'x-component': 'Input.TextArea',
|
||||||
default: JSON.stringify(fieldSchema?.['x-action-params']?.initialValues),
|
default: JSON.stringify(fieldSchema?.['x-action-settings']?.overwriteValues),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
} as ISchema
|
} as ISchema
|
||||||
}
|
}
|
||||||
onSubmit={({ initialValues }) => {
|
onSubmit={({ overwriteValues }) => {
|
||||||
try {
|
try {
|
||||||
const values = JSON.parse(initialValues);
|
const values = JSON.parse(overwriteValues);
|
||||||
fieldSchema['x-action-params']['initialValues'] = values;
|
fieldSchema['x-action-settings'].overwriteValues = values;
|
||||||
dn.emit('patch', {
|
dn.emit('patch', {
|
||||||
schema: {
|
schema: {
|
||||||
['x-uid']: fieldSchema['x-uid'],
|
['x-uid']: fieldSchema['x-uid'],
|
||||||
'x-action-params': {
|
'x-action-settings': {
|
||||||
initialValues: values,
|
...fieldSchema['x-action-settings'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
@ -12,13 +12,16 @@ export const FormActionInitializers = {
|
|||||||
title: '{{t("Submit")}}',
|
title: '{{t("Submit")}}',
|
||||||
component: 'CreateSubmitActionInitializer',
|
component: 'CreateSubmitActionInitializer',
|
||||||
schema: {
|
schema: {
|
||||||
'x-action-params': {
|
'x-action-settings': {
|
||||||
initialValues: {},
|
initialValues: {},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
type: 'divider',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
type: 'subMenu',
|
type: 'subMenu',
|
||||||
title: '{{t("Customize")}}',
|
title: '{{t("Customize")}}',
|
||||||
@ -31,7 +34,7 @@ export const FormActionInitializers = {
|
|||||||
title: '{{ t("Save") }}',
|
title: '{{ t("Save") }}',
|
||||||
'x-component': 'Action',
|
'x-component': 'Action',
|
||||||
'x-designer': 'Action.Designer',
|
'x-designer': 'Action.Designer',
|
||||||
'x-action-params': {
|
'x-action-settings': {
|
||||||
initialValues: {},
|
initialValues: {},
|
||||||
},
|
},
|
||||||
'x-component-props': {
|
'x-component-props': {
|
||||||
@ -57,13 +60,16 @@ export const CreateFormActionInitializers = {
|
|||||||
title: '{{t("Submit")}}',
|
title: '{{t("Submit")}}',
|
||||||
component: 'CreateSubmitActionInitializer',
|
component: 'CreateSubmitActionInitializer',
|
||||||
schema: {
|
schema: {
|
||||||
'x-action-params': {
|
'x-action-settings': {
|
||||||
initialValues: {},
|
overwriteValues: {},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
type: 'divider',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
type: 'subMenu',
|
type: 'subMenu',
|
||||||
title: '{{t("Customize")}}',
|
title: '{{t("Customize")}}',
|
||||||
@ -76,8 +82,8 @@ export const CreateFormActionInitializers = {
|
|||||||
title: '{{ t("Save") }}',
|
title: '{{ t("Save") }}',
|
||||||
'x-component': 'Action',
|
'x-component': 'Action',
|
||||||
'x-designer': 'Action.Designer',
|
'x-designer': 'Action.Designer',
|
||||||
'x-action-params': {
|
'x-action-settings': {
|
||||||
initialValues: {},
|
overwriteValues: {},
|
||||||
},
|
},
|
||||||
'x-component-props': {
|
'x-component-props': {
|
||||||
useProps: '{{ useCreateActionProps }}',
|
useProps: '{{ useCreateActionProps }}',
|
||||||
@ -102,13 +108,16 @@ export const UpdateFormActionInitializers = {
|
|||||||
title: '{{t("Submit")}}',
|
title: '{{t("Submit")}}',
|
||||||
component: 'UpdateSubmitActionInitializer',
|
component: 'UpdateSubmitActionInitializer',
|
||||||
schema: {
|
schema: {
|
||||||
'x-action-params': {
|
'x-action-settings': {
|
||||||
initialValues: {},
|
overwriteValues: {},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
type: 'divider',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
type: 'subMenu',
|
type: 'subMenu',
|
||||||
title: '{{t("Customize")}}',
|
title: '{{t("Customize")}}',
|
||||||
@ -121,8 +130,8 @@ export const UpdateFormActionInitializers = {
|
|||||||
title: '{{ t("Save") }}',
|
title: '{{ t("Save") }}',
|
||||||
'x-component': 'Action',
|
'x-component': 'Action',
|
||||||
'x-designer': 'Action.Designer',
|
'x-designer': 'Action.Designer',
|
||||||
'x-action-params': {
|
'x-action-settings': {
|
||||||
initialValues: {},
|
overwriteValues: {},
|
||||||
},
|
},
|
||||||
'x-component-props': {
|
'x-component-props': {
|
||||||
useProps: '{{ useUpdateActionProps }}',
|
useProps: '{{ useUpdateActionProps }}',
|
||||||
|
Loading…
Reference in New Issue
Block a user