_MainHeader.cshtml 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. @using Abp.Configuration
  2. @using WeApp.Configuration
  3. @using WeApp.Helpers
  4. @{
  5. }
  6. <style>
  7. .main-header .nav-item > .nav-link, .main-header .nav-item > .nav-link > .fas {
  8. font-size: 1rem;
  9. }
  10. </style>
  11. <!-- Navbar -->
  12. <nav class="main-header navbar navbar-expand navbar-white navbar-light">
  13. <!-- Left navbar links -->
  14. <ul class="navbar-nav">
  15. <li class="nav-item">
  16. <a id="PushMenuBar" class="nav-link" data-widget="pushmenu" href="/" onclick="PushmenuExtra(this)"><i class="fas fa-bars"></i></a>
  17. </li>
  18. <li class="nav-item d-none d-sm-inline-block">
  19. <a href="@(ApplicationPath)" class="nav-link">@(L("Home"))</a>
  20. </li>
  21. </ul>
  22. <!-- Right navbar links -->
  23. <ul class="navbar-nav ml-auto">
  24. <!-- Notifications Dropdown Menu -->
  25. <li class="nav-item dropdown" id="header_notification_bar">
  26. <a class="nav-link" data-toggle="dropdown" href="#">
  27. <i class="fas fa-bell text-warning"></i>
  28. <span class="badge badge-iwb navbar-badge" style="top: 4px;font-weight: 600"></span>
  29. </a>
  30. <div class="dropdown-menu dropdown-menu-lg dropdown-menu-right">
  31. </div>
  32. </li>
  33. @Html.Action("UserMenu", "Layout")
  34. @if (ShowLang())
  35. {
  36. @Html.Action("LanguageChange", "Layout")
  37. }
  38. <li class="nav-item">
  39. <a class="nav-link" data-widget="control-sidebar" data-slide="true" href="#">
  40. <i class="fas fa-th-large"></i>
  41. </a>
  42. </li>
  43. </ul>
  44. </nav>
  45. <!-- /.navbar -->
  46. @using (Html.BeginScripts())
  47. {
  48. <!-- Navbar -->
  49. <script>
  50. function PushmenuExtra(that) {
  51. if ($(that).hasClass("iwb-collapse")) {
  52. $(that).removeClass("iwb-collapse");
  53. } else {
  54. $(that).addClass("iwb-collapse");
  55. }
  56. }
  57. $(function () {
  58. //监听 #PushMenuBar 的class变化
  59. var mutationObserver = new MutationObserver(function (m, o) {
  60. console.log(m, o);
  61. $('.iwb-bootstrap-table').fadeOut(200);
  62. setTimeout(function () {
  63. $('table').each(function () {
  64. if ($(this).data('iwb.table')) {
  65. $(this).iwbTable('resetView');
  66. $('.iwb-bootstrap-table').fadeIn();
  67. }
  68. });
  69. },
  70. 300);
  71. });
  72. mutationObserver.observe($('#PushMenuBar')[0], { attributes: true, attributeFilter: ['class'], attributeOldValue: true });
  73. });
  74. </script>
  75. <script id="headerNotificationBarTemplate" type="x-tmpl-mustache">
  76. <a class="nav-link" data-toggle="dropdown" href="#">
  77. <i class="fas fa-bell text-warning"></i>
  78. {{#unreadCount}}
  79. <span class="badge badge-iwb navbar-badge" style="top: 4px;font-weight: 600"> {{unreadCount}}</span>
  80. {{/unreadCount}}
  81. </a>
  82. <div class="dropdown-menu notification-menu dropdown-menu-right">
  83. {{#notifications.length}}
  84. <span class="dropdown-header">{{unreadCount}} @L("NewNotifications")</span>
  85. <div class="dropdown-divider"></div>
  86. {{/notifications.length}}
  87. {{#notifications}}
  88. <a class="dropdown-item notification-item {{#url}}notification-url{{/url}} {{#isUnread}}user-notification-item-unread{{/isUnread}}" data-url="{{url}}">
  89. <div class="item-icon">
  90. <i class="{{icon}}"></i>
  91. </div>
  92. <div class="item-title">{{text}}</div>
  93. <div class="item-time text-i">{{timeAgo}}</div>
  94. <div class="item-state set-read">
  95. {{#isUnread}}
  96. <span data-notification-id="{{userNotificationId}}" class="no-read">@L("NoRead")</span>
  97. {{/isUnread}}
  98. {{^isUnread}}
  99. <span class="has-read">@L("HasRead")</span>
  100. {{/isUnread}}
  101. </div>
  102. </a>
  103. {{/notifications}}
  104. {{^notifications.length}}
  105. <span class="notification-empty-text p-3">
  106. @L("ThereIsNoNotification")
  107. </span>
  108. {{/notifications.length}}
  109. {{#notifications.length}}
  110. <div class="dropdown-divider"></div>
  111. <div class="row m-2">
  112. {{#unreadCount}}
  113. <div class="text-center col-6">
  114. <a href="" id="SetAllNotificationsAsRead">@L("SetAllAsRead")</a>
  115. </div>
  116. {{/unreadCount}}
  117. <div class="text-center col-6">
  118. <div class="text-center"><a href="@Url.Action("Notification", "BaseSystem")">@L("SeeAllNotifications")</a></div>
  119. </div>
  120. </div>
  121. {{/notifications.length}}
  122. </div>
  123. </script>
  124. <!-- /.navbar -->
  125. }