work.js 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. layout.addReady(function(){
  2. (function(layout){
  3. var uri = new URI(window.location.href);
  4. var options = uri.get("data");
  5. var appNames = "process.Work";
  6. var statusObj = null;
  7. var _load = function(){
  8. // layout.message = new MWF.xDesktop.MessageMobile();
  9. // layout.message.load();
  10. layout.apps = [];
  11. layout.node = $("layout");
  12. var appName=appNames, m_status=statusObj, option=options;
  13. var topWindow = window.opener;
  14. if (topWindow){
  15. try{
  16. if (!appName) appName = topWindow.layout.desktop.openBrowserApp;
  17. if (!m_status) m_status = topWindow.layout.desktop.openBrowserStatus;
  18. if (!option) option = topWindow.layout.desktop.openBrowserOption;
  19. }catch(e){}
  20. }
  21. if (options.job && !options.workid && !options.draftid && !options.draft){
  22. var workData = null;
  23. o2.Actions.get("x_processplatform_assemble_surface").listWorkByJob(options.job, function(json){
  24. if (json.data) workData = json.data;
  25. }.bind(this), null, false);
  26. if (workData){
  27. var len = workData.workList.length + workData.workCompletedList.length;
  28. if (len){
  29. if (len>1 && options.choice){
  30. layout.node.empty();
  31. layout.node.setStyle("background", "#f1f1f1");
  32. var node = new Element("div", {
  33. "styles": {"font-size": "18px", "text-align": "center", "font-weight": "bold", "margin": "auto", "height": "30px", "width": "90%", "max-width": "600px", "padding": "40px 0px 20px 20px"},
  34. "text": o2.LP.widget.choiceWork
  35. }).inject(layout.node);
  36. var node = new Element("div", {"styles": {"margin": "auto", "padding": "0px 20px", "width": "90%", "max-width": "600px"}}).inject(layout.node);
  37. workData.workList.each(function(work){
  38. var workNode = new Element("div", {
  39. "styles": {
  40. "background": "#ffffff",
  41. "border-radius": "10px",
  42. "clear": "both",
  43. "margin-bottom": "10px",
  44. "height": "40px",
  45. "padding": "10px 10px"
  46. }
  47. }).inject(node);
  48. var html = "<div style='height: 40px; width: 40px; float: left; background: url(../x_component_process_Xform/$Form/default/icon/work.png) no-repeat center center'></div>" +
  49. "<div style='height: 40px; width: 40px; float: right'><div class='MWFAction' style='height: 20px; width: 40px; margin-top: 10px; border: 1px solid #999999; border-radius: 5px;text-align: center; cursor: pointer'>"+o2.LP.widget.open+"</div></div>"+
  50. "<div style='height: 20px; line-height: 20px; margin: 0px 40px'>"+work.title+"</div>" +
  51. "<div style='margin: 0px 40px'><div style='color:#999999; float: left; margin-right: 10px'>"+work.activityName+"</div>" +
  52. "<div style='color:#999999; float: left; margin-right: 10px'>"+work.activityArrivedTime+"</div>" +
  53. "<div style='color:#999999; float: left; margin-right: 10px'>"+(work.manualTaskIdentityText || "")+"</div></div>";
  54. workNode.set("html", html);
  55. var action = workNode.getElement(".MWFAction");
  56. action.store("work", work);
  57. action.addEvent("click", function(e){
  58. var work = e.target.retrieve("work");
  59. options.workId = work.id;
  60. layout.node.empty();
  61. layout.openApplication(null, appName, option||{}, m_status);
  62. //if (work) this.openWork(work.id, null, work.title, options);
  63. }.bind(this));
  64. }.bind(this));
  65. workData.workCompletedList.each(function(work){
  66. var workNode = new Element("div", {
  67. "styles": {
  68. "background": "#ffffff",
  69. "border-radius": "10px",
  70. "clear": "both",
  71. "margin-bottom": "10px",
  72. "height": "40px",
  73. "padding": "10px 10px"
  74. }
  75. }).inject(node);
  76. var html = "<div style='height: 40px; width: 40px; float: left; background: url(../x_component_process_Xform/$Form/default/icon/work.png) no-repeat center center'></div>" +
  77. "<div style='height: 40px; width: 40px; float: right'><div class='MWFAction' style='height: 20px; width: 40px; margin-top: 10px; border: 1px solid #999999; border-radius: 5px;text-align: center; cursor: pointer'>"+o2.LP.widget.open+"</div></div>"+
  78. "<div style='height: 20px; line-height: 20px; margin: 0px 40px'>"+work.title+"</div>" +
  79. "<div style='margin: 0px 40px'><div style='color:#999999; float: left; margin-right: 10px'>+o2.LP.widget.workcompleted+</div>" +
  80. "<div style='color:#999999; float: left; margin-right: 10px'>"+work.completedTime+"</div>";
  81. workNode.set("html", html);
  82. var action = workNode.getElement(".MWFAction");
  83. action.store("work", work);
  84. action.addEvent("click", function(e){
  85. var work = e.target.retrieve("work");
  86. options.workCompletedId = work.id;
  87. layout.node.empty();
  88. layout.openApplication(null, appName, option||{}, m_status);
  89. }.bind(this));
  90. }.bind(this));
  91. }else{
  92. if (workData.workList.length){
  93. options.workId = workData.workList[0].id;
  94. }else{
  95. options.workCompletedId = workData.workCompletedList[0].id;
  96. }
  97. layout.openApplication(null, appName, option||{}, m_status);
  98. }
  99. }
  100. }
  101. }else{
  102. if (options.draft) options.draft = JSON.parse(options.draft);
  103. layout.openApplication(null, appName, option||{}, m_status);
  104. }
  105. };
  106. _load();
  107. })(layout);
  108. });