index.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. import $ from 'jquery';
  2. import BpmnModeler from 'bpmn-js/lib/Modeler';
  3. //import propertiesPanelModule from '../resources/properties-panel';
  4. import propertiesPanelModule from 'bpmn-js-properties-panel';
  5. import propertiesProviderModule from '../resources/properties-panel/provider/activiti';
  6. import activitiModdleDescriptor from '../resources/activiti.json';
  7. import customTranslate from '../resources/customTranslate/customTranslate';
  8. import customControlsModule from '../resources/customControls';
  9. import tools from '../resources/tools'
  10. import diagramXML from '../resources/newDiagram.bpmn';
  11. const proHost = window.location.protocol + "//" + window.location.host;
  12. const href = window.location.href.split("bpmnjs")[0];
  13. const key = href.split(window.location.host)[1];
  14. const publicurl = proHost + key;
  15. // 添加翻译组件
  16. var customTranslateModule = {
  17. translate: ['value', customTranslate]
  18. };
  19. var container = $('#js-drop-zone');
  20. var canvas = $('#js-canvas');
  21. var bpmnModeler = new BpmnModeler({
  22. container: canvas,
  23. propertiesPanel: {
  24. parent: '#js-properties-panel'
  25. },
  26. additionalModules: [
  27. propertiesPanelModule,
  28. propertiesProviderModule,
  29. customControlsModule,
  30. customTranslateModule
  31. ],
  32. moddleExtensions: {
  33. activiti:activitiModdleDescriptor
  34. }
  35. });
  36. container.removeClass('with-diagram');
  37. // 判断浏览器支持程度
  38. if (!window.FileList || !window.FileReader) {
  39. window.alert('请使用谷歌、火狐、IE10+浏览器');
  40. } else {
  41. tools.registerFileDrop(container, tools.createDiagram(diagramXML, bpmnModeler, container));
  42. }
  43. $(function () {
  44. // 创建bpmn
  45. var param = tools.getUrlParam(window.location.href)
  46. $('.item').show()
  47. if (param.type === 'addBpmn') {
  48. tools.createDiagram(diagramXML, bpmnModeler, container);
  49. } else if (param.type === 'lookBpmn') { //编辑bpmn
  50. $('.item').hide()
  51. $('.download').show()
  52. const Id = param.deploymentFileUUID || '6d4af2dc-bab0-11ea-b584-3cf011eaafca'
  53. const Name=param.deploymentName || 'String.bpmn'
  54. const instanceId=param.instanceId
  55. var param={
  56. "deploymentId":Id,
  57. "resourceName":decodeURI(Name)
  58. }
  59. if(instanceId){
  60. var param1={
  61. instanceId
  62. }
  63. $.ajax({
  64. url: localStorage.getItem("VUE_APP_BASE_API")+'/activitiHistory/gethighLine',
  65. // url: 'http://localhost:8080/activitiHistory/gethighLine',
  66. type: 'GET',
  67. data: param1,
  68. dataType:'json',
  69. success: function (result) {
  70. console.log(result)
  71. var ColorJson=tools.getByColor(result.data)
  72. $.ajax({
  73. url: localStorage.getItem("VUE_APP_BASE_API")+'/processDefinition/getDefinitionXML',
  74. // url: 'http://localhost:8080/processDefinition/getDefinitionXML',
  75. type: 'GET',
  76. data: param,
  77. dataType:'text',
  78. success: function (result) {
  79. var newXmlData = result
  80. tools.createDiagram(newXmlData, bpmnModeler, container);
  81. setTimeout(function () {
  82. for (var i in ColorJson) {
  83. tools.setColor(ColorJson[i],bpmnModeler)
  84. }
  85. }, 200)
  86. },
  87. error: function (err) {
  88. console.log(err)
  89. }
  90. });
  91. },
  92. error: function (err) {
  93. console.log(err)
  94. }
  95. });
  96. }else{
  97. //加载后台方法获取xml
  98. $.ajax({
  99. url: localStorage.getItem("VUE_APP_BASE_API")+'/processDefinition/getDefinitionXML',
  100. // url: 'http://localhost:8080/processDefinition/getDefinitionXML',
  101. type: 'GET',
  102. data: param,
  103. dataType:'text',
  104. success: function (result) {
  105. var newXmlData = result
  106. tools.createDiagram(newXmlData, bpmnModeler, container);
  107. },
  108. error: function (err) {
  109. console.log(err)
  110. }
  111. });
  112. }
  113. } else if(param.type === "historyBpmn") { // bpmn历史
  114. $('.item').hide()
  115. $('.download').show()
  116. }
  117. // 点击新增
  118. $('#js-download-diagram').on("click", function () {
  119. tools.syopen('alert')
  120. })
  121. // 点击取消
  122. $('.cancel').on("click",function () {
  123. tools.syhide('alert')
  124. })
  125. // 点击确定
  126. $('#sure').on('click',function(){
  127. // const text=$("#deploymentName").val()
  128. tools.saveBpmn(bpmnModeler)
  129. })
  130. // 点击下载
  131. $("#downloadBpmn").on("click", function () {
  132. tools.downLoad(bpmnModeler)
  133. })
  134. // 点击上传
  135. $("#uploadFile").on("change", function () {
  136. tools.upload(bpmnModeler,container)
  137. })
  138. });