menu.ejs 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <div class="main-nav d-flex align-items-start flex-column">
  2. <div class="logo w-100 logo-parent">
  3. <img class="w-50" style="padding: 5px" src="/public/css/logo.png">
  4. <span class="text-white logo-project-name"><% if (ctx.subProject) { %> <%- ctx.subProject.name %><% } else { %> <span data-toggle="tooltip" data-placement="right" title="" data-original-title="<%- ctx.session.sessionProject.name %>"><%- ctx.session.sessionProject.name %></span><% } %></span>
  5. <% if (ctx.subProject) { %>
  6. <span class="poj-info btn-warning" data-toggle="tooltip" data-placement="right" title="" data-original-title="<%- ctx.subProject.name %>"><i class="fa fa-cube te"></i></span>
  7. <% } %>
  8. </div>
  9. <div class="nav-top">
  10. <ul class="nav nav-pills nav-stacked bg-nav">
  11. <% if (maintainData.status !== maintainConst.status.notset && new Date().getTime() + (60*60*1000) > parseFloat(maintainData.maintain_time)) { %>
  12. <!--系统维护信息-->
  13. <li class="bg-danger">
  14. <a class="text-white maintain-icon"><i class="fa fa-wrench "></i><div class="d-inline-block" style="vertical-align: text-bottom;"> 系统维护</div>
  15. <span class="bg-danger maintain-info">系统将于 <%- ctx.helper.dateTran(parseFloat(maintainData.maintain_time)) %> 开始停机维护<%- (maintainData.duration !== maintainConst.duration.forever ? ',持续'+ maintainConst.durationString[maintainData.duration] +'。' : '') %></span></a></li>
  16. <!--系统维护信息 end-->
  17. <% } %>
  18. <% for (const index in ctx.menuList) { %>
  19. <% const menu = ctx.menuList[index]; %>
  20. <% if (!menu.display) { continue } %>
  21. <% if (menu.children && menu.children.length > 0) { %>
  22. <li>
  23. <a href="javascript:void(0);" id="<%- 'nav_' + index%>" class="nav-up-down">
  24. <i class="fa <%- menu.icon %>"></i>
  25. <% if (menu.caption) { %><span class="d-inline-block" style="vertical-align: text-bottom;"><%- menu.caption %></span><% } %>
  26. <i class="fa fa-angle-down d-inline-block child-up-down"></i>
  27. </a>
  28. </li>
  29. <% for (const child of menu.children) { %>
  30. <li data-index="<%- 'nav_' + index %>" class="child-bg <% if((ctx.controllerName === child.controller && (!child.notIncludedUrl || !child.notIncludedUrl.some(item => ctx.url.includes(item)))) || (!!child.controllers && child.controllers.indexOf(ctx.controllerName) >= 0 && (!child.includedUrl || !child.includedUrl[ctx.controllerName] || child.includedUrl[ctx.controllerName].some(item => ctx.url.includes(item)))) || (child.url && child.url === ctx.url)) { %>active<% } %>">
  31. <a href="<%- child.url %>" data-toggle="tooltip" data-placement="right" title="" data-original-title="<%- child.name %>">
  32. <i></i>
  33. <% if (child.caption) { %><span class="d-inline-block" style="vertical-align: text-bottom;"><%- child.caption %></span><% } %>
  34. </a>
  35. </li>
  36. <% } %>
  37. <% } else { %>
  38. <li <% if((ctx.controllerName === menu.controller && (!menu.notIncludedUrl || !menu.notIncludedUrl.some(item => ctx.url.includes(item)))) || (!!menu.controllers && menu.controllers.indexOf(ctx.controllerName) >= 0 && (!menu.includedUrl || !menu.includedUrl[ctx.controllerName] || menu.includedUrl[ctx.controllerName].some(item => ctx.url.includes(item)))) || (menu.url && menu.url === ctx.url)) { %>class="active"<% } %>>
  39. <a href="<%- menu.url %>" id="<%- 'nav_' + index%>" data-toggle="tooltip" data-placement="right" title="" data-original-title="<%- menu.name %>">
  40. <i class="fa <%- menu.icon %>"></i>
  41. <% if (menu.caption) { %><span class="d-inline-block" style="vertical-align: text-bottom;"><%- menu.caption %></span><% } %>
  42. </a>
  43. </li>
  44. <% } %>
  45. <% } %>
  46. </ul>
  47. </div>
  48. <div class="nav-bottom mt-auto">
  49. <ul class="nav nav-pills nav-stacked bg-nav">
  50. <li><a href="https://doc.zhzdwd.com/docs/yunjiliangAPI/yunjiliangAPI-1ccjk7h426enp" target="_blank" data-toggle="tooltip" data-placement="right" title="" data-original-title="数据接口" class="d-inline-block">API</a></li>
  51. </ul>
  52. <ul class="nav nav-pills nav-stacked bg-nav">
  53. <% if (ctx.isProjectController) { %>
  54. <li <% if (ctx.controllerName === 'setting') { %>class="active"<% } %>><a href="/setting/info" data-toggle="tooltip" data-placement="right" title="" data-original-title="平台设置"><i class="fa fa-cogs"></i><span class="d-inline-block" style="vertical-align: text-bottom;">平台设置</span></a></li>
  55. <% } else if (ctx.session.sessionUser.is_admin) { %>
  56. <li <% if (ctx.controllerName === 'setting') { %>class="active"<% } %>><a href="/sp/<%- ctx.subProject.id %>/setting/category" data-toggle="tooltip" data-placement="right" title="" data-original-title="项目设置"><i class="fa fa-cogs"></i><span class="d-inline-block" style="vertical-align: text-bottom;"> 项目设置</span></a></li>
  57. <% } %>
  58. </ul>
  59. <div class="dropup mb-1 ml-1 mr-1 d-inline-block text-center" style="width: 100px;">
  60. <a href="" class="btn btn-sm btn-light p-1" style="width: 70px;" data-toggle="dropdown" aria-haspopup="false" aria-expanded="false">
  61. <%- ctx.session.sessionUser.name.substr(ctx.session.sessionUser.name.length > 6 ? ctx.session.sessionUser.name.length - 6 : 0) %>
  62. </a>
  63. <div class="dropdown-menu">
  64. <a href="/profile/info" class="dropdown-item">账号资料</a>
  65. <a href="/profile/safe" class="dropdown-item">账号安全</a>
  66. <div class="dropdown-divider"></div>
  67. <a href="https://doc.zhzdwd.com/docs/measure" target="_blank" class="dropdown-item">用户手册</a>
  68. <a href="/logout" class="dropdown-item">退出登录</a>
  69. </div>
  70. </div>
  71. </div>
  72. </div>