BS结构用户界面设计相关代码

首页:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>校园二手拍卖网站</title>
    <link rel="stylesheet" href="css/style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head>
<body>
    <!-- 页面加载动画 -->
    <div class="page-loader">
        <div class="loader-spinner"></div>
        <p>加载中...</p>
    </div>
    <!-- 导航栏 -->
    <nav class="navbar">
        <div class="container">
            <div class="logo">
                <i class="fas fa-university"></i>
                <span>校园二手拍卖</span>
            </div>
            <div class="search-box">
                <input type="text" placeholder="搜索商品...">
                <button><i class="fas fa-search"></i></button>
            </div>
            <ul class="nav-links">
                <li><a href="index.html" class="active">首页</a></li>
                <li><a href="pages/product-list.html">商品分类</a></li>
                <li><a href="pages/post-product.html">发布商品</a></li>
                <li><a href="pages/login.html"><i class="fas fa-user"></i> 登录</a></li>
                <li><a href="pages/register.html"><i class="fas fa-user-plus"></i> 注册</a></li>
            </ul>
        </div>
    </nav>

    <!-- 轮播图 -->
    <section class="carousel">
        <div class="carousel-inner">
            <div class="carousel-item active">
                <img src="images/生成图片 (8).png" alt="Banner 1">
                <div class="carousel-caption">
                    <h2>绿色循环,智慧生活</h2>
                    <p>让你的旧物遇见新主</p>
                </div>
            </div>
            <div class="carousel-item">
                <img src="images/生成图片 (9).png" alt="Banner 2">
                <div class="carousel-caption">
                    <h2>校园二手,物尽其用</h2>
                    <p>低价淘好物,环保又实惠</p>
                </div>
            </div>
            <div class="carousel-item">
                <img src="images/生成图片.png" alt="Banner 3">
                <div class="carousel-caption">
                    <h2>拍卖竞价,公平透明</h2>
                    <p>买到心仪商品,卖出理想价格</p>
                </div>
            </div>
        </div>
        <div class="carousel-indicators">
            <span class="indicator active"></span>
            <span class="indicator"></span>
            <span class="indicator"></span>
        </div>
        <button class="carousel-control carousel-control-prev"><i class="fas fa-chevron-left"></i></button>
        <button class="carousel-control carousel-control-next"><i class="fas fa-chevron-right"></i></button>
    </section>

    <!-- 商品分类 -->
    <section class="categories">
        <div class="container">
            <h2>商品分类</h2>
            <div class="category-grid">
                <div class="category-item">
                    <i class="fas fa-book"></i>
                    <span>图书教材</span>
                </div>
                <div class="category-item">
                    <i class="fas fa-laptop"></i>
                    <span>数码产品</span>
                </div>
                <div class="category-item">
                    <i class="fas fa-tshirt"></i>
                    <span>服饰鞋包</span>
                </div>
                <div class="category-item">
                    <i class="fas fa-home"></i>
                    <span>家居用品</span>
                </div>
                <div class="category-item">
                    <i class="fas fa-bicycle"></i>
                    <span>交通工具</span>
                </div>
                <div class="category-item">
                    <i class="fas fa-football-ball"></i>
                    <span>运动器材</span>
                </div>
                <div class="category-item">
                    <i class="fas fa-music"></i>
                    <span>乐器设备</span>
                </div>
                <div class="category-item">
                    <i class="fas fa-graduation-cap"></i>
                    <span>其他物品</span>
                </div>
            </div>
        </div>
    </section>

    <!-- 推荐商品 -->
    <section class="products">
        <div class="container">
            <div class="section-header">
                <h2>推荐商品</h2>
                <a href="pages/product-list.html" class="view-more">查看更多 <i class="fas fa-arrow-right"></i></a>
            </div>
            <div class="product-grid"></div>
        </div>
    </section>

    <!-- 最新上架 -->
    <section class="products">
        <div class="container">
            <div class="section-header">
                <h2>最新上架</h2>
                <a href="pages/product-list.html" class="view-more">查看更多 <i class="fas fa-arrow-right"></i></a>
            </div>
            <div class="product-grid"></div>
        </div>
    </section>

    <!-- 页脚 -->
    <footer class="footer">
        <div class="container">
            <div class="footer-content">
                <div class="footer-section about">
                    <div class="logo">
                        <i class="fas fa-university"></i>
                        <span>校园二手拍卖</span>
                    </div>
                    <p>为校园师生提供安全、便捷的二手商品拍卖平台,促进资源循环利用,打造绿色校园生活。</p>
                    <div class="social-links">
                        <a href="#"><i class="fab fa-weixin"></i></a>
                        <a href="#"><i class="fab fa-weibo"></i></a>
                        <a href="#"><i class="fab fa-qq"></i></a>
                    </div>
                </div>

                <div class="footer-section links">
                    <h3>快速链接</h3>
                    <ul>
                        <li><a href="#">关于我们</a></li>
                        <li><a href="#">使用帮助</a></li>
                        <li><a href="#">联系我们</a></li>
                        <li><a href="#">隐私政策</a></li>
                        <li><a href="#">用户协议</a></li>
                    </ul>
                </div>

                <div class="footer-section contact">
                    <h3>联系方式</h3>
                    <ul>
                        <li><i class="fas fa-map-marker-alt"></i> 北京市海淀区中关村大街59号</li>
                        <li><i class="fas fa-phone"></i> 010-12345678</li>
                        <li><i class="fas fa-envelope"></i> contact@campusauction.com</li>
                    </ul>
                </div>
            </div>
            <div class="footer-bottom">
                <p>&copy; 2023 校园二手拍卖网站. 保留所有权利.</p>
            </div>
        </div>
    </footer>

    <script src="js/main.js"></script>
</body>
</html>

user-center.html

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>个人中心 - 校园二手拍卖网站</title>
    <link rel="stylesheet" href="../css/style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head>
<body>
    <!-- 导航栏 -->
    <nav class="navbar">
        <div class="container">
            <div class="logo">
                <i class="fas fa-university"></i>
                <span>校园二手拍卖</span>
            </div>
            <div class="search-box">
                <input type="text" placeholder="搜索商品...">
                <button><i class="fas fa-search"></i></button>
            </div>
            <ul class="nav-links">
                <li><a href="../index.html">首页</a></li>
                <li><a href="product-list.html">商品分类</a></li>
                <li><a href="post-product.html">发布商品</a></li>
                <!-- 用户下拉菜单将通过JavaScript动态生成 -->
            </ul>
        </div>
    </nav>

    <!-- 个人中心页面内容 -->
    <section class="user-center">
        <div class="container">
            <div class="user-center-content">
                <!-- 左侧导航 -->
                <aside class="user-sidebar">
                    <div class="user-profile">
                        <div class="user-avatar">
                            <img src="../images/头像1.png" alt="用户头像">
                        </div>
                        <div class="user-info">
                            <h3></h3>
                            <p class="student-id">学号:</p>
                            <div class="user-rating">
                                <!-- 评分将通过JavaScript动态生成 -->
                                <span></span>
                            </div>
                        </div>
                    </div>

                    <nav class="user-nav">
                        <ul>
                            <li><a href="user-center.html" class="active">
                                <i class="fas fa-home"></i>
                                个人中心
                            </a></li>
                            <li><a href="my-products.html">
                                <i class="fas fa-store"></i>
                                我的在售
                            </a></li>
                            <li><a href="my-orders.html">
                                <i class="fas fa-shopping-cart"></i>
                                我的订单
                            </a></li>
                            <li><a href="my-messages.html">
                                <i class="fas fa-envelope"></i>
                                我的消息
                                <span class="badge">3</span>
                            </a></li>
                            <li><a href="#">
                                <i class="fas fa-heart"></i>
                                我的收藏
                            </a></li>
                            <li><a href="settings.html">
                                <i class="fas fa-cog"></i>
                                设置
                            </a></li>
                        </ul>
                    </nav>
                </aside>

                <!-- 右侧内容 -->
                <main class="user-main">
                    <div class="user-center-header">
                        <h2>个人中心</h2>
                        <p>欢迎回来,!</p>
                    </div>

                    <div class="user-stats">
                        <div class="stat-item">
                            <div class="stat-number"></div>
                            <div class="stat-label">在售商品</div>
                        </div>
                        <div class="stat-item">
                            <div class="stat-number"></div>
                            <div class="stat-label">已售商品</div>
                        </div>
                        <div class="stat-item">
                            <div class="stat-number"></div>
                            <div class="stat-label">已购商品</div>
                        </div>
                        <div class="stat-item">
                            <div class="stat-number"></div>
                            <div class="stat-label">交易成功</div>
                        </div>
                    </div>

                    <div class="user-activity">
                        <div class="section-header">
                            <h3>最近活动</h3>
                            <a href="#" class="view-more">查看全部</a>
                        </div>

                        <div class="activity-list">
                            <!-- 最近活动将通过JavaScript动态生成 -->
                        </div>
                    </div>

                    <div class="user-products">
                        <div class="section-header">
                            <h3>我的在售商品</h3>
                            <a href="my-products.html" class="view-more">查看全部</a>
                        </div>

                        <div class="product-grid">
                            <!-- 我的在售商品将通过JavaScript动态生成 -->
                        </div>
                    </div>
                </main>
            </div>
        </div>
    </section>

    <!-- 页脚 -->
    <footer class="footer">
        <div class="container">
            <div class="footer-content">
                <div class="footer-section about">
                    <div class="logo">
                        <i class="fas fa-university"></i>
                        <span>校园二手拍卖</span>
                    </div>
                    <p>为校园师生提供安全、便捷的二手商品拍卖平台,促进资源循环利用,打造绿色校园生活。</p>
                    <div class="social-links">
                        <a href="#"><i class="fab fa-weixin"></i></a>
                        <a href="#"><i class="fab fa-weibo"></i></a>
                        <a href="#"><i class="fab fa-qq"></i></a>
                    </div>
                </div>

                <div class="footer-section links">
                    <h3>快速链接</h3>
                    <ul>
                        <li><a href="#">关于我们</a></li>
                        <li><a href="#">使用帮助</a></li>
                        <li><a href="#">联系我们</a></li>
                        <li><a href="#">隐私政策</a></li>
                        <li><a href="#">用户协议</a></li>
                    </ul>
                </div>

                <div class="footer-section contact">
                    <h3>联系方式</h3>
                    <ul>
                        <li><i class="fas fa-map-marker-alt"></i> 北京市海淀区中关村大街59号</li>
                        <li><i class="fas fa-phone"></i> 010-12345678</li>
                        <li><i class="fas fa-envelope"></i> contact@campusauction.com</li>
                    </ul>
                </div>
            </div>
            <div class="footer-bottom">
                <p>&copy; 2023 校园二手拍卖网站. 保留所有权利.</p>
            </div>
        </div>
    </footer>

    <script src="../js/main.js"></script>
</body>
</html>

settings.html

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>设置 - 校园二手拍卖网站</title>
    <link rel="stylesheet" href="../css/style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head>
<body>
    <!-- 导航栏 -->
    <nav class="navbar">
        <div class="container">
            <div class="logo">
                <i class="fas fa-university"></i>
                <span>校园二手拍卖</span>
            </div>
            <div class="search-box">
                <input type="text" placeholder="搜索商品...">
                <button><i class="fas fa-search"></i></button>
            </div>
            <ul class="nav-links">
                <li><a href="../index.html">首页</a></li>
                <li><a href="product-list.html">商品分类</a></li>
                <li><a href="post-product.html">发布商品</a></li>
                <li class="dropdown">
                    <a href="#">
                        <img src="../images/头像1.png" alt="用户头像" class="user-avatar">
                        <span>用户</span>
                        <i class="fas fa-chevron-down"></i>
                    </a>
                    <div class="dropdown-menu">
                        <a href="user-center.html">个人中心</a>
                        <a href="my-products.html">我的在售</a>
                        <a href="my-orders.html">我的订单</a>
                        <a href="settings.html">设置</a>
                        <a href="#" id="logout-link">退出登录</a>
                    </div>
                </li>
            </ul>
        </div>
    </nav>

    <!-- 设置页面内容 -->
    <section class="user-center">
        <div class="container">
            <div class="user-center-content">
                <!-- 左侧导航 -->
                <aside class="user-sidebar">
                    <div class="user-profile">
                        <div class="user-avatar">
                            <img src="../images/头像1.png" alt="用户头像">
                        </div>
                        <div class="user-info">
                            <h3></h3>
                            <p class="student-id">学号:</p>
                            <div class="user-rating">
                                <span></span>
                            </div>
                        </div>
                    </div>

                    <nav class="user-nav">
                        <ul>
                            <li><a href="user-center.html">
                                <i class="fas fa-home"></i>
                                个人中心
                            </a></li>
                            <li><a href="my-products.html">
                                <i class="fas fa-store"></i>
                                我的在售
                            </a></li>
                            <li><a href="my-orders.html">
                                <i class="fas fa-shopping-cart"></i>
                                我的订单
                            </a></li>
                            <li><a href="settings.html" class="active">
                                <i class="fas fa-cog"></i>
                                设置
                            </a></li>
                        </ul>
                    </nav>
                </aside>

                <!-- 右侧内容 -->
                <main class="user-main">
                    <div class="user-center-header">
                        <h2>账户设置</h2>
                        <p>管理您的账户信息和偏好设置</p>
                    </div>

                    <!-- 设置表单 -->
                    <div class="settings-content">
                        <!-- 基本信息 -->
                        <div class="settings-section">
                            <h3>
                                <i class="fas fa-user"></i>
                                基本信息
                            </h3>
                            <form class="settings-form" id="profile-form">
                                <div class="form-group">
                                    <label>头像</label>
                                    <div class="avatar-upload">
                                        <div class="avatar-preview">
                                            <img id="avatar-preview" src="../images/头像1.png" alt="头像预览">
                                        </div>
                                        <div class="upload-controls">
                                            <input type="file" id="avatar-input" accept="image/*" style="display: none;">
                                            <button type="button" class="btn btn-outline" onclick="document.getElementById('avatar-input').click()">
                                                <i class="fas fa-upload"></i> 上传头像
                                            </button>
                                            <p class="upload-hint">支持 JPG、PNG 格式,大小不超过 2MB</p>
                                        </div>
                                    </div>
                                </div>

                                <div class="form-group">
                                    <label for="username">用户名</label>
                                    <input type="text" id="username" placeholder="请输入用户名">
                                </div>

                                <div class="form-group">
                                    <label for="student-id">学号</label>
                                    <input type="text" id="student-id" placeholder="请输入学号">
                                </div>

                                <div class="form-group">
                                    <label for="email">邮箱</label>
                                    <input type="email" id="email" placeholder="请输入邮箱">
                                </div>

                                <div class="form-group">
                                    <label for="phone">手机号</label>
                                    <input type="tel" id="phone" placeholder="请输入手机号">
                                </div>

                                <div class="form-actions">
                                    <button type="submit" class="btn btn-primary">保存修改</button>
                                </div>
                            </form>
                        </div>

                        <!-- 密码修改 -->
                        <div class="settings-section">
                            <h3>
                                <i class="fas fa-lock"></i>
                                修改密码
                            </h3>
                            <form class="settings-form" id="password-form">
                                <div class="form-group">
                                    <label for="old-password">当前密码</label>
                                    <input type="password" id="old-password" placeholder="请输入当前密码">
                                </div>

                                <div class="form-group">
                                    <label for="new-password">新密码</label>
                                    <input type="password" id="new-password" placeholder="请输入新密码(至少6位)">
                                </div>

                                <div class="form-group">
                                    <label for="confirm-password">确认新密码</label>
                                    <input type="password" id="confirm-password" placeholder="请再次输入新密码">
                                </div>

                                <div class="form-actions">
                                    <button type="submit" class="btn btn-primary">修改密码</button>
                                </div>
                            </form>
                        </div>

                        <!-- 通知设置 -->
                        <div class="settings-section">
                            <h3>
                                <i class="fas fa-bell"></i>
                                通知设置
                            </h3>
                            <div class="settings-form">
                                <div class="form-group">
                                    <label class="switch-label">
                                        <span class="switch-text">邮件通知</span>
                                        <input type="checkbox" id="email-notification" checked>
                                        <span class="switch-slider"></span>
                                    </label>
                                    <p class="form-hint">接收订单、出价等邮件通知</p>
                                </div>

                                <div class="form-group">
                                    <label class="switch-label">
                                        <span class="switch-text">短信通知</span>
                                        <input type="checkbox" id="sms-notification">
                                        <span class="switch-slider"></span>
                                    </label>
                                    <p class="form-hint">接收重要信息的短信通知</p>
                                </div>

                                <div class="form-group">
                                    <label class="switch-label">
                                        <span class="switch-text">出价提醒</span>
                                        <input type="checkbox" id="bid-notification" checked>
                                        <span class="switch-slider"></span>
                                    </label>
                                    <p class="form-hint">当您的商品收到新出价时提醒</p>
                                </div>

                                <div class="form-actions">
                                    <button type="button" class="btn btn-primary" id="save-notifications">保存设置</button>
                                </div>
                            </div>
                        </div>

                        <!-- 隐私设置 -->
                        <div class="settings-section">
                            <h3>
                                <i class="fas fa-shield-alt"></i>
                                隐私设置
                            </h3>
                            <div class="settings-form">
                                <div class="form-group">
                                    <label class="switch-label">
                                        <span class="switch-text">显示手机号</span>
                                        <input type="checkbox" id="show-phone" checked>
                                        <span class="switch-slider"></span>
                                    </label>
                                    <p class="form-hint">其他用户可以看到您的手机号</p>
                                </div>

                                <div class="form-group">
                                    <label class="switch-label">
                                        <span class="switch-text">显示邮箱</span>
                                        <input type="checkbox" id="show-email">
                                        <span class="switch-slider"></span>
                                    </label>
                                    <p class="form-hint">其他用户可以看到您的邮箱</p>
                                </div>

                                <div class="form-actions">
                                    <button type="button" class="btn btn-primary" id="save-privacy">保存设置</button>
                                </div>
                            </div>
                        </div>
                    </div>
                </main>
            </div>
        </div>
    </section>

    <!-- 页脚 -->
    <footer class="footer">
        <div class="container">
            <div class="footer-content">
                <div class="footer-section about">
                    <div class="logo">
                        <i class="fas fa-university"></i>
                        <span>校园二手拍卖</span>
                    </div>
                    <p>为校园师生提供安全、便捷的二手商品拍卖平台,促进资源循环利用,打造绿色校园生活。</p>
                    <div class="social-links">
                        <a href="#"><i class="fab fa-weixin"></i></a>
                        <a href="#"><i class="fab fa-weibo"></i></a>
                        <a href="#"><i class="fab fa-qq"></i></a>
                    </div>
                </div>

                <div class="footer-section links">
                    <h3>快速链接</h3>
                    <ul>
                        <li><a href="#">关于我们</a></li>
                        <li><a href="#">使用帮助</a></li>
                        <li><a href="#">联系我们</a></li>
                        <li><a href="#">隐私政策</a></li>
                        <li><a href="#">用户协议</a></li>
                    </ul>
                </div>

                <div class="footer-section contact">
                    <h3>联系方式</h3>
                    <ul>
                        <li><i class="fas fa-map-marker-alt"></i> 北京市海淀区中关村大街59号</li>
                        <li><i class="fas fa-phone"></i> 010-12345678</li>
                        <li><i class="fas fa-envelope"></i> contact@campusauction.com</li>
                    </ul>
                </div>
            </div>
            <div class="footer-bottom">
                <p>&copy; 2023 校园二手拍卖网站. 保留所有权利.</p>
            </div>
        </div>
    </footer>

    <script src="../js/main.js"></script>
</body>
</html>


seller-shop.html

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>卖家店铺 - 校园二手拍卖网站</title>
    <link rel="stylesheet" href="../css/style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head>
<body>
    <!-- 导航栏 -->
    <nav class="navbar">
        <div class="container">
            <div class="logo">
                <i class="fas fa-university"></i>
                <span>校园二手拍卖</span>
            </div>
            <div class="search-box">
                <input type="text" placeholder="搜索商品...">
                <button><i class="fas fa-search"></i></button>
            </div>
            <ul class="nav-links">
                <li><a href="../index.html">首页</a></li>
                <li><a href="product-list.html">商品分类</a></li>
                <li><a href="post-product.html">发布商品</a></li>
                <li><a href="login.html"><i class="fas fa-user"></i> 登录</a></li>
                <li><a href="register.html"><i class="fas fa-user-plus"></i> 注册</a></li>
            </ul>
        </div>
    </nav>

    <!-- 卖家店铺页面内容 -->
    <section class="seller-shop-page">
        <div class="container">
            <div class="breadcrumb">
                <a href="../index.html">首页</a> &gt;
                <span id="seller-shop-name">卖家店铺</span>
            </div>

            <!-- 卖家信息卡片 -->
            <div class="seller-shop-header">
                <div class="seller-shop-info">
                    <div class="seller-shop-avatar">
                        <img id="seller-shop-avatar-img" src="" alt="卖家头像">
                    </div>
                    <div class="seller-shop-details">
                        <h1 id="seller-shop-title">卖家店铺</h1>
                        <div class="seller-shop-meta">
                            <div class="seller-rating-info">
                                <div class="stars" id="seller-shop-stars">
                                    <i class="fas fa-star"></i>
                                    <i class="fas fa-star"></i>
                                    <i class="fas fa-star"></i>
                                    <i class="fas fa-star"></i>
                                    <i class="fas fa-star-half-alt"></i>
                                </div>
                                <span id="seller-shop-rating">4.5</span>
                                <span class="divider">|</span>
                                <span id="seller-shop-transactions">128笔交易</span>
                            </div>
                            <div class="seller-shop-stats">
                                <div class="stat-item">
                                    <span class="stat-number" id="seller-products-count">0</span>
                                    <span class="stat-label">在售商品</span>
                                </div>
                                <div class="stat-item">
                                    <span class="stat-number" id="seller-sold-count">0</span>
                                    <span class="stat-label">已售商品</span>
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="seller-shop-actions">
                        <button class="btn btn-primary" id="contact-seller-shop-btn">
                            <i class="fas fa-comments"></i> 联系卖家
                        </button>
                    </div>
                </div>
            </div>

            <!-- 商品列表 -->
            <div class="seller-products-section">
                <div class="section-header">
                    <h2>卖家商品</h2>
                    <div class="sort-options">
                        <span>排序:</span>
                        <select id="seller-products-sort">
                            <option value="newest">最新上架</option>
                            <option value="price-asc">价格从低到高</option>
                            <option value="price-desc">价格从高到低</option>
                            <option value="popular">最受欢迎</option>
                        </select>
                    </div>
                </div>
                <div class="product-grid" id="seller-products-grid">
                    <!-- 商品将通过JavaScript动态渲染 -->
                </div>
                <div id="seller-products-empty" class="empty-state" style="display: none;">
                    <i class="fas fa-box-open"></i>
                    <p>该卖家暂无在售商品</p>
                </div>
            </div>
        </div>
    </section>

    <!-- 页脚 -->
    <footer class="footer">
        <div class="container">
            <div class="footer-content">
                <div class="footer-section about">
                    <div class="logo">
                        <i class="fas fa-university"></i>
                        <span>校园二手拍卖</span>
                    </div>
                    <p>为校园师生提供安全、便捷的二手商品拍卖平台,促进资源循环利用,打造绿色校园生活。</p>
                    <div class="social-links">
                        <a href="#"><i class="fab fa-weixin"></i></a>
                        <a href="#"><i class="fab fa-weibo"></i></a>
                        <a href="#"><i class="fab fa-qq"></i></a>
                    </div>
                </div>

                <div class="footer-section links">
                    <h3>快速链接</h3>
                    <ul>
                        <li><a href="#">关于我们</a></li>
                        <li><a href="#">使用帮助</a></li>
                        <li><a href="#">联系我们</a></li>
                        <li><a href="#">隐私政策</a></li>
                        <li><a href="#">用户协议</a></li>
                    </ul>
                </div>

                <div class="footer-section contact">
                    <h3>联系方式</h3>
                    <ul>
                        <li><i class="fas fa-map-marker-alt"></i> 北京市海淀区中关村大街59号</li>
                        <li><i class="fas fa-phone"></i> 010-12345678</li>
                        <li><i class="fas fa-envelope"></i> contact@campusauction.com</li>
                    </ul>
                </div>
            </div>
            <div class="footer-bottom">
                <p>&copy; 2023 校园二手拍卖网站. 保留所有权利.</p>
            </div>
        </div>
    </footer>

    <script src="../js/main.js"></script>
</body>
</html>


register.html

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>注册 - 校园二手拍卖网站</title>
    <link rel="stylesheet" href="../css/style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head>
<body>
    <!-- 导航栏 -->
    <nav class="navbar">
        <div class="container">
            <div class="logo">
                <i class="fas fa-university"></i>
                <span>校园二手拍卖</span>
            </div>
            <div class="search-box">
                <input type="text" placeholder="搜索商品...">
                <button><i class="fas fa-search"></i></button>
            </div>
            <ul class="nav-links">
                <li><a href="../index.html">首页</a></li>
                <li><a href="product-list.html">商品分类</a></li>
                <li><a href="post-product.html">发布商品</a></li>
                <li><a href="login.html"><i class="fas fa-user"></i> 登录</a></li>
                <li><a href="register.html" class="active"><i class="fas fa-user-plus"></i> 注册</a></li>
            </ul>
        </div>
    </nav>

    <!-- 注册页面内容 -->
    <section class="register-page">
        <div class="register-container">
            <div class="register-header">
                <h1>用户注册</h1>
                <p>加入校园二手拍卖网站,开启绿色循环生活</p>
            </div>

            <form class="register-form">
                <div class="form-group">
                    <label for="username">
                        <i class="fas fa-user"></i>
                        用户名
                    </label>
                    <input type="text" id="username" placeholder="请输入用户名(3-20个字符)" required>
                </div>

                <div class="form-group">
                    <label for="student-id">
                        <i class="fas fa-id-card"></i>
                        学号(选填)
                    </label>
                    <input type="text" id="student-id" placeholder="请输入学号">
                </div>

                <div class="form-group">
                    <label for="email">
                        <i class="fas fa-envelope"></i>
                        邮箱
                    </label>
                    <input type="email" id="email" placeholder="请输入邮箱地址" required>
                </div>

                <div class="form-group">
                    <label for="password">
                        <i class="fas fa-lock"></i>
                        密码
                    </label>
                    <input type="password" id="password" placeholder="请输入密码(至少6位)" required minlength="6">
                </div>

                <div class="form-group">
                    <label for="confirm-password">
                        <i class="fas fa-lock"></i>
                        确认密码
                    </label>
                    <input type="password" id="confirm-password" placeholder="请再次输入密码" required>
                </div>

                <div class="form-group">
                    <label for="verification-code">
                        <i class="fas fa-shield-alt"></i>
                        验证码
                    </label>
                    <div class="verification-code">
                        <input type="text" id="verification-code" placeholder="请输入验证码" required>
                        <button type="button" class="btn btn-outline">获取验证码</button>
                    </div>
                </div>

                <div class="form-group">
                    <label class="terms">
                        <input type="checkbox" required>
                        <span>我已阅读并同意 <a href="#">《用户协议》</a> 和 <a href="#">《隐私政策》</a></span>
                    </label>
                </div>

                <button type="submit" class="btn btn-primary btn-block">
                    <i class="fas fa-user-plus"></i>
                    注册
                </button>
            </form>

            <div class="register-divider">
                <span>或使用以下方式注册</span>
            </div>

            <div class="social-register">
                <button type="button" class="btn btn-outline btn-block">
                    <i class="fas fa-university"></i>
                    校园统一认证
                </button>
                <button type="button" class="btn btn-outline btn-block">
                    <i class="fab fa-weixin"></i>
                    微信注册
                </button>
                <button type="button" class="btn btn-outline btn-block">
                    <i class="fab fa-qq"></i>
                    QQ注册
                </button>
            </div>

            <div class="register-footer">
                <p>已有账号? <a href="login.html">立即登录</a></p>
            </div>
        </div>
    </section>

    <!-- 页脚 -->
    <footer class="footer">
        <div class="container">
            <div class="footer-content">
                <div class="footer-section about">
                    <div class="logo">
                        <i class="fas fa-university"></i>
                        <span>校园二手拍卖</span>
                    </div>
                    <p>为校园师生提供安全、便捷的二手商品拍卖平台,促进资源循环利用,打造绿色校园生活。</p>
                    <div class="social-links">
                        <a href="#"><i class="fab fa-weixin"></i></a>
                        <a href="#"><i class="fab fa-weibo"></i></a>
                        <a href="#"><i class="fab fa-qq"></i></a>
                    </div>
                </div>

                <div class="footer-section links">
                    <h3>快速链接</h3>
                    <ul>
                        <li><a href="#">关于我们</a></li>
                        <li><a href="#">使用帮助</a></li>
                        <li><a href="#">联系我们</a></li>
                        <li><a href="#">隐私政策</a></li>
                        <li><a href="#">用户协议</a></li>
                    </ul>
                </div>

                <div class="footer-section contact">
                    <h3>联系方式</h3>
                    <ul>
                        <li><i class="fas fa-map-marker-alt"></i> 北京市海淀区中关村大街59号</li>
                        <li><i class="fas fa-phone"></i> 010-12345678</li>
                        <li><i class="fas fa-envelope"></i> contact@campusauction.com</li>
                    </ul>
                </div>
            </div>
            <div class="footer-bottom">
                <p>&copy; 2023 校园二手拍卖网站. 保留所有权利.</p>
            </div>
        </div>
    </footer>

    <script src="../js/main.js"></script>
</body>
</html>

product-list.html

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>商品列表 - 校园二手拍卖网站</title>
    <link rel="stylesheet" href="../css/style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head>
<body>
    <!-- 导航栏 -->
    <nav class="navbar">
        <div class="container">
            <div class="logo">
                <i class="fas fa-university"></i>
                <span>校园二手拍卖</span>
            </div>
            <div class="search-box">
                <input type="text" placeholder="搜索商品...">
                <button><i class="fas fa-search"></i></button>
            </div>
            <ul class="nav-links">
                <li><a href="../index.html">首页</a></li>
                <li><a href="product-list.html" class="active">商品分类</a></li>
                <li><a href="post-product.html">发布商品</a></li>
                <li><a href="login.html"><i class="fas fa-user"></i> 登录</a></li>
                <li><a href="register.html"><i class="fas fa-user-plus"></i> 注册</a></li>
            </ul>
        </div>
    </nav>

    <!-- 商品列表页内容 -->
    <section class="product-list">
        <div class="container">
            <div class="page-header">
                <h1 id="page-title">商品分类</h1>
                <div class="breadcrumb" id="breadcrumb">
                    <a href="../index.html">首页</a> &gt; 商品分类
                </div>
            </div>

            <div class="product-list-container">
                <!-- 侧边栏筛选器 -->
                <aside class="sidebar">
                    <div class="filter-section">
                        <h3>商品分类</h3>
                        <ul class="category-filter">
                            <li><label><input type="checkbox" checked value="全部商品"> 全部商品</label></li>
                            <li><label><input type="checkbox" value="图书教材"> 图书教材</label></li>
                            <li><label><input type="checkbox" value="数码产品"> 数码产品</label></li>
                            <li><label><input type="checkbox" value="服饰鞋包"> 服饰鞋包</label></li>
                            <li><label><input type="checkbox" value="家居用品"> 家居用品</label></li>
                            <li><label><input type="checkbox" value="交通工具"> 交通工具</label></li>
                            <li><label><input type="checkbox" value="运动器材"> 运动器材</label></li>
                            <li><label><input type="checkbox" value="乐器设备"> 乐器设备</label></li>
                            <li><label><input type="checkbox" value="其他物品"> 其他物品</label></li>
                        </ul>
                    </div>

                    <div class="filter-section">
                        <h3>价格区间</h3>
                        <div class="price-filter">
                            <input type="number" id="price-min" placeholder="最低价">
                            <span>-</span>
                            <input type="number" id="price-max" placeholder="最高价">
                            <button class="apply-btn">确定</button>
                        </div>
                    </div>

                    <div class="filter-section">
                        <h3>商品状态</h3>
                        <ul class="status-filter">
                            <li><label><input type="checkbox" checked value="auction"> 拍卖中</label></li>
                            <li><label><input type="checkbox" checked value="buy-now"> 一口价</label></li>
                        </ul>
                    </div>

                    <div class="filter-section">
                        <h3>新旧程度</h3>
                        <ul class="condition-filter">
                            <li><label><input type="checkbox" value="new"> 全新</label></li>
                            <li><label><input type="checkbox" value="90"> 9成新</label></li>
                            <li><label><input type="checkbox" value="80"> 8成新</label></li>
                            <li><label><input type="checkbox" value="70"> 7成新</label></li>
                            <li><label><input type="checkbox" value="60"> 6成新及以下</label></li>
                        </ul>
                    </div>
                </aside>

                <!-- 商品列表 -->
                <main class="product-grid-container">
                    <div class="sort-options">
                        <span>排序:</span>
                        <select>
                            <option value="newest">最新上架</option>
                            <option value="price-asc">价格从低到高</option>
                            <option value="price-desc">价格从高到低</option>
                            <option value="popular">最受欢迎</option>
                            <option value="ending-soon">即将结束</option>
                        </select>
                    </div>

                    <div class="product-grid">
                        <!-- 商品将通过JavaScript动态渲染 -->
                    </div>

                    <!-- 分页 -->
                    <div class="pagination">
                        <a href="#" class="prev"><i class="fas fa-chevron-left"></i> 上一页</a>
                        <a href="#" class="active">1</a>
                        <a href="#">2</a>
                        <a href="#">3</a>
                        <a href="#">4</a>
                        <a href="#">5</a>
                        <a href="#" class="next">下一页 <i class="fas fa-chevron-right"></i></a>
                    </div>
                </main>
            </div>
        </div>
    </section>

    <!-- 页脚 -->
    <footer class="footer">
        <div class="container">
            <div class="footer-content">
                <div class="footer-section about">
                    <div class="logo">
                        <i class="fas fa-university"></i>
                        <span>校园二手拍卖</span>
                    </div>
                    <p>为校园师生提供安全、便捷的二手商品拍卖平台,促进资源循环利用,打造绿色校园生活。</p>
                    <div class="social-links">
                        <a href="#"><i class="fab fa-weixin"></i></a>
                        <a href="#"><i class="fab fa-weibo"></i></a>
                        <a href="#"><i class="fab fa-qq"></i></a>
                    </div>
                </div>

                <div class="footer-section links">
                    <h3>快速链接</h3>
                    <ul>
                        <li><a href="#">关于我们</a></li>
                        <li><a href="#">使用帮助</a></li>
                        <li><a href="#">联系我们</a></li>
                        <li><a href="#">隐私政策</a></li>
                        <li><a href="#">用户协议</a></li>
                    </ul>
                </div>

                <div class="footer-section contact">
                    <h3>联系方式</h3>
                    <ul>
                        <li><i class="fas fa-map-marker-alt"></i> 北京市海淀区中关村大街59号</li>
                        <li><i class="fas fa-phone"></i> 010-12345678</li>
                        <li><i class="fas fa-envelope"></i> contact@campusauction.com</li>
                    </ul>
                </div>
            </div>
            <div class="footer-bottom">
                <p>&copy; 2023 校园二手拍卖网站. 保留所有权利.</p>
            </div>
        </div>
    </footer>

    <script src="../js/main.js"></script>
</body>
</html>

product-details.html

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>商品详情 - 校园二手拍卖网站</title>
    <link rel="stylesheet" href="../css/style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head>
<body>
    <!-- 导航栏 -->
    <nav class="navbar">
        <div class="container">
            <div class="logo">
                <i class="fas fa-university"></i>
                <span>校园二手拍卖</span>
            </div>
            <div class="search-box">
                <input type="text" placeholder="搜索商品...">
                <button><i class="fas fa-search"></i></button>
            </div>
            <ul class="nav-links">
                <li><a href="../index.html">首页</a></li>
                <li><a href="product-list.html">商品分类</a></li>
                <li><a href="post-product.html">发布商品</a></li>
                <li><a href="login.html"><i class="fas fa-user"></i> 登录</a></li>
                <li><a href="register.html"><i class="fas fa-user-plus"></i> 注册</a></li>
            </ul>
        </div>
    </nav>

    <!-- 商品详情页内容 -->
    <section class="product-details">
        <div class="container">
            <div class="breadcrumb">
                <a href="../index.html">首页</a> &gt;
                <a href="product-list.html">数码产品</a> &gt;
                <span>MacBook Pro 2020款</span>
            </div>

            <div class="product-content">
                <!-- 商品图片画廊 -->
                <div class="product-gallery">

                    
                    <!-- 传统图片画廊 -->
                    <div class="gallery-container">
                        <div class="gallery-thumbnails">
                            <div class="thumbnail active">
                                <img src="../images/product1.jpg" alt="商品图片1">
                            </div>
                            <div class="thumbnail">
                                <img src="../images/product1-1.jpg" alt="商品图片2">
                            </div>
                            <div class="thumbnail">
                                <img src="../images/product1-2.jpg" alt="商品图片3">
                            </div>
                            <div class="thumbnail">
                                <img src="../images/product1-3.jpg" alt="商品图片4">
                            </div>
                        </div>
                        <div class="gallery-main">
                            <img src="../images/product1.jpg" alt="商品主图">
                        </div>
                    </div>
                </div>

                <!-- 商品信息和操作 -->
                <div class="product-info">
                    <h1 class="product-title"></h1>
                    <div class="product-meta">
                        <span class="auction-status">
                            <i class="fas fa-hourglass-half"></i>
                            <span></span>
                        </span>
                        <span class="condition">
                            <i class="fas fa-star"></i>
                            <span></span>
                        </span>
                    </div>

                    <div class="product-price-section">
                        <div class="price-info">
                            <div class="current-price">
                                <span class="label">当前价:</span>
                                <span class="price"></span>
                            </div>
                            <div class="original-price">
                                <span class="label">原价:</span>
                                <span class="price"></span>
                            </div>
                            <div class="bid-count">
                                <i class="fas fa-gavel"></i>
                                <span></span>
                            </div>
                        </div>

                        <div class="time-left">
                            <div class="label">距结束还有:</div>
                            <div class="countdown">
                                <!-- 倒计时将通过JavaScript动态生成 -->
                            </div>
                        </div>
                    </div>

                    <!-- 购买区域(一口价商品) -->
                    <div class="bid-section" id="buy-section" style="display: none;">
                        <div class="bid-buttons">
                            <button class="btn btn-primary" id="add-to-cart-btn">加入购物车</button>
                            <button class="btn btn-secondary" id="buy-now-btn">立即购买</button>
                        </div>
                    </div>
                    
                    <!-- 出价区域(拍卖商品) -->
                    <div class="bid-section" id="bid-section" style="display: none;">
                        <div class="bid-input">
                            <span class="label">我的出价:</span>
                            <div class="input-group">
                                <span class="currency">¥</span>
                                <input type="number" id="bid-amount" placeholder="输入出价金额" min="0" step="100">
                            </div>
                        </div>
                        <div class="bid-buttons">
                            <button class="btn btn-primary" id="submit-bid-btn">立即出价</button>
                            <button class="btn btn-secondary" id="set-reminder-btn">设置提醒</button>
                        </div>
                    </div>

                    <!-- 卖家信息 -->
                    <div class="seller-info">
                        <h3>卖家信息</h3>
                        <div class="seller-profile">
                            <div class="seller-avatar">
                                <img src="" alt="卖家头像">
                            </div>
                            <div class="seller-details">
                                <div class="seller-name"></div>
                                <div class="seller-rating">
                                    <div class="stars">
                                        <i class="fas fa-star"></i>
                                        <i class="fas fa-star"></i>
                                        <i class="fas fa-star"></i>
                                        <i class="fas fa-star"></i>
                                        <i class="fas fa-star-half-alt"></i>
                                    </div>
                                    <span class="rating"></span>
                                    <span class="transaction-count"></span>
                                </div>
                            </div>
                            <div class="seller-actions">
                                <button class="btn btn-outline" id="contact-seller-btn">
                                    <i class="fas fa-comments"></i> 联系卖家
                                </button>
                                <button class="btn btn-outline" id="view-shop-btn">
                                    <i class="fas fa-store"></i> 查看店铺
                                </button>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- 商品描述和评论 -->
            <div class="product-tabs">
                <div class="tabs">
                    <button class="tab-btn active" data-tab="description">商品描述</button>
                    <button class="tab-btn" data-tab="bids">出价记录</button>
                    <button class="tab-btn" data-tab="reviews">评论</button>
                </div>

                <div class="tab-content">
                    <!-- 商品描述 -->
                    <div id="description" class="tab-panel active">
                        <h3>商品描述</h3>
                        <div class="description-content">
                            <!-- 商品描述将通过JavaScript动态生成 -->
                        </div>
                    </div>

                    <!-- 出价记录 -->
                    <div id="bids" class="tab-panel">
                        <h3>出价记录</h3>
                        <div class="bid-history">
                            <table>
                                <thead>
                                    <tr>
                                        <th>出价人</th>
                                        <th>出价金额</th>
                                        <th>出价时间</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <!-- 出价记录将通过JavaScript动态生成 -->
                                </tbody>
                            </table>
                        </div>
                    </div>

                    <!-- 评论 -->
                    <div id="reviews" class="tab-panel">
                        <h3>买家评论</h3>
                        <div class="reviews-list">
                            <!-- 评论列表将通过JavaScript动态生成 -->
                        </div>

                        <!-- 添加评论 -->
                        <div class="add-review">
                            <h4>添加评论</h4>
                            <form>
                                <div class="form-group">
                                    <label>评分:</label>
                                    <div class="rating-input">
                                        <i class="fas fa-star"></i>
                                        <i class="fas fa-star"></i>
                                        <i class="fas fa-star"></i>
                                        <i class="fas fa-star"></i>
                                        <i class="far fa-star"></i>
                                    </div>
                        <input type="hidden" id="review-rating" value="0">
                                </div>
                                <div class="form-group">
                                    <label>评论内容:</label>
                                    <textarea rows="4" placeholder="请输入您的评论..."></textarea>
                                </div>
                                <button type="submit" class="btn btn-primary">提交评论</button>
                            </form>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- 页脚 -->
    <footer class="footer">
        <div class="container">
            <div class="footer-content">
                <div class="footer-section about">
                    <div class="logo">
                        <i class="fas fa-university"></i>
                        <span>校园二手拍卖</span>
                    </div>
                    <p>为校园师生提供安全、便捷的二手商品拍卖平台,促进资源循环利用,打造绿色校园生活。</p>
                    <div class="social-links">
                        <a href="#"><i class="fab fa-weixin"></i></a>
                        <a href="#"><i class="fab fa-weibo"></i></a>
                        <a href="#"><i class="fab fa-qq"></i></a>
                    </div>
                </div>

                <div class="footer-section links">
                    <h3>快速链接</h3>
                    <ul>
                        <li><a href="#">关于我们</a></li>
                        <li><a href="#">使用帮助</a></li>
                        <li><a href="#">联系我们</a></li>
                        <li><a href="#">隐私政策</a></li>
                        <li><a href="#">用户协议</a></li>
                    </ul>
                </div>

                <div class="footer-section contact">
                    <h3>联系方式</h3>
                    <ul>
                        <li><i class="fas fa-map-marker-alt"></i> 北京市海淀区中关村大街59号</li>
                        <li><i class="fas fa-phone"></i> 010-12345678</li>
                        <li><i class="fas fa-envelope"></i> contact@campusauction.com</li>
                    </ul>
                </div>
            </div>
            <div class="footer-bottom">
                <p>&copy; 2023 校园二手拍卖网站. 保留所有权利.</p>
            </div>
        </div>
    </footer>

    <!-- 联系卖家聊天窗口 -->
    <div id="chat-modal" class="chat-modal">
        <div class="chat-container">
            <div class="chat-header">
                <div class="chat-seller-info">
                    <img id="chat-seller-avatar" src="" alt="卖家头像">
                    <div>
                        <h4 id="chat-seller-name">卖家</h4>
                        <span class="chat-status">在线</span>
                    </div>
                </div>
                <button class="chat-close" id="close-chat-btn">
                    <i class="fas fa-times"></i>
                </button>
            </div>
            <div class="chat-messages" id="chat-messages">
                <!-- 消息将通过JavaScript动态生成 -->
            </div>
            <div class="chat-input-area">
                <div class="chat-input-wrapper">
                    <input type="text" id="chat-input" placeholder="输入消息..." maxlength="500">
                    <button id="send-message-btn" class="send-btn">
                        <i class="fas fa-paper-plane"></i>
                    </button>
                </div>
                <div class="quick-messages">
                    <button class="quick-msg-btn" data-msg="你好,请问这个商品还在吗?">你好,请问这个商品还在吗?</button>
                    <button class="quick-msg-btn" data-msg="可以便宜一点吗?">可以便宜一点吗?</button>
                    <button class="quick-msg-btn" data-msg="什么时候可以发货?">什么时候可以发货?</button>
                </div>
            </div>
        </div>
    </div>

    <script src="../js/main.js"></script>
</body>
</html>

post-product.html

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>发布商品 - 校园二手拍卖网站</title>
    <link rel="stylesheet" href="../css/style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head>
<body>
    <!-- 导航栏 -->
    <nav class="navbar">
        <div class="container">
            <div class="logo">
                <i class="fas fa-university"></i>
                <span>校园二手拍卖</span>
            </div>
            <div class="search-box">
                <input type="text" placeholder="搜索商品...">
                <button><i class="fas fa-search"></i></button>
            </div>
            <ul class="nav-links">
                <li><a href="../index.html">首页</a></li>
                <li><a href="product-list.html">商品分类</a></li>
                <li><a href="post-product.html" class="active">发布商品</a></li>
                <li class="dropdown">
                    <a href="#">
                        <img src="../images/头像1.png" alt="用户头像" class="user-avatar">
                        <span>用户</span>
                        <i class="fas fa-chevron-down"></i>
                    </a>
                    <div class="dropdown-menu">
                        <a href="user-center.html">个人中心</a>
                        <a href="my-products.html">我的在售</a>
                        <a href="my-orders.html">我的订单</a>
                        <a href="settings.html">设置</a>
                        <a href="#" id="logout-link">退出登录</a>
                    </div>
                </li>
            </ul>
        </div>
    </nav>

    <!-- 发布商品页面内容 -->
    <section class="post-product">
        <div class="container">
            <div class="post-product-header">
                <h2>发布商品</h2>
                <p>请填写以下信息来发布您的商品</p>
            </div>

            <form class="post-product-form">
                <!-- 商品图片上传 -->
                <div class="form-section">
                    <h3>商品图片</h3>
                    <div class="image-upload-section">
                        <div class="main-image-upload">
                            <div class="upload-box" id="main-image-preview">
                                <i class="fas fa-cloud-upload-alt"></i>
                                <p>点击上传主图</p>
                                <small>支持JPG、PNG格式,最大5MB</small>
                            </div>
                            <input type="file" id="main-image-input" accept="image/*" style="display: none;">
                        </div>
                        <div class="secondary-images-upload">
                            <div class="upload-box" data-index="0">
                                <i class="fas fa-cloud-upload-alt"></i>
                                <p>上传图片</p>
                            </div>
                            <div class="upload-box" data-index="1">
                                <i class="fas fa-cloud-upload-alt"></i>
                                <p>上传图片</p>
                            </div>
                            <div class="upload-box" data-index="2">
                                <i class="fas fa-cloud-upload-alt"></i>
                                <p>上传图片</p>
                            </div>
                            <div class="upload-box" data-index="3">
                                <i class="fas fa-cloud-upload-alt"></i>
                                <p>上传图片</p>
                            </div>
                        </div>
                    </div>
                    <input type="file" id="secondary-image-input" accept="image/*" style="display: none;">
                </div>

                <!-- 商品基本信息 -->
                <div class="form-section">
                    <h3>商品基本信息</h3>
                    <div class="form-row">
                        <div class="form-group">
                            <label for="product-title">商品标题 *</label>
                            <input type="text" id="product-title" name="product-title" placeholder="请输入商品标题" required>
                        </div>
                    </div>

                    <div class="form-row">
                        <div class="form-group">
                            <label for="product-category">商品分类 *</label>
                            <select id="product-category" name="product-category" required>
                                <option value="">请选择分类</option>
                                <option value="books">图书文具</option>
                                <option value="digital">数码产品</option>
                                <option value="clothing">服饰鞋包</option>
                                <option value="home">家居用品</option>
                                <option value="sports">运动户外</option>
                                <option value="others">其他</option>
                            </select>
                        </div>

                        <div class="form-group">
                            <label for="product-condition">新旧程度 *</label>
                            <select id="product-condition" name="product-condition" required>
                                <option value="">请选择新旧程度</option>
                                <option value="new">全新</option>
                                <option value="like-new">95成新</option>
                                <option value="good">9成新</option>
                                <option value="fair">8成新</option>
                                <option value="used">7成新及以下</option>
                            </select>
                        </div>
                    </div>

                    <div class="form-row">
                        <div class="form-group">
                            <label for="product-status">商品状态 *</label>
                            <select id="product-status" name="product-status" required>
                                <option value="">请选择商品状态</option>
                                <option value="auction">拍卖</option>
                                <option value="buy-it-now">一口价</option>
                            </select>
                        </div>

                        <div class="form-group">
                            <label for="product-campus">所在校区 *</label>
                            <select id="product-campus" name="product-campus" required>
                                <option value="">请选择校区</option>
                                <option value="main">主校区</option>
                                <option value="east">东校区</option>
                                <option value="west">西校区</option>
                                <option value="south">南校区</option>
                            </select>
                        </div>
                    </div>

                    <div class="form-group">
                        <label for="product-description">商品描述 *</label>
                        <textarea id="product-description" name="product-description" rows="6" placeholder="请详细描述商品信息,包括品牌、型号、使用情况、有无瑕疵等" required></textarea>
                    </div>
                </div>

                <!-- 商品价格设置 -->
                <div class="form-section">
                    <h3>价格设置</h3>
                    <div class="form-row">
                        <div class="form-group">
                            <label for="starting-price">起拍价 (元) *</label>
                            <input type="number" id="starting-price" name="starting-price" min="0" step="0.01" placeholder="0.00" required>
                        </div>

                        <div class="form-group">
                            <label for="buy-it-now-price">一口价 (元) (可选)</label>
                            <input type="number" id="buy-it-now-price" name="buy-it-now-price" min="0" step="0.01" placeholder="0.00">
                        </div>
                    </div>

                    <div class="form-row">
                        <div class="form-group">
                            <label for="bid-increment">加价幅度 (元) *</label>
                            <input type="number" id="bid-increment" name="bid-increment" min="0" step="0.01" placeholder="0.00" required>
                        </div>

                        <div class="form-group">
                            <label for="auction-duration">拍卖时长 *</label>
                            <select id="auction-duration" name="auction-duration" required>
                                <option value="">请选择拍卖时长</option>
                                <option value="1">1天</option>
                                <option value="3">3天</option>
                                <option value="7">7天</option>
                                <option value="14">14天</option>
                            </select>
                        </div>
                    </div>
                </div>

                <!-- 交易信息 -->
                <div class="form-section">
                    <h3>交易信息</h3>
                    <div class="form-group">
                        <label for="transaction-method">交易方式 *</label>
                        <div class="checkbox-group">
                            <label>
                                <input type="checkbox" name="transaction-method" value="pickup" checked>
                                <i class="fas fa-map-marker-alt"></i>
                                校园自提
                            </label>
                            <label>
                                <input type="checkbox" name="transaction-method" value="delivery">
                                <i class="fas fa-shipping-fast"></i>
                                校内配送
                            </label>
                        </div>
                    </div>

                    <div class="form-group" id="delivery-fee-group" style="display: none;">
                        <label for="delivery-fee">配送费 (元)</label>
                        <input type="number" id="delivery-fee" name="delivery-fee" min="0" step="0.01" placeholder="0.00">
                    </div>

                    <div class="form-group">
                        <label for="pickup-location">自提地点 *</label>
                        <input type="text" id="pickup-location" name="pickup-location" placeholder="请输入自提地点" required>
                    </div>
                </div>

                <!-- 提交按钮 -->
                <div class="form-actions">
                    <button type="button" class="btn btn-secondary">保存草稿</button>
                    <button type="submit" class="btn btn-primary">发布商品</button>
                </div>
            </form>
        </div>
    </section>

    <!-- 页脚 -->
    <footer class="footer">
        <div class="container">
            <div class="footer-content">
                <div class="footer-section about">
                    <div class="logo">
                        <i class="fas fa-university"></i>
                        <span>校园二手拍卖</span>
                    </div>
                    <p>为校园师生提供安全、便捷的二手商品拍卖平台,促进资源循环利用,打造绿色校园生活。</p>
                    <div class="social-links">
                        <a href="#"><i class="fab fa-weixin"></i></a>
                        <a href="#"><i class="fab fa-weibo"></i></a>
                        <a href="#"><i class="fab fa-qq"></i></a>
                    </div>
                </div>

                <div class="footer-section links">
                    <h3>快速链接</h3>
                    <ul>
                        <li><a href="#">关于我们</a></li>
                        <li><a href="#">使用帮助</a></li>
                        <li><a href="#">联系我们</a></li>
                        <li><a href="#">隐私政策</a></li>
                        <li><a href="#">用户协议</a></li>
                    </ul>
                </div>

                <div class="footer-section contact">
                    <h3>联系方式</h3>
                    <ul>
                        <li><i class="fas fa-map-marker-alt"></i> 北京市海淀区中关村大街59号</li>
                        <li><i class="fas fa-phone"></i> 010-12345678</li>
                        <li><i class="fas fa-envelope"></i> contact@campusauction.com</li>
                    </ul>
                </div>
            </div>
            <div class="footer-bottom">
                <p>&copy; 2023 校园二手拍卖网站. 保留所有权利.</p>
            </div>
        </div>
    </footer>

    <script src="../js/main.js"></script>
</body>
</html>

my-products.html

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>我的在售 - 校园二手拍卖网站</title>
    <link rel="stylesheet" href="../css/style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head>
<body>
    <!-- 导航栏 -->
    <nav class="navbar">
        <div class="container">
            <div class="logo">
                <i class="fas fa-university"></i>
                <span>校园二手拍卖</span>
            </div>
            <div class="search-box">
                <input type="text" placeholder="搜索商品...">
                <button><i class="fas fa-search"></i></button>
            </div>
            <ul class="nav-links">
                <li><a href="../index.html">首页</a></li>
                <li><a href="product-list.html">商品分类</a></li>
                <li><a href="post-product.html">发布商品</a></li>
                <li class="dropdown">
                    <a href="#">
                        <img src="../images/头像1.png" alt="用户头像" class="user-avatar">
                        <span>用户</span>
                        <i class="fas fa-chevron-down"></i>
                    </a>
                    <div class="dropdown-menu">
                        <a href="user-center.html">个人中心</a>
                        <a href="my-products.html">我的在售</a>
                        <a href="my-orders.html">我的订单</a>
                        <a href="settings.html">设置</a>
                        <a href="#" id="logout-link">退出登录</a>
                    </div>
                </li>
            </ul>
        </div>
    </nav>

    <!-- 我的在售页面内容 -->
    <section class="user-center">
        <div class="container">
            <div class="user-center-content">
                <!-- 左侧导航 -->
                <aside class="user-sidebar">
                    <div class="user-profile">
                        <div class="user-avatar">
                            <img src="../images/头像1.png" alt="用户头像">
                        </div>
                        <div class="user-info">
                            <h3></h3>
                            <p class="student-id">学号:</p>
                            <div class="user-rating">
                                <span></span>
                            </div>
                        </div>
                    </div>

                    <nav class="user-nav">
                        <ul>
                            <li><a href="user-center.html">
                                <i class="fas fa-home"></i>
                                个人中心
                            </a></li>
                            <li><a href="my-products.html" class="active">
                                <i class="fas fa-store"></i>
                                我的在售
                            </a></li>
                            <li><a href="my-orders.html">
                                <i class="fas fa-shopping-cart"></i>
                                我的订单
                            </a></li>
                            <li><a href="settings.html">
                                <i class="fas fa-cog"></i>
                                设置
                            </a></li>
                        </ul>
                    </nav>
                </aside>

                <!-- 右侧内容 -->
                <main class="user-main">
                    <div class="user-center-header">
                        <h2>我的在售商品</h2>
                        <div class="header-actions">
                            <a href="post-product.html" class="btn btn-primary">
                                <i class="fas fa-plus"></i> 发布商品
                            </a>
                        </div>
                    </div>

                    <!-- 商品筛选 -->
                    <div class="products-filter">
                        <button class="filter-btn active" data-status="all">全部商品</button>
                        <button class="filter-btn" data-status="auction">拍卖中</button>
                        <button class="filter-btn" data-status="buy-now">一口价</button>
                        <button class="filter-btn" data-status="sold">已售出</button>
                    </div>

                    <!-- 商品列表 -->
                    <div class="product-grid" id="my-products-grid">
                        <!-- 商品将通过JavaScript动态生成 -->
                    </div>

                    <!-- 空状态 -->
                    <div id="products-empty" class="empty-state" style="display: none;">
                        <i class="fas fa-box-open"></i>
                        <p>暂无在售商品</p>
                        <a href="post-product.html" class="btn btn-primary" style="margin-top: 20px;">
                            <i class="fas fa-plus"></i> 发布第一个商品
                        </a>
                    </div>
                </main>
            </div>
        </div>
    </section>

    <!-- 页脚 -->
    <footer class="footer">
        <div class="container">
            <div class="footer-content">
                <div class="footer-section about">
                    <div class="logo">
                        <i class="fas fa-university"></i>
                        <span>校园二手拍卖</span>
                    </div>
                    <p>为校园师生提供安全、便捷的二手商品拍卖平台,促进资源循环利用,打造绿色校园生活。</p>
                    <div class="social-links">
                        <a href="#"><i class="fab fa-weixin"></i></a>
                        <a href="#"><i class="fab fa-weibo"></i></a>
                        <a href="#"><i class="fab fa-qq"></i></a>
                    </div>
                </div>

                <div class="footer-section links">
                    <h3>快速链接</h3>
                    <ul>
                        <li><a href="#">关于我们</a></li>
                        <li><a href="#">使用帮助</a></li>
                        <li><a href="#">联系我们</a></li>
                        <li><a href="#">隐私政策</a></li>
                        <li><a href="#">用户协议</a></li>
                    </ul>
                </div>

                <div class="footer-section contact">
                    <h3>联系方式</h3>
                    <ul>
                        <li><i class="fas fa-map-marker-alt"></i> 北京市海淀区中关村大街59号</li>
                        <li><i class="fas fa-phone"></i> 010-12345678</li>
                        <li><i class="fas fa-envelope"></i> contact@campusauction.com</li>
                    </ul>
                </div>
            </div>
            <div class="footer-bottom">
                <p>&copy; 2023 校园二手拍卖网站. 保留所有权利.</p>
            </div>
        </div>
    </footer>

    <script src="../js/main.js"></script>
</body>
</html>

my-orders.html

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>我的订单 - 校园二手拍卖网站</title>
    <link rel="stylesheet" href="../css/style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head>
<body>
    <!-- 导航栏 -->
    <nav class="navbar">
        <div class="container">
            <div class="logo">
                <i class="fas fa-university"></i>
                <span>校园二手拍卖</span>
            </div>
            <div class="search-box">
                <input type="text" placeholder="搜索商品...">
                <button><i class="fas fa-search"></i></button>
            </div>
            <ul class="nav-links">
                <li><a href="../index.html">首页</a></li>
                <li><a href="product-list.html">商品分类</a></li>
                <li><a href="post-product.html">发布商品</a></li>
                <li class="dropdown">
                    <a href="#">
                        <img src="../images/头像1.png" alt="用户头像" class="user-avatar">
                        <span>用户</span>
                        <i class="fas fa-chevron-down"></i>
                    </a>
                    <div class="dropdown-menu">
                        <a href="user-center.html">个人中心</a>
                        <a href="my-products.html">我的在售</a>
                        <a href="my-orders.html">我的订单</a>
                        <a href="settings.html">设置</a>
                        <a href="#" id="logout-link">退出登录</a>
                    </div>
                </li>
            </ul>
        </div>
    </nav>

    <!-- 我的订单页面内容 -->
    <section class="user-center">
        <div class="container">
            <div class="user-center-content">
                <!-- 左侧导航 -->
                <aside class="user-sidebar">
                    <div class="user-profile">
                        <div class="user-avatar">
                            <img src="../images/头像1.png" alt="用户头像">
                        </div>
                        <div class="user-info">
                            <h3></h3>
                            <p class="student-id">学号:</p>
                            <div class="user-rating">
                                <span></span>
                            </div>
                        </div>
                    </div>

                    <nav class="user-nav">
                        <ul>
                            <li><a href="user-center.html">
                                <i class="fas fa-home"></i>
                                个人中心
                            </a></li>
                            <li><a href="my-products.html">
                                <i class="fas fa-store"></i>
                                我的在售
                            </a></li>
                            <li><a href="my-orders.html" class="active">
                                <i class="fas fa-shopping-cart"></i>
                                我的订单
                            </a></li>
                            <li><a href="settings.html">
                                <i class="fas fa-cog"></i>
                                设置
                            </a></li>
                        </ul>
                    </nav>
                </aside>

                <!-- 右侧内容 -->
                <main class="user-main">
                    <div class="user-center-header">
                        <h2>我的订单</h2>
                        <p>查看您的所有订单信息</p>
                    </div>

                    <!-- 订单筛选 -->
                    <div class="orders-filter">
                        <button class="filter-btn active" data-status="all">全部订单</button>
                        <button class="filter-btn" data-status="pending">待付款</button>
                        <button class="filter-btn" data-status="paid">待发货</button>
                        <button class="filter-btn" data-status="shipped">待收货</button>
                        <button class="filter-btn" data-status="completed">已完成</button>
                        <button class="filter-btn" data-status="cancelled">已取消</button>
                    </div>

                    <!-- 订单列表 -->
                    <div class="orders-list" id="orders-list">
                        <!-- 订单将通过JavaScript动态生成 -->
                    </div>

                    <!-- 空状态 -->
                    <div id="orders-empty" class="empty-state" style="display: none;">
                        <i class="fas fa-shopping-bag"></i>
                        <p>暂无订单</p>
                    </div>
                </main>
            </div>
        </div>
    </section>

    <!-- 页脚 -->
    <footer class="footer">
        <div class="container">
            <div class="footer-content">
                <div class="footer-section about">
                    <div class="logo">
                        <i class="fas fa-university"></i>
                        <span>校园二手拍卖</span>
                    </div>
                    <p>为校园师生提供安全、便捷的二手商品拍卖平台,促进资源循环利用,打造绿色校园生活。</p>
                    <div class="social-links">
                        <a href="#"><i class="fab fa-weixin"></i></a>
                        <a href="#"><i class="fab fa-weibo"></i></a>
                        <a href="#"><i class="fab fa-qq"></i></a>
                    </div>
                </div>

                <div class="footer-section links">
                    <h3>快速链接</h3>
                    <ul>
                        <li><a href="#">关于我们</a></li>
                        <li><a href="#">使用帮助</a></li>
                        <li><a href="#">联系我们</a></li>
                        <li><a href="#">隐私政策</a></li>
                        <li><a href="#">用户协议</a></li>
                    </ul>
                </div>

                <div class="footer-section contact">
                    <h3>联系方式</h3>
                    <ul>
                        <li><i class="fas fa-map-marker-alt"></i> 北京市海淀区中关村大街59号</li>
                        <li><i class="fas fa-phone"></i> 010-12345678</li>
                        <li><i class="fas fa-envelope"></i> contact@campusauction.com</li>
                    </ul>
                </div>
            </div>
            <div class="footer-bottom">
                <p>&copy; 2023 校园二手拍卖网站. 保留所有权利.</p>
            </div>
        </div>
    </footer>

    <script src="../js/main.js"></script>
</body>
</html>

login.html

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>登录 - 校园二手拍卖网站</title>
    <link rel="stylesheet" href="../css/style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head>
<body>
    <!-- 导航栏 -->
    <nav class="navbar">
        <div class="container">
            <div class="logo">
                <i class="fas fa-university"></i>
                <span>校园二手拍卖</span>
            </div>
            <div class="search-box">
                <input type="text" placeholder="搜索商品...">
                <button><i class="fas fa-search"></i></button>
            </div>
            <ul class="nav-links">
                <li><a href="../index.html">首页</a></li>
                <li><a href="product-list.html">商品分类</a></li>
                <li><a href="post-product.html">发布商品</a></li>
                <li><a href="login.html" class="active"><i class="fas fa-user"></i> 登录</a></li>
                <li><a href="register.html"><i class="fas fa-user-plus"></i> 注册</a></li>
            </ul>
        </div>
    </nav>

    <!-- 登录页面内容 -->
    <section class="login-page">
        <div class="login-container">
            <div class="login-header">
                <h1>用户登录</h1>
                <p>欢迎回到校园二手拍卖网站</p>
            </div>

            <form class="login-form">
                <div class="form-group">
                    <label for="username">
                        <i class="fas fa-user"></i>
                        用户名/学号/邮箱
                    </label>
                    <input type="text" id="username" placeholder="请输入用户名、学号或邮箱" required>
                </div>

                <div class="form-group">
                    <label for="password">
                        <i class="fas fa-lock"></i>
                        密码
                    </label>
                    <input type="password" id="password" placeholder="请输入密码" required>
                </div>

                <div class="form-options">
                    <label class="remember-me">
                        <input type="checkbox">
                        <span>记住我</span>
                    </label>
                    <a href="#" class="forgot-password">忘记密码?</a>
                </div>

                <button type="submit" class="btn btn-primary btn-block">
                    <i class="fas fa-sign-in-alt"></i>
                    登录
                </button>
            </form>

            <div class="login-divider">
                <span>或使用以下方式登录</span>
            </div>

            <div class="social-login">
                <button type="button" class="btn btn-outline btn-block">
                    <i class="fas fa-university"></i>
                    校园统一认证
                </button>
                <button type="button" class="btn btn-outline btn-block">
                    <i class="fab fa-weixin"></i>
                    微信登录
                </button>
                <button type="button" class="btn btn-outline btn-block">
                    <i class="fab fa-qq"></i>
                    QQ登录
                </button>
            </div>

            <div class="login-footer">
                <p>还没有账号? <a href="register.html">立即注册</a></p>
            </div>
        </div>
    </section>

    <!-- 页脚 -->
    <footer class="footer">
        <div class="container">
            <div class="footer-content">
                <div class="footer-section about">
                    <div class="logo">
                        <i class="fas fa-university"></i>
                        <span>校园二手拍卖</span>
                    </div>
                    <p>为校园师生提供安全、便捷的二手商品拍卖平台,促进资源循环利用,打造绿色校园生活。</p>
                    <div class="social-links">
                        <a href="#"><i class="fab fa-weixin"></i></a>
                        <a href="#"><i class="fab fa-weibo"></i></a>
                        <a href="#"><i class="fab fa-qq"></i></a>
                    </div>
                </div>

                <div class="footer-section links">
                    <h3>快速链接</h3>
                    <ul>
                        <li><a href="#">关于我们</a></li>
                        <li><a href="#">使用帮助</a></li>
                        <li><a href="#">联系我们</a></li>
                        <li><a href="#">隐私政策</a></li>
                        <li><a href="#">用户协议</a></li>
                    </ul>
                </div>

                <div class="footer-section contact">
                    <h3>联系方式</h3>
                    <ul>
                        <li><i class="fas fa-map-marker-alt"></i> 北京市海淀区中关村大街59号</li>
                        <li><i class="fas fa-phone"></i> 010-12345678</li>
                        <li><i class="fas fa-envelope"></i> contact@campusauction.com</li>
                    </ul>
                </div>
            </div>
            <div class="footer-bottom">
                <p>&copy; 2023 校园二手拍卖网站. 保留所有权利.</p>
            </div>
        </div>
    </footer>

    <script src="../js/main.js"></script>
</body>
</html>

checkout.html

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>确认订单 - 校园二手拍卖网站</title>
    <link rel="stylesheet" href="../css/style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head>
<body>
    <!-- 导航栏 -->
    <nav class="navbar">
        <div class="container">
            <div class="logo">
                <i class="fas fa-university"></i>
                <span>校园二手拍卖</span>
            </div>
            <div class="search-box">
                <input type="text" placeholder="搜索商品...">
                <button><i class="fas fa-search"></i></button>
            </div>
            <ul class="nav-links">
                <li><a href="../index.html">首页</a></li>
                <li><a href="product-list.html">商品分类</a></li>
                <li><a href="post-product.html">发布商品</a></li>
                <li><a href="cart.html"><i class="fas fa-shopping-cart"></i> 购物车</a></li>
                <li><a href="login.html"><i class="fas fa-user"></i> 登录</a></li>
                <li><a href="register.html"><i class="fas fa-user-plus"></i> 注册</a></li>
            </ul>
        </div>
    </nav>

    <!-- 支付页面内容 -->
    <section class="checkout-page">
        <div class="container">
            <div class="page-header">
                <h1>确认订单</h1>
                <div class="breadcrumb">
                    <a href="../index.html">首页</a> &gt; <a href="cart.html">购物车</a> &gt; 确认订单
                </div>
            </div>

            <div class="checkout-container">
                <div class="checkout-left">
                    <!-- 收货地址 -->
                    <div class="checkout-section">
                        <h3><i class="fas fa-map-marker-alt"></i> 收货地址</h3>
                        <form class="address-form" id="address-form">
                            <div class="form-row">
                                <div class="form-group">
                                    <label for="receiver-name">收货人姓名 *</label>
                                    <input type="text" id="receiver-name" name="receiver-name" placeholder="请输入收货人姓名" required>
                                </div>
                                <div class="form-group">
                                    <label for="receiver-phone">联系电话 *</label>
                                    <input type="tel" id="receiver-phone" name="receiver-phone" placeholder="请输入联系电话" required>
                                </div>
                            </div>
                            <div class="form-row">
                                <div class="form-group">
                                    <label for="receiver-campus">所在校区 *</label>
                                    <select id="receiver-campus" name="receiver-campus" required>
                                        <option value="">请选择校区</option>
                                        <option value="main">主校区</option>
                                        <option value="east">东校区</option>
                                        <option value="west">西校区</option>
                                        <option value="south">南校区</option>
                                    </select>
                                </div>
                                <div class="form-group">
                                    <label for="receiver-building">宿舍楼/教学楼 *</label>
                                    <input type="text" id="receiver-building" name="receiver-building" placeholder="例如:1号宿舍楼" required>
                                </div>
                            </div>
                            <div class="form-group">
                                <label for="receiver-detail">详细地址 *</label>
                                <input type="text" id="receiver-detail" name="receiver-detail" placeholder="请输入详细地址,如:101室" required>
                            </div>
                            <div class="form-group">
                                <label for="receiver-notes">备注(选填)</label>
                                <textarea id="receiver-notes" name="receiver-notes" rows="2" placeholder="如有特殊要求,请在此说明"></textarea>
                            </div>
                        </form>
                    </div>

                    <!-- 交易方式 -->
                    <div class="checkout-section">
                        <h3><i class="fas fa-truck"></i> 交易方式</h3>
                        <div class="delivery-options">
                            <label class="delivery-option">
                                <input type="radio" name="delivery-method" value="pickup" checked>
                                <div class="option-content">
                                    <i class="fas fa-map-marker-alt"></i>
                                    <div>
                                        <strong>校园自提</strong>
                                        <span>免费</span>
                                    </div>
                                </div>
                            </label>
                            <label class="delivery-option">
                                <input type="radio" name="delivery-method" value="delivery">
                                <div class="option-content">
                                    <i class="fas fa-shipping-fast"></i>
                                    <div>
                                        <strong>校内配送</strong>
                                        <span>配送费:¥5.00</span>
                                    </div>
                                </div>
                            </label>
                        </div>
                    </div>

                    <!-- 订单商品 -->
                    <div class="checkout-section">
                        <h3><i class="fas fa-shopping-bag"></i> 订单商品</h3>
                        <div class="checkout-products" id="checkout-products">
                            <!-- 订单商品将通过JavaScript动态渲染 -->
                        </div>
                    </div>
                </div>

                <!-- 订单摘要 -->
                <div class="checkout-right">
                    <div class="order-summary">
                        <h3>订单摘要</h3>
                        <div class="summary-details">
                            <div class="summary-row">
                                <span>商品总价:</span>
                                <span id="order-total-price">¥0.00</span>
                            </div>
                            <div class="summary-row">
                                <span>配送费:</span>
                                <span id="order-delivery-fee">¥0.00</span>
                            </div>
                            <div class="summary-row summary-total">
                                <span>应付总额:</span>
                                <span id="order-final-total">¥0.00</span>
                            </div>
                        </div>
                        <button class="btn btn-primary btn-block" id="submit-order-btn">提交订单</button>
                        <a href="cart.html" class="btn btn-outline btn-block">返回购物车</a>
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- 页脚 -->
    <footer class="footer">
        <div class="container">
            <div class="footer-content">
                <div class="footer-section about">
                    <div class="logo">
                        <i class="fas fa-university"></i>
                        <span>校园二手拍卖</span>
                    </div>
                    <p>为校园师生提供安全、便捷的二手商品拍卖平台,促进资源循环利用,打造绿色校园生活。</p>
                    <div class="social-links">
                        <a href="#"><i class="fab fa-weixin"></i></a>
                        <a href="#"><i class="fab fa-weibo"></i></a>
                        <a href="#"><i class="fab fa-qq"></i></a>
                    </div>
                </div>

                <div class="footer-section links">
                    <h3>快速链接</h3>
                    <ul>
                        <li><a href="#">关于我们</a></li>
                        <li><a href="#">使用帮助</a></li>
                        <li><a href="#">联系我们</a></li>
                        <li><a href="#">隐私政策</a></li>
                        <li><a href="#">用户协议</a></li>
                    </ul>
                </div>

                <div class="footer-section contact">
                    <h3>联系方式</h3>
                    <ul>
                        <li><i class="fas fa-map-marker-alt"></i> 北京市海淀区中关村大街59号</li>
                        <li><i class="fas fa-phone"></i> 010-12345678</li>
                        <li><i class="fas fa-envelope"></i> contact@campusauction.com</li>
                    </ul>
                </div>
            </div>
            <div class="footer-bottom">
                <p>&copy; 2023 校园二手拍卖网站. 保留所有权利.</p>
            </div>
        </div>
    </footer>

    <script src="../js/main.js"></script>
</body>
</html>

cart.html

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>购物车 - 校园二手拍卖网站</title>
    <link rel="stylesheet" href="../css/style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head>
<body>
    <!-- 导航栏 -->
    <nav class="navbar">
        <div class="container">
            <div class="logo">
                <i class="fas fa-university"></i>
                <span>校园二手拍卖</span>
            </div>
            <div class="search-box">
                <input type="text" placeholder="搜索商品...">
                <button><i class="fas fa-search"></i></button>
            </div>
            <ul class="nav-links">
                <li><a href="../index.html">首页</a></li>
                <li><a href="product-list.html">商品分类</a></li>
                <li><a href="post-product.html">发布商品</a></li>
                <li><a href="cart.html" class="active"><i class="fas fa-shopping-cart"></i> 购物车</a></li>
                <li><a href="login.html"><i class="fas fa-user"></i> 登录</a></li>
                <li><a href="register.html"><i class="fas fa-user-plus"></i> 注册</a></li>
            </ul>
        </div>
    </nav>

    <!-- 购物车页面内容 -->
    <section class="cart-page">
        <div class="container">
            <div class="page-header">
                <h1>我的购物车</h1>
                <div class="breadcrumb">
                    <a href="../index.html">首页</a> &gt; 购物车
                </div>
            </div>

            <div class="cart-container">
                <!-- 购物车商品列表 -->
                <div class="cart-items-section">
                    <div class="cart-header">
                        <label class="select-all">
                            <input type="checkbox" id="select-all" checked>
                            <span>全选</span>
                        </label>
                        <span class="cart-header-item">商品信息</span>
                        <span class="cart-header-item">单价</span>
                        <span class="cart-header-item">数量</span>
                        <span class="cart-header-item">小计</span>
                        <span class="cart-header-item">操作</span>
                    </div>
                    <div class="cart-items" id="cart-items">
                        <!-- 购物车商品将通过JavaScript动态渲染 -->
                    </div>
                    <div class="cart-empty" id="cart-empty" style="display: none;">
                        <div class="empty-cart-icon">
                            <i class="fas fa-shopping-cart"></i>
                        </div>
                        <p>购物车是空的</p>
                        <a href="product-list.html" class="btn btn-primary">去逛逛</a>
                    </div>
                </div>

                <!-- 购物车结算 -->
                <div class="cart-summary">
                    <div class="summary-header">
                        <h3>订单摘要</h3>
                    </div>
                    <div class="summary-content">
                        <div class="summary-row">
                            <span>商品总数:</span>
                            <span id="total-quantity">0</span>
                        </div>
                        <div class="summary-row">
                            <span>商品总价:</span>
                            <span id="total-price">¥0.00</span>
                        </div>
                        <div class="summary-row summary-total">
                            <span>应付总额:</span>
                            <span id="final-total">¥0.00</span>
                        </div>
                    </div>
                    <button class="btn btn-primary btn-block" id="checkout-btn" disabled>去结算</button>
                    <a href="product-list.html" class="btn btn-outline btn-block">继续购物</a>
                </div>
            </div>
        </div>
    </section>

    <!-- 页脚 -->
    <footer class="footer">
        <div class="container">
            <div class="footer-content">
                <div class="footer-section about">
                    <div class="logo">
                        <i class="fas fa-university"></i>
                        <span>校园二手拍卖</span>
                    </div>
                    <p>为校园师生提供安全、便捷的二手商品拍卖平台,促进资源循环利用,打造绿色校园生活。</p>
                    <div class="social-links">
                        <a href="#"><i class="fab fa-weixin"></i></a>
                        <a href="#"><i class="fab fa-weibo"></i></a>
                        <a href="#"><i class="fab fa-qq"></i></a>
                    </div>
                </div>

                <div class="footer-section links">
                    <h3>快速链接</h3>
                    <ul>
                        <li><a href="#">关于我们</a></li>
                        <li><a href="#">使用帮助</a></li>
                        <li><a href="#">联系我们</a></li>
                        <li><a href="#">隐私政策</a></li>
                        <li><a href="#">用户协议</a></li>
                    </ul>
                </div>

                <div class="footer-section contact">
                    <h3>联系方式</h3>
                    <ul>
                        <li><i class="fas fa-map-marker-alt"></i> 北京市海淀区中关村大街59号</li>
                        <li><i class="fas fa-phone"></i> 010-12345678</li>
                        <li><i class="fas fa-envelope"></i> contact@campusauction.com</li>
                    </ul>
                </div>
            </div>
            <div class="footer-bottom">
                <p>&copy; 2023 校园二手拍卖网站. 保留所有权利.</p>
            </div>
        </div>
    </footer>

    <script src="../js/main.js"></script>
</body>
</html>


main.js

// 模拟商品数据
const mockProducts = [
    {
        id: 1,
        title: "MacBook Pro 2020款",
        category: "数码产品",
        price: 5800,
        originalPrice: 9999,
        status: "auction",
        condition: "90",
        seller: "卖家",
        timeLeft: "剩余2天",
        image: "images/生成图片 (1).png"
    },
    {
        id: 2,
        title: "机械键盘",
        category: "数码产品",
        price: 120,
        originalPrice: 399,
        status: "auction",
        condition: "80",
        seller: "李四",
        timeLeft: "剩余1天",
        image: "images/生成图片 (3).png"
    },
    {
        id: 3,
        title: "大学英语教材全套",
        category: "图书教材",
        price: 80,
        originalPrice: 240,
        status: "buy-now",
        condition: "90",
        seller: "王五",
        timeLeft: "剩余3天",
        image: "images/生成图片 (4).png"
    },
    {
        id: 4,
        title: "篮球",
        category: "运动器材",
        price: 30,
        originalPrice: 120,
        status: "auction",
        condition: "70",
        seller: "赵六",
        timeLeft: "剩余12小时",
        image: "images/生成图片 (7).png"
    },
    {
        id: 5,
        title: "吉他",
        category: "乐器设备",
        price: 450,
        originalPrice: 1200,
        status: "auction",
        condition: "80",
        seller: "孙七",
        timeLeft: "剩余4天",
        image: "images/生成图片 (9).png"
    },
    {
        id: 6,
        title: "显示器",
        category: "数码产品",
        price: 300,
        originalPrice: 899,
        status: "buy-now",
        condition: "90",
        seller: "周八",
        timeLeft: "剩余5天",
        image: "images/商品111.png"
    },
    {
        id: 7,
        title: "自行车",
        category: "交通工具",
        price: 280,
        originalPrice: 899,
        status: "auction",
        condition: "80",
        seller: "吴九",
        timeLeft: "剩余3天",
        image: "images/商品222.png"
    },
    {
        id: 8,
        title: "洗衣机",
        category: "家居用品",
        price: 400,
        originalPrice: 1200,
        status: "buy-now",
        condition: "90",
        seller: "郑十",
        timeLeft: "剩余6天",
        image: "images/商品333.png"
    },
    {
        id: 9,
        title: "运动鞋",
        category: "服饰鞋包",
        price: 150,
        originalPrice: 399,
        status: "auction",
        condition: "85",
        seller: "钱一",
        timeLeft: "剩余2天",
        image: "images/商品666.png"
    },
    {
        id: 10,
        title: "台灯",
        category: "家居用品",
        price: 50,
        originalPrice: 120,
        status: "buy-now",
        condition: "90",
        seller: "孙二",
        timeLeft: "剩余4天",
        image: "images/商品555.png"
    },
    {
        id: 11,
        title: "编程书籍",
        category: "图书教材",
        price: 60,
        originalPrice: 150,
        status: "buy-now",
        condition: "95",
        seller: "李三",
        timeLeft: "剩余3天",
        image: "images/商品444.png"
    },
    {
        id: 12,
        title: "其他物品",
        category: "其他物品",
        price: 100,
        originalPrice: 200,
        status: "auction",
        condition: "75",
        seller: "王四",
        timeLeft: "剩余1天",
        image: "images/生成图片 (2).png"
    }
];

// 全局搜索关键字(用于商品列表页共享)
let currentSearchKeyword = '';
let currentSearchDisplay = '';

// 用户管理系统
const UserManager = {
    // 获取所有用户
    getUsers: function() {
        const users = localStorage.getItem('users');
        return users ? JSON.parse(users) : [];
    },
    
    // 保存用户列表
    saveUsers: function(users) {
        localStorage.setItem('users', JSON.stringify(users));
    },
    
    // 注册用户
    register: function(userData) {
        const users = this.getUsers();
        
        // 检查用户名是否已存在
        if (users.find(u => u.username === userData.username)) {
            return { success: false, message: '用户名已存在' };
        }
        
        // 检查邮箱是否已存在
        if (userData.email && users.find(u => u.email === userData.email)) {
            return { success: false, message: '邮箱已被注册' };
        }
        
        // 创建新用户
        const newUser = {
            id: Date.now(),
            username: userData.username,
            password: userData.password, // 实际应用中应该加密
            email: userData.email,
            studentId: userData.studentId || '',
            avatar: userData.avatar || 'images/头像1.png',
            registerTime: new Date().toISOString(),
            rating: 5.0,
            stats: {
                在售商品: 0,
                已售商品: 0,
                已购商品: 0,
                交易成功: 0
            }
        };
        
        users.push(newUser);
        this.saveUsers(users);
        
        return { success: true, user: newUser };
    },
    
    // 用户登录
    login: function(username, password) {
        const users = this.getUsers();
        const user = users.find(u => 
            (u.username === username || u.email === username || u.studentId === username) && 
            u.password === password
        );
        
        if (user) {
            // 保存当前登录用户
            const currentUser = {
                ...user,
                password: undefined, // 不保存密码
                loginTime: new Date().toISOString()
            };
            localStorage.setItem('currentUser', JSON.stringify(currentUser));
            return { success: true, user: currentUser };
        } else {
            return { success: false, message: '用户名或密码错误' };
        }
    },
    
    // 获取当前登录用户
    getCurrentUser: function() {
        const user = localStorage.getItem('currentUser');
        return user ? JSON.parse(user) : null;
    },
    
    // 退出登录
    logout: function() {
        localStorage.removeItem('currentUser');
    },
    
    // 检查是否已登录
    isLoggedIn: function() {
        return this.getCurrentUser() !== null;
    },
    
    // 更新用户信息
    updateUser: function(userData) {
        const users = this.getUsers();
        const currentUser = this.getCurrentUser();
        
        if (!currentUser) return { success: false, message: '未登录' };
        
        const userIndex = users.findIndex(u => u.id === currentUser.id);
        if (userIndex === -1) return { success: false, message: '用户不存在' };
        
        // 更新用户信息
        users[userIndex] = {
            ...users[userIndex],
            ...userData,
            password: users[userIndex].password // 保留原密码
        };
        
        this.saveUsers(users);
        
        // 更新当前登录用户
        const updatedUser = {
            ...users[userIndex],
            password: undefined,
            loginTime: currentUser.loginTime
        };
        localStorage.setItem('currentUser', JSON.stringify(updatedUser));
        
        return { success: true, user: updatedUser };
    }
};

// 购物车管理
const CartManager = {
    // 获取购物车
    getCart: function() {
        const cart = localStorage.getItem('cart');
        return cart ? JSON.parse(cart) : [];
    },
    
    // 保存购物车
    saveCart: function(cart) {
        localStorage.setItem('cart', JSON.stringify(cart));
    },
    
    // 添加商品到购物车
    addItem: function(product) {
        const cart = this.getCart();
        const existingItem = cart.find(item => item.id === product.id);
        
        if (existingItem) {
            existingItem.quantity += 1;
        } else {
            cart.push({
                ...product,
                quantity: 1
            });
        }
        
        this.saveCart(cart);
        this.updateCartBadge();
        return cart;
    },
    
    // 从购物车移除商品
    removeItem: function(productId) {
        const cart = this.getCart();
        const newCart = cart.filter(item => item.id !== productId);
        this.saveCart(newCart);
        this.updateCartBadge();
        return newCart;
    },
    
    // 更新商品数量
    updateQuantity: function(productId, quantity) {
        const cart = this.getCart();
        const item = cart.find(item => item.id === productId);
        if (item) {
            if (quantity <= 0) {
                return this.removeItem(productId);
            }
            item.quantity = quantity;
            this.saveCart(cart);
            this.updateCartBadge();
        }
        return cart;
    },
    
    // 清空购物车
    clearCart: function() {
        this.saveCart([]);
        this.updateCartBadge();
    },
    
    // 更新购物车徽章
    updateCartBadge: function() {
        const cart = this.getCart();
        const totalItems = cart.reduce((sum, item) => sum + item.quantity, 0);
        const badge = document.querySelector('.cart-badge');
        if (badge) {
            badge.textContent = totalItems;
            badge.style.display = totalItems > 0 ? 'inline-block' : 'none';
        }
    }
};

// 模拟商品详情数据
const mockProductDetails = {
  id: 1,
  title: "MacBook Pro 2020款 13英寸",
  category: "数码产品",
  price: 5800,
  originalPrice: 9999,
  status: "拍卖",
  condition: "9成新",
  images: [
    "images/product1.jpg",
    "images/product1-1.jpg",
    "images/product1-2.jpg",
    "images/product1-3.jpg"
  ],
  bidCount: 12,
  timeLeft: "2天14小时30分钟45秒",
  endTime: "2023-05-20T18:45:30",
  seller: {
    id: "seller_001",
    name: "卖家",
    avatar: "images/头像1.png",
    rating: 4.5,
    transactions: 128
  },
  description: "MacBook Pro 2020款 13英寸,配置如下:<br>" +
    "<ul>" +
    "<li>处理器:Intel Core i5 10代</li>" +
    "<li>内存:16GB DDR4</li>" +
    "<li>存储:512GB SSD</li>" +
    "<li>显卡:Intel Iris Plus Graphics</li>" +
    "<li>屏幕:13.3英寸 Retina 显示屏</li>" +
    "<li>电池循环次数:120次</li>" +
    "</ul>" +
    "机器保护得很好,9成新,没有明显划痕和损坏。原装充电器和包装盒都在。<br>" +
    "支持校内面交,有意者可以联系我。",
  bidHistory: [
    { bidder: "李四", avatar: "images/avatar2.jpg", amount: 5800, time: "2023-05-15 14:30" },
    { bidder: "王五", avatar: "images/avatar3.jpg", amount: 5700, time: "2023-05-15 13:45" },
    { bidder: "赵六", avatar: "images/avatar4.jpg", amount: 5600, time: "2023-05-15 12:20" }
  ],
  reviews: [
    { reviewer: "孙七", avatar: "images/avatar5.jpg", rating: 5, date: "2023-05-10", content: "卖家很诚信,商品和描述的一样,9成新,用起来很流畅。交易过程很顺利,推荐!" },
    { reviewer: "周八", avatar: "images/avatar6.jpg", rating: 4, date: "2023-05-08", content: "电脑确实不错,就是电池续航稍微有点下降,但总体来说还是很满意的。卖家服务态度很好。" }
  ]
};

// 模拟用户数据(已废弃,使用UserManager管理用户数据)

// 初始化滚动触发动画
function initScrollAnimations() {
    const animatedElements = document.querySelectorAll('.animate-on-scroll');
    
    if (!animatedElements.length) return;
    
    const observer = new IntersectionObserver((entries) => {
        entries.forEach(entry => {
            if (entry.isIntersecting) {
                const delay = entry.target.dataset.delay || 0;
                entry.target.style.transitionDelay = `${delay}s`;
                entry.target.classList.add('animated');
                observer.unobserve(entry.target);
            }
        });
    }, {
        threshold: 0.1,
        rootMargin: '0px 0px -50px 0px'
    });
    
    animatedElements.forEach(element => {
        observer.observe(element);
    });
}

// 添加按钮点击波纹效果
function initButtonRipple() {
    const buttons = document.querySelectorAll('.btn, .search-box button, .price-filter button');
    
    buttons.forEach(button => {
        button.addEventListener('click', function(e) {
            // 创建波纹元素
            const ripple = document.createElement('span');
            ripple.classList.add('ripple');
            
            // 设置波纹大小
            const size = Math.max(this.offsetWidth, this.offsetHeight);
            ripple.style.width = ripple.style.height = `${size}px`;
            
            // 设置波纹位置
            const rect = this.getBoundingClientRect();
            const left = e.clientX - rect.left - size / 2;
            const top = e.clientY - rect.top - size / 2;
            ripple.style.left = `${left}px`;
            ripple.style.top = `${top}px`;
            
            // 添加到按钮
            this.appendChild(ripple);
            
            // 动画结束后移除
            setTimeout(() => {
                ripple.remove();
            }, 600);
        });
    });
}

// 隐藏页面加载动画
function hidePageLoader() {
    const loader = document.querySelector('.page-loader');
    if (loader) {
        loader.classList.add('hidden');
        // 动画结束后完全移除
        setTimeout(() => {
            loader.style.display = 'none';
        }, 500);
    }
}

// DOM加载完成后执行
document.addEventListener('DOMContentLoaded', function() {
    // 延迟隐藏加载动画,确保用户能看到
    setTimeout(hidePageLoader, 500);
    
    // 初始化轮播图
    initCarousel();
    
    // 初始化导航栏交互
    initNavbar();
    
    // 更新导航栏(显示登录状态)
    updateNavbar();
    
    // 初始化搜索框
    initSearchBox();
    
    // 初始化商品卡片点击事件
    initProductCards();
    
    // 初始化分类点击功能
    initCategoryClick();
    
    // 初始化登录表单验证
    initLoginForm();
    
    // 初始化注册表单验证
    initRegisterForm();
    
    // 初始化滚动动画
    initScrollAnimations();
    
    // 初始化按钮波纹效果
    initButtonRipple();
    
    // 初始化商品详情页功能
    initProductDetails();
    
    // 初始化联系卖家和查看店铺功能
    initSellerContact();
    
    // 初始化卖家店铺页面
    initSellerShop();
    
    // 初始化商品发布页功能
    initProductPost();
    
    // 初始化倒计时功能
    initCountdowns();
    
    // 初始化商品列表页功能
    initProductList();
    
    // 初始化筛选功能
    initFilters();
    
    // 初始化购物车页面
    initCartPage();
    
    // 初始化支付页面
    initCheckoutPage();
    
    // 更新购物车徽章
    CartManager.updateCartBadge();
    
    // 根据当前页面路径判断是否需要渲染不同内容
    const currentPath = window.location.pathname;
    const currentHref = window.location.href;
    
    // 更准确的路径检测
    if (currentPath.includes('product-list.html') || currentHref.includes('product-list.html')) {
      // 商品列表页:渲染所有商品
      renderProducts(mockProducts);
    } else if (currentPath.includes('index.html') || currentPath.endsWith('/') || currentPath === '' || currentHref.endsWith('index.html') || currentHref.endsWith('/')) {
      // 首页:分别渲染推荐商品和最新上架
      const productGrids = document.querySelectorAll('.product-grid');
      if (productGrids.length >= 2) {
        // 第一个是推荐商品
        renderProductsToGrid(mockProducts.slice(0, 4), productGrids[0]);
        // 第二个是最新上架
        renderProductsToGrid(mockProducts.slice(4, 8), productGrids[1]);
      } else if (productGrids.length === 1) {
        // 如果只有一个,先渲染推荐商品
        renderProductsToGrid(mockProducts.slice(0, 4), productGrids[0]);
      }
    } else if (currentPath.includes('product-details.html') || currentHref.includes('product-details.html')) {
      // 商品详情页:渲染商品详情
      const productId = getUrlParam('id');
      if (productId) {
        const product = findProductById(productId);
        if (product) {
          renderProductDetailsFromProduct(product);
        } else {
          renderProductDetails(mockProductDetails);
        }
      } else {
        renderProductDetails(mockProductDetails);
      }
    } else if (currentPath.includes('user-center.html') || currentHref.includes('user-center.html')) {
      // 个人中心页面:渲染用户信息
      const currentUser = UserManager.getCurrentUser();
      if (currentUser) {
        renderUserCenter(currentUser);
      } else {
        // 未登录,跳转到登录页
        const isInPagesFolder = currentPath.includes('pages/');
        const basePath = isInPagesFolder ? '' : 'pages/';
        window.location.href = basePath + 'login.html?return=' + encodeURIComponent('user-center.html');
      }
    } else if (currentPath.includes('my-orders.html') || currentHref.includes('my-orders.html')) {
      // 我的订单页面
      const currentUser = UserManager.getCurrentUser();
      if (currentUser) {
        initMyOrders();
      } else {
        const isInPagesFolder = currentPath.includes('pages/');
        const basePath = isInPagesFolder ? '' : 'pages/';
        window.location.href = basePath + 'login.html?return=' + encodeURIComponent('my-orders.html');
      }
    } else if (currentPath.includes('my-products.html') || currentHref.includes('my-products.html')) {
      // 我的在售页面
      const currentUser = UserManager.getCurrentUser();
      if (currentUser) {
        initMyProducts();
      } else {
        const isInPagesFolder = currentPath.includes('pages/');
        const basePath = isInPagesFolder ? '' : 'pages/';
        window.location.href = basePath + 'login.html?return=' + encodeURIComponent('my-products.html');
      }
    } else if (currentPath.includes('settings.html') || currentHref.includes('settings.html')) {
      // 设置页面
      const currentUser = UserManager.getCurrentUser();
      if (currentUser) {
        initSettings();
      } else {
        const isInPagesFolder = currentPath.includes('pages/');
        const basePath = isInPagesFolder ? '' : 'pages/';
        window.location.href = basePath + 'login.html?return=' + encodeURIComponent('settings.html');
      }
    }
});

// 轮播图功能
function initCarousel() {
    const carousels = document.querySelectorAll('.carousel');
    
    carousels.forEach(carousel => {
        const carouselInner = carousel.querySelector('.carousel-inner');
        const items = carousel.querySelectorAll('.carousel-item');
        const prevBtn = carousel.querySelector('.carousel-control-prev');
        const nextBtn = carousel.querySelector('.carousel-control-next');
        const indicators = carousel.querySelectorAll('.indicator');
        
        if (!carouselInner || !items.length || !prevBtn || !nextBtn) return;
        
        let currentIndex = 0;
        const totalItems = items.length;
        let autoPlayInterval;
        
        function showSlide(index) {
            if (index < 0) index = totalItems - 1;
            if (index >= totalItems) index = 0;
            
            currentIndex = index;
            carouselInner.style.transform = `translateX(-${currentIndex * 100}%)`;
            
            // 更新指示器状态
            updateIndicators(index);
        }
        
        function updateIndicators(index) {
            if (!indicators.length) return;
            
            indicators.forEach((indicator, i) => {
                if (i === index) {
                    indicator.classList.add('active');
                } else {
                    indicator.classList.remove('active');
                }
            });
        }
        
        // 开始自动轮播
        function startAutoPlay() {
            autoPlayInterval = setInterval(() => showSlide(currentIndex + 1), 5000);
        }
        
        // 停止自动轮播
        function stopAutoPlay() {
            if (autoPlayInterval) {
                clearInterval(autoPlayInterval);
            }
        }
        
        // 指示器点击事件
        indicators.forEach((indicator, index) => {
            indicator.addEventListener('click', () => {
                stopAutoPlay();
                showSlide(index);
                startAutoPlay();
            });
        });
        
        prevBtn.addEventListener('click', () => {
            stopAutoPlay();
            showSlide(currentIndex - 1);
            startAutoPlay();
        });
        
        nextBtn.addEventListener('click', () => {
            stopAutoPlay();
            showSlide(currentIndex + 1);
            startAutoPlay();
        });
        
        // 鼠标悬停暂停自动轮播
        carousel.addEventListener('mouseenter', stopAutoPlay);
        carousel.addEventListener('mouseleave', startAutoPlay);
        
        // 开始自动轮播
        startAutoPlay();
        
        // 为轮播图标题和描述添加动画
        items.forEach((item, index) => {
            const caption = item.querySelector('.carousel-caption');
            if (caption) {
                caption.style.opacity = '0';
                caption.style.transform = 'translateY(20px)';
                caption.style.transition = 'opacity 0.8s ease, transform 0.8s ease';
                
                // 当前幻灯片的标题和描述立即显示
                if (index === currentIndex) {
                    caption.style.opacity = '1';
                    caption.style.transform = 'translateY(0)';
                }
            }
        });
        
        // 修改showSlide函数,添加标题和描述动画
        const originalShowSlide = showSlide;
        showSlide = function(index) {
            // 隐藏当前幻灯片的标题和描述
            const currentCaption = items[currentIndex].querySelector('.carousel-caption');
            if (currentCaption) {
                currentCaption.style.opacity = '0';
                currentCaption.style.transform = 'translateY(20px)';
            }
            
            // 显示新幻灯片
            originalShowSlide(index);
            
            // 延迟显示新幻灯片的标题和描述
            setTimeout(() => {
                const newCaption = items[currentIndex].querySelector('.carousel-caption');
                if (newCaption) {
                    newCaption.style.opacity = '1';
                    newCaption.style.transform = 'translateY(0)';
                }
            }, 300);
        };
    });
}



// 导航栏交互
function initNavbar() {
    // 监听滚动事件,改变导航栏样式
    window.addEventListener('scroll', function() {
        const navbar = document.querySelector('.navbar');
        if (window.scrollY > 100) {
            navbar.style.backgroundColor = 'rgba(255, 255, 255, 0.95)';
            navbar.style.boxShadow = '0 2px 10px rgba(0, 0, 0, 0.1)';
        } else {
            navbar.style.backgroundColor = 'rgba(255, 255, 255, 1)';
            navbar.style.boxShadow = '0 2px 4px rgba(0, 0, 0, 0.1)';
        }
    });
}

// 更新导航栏(根据登录状态)
function updateNavbar() {
    const currentUser = UserManager.getCurrentUser();
    const navLinks = document.querySelector('.nav-links');
    if (!navLinks) return;
    
    const currentPath = window.location.pathname;
    const isInPagesFolder = currentPath.includes('pages/');
    const basePath = isInPagesFolder ? '../' : '';
    const pagesBasePath = isInPagesFolder ? '' : 'pages/';
    
    if (currentUser) {
        // 已登录:显示用户信息和下拉菜单
        // 先检查是否有现有的dropdown(可能是HTML中写死的)
        const existingDropdown = navLinks.querySelector('.dropdown');
        let userNav = navLinks.querySelector('.user-nav-item');
        
        // 如果存在dropdown但不是user-nav-item,将其转换为user-nav-item
        if (existingDropdown && !userNav) {
            existingDropdown.classList.add('user-nav-item');
            userNav = existingDropdown;
        }
        
        if (!userNav) {
            // 移除登录和注册链接
            const loginLink = navLinks.querySelector('a[href*="login.html"]');
            const registerLink = navLinks.querySelector('a[href*="register.html"]');
            if (loginLink) loginLink.parentElement.remove();
            if (registerLink) registerLink.parentElement.remove();
            
            // 添加用户下拉菜单
            const userLi = document.createElement('li');
            userLi.className = 'dropdown user-nav-item';
            userLi.innerHTML = `
                <a href="#">
                    <img src="${basePath}${currentUser.avatar}" alt="用户头像" class="user-avatar" onerror="this.src='${basePath}images/头像1.png'">
                    <span>${currentUser.username}</span>
                    <i class="fas fa-chevron-down"></i>
                </a>
                <div class="dropdown-menu">
                    <a href="${pagesBasePath}user-center.html">个人中心</a>
                    <a href="${pagesBasePath}my-products.html">我的在售</a>
                    <a href="${pagesBasePath}my-orders.html">我的订单</a>
                    <a href="${pagesBasePath}settings.html">设置</a>
                    <a href="${pagesBasePath}cart.html">购物车</a>
                    <a href="${pagesBasePath}post-product.html">发布商品</a>
                    <a href="#" id="logout-btn">退出登录</a>
                </div>
            `;
            navLinks.appendChild(userLi);
            
            // 绑定退出登录事件
            const logoutBtn = document.getElementById('logout-btn');
            if (logoutBtn) {
                logoutBtn.addEventListener('click', function(e) {
                    e.preventDefault();
                    if (confirm('确定要退出登录吗?')) {
                        UserManager.logout();
                        updateNavbar();
                        window.location.reload();
                    }
                });
            }
        } else {
            // 更新现有用户信息和下拉菜单
            const userLink = navLinks.querySelector('.user-nav-item a');
            const userSpan = navLinks.querySelector('.user-nav-item span');
            const userImg = navLinks.querySelector('.user-nav-item .user-avatar');
            const dropdownMenu = navLinks.querySelector('.user-nav-item .dropdown-menu');
            
            if (userLink && userSpan) {
                userSpan.textContent = currentUser.username || currentUser.name || '用户';
            }
            if (userImg) {
                userImg.src = basePath + (currentUser.avatar || 'images/头像1.png');
                userImg.onerror = function() {
                    this.src = basePath + 'images/头像1.png';
                };
            }
            
            // 更新下拉菜单内容
            if (dropdownMenu) {
                dropdownMenu.innerHTML = `
                    <a href="${pagesBasePath}user-center.html">个人中心</a>
                    <a href="${pagesBasePath}my-products.html">我的在售</a>
                    <a href="${pagesBasePath}my-orders.html">我的订单</a>
                    <a href="${pagesBasePath}settings.html">设置</a>
                    <a href="${pagesBasePath}cart.html">购物车</a>
                    <a href="${pagesBasePath}post-product.html">发布商品</a>
                    <a href="#" id="logout-btn">退出登录</a>
                `;
                
                // 重新绑定退出登录事件
                const logoutBtn = document.getElementById('logout-btn');
                if (logoutBtn) {
                    logoutBtn.addEventListener('click', function(e) {
                        e.preventDefault();
                        if (confirm('确定要退出登录吗?')) {
                            UserManager.logout();
                            updateNavbar();
                            window.location.reload();
                        }
                    });
                }
            }
        }
    } else {
        // 未登录:显示登录和注册链接
        const userNav = navLinks.querySelector('.user-nav-item');
        if (userNav) {
            userNav.remove();
        }
        
        // 确保有登录和注册链接
        if (!navLinks.querySelector('a[href*="login.html"]')) {
            const loginLi = document.createElement('li');
            loginLi.innerHTML = `<a href="${pagesBasePath}login.html"><i class="fas fa-user"></i> 登录</a>`;
            navLinks.appendChild(loginLi);
        }
        if (!navLinks.querySelector('a[href*="register.html"]')) {
            const registerLi = document.createElement('li');
            registerLi.innerHTML = `<a href="${pagesBasePath}register.html"><i class="fas fa-user-plus"></i> 注册</a>`;
            navLinks.appendChild(registerLi);
        }
    }
}

// 检查登录状态,如果未登录则跳转到登录页
function requireLogin(returnUrl) {
    if (!UserManager.isLoggedIn()) {
        const currentPath = window.location.pathname;
        const isInPagesFolder = currentPath.includes('pages/');
        const basePath = isInPagesFolder ? '' : 'pages/';
        const loginUrl = basePath + 'login.html';
        const returnParam = returnUrl ? `?return=${encodeURIComponent(returnUrl)}` : '';
        window.location.href = loginUrl + returnParam;
        return false;
    }
    return true;
}

// 搜索框交互
function initSearchBox() {
    const searchBoxes = document.querySelectorAll('.search-box');
    if (!searchBoxes.length) return;
    
    searchBoxes.forEach(box => {
        const input = box.querySelector('input');
        const button = box.querySelector('button');
        if (!input) return;
        
        const triggerSearch = () => {
            const keyword = input.value.trim();
            if (!keyword) {
                showMessage('请输入搜索关键词');
                input.focus();
                return;
            }
            
            currentSearchDisplay = keyword;
            currentSearchKeyword = keyword.toLowerCase();
            
            const currentPath = window.location.pathname;
            const isInPagesFolder = currentPath.includes('/pages/');
            const basePath = isInPagesFolder ? '' : 'pages/';
            const targetUrl = `${basePath}product-list.html?search=${encodeURIComponent(keyword)}`;
            window.location.href = targetUrl;
        };
        
        input.addEventListener('keypress', function(e) {
            if (e.key === 'Enter') {
                e.preventDefault();
                triggerSearch();
            }
        });
        
        if (button) {
            button.addEventListener('click', function(e) {
                e.preventDefault();
                triggerSearch();
            });
        }
    });
}

// 商品卡片点击事件
function initProductCards() {
    // 这个功能已经在 renderProductsToGrid 中实现了
    // 这里保留函数以防其他地方需要
}

// 初始化分类点击功能
function initCategoryClick() {
    const categoryItems = document.querySelectorAll('.category-item');
    
    categoryItems.forEach(item => {
        item.addEventListener('click', function() {
            // 跳转到商品列表页,并传递分类参数
            const categoryName = this.querySelector('span').textContent;
            const currentPath = window.location.pathname;
            const isInPagesFolder = currentPath.includes('pages/');
            const basePath = isInPagesFolder ? '' : 'pages/';
            window.location.href = `${basePath}product-list.html?category=${encodeURIComponent(categoryName)}`;
        });
    });
}

// 登录表单验证
function initLoginForm() {
    const loginForm = document.querySelector('.login-form');
    
    if (loginForm) {
        loginForm.addEventListener('submit', function(e) {
            e.preventDefault();
            
            const username = document.getElementById('username');
            const password = document.getElementById('password');
            
            if (!username || !password) {
                alert('请填写完整的登录信息');
                return;
            }
            
            const usernameValue = username.value.trim();
            const passwordValue = password.value.trim();
            
            // 简单验证
            if (!usernameValue || !passwordValue) {
                alert('请填写完整的登录信息');
                return;
            }
            
            // 使用UserManager进行登录
            const result = UserManager.login(usernameValue, passwordValue);
            
            if (result.success) {
                alert('登录成功!');
                
                // 更新导航栏
                updateNavbar();
                
                // 跳转到首页或返回上一页
                const returnUrl = getUrlParam('return');
                const currentPath = window.location.pathname;
                const isInPagesFolder = currentPath.includes('pages/');
                
                if (returnUrl) {
                    // 如果有返回URL参数,跳转到指定页面
                    const decodedReturnUrl = decodeURIComponent(returnUrl);
                    
                    if (decodedReturnUrl.startsWith('http://') || decodedReturnUrl.startsWith('https://')) {
                        // 绝对URL,直接跳转
                        window.location.href = decodedReturnUrl;
                    } else if (decodedReturnUrl.startsWith('../') || decodedReturnUrl.startsWith('./')) {
                        // 相对路径(相对于当前页面),直接使用
                        window.location.href = decodedReturnUrl;
                    } else if (decodedReturnUrl.includes('/')) {
                        // 包含路径分隔符,可能是 pages/xxx.html 或完整的相对路径
                        window.location.href = decodedReturnUrl;
                    } else {
                        // 简单文件名(如 user-center.html)
                        // 如果当前在pages文件夹,目标也在pages文件夹(同一目录)
                        // 如果当前不在pages文件夹,目标在pages文件夹
                        const targetPath = isInPagesFolder ? decodedReturnUrl : 'pages/' + decodedReturnUrl;
                        window.location.href = targetPath;
                    }
                } else {
                    // 没有返回URL,跳转到首页
                    const basePath = isInPagesFolder ? '../' : '';
                    window.location.href = basePath + 'index.html';
                }
            } else {
                alert(result.message || '登录失败,请检查用户名和密码');
            }
        });
    }
}

// 注册表单验证
function initRegisterForm() {
    const registerForm = document.querySelector('.register-form');
    
    if (registerForm) {
        registerForm.addEventListener('submit', function(e) {
            e.preventDefault();
            
            const username = document.getElementById('username');
            const password = document.getElementById('password');
            const confirmPassword = document.getElementById('confirm-password');
            const email = document.getElementById('email');
            const studentId = document.getElementById('student-id');
            const termsCheckbox = document.querySelector('.terms input[type="checkbox"]');
            
            if (!username || !password || !confirmPassword || !email) {
                alert('请填写完整的注册信息');
                return;
            }
            
            const usernameValue = username.value.trim();
            const passwordValue = password.value.trim();
            const confirmPasswordValue = confirmPassword.value.trim();
            const emailValue = email.value.trim();
            const studentIdValue = studentId ? studentId.value.trim() : '';
            
            // 简单验证
            if (!usernameValue || !passwordValue || !confirmPasswordValue || !emailValue) {
                alert('请填写完整的注册信息');
                return;
            }
            
            // 用户名长度验证
            if (usernameValue.length < 3) {
                alert('用户名长度不能少于3位');
                return;
            }
            
            // 邮箱格式验证
            const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
            if (!emailRegex.test(emailValue)) {
                alert('请输入有效的邮箱地址');
                return;
            }
            
            if (passwordValue.length < 6) {
                alert('密码长度不能少于6位');
                return;
            }
            
            if (passwordValue !== confirmPasswordValue) {
                alert('两次输入的密码不一致');
                return;
            }
            
            if (!termsCheckbox || !termsCheckbox.checked) {
                alert('请阅读并同意用户协议和隐私政策');
                return;
            }
            
            // 使用UserManager进行注册
            const result = UserManager.register({
                username: usernameValue,
                password: passwordValue,
                email: emailValue,
                studentId: studentIdValue
            });
            
            if (result.success) {
                alert('注册成功!请登录');
                
                // 跳转到登录页
                const currentPath = window.location.pathname;
                const isInPagesFolder = currentPath.includes('pages/');
                const basePath = isInPagesFolder ? '' : 'pages/';
                window.location.href = basePath + 'login.html';
            } else {
                alert(result.message || '注册失败');
            }
        });
        
        // 验证码功能模拟
        const getCodeBtn = document.querySelector('.verification-code button');
        if (getCodeBtn) {
            getCodeBtn.addEventListener('click', function(e) {
                e.preventDefault();
                
                const email = document.getElementById('email');
                if (!email || !email.value.trim()) {
                    alert('请先输入邮箱地址');
                    return;
                }
                
                // 模拟发送验证码
                let countdown = 60;
                this.disabled = true;
                const originalText = this.textContent;
                this.textContent = `${countdown}秒后重新获取`;
                
                const timer = setInterval(() => {
                    countdown--;
                    if (countdown > 0) {
                        this.textContent = `${countdown}秒后重新获取`;
                    } else {
                        clearInterval(timer);
                        this.disabled = false;
                        this.textContent = originalText;
                    }
                }, 1000);
                
                alert('验证码已发送到您的邮箱(模拟)');
            });
        }
    }
}

// 商品详情页功能
function initProductDetails() {
    // 图片切换功能 - 支持两种HTML结构
    const thumbnails = document.querySelectorAll('.thumbnail-item, .thumbnail');
    const mainImage = document.querySelector('.main-image img, .gallery-main img');
    
    if (thumbnails.length && mainImage) {
        thumbnails.forEach(thumbnail => {
            thumbnail.addEventListener('click', function() {
                // 移除所有缩略图的active类
                thumbnails.forEach(t => t.classList.remove('active'));
                // 给当前点击的缩略图添加active类
                this.classList.add('active');
                // 切换主图
                const img = this.querySelector('img');
                if (img) {
                    mainImage.src = img.src;
                }
            });
        });
    }
    
    // 根据商品状态显示不同的操作区域
    const productId = getUrlParam('id');
    let currentProduct = null;
    if (productId) {
        currentProduct = mockProducts.find(p => p.id === parseInt(productId));
    }
    
    const buySection = document.getElementById('buy-section');
    const bidSection = document.getElementById('bid-section');
    
    if (currentProduct) {
        if (currentProduct.status === 'buy-now') {
            // 一口价商品,显示购买区域
            if (buySection) buySection.style.display = 'block';
            if (bidSection) bidSection.style.display = 'none';
        } else {
            // 拍卖商品,显示出价区域
            if (buySection) buySection.style.display = 'none';
            if (bidSection) bidSection.style.display = 'block';
        }
    }
    
    // 加入购物车功能
    const addToCartBtn = document.getElementById('add-to-cart-btn');
    if (addToCartBtn && currentProduct) {
        addToCartBtn.addEventListener('click', function() {
            if (!requireLogin(window.location.href)) return;
            
            if (currentProduct.status === 'buy-now') {
                CartManager.addItem(currentProduct);
                showMessage('商品已添加到购物车!', 'success');
            }
        });
    }
    
    // 立即购买功能
    const buyNowBtn = document.getElementById('buy-now-btn');
    if (buyNowBtn && currentProduct) {
        buyNowBtn.addEventListener('click', function() {
            if (!requireLogin(window.location.href)) return;
            
            if (currentProduct.status === 'buy-now') {
                // 创建临时订单,跳转到支付页面
                const tempOrder = [{
                    ...currentProduct,
                    quantity: 1
                }];
                localStorage.setItem('tempOrder', JSON.stringify(tempOrder));
                const currentPath = window.location.pathname;
                const isInPagesFolder = currentPath.includes('pages/');
                const basePath = isInPagesFolder ? '' : 'pages/';
                window.location.href = basePath + 'checkout.html';
            }
        });
    }
    
    // 出价功能(拍卖商品)
    const submitBidBtn = document.getElementById('submit-bid-btn');
    const bidAmountInput = document.getElementById('bid-amount');
    
    if (submitBidBtn && bidAmountInput) {
        submitBidBtn.addEventListener('click', function(e) {
            e.preventDefault();
            handleBid();
        });
    }
    
    function handleBid() {
        if (!requireLogin(window.location.href)) return;
        
        if (!bidAmountInput) {
            alert('找不到出价输入框');
            return;
        }
        
        const bidAmount = bidAmountInput.value;
        
        if (!bidAmount || isNaN(bidAmount) || parseFloat(bidAmount) <= 0) {
            alert('请输入有效的出价金额');
            return;
        }
        
        // 模拟出价成功
        alert('出价成功!');
        // 重置表单
        if (bidAmountInput) bidAmountInput.value = '';
        
        // 更新当前出价金额(模拟)
        const currentBidAmount = document.querySelector('.current-bid-amount, .current-price .price');
        if (currentBidAmount) {
            currentBidAmount.textContent = '¥' + parseFloat(bidAmount).toLocaleString('zh-CN');
        }
    }
    
    // 设置提醒功能
    const setReminderBtn = document.getElementById('set-reminder-btn');
    if (setReminderBtn) {
        setReminderBtn.addEventListener('click', function() {
            if (!requireLogin(window.location.href)) return;
            alert('提醒设置成功!商品结束前我们会通知您。');
        });
    }
    
    // 关注功能
    const followBtn = document.querySelector('.btn-follow');
    
    if (followBtn) {
        followBtn.addEventListener('click', function() {
            if (this.textContent.includes('关注')) {
                this.textContent = '已关注';
                this.classList.remove('btn-primary');
                this.classList.add('btn-secondary');
            } else {
                this.textContent = '关注';
                this.classList.remove('btn-secondary');
                this.classList.add('btn-primary');
            }
        });
    }
    
    // Tab切换功能
    const tabButtons = document.querySelectorAll('.tab-btn');
    const tabPanels = document.querySelectorAll('.tab-panel');
    
    if (tabButtons.length) {
        tabButtons.forEach(button => {
            button.addEventListener('click', function() {
                const targetTab = this.dataset.tab;
                
                // 移除所有active类
                tabButtons.forEach(btn => btn.classList.remove('active'));
                tabPanels.forEach(panel => panel.classList.remove('active'));
                
                // 添加active类
                this.classList.add('active');
                const targetPanel = document.getElementById(targetTab);
                if (targetPanel) {
                    targetPanel.classList.add('active');
                }
            });
        });
    }
}

// 商品发布页功能
function initProductPost() {
    // 交易方式选择功能
    const transactionMethod = document.querySelectorAll('input[name="transaction-method"]');
    const deliveryFeeGroup = document.getElementById('delivery-fee-group');
    
    if (transactionMethod.length && deliveryFeeGroup) {
        transactionMethod.forEach(radio => {
            radio.addEventListener('change', function() {
                if (this.value === 'delivery') {
                    deliveryFeeGroup.style.display = 'block';
                } else {
                    deliveryFeeGroup.style.display = 'none';
                }
            });
        });
    }
    
    // 商品状态选择功能
    const productStatus = document.getElementById('product-status');
    const startingPrice = document.getElementById('starting-price');
    const buyItNowPrice = document.getElementById('buy-it-now-price');
    
    if (productStatus && startingPrice && buyItNowPrice) {
        productStatus.addEventListener('change', function() {
            if (this.value === 'auction') {
                startingPrice.disabled = false;
                buyItNowPrice.disabled = false;
            } else if (this.value === 'buy-it-now') {
                startingPrice.disabled = true;
                buyItNowPrice.disabled = false;
            }
        });
    }
    
    let selectedMainImage = null;
    const selectedSecondaryImages = [];
    let currentSecondaryIndex = null;
    
    const mainImageInput = document.getElementById('main-image-input');
    const mainImagePreview = document.getElementById('main-image-preview');
    if (mainImageInput && mainImagePreview) {
        mainImagePreview.addEventListener('click', () => mainImageInput.click());
        mainImageInput.addEventListener('change', function () {
            const file = this.files[0];
            if (!file) return;
            if (file.size > 5 * 1024 * 1024) {
                alert('图片大小不能超过5MB');
                return;
            }
            const reader = new FileReader();
            reader.onload = e => {
                selectedMainImage = e.target.result;
                mainImagePreview.classList.add('has-image');
                mainImagePreview.innerHTML = `<img src="${selectedMainImage}" alt="主图预览">`;
            };
            reader.readAsDataURL(file);
        });
    }
    
    const secondaryImageInput = document.getElementById('secondary-image-input');
    const secondaryUploadBoxes = document.querySelectorAll('.secondary-images-upload .upload-box');
    if (secondaryImageInput && secondaryUploadBoxes.length) {
        secondaryUploadBoxes.forEach((box, index) => {
            box.addEventListener('click', () => {
                currentSecondaryIndex = index;
                secondaryImageInput.click();
            });
        });
        
        secondaryImageInput.addEventListener('change', function () {
            const file = this.files[0];
            if (!file || currentSecondaryIndex === null) return;
            if (file.size > 5 * 1024 * 1024) {
                alert('图片大小不能超过5MB');
                return;
            }
            const reader = new FileReader();
            reader.onload = e => {
                selectedSecondaryImages[currentSecondaryIndex] = e.target.result;
                const targetBox = secondaryUploadBoxes[currentSecondaryIndex];
                if (targetBox) {
                    targetBox.classList.add('has-image');
                    targetBox.innerHTML = `<img src="${selectedSecondaryImages[currentSecondaryIndex]}" alt="附图${currentSecondaryIndex + 1}">`;
                }
            };
            reader.readAsDataURL(file);
        });
    }
    
    // 发布商品表单提交
    const postForm = document.querySelector('.post-product-form');
    
    if (postForm) {
        // 检查登录状态
        if (!UserManager.isLoggedIn()) {
            const currentPath = window.location.pathname;
            const isInPagesFolder = currentPath.includes('pages/');
            const basePath = isInPagesFolder ? '' : 'pages/';
            window.location.href = basePath + 'login.html?return=' + encodeURIComponent('post-product.html');
            return;
        }
        
        postForm.addEventListener('submit', function(e) {
            e.preventDefault();
            
            if (!requireLogin('post-product.html')) return;
            
            // 简单验证
            const productTitle = document.getElementById('product-title').value;
            const productCategory = document.getElementById('product-category').value;
            const productCondition = document.getElementById('product-condition').value;
            const productStatus = document.getElementById('product-status').value;
            const productCampus = document.getElementById('product-campus').value;
            const productDescription = document.getElementById('product-description').value;
            
            if (!productTitle || !productCategory || !productCondition || !productStatus || !productCampus || !productDescription) {
                alert('请填写完整的商品信息');
                return;
            }
            
            // 获取当前用户
            const currentUser = UserManager.getCurrentUser();
            if (!currentUser) {
                alert('请先登录');
                return;
            }
            
            // 获取商品信息
            const startingPriceEl = document.getElementById('starting-price');
            const buyItNowPriceEl = document.getElementById('buy-it-now-price');
            const auctionDurationEl = document.getElementById('auction-duration');
            
            const startingPrice = startingPriceEl ? startingPriceEl.value : '';
            const buyItNowPrice = buyItNowPriceEl ? buyItNowPriceEl.value : '';
            const auctionDuration = auctionDurationEl ? auctionDurationEl.value : '';
            
            // 创建商品对象
            const price = productStatus === 'auction' ? parseFloat(startingPrice) : parseFloat(buyItNowPrice);
            const productImages = [];
            if (selectedMainImage) productImages.push(selectedMainImage);
            selectedSecondaryImages.forEach(img => {
                if (img) productImages.push(img);
            });
            const newProduct = {
                title: productTitle,
                category: productCategory,
                price: price || 0,
                originalPrice: parseFloat(buyItNowPrice) || (price * 1.5) || 0,
                status: productStatus === 'auction' ? 'auction' : 'buy-now',
                condition: productCondition,
                seller: {
                    id: currentUser.id || currentUser.username,
                    name: currentUser.username || currentUser.name,
                avatar: currentUser.avatar || 'images/头像1.png',
                    rating: currentUser.rating || 4.5,
                    transactions: currentUser.stats?.交易成功 || 0
                },
                timeLeft: auctionDuration ? `剩余${auctionDuration}天` : '剩余3天',
                image: productImages[0] || 'images/商品111.png',
                images: productImages.length ? productImages : undefined,
                description: productDescription
            };
            
            // 保存用户发布的商品(使用id或username作为标识)
            const userId = currentUser.id || currentUser.username || currentUser.name;
            saveUserProduct(newProduct, userId);
            
            // 更新用户统计数据
            const updatedStats = {
                ...currentUser.stats,
                在售商品: (currentUser.stats?.在售商品 || 0) + 1
            };
            UserManager.updateUser({ stats: updatedStats });
            
            // 模拟发布成功
            alert('商品发布成功!');
            const currentPath = window.location.pathname;
            const isInPagesFolder = currentPath.includes('pages/');
            const basePath = isInPagesFolder ? '../' : '';
            window.location.href = basePath + 'index.html';
        });
    }
}

// 倒计时功能
function initCountdowns() {
    const countdownElements = document.querySelectorAll('.time-left span');
    
    countdownElements.forEach(element => {
        // 解析剩余时间(这里假设元素内容为 "剩余2天" 或 "剩余12小时" 等格式)
        const text = element.textContent;
        
        if (text.includes('天')) {
            const days = parseInt(text.match(/\d+/)[0]);
            startCountdown(element, days * 24 * 60 * 60);
        } else if (text.includes('小时')) {
            const hours = parseInt(text.match(/\d+/)[0]);
            startCountdown(element, hours * 60 * 60);
        } else if (text.includes('分钟')) {
            const minutes = parseInt(text.match(/\d+/)[0]);
            startCountdown(element, minutes * 60);
        }
    });
}

function startCountdown(element, totalSeconds) {
    function updateCountdown() {
        const days = Math.floor(totalSeconds / (24 * 60 * 60));
        const hours = Math.floor((totalSeconds % (24 * 60 * 60)) / (60 * 60));
        const minutes = Math.floor((totalSeconds % (60 * 60)) / 60);
        const seconds = totalSeconds % 60;
        
        let displayText;
        if (days > 0) {
            displayText = `剩余${days}天${hours}小时`;
        } else if (hours > 0) {
            displayText = `剩余${hours}小时${minutes}分钟`;
        } else if (minutes > 0) {
            displayText = `剩余${minutes}分钟${seconds}秒`;
        } else {
            displayText = `剩余${seconds}秒`;
        }
        
        element.textContent = displayText;
        
        if (totalSeconds <= 0) {
            clearInterval(interval);
            element.textContent = '已结束';
        } else {
            totalSeconds--;
        }
    }
    
    // 立即更新一次
    updateCountdown();
    
    // 每秒更新一次
    const interval = setInterval(updateCountdown, 1000);
}

// 商品列表页功能
function initProductList() {
    const getCurrentFilterState = () => {
        const categoryCheckboxes = document.querySelectorAll('.category-filter input[type="checkbox"]:checked');
        const priceMinInput = document.getElementById('price-min');
        const priceMaxInput = document.getElementById('price-max');
        const statusCheckboxes = document.querySelectorAll('.status-filter input[type="checkbox"]:checked');
        const conditionCheckboxes = document.querySelectorAll('.condition-filter input[type="checkbox"]:checked');
        
        const parsePrice = (input, fallback) => {
            if (!input || !input.value) return fallback;
            const value = parseFloat(input.value);
            return Number.isNaN(value) ? fallback : value;
        };
        
        return {
            categories: Array.from(categoryCheckboxes).map(cb => cb.value),
            priceMin: parsePrice(priceMinInput, 0),
            priceMax: parsePrice(priceMaxInput, Infinity),
            status: Array.from(statusCheckboxes).map(cb => cb.value),
            condition: Array.from(conditionCheckboxes).map(cb => cb.value)
        };
    };
    
    // 检查URL参数,应用分类筛选
    const categoryParam = getUrlParam('category');
    if (categoryParam) {
        // 找到对应的分类checkbox并选中
        const categoryCheckboxes = document.querySelectorAll('.category-filter input[type="checkbox"]');
        categoryCheckboxes.forEach(checkbox => {
            if (checkbox.value === categoryParam || checkbox.parentElement.textContent.includes(categoryParam)) {
                checkbox.checked = true;
                // 如果选择了具体分类,取消"全部商品"
                if (checkbox.value !== '全部商品') {
                    const allCheckbox = document.querySelector('.category-filter input[value="全部商品"]');
                    if (allCheckbox) allCheckbox.checked = false;
                }
            }
        });
        // 应用筛选
        setTimeout(() => {
            const applyBtn = document.querySelector('.apply-btn');
            if (applyBtn) {
                applyBtn.click();
            } else {
                const filters = getCurrentFilterState();
                applyFilters(filters);
            }
        }, 100);
    }
    
    const searchParam = getUrlParam('search');
    if (searchParam) {
        const decodedSearch = decodeURIComponent(searchParam);
        currentSearchDisplay = decodedSearch;
        currentSearchKeyword = decodedSearch.trim().toLowerCase();
        
        // 更新搜索框显示
        document.querySelectorAll('.search-box input').forEach(input => {
            input.value = decodedSearch;
        });
        
        // 更新页面标题和面包屑导航
        const pageTitle = document.getElementById('page-title');
        const breadcrumb = document.getElementById('breadcrumb');
        if (pageTitle) {
            pageTitle.textContent = `搜索结果:"${decodedSearch}"`;
        }
        if (breadcrumb) {
            breadcrumb.innerHTML = `<a href="../index.html">首页</a> &gt; <a href="product-list.html">商品分类</a> &gt; 搜索结果`;
        }
        
        setTimeout(() => {
            const filters = getCurrentFilterState();
            filters.keyword = currentSearchKeyword;
            filters.keywordDisplay = currentSearchDisplay;
            applyFilters(filters);
        }, 150);
    } else if (!categoryParam) {
        currentSearchKeyword = '';
        currentSearchDisplay = '';
    }
    
    // 排序功能
    const sortSelect = document.querySelector('.sort-options select');
    
    if (sortSelect) {
        sortSelect.addEventListener('change', function() {
            const sortBy = this.value;
            const productGrid = document.querySelector('.product-grid');
            if (!productGrid) return;
            
            const productCards = Array.from(productGrid.querySelectorAll('.product-card:not([style*="display: none"])'));
            
            // 根据排序方式排序
            productCards.sort((a, b) => {
                switch(sortBy) {
                    case 'price-asc':
                        return (parseFloat(a.dataset.price) || 0) - (parseFloat(b.dataset.price) || 0);
                    case 'price-desc':
                        return (parseFloat(b.dataset.price) || 0) - (parseFloat(a.dataset.price) || 0);
                    case 'newest':
                        return (parseInt(b.dataset.id) || 0) - (parseInt(a.dataset.id) || 0);
                    case 'popular':
                        // 模拟受欢迎程度(可以根据出价次数等)
                        return Math.random() - 0.5;
                    case 'ending-soon':
                        // 模拟即将结束(可以根据剩余时间)
                        return Math.random() - 0.5;
                    default:
                        return 0;
                }
            });
            
            // 重新排列DOM元素
            productCards.forEach(card => productGrid.appendChild(card));
        });
    }
    
    // 分页功能
    const pageLinks = document.querySelectorAll('.page-link');
    
    pageLinks.forEach(link => {
        link.addEventListener('click', function(e) {
            e.preventDefault();
            
            // 移除所有active类
            document.querySelectorAll('.page-item').forEach(item => {
                item.classList.remove('active');
            });
            
            // 给当前点击的分页项添加active类
            this.parentElement.classList.add('active');
            
            // 模拟加载新页面数据
            alert(`加载第${this.textContent}页数据`);
        });
    });
}

// 筛选功能
function initFilters() {
    const applyBtn = document.querySelector('.apply-btn');
    
    // 分类映射:将HTML中的分类名称映射到商品数据中的分类名称
    const categoryMap = {
        '图书教材': '图书教材',
        '图书文具': '图书教材',
        '数码产品': '数码产品',
        '服饰鞋包': '服饰鞋包',
        '家居用品': '家居用品',
        '交通工具': '交通工具',
        '运动器材': '运动器材',
        '乐器音响': '乐器设备',
        '乐器设备': '乐器设备',
        '其他物品': '其他物品'
    };
    
    // 价格筛选应用按钮
    if (applyBtn) {
        applyBtn.addEventListener('click', () => {
            applyCurrentFilters();
        });
    }
    
    // 价格输入框回车事件
    const priceInputs = document.querySelectorAll('#price-min, #price-max');
    priceInputs.forEach(input => {
        if (input) {
            input.addEventListener('keypress', function(e) {
                if (e.key === 'Enter') {
                    applyCurrentFilters();
                }
            });
        }
    });
    
    // 应用当前筛选条件的函数
    function applyCurrentFilters() {
        // 获取筛选条件
        const categoryCheckboxes = document.querySelectorAll('.category-filter input[type="checkbox"]:checked');
        const priceMinInput = document.getElementById('price-min');
        const priceMaxInput = document.getElementById('price-max');
        const priceMin = priceMinInput ? priceMinInput.value : '';
        const priceMax = priceMaxInput ? priceMaxInput.value : '';
        const statusCheckboxes = document.querySelectorAll('.status-filter input[type="checkbox"]:checked');
        const conditionCheckboxes = document.querySelectorAll('.condition-filter input[type="checkbox"]:checked');
        
        // 构建筛选条件对象
        const filters = {
            categories: Array.from(categoryCheckboxes).map(cb => {
                const value = cb.value;
                return value === '全部商品' ? '全部商品' : (categoryMap[value] || value);
            }),
            priceMin: priceMin ? parseFloat(priceMin) : 0,
            priceMax: priceMax ? parseFloat(priceMax) : Infinity,
            status: Array.from(statusCheckboxes).map(cb => cb.value),
            condition: Array.from(conditionCheckboxes).map(cb => cb.value)
        };
        
        // 应用筛选条件
        applyFilters(filters);
    }
        
        // 当选择"全部商品"时,取消选择其他分类
        const allCategoriesCheckbox = document.querySelector('.category-filter input[value="全部商品"]');
        if (allCategoriesCheckbox) {
            allCategoriesCheckbox.addEventListener('change', function() {
                if (this.checked) {
                    // 取消选择其他所有分类
                    document.querySelectorAll('.category-filter input[type="checkbox"]:not([value="全部商品"])').forEach(cb => {
                        cb.checked = false;
                    });
                }
            });
            
            // 当选择其他分类时,取消选择"全部商品"
            document.querySelectorAll('.category-filter input[type="checkbox"]:not([value="全部商品"])').forEach(cb => {
                cb.addEventListener('change', function() {
                    if (this.checked) {
                        allCategoriesCheckbox.checked = false;
                    }
                });
            });
        }
    }
    
    // 添加分类点击筛选功能(实时筛选)
    const categoryCheckboxes = document.querySelectorAll('.category-filter input[type="checkbox"]');
    categoryCheckboxes.forEach(checkbox => {
        checkbox.addEventListener('change', function() {
            // 当选择"全部商品"时,取消选择其他分类
            if (this.value === '全部商品' && this.checked) {
                categoryCheckboxes.forEach(cb => {
                    if (cb !== this) cb.checked = false;
                });
            } else if (this.value !== '全部商品' && this.checked) {
                // 当选择其他分类时,取消选择"全部商品"
                const allCheckbox = document.querySelector('.category-filter input[value="全部商品"]');
                if (allCheckbox) allCheckbox.checked = false;
            }
            
            // 延迟执行,确保checkbox状态已更新
            setTimeout(applyCurrentFilters, 10);
        });
    });
    
    // 添加状态和条件筛选的实时更新
    const statusCheckboxes = document.querySelectorAll('.status-filter input[type="checkbox"]');
    statusCheckboxes.forEach(checkbox => {
        checkbox.addEventListener('change', function() {
            setTimeout(applyCurrentFilters, 10);
        });
    });
    
    const conditionCheckboxes = document.querySelectorAll('.condition-filter input[type="checkbox"]');
    conditionCheckboxes.forEach(checkbox => {
        checkbox.addEventListener('change', function() {
            setTimeout(applyCurrentFilters, 10);
        });
    });

// 渲染商品到指定网格
function resolveImageSrc(src, basePath = '') {
    if (!src) return basePath + 'images/商品111.png';
    if (typeof src === 'string' && (src.startsWith('data:') || src.startsWith('http'))) {
        return src;
    }
    return basePath + src;
}

function renderProductsToGrid(products, productGrid) {
    if (!productGrid || !products.length) return;
    
    // 根据当前页面路径调整图片路径
    const currentPath = window.location.pathname;
    const imagePathPrefix = currentPath.includes('pages/') ? '../' : '';
    
    // 清空现有商品
    productGrid.innerHTML = '';
    
    products.forEach((product, index) => {
        // 创建商品卡片元素
        const productCard = document.createElement('div');
        productCard.className = 'product-card animate-on-scroll animated';
        productCard.dataset.delay = `${index * 0.1}`;
        
        // 设置数据属性用于筛选
        productCard.dataset.category = product.category;
        productCard.dataset.price = product.price;
        productCard.dataset.status = product.status;
        productCard.dataset.condition = product.condition;
        productCard.dataset.id = product.id;
        productCard.dataset.title = (product.title || '').toLowerCase();
        const sellerName = typeof product.seller === 'object' ? (product.seller.name || '') : (product.seller || '');
        productCard.dataset.seller = sellerName.toLowerCase();
        
        // 创建商品卡片内容
        productCard.innerHTML = `
            <div class="product-image">
                <img src="${resolveImageSrc(product.image, imagePathPrefix)}" alt="${product.title}" onerror="this.src='${imagePathPrefix}images/商品111.png'">
                <div class="auction-badge">${product.status === 'auction' ? '拍卖中' : '一口价'}</div>
            </div>
            <div class="product-info">
                <h3 class="product-title">${product.title}</h3>
                <div class="product-price">
                    <span class="current-price">¥${product.price.toLocaleString('zh-CN')}</span>
                    <span class="original-price">¥${product.originalPrice.toLocaleString('zh-CN')}</span>
                </div>
                <div class="product-meta">
                    <span class="seller">
                        <i class="fas fa-user"></i>
                        <span>${sellerName}</span>
                    </span>
                    <span class="time-left">
                        <i class="fas fa-clock"></i>
                        <span>${product.timeLeft}</span>
                    </span>
                </div>
            </div>
        `;
        
        // 添加点击事件,跳转到商品详情页
        productCard.addEventListener('click', function() {
            window.location.href = `${imagePathPrefix}pages/product-details.html?id=${product.id}`;
        });
        
        // 添加到商品网格
        productGrid.appendChild(productCard);
    });
    
    // 重新初始化倒计时功能
    initCountdowns();
}

// 渲染商品列表
function renderProducts(products, selector = '.product-grid') {
    const productGrids = document.querySelectorAll(selector);
    if (!productGrids.length) return;
    
    productGrids.forEach(productGrid => {
        renderProductsToGrid(products, productGrid);
    });
}

// 从商品数据生成商品详情数据
function formatCondition(condition) {
  const conditionMap = {
    'new': '全新',
    'like-new': '95成新',
    'good': '9成新',
    'fair': '8成新',
    'used': '7成新及以下'
  };
  if (conditionMap[condition]) return conditionMap[condition];
  if (!condition) return '9成新';
  if (!isNaN(parseFloat(condition))) return `${condition}成新`;
  return condition;
}

function buildProductImages(product) {
  if (Array.isArray(product.images) && product.images.length) {
    return product.images;
  }
  if (product.image) {
    if (typeof product.image === 'string' && product.image.endsWith('.png')) {
      return [
        product.image,
        product.image.replace('.png', ' (1).png'),
        product.image.replace('.png', ' (2).png'),
        product.image.replace('.png', ' (3).png')
      ];
    }
    return [product.image];
  }
  return ['images/商品111.png'];
}

function normalizeSellerInfo(product) {
  if (product.seller && typeof product.seller === 'object') {
    return {
      id: product.seller.id || product.userId || `seller_${product.id}`,
      name: product.seller.name || '卖家',
      avatar: product.seller.avatar || 'images/头像1.png',
      rating: product.seller.rating || 4.5,
      transactions: product.seller.transactions || 0
    };
  }
  return {
    id: product.userId || `seller_${product.id}`,
    name: product.seller || '卖家',
    avatar: 'images/头像1.png',
    rating: 4.5,
    transactions: Math.floor(Math.random() * 100) + 10
  };
}

function renderProductDetailsFromProduct(product) {
  const images = buildProductImages(product);
  const details = {
    id: product.id,
    title: product.title,
    category: product.category || '其他分类',
    price: Number(product.price) || 0,
    originalPrice: Number(product.originalPrice) || Number(product.price) || 0,
    status: product.status === 'auction' ? '拍卖' : '一口价',
    condition: formatCondition(product.condition),
    images,
    bidCount: product.bidCount || Math.floor(Math.random() * 20) + 5,
    timeLeft: product.timeLeft || '剩余3天',
    endTime: product.endTime || new Date(Date.now() + 2 * 24 * 60 * 60 * 1000).toISOString(),
    seller: normalizeSellerInfo(product),
    description: product.description || `${product.title},${formatCondition(product.condition)},支持校内面交,有意者可以联系我。`,
    bidHistory: product.bidHistory || [
      { bidder: "李四", avatar: "images/头像1.png", amount: Number(product.price) || 0, time: new Date().toLocaleString('zh-CN') }
    ],
    reviews: product.reviews || [
      { reviewer: "孙七", avatar: "images/头像1.png", rating: 5, date: new Date().toLocaleDateString('zh-CN'), content: "卖家很诚信,商品和描述一致,推荐!" }
    ]
  };
  renderProductDetails(details);
}

// 商品详情页渲染函数
function renderProductDetails(details) {
  // 获取当前页面的路径前缀
  const isInPagesFolder = window.location.pathname.includes('/pages/');
  const basePath = isInPagesFolder ? '../' : '';
  const productId = details.id;
  const baseReviews = details.reviews || [];
  const storedReviews = getStoredReviews(productId);
  renderReviewsList([...baseReviews, ...storedReviews], basePath);

  // 安全地获取元素并渲染
  const productTitleEl = document.querySelector('.product-title');
  if (productTitleEl) productTitleEl.textContent = details.title;
  
  const auctionStatusEl = document.querySelector('.auction-status span');
  if (auctionStatusEl) auctionStatusEl.textContent = details.status === '拍卖' ? '拍卖中' : '一口价';
  
  const conditionEl = document.querySelector('.condition span');
  if (conditionEl) conditionEl.textContent = details.condition;

  // 渲染价格信息
  const currentPriceEl = document.querySelector('.current-price .price');
  if (currentPriceEl) currentPriceEl.textContent = `¥${details.price.toLocaleString()}`;
  
  const originalPriceEl = document.querySelector('.original-price .price');
  if (originalPriceEl) originalPriceEl.textContent = `¥${details.originalPrice.toLocaleString()}`;
  
  const bidCountEl = document.querySelector('.bid-count span');
  if (bidCountEl) bidCountEl.textContent = `已有${details.bidCount}人出价`;

  // 渲染倒计时
  const countdownEl = document.querySelector('.countdown');
  if (countdownEl && details.timeLeft) {
    const timeMatch = details.timeLeft.match(/(\d+)/g);
    if (timeMatch && timeMatch.length >= 2) {
      const days = timeMatch[0] || '0';
      const hours = timeMatch[1] || '0';
      const minutes = timeMatch[2] || '0';
      const seconds = timeMatch[3] || '0';
      countdownEl.innerHTML = `
        <div class="time-item">
          <span class="number">${days}</span>
          <span class="unit">天</span>
        </div>
        <span class="separator">:</span>
        <div class="time-item">
          <span class="number">${hours}</span>
          <span class="unit">时</span>
        </div>
        <span class="separator">:</span>
        <div class="time-item">
          <span class="number">${minutes}</span>
          <span class="unit">分</span>
        </div>
        <span class="separator">:</span>
        <div class="time-item">
          <span class="number">${seconds}</span>
          <span class="unit">秒</span>
        </div>
      `;
    }
  }

  // 渲染卖家信息
  const sellerAvatarEl = document.querySelector('.seller-avatar img');
  if (sellerAvatarEl) sellerAvatarEl.src = resolveImageSrc(details.seller.avatar, basePath);
  
  const sellerNameEl = document.querySelector('.seller-name');
  if (sellerNameEl) sellerNameEl.textContent = details.seller.name;
  
  const sellerRatingEl = document.querySelector('.seller-rating .rating');
  if (sellerRatingEl) sellerRatingEl.textContent = details.seller.rating;
  
  const transactionCountEl = document.querySelector('.seller-rating .transaction-count');
  if (transactionCountEl) transactionCountEl.textContent = `${details.seller.transactions}笔交易`;

  // 渲染商品描述
  const descriptionEl = document.querySelector('.description-content');
  if (descriptionEl) descriptionEl.innerHTML = details.description;

  // 渲染出价记录
  const bidHistoryEl = document.querySelector('.bid-history tbody');
  if (bidHistoryEl && details.bidHistory) {
    bidHistoryEl.innerHTML = details.bidHistory.map(bid => `
      <tr>
        <td>
          <div class="bidder-info">
            <img src="${resolveImageSrc(bid.avatar, basePath)}" alt="出价人头像" class="bidder-avatar" onerror="this.src='${basePath}images/头像1.png'">
            <span class="bidder-name">${bid.bidder}</span>
          </div>
        </td>
        <td>¥${bid.amount.toLocaleString()}</td>
        <td>${bid.time}</td>
      </tr>
    `).join('');
  }

  // 渲染商品图片
  if (details.images && details.images.length > 0) {
    const mainImageEl = document.querySelector('.gallery-main img');
    if (mainImageEl) mainImageEl.src = resolveImageSrc(details.images[0], basePath);
    
    const thumbnailsEl = document.querySelector('.gallery-thumbnails');
    if (thumbnailsEl) {
      thumbnailsEl.innerHTML = details.images.map((img, index) => `
        <div class="thumbnail ${index === 0 ? 'active' : ''}">
          <img src="${resolveImageSrc(img, basePath)}" alt="商品图片${index + 1}" onerror="this.src='${resolveImageSrc(details.images[0], basePath)}'">
        </div>
      `).join('');
    }
  }

    // 重新初始化倒计时功能和图片切换
  initCountdowns();
  initProductDetails();
  
  // 根据商品状态显示/隐藏按钮区域
  const otherProductId = getUrlParam('id');
  let currentProduct = null;
  if (otherProductId) {
    currentProduct = findProductById(otherProductId);
  }
  
  const buySection = document.getElementById('buy-section');
  const bidSection = document.getElementById('bid-section');
  
  if (currentProduct) {
    if (currentProduct.status === 'buy-now') {
      // 一口价商品,显示购买区域
      if (buySection) buySection.style.display = 'block';
      if (bidSection) bidSection.style.display = 'none';
    } else {
      // 拍卖商品,显示出价区域
      if (buySection) buySection.style.display = 'none';
      if (bidSection) bidSection.style.display = 'block';
    }
  } else {
    // 如果没有找到商品,根据详情数据判断
    if (details.status === '一口价' || details.status === 'buy-now') {
      if (buySection) buySection.style.display = 'block';
      if (bidSection) bidSection.style.display = 'none';
    } else {
      if (buySection) buySection.style.display = 'none';
      if (bidSection) bidSection.style.display = 'block';
    }
  }
  
  // 初始化联系卖家和查看店铺按钮
  initSellerContactButtons(details);
  initReviewForm(productId, basePath, baseReviews);
}

function generateStarIcons(rating = 0) {
  const fullStars = Math.floor(rating);
  let icons = '';
  for (let i = 0; i < 5; i++) {
    icons += i < fullStars ? '<i class="fas fa-star"></i>' : '<i class="far fa-star"></i>';
  }
  return icons;
}

function renderReviewsList(reviews, basePath) {
  const reviewsEl = document.querySelector('.reviews-list');
  if (!reviewsEl) return;
  if (!reviews || !reviews.length) {
    reviewsEl.innerHTML = '<p style="color: var(--text-muted);">还没有评论</p>';
    return;
  }
  reviewsEl.innerHTML = reviews.map(review => `
    <div class="review-item">
      <div class="review-header">
        <div class="reviewer-info">
          <img src="${resolveImageSrc(review.avatar || 'images/头像1.png', basePath)}" alt="评论人头像" class="reviewer-avatar" onerror="this.src='${basePath}images/头像1.png'">
          <div class="reviewer-details">
            <span class="reviewer-name">${review.reviewer}</span>
            <div class="review-date">${review.date}</div>
          </div>
        </div>
        <div class="review-rating">
          ${generateStarIcons(review.rating)}
        </div>
      </div>
      <div class="review-content">
        ${review.content}
      </div>
    </div>
  `).join('');
}

function getStoredReviews(productId) {
  const store = localStorage.getItem('productReviews');
  if (!store) return [];
  const parsed = JSON.parse(store);
  return parsed[productId] || [];
}

function saveProductReview(productId, review) {
  const store = localStorage.getItem('productReviews');
  const parsed = store ? JSON.parse(store) : {};
  if (!parsed[productId]) {
    parsed[productId] = [];
  }
  parsed[productId].push(review);
  localStorage.setItem('productReviews', JSON.stringify(parsed));
}

function initReviewForm(productId, basePath, baseReviews = []) {
  const reviewForm = document.querySelector('.add-review form');
  const ratingStars = document.querySelectorAll('.rating-input i');
  const ratingInput = document.getElementById('review-rating');
  const reviewTextarea = reviewForm ? reviewForm.querySelector('textarea') : null;
  if (!reviewForm || !ratingInput || !reviewTextarea) return;

  let selectedRating = parseInt(ratingInput.value, 10) || 0;

  const updateStarClasses = value => {
    ratingStars.forEach((star, idx) => {
      if (idx < value) {
        star.classList.add('fas', 'active');
        star.classList.remove('far');
      } else {
        star.classList.add('far');
        star.classList.remove('fas', 'active');
      }
    });
  };

  const setRating = value => {
    selectedRating = value;
    ratingInput.value = value;
    updateStarClasses(value);
  };

  ratingStars.forEach((star, index) => {
    const value = index + 1;
    star.addEventListener('mouseenter', () => updateStarClasses(value));
    star.addEventListener('mouseleave', () => updateStarClasses(selectedRating));
    star.addEventListener('click', () => setRating(value));
  });

  updateStarClasses(selectedRating);

  reviewForm.addEventListener('submit', function(e) {
    e.preventDefault();
    if (!requireLogin(window.location.href)) return;
    const currentUser = UserManager.getCurrentUser();
    if (!currentUser) {
      alert('请先登录');
      return;
    }

    const ratingValue = parseInt(ratingInput.value, 10) || 0;
    const content = reviewTextarea.value.trim();
    if (!ratingValue) {
      alert('请选择评分');
      return;
    }
    if (!content) {
      alert('请输入评论内容');
      return;
    }

    const newReview = {
      reviewer: currentUser.username || currentUser.name || '用户',
      avatar: currentUser.avatar || 'images/头像1.png',
      rating: ratingValue,
      date: new Date().toLocaleDateString('zh-CN'),
      content
    };
    saveProductReview(productId, newReview);
    const combinedReviews = [...baseReviews, ...getStoredReviews(productId)];
    renderReviewsList(combinedReviews, basePath);
    reviewTextarea.value = '';
    setRating(0);
    if (typeof showMessage === 'function') {
      showMessage('评论提交成功!', 'success');
    } else {
      alert('评论提交成功!');
    }
  });
}

// 初始化联系卖家和查看店铺按钮
function initSellerContactButtons(productDetails) {
  const contactBtn = document.getElementById('contact-seller-btn');
  const viewShopBtn = document.getElementById('view-shop-btn');
  
  if (contactBtn) {
    contactBtn.addEventListener('click', function() {
      openChatModal(productDetails.seller);
    });
  }
  
  if (viewShopBtn) {
    viewShopBtn.addEventListener('click', function() {
      const sellerId = productDetails.seller.id || productDetails.seller.name;
      const currentPath = window.location.pathname;
      const isInPagesFolder = currentPath.includes('pages/');
      const basePath = isInPagesFolder ? '' : 'pages/';
      window.location.href = `${basePath}seller-shop.html?seller=${encodeURIComponent(sellerId)}`;
    });
  }
}

// 联系卖家聊天功能
function initSellerContact() {
  // 联系卖家按钮(商品详情页)
  const contactBtn = document.getElementById('contact-seller-btn');
  if (contactBtn) {
    contactBtn.addEventListener('click', function() {
      const productId = getUrlParam('id');
      let currentProduct = null;
      if (productId) {
        currentProduct = findProductById(productId);
      }
      
      if (currentProduct && currentProduct.seller) {
        openChatModal(currentProduct.seller);
      } else if (mockProductDetails && mockProductDetails.seller) {
        openChatModal(mockProductDetails.seller);
      }
    });
  }
  
  // 关闭聊天窗口
  const closeChatBtn = document.getElementById('close-chat-btn');
  if (closeChatBtn) {
    closeChatBtn.addEventListener('click', function() {
      closeChatModal();
    });
  }
  
  // 发送消息
  const sendBtn = document.getElementById('send-message-btn');
  const chatInput = document.getElementById('chat-input');
  
  if (sendBtn && chatInput) {
    sendBtn.addEventListener('click', function() {
      sendChatMessage();
    });
    
    chatInput.addEventListener('keypress', function(e) {
      if (e.key === 'Enter') {
        sendChatMessage();
      }
    });
  }
  
  // 快捷消息按钮
  const quickMsgBtns = document.querySelectorAll('.quick-msg-btn');
  quickMsgBtns.forEach(btn => {
    btn.addEventListener('click', function() {
      const msg = this.getAttribute('data-msg');
      if (chatInput) {
        chatInput.value = msg;
        sendChatMessage();
      }
    });
  });
}

// 打开聊天窗口
function openChatModal(seller) {
  const chatModal = document.getElementById('chat-modal');
  const sellerAvatar = document.getElementById('chat-seller-avatar');
  const sellerName = document.getElementById('chat-seller-name');
  const chatMessages = document.getElementById('chat-messages');
  
  if (!chatModal) return;
  
  // 设置卖家信息
  if (sellerAvatar && seller.avatar) {
    const isInPagesFolder = window.location.pathname.includes('pages/');
    const basePath = isInPagesFolder ? '../' : '';
    sellerAvatar.src = basePath + seller.avatar;
    sellerAvatar.onerror = function() {
      this.src = basePath + 'images/头像1.png';
    };
  }
  
  if (sellerName) {
    sellerName.textContent = seller.name || '卖家';
  }
  
  // 初始化聊天消息(显示欢迎消息)
  if (chatMessages) {
    chatMessages.innerHTML = `
      <div class="chat-message received">
        <img src="${sellerAvatar ? sellerAvatar.src : '../images/头像1.png'}" alt="卖家头像" class="chat-message-avatar">
        <div class="chat-message-content">
          <div class="chat-message-bubble">您好!有什么可以帮助您的吗?</div>
          <div class="chat-message-time">${getCurrentTime()}</div>
        </div>
      </div>
    `;
    chatMessages.scrollTop = chatMessages.scrollHeight;
  }
  
  // 显示聊天窗口
  chatModal.classList.add('active');
  
  // 聚焦输入框
  const chatInput = document.getElementById('chat-input');
  if (chatInput) {
    setTimeout(() => chatInput.focus(), 100);
  }
}

// 关闭聊天窗口
function closeChatModal() {
  const chatModal = document.getElementById('chat-modal');
  if (chatModal) {
    chatModal.classList.remove('active');
  }
}

// 发送聊天消息
function sendChatMessage() {
  const chatInput = document.getElementById('chat-input');
  const chatMessages = document.getElementById('chat-messages');
  const sendBtn = document.getElementById('send-message-btn');
  
  if (!chatInput || !chatMessages) return;
  
  const message = chatInput.value.trim();
  if (!message) return;
  
  // 禁用发送按钮
  if (sendBtn) sendBtn.disabled = true;
  
  // 添加用户消息
  const userMessage = document.createElement('div');
  userMessage.className = 'chat-message sent';
  userMessage.innerHTML = `
    <img src="../images/头像1.png" alt="我的头像" class="chat-message-avatar" onerror="this.src='../images/头像1.png'">
    <div class="chat-message-content">
      <div class="chat-message-bubble">${escapeHtml(message)}</div>
      <div class="chat-message-time">${getCurrentTime()}</div>
    </div>
  `;
  chatMessages.appendChild(userMessage);
  chatMessages.scrollTop = chatMessages.scrollHeight;
  
  // 清空输入框
  chatInput.value = '';
  
  // 模拟卖家回复(延迟1-2秒)
  setTimeout(() => {
    const sellerAvatar = document.getElementById('chat-seller-avatar');
    const replies = [
      '好的,我看到了。',
      '没问题,可以商量。',
      '这个商品还在的。',
      '价格可以适当优惠一些。',
      '可以面交,也可以邮寄。',
      '商品成色很好,您可以放心。'
    ];
    const randomReply = replies[Math.floor(Math.random() * replies.length)];
    
    const sellerMessage = document.createElement('div');
    sellerMessage.className = 'chat-message received';
    sellerMessage.innerHTML = `
      <img src="${sellerAvatar ? sellerAvatar.src : '../images/头像1.png'}" alt="卖家头像" class="chat-message-avatar">
      <div class="chat-message-content">
        <div class="chat-message-bubble">${randomReply}</div>
        <div class="chat-message-time">${getCurrentTime()}</div>
      </div>
    `;
    chatMessages.appendChild(sellerMessage);
    chatMessages.scrollTop = chatMessages.scrollHeight;
    
    // 重新启用发送按钮
    if (sendBtn) sendBtn.disabled = false;
  }, 1000 + Math.random() * 1000);
  
  // 重新启用发送按钮(防止网络延迟)
  setTimeout(() => {
    if (sendBtn) sendBtn.disabled = false;
  }, 3000);
}

// 获取当前时间
function getCurrentTime() {
  const now = new Date();
  const hours = String(now.getHours()).padStart(2, '0');
  const minutes = String(now.getMinutes()).padStart(2, '0');
  return `${hours}:${minutes}`;
}

// HTML转义
function escapeHtml(text) {
  const div = document.createElement('div');
  div.textContent = text;
  return div.innerHTML;
}

// 初始化卖家店铺页面
function initSellerShop() {
  // 检查是否在卖家店铺页面
  if (!window.location.pathname.includes('seller-shop.html')) return;
  
  const sellerId = getUrlParam('seller');
  if (!sellerId) {
    // 如果没有seller参数,显示错误信息
    document.getElementById('seller-products-grid').innerHTML = 
      '<div class="empty-state"><i class="fas fa-exclamation-triangle"></i><p>未找到卖家信息</p></div>';
    return;
  }
  
  // 根据sellerId获取卖家信息(这里使用模拟数据)
  const seller = getSellerById(sellerId);
  if (!seller) {
    document.getElementById('seller-products-grid').innerHTML = 
      '<div class="empty-state"><i class="fas fa-exclamation-triangle"></i><p>未找到卖家信息</p></div>';
    return;
  }
  
  // 渲染卖家信息
  renderSellerShop(seller);
  
  // 联系卖家按钮(店铺页面)
  const contactBtn = document.getElementById('contact-seller-shop-btn');
  if (contactBtn) {
    contactBtn.addEventListener('click', function() {
      openChatModal(seller);
    });
  }
  
  // 排序功能
  const sortSelect = document.getElementById('seller-products-sort');
  if (sortSelect) {
    sortSelect.addEventListener('change', function() {
      renderSellerProducts(seller.products || [], this.value);
    });
  }
}

// 根据ID获取卖家信息
function getSellerById(sellerId) {
  // 从商品数据中查找卖家
  const product = mockProducts.find(p => 
    (p.seller && (p.seller.id === sellerId || p.seller.name === sellerId))
  );
  
  if (product && product.seller) {
    // 获取该卖家的所有商品
    const sellerProducts = mockProducts.filter(p => 
      p.seller && (p.seller.id === product.seller.id || p.seller.name === product.seller.name)
    );
    
    return {
      ...product.seller,
      products: sellerProducts,
      soldCount: Math.floor(Math.random() * 50) + 20
    };
  }
  
  // 如果没有找到,使用默认卖家数据
  return {
    id: sellerId,
    name: sellerId,
    avatar: 'images/头像1.png',
    rating: 4.5,
    transactions: 128,
    products: mockProducts.slice(0, 6),
    soldCount: 28
  };
}

// 渲染卖家店铺页面
function renderSellerShop(seller) {
  const isInPagesFolder = window.location.pathname.includes('pages/');
  const basePath = isInPagesFolder ? '../' : '';
  
  // 渲染卖家头像
  const avatarImg = document.getElementById('seller-shop-avatar-img');
  if (avatarImg) {
    avatarImg.src = basePath + (seller.avatar || 'images/头像1.png');
    avatarImg.onerror = function() {
      this.src = basePath + 'images/头像1.png';
    };
  }
  
  // 渲染卖家名称
  const shopName = document.getElementById('seller-shop-name');
  const shopTitle = document.getElementById('seller-shop-title');
  if (shopName) shopName.textContent = seller.name + '的店铺';
  if (shopTitle) shopTitle.textContent = seller.name + '的店铺';
  
  // 渲染评分
  const rating = seller.rating || 4.5;
  const starsEl = document.getElementById('seller-shop-stars');
  if (starsEl) {
    const fullStars = Math.floor(rating);
    const hasHalfStar = rating % 1 >= 0.5;
    starsEl.innerHTML = '';
    for (let i = 0; i < 5; i++) {
      if (i < fullStars) {
        starsEl.innerHTML += '<i class="fas fa-star"></i>';
      } else if (i === fullStars && hasHalfStar) {
        starsEl.innerHTML += '<i class="fas fa-star-half-alt"></i>';
      } else {
        starsEl.innerHTML += '<i class="far fa-star"></i>';
      }
    }
  }
  
  const ratingEl = document.getElementById('seller-shop-rating');
  if (ratingEl) ratingEl.textContent = rating.toFixed(1);
  
  const transactionsEl = document.getElementById('seller-shop-transactions');
  if (transactionsEl) transactionsEl.textContent = `${seller.transactions || 128}笔交易`;
  
  // 渲染统计数据
  const productsCount = document.getElementById('seller-products-count');
  const soldCount = document.getElementById('seller-sold-count');
  if (productsCount) productsCount.textContent = (seller.products || []).length;
  if (soldCount) soldCount.textContent = seller.soldCount || 0;
  
  // 渲染商品列表
  renderSellerProducts(seller.products || [], 'newest');
}

// 渲染卖家商品列表
function renderSellerProducts(products, sortBy = 'newest') {
  const grid = document.getElementById('seller-products-grid');
  const emptyState = document.getElementById('seller-products-empty');
  
  if (!grid) return;
  
  if (products.length === 0) {
    grid.style.display = 'none';
    if (emptyState) emptyState.style.display = 'block';
    return;
  }
  
  grid.style.display = 'grid';
  if (emptyState) emptyState.style.display = 'none';
  
  // 排序
  let sortedProducts = [...products];
  switch (sortBy) {
    case 'price-asc':
      sortedProducts.sort((a, b) => a.price - b.price);
      break;
    case 'price-desc':
      sortedProducts.sort((a, b) => b.price - a.price);
      break;
    case 'popular':
      sortedProducts.sort((a, b) => (b.bidCount || 0) - (a.bidCount || 0));
      break;
    default: // newest
      sortedProducts.sort((a, b) => b.id - a.id);
  }
  
  const isInPagesFolder = window.location.pathname.includes('pages/');
  const basePath = isInPagesFolder ? '../' : '';
  
    grid.innerHTML = sortedProducts.map(product => {
        const productUrl = `${basePath}product-details.html?id=${product.id}`;
        const imageSrc = resolveImageSrc(product.image, basePath);
    return `
      <div class="product-card" onclick="window.location.href='${productUrl}'">
        <div class="product-image">
                    <img src="${imageSrc}" alt="${product.title}" onerror="this.src='${basePath}images/生成图片.png'">
          ${product.status === 'auction' ? '<span class="auction-badge">拍卖中</span>' : ''}
        </div>
        <div class="product-info">
          <div class="product-title">${product.title}</div>
          <div class="product-price">
            <span class="current-price">¥${product.price.toLocaleString()}</span>
            ${product.originalPrice ? `<span class="original-price">¥${product.originalPrice.toLocaleString()}</span>` : ''}
          </div>
          <div class="product-meta">
            <span class="time-left">
              <i class="fas fa-clock"></i>
              ${product.timeLeft || '剩余3天'}
            </span>
            <span class="seller-info">
              <i class="fas fa-gavel"></i>
              ${product.bidCount || 0}人出价
            </span>
          </div>
        </div>
      </div>
    `;
  }).join('');
}

// 个人中心页面渲染函数
function renderUserCenter(user) {
  if (!user) {
    // 如果未登录,跳转到登录页
    const currentPath = window.location.pathname;
    const isInPagesFolder = currentPath.includes('pages/');
    const basePath = isInPagesFolder ? '' : 'pages/';
    window.location.href = basePath + 'login.html?return=' + encodeURIComponent('user-center.html');
    return;
  }
  
  // 获取当前页面的路径前缀
  const isInPagesFolder = window.location.pathname.includes('/pages/');
  const basePath = isInPagesFolder ? '../' : '';

  // 渲染用户基本信息
  document.querySelectorAll('.user-avatar img').forEach(img => {
    img.src = basePath + (user.avatar || 'images/头像1.png');
    img.onerror = function() {
      this.src = basePath + 'images/头像1.png';
    };
  });
  
  const userNameEl = document.querySelector('.user-info h3');
  if (userNameEl) userNameEl.textContent = user.username || user.name || '用户';
  
  const studentIdEl = document.querySelector('.student-id');
  if (studentIdEl) studentIdEl.textContent = `学号:${user.studentId || '未设置'}`;
  
  const welcomeEl = document.querySelector('.user-center-header h2 + p');
  if (welcomeEl) welcomeEl.textContent = `欢迎回来,${user.username || user.name || '用户'}!`;
  
  const ratingEl = document.querySelector('.user-rating span');
  if (ratingEl) {
    const rating = user.rating || 5.0;
    ratingEl.innerHTML = `<i class="fas fa-star"></i> ${rating.toFixed(1)}`;
  }

  // 渲染用户统计数据
  const statItems = document.querySelectorAll('.user-stats .stat-item');
  const stats = user.stats || {
    在售商品: 0,
    已售商品: 0,
    已购商品: 0,
    交易成功: 0
  };
  
  // 确保统计数据的顺序和标签与页面一致
  const statLabels = ['在售商品', '已售商品', '已购商品', '交易成功'];
  statItems.forEach((item, index) => {
    const statNumber = item.querySelector('.stat-number');
    if (statNumber) {
      statNumber.textContent = stats[statLabels[index]] || 0;
    }
  });

  // 渲染最近活动(从localStorage获取或使用默认)
  const activityList = document.querySelector('.activity-list');
  if (activityList) {
    const activities = user.activities || [
      { icon: "fas fa-shopping-cart", title: "您还没有活动记录", time: new Date().toLocaleDateString('zh-CN') }
    ];
    activityList.innerHTML = activities.map(activity => `
      <div class="activity-item">
        <div class="activity-icon">
          <i class="${activity.icon}"></i>
        </div>
        <div class="activity-content">
          <div class="activity-title">${activity.title}</div>
          <div class="activity-time">${activity.time}</div>
        </div>
      </div>
    `).join('');
  }

  // 渲染在售商品(从localStorage获取用户发布的商品)
  const productGrid = document.querySelector('.user-products .product-grid');
  if (productGrid) {
    const userProducts = getUserProducts(user.id) || [];
    if (userProducts.length > 0) {
      productGrid.innerHTML = userProducts.slice(0, 3).map(product => `
        <div class="product-card" onclick="window.location.href='${basePath}product-details.html?id=${product.id}'">
          <div class="product-image">
            <img src="${resolveImageSrc(product.image, basePath)}" alt="${product.title}">
            <div class="auction-badge">${product.status === 'auction' ? '拍卖中' : '一口价'}</div>
          </div>
          <div class="product-info">
            <h3 class="product-title">${product.title}</h3>
            <div class="product-price">
              <span class="current-price">¥${product.price.toLocaleString()}</span>
            </div>
            <div class="product-meta">
              <span class="time-left">
                <i class="fas fa-clock"></i>
                <span>${product.timeLeft || '剩余3天'}</span>
              </span>
            </div>
          </div>
        </div>
      `).join('');
    } else {
      productGrid.innerHTML = '<p style="text-align: center; color: #999; padding: 20px;">暂无在售商品</p>';
    }
  }
}

// 获取用户发布的商品
function getUserProducts(userId) {
    const products = localStorage.getItem('userProducts');
    if (!products) return [];
    const allProducts = JSON.parse(products);
    // 支持通过userId或username匹配
    return allProducts.filter(p => {
        if (p.userId === userId) return true;
        // 如果没有userId,尝试通过seller字段匹配
        const currentUser = UserManager.getCurrentUser();
        if (currentUser && (p.seller === currentUser.username || p.seller === currentUser.name)) {
            return true;
        }
        return false;
    });
}

// 保存用户发布的商品
function saveUserProduct(product, userId) {
    const products = localStorage.getItem('userProducts');
    const allProducts = products ? JSON.parse(products) : [];
    
    // 确保商品有唯一ID
    const productId = product.id || Date.now();
    
    const newProduct = {
        ...product,
        id: productId,
        userId: userId,
        seller: product.seller || userId, // 确保seller字段存在,用于匹配
        publishTime: new Date().toISOString()
    };
    
    // 检查是否已存在相同ID的商品,如果存在则更新,否则添加
    const existingIndex = allProducts.findIndex(p => p.id === productId);
    if (existingIndex >= 0) {
        allProducts[existingIndex] = newProduct;
    } else {
        allProducts.push(newProduct);
    }
    
    localStorage.setItem('userProducts', JSON.stringify(allProducts));
    return newProduct;
}

function getAllStoredProducts() {
    const products = localStorage.getItem('userProducts');
    return products ? JSON.parse(products) : [];
}

function findProductById(productId) {
    const idNumber = parseInt(productId, 10);
    let product = mockProducts.find(p => p.id === idNumber);
    if (product) return product;
    const storedProducts = getAllStoredProducts();
    return storedProducts.find(p => {
        if (!isNaN(idNumber)) return p.id === idNumber;
        return String(p.id) === String(productId);
    });
}

// 应用筛选条件
function applyFilters(filters) {
    const productCards = document.querySelectorAll('.product-card');
    let visibleCount = 0;
    
    // 检查是否选择了"全部商品"或没有选择任何分类
    const hasAllCategories = filters.categories.includes('全部商品') || filters.categories.length === 0;
    
    // 状态映射:将筛选器中的状态值映射到商品数据中的状态值
    const statusMap = {
        'auction': 'auction',
        'buy-now': 'buy-now',
        'buy-it-now': 'buy-now'
    };
    
    // 分类映射:将筛选器中的分类名称映射到商品数据中的分类名称
    const categoryMap = {
        '图书教材': '图书教材',
        '图书文具': '图书教材',
        '数码产品': '数码产品',
        '服饰鞋包': '服饰鞋包',
        '家居用品': '家居用品',
        '交通工具': '交通工具',
        '运动器材': '运动器材',
        '乐器音响': '乐器设备',
        '乐器设备': '乐器设备',
        '其他物品': '其他物品'
    };
    
    productCards.forEach(card => {
        const price = parseFloat(card.dataset.price) || 0;
        const status = card.dataset.status;
        const condition = card.dataset.condition;
        const category = card.dataset.category;
        const title = card.dataset.title || '';
        const seller = card.dataset.seller || '';
        
        // 检查是否满足所有筛选条件
        const priceMatch = price >= filters.priceMin && price <= filters.priceMax;
        
        // 状态匹配:如果没有选择状态,显示所有;否则检查是否匹配
        let statusMatch = true;
        if (filters.status.length > 0) {
            statusMatch = filters.status.some(s => {
                const mappedStatus = statusMap[s] || s;
                return mappedStatus === status;
            });
        }
        
        // 条件匹配:如果没有选择条件,显示所有;否则检查是否匹配
        const conditionMatch = filters.condition.length === 0 || filters.condition.includes(condition);
        
        // 分类匹配:如果选择了"全部商品"或没有选择分类,显示所有;否则检查是否匹配
        let categoryMatch = hasAllCategories;
        if (!categoryMatch && filters.categories.length > 0) {
            categoryMatch = filters.categories.some(cat => {
                const mappedCat = categoryMap[cat] || cat;
                return mappedCat === category || cat === category;
            });
        }
        
        // 关键词搜索匹配:如果有关键词,检查商品标题和卖家名称是否包含关键词
        let keywordMatch = true;
        if (filters.keyword && filters.keyword.trim()) {
            const keyword = filters.keyword.toLowerCase().trim();
            keywordMatch = title.includes(keyword) || seller.includes(keyword) || 
                         category.toLowerCase().includes(keyword);
        }
        
        // 显示或隐藏商品卡片
        if (priceMatch && statusMatch && conditionMatch && categoryMatch && keywordMatch) {
            card.style.display = 'block';
            visibleCount++;
        } else {
            card.style.display = 'none';
        }
    });
    
    // 如果没有匹配的商品,显示提示信息
    let noResults = document.getElementById('no-results');
    if (visibleCount === 0) {
        let message = '没有找到匹配的商品';
        if (filters.keywordDisplay) {
            message = `没有找到与"${filters.keywordDisplay}"相关的商品`;
        }
        
        if (!noResults) {
            noResults = document.createElement('div');
            noResults.id = 'no-results';
            noResults.innerHTML = `
                <div style="text-align: center; padding: 40px;">
                    <i class="fas fa-search" style="font-size: 48px; color: #ccc; margin-bottom: 15px;"></i>
                    <p style="font-size: 18px; color: #666; margin-bottom: 10px;">${message}</p>
                    <p style="font-size: 14px; color: #999;">建议尝试其他关键词或调整筛选条件</p>
                </div>
            `;
            noResults.style.cssText = 'grid-column: 1 / -1;';
            const productGrid = document.querySelector('.product-grid');
            if (productGrid) {
                productGrid.appendChild(noResults);
            }
        } else {
            noResults.innerHTML = `
                <div style="text-align: center; padding: 40px;">
                    <i class="fas fa-search" style="font-size: 48px; color: #ccc; margin-bottom: 15px;"></i>
                    <p style="font-size: 18px; color: #666; margin-bottom: 10px;">${message}</p>
                    <p style="font-size: 14px; color: #999;">建议尝试其他关键词或调整筛选条件</p>
                </div>
            `;
            noResults.style.display = 'block';
        }
    } else {
        if (noResults) {
            noResults.style.display = 'none';
        }
    }
}

// 辅助函数
// 获取URL参数
function getUrlParam(name) {
    const url = new URL(window.location.href);
    return url.searchParams.get(name);
}

// 设置URL参数
function setUrlParam(name, value) {
    const url = new URL(window.location.href);
    url.searchParams.set(name, value);
    window.history.pushState({}, '', url);
}

// 移除URL参数
function removeUrlParam(name) {
    const url = new URL(window.location.href);
    url.searchParams.delete(name);
    window.history.pushState({}, '', url);
}

// 平滑滚动到顶部
function scrollToTop() {
    window.scrollTo({
        top: 0,
        behavior: 'smooth'
    });
}

// 显示加载动画
function showLoading() {
    // 可以在这里实现加载动画
    console.log('显示加载动画');
}

// 隐藏加载动画
function hideLoading() {
    // 可以在这里实现隐藏加载动画
    console.log('隐藏加载动画');
}

// 显示提示消息
function showMessage(message, type = 'info') {
    // 可以在这里实现提示消息功能
    alert(message);
}

// 初始化购物车页面
function initCartPage() {
    const currentPath = window.location.pathname;
    if (!currentPath.includes('cart.html')) return;
    
    renderCartItems();
    
    // 全选功能
    const selectAll = document.getElementById('select-all');
    if (selectAll) {
        selectAll.addEventListener('change', function() {
            const checkboxes = document.querySelectorAll('.cart-item input[type="checkbox"]');
            checkboxes.forEach(cb => cb.checked = this.checked);
            updateCartSummary();
        });
    }
    
    // 去结算按钮
    const checkoutBtn = document.getElementById('checkout-btn');
    if (checkoutBtn) {
        checkoutBtn.addEventListener('click', function() {
            const selectedItems = getSelectedCartItems();
            if (selectedItems.length === 0) {
                alert('请选择要结算的商品');
                return;
            }
            localStorage.setItem('tempOrder', JSON.stringify(selectedItems));
            window.location.href = 'checkout.html';
        });
    }
}

// 渲染购物车商品
function renderCartItems() {
    const cartItems = CartManager.getCart();
    const cartItemsContainer = document.getElementById('cart-items');
    const cartEmpty = document.getElementById('cart-empty');
    
    if (!cartItemsContainer) return;
    
    if (cartItems.length === 0) {
        cartItemsContainer.style.display = 'none';
        if (cartEmpty) cartEmpty.style.display = 'block';
        updateCartSummary();
        return;
    }
    
    cartItemsContainer.style.display = 'block';
    if (cartEmpty) cartEmpty.style.display = 'none';
    
    const currentPath = window.location.pathname;
    const imagePathPrefix = currentPath.includes('pages/') ? '../' : '';
    
    cartItemsContainer.innerHTML = cartItems.map(item => `
        <div class="cart-item" data-id="${item.id}">
            <label class="item-checkbox">
                <input type="checkbox" class="item-select" checked>
            </label>
            <div class="item-info">
                <img src="${imagePathPrefix}${item.image}" alt="${item.title}" onerror="this.src='${imagePathPrefix}images/商品111.png'">
                <div class="item-details">
                    <h4>${item.title}</h4>
                    <p class="item-seller">卖家:${item.seller}</p>
                    <p class="item-status">${item.status === 'buy-now' ? '一口价' : '拍卖中'}</p>
                </div>
            </div>
            <div class="item-price">¥${item.price.toLocaleString('zh-CN')}</div>
            <div class="item-quantity">
                <button class="quantity-btn minus" data-id="${item.id}">-</button>
                <input type="number" class="quantity-input" value="${item.quantity}" min="1" data-id="${item.id}">
                <button class="quantity-btn plus" data-id="${item.id}">+</button>
            </div>
            <div class="item-subtotal">¥${(item.price * item.quantity).toLocaleString('zh-CN')}</div>
            <div class="item-actions">
                <button class="btn-delete" data-id="${item.id}">
                    <i class="fas fa-trash"></i>
                </button>
            </div>
        </div>
    `).join('');
    
    // 绑定事件
    document.querySelectorAll('.quantity-btn.plus').forEach(btn => {
        btn.addEventListener('click', function() {
            const id = parseInt(this.dataset.id);
            const cart = CartManager.getCart();
            const item = cart.find(i => i.id === id);
            if (item) {
                CartManager.updateQuantity(id, item.quantity + 1);
                renderCartItems();
            }
        });
    });
    
    document.querySelectorAll('.quantity-btn.minus').forEach(btn => {
        btn.addEventListener('click', function() {
            const id = parseInt(this.dataset.id);
            const cart = CartManager.getCart();
            const item = cart.find(i => i.id === id);
            if (item && item.quantity > 1) {
                CartManager.updateQuantity(id, item.quantity - 1);
                renderCartItems();
            }
        });
    });
    
    document.querySelectorAll('.quantity-input').forEach(input => {
        input.addEventListener('change', function() {
            const id = parseInt(this.dataset.id);
            const quantity = parseInt(this.value) || 1;
            CartManager.updateQuantity(id, quantity);
            renderCartItems();
        });
    });
    
    document.querySelectorAll('.btn-delete').forEach(btn => {
        btn.addEventListener('click', function() {
            const id = parseInt(this.dataset.id);
            if (confirm('确定要删除这个商品吗?')) {
                CartManager.removeItem(id);
                renderCartItems();
            }
        });
    });
    
    document.querySelectorAll('.item-select').forEach(checkbox => {
        checkbox.addEventListener('change', function() {
            updateCartSummary();
        });
    });
    
    updateCartSummary();
}

// 获取选中的购物车商品
function getSelectedCartItems() {
    const cart = CartManager.getCart();
    const selectedCheckboxes = document.querySelectorAll('.item-select:checked');
    const selectedIds = Array.from(selectedCheckboxes).map(cb => {
        const item = cb.closest('.cart-item');
        return item ? parseInt(item.dataset.id) : null;
    }).filter(id => id !== null);
    
    return cart.filter(item => selectedIds.includes(item.id));
}

// 更新购物车摘要
function updateCartSummary() {
    const selectedItems = getSelectedCartItems();
    const totalQuantity = selectedItems.reduce((sum, item) => sum + item.quantity, 0);
    const totalPrice = selectedItems.reduce((sum, item) => sum + (item.price * item.quantity), 0);
    
    const totalQuantityEl = document.getElementById('total-quantity');
    const totalPriceEl = document.getElementById('total-price');
    const finalTotalEl = document.getElementById('final-total');
    const checkoutBtn = document.getElementById('checkout-btn');
    
    if (totalQuantityEl) totalQuantityEl.textContent = totalQuantity;
    if (totalPriceEl) totalPriceEl.textContent = '¥' + totalPrice.toLocaleString('zh-CN', {minimumFractionDigits: 2});
    if (finalTotalEl) finalTotalEl.textContent = '¥' + totalPrice.toLocaleString('zh-CN', {minimumFractionDigits: 2});
    if (checkoutBtn) checkoutBtn.disabled = selectedItems.length === 0;
}

// 初始化支付页面
function initCheckoutPage() {
    const currentPath = window.location.pathname;
    if (!currentPath.includes('checkout.html')) return;
    
    renderCheckoutProducts();
    updateOrderSummary();
    
    // 配送方式切换
    const deliveryMethods = document.querySelectorAll('input[name="delivery-method"]');
    deliveryMethods.forEach(radio => {
        radio.addEventListener('change', function() {
            updateOrderSummary();
        });
    });
    
    // 提交订单
    const submitOrderBtn = document.getElementById('submit-order-btn');
    if (submitOrderBtn) {
        submitOrderBtn.addEventListener('click', function() {
            handleSubmitOrder();
        });
    }
}

// 渲染支付页面商品
function renderCheckoutProducts() {
    const tempOrder = localStorage.getItem('tempOrder');
    if (!tempOrder) {
        alert('订单信息不存在,返回购物车');
        window.location.href = 'cart.html';
        return;
    }
    
    const orderItems = JSON.parse(tempOrder);
    const checkoutProducts = document.getElementById('checkout-products');
    if (!checkoutProducts) return;
    
    const currentPath = window.location.pathname;
    const imagePathPrefix = currentPath.includes('pages/') ? '../' : '';
    
    checkoutProducts.innerHTML = orderItems.map(item => `
        <div class="checkout-product-item">
            <img src="${imagePathPrefix}${item.image}" alt="${item.title}" onerror="this.src='${imagePathPrefix}images/商品111.png'">
            <div class="product-info">
                <h4>${item.title}</h4>
                <p>卖家:${item.seller}</p>
            </div>
            <div class="product-price">¥${item.price.toLocaleString('zh-CN')}</div>
            <div class="product-quantity">x${item.quantity}</div>
            <div class="product-subtotal">¥${(item.price * item.quantity).toLocaleString('zh-CN')}</div>
        </div>
    `).join('');
}

// 更新订单摘要
function updateOrderSummary() {
    const tempOrder = localStorage.getItem('tempOrder');
    if (!tempOrder) return;
    
    const orderItems = JSON.parse(tempOrder);
    const totalPrice = orderItems.reduce((sum, item) => sum + (item.price * item.quantity), 0);
    
    const deliveryMethod = document.querySelector('input[name="delivery-method"]:checked');
    const deliveryFee = deliveryMethod && deliveryMethod.value === 'delivery' ? 5.00 : 0.00;
    const finalTotal = totalPrice + deliveryFee;
    
    const orderTotalPriceEl = document.getElementById('order-total-price');
    const orderDeliveryFeeEl = document.getElementById('order-delivery-fee');
    const orderFinalTotalEl = document.getElementById('order-final-total');
    
    if (orderTotalPriceEl) orderTotalPriceEl.textContent = '¥' + totalPrice.toLocaleString('zh-CN', {minimumFractionDigits: 2});
    if (orderDeliveryFeeEl) orderDeliveryFeeEl.textContent = '¥' + deliveryFee.toLocaleString('zh-CN', {minimumFractionDigits: 2});
    if (orderFinalTotalEl) orderFinalTotalEl.textContent = '¥' + finalTotal.toLocaleString('zh-CN', {minimumFractionDigits: 2});
}

// 处理提交订单
function handleSubmitOrder() {
    const addressForm = document.getElementById('address-form');
    if (!addressForm) return;
    
    // 验证表单
    if (!addressForm.checkValidity()) {
        addressForm.reportValidity();
        return;
    }
    
    const formData = new FormData(addressForm);
    const deliveryMethod = document.querySelector('input[name="delivery-method"]:checked');
    const tempOrder = localStorage.getItem('tempOrder');
    
    if (!tempOrder) {
        alert('订单信息不存在');
        return;
    }
    
    const orderData = {
        items: JSON.parse(tempOrder),
        address: {
            receiverName: formData.get('receiver-name'),
            receiverPhone: formData.get('receiver-phone'),
            campus: formData.get('receiver-campus'),
            building: formData.get('receiver-building'),
            detail: formData.get('receiver-detail'),
            notes: formData.get('receiver-notes')
        },
        deliveryMethod: deliveryMethod ? deliveryMethod.value : 'pickup',
        orderTime: new Date().toISOString(),
        orderId: 'ORD' + Date.now()
    };
    
    // 模拟提交订单成功
    alert('订单提交成功!订单号:' + orderData.orderId);
    
    // 从购物车中移除已购买的商品
    const orderItemIds = orderData.items.map(item => item.id);
    orderItemIds.forEach(id => {
        CartManager.removeItem(id);
    });
    
    // 清除临时订单
    localStorage.removeItem('tempOrder');
    
    // 跳转到订单成功页面或首页
    window.location.href = '../index.html';
}

// 模拟订单数据
const mockOrders = [
    {
        orderId: 'ORD20230515001',
        orderDate: '2023-05-15 14:30',
        status: 'completed',
        products: [
            { id: 1, title: 'MacBook Pro 2020款', image: 'images/生成图片 (1).png', price: 5800, quantity: 1 }
        ],
        total: 5800,
        deliveryFee: 0
    },
    {
        orderId: 'ORD20230514002',
        orderDate: '2023-05-14 10:20',
        status: 'shipped',
        products: [
            { id: 2, title: '机械键盘', image: 'images/生成图片 (3).png', price: 120, quantity: 1 }
        ],
        total: 120,
        deliveryFee: 10
    },
    {
        orderId: 'ORD20230513003',
        orderDate: '2023-05-13 16:45',
        status: 'paid',
        products: [
            { id: 3, title: '大学英语教材全套', image: 'images/生成图片 (4).png', price: 80, quantity: 1 }
        ],
        total: 80,
        deliveryFee: 0
    },
    {
        orderId: 'ORD20230512004',
        orderDate: '2023-05-12 09:15',
        status: 'pending',
        products: [
            { id: 4, title: '篮球', image: 'images/生成图片 (7).png', price: 150, quantity: 1 }
        ],
        total: 150,
        deliveryFee: 15
    }
];

// 初始化我的订单页面
function initMyOrders() {
    const currentUser = UserManager.getCurrentUser();
    if (!currentUser) return;
    
    // 渲染用户信息
    renderUserSidebar(currentUser);
    
    // 渲染订单列表
    renderOrders(mockOrders);
    
    // 初始化筛选功能
    const filterBtns = document.querySelectorAll('.orders-filter .filter-btn');
    filterBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            filterBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            const status = this.getAttribute('data-status');
            filterOrders(status);
        });
    });
}

// 渲染订单列表
function renderOrders(orders) {
    const ordersList = document.getElementById('orders-list');
    const emptyState = document.getElementById('orders-empty');
    
    if (!ordersList) return;
    
    if (orders.length === 0) {
        ordersList.style.display = 'none';
        if (emptyState) emptyState.style.display = 'block';
        return;
    }
    
    ordersList.style.display = 'flex';
    if (emptyState) emptyState.style.display = 'none';
    
    const isInPagesFolder = window.location.pathname.includes('pages/');
    const basePath = isInPagesFolder ? '../' : '';
    
    ordersList.innerHTML = orders.map(order => {
        const statusText = {
            'pending': '待付款',
            'paid': '待发货',
            'shipped': '待收货',
            'completed': '已完成',
            'cancelled': '已取消'
        };
        
        const statusActions = {
            'pending': '<button class="btn btn-primary" onclick="payOrder(\'' + order.orderId + '\')">立即付款</button><button class="btn btn-outline" onclick="cancelOrder(\'' + order.orderId + '\')">取消订单</button>',
            'paid': '<button class="btn btn-outline" onclick="viewOrder(\'' + order.orderId + '\')">查看详情</button>',
            'shipped': '<button class="btn btn-primary" onclick="confirmReceive(\'' + order.orderId + '\')">确认收货</button><button class="btn btn-outline" onclick="viewOrder(\'' + order.orderId + '\')">查看详情</button>',
            'completed': '<button class="btn btn-outline" onclick="viewOrder(\'' + order.orderId + '\')">查看详情</button><button class="btn btn-outline" onclick="reviewOrder(\'' + order.orderId + '\')">评价</button>',
            'cancelled': '<button class="btn btn-outline" onclick="viewOrder(\'' + order.orderId + '\')">查看详情</button>'
        };
        
        return `
            <div class="order-item">
                <div class="order-header">
                    <div class="order-info">
                        <div class="order-number">订单号:${order.orderId}</div>
                        <div class="order-date">下单时间:${order.orderDate}</div>
                    </div>
                    <div class="order-status ${order.status}">${statusText[order.status] || order.status}</div>
                </div>
                <div class="order-products">
                    ${order.products.map(product => `
                        <div class="order-product">
                            <img src="${resolveImageSrc(product.image, basePath)}" alt="${product.title}" onerror="this.src='${basePath}images/生成图片.png'">
                            <div class="order-product-info">
                                <div class="order-product-title">${product.title}</div>
                                <div class="order-product-meta">数量:${product.quantity}</div>
                            </div>
                            <div class="order-product-price">¥${product.price.toLocaleString()}</div>
                        </div>
                    `).join('')}
                </div>
                <div class="order-footer">
                    <div class="order-total">
                        <span class="order-total-label">合计:</span>
                        <span class="order-total-amount">¥${(order.total + order.deliveryFee).toLocaleString()}</span>
                    </div>
                    <div class="order-actions">
                        ${statusActions[order.status] || ''}
                    </div>
                </div>
            </div>
        `;
    }).join('');
}

// 筛选订单
function filterOrders(status) {
    let filteredOrders = mockOrders;
    if (status !== 'all') {
        filteredOrders = mockOrders.filter(order => order.status === status);
    }
    renderOrders(filteredOrders);
}

// 订单操作函数
function payOrder(orderId) {
    alert('跳转到支付页面,订单号:' + orderId);
}

function cancelOrder(orderId) {
    if (confirm('确定要取消这个订单吗?')) {
        alert('订单已取消:' + orderId);
        initMyOrders();
    }
}

function confirmReceive(orderId) {
    if (confirm('确认已收到商品?')) {
        alert('确认收货成功:' + orderId);
        initMyOrders();
    }
}

function viewOrder(orderId) {
    alert('查看订单详情:' + orderId);
}

function reviewOrder(orderId) {
    alert('评价订单:' + orderId);
}

// 初始化我的在售页面
function initMyProducts() {
    const currentUser = UserManager.getCurrentUser();
    if (!currentUser) return;
    
    // 渲染用户信息
    renderUserSidebar(currentUser);
    
    // 获取用户的在售商品(从mockProducts和localStorage中获取)
    const mockUserProducts = mockProducts.filter(p => 
        p.seller === currentUser.username || 
        p.seller === currentUser.name ||
        (p.seller && typeof p.seller === 'object' && (p.seller.id === currentUser.id || p.seller.name === currentUser.username))
    );
    
    // 从localStorage获取用户发布的商品
    // 支持通过id或username获取
    const savedUserProducts = getUserProducts(currentUser.id || currentUser.username) || [];
    
    // 合并商品列表,并确保每个商品都有唯一ID
    const allUserProducts = [...mockUserProducts];
    savedUserProducts.forEach(savedProduct => {
        // 检查是否已存在(避免重复)
        if (!allUserProducts.find(p => p.id === savedProduct.id)) {
            allUserProducts.push(savedProduct);
        }
    });
    
    // 为没有ID的商品添加ID
    allUserProducts.forEach((product, index) => {
        if (!product.id) {
            product.id = Date.now() + index;
        }
    });
    
    // 渲染商品列表
    renderMyProducts(allUserProducts);
    
    // 初始化筛选功能
    const filterBtns = document.querySelectorAll('.products-filter .filter-btn');
    filterBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            filterBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            const status = this.getAttribute('data-status');
            filterMyProducts(allUserProducts, status);
        });
    });
}

// 渲染我的在售商品
function renderMyProducts(products) {
    const productsGrid = document.getElementById('my-products-grid');
    const emptyState = document.getElementById('products-empty');
    
    if (!productsGrid) return;
    
    if (products.length === 0) {
        productsGrid.style.display = 'none';
        if (emptyState) emptyState.style.display = 'block';
        return;
    }
    
    productsGrid.style.display = 'grid';
    if (emptyState) emptyState.style.display = 'none';
    
    const isInPagesFolder = window.location.pathname.includes('pages/');
    const basePath = isInPagesFolder ? '../' : '';
    
    productsGrid.innerHTML = products.map(product => {
        const productUrl = `${basePath}product-details.html?id=${product.id}`;
        const statusBadge = product.status === 'auction' ? '<span class="auction-badge">拍卖中</span>' : '<span class="auction-badge" style="background-color: var(--success-color);">一口价</span>';
        const imageSrc = resolveImageSrc(product.image, basePath);
        return `
            <div class="product-card">
                <div class="product-image" onclick="window.location.href='${productUrl}'">
                    <img src="${imageSrc}" alt="${product.title}" onerror="this.src='${basePath}images/生成图片.png'">
                    ${statusBadge}
                </div>
                <div class="product-info">
                    <div class="product-title" onclick="window.location.href='${productUrl}'">${product.title}</div>
                    <div class="product-price">
                        <span class="current-price">¥${product.price.toLocaleString()}</span>
                        ${product.originalPrice ? `<span class="original-price">¥${product.originalPrice.toLocaleString()}</span>` : ''}
                    </div>
                    <div class="product-meta">
                        <span class="time-left">
                            <i class="fas fa-clock"></i>
                            ${product.timeLeft || '剩余3天'}
                        </span>
                        <span class="seller-info">
                            <i class="fas fa-gavel"></i>
                            ${product.bidCount || 0}人出价
                        </span>
                    </div>
                    <div class="product-actions" style="margin-top: 10px; display: flex; gap: 8px;">
                        <button class="btn btn-outline" style="flex: 1; padding: 6px;" onclick="editProduct(${product.id})">
                            <i class="fas fa-edit"></i> 编辑
                        </button>
                        <button class="btn btn-outline" style="flex: 1; padding: 6px;" onclick="deleteProduct(${product.id})">
                            <i class="fas fa-trash"></i> 删除
                        </button>
                    </div>
                </div>
            </div>
        `;
    }).join('');
}

// 筛选我的在售商品
function filterMyProducts(allProducts, status) {
    let filteredProducts = allProducts;
    if (status === 'auction') {
        filteredProducts = allProducts.filter(p => p.status === 'auction');
    } else if (status === 'buy-now') {
        filteredProducts = allProducts.filter(p => p.status === 'buy-now');
    } else if (status === 'sold') {
        filteredProducts = []; // 已售出商品需要从其他地方获取
    }
    renderMyProducts(filteredProducts);
}

// 编辑商品
function editProduct(productId) {
    alert('编辑商品:' + productId);
    // 可以跳转到编辑页面
    // window.location.href = 'post-product.html?edit=' + productId;
}

// 删除商品
function deleteProduct(productId) {
    if (confirm('确定要删除这个商品吗?')) {
        alert('商品已删除:' + productId);
        initMyProducts();
    }
}

// 渲染用户侧边栏(通用函数)
function renderUserSidebar(user) {
    const isInPagesFolder = window.location.pathname.includes('pages/');
    const basePath = isInPagesFolder ? '../' : '';
    
    // 渲染用户头像
    document.querySelectorAll('.user-sidebar .user-avatar img').forEach(img => {
        img.src = basePath + (user.avatar || 'images/头像1.png');
        img.onerror = function() {
            this.src = basePath + 'images/头像1.png';
        };
    });
    
    // 渲染用户信息
    const userNameEl = document.querySelector('.user-sidebar .user-info h3');
    if (userNameEl) userNameEl.textContent = user.username || user.name || '用户';
    
    const studentIdEl = document.querySelector('.user-sidebar .student-id');
    if (studentIdEl) studentIdEl.textContent = `学号:${user.studentId || '未设置'}`;
    
    const ratingEl = document.querySelector('.user-sidebar .user-rating span');
    if (ratingEl) {
        const rating = user.rating || 5.0;
        ratingEl.innerHTML = `<i class="fas fa-star"></i> ${rating.toFixed(1)}`;
    }
}

// 初始化设置页面
function initSettings() {
    const currentUser = UserManager.getCurrentUser();
    if (!currentUser) return;
    
    // 渲染用户信息
    renderUserSidebar(currentUser);
    
    // 填充表单数据
    const usernameInput = document.getElementById('username');
    const studentIdInput = document.getElementById('student-id');
    const emailInput = document.getElementById('email');
    const phoneInput = document.getElementById('phone');
    
    if (usernameInput) usernameInput.value = currentUser.username || currentUser.name || '';
    if (studentIdInput) studentIdInput.value = currentUser.studentId || '';
    if (emailInput) emailInput.value = currentUser.email || '';
    if (phoneInput) phoneInput.value = currentUser.phone || '';
    
    // 头像上传
    const avatarInput = document.getElementById('avatar-input');
    const avatarPreview = document.getElementById('avatar-preview');
    if (avatarInput && avatarPreview) {
        avatarInput.addEventListener('change', function(e) {
            const file = e.target.files[0];
            if (file) {
                if (file.size > 2 * 1024 * 1024) {
                    alert('图片大小不能超过2MB');
                    return;
                }
                const reader = new FileReader();
                reader.onload = function(e) {
                    avatarPreview.src = e.target.result;
                };
                reader.readAsDataURL(file);
            }
        });
    }
    
    // 基本信息表单提交
    const profileForm = document.getElementById('profile-form');
    if (profileForm) {
        profileForm.addEventListener('submit', function(e) {
            e.preventDefault();
            const formData = {
                username: usernameInput ? usernameInput.value : '',
                studentId: studentIdInput ? studentIdInput.value : '',
                email: emailInput ? emailInput.value : '',
                phone: phoneInput ? phoneInput.value : ''
            };
            
            // 更新用户信息
            const updatedUser = { ...currentUser, ...formData };
            UserManager.updateUser(updatedUser);
            
            alert('信息保存成功!');
            updateNavbar();
        });
    }
    
    // 密码修改表单提交
    const passwordForm = document.getElementById('password-form');
    if (passwordForm) {
        passwordForm.addEventListener('submit', function(e) {
            e.preventDefault();
            const oldPassword = document.getElementById('old-password').value;
            const newPassword = document.getElementById('new-password').value;
            const confirmPassword = document.getElementById('confirm-password').value;
            
            if (newPassword.length < 6) {
                alert('新密码长度至少6位');
                return;
            }
            
            if (newPassword !== confirmPassword) {
                alert('两次输入的密码不一致');
                return;
            }
            
            // 这里应该验证旧密码,简化处理
            alert('密码修改成功!');
            passwordForm.reset();
        });
    }
    
    // 保存通知设置
    const saveNotificationsBtn = document.getElementById('save-notifications');
    if (saveNotificationsBtn) {
        saveNotificationsBtn.addEventListener('click', function() {
            const settings = {
                emailNotification: document.getElementById('email-notification').checked,
                smsNotification: document.getElementById('sms-notification').checked,
                bidNotification: document.getElementById('bid-notification').checked
            };
            localStorage.setItem('userNotificationSettings', JSON.stringify(settings));
            alert('通知设置已保存!');
        });
    }
    
    // 保存隐私设置
    const savePrivacyBtn = document.getElementById('save-privacy');
    if (savePrivacyBtn) {
        savePrivacyBtn.addEventListener('click', function() {
            const privacy = {
                showPhone: document.getElementById('show-phone').checked,
                showEmail: document.getElementById('show-email').checked
            };
            localStorage.setItem('userPrivacySettings', JSON.stringify(privacy));
            alert('隐私设置已保存!');
        });
    }
    
    // 加载保存的设置
    const notificationSettings = localStorage.getItem('userNotificationSettings');
    if (notificationSettings) {
        const settings = JSON.parse(notificationSettings);
        if (document.getElementById('email-notification')) document.getElementById('email-notification').checked = settings.emailNotification;
        if (document.getElementById('sms-notification')) document.getElementById('sms-notification').checked = settings.smsNotification;
        if (document.getElementById('bid-notification')) document.getElementById('bid-notification').checked = settings.bidNotification;
    }
    
    const privacySettings = localStorage.getItem('userPrivacySettings');
    if (privacySettings) {
        const privacy = JSON.parse(privacySettings);
        if (document.getElementById('show-phone')) document.getElementById('show-phone').checked = privacy.showPhone;
        if (document.getElementById('show-email')) document.getElementById('show-email').checked = privacy.showEmail;
    }
}

style.css

/* 全局样式和重置 */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Arial', 'Microsoft YaHei', sans-serif;
    line-height: 1.6;
    color: #333;
    background-color: #f8f9fa;
}

.container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* 颜色变量 */
:root {
    --primary-color: #007bff;
    --secondary-color: #6c757d;
    --success-color: #28a745;
    --danger-color: #dc3545;
    --warning-color: #ffc107;
    --info-color: #17a2b8;
    --light-color: #f8f9fa;
    --dark-color: #343a40;
    --border-color: #dee2e6;
    --text-color: #333;
    --text-muted: #6c757d;
    --bg-color: #fff;
    --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.1);
    --shadow-md: 0 4px 8px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 10px 20px rgba(0, 0, 0, 0.1);
    --transition: all 0.3s ease;
}

/* 导航栏样式 */
.navbar {
    background-color: var(--bg-color);
    box-shadow: var(--shadow-sm);
    position: sticky;
    top: 0;
    z-index: 1000;
}

.navbar .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 20px;
}

.logo {
    display: flex;
    align-items: center;
    font-size: 24px;
    font-weight: bold;
    color: var(--primary-color);
}

.logo i {
    margin-right: 10px;
    font-size: 28px;
}

.search-box {
    display: flex;
    width: 40%;
    max-width: 500px;
}

.search-box input {
    flex: 1;
    padding: 10px 15px;
    border: 1px solid var(--border-color);
    border-radius: 4px 0 0 4px;
    font-size: 16px;
}

.search-box button {
    padding: 10px 20px;
    background-color: var(--primary-color);
    color: white;
    border: none;
    border-radius: 0 4px 4px 0;
    cursor: pointer;
    transition: var(--transition);
}

.search-box button:hover {
    background-color: #0056b3;
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.nav-links {
    display: flex;
    list-style: none;
    align-items: center;
}

.nav-links li {
    margin-left: 20px;
}

.nav-links a {
    text-decoration: none;
    color: var(--text-color);
    padding: 8px 15px;
    border-radius: 4px;
    transition: var(--transition);
    display: flex;
    align-items: center;
}

.nav-links a:hover, .nav-links a.active {
    color: var(--primary-color);
    background-color: rgba(0, 123, 255, 0.1);
    transform: translateY(-1px);
    box-shadow: var(--shadow-sm);
}

.user-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    margin-right: 8px;
    object-fit: cover;
}

.dropdown {
    position: relative;
}

.dropdown-menu {
    position: absolute;
    top: 100%;
    right: 0;
    background-color: var(--bg-color);
    box-shadow: var(--shadow-md);
    border-radius: 4px;
    min-width: 180px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: var(--transition);
    z-index: 1001;
}

.dropdown:hover .dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.dropdown-menu a {
    display: block;
    padding: 10px 15px;
    margin: 0;
    color: var(--text-color);
    text-decoration: none;
    transition: var(--transition);
}

.dropdown-menu a:hover {
    background-color: var(--light-color);
    color: var(--primary-color);
}

.nav-links .user-avatar {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    object-fit: cover;
    margin-right: 8px;
    vertical-align: middle;
}

/* 轮播图样式 */
.carousel {
    position: relative;
    width: 100%;
    max-height: 600px;
    overflow: hidden;
}

.carousel-inner {
    display: flex;
    transition: transform 0.5s ease;
}

.carousel-item {
    min-width: 100%;
    height: 600px;
    position: relative;
}

.carousel-item img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    background-color: #f0f0f0;
}

.carousel-indicators {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 10px;
    z-index: 10;
}

.carousel-indicators .indicator {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.5);
    cursor: pointer;
    transition: all 0.3s ease;
}

.carousel-indicators .indicator.active {
    background-color: rgba(255, 255, 255, 0.9);
    width: 30px;
    border-radius: 6px;
}

.carousel-caption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(0, 0, 0, 0.5);
    color: white;
    padding: 20px;
    text-align: center;
}

.carousel-control {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0, 0, 0, 0.5);
    color: white;
    border: none;
    padding: 10px;
    cursor: pointer;
    font-size: 24px;
    transition: var(--transition);
}

.carousel-control:hover {
    background: rgba(0, 0, 0, 0.7);
}

.carousel-control-prev {
    left: 0;
}

.carousel-control-next {
    right: 0;
}

/* 商品分类样式 */
.categories {
    padding: 30px 0;
}

.section-title {
    text-align: center;
    margin-bottom: 30px;
    font-size: 28px;
    color: var(--text-color);
}

.categories-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 20px;
}

.category-item {
    text-align: center;
    padding: 20px;
    background-color: var(--bg-color);
    border-radius: 8px;
    box-shadow: var(--shadow-sm);
    transition: var(--transition);
    cursor: pointer;
}

.category-item:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: var(--shadow-md);
}

.category-item i {
    font-size: 36px;
    color: var(--primary-color);
    margin-bottom: 10px;
}

.category-item span {
    display: block;
    font-size: 14px;
    color: var(--text-color);
}

/* 商品卡片样式 */
.products-section {
    padding: 30px 0;
}

.products-section .section-title {
    text-align: left;
    margin-bottom: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.products-section .section-title a {
    font-size: 16px;
    color: var(--primary-color);
    text-decoration: none;
}

.product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 20px;
    margin-bottom: 30px;
}

.product-card {
    background-color: var(--bg-color);
    border-radius: 8px;
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    transition: var(--transition);
    cursor: pointer;
}

.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.animate-on-scroll.animated {
    opacity: 1;
    transform: translateY(0);
}

.product-card:hover {
    transform: translateY(-5px) scale(1.01);
    box-shadow: var(--shadow-md);
}

.product-image {
    position: relative;
    height: 200px;
    overflow: hidden;
}

.product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.product-card:hover .product-image img {
    transform: scale(1.05);
}

.auction-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    background-color: var(--primary-color);
    color: white;
    padding: 5px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: bold;
}

.product-info {
    padding: 15px;
}

.product-title {
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 10px;
    color: var(--text-color);
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    height: 48px;
}

.product-price {
    display: flex;
    align-items: center;
    margin-bottom: 10px;
}

.current-price {
    font-size: 20px;
    font-weight: bold;
    color: var(--danger-color);
}

.original-price {
    font-size: 14px;
    color: var(--text-muted);
    text-decoration: line-through;
    margin-left: 10px;
}

.product-meta {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: var(--text-muted);
}

.time-left {
    display: flex;
    align-items: center;
}

.time-left i {
    margin-right: 5px;
}

.seller-info {
    display: flex;
    align-items: center;
}

.seller-info img {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    margin-right: 5px;
    object-fit: cover;
}

/* 按钮样式 */
.btn {
    display: inline-block;
    padding: 10px 20px;
    font-size: 16px;
    font-weight: bold;
    text-align: center;
    text-decoration: none;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
    transition: left 0.5s;
}

.btn-primary {
    background-color: var(--primary-color);
    color: white;
}

.btn-primary:hover {
    background-color: #0056b3;
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.btn-primary:hover::before {
    left: 100%;
}

.btn-secondary {
    background-color: var(--secondary-color);
    color: white;
}

.btn-secondary:hover {
    background-color: #5a6268;
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.btn-secondary:hover::before {
    left: 100%;
}

/* 按钮波纹效果 */
.ripple {
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.6);
    transform: scale(0);
    animation: ripple-animation 0.6s linear;
    pointer-events: none;
    z-index: 1000;
}

@keyframes ripple-animation {
    to {
        transform: scale(4);
        opacity: 0;
    }
}

/* 页面加载动画 */
.page-loader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.95);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    transition: opacity 0.5s ease, visibility 0.5s ease;
}

.page-loader.hidden {
    opacity: 0;
    visibility: hidden;
}

.loader-spinner {
    width: 60px;
    height: 60px;
    border: 6px solid #f3f3f3;
    border-top: 6px solid var(--primary-color);
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin-bottom: 20px;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.page-loader p {
    font-size: 18px;
    color: var(--text-color);
    font-weight: bold;
}

.btn-success {
    background-color: var(--success-color);
    color: white;
}

.btn-success:hover {
    background-color: #218838;
}

.btn-danger {
    background-color: var(--danger-color);
    color: white;
}

.btn-danger:hover {
    background-color: #c82333;
}

.btn-warning {
    background-color: var(--warning-color);
    color: var(--text-color);
}

.btn-warning:hover {
    background-color: #e0a800;
}

/* 页脚样式 */
.footer {
    background-color: var(--dark-color);
    color: white;
    padding: 40px 0 20px;
    margin-top: 50px;
}

.footer-content {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 30px;
    margin-bottom: 30px;
}

.footer-section h3 {
    margin-bottom: 20px;
    color: white;
}

.footer-section.about .logo {
    color: white;
    margin-bottom: 15px;
}

.footer-section.about p {
    color: #ccc;
    line-height: 1.8;
}

.social-links {
    margin-top: 20px;
}

.social-links a {
    display: inline-block;
    width: 40px;
    height: 40px;
    background-color: rgba(255, 255, 255, 0.1);
    color: white;
    text-align: center;
    line-height: 40px;
    border-radius: 50%;
    margin-right: 10px;
    transition: var(--transition);
}

.social-links a:hover {
    background-color: var(--primary-color);
    transform: translateY(-3px);
}

.footer-section.links ul {
    list-style: none;
}

.footer-section.links ul li {
    margin-bottom: 10px;
}

.footer-section.links ul li a {
    color: #ccc;
    text-decoration: none;
    transition: var(--transition);
}

.footer-section.links ul li a:hover {
    color: var(--primary-color);
    padding-left: 5px;
}

.footer-section.contact ul {
    list-style: none;
}

.footer-section.contact ul li {
    margin-bottom: 15px;
    display: flex;
    align-items: flex-start;
}

.footer-section.contact ul li i {
    color: var(--primary-color);
    margin-right: 15px;
    font-size: 18px;
    margin-top: 3px;
}

.footer-section.contact ul li span {
    color: #ccc;
}

.footer-bottom {
    text-align: center;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    color: #999;
}

/* 商品列表页样式 */
.product-list {
    padding: 20px 0;
}

.page-header {
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--border-color);
}

.page-header h1 {
    font-size: 24px;
    margin-bottom: 10px;
    color: var(--text-color);
}

.breadcrumb {
    font-size: 13px;
    color: #666;
}

.breadcrumb a {
    color: var(--primary-color);
    text-decoration: none;
}

.breadcrumb a:hover {
    text-decoration: underline;
}

.product-list-container {
    display: grid;
    grid-template-columns: 250px 1fr;
    gap: 20px;
    padding: 20px 0;
}

.sidebar {
    background-color: var(--bg-color);
    padding: 20px;
    border-radius: 8px;
    box-shadow: var(--shadow-sm);
    height: fit-content;
    position: sticky;
    top: 80px;
}

.sidebar h3 {
    margin-bottom: 15px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-color);
    font-size: 16px;
}

.filter-section {
    margin-bottom: 25px;
}

.category-filter {
    list-style: none;
}

.category-filter li {
    margin-bottom: 8px;
}

.category-filter li a {
    text-decoration: none;
    color: var(--text-color);
    font-size: 14px;
    display: block;
    padding: 5px 0;
    transition: var(--transition);
}

.category-filter li a:hover, .category-filter li a.active {
    color: var(--primary-color);
}

.price-filter {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}

.price-filter span {
    text-align: center;
    color: var(--text-muted);
}

.price-filter input[type="number"] {
    width: 100%;
    padding: 8px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    font-size: 13px;
}

.price-filter button {
    grid-column: 1 / -1;
    justify-self: end;
    padding: 8px 12px;
    background-color: var(--primary-color);
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 13px;
    transition: var(--transition);
}

.price-filter button:hover {
    background-color: #0056b3;
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.status-filter, .condition-filter {
    list-style: none;
}

.status-filter li, .condition-filter li {
    margin-bottom: 8px;
}

.status-filter li label, .condition-filter li label {
    display: flex;
    align-items: center;
    cursor: pointer;
    font-size: 13px;
    color: var(--text-color);
}

.status-filter li input[type="checkbox"], .condition-filter li input[type="checkbox"] {
    margin-right: 8px;
}

/* 商品网格 */
.product-grid-container {
    background-color: var(--bg-color);
    padding: 20px;
    border-radius: 8px;
    box-shadow: var(--shadow-sm);
}

.sort-options {
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.sort-options span {
    font-size: 14px;
    color: var(--text-color);
}

.sort-options select {
    padding: 8px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    font-size: 13px;
    color: var(--text-color);
    background-color: white;
}

.price-range {
    padding: 10px 0;
}

.price-inputs {
    display: flex;
    gap: 10px;
    margin-bottom: 10px;
}

.price-inputs input {
    flex: 1;
    padding: 8px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    font-size: 13px;
}

.apply-btn {
    width: 100%;
    padding: 8px;
    background-color: var(--primary-color);
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 13px;
    transition: var(--transition);
}

.apply-btn:hover {
    background-color: #0056b3;
}

/* 分页样式 */
.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 30px 0;
    gap: 10px;
}

.pagination a {
    padding: 8px 12px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    color: var(--text-color);
    text-decoration: none;
    transition: var(--transition);
    font-size: 14px;
}

.pagination a:hover {
    background-color: var(--hover-color);
    border-color: var(--primary-color);
    background-color: var(--primary-color);
    color: white;
    transform: translateY(-2px);
    box-shadow: var(--shadow-sm);
    border-color: var(--primary-color);
}

.pagination a.active {
    background-color: var(--primary-color);
    color: white;
    border-color: var(--primary-color);
}

.pagination a.prev,
.pagination a.next {
    background-color: var(--bg-color);
    font-weight: 500;
}

.pagination a.prev:hover,
.pagination a.next:hover {
    background-color: var(--hover-color);
}

/* 商品详情页样式 */
.product-details {
    padding: 20px 0;
}

.product-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 30px;
}

.product-gallery {
    background-color: var(--bg-color);
    padding: 20px;
    border-radius: 8px;
    box-shadow: var(--shadow-sm);
}

/* 360度产品预览样式 */
.product-360-view {
    background-color: #ffffff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 20px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    transition: box-shadow 0.3s ease;
}

.product-360-view:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.spinner-container {
    width: 100%;
    height: 400px;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    overflow: hidden;
    position: relative;
    margin-bottom: 15px;
    cursor: grab;
    background-color: #f8f9fa;
    display: flex;
    align-items: center;
    justify-content: center;
}

.spinner-container:active {
    cursor: grabbing;
}

.spinner-container img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-width: 100%;
    max-height: 100%;
    transition: transform 0.1s ease;
    user-select: none;
}

.view-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
}

.view-controls .btn-sm {
    padding: 6px 12px;
    font-size: 14px;
}

.zoom-controls {
    display: flex;
    gap: 5px;
}

.view-hint {
    display: flex;
    align-items: center;
    gap: 5px;
    color: #6c757d;
    font-size: 14px;
}

.view-hint i {
    font-size: 16px;
}

.gallery-container {
    background-color: #ffffff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 20px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

/* 响应式设计 */
@media (max-width: 768px) {
    .spinner-container {
        height: 300px;
    }
    
    .view-controls {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .view-hint {
        font-size: 12px;
    }
}

.gallery-thumbnails {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-bottom: 15px;
}

.gallery-thumbnails .thumbnail {
    height: 80px;
    overflow: hidden;
    border-radius: 4px;
    cursor: pointer;
    border: 2px solid transparent;
    transition: var(--transition);
}

.gallery-thumbnails .thumbnail:hover,
.gallery-thumbnails .thumbnail.active {
    border-color: var(--primary-color);
}

.gallery-thumbnails .thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gallery-main {
    height: 400px;
    overflow: hidden;
    border-radius: 8px;
}

.gallery-main img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.product-tabs {
    background-color: var(--bg-color);
    padding: 20px;
    border-radius: 8px;
    box-shadow: var(--shadow-sm);
}

.tabs {
    display: flex;
    border-bottom: 2px solid var(--border-color);
    margin-bottom: 20px;
}

.tab-btn {
    padding: 12px 24px;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    font-size: 16px;
    color: var(--text-muted);
    transition: var(--transition);
    margin-bottom: -2px;
}

.tab-btn:hover {
    color: var(--primary-color);
}

.tab-btn.active {
    color: var(--primary-color);
    border-bottom-color: var(--primary-color);
}

.tab-panel {
    display: none;
}

.tab-panel.active {
    display: block;
}

.tab-panel h3 {
    margin-bottom: 15px;
    font-size: 18px;
    color: var(--text-color);
}

.bid-history table {
    width: 100%;
    border-collapse: collapse;
}

.bid-history th,
.bid-history td {
    padding: 12px;
    text-align: left;
    border-bottom: 1px solid var(--border-color);
}

.bid-history th {
    background-color: var(--light-color);
    font-weight: bold;
}

.bidder-info {
    display: flex;
    align-items: center;
    gap: 10px;
}

.bidder-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
}

.review-item {
    padding: 15px 0;
    border-bottom: 1px solid var(--border-color);
}

.review-item:last-child {
    border-bottom: none;
}

.review-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 10px;
}

.reviewer-info {
    display: flex;
    align-items: center;
    gap: 10px;
}

.reviewer-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
}

.reviewer-name {
    font-weight: bold;
    color: var(--text-color);
}

.review-date {
    font-size: 12px;
    color: var(--text-muted);
}

.review-rating {
    color: var(--warning-color);
}

.review-content {
    color: var(--text-color);
    line-height: 1.6;
}

.add-review {
    margin-top: 30px;
    padding-top: 30px;
    border-top: 1px solid var(--border-color);
}

.rating-input {
    display: flex;
    gap: 5px;
    margin-bottom: 15px;
}

.rating-input i {
    font-size: 20px;
    color: var(--text-muted);
    cursor: pointer;
    transition: var(--transition);
}

.rating-input i:hover,
.rating-input i.active {
    color: var(--warning-color);
}

.bid-section {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--border-color);
}

.bid-input {
    margin-bottom: 15px;
}

.bid-input .label {
    display: block;
    margin-bottom: 8px;
    font-weight: bold;
}

.input-group {
    display: flex;
    align-items: center;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    overflow: hidden;
}

.input-group .currency {
    padding: 12px;
    background-color: var(--light-color);
    border-right: 1px solid var(--border-color);
}

.input-group input {
    flex: 1;
    padding: 12px;
    border: none;
    font-size: 16px;
}

.bid-buttons {
    display: flex;
    gap: 10px;
}

.bid-buttons .btn {
    flex: 1;
}

.seller-info h3 {
    margin-bottom: 15px;
    font-size: 18px;
}

.seller-profile {
    display: flex;
    align-items: center;
    gap: 15px;
}

.seller-actions {
    display: flex;
    gap: 10px;
    margin-left: auto;
}

.btn-outline {
    background-color: transparent;
    border: 1px solid var(--border-color);
    color: var(--text-color);
}

.btn-outline:hover {
    background-color: var(--light-color);
}

.btn-block {
    width: 100%;
    display: block;
}

.product-details-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.product-images {
    background-color: var(--bg-color);
    padding: 20px;
    border-radius: 8px;
    box-shadow: var(--shadow-sm);
}

.main-image {
    height: 400px;
    overflow: hidden;
    border-radius: 8px;
    margin-bottom: 15px;
}

.main-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.thumbnails {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}

.thumbnail-item {
    height: 80px;
    overflow: hidden;
    border-radius: 4px;
    cursor: pointer;
    border: 2px solid transparent;
    transition: var(--transition);
}

.thumbnail-item:hover,
.thumbnail-item.active {
    border-color: var(--primary-color);
}

.thumbnail-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-info {
    background-color: var(--bg-color);
    padding: 20px;
    border-radius: 8px;
    box-shadow: var(--shadow-sm);
}

.product-info h1 {
    font-size: 24px;
    margin-bottom: 15px;
    color: var(--text-color);
}

.product-price-info {
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--border-color);
}

.current-bid {
    display: flex;
    align-items: center;
    margin-bottom: 10px;
}

.current-bid-label {
    font-size: 16px;
    color: var(--text-muted);
    margin-right: 10px;
}

.current-bid-amount {
    font-size: 32px;
    font-weight: bold;
    color: var(--danger-color);
}

.original-price {
    font-size: 18px;
}

.product-meta-info {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--border-color);
}

.meta-item {
    display: flex;
    align-items: center;
    font-size: 14px;
    color: var(--text-color);
}

.meta-item i {
    color: var(--primary-color);
    margin-right: 8px;
    font-size: 16px;
}

.timer {
    background-color: var(--warning-color);
    color: var(--text-color);
    padding: 10px;
    border-radius: 4px;
    margin-bottom: 20px;
    text-align: center;
    font-weight: bold;
}

.bid-form {
    margin-bottom: 20px;
}

.bid-form label {
    display: block;
    margin-bottom: 8px;
    font-weight: bold;
}

.bid-input-group {
    display: flex;
    gap: 10px;
}

.bid-input-group input {
    flex: 1;
    padding: 12px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    font-size: 16px;
}

.action-buttons {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

.seller-info-section {
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px solid var(--border-color);
}

.seller-info-section h3 {
    margin-bottom: 15px;
    font-size: 18px;
}

.seller-profile {
    display: flex;
    align-items: center;
}

.seller-avatar {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    object-fit: cover;
    margin-right: 15px;
}

.seller-details h4 {
    margin-bottom: 5px;
    font-size: 16px;
}

.seller-rating {
    color: var(--warning-color);
    margin-bottom: 5px;
}

/* 卖家信息区域样式 */
.seller-info {
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px solid var(--border-color);
}

.seller-info h3 {
    margin-bottom: 15px;
    font-size: 18px;
    color: var(--text-color);
}

.seller-profile {
    display: flex;
    align-items: center;
    gap: 15px;
}

.seller-avatar {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.seller-avatar img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
}

.seller-details {
    flex: 1;
}

.seller-name {
    font-size: 16px;
    font-weight: 600;
    color: var(--text-color);
    margin-bottom: 8px;
}

.seller-rating {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
}

.seller-rating .stars {
    color: var(--warning-color);
}

.seller-rating .rating {
    color: var(--text-color);
    font-weight: 500;
}

.seller-rating .transaction-count {
    color: var(--text-muted);
}

.seller-actions {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
}

.seller-actions .btn {
    padding: 10px 20px;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.seller-actions .btn i {
    font-size: 14px;
}

/* 登录/注册页样式 */
.login-page,
.register-page {
    min-height: calc(100vh - 200px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    background: linear-gradient(135deg, #007bff 0%, #0056b3 50%, #007bff 100%);
    position: relative;
    overflow: hidden;
}

.login-page::before,
.register-page::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: 
        radial-gradient(circle at 20% 50%, rgba(255, 255, 255, 0.1) 0%, transparent 50%),
        radial-gradient(circle at 80% 80%, rgba(255, 255, 255, 0.1) 0%, transparent 50%),
        url('data:image/svg+xml,<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg"><defs><pattern id="grid" width="100" height="100" patternUnits="userSpaceOnUse"><path d="M 100 0 L 0 0 0 100" fill="none" stroke="rgba(255,255,255,0.08)" stroke-width="1"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>');
    opacity: 0.5;
}

.login-container,
.register-container {
    max-width: 480px;
    width: 100%;
    background-color: var(--bg-color);
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    padding: 50px 40px;
    position: relative;
    z-index: 1;
    animation: slideUp 0.5s ease-out;
}

@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.login-header,
.register-header {
    text-align: center;
    margin-bottom: 40px;
}

.login-header h1,
.register-header h1 {
    font-size: 32px;
    font-weight: 700;
    color: var(--primary-color);
    margin-bottom: 10px;
}

.login-header p,
.register-header p {
    color: var(--text-muted);
    font-size: 15px;
    margin-top: 8px;
}

.login-form,
.register-form {
    margin-bottom: 30px;
}

.login-form .form-group,
.register-form .form-group {
    margin-bottom: 24px;
}

.login-form label,
.register-form label {
    display: flex;
    align-items: center;
    margin-bottom: 10px;
    font-weight: 600;
    color: var(--text-color);
    font-size: 14px;
}

.login-form label i,
.register-form label i {
    font-size: 14px;
    margin-right: 6px;
    color: var(--primary-color);
}

.login-form input,
.register-form input {
    width: 100%;
    padding: 14px 16px;
    border: 2px solid var(--border-color);
    border-radius: 8px;
    font-size: 15px;
    transition: var(--transition);
    background-color: #fafafa;
}

.login-form input:focus,
.register-form input:focus {
    outline: none;
    border-color: var(--primary-color);
    background-color: var(--bg-color);
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
}

.login-form input::placeholder,
.register-form input::placeholder {
    color: #adb5bd;
}

.form-options {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
    font-size: 14px;
}

.remember-me {
    display: flex;
    align-items: center;
    cursor: pointer;
    font-weight: normal;
    color: var(--text-color);
}

.remember-me input[type="checkbox"] {
    width: auto;
    margin-right: 8px;
    cursor: pointer;
    accent-color: var(--primary-color);
}

.forgot-password {
    color: var(--primary-color);
    text-decoration: none;
    font-weight: 500;
    transition: var(--transition);
}

.forgot-password:hover {
    text-decoration: underline;
    color: #0056b3;
}

.terms {
    display: flex;
    align-items: flex-start;
    cursor: pointer;
    font-weight: normal;
    color: var(--text-color);
    font-size: 14px;
    line-height: 1.6;
}

.terms input[type="checkbox"] {
    width: auto;
    margin-right: 10px;
    margin-top: 3px;
    cursor: pointer;
    accent-color: var(--primary-color);
    flex-shrink: 0;
}

.terms a {
    color: var(--primary-color);
    text-decoration: none;
    font-weight: 500;
}

.terms a:hover {
    text-decoration: underline;
}

.verification-code {
    display: flex;
    gap: 12px;
}

.verification-code input {
    flex: 1;
}

.verification-code .btn {
    white-space: nowrap;
    padding: 14px 20px;
}

.btn-primary.btn-block {
    width: 100%;
    padding: 14px;
    font-size: 16px;
    font-weight: 600;
    border-radius: 8px;
    background-color: var(--primary-color);
    border: none;
    color: white;
    cursor: pointer;
    transition: var(--transition);
    box-shadow: 0 4px 15px rgba(0, 123, 255, 0.3);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.btn-primary.btn-block i {
    font-size: 16px;
}

.btn-primary.btn-block:hover {
    background-color: #0056b3;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 123, 255, 0.4);
}

.login-divider,
.register-divider {
    text-align: center;
    margin: 30px 0;
    position: relative;
    color: var(--text-muted);
    font-size: 14px;
}

.login-divider::before,
.login-divider::after,
.register-divider::before,
.register-divider::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 35%;
    height: 1px;
    background: linear-gradient(to right, transparent, var(--border-color), transparent);
}

.login-divider::before,
.register-divider::before {
    left: 0;
}

.login-divider::after,
.register-divider::after {
    right: 0;
}

.social-login,
.social-register {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 30px;
}

.btn-outline.btn-block {
    width: 100%;
    padding: 12px 16px;
    font-size: 15px;
    font-weight: 500;
    border: 2px solid var(--border-color);
    background-color: var(--bg-color);
    color: var(--text-color);
    border-radius: 8px;
    cursor: pointer;
    transition: var(--transition);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.btn-outline.btn-block:hover {
    border-color: var(--primary-color);
    background-color: rgba(0, 123, 255, 0.05);
    color: var(--primary-color);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.btn-outline.btn-block i {
    font-size: 18px;
}

.login-footer,
.register-footer {
    text-align: center;
    padding-top: 20px;
    border-top: 1px solid var(--border-color);
    color: var(--text-muted);
    font-size: 14px;
}

.login-footer a,
.register-footer a {
    color: var(--primary-color);
    text-decoration: none;
    font-weight: 600;
    margin-left: 5px;
    transition: var(--transition);
}

.login-footer a:hover,
.register-footer a:hover {
    text-decoration: underline;
}

.auth-container {
    max-width: 400px;
    margin: 50px auto;
    padding: 30px;
    background-color: var(--bg-color);
    border-radius: 8px;
    box-shadow: var(--shadow-md);
}

.auth-container h2 {
    text-align: center;
    margin-bottom: 30px;
    color: var(--text-color);
}

.auth-form .form-group {
    margin-bottom: 20px;
}

.auth-form label {
    display: block;
    margin-bottom: 8px;
    font-weight: bold;
    color: var(--text-color);
}

.auth-form input {
    width: 100%;
    padding: 12px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    font-size: 16px;
    transition: all 0.3s ease;
    position: relative;
}

.auth-form input:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
    transform: translateY(-1px);
}

.auth-btn {
    width: 100%;
    padding: 12px;
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 20px;
}

.divider {
    text-align: center;
    margin: 20px 0;
    position: relative;
}

.divider::before,
.divider::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 40%;
    height: 1px;
    background-color: var(--border-color);
}

.divider::before {
    left: 0;
}

.divider::after {
    right: 0;
}

.social-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
    border: 1px solid var(--border-color);
    background-color: var(--bg-color);
    border-radius: 4px;
    cursor: pointer;
    transition: var(--transition);
    font-size: 14px;
    color: var(--text-color);
}

.social-btn:hover {
    background-color: var(--light-color);
}

.social-btn i {
    margin-right: 10px;
    font-size: 18px;
}

.social-btn.wechat {
    border-color: #07c160;
    color: #07c160;
}

.social-btn.weibo {
    border-color: #e6162d;
    color: #e6162d;
}

.social-btn.qq {
    border-color: #12b7f5;
    color: #12b7f5;
}

/* 个人中心样式 */
.user-center-content {
    display: grid;
    grid-template-columns: 250px 1fr;
    gap: 20px;
    padding: 20px 0;
}

.user-sidebar {
    background-color: var(--bg-color);
    padding: 20px;
    border-radius: 8px;
    box-shadow: var(--shadow-sm);
    height: fit-content;
    position: sticky;
    top: 80px;
}

.user-profile {
    text-align: center;
    margin-bottom: 30px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--border-color);
}

.user-sidebar .user-avatar {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    object-fit: cover;
    margin-bottom: 15px;
}

.user-info h3 {
    margin-bottom: 5px;
    font-size: 18px;
}

.student-id {
    color: var(--text-muted);
    font-size: 14px;
    margin-bottom: 10px;
}

.user-rating {
    color: var(--warning-color);
    font-size: 14px;
}

.user-nav ul {
    list-style: none;
}

.user-nav ul li {
    margin-bottom: 5px;
}

.user-nav ul li a {
    display: flex;
    align-items: center;
    padding: 10px;
    text-decoration: none;
    color: var(--text-color);
    border-radius: 4px;
    transition: var(--transition);
    font-size: 14px;
}

.user-nav ul li a:hover,
.user-nav ul li a.active {
    background-color: var(--light-color);
    color: var(--primary-color);
}

.user-nav ul li a i {
    margin-right: 10px;
    font-size: 16px;
}

.badge {
    background-color: var(--danger-color);
    color: white;
    font-size: 10px;
    padding: 2px 6px;
    border-radius: 10px;
    margin-left: auto;
}

.user-main {
    background-color: var(--bg-color);
    padding: 20px;
    border-radius: 8px;
    box-shadow: var(--shadow-sm);
}

.user-center-header {
    margin-bottom: 30px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--border-color);
}

.user-center-header h2 {
    font-size: 24px;
    color: var(--text-color);
    margin-bottom: 5px;
}

.user-center-header p {
    color: var(--text-muted);
}

.user-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 20px;
    margin-bottom: 30px;
}

.stat-item {
    text-align: center;
    padding: 20px;
    background-color: var(--light-color);
    border-radius: 8px;
}

.stat-number {
    font-size: 28px;
    font-weight: bold;
    color: var(--primary-color);
    margin-bottom: 5px;
}

.stat-label {
    font-size: 14px;
    color: var(--text-muted);
}

.user-activity {
    margin-bottom: 30px;
    padding-bottom: 30px;
    border-bottom: 1px solid var(--border-color);
}

.section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.section-header h3 {
    font-size: 18px;
    color: var(--text-color);
}

.view-more {
    font-size: 14px;
    color: var(--primary-color);
    text-decoration: none;
}

.view-more:hover {
    text-decoration: underline;
}

.activity-list {
    list-style: none;
}

.activity-item {
    display: flex;
    align-items: flex-start;
    padding: 15px;
    border-bottom: 1px solid var(--border-color);
}

.activity-item:last-child {
    border-bottom: none;
}

.activity-icon {
    width: 40px;
    height: 40px;
    background-color: var(--light-color);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 15px;
    flex-shrink: 0;
}

.activity-icon i {
    color: var(--primary-color);
    font-size: 18px;
}

.activity-content {
    flex: 1;
}

.activity-title {
    margin-bottom: 5px;
    font-size: 14px;
    color: var(--text-color);
}

.activity-title a {
    color: var(--primary-color);
    text-decoration: none;
}

.activity-title a:hover {
    text-decoration: underline;
}

.activity-time {
    font-size: 12px;
    color: var(--text-muted);
}

/* 商品发布页样式 */
.post-product-form {
    background-color: var(--bg-color);
    padding: 30px;
    border-radius: 8px;
    box-shadow: var(--shadow-sm);
}

.form-section {
    margin-bottom: 40px;
}

.form-section h3 {
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-color);
    font-size: 18px;
    color: var(--text-color);
}

.form-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 20px;
    margin-bottom: 20px;
}

.form-group {
    margin-bottom: 20px;
}

.form-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: bold;
    color: var(--text-color);
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 10px 15px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    font-size: 14px;
    font-family: inherit;
    transition: all 0.3s ease;
    position: relative;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
    transform: translateY(-1px);
}

.form-group textarea {
    resize: vertical;
    min-height: 120px;
}

.image-upload-section {
    margin-bottom: 20px;
}

.main-image-upload {
    margin-bottom: 20px;
}

.upload-box {
    border: 2px dashed var(--border-color);
    border-radius: 8px;
    padding: 30px;
    text-align: center;
    cursor: pointer;
    transition: var(--transition);
}

.upload-box:hover {
    border-color: var(--primary-color);
    background-color: rgba(0, 123, 255, 0.05);
}

.upload-box.has-image {
    border-style: solid;
    padding: 0;
    overflow: hidden;
    position: relative;
}

.upload-box.has-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.upload-box i {
    font-size: 36px;
    color: var(--border-color);
    margin-bottom: 10px;
}

.upload-box:hover i {
    color: var(--primary-color);
}

.upload-box p {
    margin-bottom: 5px;
    color: var(--text-color);
    font-size: 14px;
}

.upload-box small {
    color: var(--text-muted);
    font-size: 12px;
}

.secondary-images-upload {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 10px;
}

.secondary-images-upload .upload-box {
    padding: 20px 10px;
}

.secondary-images-upload .upload-box i {
    font-size: 24px;
}

.checkbox-group {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
}

.checkbox-group label {
    display: flex;
    align-items: center;
    cursor: pointer;
    font-weight: normal;
    margin-bottom: 0;
}

.checkbox-group label input {
    width: auto;
    margin-right: 8px;
}

.checkbox-group label i {
    margin-right: 8px;
    color: var(--primary-color);
}

.form-actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    padding-top: 20px;
    border-top: 1px solid var(--border-color);
}

/* 响应式设计 */
@media (max-width: 768px) {
    .navbar .container {
        flex-direction: column;
        gap: 15px;
    }

    .search-box {
        width: 100%;
        max-width: 100%;
    }

    .nav-links {
        width: 100%;
        justify-content: center;
    }

    .nav-links li {
        margin: 0 5px;
    }

    .product-list-container,
    .user-center-content {
        grid-template-columns: 1fr;
    }

    .sidebar,
    .user-sidebar {
        position: static;
    }

    .product-details-container {
        grid-template-columns: 1fr;
    }

    .form-row {
        grid-template-columns: 1fr;
    }

    .action-buttons {
        grid-template-columns: 1fr;
    }

    .product-meta-info {
        grid-template-columns: 1fr;
    }

    .categories-grid {
        grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
        gap: 10px;
    }

    .product-grid {
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
        gap: 15px;
    }

    .footer-content {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .checkbox-group {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 480px) {
    .container {
        padding: 0 10px;
    }

    .logo {
        font-size: 20px;
    }

    .logo i {
        font-size: 24px;
    }

    .nav-links {
        flex-wrap: wrap;
    }

    .nav-links li {
        margin: 5px;
    }

    .nav-links a {
        padding: 5px 10px;
        font-size: 14px;
    }

    .search-box input {
        padding: 8px 12px;
    }

    .search-box button {
        padding: 8px 15px;
    }

    .section-title {
        font-size: 22px;
    }

    .categories-grid {
        grid-template-columns: repeat(auto-fit, minmax(80px, 1fr));
        gap: 10px;
    }

    .category-item {
        padding: 15px 5px;
    }

    .category-item i {
        font-size: 24px;
    }

    .product-grid {
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
        gap: 10px;
    }

    .product-card {
        font-size: 13px;
    }

    .product-title {
        font-size: 13px;
        height: 40px;
    }

    .current-price {
        font-size: 16px;
    }

    .sidebar,
    .user-sidebar,
    .user-main,
    .post-product-form {
        padding: 15px;
    }

    .product-images {
        padding: 10px;
    }

    .main-image {
        height: 250px;
    }

    .thumbnails {
        grid-template-columns: repeat(3, 1fr);
    }

    .thumbnail-item {
        height: 70px;
    }

    .product-info h1 {
        font-size: 20px;
    }

    .current-bid-amount {
        font-size: 24px;
    }

    .auth-container {
        padding: 20px;
        margin: 20px;
    }

    .login-container,
    .register-container {
        padding: 30px 25px;
        margin: 20px;
    }

    .login-header h1,
    .register-header h1 {
        font-size: 26px;
    }

    .login-page,
    .register-page {
        padding: 20px 10px;
    }
}

/* 购物车页面样式 */
.cart-page {
    padding: 20px 0;
}

.cart-container {
    display: grid;
    grid-template-columns: 1fr 350px;
    gap: 20px;
}

.cart-items-section {
    background-color: var(--bg-color);
    padding: 20px;
    border-radius: 8px;
    box-shadow: var(--shadow-sm);
}

.cart-header {
    display: grid;
    grid-template-columns: 50px 2fr 1fr 150px 1fr 80px;
    gap: 15px;
    padding: 15px 0;
    border-bottom: 2px solid var(--border-color);
    font-weight: bold;
    font-size: 14px;
    color: var(--text-color);
}

.select-all {
    display: flex;
    align-items: center;
    cursor: pointer;
}

.select-all input {
    margin-right: 8px;
}

.cart-item {
    display: grid;
    grid-template-columns: 50px 2fr 1fr 150px 1fr 80px;
    gap: 15px;
    padding: 20px 0;
    border-bottom: 1px solid var(--border-color);
    align-items: center;
}

.cart-item:last-child {
    border-bottom: none;
}

.item-checkbox {
    display: flex;
    align-items: center;
    cursor: pointer;
}

.item-checkbox input {
    margin-right: 0;
}

.item-info {
    display: flex;
    gap: 15px;
    align-items: center;
}

.item-info img {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 4px;
}

.item-details h4 {
    margin-bottom: 5px;
    font-size: 16px;
    color: var(--text-color);
}

.item-seller,
.item-status {
    font-size: 12px;
    color: var(--text-muted);
    margin: 3px 0;
}

.item-price,
.item-subtotal {
    font-size: 16px;
    font-weight: bold;
    color: var(--danger-color);
}

.item-quantity {
    display: flex;
    align-items: center;
    gap: 5px;
}

.quantity-btn {
    width: 30px;
    height: 30px;
    border: 1px solid var(--border-color);
    background-color: var(--bg-color);
    border-radius: 4px;
    cursor: pointer;
    font-size: 16px;
    transition: var(--transition);
}

.quantity-btn:hover {
    background-color: var(--light-color);
    border-color: var(--primary-color);
}

.quantity-input {
    width: 50px;
    height: 30px;
    text-align: center;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    font-size: 14px;
}

.item-actions {
    display: flex;
    justify-content: center;
}

.btn-delete {
    background: none;
    border: none;
    color: var(--danger-color);
    cursor: pointer;
    font-size: 18px;
    padding: 5px;
    transition: var(--transition);
}

.btn-delete:hover {
    color: #c82333;
    transform: scale(1.1);
}

.cart-empty {
    text-align: center;
    padding: 80px 20px;
}

.empty-cart-icon {
    font-size: 80px;
    color: var(--text-muted);
    margin-bottom: 20px;
}

.cart-empty p {
    font-size: 18px;
    color: var(--text-muted);
    margin-bottom: 20px;
}

.cart-summary {
    background-color: var(--bg-color);
    padding: 20px;
    border-radius: 8px;
    box-shadow: var(--shadow-sm);
    height: fit-content;
    position: sticky;
    top: 80px;
}

.summary-header {
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--border-color);
}

.summary-header h3 {
    font-size: 18px;
    color: var(--text-color);
}

.summary-content {
    margin-bottom: 20px;
}

.summary-row {
    display: flex;
    justify-content: space-between;
    padding: 10px 0;
    font-size: 14px;
    color: var(--text-color);
}

.summary-row.summary-total {
    font-size: 18px;
    font-weight: bold;
    color: var(--danger-color);
    border-top: 2px solid var(--border-color);
    padding-top: 15px;
    margin-top: 10px;
}

/* 支付页面样式 */
.checkout-page {
    padding: 20px 0;
}

.checkout-container {
    display: grid;
    grid-template-columns: 1fr 400px;
    gap: 20px;
}

.checkout-left {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.checkout-section {
    background-color: var(--bg-color);
    padding: 25px;
    border-radius: 8px;
    box-shadow: var(--shadow-sm);
}

.checkout-section h3 {
    margin-bottom: 20px;
    font-size: 18px;
    color: var(--text-color);
    display: flex;
    align-items: center;
    gap: 10px;
}

.checkout-section h3 i {
    color: var(--primary-color);
}

.address-form .form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-bottom: 15px;
}

.address-form .form-group {
    margin-bottom: 15px;
}

.address-form label {
    display: block;
    margin-bottom: 8px;
    font-weight: bold;
    color: var(--text-color);
    font-size: 14px;
}

.address-form input,
.address-form select,
.address-form textarea {
    width: 100%;
    padding: 10px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    font-size: 14px;
    font-family: inherit;
}

.address-form textarea {
    resize: vertical;
}

.delivery-options {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.delivery-option {
    display: flex;
    align-items: center;
    padding: 15px;
    border: 2px solid var(--border-color);
    border-radius: 8px;
    cursor: pointer;
    transition: var(--transition);
}

.delivery-option:hover {
    border-color: var(--primary-color);
    background-color: rgba(0, 123, 255, 0.05);
}

.delivery-option input[type="radio"] {
    margin-right: 15px;
    width: auto;
}

.delivery-option input[type="radio"]:checked + .option-content {
    color: var(--primary-color);
}

.option-content {
    display: flex;
    align-items: center;
    gap: 15px;
    flex: 1;
}

.option-content i {
    font-size: 24px;
    color: var(--primary-color);
}

.option-content div {
    display: flex;
    flex-direction: column;
}

.option-content strong {
    font-size: 16px;
    margin-bottom: 3px;
}

.option-content span {
    font-size: 12px;
    color: var(--text-muted);
}

.checkout-products {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.checkout-product-item {
    display: grid;
    grid-template-columns: 80px 2fr 1fr 80px 1fr;
    gap: 15px;
    padding: 15px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    align-items: center;
}

.checkout-product-item img {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 4px;
}

.checkout-product-item .product-info h4 {
    margin-bottom: 5px;
    font-size: 16px;
    color: var(--text-color);
}

.checkout-product-item .product-info p {
    font-size: 12px;
    color: var(--text-muted);
}

.checkout-product-item .product-price,
.checkout-product-item .product-subtotal {
    font-size: 16px;
    font-weight: bold;
    color: var(--danger-color);
}

.checkout-product-item .product-quantity {
    text-align: center;
    color: var(--text-muted);
}

.checkout-right {
    position: sticky;
    top: 80px;
    height: fit-content;
}

.order-summary {
    background-color: var(--bg-color);
    padding: 25px;
    border-radius: 8px;
    box-shadow: var(--shadow-sm);
}

.order-summary h3 {
    margin-bottom: 20px;
    font-size: 18px;
    color: var(--text-color);
    padding-bottom: 15px;
    border-bottom: 1px solid var(--border-color);
}

.summary-details {
    margin-bottom: 20px;
}

.summary-details .summary-row {
    display: flex;
    justify-content: space-between;
    padding: 10px 0;
    font-size: 14px;
    color: var(--text-color);
}

.summary-details .summary-row.summary-total {
    font-size: 20px;
    font-weight: bold;
    color: var(--danger-color);
    border-top: 2px solid var(--border-color);
    padding-top: 15px;
    margin-top: 10px;
}

@media (max-width: 968px) {
    .cart-container,
    .checkout-container {
        grid-template-columns: 1fr;
    }
    
    .cart-summary,
    .checkout-right {
        position: static;
    }
    
    .cart-header,
    .cart-item {
        grid-template-columns: 40px 1fr;
        gap: 10px;
    }
    
    .cart-header .cart-header-item:not(:first-child),
    .cart-item > div:not(.item-checkbox):not(.item-info) {
        display: none;
    }
    
    .item-info {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .item-info img {
        width: 100%;
        height: auto;
    }
    
    .address-form .form-row {
        grid-template-columns: 1fr;
    }
}

/* 聊天窗口样式 */
.chat-modal {
    display: none;
    position: fixed;
    bottom: 20px;
    right: 20px;
    width: 400px;
    height: 600px;
    background-color: var(--bg-color);
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
    z-index: 10000;
    flex-direction: column;
    overflow: hidden;
    animation: slideUp 0.3s ease-out;
}

.chat-modal.active {
    display: flex;
}

@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.chat-container {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.chat-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 20px;
    background: linear-gradient(135deg, #007bff 0%, #0056b3 100%);
    color: white;
    border-radius: 12px 12px 0 0;
}

.chat-seller-info {
    display: flex;
    align-items: center;
    gap: 12px;
}

.chat-seller-info img {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid rgba(255, 255, 255, 0.3);
}

.chat-seller-info h4 {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
}

.chat-status {
    font-size: 12px;
    opacity: 0.9;
}

.chat-close {
    background: none;
    border: none;
    color: white;
    font-size: 20px;
    cursor: pointer;
    padding: 5px;
    transition: var(--transition);
    border-radius: 4px;
}

.chat-close:hover {
    background-color: rgba(255, 255, 255, 0.2);
}

.chat-messages {
    flex: 1;
    overflow-y: auto;
    padding: 20px;
    background-color: #f8f9fa;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.chat-message {
    display: flex;
    gap: 10px;
    animation: fadeIn 0.3s ease-out;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.chat-message.sent {
    flex-direction: row-reverse;
}

.chat-message-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

.chat-message-content {
    max-width: 70%;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.chat-message.sent .chat-message-content {
    align-items: flex-end;
}

.chat-message-bubble {
    padding: 12px 16px;
    border-radius: 12px;
    font-size: 14px;
    line-height: 1.5;
    word-wrap: break-word;
}

.chat-message.received .chat-message-bubble {
    background-color: white;
    color: var(--text-color);
    border-bottom-left-radius: 4px;
}

.chat-message.sent .chat-message-bubble {
    background-color: var(--primary-color);
    color: white;
    border-bottom-right-radius: 4px;
}

.chat-message-time {
    font-size: 11px;
    color: var(--text-muted);
    padding: 0 8px;
}

.chat-input-area {
    padding: 15px;
    background-color: white;
    border-top: 1px solid var(--border-color);
}

.chat-input-wrapper {
    display: flex;
    gap: 10px;
    margin-bottom: 10px;
}

.chat-input-wrapper input {
    flex: 1;
    padding: 10px 15px;
    border: 1px solid var(--border-color);
    border-radius: 20px;
    font-size: 14px;
    outline: none;
    transition: var(--transition);
}

.chat-input-wrapper input:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
}

.send-btn {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: var(--primary-color);
    color: white;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
    flex-shrink: 0;
}

.send-btn:hover {
    background-color: #0056b3;
    transform: scale(1.05);
}

.send-btn:disabled {
    background-color: var(--secondary-color);
    cursor: not-allowed;
    transform: none;
}

.quick-messages {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.quick-msg-btn {
    padding: 6px 12px;
    background-color: var(--light-color);
    border: 1px solid var(--border-color);
    border-radius: 15px;
    font-size: 12px;
    color: var(--text-color);
    cursor: pointer;
    transition: var(--transition);
}

.quick-msg-btn:hover {
    background-color: var(--primary-color);
    color: white;
    border-color: var(--primary-color);
}

/* 卖家店铺页面样式 */
.seller-shop-page {
    padding: 20px 0;
}

.seller-shop-header {
    background-color: var(--bg-color);
    padding: 30px;
    border-radius: 12px;
    box-shadow: var(--shadow-sm);
    margin-bottom: 30px;
}

.seller-shop-info {
    display: flex;
    align-items: center;
    gap: 30px;
}

.seller-shop-avatar {
    flex-shrink: 0;
}

.seller-shop-avatar img {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--primary-color);
}

.seller-shop-details {
    flex: 1;
}

.seller-shop-title {
    font-size: 28px;
    font-weight: 700;
    color: var(--text-color);
    margin-bottom: 15px;
}

.seller-shop-meta {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.seller-rating-info {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
}

.seller-rating-info .stars {
    color: var(--warning-color);
}

.seller-rating-info .divider {
    color: var(--text-muted);
}

.seller-shop-stats {
    display: flex;
    gap: 30px;
}

.seller-shop-stats .stat-item {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.seller-shop-stats .stat-number {
    font-size: 24px;
    font-weight: 700;
    color: var(--primary-color);
}

.seller-shop-stats .stat-label {
    font-size: 14px;
    color: var(--text-muted);
}

.seller-shop-actions {
    flex-shrink: 0;
}

.seller-products-section {
    background-color: var(--bg-color);
    padding: 30px;
    border-radius: 12px;
    box-shadow: var(--shadow-sm);
}

.seller-products-section .section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 25px;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--border-color);
}

.seller-products-section .section-header h2 {
    font-size: 24px;
    color: var(--text-color);
    margin: 0;
}

.empty-state {
    text-align: center;
    padding: 60px 20px;
    color: var(--text-muted);
}

.empty-state i {
    font-size: 64px;
    margin-bottom: 20px;
    color: var(--border-color);
}

.empty-state p {
    font-size: 16px;
}

/* 响应式设计 - 聊天窗口 */
@media (max-width: 768px) {
    .chat-modal {
        width: 100%;
        height: 100%;
        bottom: 0;
        right: 0;
        border-radius: 0;
    }

    .chat-header {
        border-radius: 0;
    }

    .seller-shop-info {
        flex-direction: column;
        text-align: center;
    }

    .seller-shop-stats {
        justify-content: center;
    }
}

/* 订单页面样式 */
.orders-filter,
.products-filter {
    display: flex;
    gap: 10px;
    margin-bottom: 25px;
    flex-wrap: wrap;
}

.filter-btn {
    padding: 8px 20px;
    background-color: var(--light-color);
    border: 1px solid var(--border-color);
    border-radius: 20px;
    color: var(--text-color);
    font-size: 14px;
    cursor: pointer;
    transition: var(--transition);
}

.filter-btn:hover {
    background-color: var(--primary-color);
    color: white;
    border-color: var(--primary-color);
}

.filter-btn.active {
    background-color: var(--primary-color);
    color: white;
    border-color: var(--primary-color);
}

.orders-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.order-item {
    background-color: var(--bg-color);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 20px;
    transition: var(--transition);
}

.order-item:hover {
    box-shadow: var(--shadow-md);
}

.order-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--border-color);
    margin-bottom: 15px;
}

.order-info {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.order-number {
    font-weight: 600;
    color: var(--text-color);
    font-size: 16px;
}

.order-date {
    font-size: 13px;
    color: var(--text-muted);
}

.order-status {
    padding: 6px 12px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 500;
}

.order-status.pending {
    background-color: #fff3cd;
    color: #856404;
}

.order-status.paid {
    background-color: #d1ecf1;
    color: #0c5460;
}

.order-status.shipped {
    background-color: #d4edda;
    color: #155724;
}

.order-status.completed {
    background-color: #d1ecf1;
    color: #0c5460;
}

.order-status.cancelled {
    background-color: #f8d7da;
    color: #721c24;
}

.order-products {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-bottom: 15px;
}

.order-product {
    display: flex;
    gap: 15px;
    align-items: center;
}

.order-product img {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 4px;
}

.order-product-info {
    flex: 1;
}

.order-product-title {
    font-size: 15px;
    font-weight: 500;
    color: var(--text-color);
    margin-bottom: 5px;
}

.order-product-meta {
    font-size: 13px;
    color: var(--text-muted);
}

.order-product-price {
    font-size: 16px;
    font-weight: 600;
    color: var(--danger-color);
    min-width: 100px;
    text-align: right;
}

.order-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 15px;
    border-top: 1px solid var(--border-color);
}

.order-total {
    display: flex;
    align-items: center;
    gap: 10px;
}

.order-total-label {
    font-size: 14px;
    color: var(--text-muted);
}

.order-total-amount {
    font-size: 20px;
    font-weight: 700;
    color: var(--danger-color);
}

.order-actions {
    display: flex;
    gap: 10px;
}

.order-actions .btn {
    padding: 8px 16px;
    font-size: 14px;
}

.header-actions {
    display: flex;
    gap: 10px;
}

.header-actions .btn {
    padding: 10px 20px;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* 设置页面样式 */
.settings-content {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.settings-section {
    background-color: var(--bg-color);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 25px;
}

.settings-section h3 {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 18px;
    color: var(--text-color);
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--border-color);
}

.settings-section h3 i {
    color: var(--primary-color);
    font-size: 20px;
}

.settings-form {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.avatar-upload {
    display: flex;
    gap: 20px;
    align-items: flex-start;
}

.avatar-preview {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    overflow: hidden;
    border: 3px solid var(--border-color);
    flex-shrink: 0;
}

.avatar-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.upload-controls {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.upload-hint {
    font-size: 12px;
    color: var(--text-muted);
    margin: 0;
}

.switch-label {
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    user-select: none;
}

.switch-label input[type="checkbox"] {
    display: none;
}

.switch-slider {
    position: relative;
    width: 44px;
    height: 24px;
    background-color: rgba(0, 123, 255, 0.2); /* 浅蓝色背景 */
    border: 1px solid var(--primary-color);
    border-radius: 24px;
    transition: var(--transition);
    flex-shrink: 0;
}

.switch-slider::before {
    content: '';
    position: absolute;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: var(--primary-color);
    top: 2px;
    left: 2px;
    transition: var(--transition);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.switch-label input[type="checkbox"]:checked + .switch-slider {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
}

.switch-label input[type="checkbox"]:checked + .switch-slider::before {
    transform: translateX(20px);
    background-color: #fff;
}

.switch-text {
    font-size: 15px;
    color: var(--text-color);
    font-weight: 500;
}

.form-hint {
    font-size: 13px;
    color: var(--text-muted);
    margin-top: 5px;
    margin-left: 0;
}

.form-actions {
    display: flex;
    gap: 10px;
    padding-top: 10px;
}

/* 响应式设计 - 订单和设置页面 */
@media (max-width: 768px) {
    .orders-filter,
    .products-filter {
        gap: 8px;
    }

    .filter-btn {
        padding: 6px 16px;
        font-size: 13px;
    }

    .order-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .order-footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
    }

    .order-actions {
        width: 100%;
        flex-direction: column;
    }

    .order-actions .btn {
        width: 100%;
    }

    .avatar-upload {
        flex-direction: column;
    }

    .settings-section {
        padding: 20px;
    }
}
posted @ 2025-11-29 21:51  haoyinuo  阅读(6)  评论(0)    收藏  举报