index.pug 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. div(class="admin")
  2. header(class="admin__header")
  3. div(class="admin__header-content")
  4. div(class="admin__header-top")
  5. h1(class="admin__header-title") Панель администратора
  6. button(
  7. @click="toggleMobileMenu"
  8. class="admin__mobile-menu-btn"
  9. v-if="showMobileMenuButton"
  10. )
  11. svg(v-if="!mobileMenuOpen" fill="none" stroke="currentColor" viewBox="0 0 24 24" class="w-6 h-6")
  12. path(stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16")
  13. svg(v-else fill="none" stroke="currentColor" viewBox="0 0 24 24" class="w-6 h-6")
  14. path(stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12")
  15. div(class="admin__domain-info") Текущий домен: {{ currentDomain }}
  16. //- Mobile menu (positioned above header)
  17. div(
  18. v-if="mobileMenuOpen"
  19. @click="toggleMobileMenu"
  20. class="admin__sidebar-overlay"
  21. )
  22. div(
  23. :class="getSidebarClass()"
  24. class="admin__sidebar"
  25. )
  26. div(class="admin__sidebar-header")
  27. h3(class="admin__sidebar-title") Меню
  28. button(
  29. @click="toggleMobileMenu"
  30. class="admin__sidebar-close"
  31. )
  32. svg(fill="none" stroke="currentColor" viewBox="0 0 24 24" class="w-6 h-6")
  33. path(stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12")
  34. nav(class="admin__nav")
  35. a(
  36. v-for="item in menuItems"
  37. :key="item.id"
  38. :href="item.path"
  39. @click.prevent="navigateTo(item.path)"
  40. :class="getMenuItemClass(item)"
  41. )
  42. div(class="admin__nav-item-content")
  43. component(:is="item.icon" class="admin__nav-icon")
  44. span(class="admin__nav-text") {{ item.name }}
  45. div(class="admin__body")
  46. //- Main content
  47. main(class="admin__main")
  48. router-view