158 lines
3.9 KiB
PHP
158 lines
3.9 KiB
PHP
<div class="sidebar">
|
|
<div class="user-info">
|
|
<div class="avatar-wrapper">
|
|
<img src="{$user.avatar|default='/static/images/avatar.png'}" class="avatar" alt="用户头像">
|
|
</div>
|
|
<h3 class="username">{$user.name}</h3>
|
|
<p class="email">{$user.account}</p>
|
|
</div>
|
|
|
|
<nav class="menu">
|
|
<a href="javascript:;" class="menu-item active" data-target="profile-basic">
|
|
<i class="icon">👤</i>
|
|
<span>个人资料</span>
|
|
</a>
|
|
<a href="javascript:;" class="menu-item" data-target="profile-avatar">
|
|
<i class="icon">🖼️</i>
|
|
<span>修改头像</span>
|
|
</a>
|
|
<a href="javascript:;" class="menu-item" data-target="profile-password">
|
|
<i class="icon">🔒</i>
|
|
<span>修改密码</span>
|
|
</a>
|
|
<a href="javascript:;" class="menu-item" data-target="profile-messages">
|
|
<i class="icon">✉️</i>
|
|
<span>我的消息</span>
|
|
</a>
|
|
<a href="javascript:;" class="menu-item" data-target="profile-notifications">
|
|
<i class="icon">🔔</i>
|
|
<span>系统通知</span>
|
|
</a>
|
|
<a href="javascript:;" class="menu-item" data-target="profile-settings">
|
|
<i class="icon">⚙️</i>
|
|
<span>基本设置</span>
|
|
</a>
|
|
<a href="javascript:;" class="menu-item" data-target="profile-security">
|
|
<i class="icon">🛡️</i>
|
|
<span>安全设置</span>
|
|
</a>
|
|
</nav>
|
|
</div>
|
|
|
|
<style>
|
|
.sidebar {
|
|
width: 260px;
|
|
background: #fff;
|
|
border-radius: 12px;
|
|
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
|
|
padding: 24px 0;
|
|
height: 100%;
|
|
}
|
|
|
|
.user-info {
|
|
text-align: center;
|
|
padding: 0 24px 24px;
|
|
border-bottom: 1px solid #f0f0f0;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.avatar-wrapper {
|
|
width: 88px;
|
|
height: 88px;
|
|
margin: 0 auto 16px;
|
|
position: relative;
|
|
}
|
|
|
|
.avatar {
|
|
width: 100%;
|
|
height: 100%;
|
|
border-radius: 50%;
|
|
object-fit: cover;
|
|
border: 3px solid #f5f5f5;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.avatar:hover {
|
|
transform: scale(1.05);
|
|
}
|
|
|
|
.username {
|
|
font-size: 18px;
|
|
font-weight: 600;
|
|
color: #333;
|
|
margin: 0 0 4px;
|
|
}
|
|
|
|
.email {
|
|
font-size: 14px;
|
|
color: #666;
|
|
margin: 0;
|
|
}
|
|
|
|
.menu {
|
|
display: flex;
|
|
flex-direction: column;
|
|
padding: 0 12px;
|
|
}
|
|
|
|
.menu-item {
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 12px 16px;
|
|
color: #666;
|
|
text-decoration: none;
|
|
border-radius: 8px;
|
|
margin-bottom: 4px;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.menu-item:hover {
|
|
background: #f5f7fa;
|
|
color: #1677ff;
|
|
}
|
|
|
|
.menu-item.active {
|
|
background: #e6f4ff;
|
|
color: #1677ff;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.icon {
|
|
font-size: 20px;
|
|
margin-right: 12px;
|
|
width: 24px;
|
|
text-align: center;
|
|
}
|
|
|
|
span {
|
|
font-size: 15px;
|
|
}
|
|
|
|
/* 响应式适配 */
|
|
@media (max-width: 768px) {
|
|
.sidebar {
|
|
width: 100%;
|
|
border-radius: 0;
|
|
box-shadow: none;
|
|
}
|
|
}
|
|
</style>
|
|
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', function () {
|
|
// 获取当前页面路径
|
|
const currentPath = window.location.pathname;
|
|
|
|
// 移除所有active类
|
|
document.querySelectorAll('.menu-item').forEach(item => {
|
|
item.classList.remove('active');
|
|
});
|
|
|
|
// 为当前页面对应的菜单项添加active类
|
|
document.querySelectorAll('.menu-item').forEach(item => {
|
|
if (item.getAttribute('href') === currentPath) {
|
|
item.classList.add('active');
|
|
}
|
|
});
|
|
});
|
|
</script> |