Skip to content

Commit 23acaa2

Browse files
committed
add useNodeFormContext()
1 parent eeb44c3 commit 23acaa2

20 files changed

Lines changed: 90 additions & 47 deletions

File tree

flow-engine-framework/src/main/java/com/codingapi/flow/script/request/BaseGroovyRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public abstract class BaseGroovyRequest {
2222
/**
2323
* 当前操作人ID
2424
*/
25-
protected Integer operatorId;
25+
protected long operatorId;
2626

2727
/**
2828
* 是否流程管理员

flow-engine-framework/src/main/java/com/codingapi/flow/script/request/OperatorLoadGroovyRequest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@ public class OperatorLoadGroovyRequest extends BaseGroovyRequest {
1919
*/
2020
private IFlowOperator createdOperator;
2121

22+
/**
23+
* 当前操作人(上一节点审批人)
24+
*/
25+
private IFlowOperator currentOperator;
26+
2227
/**
2328
* 从FlowSession构建OperatorLoadGroovyRequest
2429
* @param session 流程会话(不能为null)
@@ -29,5 +34,6 @@ public OperatorLoadGroovyRequest(FlowSession session) {
2934
if (session.getWorkflow() != null && session.getWorkflow().getCreatedOperator() != null) {
3035
this.createdOperator = session.getWorkflow().getCreatedOperator();
3136
}
37+
this.currentOperator = session.getCurrentOperator();
3238
}
3339
}

frontend/packages/flow-pc/flow-pc-approval/src/components/flow-approval/components/form-view-component.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ interface FormViewComponentProps{
99

1010
export const FormViewComponent: React.FC<FormViewComponentProps> = (props) => {
1111
const {state, context} = useApprovalContext();
12-
const ViewComponent = ViewBindPlugin.getInstance().get(state.flow?.view || 'default');
12+
const ViewComponent = ViewBindPlugin.getInstance().get(state.flow?.view || 'default') ;
1313

1414
const formMeta = state.flow?.form;
1515

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
export { NodeRenderContext } from './node-render-context';
2-
export { IsSidebarContext } from './sidebar-context';
2+
export { IsSidebarContext } from './sidebar-context';
3+
export { NodeFormContext } from './node-form-context';
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import React from 'react';
2+
import {FlowNodeJSON} from "@/components/design-editor/typings";
3+
import {FormRenderProps,} from '@flowgram.ai/fixed-layout-editor';
4+
5+
export const NodeFormContext = React.createContext<FormRenderProps<FlowNodeJSON['data']>>({} as any);
6+
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { useContext } from 'react';
2+
import { NodeFormContext } from '../context';
3+
4+
export function useNodeFormContext() {
5+
return useContext(NodeFormContext);
6+
}

frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/panel/index.tsx

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,28 @@
11
import React, {useCallback, useContext, useMemo, useState} from "react";
22
import {Flex, theme} from "antd";
33
import {CloseCircleOutlined} from "@ant-design/icons";
4-
import {NodeRenderContext} from "@/components/design-editor/context";
5-
import {FlowNodeRegistry} from "@/components/design-editor/typings";
6-
import {useClientContext} from "@flowgram.ai/fixed-layout-editor";
4+
import {NodeFormContext, NodeRenderContext} from "@/components/design-editor/context";
5+
import {FlowNodeJSON, FlowNodeRegistry} from "@/components/design-editor/typings";
6+
import {FormRenderProps, useClientContext} from "@flowgram.ai/fixed-layout-editor";
77
import {useIsSidebar} from "@/components/design-editor/hooks";
88

99
interface NodePanelProps {
1010
children?: React.ReactNode;
11+
data: FormRenderProps<FlowNodeJSON['data']>;
1112
}
1213

1314
export const NodePanel: React.FC<NodePanelProps> = (props) => {
15+
return (
16+
<NodeFormContext.Provider value={props.data}>
17+
<$NodePanel
18+
{...props}
19+
/>
20+
</NodeFormContext.Provider>
21+
)
22+
}
23+
24+
25+
export const $NodePanel: React.FC<NodePanelProps> = (props) => {
1426
const [isHovered, setIsHovered] = useState(false);
1527
const {node, deleteNode} = useContext(NodeRenderContext);
1628
const clientContext = useClientContext();
@@ -48,7 +60,7 @@ export const NodePanel: React.FC<NodePanelProps> = (props) => {
4860
deleteNode();
4961
}, [deleteNode]);
5062

51-
if(isSidebar || canDeleteNode){
63+
if (isSidebar || canDeleteNode) {
5264
return (
5365
<div
5466
style={{

frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/node-components/strategy/operator-load.tsx

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import React from "react";
2-
import {Form,Input} from "antd";
2+
import {Button, Form,Input, Space} from "antd";
33
import { Field, FieldRenderProps } from "@flowgram.ai/fixed-layout-editor";
4+
import { EditOutlined } from "@ant-design/icons";
45

56
/**
67
* 操作人配置策略
@@ -21,14 +22,23 @@ export const OperatorLoadStrategy:React.FC = () => {
2122
<Form.Item
2223
label={"当前操作人"}
2324
name={["OperatorLoadStrategy","script"]}
24-
tooltip={"支持使用变量"}
25+
tooltip={"设定流程的审批人"}
2526
>
2627
<Field
2728
name="OperatorLoadStrategy.script"
2829
render={({ field: { value, onChange } }: FieldRenderProps<any>) => (
29-
<>
30+
<Space.Compact style={{width: '100%'}}>
3031
<Input value={value} onChange={onChange} />
31-
</>
32+
33+
<Button
34+
icon={<EditOutlined/>}
35+
onClick={() => {
36+
}}
37+
style={{borderRadius: '0 6px 6px 0'}}
38+
>
39+
编辑
40+
</Button>
41+
</Space.Compact>
3242
)}
3343
/>
3444
</Form.Item>

frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/approval/form-meta.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import React from "react";
12
import {provideJsonSchemaOutputs, syncVariableTitle,} from '@flowgram.ai/form-materials';
23
import {FormMeta, FormRenderProps, ValidateTrigger,} from '@flowgram.ai/fixed-layout-editor';
34

@@ -18,11 +19,12 @@ import {RecordMergeStrategy} from "@/components/design-editor/node-components/st
1819
import {RevokeStrategy} from "@/components/design-editor/node-components/strategy/revoke";
1920
import {View} from "@/components/design-editor/node-components/view";
2021

21-
export const renderForm = ({ form }: FormRenderProps<FlowNodeJSON['data']>) => {
22+
23+
export const renderForm = (data: FormRenderProps<FlowNodeJSON['data']>) => {
2224
const isSidebar = useIsSidebar();
2325
if (isSidebar) {
2426
return (
25-
<NodePanel>
27+
<NodePanel data={data}>
2628
<NodeHeader/>
2729
<TabNodeLayout>
2830
<View/>
@@ -41,9 +43,9 @@ export const renderForm = ({ form }: FormRenderProps<FlowNodeJSON['data']>) => {
4143
);
4244
}
4345
return (
44-
<NodePanel>
46+
<NodePanel data={data}>
4547
<NodeHeader/>
46-
approval
48+
审批节点
4749
</NodePanel>
4850
);
4951
};

frontend/packages/flow-pc/flow-pc-design/src/components/design-editor/nodes/condition-branch/form-meta.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,18 @@ import {NodeHeader} from "@/components/design-editor/node-components/header";
77
import {NodePanel} from "@/components/design-editor/node-components/panel";
88
import {ConditionScript} from "@/components/design-editor/node-components/condition";
99

10-
export const renderForm = ({ form }: FormRenderProps<FlowNodeJSON['data']>) => {
10+
export const renderForm = (data: FormRenderProps<FlowNodeJSON['data']>) => {
1111
const isSidebar = useIsSidebar();
1212
if (isSidebar) {
1313
return (
14-
<NodePanel>
14+
<NodePanel data={data}>
1515
<NodeHeader/>
1616
<ConditionScript/>
1717
</NodePanel>
1818
);
1919
}
2020
return (
21-
<NodePanel>
21+
<NodePanel data={data}>
2222
<NodeHeader/>
2323
branch
2424
</NodePanel>

0 commit comments

Comments
 (0)