printWork.js 7.4 KB

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