如何基于BaklavaJS流程图在JavaScript中生成代码
需求:基于BaklavaJS流程图生成Python代码
我正在使用BaklavaJS库创建流程图,自定义了SwitchNode、SayTextNode等节点。现有如下示例流程图:
需要生成以下Python代码:
print("hi") print("How i can help") input = input() if input == 1: print("one") if input == 2: print("two") if input == 3: print("three")
该库会生成包含所有节点及连接关系的JSON对象,示例JSON如下:
{ "nodes": [ { "type": "StartNode", "id": "node_16655291011630", "name": "Start", "options": [ [ "Start Text", "Hi" ] ], "state": {}, "interfaces": [ [ "Next", { "id": "ni_16655291011631", "value": null } ] ], "position": {}, "width": 200, "twoColumn": false, "customClasses": "" }, { "type": "SayTextNode", "id": "node_16655291011642", "name": "SayText", "options": [ [ "Text", "How i can help" ] ], "state": {}, "interfaces": [ [ "input", { "id": "ni_16655291011643", "value": null } ], [ "Next", { "id": "ni_16655291011654", "value": null } ] ], "position": {}, "width": 200, "twoColumn": false, "customClasses": "" }, { "type": "SwitchNode", "id": "node_16655291011655", "name": "SwitchNode", "options": [ [ "Operation", "Equals" ], [ "Cases number", 3 ], [ "Case 1", "1" ], [ "Case 2", "2" ], [ "Case 3", "3" ] ], "state": {}, "interfaces": [ [ "input", { "id": "ni_16655291011656", "value": null } ], [ "Case 1", { "id": "ni_166552910116817", "value": null } ], [ "Case 2", { "id": "ni_166552910116818", "value": null } ], [ "Case 3", { "id": "ni_166552910116819", "value": null } ] ], "position": {}, "width": 200, "twoColumn": false, "customClasses": "" }, { "type": "SayTextNode", "id": "node_16655291011668", "name": "SayText", "options": [ [ "Text", "one" ] ], "state": {}, "interfaces": [ [ "input", { "id": "ni_16655291011669", "value": null } ], [ "Next", { "id": "ni_166552910116610", "value": null } ] ], "position": {}, "width": 200, "twoColumn": false, "customClasses": "" }, { "type": "SayTextNode", "id": "node_166552910116711", "name": "SayText", "options": [ [ "Text", "two" ] ], "state": {}, "interfaces": [ [ "input", { "id": "ni_166552910116712", "value": null } ], [ "Next", { "id": "ni_166552910116713", "value": null } ] ], "position": {}, "width": 200, "twoColumn": false, "customClasses": "" }, { "type": "SayTextNode", "id": "node_166552910116714", "name": "SayText", "options": [ [ "Text", "three" ] ], "state": {}, "interfaces": [ [ "input", { "id": "ni_166552910116715", "value": null } ], [ "Next", { "id": "ni_166552910116716", "value": null } ] ], "position": {}, "width": 200, "twoColumn": false, "customClasses": "" } ], "connections": [ { "id": "166552910116921", "from": "ni_16655291011631", "to": "ni_16655291011643" }, { "id": "166552910117023", "from": "ni_16655291011654", "to": "ni_16655291011656" }, { "id": "166552910117125", "from": "ni_166552910116817", "to": "ni_16655291011669" }, { "id": "166552910117227", "from": "ni_166552910116818", "to": "ni_166552910116712" }, { "id": "166552910117329", "from": "ni_166552910116819", "to": "ni_166552910116715" } ], "panning": {}, "scaling": 1 }
恳请各位提供实现帮助!
内容的提问来源于stack exchange,提问作者Ahmed Zeini
相关产品推荐
相关产品推荐

