index.jsx 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. /**
  2. * Created by jacky on 2016/7/18.
  3. */
  4. import '../css/iconfont.css';
  5. import '../../node_modules/bootstrap/dist/css/bootstrap.css';
  6. import '../../node_modules/codemirror/lib/codemirror.css';
  7. import '../../node_modules/codemirror/addon/hint/show-hint.css';
  8. import '../../node_modules/codemirror/addon/lint/lint.css';
  9. import './flow.css';
  10. import RuleFlowDesigner from './RuleFlowDesigner.js';
  11. import StartTool from './StartTool.js';
  12. import RuleTool from './RuleTool.js';
  13. import PackageTool from './PackageTool.js';
  14. import ActionTool from './ActionTool.js';
  15. import ScriptTool from './ScriptTool.js';
  16. import DecisionTool from './DecisionTool.js';
  17. import ForkTool from './ForkTool.js';
  18. import JoinTool from './JoinTool.js';
  19. import React from 'react';
  20. import ReactDOM from 'react-dom';
  21. import {MsgBox,Event} from 'flowdesigner';
  22. import KnowledgeTreeDialog from '../components/dialog/component/KnowledgeTreeDialog.jsx';
  23. import * as event from '../components/componentEvent.js';
  24. import {getParameter,ajaxSave} from '../Utils.js';
  25. $(document).ready(function(){
  26. const containerId='container';
  27. const designer=new RuleFlowDesigner(containerId);
  28. const file=getParameter('file');
  29. designer.addButton({
  30. icon:'<i class="rf rf-save"></i>',
  31. tip:'保存',
  32. click:function(){
  33. event.eventEmitter.emit(event.SHOW_LOADING,"数据保存中");
  34. const content=designer.toXML();
  35. if(!content){
  36. event.eventEmitter.emit(event.HIDE_LOADING);
  37. return;
  38. }
  39. let postData={content,file,newVersion:false};
  40. const url=window._server+'/common/saveFile';
  41. ajaxSave(url,postData,function () {
  42. event.eventEmitter.emit(event.HIDE_LOADING);
  43. MsgBox.alert('保存成功');
  44. });
  45. }
  46. });
  47. designer.addButton({
  48. icon:'<i class="rf rf-savenewversion"></i>',
  49. tip:'保存为新版本',
  50. click:function(){
  51. event.eventEmitter.emit(event.SHOW_LOADING,"数据保存中");
  52. const content=designer.toXML();
  53. if(!content){
  54. event.eventEmitter.emit(event.HIDE_LOADING);
  55. return;
  56. }
  57. let postData={content,file,newVersion:true};
  58. const url=window._server+'/common/saveFile';
  59. bootbox.prompt("请输入新版本描述.",function (versionComment) {
  60. if(!versionComment){
  61. return;
  62. }
  63. postData.versionComment=versionComment;
  64. ajaxSave(url,postData,function () {
  65. event.eventEmitter.emit(event.HIDE_LOADING);
  66. })
  67. });
  68. }
  69. });
  70. designer.addTool(new StartTool());
  71. designer.addTool(new RuleTool());
  72. designer.addTool(new PackageTool());
  73. designer.addTool(new ActionTool());
  74. designer.addTool(new ScriptTool());
  75. designer.addTool(new DecisionTool());
  76. designer.addTool(new ForkTool());
  77. designer.addTool(new JoinTool());
  78. designer.buildDesigner();
  79. const container=$('#'+containerId);
  80. container.append('<div id="__dialog_container"></div>');
  81. ReactDOM.render(
  82. <div>
  83. <KnowledgeTreeDialog/>
  84. </div>,
  85. document.getElementById('__dialog_container')
  86. );
  87. $.ajax({
  88. url:window._server+'/ruleflowdesigner/loadFlowDefinition',
  89. data:{file},
  90. success:function (json) {
  91. designer.fromJson(json);
  92. Event.eventEmitter.emit(Event.CANVAS_SELECTED);
  93. },
  94. error:function () {
  95. alert(`加载决策流${file}失败!`);
  96. }
  97. });
  98. });