352 lines
6.9 KiB
CSS
352 lines
6.9 KiB
CSS
/* 用户管理页面样式 */
|
|
.admin-users {
|
|
padding: 0;
|
|
}
|
|
|
|
/* 统计卡片样式 */
|
|
.stats-card {
|
|
border: none;
|
|
border-radius: 12px;
|
|
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
|
|
transition: transform 0.2s;
|
|
}
|
|
|
|
.stats-card:hover {
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
.stats-card .card-title {
|
|
font-size: 1.8rem;
|
|
font-weight: 600;
|
|
color: #333;
|
|
margin-bottom: 0.25rem;
|
|
}
|
|
|
|
.stats-card .card-text {
|
|
color: #666;
|
|
font-size: 0.9rem;
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.icon-wrapper {
|
|
width: 48px;
|
|
height: 48px;
|
|
border-radius: 12px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 1.5rem;
|
|
color: white;
|
|
}
|
|
|
|
.icon-wrapper.primary {
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
}
|
|
|
|
.icon-wrapper.success {
|
|
background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
|
|
}
|
|
|
|
.icon-wrapper.danger {
|
|
background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
|
|
}
|
|
|
|
.icon-wrapper.info {
|
|
background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%);
|
|
color: #333;
|
|
}
|
|
|
|
/* 用户头像样式 - 表格中的头像 */
|
|
.avatar-wrapper {
|
|
width: 48px !important;
|
|
height: 48px !important;
|
|
position: relative;
|
|
overflow: hidden !important;
|
|
flex-shrink: 0 !important;
|
|
flex-grow: 0 !important;
|
|
}
|
|
|
|
.user-avatar {
|
|
width: 48px !important;
|
|
height: 48px !important;
|
|
border-radius: 50% !important;
|
|
object-fit: cover !important;
|
|
border: 2px solid #f8f9fa !important;
|
|
display: block !important;
|
|
max-width: 48px !important;
|
|
max-height: 48px !important;
|
|
min-width: 48px !important;
|
|
min-height: 48px !important;
|
|
flex-shrink: 0 !important;
|
|
flex-grow: 0 !important;
|
|
}
|
|
|
|
.user-avatar-placeholder {
|
|
width: 48px !important;
|
|
height: 48px !important;
|
|
border-radius: 50% !important;
|
|
background: #e9ecef !important;
|
|
display: flex !important;
|
|
align-items: center !important;
|
|
justify-content: center !important;
|
|
font-size: 1.2rem !important;
|
|
color: #6c757d !important;
|
|
flex-shrink: 0 !important;
|
|
flex-grow: 0 !important;
|
|
}
|
|
|
|
/* 用户详情模态框中的头像容器 */
|
|
.user-avatar-large-wrapper {
|
|
width: 80px !important;
|
|
height: 80px !important;
|
|
margin: 0 auto !important;
|
|
overflow: hidden !important;
|
|
border-radius: 50% !important;
|
|
position: relative !important;
|
|
flex-shrink: 0 !important;
|
|
flex-grow: 0 !important;
|
|
}
|
|
|
|
/* 用户详情模态框中的头像 */
|
|
.avatar-large {
|
|
width: 80px !important;
|
|
height: 80px !important;
|
|
border-radius: 50% !important;
|
|
object-fit: cover !important;
|
|
border: 3px solid #f8f9fa !important;
|
|
display: block !important;
|
|
max-width: 80px !important;
|
|
max-height: 80px !important;
|
|
min-width: 80px !important;
|
|
min-height: 80px !important;
|
|
flex-shrink: 0 !important;
|
|
flex-grow: 0 !important;
|
|
}
|
|
|
|
.avatar-placeholder-large {
|
|
width: 80px !important;
|
|
height: 80px !important;
|
|
border-radius: 50% !important;
|
|
background: #e9ecef !important;
|
|
display: flex !important;
|
|
align-items: center !important;
|
|
justify-content: center !important;
|
|
font-size: 2rem !important;
|
|
color: #6c757d !important;
|
|
flex-shrink: 0 !important;
|
|
flex-grow: 0 !important;
|
|
}
|
|
|
|
/* 强制覆盖Bootstrap的所有可能的图片样式 */
|
|
.user-detail img,
|
|
.table img,
|
|
.modal img {
|
|
max-width: none !important;
|
|
max-height: none !important;
|
|
}
|
|
|
|
.user-detail img.avatar-large,
|
|
.modal img.avatar-large {
|
|
width: 80px !important;
|
|
height: 80px !important;
|
|
max-width: 80px !important;
|
|
max-height: 80px !important;
|
|
min-width: 80px !important;
|
|
min-height: 80px !important;
|
|
}
|
|
|
|
.table img.user-avatar {
|
|
width: 48px !important;
|
|
height: 48px !important;
|
|
max-width: 48px !important;
|
|
max-height: 48px !important;
|
|
min-width: 48px !important;
|
|
min-height: 48px !important;
|
|
}
|
|
|
|
/* 表格样式 */
|
|
.table th {
|
|
background-color: #f8f9fa;
|
|
border-bottom: 2px solid #dee2e6;
|
|
font-weight: 600;
|
|
color: #495057;
|
|
}
|
|
|
|
.table td {
|
|
vertical-align: middle;
|
|
padding: 1rem 0.75rem;
|
|
}
|
|
|
|
.table-hover tbody tr:hover {
|
|
background-color: #f8f9fa;
|
|
}
|
|
|
|
/* 按钮组样式 */
|
|
.btn-group .btn {
|
|
padding: 0.375rem 0.75rem;
|
|
font-size: 0.875rem;
|
|
}
|
|
|
|
/* 空状态样式 */
|
|
.empty-state {
|
|
text-align: center;
|
|
padding: 3rem 1rem;
|
|
color: #6c757d;
|
|
}
|
|
|
|
.empty-state i {
|
|
font-size: 3rem;
|
|
margin-bottom: 1rem;
|
|
color: #dee2e6;
|
|
}
|
|
|
|
.empty-state div {
|
|
font-size: 1.1rem;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
/* 用户详情信息样式 */
|
|
.user-detail {
|
|
padding: 1rem;
|
|
}
|
|
|
|
.user-info-list {
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
.user-info-item {
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 0.75rem 0;
|
|
border-bottom: 1px solid #f8f9fa;
|
|
}
|
|
|
|
.user-info-item:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.user-info-label {
|
|
font-weight: 500;
|
|
color: #495057;
|
|
width: 120px;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.user-info-value {
|
|
color: #333;
|
|
flex: 1;
|
|
}
|
|
|
|
/* 响应式设计 */
|
|
@media (max-width: 768px) {
|
|
.table-responsive {
|
|
font-size: 0.875rem;
|
|
}
|
|
|
|
.btn-group .btn {
|
|
padding: 0.25rem 0.5rem;
|
|
font-size: 0.75rem;
|
|
}
|
|
|
|
.stats-card .card-title {
|
|
font-size: 1.5rem;
|
|
}
|
|
|
|
.icon-wrapper {
|
|
width: 40px;
|
|
height: 40px;
|
|
font-size: 1.2rem;
|
|
}
|
|
|
|
.user-avatar {
|
|
width: 40px !important;
|
|
height: 40px !important;
|
|
max-width: 40px !important;
|
|
max-height: 40px !important;
|
|
min-width: 40px !important;
|
|
min-height: 40px !important;
|
|
}
|
|
|
|
.avatar-wrapper {
|
|
width: 40px !important;
|
|
height: 40px !important;
|
|
}
|
|
|
|
.user-avatar-placeholder {
|
|
width: 40px !important;
|
|
height: 40px !important;
|
|
font-size: 1rem !important;
|
|
}
|
|
}
|
|
|
|
/* 筛选表单样式 */
|
|
.card .form-label {
|
|
font-weight: 500;
|
|
color: #495057;
|
|
}
|
|
|
|
.form-control:focus, .form-select:focus {
|
|
border-color: #667eea;
|
|
box-shadow: 0 0 0 0.2rem rgba(102, 126, 234, 0.25);
|
|
}
|
|
|
|
/* 分页样式 */
|
|
.pagination .page-link {
|
|
color: #667eea;
|
|
border-color: #dee2e6;
|
|
}
|
|
|
|
.pagination .page-link:hover {
|
|
color: #495057;
|
|
background-color: #f8f9fa;
|
|
border-color: #dee2e6;
|
|
}
|
|
|
|
.pagination .page-item.active .page-link {
|
|
background-color: #667eea;
|
|
border-color: #667eea;
|
|
}
|
|
|
|
/* 用户详情模态框样式 */
|
|
.modal-content {
|
|
border-radius: 12px;
|
|
border: none;
|
|
box-shadow: 0 10px 30px rgba(0,0,0,0.15);
|
|
}
|
|
|
|
.modal-header {
|
|
background-color: #f8f9fa;
|
|
border-bottom: 1px solid #dee2e6;
|
|
border-radius: 12px 12px 0 0;
|
|
}
|
|
|
|
.modal-title {
|
|
font-weight: 600;
|
|
color: #333;
|
|
}
|
|
|
|
/* 徽章样式 */
|
|
.badge {
|
|
font-size: 0.75rem;
|
|
font-weight: 500;
|
|
padding: 0.35em 0.65em;
|
|
}
|
|
|
|
/* 加载状态 */
|
|
.loading {
|
|
text-align: center;
|
|
padding: 2rem;
|
|
color: #6c757d;
|
|
}
|
|
|
|
.loading i {
|
|
font-size: 2rem;
|
|
margin-bottom: 1rem;
|
|
animation: spin 1s linear infinite;
|
|
}
|
|
|
|
@keyframes spin {
|
|
0% { transform: rotate(0deg); }
|
|
100% { transform: rotate(360deg); }
|
|
}
|