CHM_attendance/app/templates/auth/student_profile.html
superlishunqin e7fa4bc030 first commit
2025-06-11 19:56:34 +08:00

270 lines
14 KiB
HTML

{% extends "layout/base.html" %}
{% block title %}个人信息 - CHM考勤管理系统{% endblock %}
{% block content %}
<div class="container-fluid py-4">
<div class="row">
<div class="col-12">
<!-- 页面标题 -->
<div class="d-flex justify-content-between align-items-center mb-4">
<h2><i class="fas fa-user-circle me-2"></i>个人信息</h2>
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{{ url_for('student.dashboard') }}">首页</a></li>
<li class="breadcrumb-item active">个人信息</li>
</ol>
</nav>
</div>
<!-- 个人信息卡片 -->
<div class="row">
<div class="col-lg-10 mx-auto">
{% if user_info %}
<!-- 基本信息卡片 -->
<div class="card shadow mb-4">
<div class="card-header bg-primary text-white">
<h5 class="mb-0"><i class="fas fa-id-card me-2"></i>基本信息</h5>
</div>
<div class="card-body">
<div class="row">
<!-- 左侧个人信息 -->
<div class="col-md-6">
<div class="info-group mb-3">
<label class="form-label text-muted">学号</label>
<div class="info-value">{{ user_info.student_number }}</div>
</div>
<div class="info-group mb-3">
<label class="form-label text-muted">姓名</label>
<div class="info-value">
{% if user_info.name %}
{{ user_info.name }}
{% else %}
<span class="text-muted">未设置</span>
{% endif %}
</div>
</div>
<div class="info-group mb-3">
<label class="form-label text-muted">性别</label>
<div class="info-value">
{% if user_info.gender %}
<span class="badge bg-{{ 'info' if user_info.gender == '男' else 'warning' }}">
<i class="fas fa-{{ 'mars' if user_info.gender == '男' else 'venus' }} me-1"></i>
{{ user_info.gender }}
</span>
{% else %}
<span class="text-muted">未设置</span>
{% endif %}
</div>
</div>
<div class="info-group mb-3">
<label class="form-label text-muted">年级</label>
<div class="info-value">
{% if user_info.grade %}
{{ user_info.grade }}级
{% else %}
<span class="text-muted">未设置</span>
{% endif %}
</div>
</div>
<div class="info-group mb-3">
<label class="form-label text-muted">手机号</label>
<div class="info-value">
{% if user_info.phone %}
{{ user_info.phone }}
{% else %}
<span class="text-muted">未设置</span>
{% endif %}
</div>
</div>
</div>
<!-- 右侧学术信息 -->
<div class="col-md-6">
<div class="info-group mb-3">
<label class="form-label text-muted">导师</label>
<div class="info-value">
{% if user_info.supervisor %}
{{ user_info.supervisor }}
{% else %}
<span class="text-muted">未分配</span>
{% endif %}
</div>
</div>
<div class="info-group mb-3">
<label class="form-label text-muted">学院</label>
<div class="info-value">
{% if user_info.college %}
{{ user_info.college }}
{% else %}
<span class="text-muted">未设置</span>
{% endif %}
</div>
</div>
<div class="info-group mb-3">
<label class="form-label text-muted">专业</label>
<div class="info-value">
{% if user_info.major %}
{{ user_info.major }}
{% else %}
<span class="text-muted">未设置</span>
{% endif %}
</div>
</div>
<div class="info-group mb-3">
<label class="form-label text-muted">学位类型</label>
<div class="info-value">
{% if user_info.degree_type %}
<span class="badge bg-success">{{ user_info.degree_type }}</span>
{% else %}
<span class="text-muted">未设置</span>
{% endif %}
</div>
</div>
<div class="info-group mb-3">
<label class="form-label text-muted">入学日期</label>
<div class="info-value">
{% if user_info.enrollment_date %}
{{ user_info.enrollment_date.strftime('%Y年%m月%d日') }}
{% else %}
<span class="text-muted">未设置</span>
{% endif %}
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 账户信息卡片 -->
<div class="card shadow mb-4">
<div class="card-header bg-secondary text-white">
<h5 class="mb-0"><i class="fas fa-user-cog me-2"></i>账户信息</h5>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-6">
<div class="info-group mb-3">
<label class="form-label text-muted">用户ID</label>
<div class="info-value">{{ user_info.user_id }}</div>
</div>
<div class="info-group mb-3">
<label class="form-label text-muted">角色</label>
<div class="info-value">
<span class="badge bg-primary">
<i class="fas fa-user me-1"></i>学生
</span>
</div>
</div>
</div>
<div class="col-md-6">
<div class="info-group mb-3">
<label class="form-label text-muted">账户状态</label>
<div class="info-value">
{% if user_info.is_active %}
<span class="badge bg-success">
<i class="fas fa-check-circle me-1"></i>活跃
</span>
{% else %}
<span class="badge bg-danger">
<i class="fas fa-times-circle me-1"></i>已禁用
</span>
{% endif %}
</div>
</div>
{% if user_info.status %}
<div class="info-group mb-3">
<label class="form-label text-muted">在读状态</label>
<div class="info-value">
<span class="badge bg-{{ 'success' if user_info.status == '在读' else 'secondary' }}">
{{ user_info.status }}
</span>
</div>
</div>
{% endif %}
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="info-group mb-3">
<label class="form-label text-muted">最后登录</label>
<div class="info-value">
{% if user_info.last_login %}
{{ user_info.last_login.strftime('%Y-%m-%d %H:%M:%S') }}
{% else %}
<span class="text-muted">从未登录</span>
{% endif %}
</div>
</div>
</div>
<div class="col-md-6">
<div class="info-group mb-3">
<label class="form-label text-muted">账户创建时间</label>
<div class="info-value">{{ user_info.created_at.strftime('%Y-%m-%d %H:%M:%S') }}</div>
</div>
</div>
</div>
</div>
</div>
<!-- 操作按钮 -->
<div class="text-center">
<a href="{{ url_for('auth.change_password') }}" class="btn btn-warning btn-lg me-3">
<i class="fas fa-key me-1"></i>修改密码
</a>
<a href="{{ url_for('student.dashboard') }}" class="btn btn-secondary btn-lg">
<i class="fas fa-arrow-left me-1"></i>返回首页
</a>
</div>
{% else %}
<div class="alert alert-warning">
<i class="fas fa-exclamation-triangle me-2"></i>
无法获取用户信息,请联系管理员
</div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
<style>
.info-group {
border-left: 3px solid #007bff;
padding-left: 15px;
}
.info-value {
font-weight: 500;
font-size: 1.1em;
color: #333;
}
.card {
border: none;
border-radius: 10px;
}
.card-header {
border-radius: 10px 10px 0 0 !important;
}
.text-muted {
font-style: italic;
}
@media (max-width: 768px) {
.info-group {
margin-bottom: 1rem !important;
}
.btn-lg {
width: 100%;
margin-bottom: 10px;
}
}
</style>
{% endblock %}