base.html 4.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. {% load static %}
  2. <!DOCTYPE html>
  3. <html lang="zh-CN">
  4. <head>
  5. <meta charset="UTF-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>{% block title %}希姆计算资产管理{% endblock %}</title>
  8. <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
  9. <link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.0/font/bootstrap-icons.css" rel="stylesheet">
  10. <link href="{% static 'css/style.css' %}" rel="stylesheet">
  11. {% block extra_css %}{% endblock %}
  12. </head>
  13. <body>
  14. {% if user.is_authenticated %}
  15. <nav class="navbar navbar-expand-lg navbar-dark bg-navy">
  16. <div class="container-fluid">
  17. <a class="navbar-brand d-flex align-items-center" href="{% url 'dashboard' %}">
  18. <i class="bi bi-hdd-rack me-2"></i>
  19. <strong>希姆计算资产管理</strong>
  20. </a>
  21. <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
  22. <span class="navbar-toggler-icon"></span>
  23. </button>
  24. <div class="collapse navbar-collapse" id="navbarNav">
  25. <ul class="navbar-nav me-auto">
  26. <li class="nav-item">
  27. <a class="nav-link {% if request.resolver_match.url_name == 'dashboard' %}active{% endif %}" href="{% url 'dashboard' %}">
  28. <i class="bi bi-speedometer2 me-1"></i>仪表盘
  29. </a>
  30. </li>
  31. <li class="nav-item">
  32. <a class="nav-link {% if 'assets' in request.path and 'import' not in request.path %}active{% endif %}" href="{% url 'asset_list' %}">
  33. <i class="bi bi-list-ul me-1"></i>资产列表
  34. </a>
  35. </li>
  36. <li class="nav-item">
  37. <a class="nav-link {% if request.resolver_match.url_name == 'category_list' %}active{% endif %}" href="{% url 'category_list' %}">
  38. <i class="bi bi-tags me-1"></i>分类管理
  39. </a>
  40. </li>
  41. <li class="nav-item">
  42. <a class="nav-link {% if request.resolver_match.url_name == 'change_log_list' %}active{% endif %}" href="{% url 'change_log_list' %}">
  43. <i class="bi bi-clock-history me-1"></i>变更记录
  44. </a>
  45. </li>
  46. <li class="nav-item dropdown">
  47. <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown">
  48. <i class="bi bi-file-earmark-spreadsheet me-1"></i>导入导出
  49. </a>
  50. <ul class="dropdown-menu dropdown-menu-dark">
  51. <li><a class="dropdown-item" href="{% url 'asset_import' %}"><i class="bi bi-upload me-2"></i>导入Excel</a></li>
  52. <li><a class="dropdown-item" href="{% url 'asset_export' %}"><i class="bi bi-download me-2"></i>导出Excel</a></li>
  53. <li><hr class="dropdown-divider"></li>
  54. <li><a class="dropdown-item" href="{% url 'download_template' %}"><i class="bi bi-file-earmark-arrow-down me-2"></i>下载模板</a></li>
  55. </ul>
  56. </li>
  57. </ul>
  58. <div class="d-flex align-items-center">
  59. <span class="text-light me-3">
  60. <i class="bi bi-person-circle me-1"></i>{{ user.username }}
  61. </span>
  62. <a href="{% url 'logout' %}" class="btn btn-outline-light btn-sm">
  63. <i class="bi bi-box-arrow-right me-1"></i>退出
  64. </a>
  65. </div>
  66. </div>
  67. </div>
  68. </nav>
  69. {% endif %}
  70. {% if messages %}
  71. <div class="container-fluid mt-3 px-4">
  72. {% for message in messages %}
  73. <div class="alert alert-{{ message.tags }} alert-dismissible fade show" role="alert">
  74. {{ message }}
  75. <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
  76. </div>
  77. {% endfor %}
  78. </div>
  79. {% endif %}
  80. <main class="container-fluid p-4">
  81. {% block content %}{% endblock %}
  82. </main>
  83. <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
  84. {% block extra_js %}{% endblock %}
  85. </body>
  86. </html>