Junyi 4fbad75ea9
Feat(plugin-workflow) manual instruction (#1339)
* feat(plugin-workflow): add prompt node

* feat(plugin-workflow): useValueGetter for all instructions and triggers

* feat(plugin-workflow): add workflow block initializer

* refactor(plugin-workflow): change prompt node type to manual

* feat(plugin-workflow): add ModeConfig component for mode

* feat(plugin-workflow): add todo drawer

* feat(plugin-workflow): add block value provider

* feat(plugin-workflow): improve todo block and drawer

* fix(plugin-workflow): fix instruction name in test cases

* fix(plugin-workflow): fix test cases

* refactor(plugin-workflow): change param type of collection field initializer

* feat(plugin-workflow): add filter types for getters

* fix(plugin-workflow): fix assignees variable

* fix(plugin-workflow): filter todo by exist workflow

* fix(plugin-workflow): fix duplicated save action in manual config

* fix(plugin-workflow): fix transaction

* feat(plugin-workflow): destroy workflow will be cascaded

* fix(plugin-workflow): fix merge

* fix(plugin-workflow): fix locale

* fix(plugin-workflow): allow open ui view when executed

* fix(plugin-workflow): change todo table filter

* feat(plugin-workflow): use formula for calculation

* fix(plugin-workflow): fix variable template regexp

* fix(plugin-workflow): fix sub-options logic with types

* refactor(plugin-workflow): drop useless component

* fix(plugin-workflow): fix manual node action button

* feat(plugin-workflow): add new variable input component

* refactor(plugin-workflow): change all variable to new component

* fix(plugin-workflow): fix type

* fix(plugin-workflow): fix functions init

* fix(plugin-workflow): change jsonb to json for stable order

* fix(plugin-workflow): fix duplicated field name when initialize

* fix(plugin-workflow): fix manual result in manual block

* test(plugin-workflow): log field initializer props

* fix(plugin-workflow): fix nullable arguments

* test(plugin-workflow): test initializer fields schema

* fix: observer

* fix(plugin-workflow): adjust hints

* fix(plugin-workflow): fix locale and cursor in variable input

* refactor(plugin-workflow): change status keys

* fix(plugin-workflow): fix parallel instruction

* fix(plugin-workflow): fix calculation migration

* fix(plugin-workflow): move tasks native filter to server

* fix(plugin-workflow): fix manual options for variable

* fix(plugin-workflow): fix conflict

* fix(plugin-workflow): fix some bugs

* fix(plugin-workflow): fix todo list filter and locale

* fix(plugin-workflow): fix update action of workflow

* refactor(plugin-workflow): add legacy condition calculation as basic engine

* fix(plugin-workflow): fix type

* fix(plugin-workflow): fix condition basic calculation

* fix(plugin-workflow): fix type

* fix(plugin-workflow): fix migration

* fix(plugin-workflow): fix evaluators and scope

* fix(plugin-workflow): remove disabled type select in schema config

* fix(plugin-workflow): fix manual form schema designer

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
2023-02-20 11:52:06 +08:00

61 lines
1.5 KiB
TypeScript

import { css } from "@emotion/css";
import { useForm } from "@formily/react";
import { useCollectionFilterOptions } from "@nocobase/client";
import { NAMESPACE } from "../locale";
export const collection = {
type: 'string',
title: '{{t("Collection")}}',
name: 'config.collection',
required: true,
'x-reactions': ['{{useCollectionDataSource()}}'],
'x-decorator': 'FormItem',
'x-component': 'Select',
'x-component-props': {
placeholder: '{{t("Select collection")}}'
}
};
export const values = {
type: 'object',
title: '{{t("Fields values")}}',
name: 'config.params.values',
'x-decorator': 'FormItem',
'x-decorator-props': {
labelAlign: 'left',
className: css`
flex-direction: column;
`
},
'x-component': 'CollectionFieldset',
description: `{{t("Fields that are not assigned a value will be set to the default value, and those that do not have a default value are set to null.", { ns: "${NAMESPACE}" })}}`,
};
export const filter = {
type: 'object',
title: '{{t("Filter")}}',
name: 'config.params.filter',
'x-decorator': 'FormItem',
'x-decorator-props': {
labelAlign: 'left',
className: css`
flex-direction: column;
`
},
'x-component': 'Filter',
'x-component-props': {
useProps() {
const { values } = useForm();
const options = useCollectionFilterOptions(values.config?.collection);
return {
options,
className: css`
position: relative;
width: 100%;
`
};
},
dynamicComponent: 'FilterDynamicComponent'
}
};