TaskOpenUtil.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  1. import WorkflowResource from '../api/workflow/WorkflowResource.js';
  2. import Common from '../common/Common.js';
  3. import { Uuid} from 'pc-component-v3';
  4. export default {
  5. /**
  6. * 打开任务
  7. */
  8. openTask: function(taskInfo){
  9. var _self = this;
  10. var windowNo = taskInfo.windowNo;
  11. var tabIndex = taskInfo.tabIndex;
  12. var recordId = taskInfo.recordId;
  13. return new Promise((resolve, reject) => {
  14. // 1. 首先判断category, category 如果等于 'CurdWindow' 说明是 CURD 窗口,否则是自定义的窗口
  15. // 2. 判断formKey是否存在
  16. // 2.1 如果存在那么就直接打开
  17. // 2.2 如果不存在那么,判断formKeyApp是否存在,如果不存在,那么表示本任务存在异常,如果存在,表示该任务需要在APP上执行,那么进行正确的提示。
  18. if(taskInfo.category === 'CurdWindow'){
  19. if(taskInfo.formKey === null || taskInfo.formKey === ''){
  20. WorkflowResource.canEditByWorkflow(null, windowNo, taskInfo.id).then(successData => {
  21. let url = null;
  22. let type = null;
  23. if(successData == false){
  24. type = 'view';
  25. url = '/desktop/window/window-read/'
  26. + type + '/'
  27. + windowNo + '/'
  28. + tabIndex + '/'
  29. + recordId
  30. + '?workflowType=approve&taskInfoId=' + taskInfo.id
  31. + '&currIndex=1&totalCount=1&canGoBack=false&uuid=' + Uuid.createUUID()
  32. + '&title=' + taskInfo.title
  33. + '&subTitle=' + taskInfo.description;
  34. }else{
  35. type = 'edit';
  36. url = '/desktop/window/window-edit/'
  37. + type + '/'
  38. + windowNo + '/'
  39. + tabIndex + '/'
  40. + recordId
  41. + '?workflowType=approve&taskInfoId=' + taskInfo.id
  42. + '&currIndex=1&totalCount=1&canGoBack=false&uuid=' + Uuid.createUUID()
  43. + '&title=' + taskInfo.title
  44. + '&subTitle=' + taskInfo.description;
  45. }
  46. let newUrl = Common.getRedirectUrl('#' + url);
  47. resolve({
  48. type: 'newWindow',
  49. url: newUrl,
  50. });
  51. }, errorData => {
  52. Common.processException(errorData);
  53. reject();
  54. });
  55. }else{
  56. let newUrl = null;
  57. if(taskInfo.formKey.indexOf('?') > 0){
  58. newUrl = taskInfo.formKey + '&taskId=' + taskInfo.id + '&recordId=' + taskInfo.recordId
  59. + '&title=' + taskInfo.title
  60. + '&subTitle=' + taskInfo.description;
  61. }else{
  62. newUrl = taskInfo.formKey + '?taskId=' + taskInfo.id + '&recordId=' + taskInfo.recordId
  63. + '&title=' + taskInfo.title
  64. + '&subTitle=' + taskInfo.description;
  65. }
  66. resolve({
  67. type: 'newWindow',
  68. url: newUrl,
  69. });
  70. }
  71. }else{
  72. if(taskInfo.formKey === null || taskInfo.formKey === ''){
  73. if(taskInfo.formKeyApp !== null && taskInfo.formKeyApp !== ''){
  74. reject({
  75. title: '操作失败',
  76. message: '当前待办任务,需要在移动端进行,请打开移动端的程序,然后执行本操作。',
  77. });
  78. }else{
  79. reject({
  80. title: '操作失败',
  81. message: '当前待办任务,定义失败,请联系管理员。',
  82. });
  83. }
  84. } else {
  85. if(taskInfo.formKey[0] === '/'){
  86. let formKeys = taskInfo.formKey.split('|');
  87. if(formKeys != null && formKeys.length > 1){
  88. taskInfo.formKey = formKeys[0];
  89. }
  90. if(taskInfo.formKey.indexOf('/static-eam-app/') > -1){
  91. reject({
  92. title: '操作失败',
  93. message: '当前待办任务,需要在移动端进行,请打开移动端的程序,然后执行本操作。',
  94. });
  95. }
  96. let newUrl = null;
  97. if(taskInfo.formKey.indexOf('?') > 0){
  98. newUrl = taskInfo.formKey + '&taskId=' + taskInfo.id + '&recordId=' + taskInfo.recordId
  99. + '&title=' + taskInfo.title
  100. + '&subTitle=' + taskInfo.description;
  101. }else{
  102. newUrl = taskInfo.formKey + '?taskId=' + taskInfo.id + '&recordId=' + taskInfo.recordId
  103. + '&title=' + taskInfo.title
  104. + '&subTitle=' + taskInfo.description;
  105. }
  106. resolve({
  107. type: 'newWindow',
  108. url: newUrl,
  109. });
  110. }else{
  111. resolve({
  112. type: 'customerTask',
  113. taskId: taskInfo.id,
  114. });
  115. }
  116. }
  117. }
  118. });
  119. },
  120. /**
  121. * 打开历史任务
  122. */
  123. openHistoryTask: function(historyTaskInfo){
  124. var _self = this;
  125. var windowNo = historyTaskInfo.windowNo;
  126. var tabIndex = historyTaskInfo.tabIndex;
  127. var recordId = historyTaskInfo.recordId;
  128. var type = 'view';
  129. // 1. 首先判断category, category 如果等于 'CurdWindow' 说明是 CURD 窗口,否则是自定义的窗口
  130. // 2. 判断formKey是否存在
  131. // 2.1 如果存在那么就直接打开
  132. // 2.2 如果不存在那么,判断formKeyApp是否存在,如果不存在,那么表示本任务存在异常,如果存在,表示该任务需要在APP上执行,那么进行正确的提示。
  133. return new Promise((resolve, reject) => {
  134. if(historyTaskInfo.category === 'CurdWindow'){
  135. if(historyTaskInfo.formKey === null || historyTaskInfo.formKey === ''){
  136. let newUrl = '/#/desktop/window/window-read/'
  137. + type + '/'
  138. + windowNo + '/'
  139. + tabIndex + '/'
  140. + recordId
  141. + '?workflowType=approve&taskInfoId=' + historyTaskInfo.id
  142. + '&currIndex=1&totalCount=1&canGoBack=false&uuid=' + Uuid.createUUID();
  143. resolve({
  144. type: 'newWindow',
  145. url: newUrl,
  146. });
  147. }else{
  148. let newUrl = null;
  149. if(historyTaskInfo.formKey.indexOf('?') > 0){
  150. newUrl = historyTaskInfo.formKey + '&taskId=' + historyTaskInfo.id + '&recordId=' + historyTaskInfo.recordId
  151. + '&title=' + historyTaskInfo.title
  152. + '&subTitle=' + historyTaskInfo.description;
  153. }else{
  154. newUrl = historyTaskInfo.formKey + '?taskId=' + historyTaskInfo.id + '&recordId=' + historyTaskInfo.recordId
  155. + '&title=' + historyTaskInfo.title
  156. + '&subTitle=' + historyTaskInfo.description;
  157. }
  158. resolve({
  159. type: 'newWindow',
  160. url: newUrl,
  161. });
  162. }
  163. }else{
  164. if(historyTaskInfo.formKey === null || historyTaskInfo.formKey === ''){
  165. if(historyTaskInfo.formKeyApp !== null && historyTaskInfo.formKeyApp !== ''){
  166. reject({
  167. title: '操作失败',
  168. message: '当前待办任务,需要在移动端进行,请打开移动端的程序,然后执行本操作。',
  169. });
  170. }else{
  171. reject({
  172. title: '操作失败',
  173. message: '当前待办任务,定义失败,请联系管理员。',
  174. });
  175. }
  176. } else {
  177. if(historyTaskInfo.formKey[0] === '/'){
  178. let formKeys = historyTaskInfo.formKey.split('|');
  179. if(formKeys != null && formKeys.length > 1){
  180. historyTaskInfo.formKey = formKeys[0];
  181. }
  182. if(historyTaskInfo.formKey.indexOf('/static-eam-app/') > -1){
  183. reject({
  184. title: '操作失败',
  185. message: '当前待办任务,需要在移动端进行,请打开移动端的程序,然后执行本操作。',
  186. });
  187. }
  188. let newUrl = null;
  189. if(historyTaskInfo.formKey.indexOf('?') > 0){
  190. newUrl = historyTaskInfo.formKey + '&taskId=' + historyTaskInfo.id + '&recordId=' + historyTaskInfo.recordId
  191. + '&title=' + historyTaskInfo.title
  192. + '&subTitle=' + historyTaskInfo.description;
  193. }else{
  194. newUrl = historyTaskInfo.formKey + '?taskId=' + historyTaskInfo.id + '&recordId=' + historyTaskInfo.recordId
  195. + '&title=' + historyTaskInfo.title
  196. + '&subTitle=' + historyTaskInfo.description;
  197. }
  198. resolve({
  199. type: 'newWindow',
  200. url: newUrl,
  201. });
  202. }else{
  203. resolve({
  204. type: 'customerTask',
  205. taskId: historyTaskInfo.id,
  206. });
  207. }
  208. }
  209. }
  210. });
  211. },
  212. /**
  213. * 打开抄送任务
  214. */
  215. openCopyTask: function(copyTask){
  216. var _self = this;
  217. var windowNo = copyTask.windowNo;
  218. var tabIndex = copyTask.tabIndex;
  219. var recordId = copyTask.recordId;
  220. var type = 'view';
  221. // 1. 首先判断category, category 如果等于 'CurdWindow' 说明是 CURD 窗口,否则是自定义的窗口
  222. // 2. 判断formKey是否存在
  223. // 2.1 如果存在那么就直接打开
  224. // 2.2 如果不存在那么,判断formKeyApp是否存在,如果不存在,那么表示本任务存在异常,如果存在,表示该任务需要在APP上执行,那么进行正确的提示。
  225. return new Promise((resolve, reject) => {
  226. if(copyTask.category === 'CurdWindow'){
  227. if(copyTask.formKey === null || copyTask.formKey === ''){
  228. let newUrl = '/#/desktop/window/window-read/'
  229. + type + '/'
  230. + windowNo + '/'
  231. + tabIndex + '/'
  232. + recordId
  233. + '?workflowType=approve&taskInfoId=' + copyTask.id
  234. + '&currIndex=1&totalCount=1&canGoBack=false&uuid=' + Uuid.createUUID();
  235. resolve({
  236. type: 'newWindow',
  237. url: newUrl,
  238. });
  239. }else{
  240. let newUrl = null;
  241. if(copyTask.formKey.indexOf('?') > 0){
  242. newUrl = copyTask.formKey + '&taskId=' + copyTask.id + '&recordId=' + copyTask.recordId
  243. + '&title=' + copyTask.title
  244. + '&subTitle=' + copyTask.description;
  245. }else{
  246. newUrl = copyTask.formKey + '?taskId=' + copyTask.id + '&recordId=' + copyTask.recordId
  247. + '&title=' + copyTask.title
  248. + '&subTitle=' + copyTask.description;
  249. }
  250. resolve({
  251. type: 'newWindow',
  252. url: newUrl,
  253. });
  254. }
  255. }else{
  256. if(copyTask.formKey === null || copyTask.formKey === ''){
  257. if(copyTask.formKeyApp !== null && copyTask.formKeyApp !== ''){
  258. reject({
  259. title: '操作失败',
  260. message: '当前待办任务,需要在移动端进行,请打开移动端的程序,然后执行本操作。',
  261. });
  262. }else{
  263. reject({
  264. title: '操作失败',
  265. message: '当前待办任务,定义失败,请联系管理员。',
  266. });
  267. }
  268. } else {
  269. if(copyTask.formKey[0] === '/'){
  270. let formKeys = copyTask.formKey.split('|');
  271. if(formKeys != null && formKeys.length > 1){
  272. copyTask.formKey = formKeys[0];
  273. }
  274. if(copyTask.formKey.indexOf('/static-eam-app/') > -1){
  275. reject({
  276. title: '操作失败',
  277. message: '当前待办任务,需要在移动端进行,请打开移动端的程序,然后执行本操作。',
  278. });
  279. }
  280. let newUrl = null;
  281. if(copyTask.formKey.indexOf('?') > 0){
  282. newUrl = copyTask.formKey + '&taskId=' + copyTask.id + '&recordId=' + copyTask.recordId
  283. + '&title=' + copyTask.title
  284. + '&subTitle=' + copyTask.description;
  285. }else{
  286. newUrl = copyTask.formKey + '?taskId=' + copyTask.id + '&recordId=' + copyTask.recordId
  287. + '&title=' + copyTask.title
  288. + '&subTitle=' + copyTask.description;
  289. }
  290. resolve({
  291. type: 'newWindow',
  292. url: newUrl,
  293. });
  294. }else{
  295. resolve({
  296. type: 'customerTask',
  297. taskId: copyTask.id,
  298. });
  299. }
  300. }
  301. }
  302. });
  303. },
  304. };