Advertisement
Guest User

hello

a guest
Apr 12th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 19.08 KB | None | 0 0
  1.  
  2. @using DocProLogic.Models;
  3. @using DocProUtil.Customs.Perms;
  4. @model WorkflowModel
  5. @{
  6.     var users = Model.Users ?? new List<User>();
  7.     var depts = Model.Depts ?? new List<Dept>();
  8.     var teams = Model.Teams ?? new List<Team>();
  9.     var positions = Model.Positions ?? new List<Position>();
  10.  
  11.     var workflowSteps = ViewBag.stepModel;
  12.     var workflowExecutors = Model.WorkflowExecutors ?? new List<WorkflowExecutor>();
  13.     var workflowStatusItems = Model.WorkflowStatusItems ?? new List<WorkflowStatus>();
  14.     var isUpdate = new WorkflowPerm(ViewBag.CUser, Model.Workflow).IsUpdate();
  15.     Loger.Log(Utils.Serialize(workflowExecutors),"SonTH");
  16. }
  17.  
  18. @foreach (var workflowStep in workflowSteps)
  19. {
  20.     var rand = Guid.NewGuid();
  21.     var stepWorkflowExecutors = workflowExecutors.Where(x => x.IDWorkflowStep == workflowStep.key).ToList() ?? new List<WorkflowExecutor>();
  22.     Loger.Log(Utils.Serialize(stepWorkflowExecutors),"SonTH");
  23.    
  24.     var stepWorkflowStatusItems = workflowStatusItems.Where(x => x.IDWorkflowStep == workflowStep.ID).ToList() ?? new List<WorkflowStatus>();
  25.  
  26.     <div class="col-lg-4 col-sm-12 col-xs-12 item @(isUpdate ? "sortitem" : string.Empty)">
  27.         <div class="widget">
  28.             <div class="widget-header bordered-bottom bordered-themeprimary">
  29.                 <i class="widget-icon fa fa-tasks themeprimary"></i>
  30.                 <span class="widget-caption themeprimary">@Locate.T("Bước thực hiện")</span>
  31.                 <i class="close deleteItem ion-close-round"></i>
  32.             </div>
  33.             <div class="widget-body">
  34.                 <div class="task-container">
  35.                     <div class="form-group has-feedback">
  36.                         <label class="col-lg-12">@Locate.T("Tên bước")</label>
  37.                         <div class="col-lg-12">
  38.                             <input @(isUpdate ? string.Empty : "readonly") id="UpWorkflowStepName@(rand)" name="StepName" type="text" data-bv-notempty-message="@Locate.T("Tên bước không được trống")" data-bv-notempty="true"
  39.                                    placeholder="@Locate.T("Tên bước")" class="form-control" data-bv-field="StepName" value="@workflowStep.text">
  40.                         </div>
  41.                     </div>
  42.                     <div class="form-group has-feedback">
  43.                         <label class="col-lg-12">@Locate.T("Mô tả")</label>
  44.                         <div class="col-lg-12">
  45.                             <textarea @(isUpdate ? string.Empty : "readonly") id="UpWorkflowStepDescribe@(rand)" name="StepDescribe" rows="3" cols="20" placeholder="@Locate.T("Mô tả")" class="form-control noresize">@workflowStep.Describe</textarea>
  46.                         </div>
  47.                     </div>
  48.                     <div class="form-group has-feedback">
  49.                         <div class="col-lg-12">
  50.                             <div class="tabbable">
  51.                                 <ul class="nav nav-tabs tabs-flat">
  52.                                     <li class="active">
  53.                                         <a data-toggle="tab" href="#ExecutorUser@(rand)" aria-expanded="true">@Locate.T("Nhân viên")</a>
  54.                                     </li>
  55.                                     <li>
  56.                                         <a data-toggle="tab" href="#ExecutorDept@(rand)" aria-expanded="true">@Locate.T("Phòng")</a>
  57.                                     </li>
  58.                                     <li>
  59.                                         <a data-toggle="tab" href="#ExecutorPosition@(rand)" aria-expanded="true">@Locate.T("Chức vụ")</a>
  60.                                     </li>
  61.                                     <li>
  62.                                         <a data-toggle="tab" href="#ExecutorTeam@(rand)" aria-expanded="true">@Locate.T("Nhóm")</a>
  63.                                     </li>
  64.                                 </ul>
  65.                                 <div class="tab-content tabs-flat nopadlr">
  66.                                     <input type="hidden" name="StepExecutor" value="@rand" />
  67.                                     <div id="ExecutorUser@(rand)" class="tab-pane active">
  68.                                         <div>
  69.                                             <input @(isUpdate ? string.Empty : "readonly") id="UpWorkflowStepUserName@(rand)" name="UserName" data-target="#UpWorkflowIDUserContainer@(rand)" data-name="IDUser@(rand)" data-type="0"
  70.                                                    placeholder="@Locate.T("Người thực hiện")" class="form-control @(isUpdate ? "autocompleteUser" : string.Empty)" type="text">
  71.                                             <div id="UpWorkflowIDUserContainer@(rand)" class="useScrollBar scrollItems" name="WorkflowStepExecutors@(rand)">
  72.                                                 @foreach (var stepWorkflowExecutor in stepWorkflowExecutors)
  73.                                                 {
  74.                                                     var user = users.Where(x => x.ID == stepWorkflowExecutor.IDUser).SingleOrDefault();
  75.                                                     if (Utils.IsNotEmpty(user))
  76.                                                     {
  77.                                                         <div class="scrollItem tickGroup item" data-id="@user.ID">
  78.                                                             <div class="col-sm-12">
  79.                                                                 <div class="checkbox">
  80.                                                                     <label>
  81.                                                                         <input @(isUpdate ? string.Empty : "disabled") checked value="@user.ID" class="colored-success tickItem" name="IDUser@(rand)" id="Rand@(rand)" type="checkbox">
  82.                                                                         <span class="nowrap text">@user.Name</span>
  83.                                                                     </label>
  84.                                                                 </div>
  85.                                                                 <button type="button" class="btn btn-xs btn-link close deleteItem">x</button>
  86.                                                             </div>
  87.                                                         </div>
  88.                                                     }
  89.                                                 }
  90.                                             </div>
  91.                                         </div>
  92.                                     </div>
  93.                                     <div id="ExecutorDept@(rand)" class="tab-pane">
  94.                                         <div>
  95.                                             <input @(isUpdate ? string.Empty : "readonly") id="UpWorkflowStepDeptName@(rand)" name="DeptName" data-target="#UpWorkflowIDDeptContainer@(rand)" data-name="IDDept@(rand)" data-type="0"
  96.                                                    placeholder="@Locate.T("Phòng thực hiện")" class="form-control @(isUpdate ? "autocompleteDept" : string.Empty)" type="text">
  97.                                             <div id="UpWorkflowIDDeptContainer@(rand)" class="useScrollBar scrollItems" name="WorkflowStepExecutors@(rand)">
  98.                                                 @foreach (var stepWorkflowExecutor in stepWorkflowExecutors)
  99.                                                 {
  100.                                                     var dept = depts.Where(x => x.ID == stepWorkflowExecutor.IDDept).SingleOrDefault();
  101.                                                     if (Utils.IsNotEmpty(dept))
  102.                                                     {
  103.                                                         <div class="scrollItem tickGroup item" data-id="@dept.ID">
  104.                                                             <div class="col-sm-12">
  105.                                                                 <div class="checkbox">
  106.                                                                     <label>
  107.                                                                         <input @(isUpdate ? string.Empty : "disabled") checked value="@dept.ID" class="colored-success tickItem" name="IDDept@(rand)" id="Rand@(rand)" type="checkbox">
  108.                                                                         <span class="nowrap text">@dept.Name</span>
  109.                                                                     </label>
  110.                                                                 </div>
  111.                                                                 <button type="button" class="btn btn-xs btn-link close deleteItem">x</button>
  112.                                                             </div>
  113.                                                         </div>
  114.                                                     }
  115.                                                 }
  116.                                             </div>
  117.                                         </div>
  118.                                     </div>
  119.                                     <div id="ExecutorPosition@(rand)" class="tab-pane">
  120.                                         <div>
  121.                                             <input @(isUpdate ? string.Empty : "readonly") id="UpWorkflowStepPositionName@(rand)" name="PositionName" data-target="#UpWorkflowIDPositionContainer@(rand)" data-name="IDPosition@(rand)" data-type="0"
  122.                                                    placeholder="@Locate.T("Chức vụ")" class="form-control @(isUpdate ? "autocompletePosition" : string.Empty)" type="text">
  123.                                             <div id="UpWorkflowIDPositionContainer@(rand)" class="useScrollBar scrollItems" name="WorkflowStepExecutors@(rand)">
  124.                                                 @foreach (var stepWorkflowExecutor in stepWorkflowExecutors)
  125.                                                 {
  126.                                                     var position = positions.Where(x => x.ID == stepWorkflowExecutor.IDPosition).SingleOrDefault();
  127.                                                     if (Utils.IsNotEmpty(position))
  128.                                                     {
  129.                                                         <div class="scrollItem tickGroup item" data-id="@position.ID">
  130.                                                             <div class="col-sm-12">
  131.                                                                 <div class="checkbox">
  132.                                                                     <label>
  133.                                                                         <input @(isUpdate ? string.Empty : "disabled") checked value="@position.ID" class="colored-success tickItem" name="IDPosition@(rand)" id="Rand@(rand)" type="checkbox">
  134.                                                                         <span class="nowrap text">@position.Name</span>
  135.                                                                     </label>
  136.                                                                 </div>
  137.                                                                 <button type="button" class="btn btn-xs btn-link close deleteItem">x</button>
  138.                                                             </div>
  139.                                                         </div>
  140.                                                     }
  141.                                                 }
  142.                                             </div>
  143.                                         </div>
  144.                                     </div>
  145.                                     <div id="ExecutorTeam@(rand)" class="tab-pane">
  146.                                         <div>
  147.                                             <input @(isUpdate ? string.Empty : "readonly") id="UpWorkflowStepTeamName@(rand)" name="TeamName" data-target="#UpWorkflowIDTeamContainer@(rand)" data-name="IDTeam@(rand)" data-type="0"
  148.                                                    placeholder="@Locate.T("Nhóm thực hiện")" class="form-control @(isUpdate ? "autocompleteTeam" : string.Empty)" type="text">
  149.                                             <div id="UpWorkflowIDTeamContainer@(rand)" class="useScrollBar scrollItems" name="WorkflowStepExecutors@(rand)">
  150.                                                 @foreach (var stepWorkflowExecutor in stepWorkflowExecutors)
  151.                                                 {
  152.                                                     var team = teams.Where(x => x.ID == stepWorkflowExecutor.IDTeam).SingleOrDefault();
  153.                                                     if (Utils.IsNotEmpty(team))
  154.                                                     {
  155.                                                         <div class="scrollItem tickGroup item" data-id="@team.ID">
  156.                                                             <div class="col-sm-12">
  157.                                                                 <div class="checkbox">
  158.                                                                     <label>
  159.                                                                         <input @(isUpdate ? string.Empty : "disabled") checked value="@team.ID" class="colored-success tickItem" name="IDTeam@(rand)" id="Rand@(rand)" type="checkbox">
  160.                                                                         <span class="nowrap text">@team.Name</span>
  161.                                                                     </label>
  162.                                                                 </div>
  163.                                                                 <button type="button" class="btn btn-xs btn-link close deleteItem">x</button>
  164.                                                             </div>
  165.                                                         </div>
  166.                                                     }
  167.                                                 }
  168.                                             </div>
  169.                                         </div>
  170.                                     </div>
  171.                                 </div>
  172.                             </div>
  173.  
  174.                             <div name="WorkflowStepExecutors@(rand)"
  175.                                  data-bv-callback="true"
  176.                                  data-bv-callback-message="@Locate.T("Bạn chưa chọn đối tượng thực hiện")"
  177.                                  data-bv-callback-callback="Callbacks.WorkflowStepExecutors" data-bv-field="WorkflowStepExecutors@(rand)"></div>
  178.                         </div>
  179.                     </div>
  180.                     <div class="form-group has-feedback hidden">
  181.                         <label class="col-lg-12">@Locate.T("Thiết lập trạng thái") <i class="glyphicon glyphicon-question-sign red" title="@Locate.T("Các trạng thái của bước thực hiện. Mỗi trạng thái là 1 dòng")"></i></label>
  182.                         <div class="col-lg-12">
  183.                             @{
  184.                                 var statusStr = string.Empty;
  185.                                 var workflowStatus = workflowStatusItems.Where(x => x.IDWorkflowStep == workflowStep.ID).ToList();
  186.                                 if (Utils.IsNotEmpty<WorkflowStatus>(workflowStatusItems))
  187.                                 {
  188.                                     statusStr = string.Join("\n", workflowStatus.Select(x => x.Name).ToArray());
  189.                                 }
  190.                             }
  191.                             <textarea @(isUpdate ? string.Empty : "readonly") id="UpWorkflowStepStatus@(rand)" name="StepStatus" rows="3" cols="20" placeholder="@Locate.T("Thiết lập trạng thái")" class="form-control noresize">@(new HtmlString(statusStr))</textarea>
  192.                         </div>
  193.                     </div>
  194.                     <div class="form-group has-feedback">
  195.                         <div class="col-lg-6">
  196.                             <label>@Locate.T("Số ngày thực hiện")</label>
  197.                             <div>
  198.                                 <input @(isUpdate ? string.Empty : "readonly") id="UpWorkflowStepDay@(rand)" name="StepDay" type="text" data-bv-notempty-message="@Locate.T("Số ngày")" data-bv-notempty="true"
  199.                                        placeholder="@Locate.T("Số ngày thực hiện")" class="form-control" data-bv-field="StepDay" value="@workflowStep.StepDay">
  200.                             </div>
  201.                         </div>
  202.                         <div class="col-lg-6">
  203.                             <label>@Locate.T("Số giờ thực hiện")</label>
  204.                             <div>
  205.                                 <input @(isUpdate ? string.Empty : "readonly") id="UpWorkflowStepHour@(rand)" name="StepHour" type="text" data-bv-notempty-message="@Locate.T("Số giờ")" data-bv-notempty="true"
  206.                                        placeholder="@Locate.T("Số giờ thực hiện")" class="form-control" data-bv-field="StepHour" value="@workflowStep.StepHour">
  207.                             </div>
  208.                         </div>
  209.                     </div>
  210.                     @*<div class="form-group has-feedback hidden">
  211.                             <div class="col-lg-12">
  212.                                 <div class="checkbox">
  213.                                     <label>
  214.                                         <input @(isUpdate ? string.Empty : "readonly") type="hidden" value="@(workflowStep.IsAllCompleted ? 1 : 0)" name="StepIsAllCompleted" id="UpWorkflowIsAllCompleted@(rand)">
  215.                                         <input @(isUpdate ? string.Empty : "readonly") type="checkbox" @(workflowStep.IsAllCompleted ? "checked" : string.Empty) value="1" class="colored-success changeRel" data-rel="#UpWorkflowIsAllCompleted@(rand)">
  216.                                         <span class="text">@Locate.T("Bước thực hiện hoàn thành khi tất cả người thực hiện xác hoàn thành.") <i class="glyphicon glyphicon-question-sign red" title="@Locate.T("Bỏ chọn khi ban muốn chỉ một trong số người thực hiện xác nhận hoàn thành, hệ thống sẽ chuyển trạng thái hoàn thành bước thực hiện")"></i></span>
  217.                                     </label>
  218.                                 </div>
  219.                             </div>
  220.                         </div>*@
  221.                     <div class="form-group has-feedback">
  222.                         <label class="col-sm-12">@Locate.T("Kiểu bước")</label>
  223.                         <div class="col-sm-12">
  224.                             <select @(isUpdate ? string.Empty : "disabled") class="form-control selectpicker" data-live-search="true" name="TypeCompleted" id="UpWorkflowTypeCompleted@(rand)" data-container="body" data-size="5">
  225.                                 <option @(workflowStep.StepType == 0 ? "selected" : string.Empty) value="0">@Locate.T("Chuyển tiếp")</option>
  226.                                 <option @(workflowStep.StepType == 1 ? "selected" : string.Empty) value="1">@Locate.T("Duyệt")</option>
  227.                             </select>
  228.                         </div>
  229.                     </div>
  230.                 </div>
  231.             </div>
  232.         </div>
  233.     </div>
  234. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement