diff --git a/public/locales/en.json b/public/locales/en.json index 3b185a5..9b0e082 100644 --- a/public/locales/en.json +++ b/public/locales/en.json @@ -84,6 +84,7 @@ "node.id": "Node id", "node.inputVariable": "Input variables", "node.name": "Node name", + "node.type": "Node type", "node.noNodeSelected": "No node selected", "node.outputVariable": "Output variables", "node.pasteDataError": "Paste data error", diff --git a/public/locales/zh.json b/public/locales/zh.json index db09ab0..7e01644 100644 --- a/public/locales/zh.json +++ b/public/locales/zh.json @@ -84,6 +84,7 @@ "node.id": "节点标识", "node.inputVariable": "输入变量", "node.name": "节点名称", + "node.type": "节点类型", "node.noNodeSelected": "未选择任务节点", "node.outputVariable": "输出变量", "node.pasteDataError": "粘贴数据出错", diff --git a/src/components/inspector.tsx b/src/components/inspector.tsx index 89fc64e..d8d5818 100644 --- a/src/components/inspector.tsx +++ b/src/components/inspector.tsx @@ -368,11 +368,34 @@ const NodeInspector: FC = () => { }; const NodeDefInspector: FC = () => { + const workspace = { + editingNodeDef: useWorkspace((state) => state.editingNodeDef)!, + }; + const { t } = useTranslation(); const [form] = Form.useForm(); + const data = workspace.editingNodeDef.data; + + // set form values + useEffect(() => { + form.resetFields(); + form.setFieldValue("name", data.name); + form.setFieldValue("type", data.type); + form.setFieldValue("desc", data.desc); + form.setFieldValue("doc", data.doc); + data.input?.forEach((v, i) => { + form.setFieldValue(`input.${i}.name`, v.replaceAll("?", "")); + }); + data.output?.forEach((v, i) => { + form.setFieldValue(`output.${i}.name`, v.replaceAll("?", "")); + }); + data.args?.forEach((v, i) => { + form.setFieldValue(`args.${i}.type`, v.type.replaceAll("?", "")); + }); + }, [workspace.editingNodeDef]); return ( <>
- Node Definition + {t("nodeDefinition")}
{ wrapperCol={{ span: "auto" }} labelCol={{ span: "auto" }} // onFinish={finish} - > + > + {t("node.name")}
+ } + > + + + {t("node.type")} + } + > + + + {t("node.desc")} + } + > + + + {data.doc} + {data.input && data.input.length > 0 && ( + <> + +

{t("node.inputVariable")}

+
+ {data.input.map((v, i) => { + const required = v.indexOf("?") == -1; + return ( + + + + ); + })} + + )} + {data.args && data.args.length > 0 && ( + <> + +

{t("node.args")}

+
+ {data.args.map((v, i) => { + const required = v.type.indexOf("?") == -1; + const type = v.type.replace("?", "") as NodeArgType; + return ( + + + + ); + })} + + )} + {data.output && data.output.length > 0 && ( + <> + +

{t("node.outputVariable")}

+
+ {data.output.map((v, i) => { + const required = v.indexOf("?") == -1; + return ( + + + + ); + })} + + )} + ); diff --git a/src/index.scss b/src/index.scss index e6e2acf..7023e1e 100644 --- a/src/index.scss +++ b/src/index.scss @@ -109,6 +109,11 @@ body { min-width: 100px; } +.b3-inspector .b3-node-def-label { + min-width: 100px; + text-align: end; +} + :focus { outline: none; }