RoadFlow2.1 临时演示

FlowBack.aspx 4.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FlowBack.aspx.cs" Inherits="WebForm.Platform.WorkFlowRun.FlowBack" %>
  2. <!DOCTYPE html>
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head runat="server">
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  6. <title></title>
  7. </head>
  8. <body>
  9. <form id="form1" runat="server">
  10. <%
  11. WebForm.Common.Tools.CheckLogin(false);
  12. string flowid = Request.QueryString["flowid"];
  13. string stepid = Request.QueryString["stepid"];
  14. string groupid = Request.QueryString["groupid"];
  15. string taskid = Request.QueryString["taskid"];
  16. RoadFlow.Platform.WorkFlow bworkFlow = new RoadFlow.Platform.WorkFlow();
  17. RoadFlow.Platform.WorkFlowTask btask = new RoadFlow.Platform.WorkFlowTask();
  18. var wfInstalled = bworkFlow.GetWorkFlowRunModel(flowid);
  19. if(wfInstalled==null)
  20. {
  21. Response.Write("未找到流程运行时实体");
  22. Response.End();
  23. }
  24. Guid taskID;
  25. if(!taskid.IsGuid(out taskID))
  26. {
  27. Response.Write("未找到当前任务");
  28. Response.End();
  29. }
  30. var steps = wfInstalled.Steps.Where(p => p.ID == stepid.ToGuid());
  31. if (steps.Count() == 0)
  32. {
  33. Response.Write("未找到当前步骤");
  34. Response.End();
  35. }
  36. var currentStep = steps.First();
  37. int backModel = currentStep.Behavior.BackModel;//退回策略
  38. if (backModel == 0)
  39. {
  40. //Response.Write("<script type=\"text/javascript\">alert(\"当前步骤设置为不能退回!\");</script>");
  41. //Response.End();
  42. }
  43. int backType = currentStep.Behavior.BackType;//退回类型
  44. var prevSteps = btask.GetBackSteps(taskID, backType, currentStep.ID, wfInstalled);
  45. int i=0;
  46. %>
  47. <table cellpadding="0" cellspacing="1" border="0" width="95%" align="center" style="margin-top:6px;">
  48. <%
  49. foreach (var step in prevSteps)
  50. {
  51. string checked1 = string.Empty;
  52. if ((backType == 2 && step.Key == currentStep.Behavior.BackStepID) || currentStep.Behavior.Countersignature != 0 || backType == 0)
  53. {
  54. checked1 = "checked=\"checked\""; i++;
  55. }
  56. else
  57. {
  58. checked1 = !step.Key.ToString().IsNullOrEmpty() && i++ == 0 ? "checked=\"checked\"" : "";
  59. }
  60. string disabled = step.Key.ToString().IsNullOrEmpty() || currentStep.Behavior.Countersignature != 0 || backType == 0 ? "disabled=\"disabled\"" : "";
  61. %>
  62. <tr>
  63. <td style="padding:9px 0 2px 0;">
  64. <input type="hidden" name="nextstepid" value="@step" />
  65. <input type="checkbox" value="<%=step.Key %>" <%=checked1 %> <%=disabled %> name="stepid" id="step_<%=step.Key %>" style="vertical-align:middle;" />
  66. <label for="step_<%=step.Key %>" style="vertical-align:middle;"><%=step.Value %></label>
  67. </td>
  68. </tr>
  69. <tr><td style="height:6px; border-bottom:1px dashed #e8e8e8;"></td></tr>
  70. <%}%>
  71. </table>
  72. <div style="width:95%; margin:12px auto 0 auto; text-align:center;">
  73. <input type="submit" class="mybutton" onclick="return confirm1();" name="Save" value="&nbsp;确&nbsp;定&nbsp;" style="margin-right:5px;" />
  74. <input type="button" class="mybutton" value="&nbsp;取&nbsp;消&nbsp;" onclick="new RoadUI.Window().close();" />
  75. </div>
  76. <script type="text/javascript">
  77. var frame = null;
  78. var openerid = '<%=Request.QueryString["openerid"]%>';
  79. $(function ()
  80. {
  81. var iframes = top.frames;
  82. for (var i = 0; i < iframes.length; i++)
  83. {
  84. if (iframes[i].name == openerid + "_iframe")
  85. {
  86. frame = iframes[i]; break;
  87. }
  88. }
  89. if (frame == null) return;
  90. });
  91. function confirm1()
  92. {
  93. if ("0" == "<%=backModel%>")//退回策略为不能退回
  94. {
  95. alert("当前步骤设置为不能退回!");
  96. new RoadUI.Window().close();
  97. return;
  98. }
  99. var opts = {};
  100. opts.type = "back";
  101. opts.steps = [];
  102. var isSubmit = true;
  103. $(":checked[name='stepid']").each(function ()
  104. {
  105. var step = $(this).val();
  106. opts.steps.push({ id: step, member: "" });
  107. });
  108. if (opts.steps.length == 0)
  109. {
  110. alert("没有选择要退回的步骤!");
  111. return false;
  112. }
  113. if (isSubmit)
  114. {
  115. frame.formSubmit(opts);
  116. new RoadUI.Window().close();
  117. }
  118. }
  119. </script>
  120. </form>
  121. </body>
  122. </html>