162 lines
8.1 KiB
HTML
162 lines
8.1 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>{% block title %}太白购物商城{% endblock %}</title>
|
||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
|
||
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.8.1/font/bootstrap-icons.css" rel="stylesheet">
|
||
<link href="{{ url_for('static', filename='css/base.css') }}" rel="stylesheet">
|
||
{% block styles %}{% endblock %}
|
||
</head>
|
||
<body>
|
||
<!-- 导航栏 -->
|
||
<nav class="navbar navbar-expand-lg navbar-light bg-light">
|
||
<div class="container">
|
||
<a class="navbar-brand" href="{{ url_for('main.index') }}">
|
||
<i class="bi bi-shop"></i> 太白购物商城
|
||
</a>
|
||
|
||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
|
||
<span class="navbar-toggler-icon"></span>
|
||
</button>
|
||
|
||
<div class="collapse navbar-collapse" id="navbarNav">
|
||
<ul class="navbar-nav me-auto">
|
||
<li class="nav-item">
|
||
<a class="nav-link" href="{{ url_for('main.index') }}">首页</a>
|
||
</li>
|
||
<li class="nav-item">
|
||
<a class="nav-link" href="{{ url_for('main.product_list') }}">全部商品</a>
|
||
</li>
|
||
<li class="nav-item dropdown">
|
||
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdownCategory" role="button" data-bs-toggle="dropdown">
|
||
商品分类
|
||
</a>
|
||
<ul class="dropdown-menu">
|
||
<li><a class="dropdown-item" href="{{ url_for('main.product_list') }}">全部分类</a></li>
|
||
<li><hr class="dropdown-divider"></li>
|
||
<li><a class="dropdown-item" href="{{ url_for('main.product_list', category_id=1) }}">手机数码</a></li>
|
||
<li><a class="dropdown-item" href="{{ url_for('main.product_list', category_id=2) }}">电脑办公</a></li>
|
||
<li><a class="dropdown-item" href="{{ url_for('main.product_list', category_id=3) }}">家居家装</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
<!-- 搜索框 -->
|
||
<form class="d-flex me-3 search-form" method="GET" action="{{ url_for('main.product_list') }}">
|
||
<input class="form-control me-2" type="search" name="search" placeholder="搜索商品..." style="min-width: 200px;">
|
||
<button class="btn btn-outline-primary" type="submit">
|
||
<i class="bi bi-search"></i>
|
||
</button>
|
||
</form>
|
||
|
||
<ul class="navbar-nav">
|
||
{% if session.user_id %}
|
||
<li class="nav-item">
|
||
<a class="nav-link position-relative" href="{{ url_for('cart.index') }}" title="购物车">
|
||
<i class="bi bi-cart"></i> 购物车
|
||
<span class="badge bg-danger cart-badge" id="cartBadge" style="display: none;">0</span>
|
||
</a>
|
||
</li>
|
||
<li class="nav-item dropdown">
|
||
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown">
|
||
<i class="bi bi-person-circle"></i> {{ session.nickname or session.username }}
|
||
</a>
|
||
<ul class="dropdown-menu">
|
||
<li><a class="dropdown-item" href="{{ url_for('user.profile') }}">个人中心</a></li>
|
||
<li><a class="dropdown-item" href="{{ url_for('user.orders') }}">我的订单</a></li>
|
||
<li><a class="dropdown-item" href="#">我的收藏</a></li>
|
||
<li><hr class="dropdown-divider"></li>
|
||
<li><a class="dropdown-item" href="{{ url_for('auth.logout') }}">退出登录</a></li>
|
||
</ul>
|
||
</li>
|
||
{% else %}
|
||
<li class="nav-item">
|
||
<a class="nav-link" href="{{ url_for('auth.login') }}">登录</a>
|
||
</li>
|
||
<li class="nav-item">
|
||
<a class="nav-link" href="{{ url_for('auth.register') }}">注册</a>
|
||
</li>
|
||
{% endif %}
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
|
||
<!-- 消息提示 -->
|
||
{% with messages = get_flashed_messages(with_categories=true) %}
|
||
{% if messages %}
|
||
<div class="container mt-3">
|
||
{% for category, message in messages %}
|
||
<div class="alert alert-{{ 'danger' if category == 'error' else category }} alert-dismissible fade show" role="alert">
|
||
{{ message }}
|
||
<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
|
||
</div>
|
||
{% endfor %}
|
||
</div>
|
||
{% endif %}
|
||
{% endwith %}
|
||
|
||
<!-- 主要内容 -->
|
||
<main class="container mt-4">
|
||
{% block content %}{% endblock %}
|
||
</main>
|
||
|
||
<!-- 页脚 -->
|
||
<footer class="footer mt-auto">
|
||
<div class="container">
|
||
<div class="row">
|
||
<div class="col-md-6">
|
||
<h5>太白购物商城</h5>
|
||
<p class="text-muted">您的购物首选平台</p>
|
||
<div class="mb-3">
|
||
<a href="#" class="text-muted me-3"><i class="bi bi-telephone"></i> 客服热线:400-888-8888</a>
|
||
<a href="#" class="text-muted"><i class="bi bi-envelope"></i> service@taibai.com</a>
|
||
</div>
|
||
</div>
|
||
<div class="col-md-3">
|
||
<h6>快捷导航</h6>
|
||
<ul class="list-unstyled">
|
||
<li><a href="{{ url_for('main.index') }}" class="text-muted">首页</a></li>
|
||
<li><a href="{{ url_for('main.product_list') }}" class="text-muted">全部商品</a></li>
|
||
<li><a href="#" class="text-muted">关于我们</a></li>
|
||
<li><a href="#" class="text-muted">联系我们</a></li>
|
||
</ul>
|
||
</div>
|
||
<div class="col-md-3">
|
||
<h6>客户服务</h6>
|
||
<ul class="list-unstyled">
|
||
<li><a href="#" class="text-muted">帮助中心</a></li>
|
||
<li><a href="#" class="text-muted">售后服务</a></li>
|
||
<li><a href="#" class="text-muted">配送说明</a></li>
|
||
<li><a href="#" class="text-muted">退换货政策</a></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="row">
|
||
<div class="col-md-6">
|
||
<p class="text-muted small mb-0">
|
||
<i class="bi bi-shield-check"></i>
|
||
正品保证 | 7天无理由退换 | 全国包邮
|
||
</p>
|
||
</div>
|
||
<div class="col-md-6 text-md-end">
|
||
<p class="text-muted small mb-0">© 2025 太白购物商城. All rights reserved.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
<!-- 返回顶部按钮 -->
|
||
<button type="button" class="btn btn-primary position-fixed bottom-0 end-0 m-3" id="backToTop" onclick="scrollToTop()">
|
||
<i class="bi bi-arrow-up"></i>
|
||
</button>
|
||
|
||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
|
||
<script src="{{ url_for('static', filename='js/base.js') }}"></script>
|
||
{% block scripts %}{% endblock %}
|
||
</body>
|
||
</html>
|