* feat(plugin-workflow): add base client entry for workflow * fix(plugin-workflow): workflow table * feat: custom ui route (#227) * feat(plugin-workflow): add execution table * refactor(actions): expose utils of actions * fix(repo): move ".editorconfig" to root * feat(plugin-workflow): base workflow management able to add node * fix(plugin-workflow): fix empty workflow * feat(plugin-workfow): add flow canvas and style * fix(plugin-workflow): fix type for building * feat(plugin-workflow): fix add node in branch and add branch ui * feat(plugin-workflow): add calculation structure to condition config * fix(plugin-workflow): fix branch line style * feat(plugin-workflow): remove node with sub-branch * feat(plugin-workflow): add parallel node type * fix(plugin-workflow): fix dependency in client Co-authored-by: chenos <chenlinxh@gmail.com>
95 lines
2.5 KiB
TypeScript
95 lines
2.5 KiB
TypeScript
import React from "react";
|
|
import { useForm } from "@formily/react";
|
|
import { cx } from "@emotion/css";
|
|
|
|
import { SchemaComponent, useActionContext, useAPIClient, useRecord, useResourceActionContext } from '../../';
|
|
import model from './model';
|
|
import { nodeCardClass } from "../style";
|
|
|
|
|
|
function useUpdateConfigAction() {
|
|
const form = useForm();
|
|
const api = useAPIClient();
|
|
const record = useRecord();
|
|
const ctx = useActionContext();
|
|
const { refresh } = useResourceActionContext();
|
|
return {
|
|
async run() {
|
|
await api.resource('workflows', record.id).update({
|
|
filterByTk: record.id,
|
|
values: {
|
|
config: {
|
|
...record.config,
|
|
...form.values
|
|
}
|
|
},
|
|
});
|
|
ctx.setVisible(false);
|
|
refresh();
|
|
},
|
|
};
|
|
};
|
|
|
|
|
|
const triggerTypes = {
|
|
model
|
|
};
|
|
|
|
export const TriggerConfig = () => {
|
|
const { data } = useResourceActionContext();
|
|
if (!data) {
|
|
return null;
|
|
}
|
|
const { type, config } = data.data;
|
|
const { title, fieldset, scope } = triggerTypes[type];
|
|
return (
|
|
<div className={cx(nodeCardClass)}>
|
|
<h4>{title}</h4>
|
|
<SchemaComponent
|
|
schema={{
|
|
type: 'void',
|
|
title: '触发器配置',
|
|
'x-component': 'Action.Link',
|
|
name: 'drawer',
|
|
properties: {
|
|
drawer: {
|
|
type: 'void',
|
|
title: '触发器配置',
|
|
'x-component': 'Action.Drawer',
|
|
'x-decorator': 'Form',
|
|
'x-decorator-props': {
|
|
initialValue: config
|
|
},
|
|
properties: {
|
|
...fieldset,
|
|
actions: {
|
|
type: 'void',
|
|
'x-component': 'Action.Drawer.Footer',
|
|
properties: {
|
|
cancel: {
|
|
title: '{{t("Cancel")}}',
|
|
'x-component': 'Action',
|
|
'x-component-props': {
|
|
useAction: '{{ cm.useCancelAction }}',
|
|
},
|
|
},
|
|
submit: {
|
|
title: '{{t("Submit")}}',
|
|
'x-component': 'Action',
|
|
'x-component-props': {
|
|
type: 'primary',
|
|
useAction: useUpdateConfigAction
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}}
|
|
scope={scope}
|
|
/>
|
|
</div>
|
|
);
|
|
}
|