qywxStartProcess.js 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. layout.addReady(function(){
  2. //重写 base_simple.js中的方法 这里是单点登录企业微信
  3. layout.openLogin = function () {
  4. console.log("开始login。。。。。。。。。。。。。");
  5. var uri = locate.href.toURI();
  6. var redirect = uri.getData("redirect");
  7. var processId = uri.getData("processId");
  8. var applicationId = uri.getData("appId");
  9. MWF.require("MWF.xDesktop.Actions.RestActions", function () {
  10. console.log("执行单点。。。。。。。。。。");
  11. var action = new MWF.xDesktop.Actions.RestActions("", "x_organization_assemble_authentication", "");
  12. action.getActions = function (actionCallback) {
  13. this.actions = { "sso": { "uri": "/jaxrs/qiyeweixin/code/{code}", "method": "GET" } };
  14. if (actionCallback) actionCallback();
  15. };
  16. action.invoke({
  17. "name": "sso", "async": true, "parameter": { "code": uri.getData("code") }, "success": function (json) {
  18. console.log("单点成功。");
  19. console.log(json);
  20. //基础数据。。。。
  21. layout.session.user = json.data;
  22. layout.content = $(document.body);
  23. layout.app = layout;
  24. //开始启动
  25. layout.startProcess(applicationId, processId, redirect);
  26. }.bind(this), "failure": function (xhr, text, error) {
  27. var n = document.getElementById("loaddingArea");
  28. if (n) { n.destroy(); }
  29. document.id("layout").set("html", "<div>企业微信单点异常!</div>")
  30. }.bind(this)
  31. });
  32. });
  33. };
  34. layout.startProcess = function (appId, pId, redirect) {
  35. console.log("开始startProcess。。。。。。。。");
  36. console.log(appId);
  37. console.log(pId);
  38. MWF.Actions.get("x_processplatform_assemble_surface").getProcessByName(pId, appId, function (json) {
  39. if (json.data) {
  40. MWF.xDesktop.requireApp("process.TaskCenter", "ProcessStarter", function () {
  41. var starter = new MWF.xApplication.process.TaskCenter.ProcessStarter(json.data, layout.app, {
  42. "workData": {},
  43. "identity": null,
  44. "latest": false,
  45. "onStarted": function (data, title, processName) {
  46. console.log("进入 onStarted。。。。");
  47. debugger;
  48. if (data.work){
  49. layout.startProcessDraft(data, title, processName, redirect);
  50. }else{
  51. layout.startProcessInstance(data, title, processName, redirect);
  52. }
  53. }.bind(this)
  54. });
  55. var mask = document.getElementById("loaddingArea");
  56. if (mask) mask.destroy();
  57. starter.load();
  58. }.bind(this));
  59. }
  60. }.bind(this));
  61. };
  62. layout.startProcessDraft = function(data, title, processName, redirect){
  63. console.log("草稿模式。。。。");
  64. console.log(data);
  65. o2.require("o2.widget.UUID", function () {
  66. var work = data.work;
  67. var options = {"draft": work, "appId": "process.Work"+(new o2.widget.UUID).toString(), "desktopReload": false};
  68. //先修改当前url为配置的门户地址
  69. if (redirect) {
  70. history.replaceState(null, "startProcess", redirect);
  71. } else {
  72. history.replaceState(null, "startProcess", "/x_desktop/appMobile.html?app=process.TaskCenter");
  73. }
  74. debugger;
  75. // layout.openApplication(null, "process.Work", options);
  76. layout.openWorkIn(options);
  77. });
  78. };
  79. layout.startProcessInstance = function(data, title, processName, redirect){
  80. console.log("实例模式。。。。");
  81. console.log(data);
  82. var currentTask = [];
  83. data.each(function (work) {
  84. if (work.currentTaskIndex != -1) currentTask.push(work.taskList[work.currentTaskIndex].work);
  85. }.bind(this));
  86. if (currentTask.length == 1) {
  87. var options = { "workId": currentTask[0], "appId": currentTask[0] };
  88. //先修改当前url为配置的门户地址
  89. if (redirect) {
  90. history.replaceState(null, "startProcess", redirect);
  91. } else {
  92. history.replaceState(null, "startProcess", "/x_desktop/appMobile.html?app=process.TaskCenter");
  93. }
  94. // layout.openApplication(null, "process.Work", options);
  95. layout.openWorkIn(options);
  96. } else { }
  97. };
  98. layout.openWorkIn = function(options){
  99. o2.requireApp("Common", "", function() {
  100. var uri = new URI(window.location.href);
  101. var redirectlink = uri.getData("redirectlink");
  102. if (!redirectlink) {
  103. redirectlink = encodeURIComponent(locate.pathname + locate.search);
  104. } else {
  105. redirectlink = encodeURIComponent(redirectlink);
  106. }
  107. var appName="process.Work", m_status=null;
  108. options.redirectlink = redirectlink;
  109. layout.app = null;//创建工作界面
  110. layout.openApplication(null, appName, options, m_status);
  111. }, true);
  112. };
  113. layout.notice = function (content, type, target, where, offset) {
  114. if (!where) where = { "x": "right", "y": "top" };
  115. if (!target) target = this.content;
  116. if (!type) type = "ok";
  117. var noticeTarget = target || $(document.body);
  118. var off = offset;
  119. if (!off) {
  120. off = {
  121. x: 10,
  122. y: where.y.toString().toLowerCase() == "bottom" ? 10 : 10
  123. };
  124. }
  125. new mBox.Notice({
  126. type: type,
  127. position: where,
  128. move: false,
  129. target: noticeTarget,
  130. delayClose: (type == "error") ? 10000 : 5000,
  131. offset: off,
  132. content: content
  133. });
  134. };
  135. (function(layout){
  136. console.log("开始执行。。。。。。。。");
  137. var uri = locate.href.toURI();
  138. var redirect = uri.getData("redirect");
  139. var processId = uri.getData("processId");
  140. var applicationId = uri.getData("appId");
  141. console.log(uri);
  142. layout.content = $(document.body);
  143. layout.app = layout;
  144. layout.startProcess(applicationId, processId, redirect);
  145. })(layout);
  146. });