|
@@ -9,162 +9,152 @@
|
|
|
<div class="row">
|
|
|
<div class="col-4">
|
|
|
<div class="card mt-3">
|
|
|
- <ul class="list-group list-group-flush">
|
|
|
- <% auditors.forEach((item, idx) => { %>
|
|
|
+ <ul class="list-group list-group-flush" id="auditors-list">
|
|
|
+ <% revise.userGroups.forEach((item, idx) => { %>
|
|
|
<% if (idx === 0) { %>
|
|
|
- <li class="list-group-item" data-auditorId="<%- item.audit_id %>">
|
|
|
- <i class="fa fa fa-play-circle fa-rotate-90"></i> <%- item.name %>
|
|
|
- <small class="text-muted"><%- item.role %></small>
|
|
|
- <span class="pull-right">原报</span>
|
|
|
+ <li class="list-group-item d-flex justify-content-between align-items-center">
|
|
|
+ <span class="mr-1"><i class="fa fa fa-play-circle fa-rotate-90"></i></span>
|
|
|
+ <span class="text-muted">
|
|
|
+ <% for (const u of item) { %>
|
|
|
+ <small class="d-inline-block text-dark mx-1" title="<%- u.role %>" data-auditorId="<%- u.audit_id %>"><%- u.name %></small>
|
|
|
+ <% } %>
|
|
|
+ </span>
|
|
|
+ <span class="badge badge-light badge-pill ml-auto"><small>原报</small></span>
|
|
|
</li>
|
|
|
- <% } else if(idx === auditors.length -1 && idx !== 0) { %>
|
|
|
- <li class="list-group-item" data-auditorId="<%- item.audit_id %>">
|
|
|
- <i class="fa fa fa-stop-circle"></i> <%- item.name %>
|
|
|
- <small class="text-muted"><%- item.role %></small>
|
|
|
- <span class="pull-right">终审</span>
|
|
|
+ <% } else if(idx === revise.userGroups.length -1 && idx !== 0) { %>
|
|
|
+ <li class="list-group-item d-flex justify-content-between align-items-center">
|
|
|
+ <span class="mr-1"><i class="fa fa fa-stop-circle"></i></span>
|
|
|
+ <span class="text-muted">
|
|
|
+ <% for (const u of item) { %>
|
|
|
+ <small class="d-inline-block text-dark mx-1" title="<%- u.role %>" data-auditorId="<%- u.audit_id %>"><%- u.name %></small>
|
|
|
+ <% } %>
|
|
|
+ </span>
|
|
|
+ <div class="d-flex ml-auto">
|
|
|
+ <% if (item[0].audit_type !== auditType.key.common) { %>
|
|
|
+ <span class="badge badge-pill badge-<%- auditType.info[item[0].audit_type].class %> p-1"><small><%- auditType.info[item[0].audit_type].short %></small></span>
|
|
|
+ <% } %>
|
|
|
+ <span class="badge badge-light badge-pill"><small>终审</small></span>
|
|
|
+ </div>
|
|
|
</li>
|
|
|
<% } else {%>
|
|
|
- <li class="list-group-item" data-auditorId="<%- item.audit_id %>">
|
|
|
- <i class="fa fa-chevron-circle-down"></i> <%- item.name %>
|
|
|
- <small class="text-muted"><%- item.role %></small>
|
|
|
- <span class="pull-right"><%= ctx.helper.transFormToChinese(idx) %>审</span>
|
|
|
+ <li class="list-group-item d-flex justify-content-between align-items-center">
|
|
|
+ <span class="mr-1"><i class="fa fa-chevron-circle-down"></i></span>
|
|
|
+ <span class="text-muted">
|
|
|
+ <% for (const u of item) { %>
|
|
|
+ <small class="d-inline-block text-dark mx-1" title="<%- u.role %>" data-auditorId="<%- u.audit_id %>"><%- u.name %></small>
|
|
|
+ <% } %>
|
|
|
+ </span>
|
|
|
+ <div class="d-flex ml-auto">
|
|
|
+ <% if (item[0].audit_type !== auditType.key.common) { %>
|
|
|
+ <span class="badge badge-pill badge-<%- auditType.info[item[0].audit_type].class %> p-1"><small><%- auditType.info[item[0].audit_type].short %></small></span>
|
|
|
+ <% } %>
|
|
|
+ <span class="badge badge-light badge-pill"><small><%= ctx.helper.transFormToChinese(idx) %>审</small></span>
|
|
|
+ </div>
|
|
|
</li>
|
|
|
<% } %>
|
|
|
<% }) %>
|
|
|
</ul>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="col-8 modal-height-500" style="overflow: auto">
|
|
|
- <% auditHistory.forEach((auditors, idx) => { %>
|
|
|
- <!-- 展开/收起历史流程 -->
|
|
|
- <% if(idx === auditHistory.length - 1 && auditHistory.length !== 1) { %>
|
|
|
- <div class="text-right">
|
|
|
- <a href="javascript: void(0);" id="fold-btn" data-target="show">展开历史审批流程</a>
|
|
|
- </div>
|
|
|
+ <div class="col-8 modal-height-500 scroll-y">
|
|
|
+ <% revise.auditHistory.forEach((his, idx) => { %>
|
|
|
+ <!-- 展开/收起历史流程 -->
|
|
|
+ <% if(idx === revise.auditHistory.length - 1 && revise.auditHistory.length !== 1) { %>
|
|
|
+ <div class="text-right">
|
|
|
+ <a href="javascript: void(0);" id="fold-btn" data-target="show">展开历史审批流程</a>
|
|
|
+ </div>
|
|
|
<% } %>
|
|
|
- <div class="<%- idx < auditHistory.length - 1 ? 'fold-card' : '' %>">
|
|
|
+ <div class="<%- idx < revise.auditHistory.length - 1 ? 'fold-card' : '' %>">
|
|
|
<div class="text-center text-muted"><%- idx+1 %>#</div>
|
|
|
- <ul class="timeline-list list-unstyled mt-2">
|
|
|
- <% auditors.forEach((auditor, index) => { %>
|
|
|
+ <ul class="timeline-list list-unstyled mt-2 <% if (idx === revise.auditHistory.length - 1) { %>last-auditor-list<% } %>">
|
|
|
+ <% his.forEach((group, index) => { %>
|
|
|
<% if (index === 0) { %>
|
|
|
<li class="timeline-list-item pb-2">
|
|
|
<div class="timeline-item-date">
|
|
|
- <%- ctx.helper.formatDate(auditor.begin_time) %>
|
|
|
+ <%- group.beginYear %>
|
|
|
+ <span><%- group.beginDate %></span>
|
|
|
+ <span><%- group.beginTime %></span>
|
|
|
</div>
|
|
|
<div class="timeline-item-tail"></div>
|
|
|
- <div class="timeline-item-icon bg-success text-light">
|
|
|
- <i class="fa fa-caret-down"></i>
|
|
|
- </div>
|
|
|
+ <div class="timeline-item-icon bg-success text-light"><i class="fa fa-caret-down"></i></div>
|
|
|
<div class="timeline-item-content">
|
|
|
- <div class="card">
|
|
|
- <div class="card-body p-3">
|
|
|
- <div class="card-text">
|
|
|
- <p class="mb-1"><span
|
|
|
- class="h5"><%- user.name %></span><span
|
|
|
- class="pull-right text-success"><%- idx !== 0 ? '重新' : '' %>上报审批</span>
|
|
|
- </p>
|
|
|
- <p class="text-muted mb-0"><%- user.role %></p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <div class="py-1">
|
|
|
+ <span class="text-black-50">原报</span>
|
|
|
+ <span class="pull-right text-success"><%- idx !== 0 ? '重新' : '' %>上报审批</span>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </li>
|
|
|
- <li class="timeline-list-item pb-2">
|
|
|
- <div class="timeline-item-date">
|
|
|
- <%- ctx.helper.formatDate(auditor.end_time) %>
|
|
|
- </div>
|
|
|
- <% if(index < auditors.length - 1) { %>
|
|
|
- <div class="timeline-item-tail"></div>
|
|
|
- <% } %>
|
|
|
- <% if(auditor.status === auditConst.status.checked) { %>
|
|
|
- <div class="timeline-item-icon bg-success text-light">
|
|
|
- <i class="fa fa-check"></i>
|
|
|
- </div>
|
|
|
- <% } else if(auditor.status === auditConst.status.checkNo || auditor.status === auditConst.status.checkNoPre) {%>
|
|
|
- <div class="timeline-item-icon bg-warning text-light">
|
|
|
- <i class="fa fa-level-up"></i>
|
|
|
- </div>
|
|
|
- <% } else if(auditor.status === auditConst.status.checking) { %>
|
|
|
- <div class="timeline-item-icon bg-warning text-light">
|
|
|
- <i class="fa fa-ellipsis-h"></i>
|
|
|
- </div>
|
|
|
- <% } else {%>
|
|
|
- <div class="timeline-item-icon bg-secondary text-light">
|
|
|
- </div>
|
|
|
- <% } %>
|
|
|
- <div class="timeline-item-content">
|
|
|
<div class="card">
|
|
|
- <div class="card-body p-3">
|
|
|
- <div class="card-text">
|
|
|
- <p class="mb-1"><span class="h5"><%- auditor.name %></span><span
|
|
|
- class="pull-right <%- auditConst.statusClass[auditor.status] %>"><%- auditConst.statusString[auditor.status] %></span>
|
|
|
- </p>
|
|
|
- <p class="text-muted mb-0"><%- auditor.role %></p>
|
|
|
+ <div class="card-body px-3 py-0">
|
|
|
+ <div class="card-text p-2 py-3 row">
|
|
|
+ <div class="col">
|
|
|
+ <span class="h6"><%- revise.user.name %></span>
|
|
|
+ <span class="text-muted ml-1"><%- revise.user.role %></span>
|
|
|
+ </div>
|
|
|
+ <div class="col">
|
|
|
+ <span class="pull-right text-success"><i class="fa fa-check-circle"></i></span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
- <!--审批意见-->
|
|
|
- <% if (auditor.opinion) { %>
|
|
|
- <div class="card-body p-3 border-top">
|
|
|
- <p style="margin: 0;"><%- auditor.opinion %></p>
|
|
|
- </div>
|
|
|
- <% } %>
|
|
|
</div>
|
|
|
</div>
|
|
|
</li>
|
|
|
- <% } else {%>
|
|
|
- <li class="timeline-list-item pb-2">
|
|
|
+ <% } %>
|
|
|
+ <li class="timeline-list-item pb-2 <% if (group.status === auditConst.status.uncheck && idx === revise.auditHistory.length - 1 && revise.auditHistory.length !== 1) { %>is_uncheck<% } %>">
|
|
|
+ <% if (group.endYear) { %>
|
|
|
<div class="timeline-item-date">
|
|
|
- <%- ctx.helper.formatDate(auditor.end_time) %>
|
|
|
+ <%- group.endYear %>
|
|
|
+ <span><%- group.endDate %></span>
|
|
|
+ <span><%- group.endTime %></span>
|
|
|
</div>
|
|
|
- <% if(index < auditors.length - 1) { %>
|
|
|
+ <% } %>
|
|
|
+ <% if (index < his.length - 1) { %>
|
|
|
<div class="timeline-item-tail"></div>
|
|
|
<% } %>
|
|
|
- <% if(auditor.status === auditConst.status.checked) { %>
|
|
|
- <div class="timeline-item-icon bg-success text-light">
|
|
|
- <i class="fa fa-check"></i>
|
|
|
- </div>
|
|
|
- <% } else if(auditor.status === auditConst.status.checkNo || auditor.status === auditConst.status.checkNoPre) {%>
|
|
|
- <div class="timeline-item-icon bg-warning text-light">
|
|
|
- <i class="fa fa-level-up"></i>
|
|
|
- </div>
|
|
|
- <% } else if(auditor.status === auditConst.status.checking) { %>
|
|
|
- <div class="timeline-item-icon bg-warning text-light">
|
|
|
- <i class="fa fa-ellipsis-h"></i>
|
|
|
- </div>
|
|
|
+ <% if (group.status === auditConst.status.checked) { %>
|
|
|
+ <div class="timeline-item-icon bg-success text-light"><i class="fa fa-check"></i></div>
|
|
|
+ <% } else if (group.status === auditConst.status.checkNo || group.status === auditConst.status.checkNoPre || group.status === auditConst.status.checkCancel) { %>
|
|
|
+ <div class="timeline-item-icon bg-warning text-light"><i class="fa fa-level-up"></i></div>
|
|
|
+ <% } else if (group.status === auditConst.status.checking) { %>
|
|
|
+ <div class="timeline-item-icon bg-warning text-light"><i class="fa fa-ellipsis-h"></i></div>
|
|
|
<% } else { %>
|
|
|
- <div class="timeline-item-icon bg-secondary text-light">
|
|
|
- </div>
|
|
|
+ <div class="timeline-item-icon bg-secondary text-light"></div>
|
|
|
<% } %>
|
|
|
<div class="timeline-item-content">
|
|
|
+ <div class="py-1">
|
|
|
+ <span class="text-black-50">
|
|
|
+ <%- (!group.is_final ? group.audit_order : '终') %>审
|
|
|
+ <% if (group.audit_type !== auditType.key.common) { %><span class="text-<%- auditType.info[group.audit_type].class %> "><%- auditType.info[group.audit_type].long %></span><% } %>
|
|
|
+ </span>
|
|
|
+ <% if (group.status !== auditConst.status.uncheck) { %>
|
|
|
+ <span class="pull-right <%- auditConst.statusClass[group.status] %>"><%- auditConst.statusString[group.status] %></span>
|
|
|
+ <% } %>
|
|
|
+ </div>
|
|
|
<div class="card">
|
|
|
- <div class="card-body p-3">
|
|
|
- <div class="card-text">
|
|
|
- <p class="mb-1"><span class="h5"><%- auditor.name %></span>
|
|
|
- <span
|
|
|
- class="pull-right
|
|
|
- <%- auditConst.statusClass[auditor.status] %>"><%- auditor.status !== auditConst.status.uncheck ? auditConst.statusString[auditor.status] : ''%>
|
|
|
- <%- auditor.status === auditConst.status.checkNo ? user.name : '' %>
|
|
|
- <%- auditor.status === auditConst.status.checkNoPre ? auditors[index-1].name : '' %>
|
|
|
- </span>
|
|
|
- </p>
|
|
|
- <p class="text-muted mb-0"><%- auditor.role %></p>
|
|
|
+ <div class="card-body px-3 py-0">
|
|
|
+ <% for (const [i, auditor] of group.auditors.entries()) { %>
|
|
|
+ <div class="card-text p-2 py-3 row <%- ( i > 0 ? 'border-top' : '') %>">
|
|
|
+ <div class="col">
|
|
|
+ <span class="h6"><%- auditor.name %></span>
|
|
|
+ <span class="text-muted ml-1"><%- auditor.role %></span>
|
|
|
+ </div>
|
|
|
+ <div class="col">
|
|
|
+ <% if (auditor.status === auditConst.status.checked) { %>
|
|
|
+ <span class="pull-right text-success"><i class="fa fa-check-circle"></i></span>
|
|
|
+ <% } else if (auditor.status === auditConst.status.checkNo || auditor.status === auditConst.status.checkNoPre || auditor.status === auditConst.status.checkCancel) { %>
|
|
|
+ <span class="pull-right text-warning"><i class="fa fa-share-square fa-rotate-270"></i></span>
|
|
|
+ <% } %>
|
|
|
+ </div>
|
|
|
+ <% if (auditor.opinion) { %>
|
|
|
+ <div class="col-12 py-1 bg-light"><i class="fa fa-commenting-o mr-1"></i><%- auditor.opinion%></div>
|
|
|
+ <% } %>
|
|
|
</div>
|
|
|
+ <% } %>
|
|
|
</div>
|
|
|
- <!--审批意见-->
|
|
|
- <% if (auditor.opinion) { %>
|
|
|
- <div class="card-body p-3 border-top">
|
|
|
- <p style="margin: 0;"><%- auditor.opinion %></p>
|
|
|
- </div>
|
|
|
- <% } %>
|
|
|
</div>
|
|
|
</div>
|
|
|
</li>
|
|
|
- <% } %>
|
|
|
<% }) %>
|
|
|
</ul>
|
|
|
</div>
|
|
|
-
|
|
|
<% }) %>
|
|
|
</div>
|
|
|
</div>
|