fix(plugin-workflow): fix variable api caller in loop (#1877)
This commit is contained in:
parent
7b3e16ce63
commit
c988c3705a
@ -28,7 +28,7 @@ function AssociatedConfig({ value, onChange, ...props }): JSX.Element {
|
|||||||
const { getCollection } = useCollectionManager();
|
const { getCollection } = useCollectionManager();
|
||||||
const current = useNodeContext();
|
const current = useNodeContext();
|
||||||
const options = [nodesOptions, triggerOptions].map((item) => {
|
const options = [nodesOptions, triggerOptions].map((item) => {
|
||||||
const children = item.useOptions(current, { types: [matchToManyField] })?.filter(Boolean);
|
const children = item.useOptions({ types: [matchToManyField] })?.filter(Boolean);
|
||||||
return {
|
return {
|
||||||
label: compile(item.label),
|
label: compile(item.label),
|
||||||
value: item.value,
|
value: item.value,
|
||||||
|
@ -411,7 +411,7 @@ export default {
|
|||||||
value: { rejectOnFalse: false },
|
value: { rejectOnFalse: false },
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
render(data) {
|
render: function Renderer(data) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const { nodes } = useFlowContext();
|
const { nodes } = useFlowContext();
|
||||||
const {
|
const {
|
||||||
|
@ -49,7 +49,7 @@ export interface Instruction {
|
|||||||
view?: ISchema;
|
view?: ISchema;
|
||||||
scope?: { [key: string]: any };
|
scope?: { [key: string]: any };
|
||||||
components?: { [key: string]: any };
|
components?: { [key: string]: any };
|
||||||
render?(props): React.ReactNode;
|
render?(props): JSX.Element;
|
||||||
endding?: boolean;
|
endding?: boolean;
|
||||||
useVariables?(node, options?): VariableOptions;
|
useVariables?(node, options?): VariableOptions;
|
||||||
useScopeVariables?(node, options?): VariableOptions;
|
useScopeVariables?(node, options?): VariableOptions;
|
||||||
|
@ -116,7 +116,7 @@ export default {
|
|||||||
useWorkflowVariableOptions,
|
useWorkflowVariableOptions,
|
||||||
},
|
},
|
||||||
components: {},
|
components: {},
|
||||||
useScopeVariables(node, types) {
|
useScopeVariables(node, options) {
|
||||||
const compile = useCompile();
|
const compile = useCompile();
|
||||||
const { target } = node.config;
|
const { target } = node.config;
|
||||||
if (!target) {
|
if (!target) {
|
||||||
@ -137,8 +137,8 @@ export default {
|
|||||||
.split('.')
|
.split('.')
|
||||||
.map((path) => path.trim());
|
.map((path) => path.trim());
|
||||||
|
|
||||||
const options = [nodesOptions, triggerOptions].map((item: any) => {
|
const targetOptions = [nodesOptions, triggerOptions].map((item: any) => {
|
||||||
const opts = typeof item.useOptions === 'function' ? item.useOptions(node, { types }).filter(Boolean) : null;
|
const opts = typeof item.useOptions === 'function' ? item.useOptions(options).filter(Boolean) : null;
|
||||||
return {
|
return {
|
||||||
label: compile(item.title),
|
label: compile(item.title),
|
||||||
value: item.value,
|
value: item.value,
|
||||||
@ -148,7 +148,7 @@ export default {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
targetOption.children = findOption(options, paths);
|
targetOption.children = findOption(targetOptions, paths);
|
||||||
}
|
}
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
@ -16,7 +16,8 @@ export type VariableOptions = VariableOption[] | null;
|
|||||||
export const nodesOptions = {
|
export const nodesOptions = {
|
||||||
label: `{{t("Node result", { ns: "${NAMESPACE}" })}}`,
|
label: `{{t("Node result", { ns: "${NAMESPACE}" })}}`,
|
||||||
value: '$jobsMapByNodeId',
|
value: '$jobsMapByNodeId',
|
||||||
useOptions(current, options) {
|
useOptions(options) {
|
||||||
|
const current = useNodeContext();
|
||||||
const upstreams = useAvailableUpstreams(current);
|
const upstreams = useAvailableUpstreams(current);
|
||||||
const result: VariableOption[] = [];
|
const result: VariableOption[] = [];
|
||||||
upstreams.forEach((node) => {
|
upstreams.forEach((node) => {
|
||||||
@ -38,7 +39,7 @@ export const nodesOptions = {
|
|||||||
export const triggerOptions = {
|
export const triggerOptions = {
|
||||||
label: `{{t("Trigger variables", { ns: "${NAMESPACE}" })}}`,
|
label: `{{t("Trigger variables", { ns: "${NAMESPACE}" })}}`,
|
||||||
value: '$context',
|
value: '$context',
|
||||||
useOptions(current, options) {
|
useOptions(options) {
|
||||||
const { workflow } = useFlowContext();
|
const { workflow } = useFlowContext();
|
||||||
const trigger = triggers.get(workflow.type);
|
const trigger = triggers.get(workflow.type);
|
||||||
return trigger?.useVariables?.(workflow.config, options) ?? null;
|
return trigger?.useVariables?.(workflow.config, options) ?? null;
|
||||||
@ -48,7 +49,8 @@ export const triggerOptions = {
|
|||||||
export const scopeOptions = {
|
export const scopeOptions = {
|
||||||
label: `{{t("Scope variables", { ns: "${NAMESPACE}" })}}`,
|
label: `{{t("Scope variables", { ns: "${NAMESPACE}" })}}`,
|
||||||
value: '$scopes',
|
value: '$scopes',
|
||||||
useOptions(current, options) {
|
useOptions(options) {
|
||||||
|
const current = useNodeContext();
|
||||||
const scopes = useUpstreamScopes(current);
|
const scopes = useUpstreamScopes(current);
|
||||||
const result: VariableOption[] = [];
|
const result: VariableOption[] = [];
|
||||||
scopes.forEach((node) => {
|
scopes.forEach((node) => {
|
||||||
@ -70,7 +72,7 @@ export const scopeOptions = {
|
|||||||
export const systemOptions = {
|
export const systemOptions = {
|
||||||
label: `{{t("System variables", { ns: "${NAMESPACE}" })}}`,
|
label: `{{t("System variables", { ns: "${NAMESPACE}" })}}`,
|
||||||
value: '$system',
|
value: '$system',
|
||||||
useOptions(current, { types }) {
|
useOptions({ types }) {
|
||||||
return [
|
return [
|
||||||
...(!types || types.includes('date')
|
...(!types || types.includes('date')
|
||||||
? [
|
? [
|
||||||
@ -158,9 +160,8 @@ export function filterTypedFields(fields, types, depth = 1) {
|
|||||||
|
|
||||||
export function useWorkflowVariableOptions(options = {}) {
|
export function useWorkflowVariableOptions(options = {}) {
|
||||||
const compile = useCompile();
|
const compile = useCompile();
|
||||||
const current = useNodeContext();
|
|
||||||
const result = [scopeOptions, nodesOptions, triggerOptions, systemOptions].map((item: any) => {
|
const result = [scopeOptions, nodesOptions, triggerOptions, systemOptions].map((item: any) => {
|
||||||
const opts = typeof item.useOptions === 'function' ? item.useOptions(current, options).filter(Boolean) : null;
|
const opts = typeof item.useOptions === 'function' ? item.useOptions(options).filter(Boolean) : null;
|
||||||
return {
|
return {
|
||||||
label: compile(item.label),
|
label: compile(item.label),
|
||||||
value: item.value,
|
value: item.value,
|
||||||
|
Loading…
Reference in New Issue
Block a user