Skip to content

Commit db50f3f

Browse files
committed
重构
1 parent 1e0c2b3 commit db50f3f

File tree

3 files changed

+23
-8
lines changed

3 files changed

+23
-8
lines changed

src/example/materialUis.tsx

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,52 +6,66 @@ import { INotifierSettings, NotifierPanel } from "./setterss/NotifierPanel";
66
import { IStartSettings, StartPanel } from "./setterss/StartPanel";
77

88
export const materialUis: IMaterialUIs = {
9+
//发起人物料UI
910
[NodeType.approver]: {
11+
//节点内容区,只实现了空逻辑,具体过几天实现
1012
viewContent: (node: IWorkFlowNode<IApproverSettings>, { t }) => {
1113
return <ContentPlaceholder secondary text={t("pleaseChooseApprover")} />
1214
},
13-
settingsPanel: ApproverPanel,
15+
//属性面板
16+
settersPanel: ApproverPanel,
17+
//校验,目前仅实现了空校验,其它校验过几天实现
1418
validate: (node: IWorkFlowNode<IApproverSettings>, { t }) => {
1519
if (!node.config) {
1620
return (t("noSelectedApprover"))
1721
}
1822
return true
1923
}
2024
},
25+
//办理人节点
2126
[NodeType.audit]: {
27+
//节点内容区
2228
viewContent: (node: IWorkFlowNode<IAuditSettings>, { t }) => {
2329
return <ContentPlaceholder secondary text={t("pleaseChooseDealer")} />
2430
},
25-
settingsPanel: AuditPanel,
31+
//属性面板
32+
settersPanel: AuditPanel,
33+
//校验函数
2634
validate: (node: IWorkFlowNode<IApproverSettings>, { t }) => {
2735
if (!node.config) {
2836
return t("noSelectedDealer")
2937
}
3038
return true
3139
}
3240
},
41+
//条件分支节点的分支子节点
3342
[NodeType.branch]: {
43+
//节点内容区
3444
viewContent: (node: IWorkFlowNode<IConditionSettings>, { t }) => {
3545
return <ContentPlaceholder text={t("pleaseSetCondition")} />
3646
},
37-
settingsPanel: ConditionPanel,
47+
//属性面板
48+
settersPanel: ConditionPanel,
49+
//校验函数
3850
validate: (node: IWorkFlowNode<IApproverSettings>, { t }) => {
3951
if (!node.config) {
4052
return t("noSetCondition")
4153
}
4254
return true
4355
}
4456
},
57+
//通知人节点
4558
[NodeType.notifier]: {
4659
viewContent: (node: IWorkFlowNode<INotifierSettings>, { t }) => {
4760
return <ContentPlaceholder text={t("pleaseChooseNotifier")} />
4861
},
49-
settingsPanel: NotifierPanel,
62+
settersPanel: NotifierPanel,
5063
},
64+
//发起人节点
5165
[NodeType.start]: {
5266
viewContent: (node: IWorkFlowNode<IStartSettings>, { t }) => {
5367
return <ContentPlaceholder text={t("allMember")} />
5468
},
55-
settingsPanel: StartPanel,
69+
settersPanel: StartPanel,
5670
},
5771
}

src/workflow-editor/WorkflowDiagram/SettingsPanel/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ export const SettingsPanel = memo(() => {
6060
open={!!selectedNode}
6161
>
6262
<Content className="settings-panel-content">
63-
{materialUi?.settingsPanel && <materialUi.settingsPanel value={""} onChange={handleSettingsChange} />}
63+
{materialUi?.settersPanel && <materialUi.settersPanel value={""} onChange={handleSettingsChange} />}
6464
</Content>
6565
</Drawer>
6666
)

src/workflow-editor/interfaces/material.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,16 @@ export interface INodeMaterial<Context extends IContext = IContext> {
2626
}
2727

2828
//物料UI配置
29-
export interface IMaterialUI<FlowNode extends IWorkFlowNode, Settings = any, Context extends IContext = IContext> {
29+
export interface IMaterialUI<FlowNode extends IWorkFlowNode, Config = any, Context extends IContext = IContext> {
3030
//节点内容区
3131
viewContent?: (node: FlowNode, context: Context) => React.ReactNode
3232
//属性面板设置组件
33-
settingsPanel?: React.FC<{ value: Settings, onChange: (value: Settings) => void }>
33+
settersPanel?: React.FC<{ value: Config, onChange: (value: Config) => void }>
3434
//校验失败返回错误消息,成功返回ture
3535
validate?: (node: FlowNode, context: Context) => string | true | undefined
3636
}
3737

38+
//物料UI的一个map,用于组件间通过props传递物料UI,key是节点类型
3839
export interface IMaterialUIs {
3940
[nodeType: string]: IMaterialUI<any> | undefined
4041
}

0 commit comments

Comments
 (0)