Files
SharedClassManager/frontend/assets/css/admin.css
2026-04-27 03:02:10 +08:00

361 lines
6.2 KiB
CSS

/**
* 班级操行分管理系统 - 管理端样式
*
* 开发者: Canglan
* 联系方式: admin@sea-studio.top
* 版权归属: Sea Network Technology Studio
* 许可证: MIT License
*
* 版权所有 © Sea Network Technology Studio
*/
/* 批量操作栏 */
.batch-bar {
background: #f0f4ff;
padding: 12px 16px;
border-radius: 8px;
margin-bottom: 16px;
display: flex;
justify-content: space-between;
align-items: center;
}
.batch-info {
color: #667eea;
font-weight: 500;
}
/* 导入区域 */
.import-area {
border: 2px dashed #ddd;
border-radius: 12px;
padding: 30px;
text-align: center;
margin-bottom: 20px;
transition: border-color 0.3s;
cursor: pointer;
}
.import-area:hover {
border-color: #667eea;
}
.import-area input {
display: none;
}
.import-label {
color: #667eea;
text-decoration: underline;
cursor: pointer;
}
/* 预览表格 */
.preview-table {
max-height: 300px;
overflow-y: auto;
margin-top: 16px;
}
/* 筛选栏 */
.filter-bar {
background: #f8f9fa;
padding: 16px;
border-radius: 8px;
margin-bottom: 20px;
display: flex;
flex-wrap: wrap;
gap: 16px;
align-items: flex-end;
}
.filter-group {
flex: 1;
min-width: 150px;
}
.filter-group label {
display: block;
margin-bottom: 4px;
font-size: 12px;
color: #666;
}
.filter-group input,
.filter-group select {
width: 100%;
padding: 8px;
border: 1px solid #ddd;
border-radius: 4px;
}
/* 作业卡片 */
.assignment-card {
margin-bottom: 20px;
}
.assignment-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 16px;
flex-wrap: wrap;
gap: 10px;
}
.assignment-title {
font-size: 16px;
font-weight: bold;
color: #333;
}
.assignment-meta {
color: #999;
font-size: 12px;
}
/* 状态选择器 */
.status-select {
padding: 4px 8px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 12px;
}
/* 复选框 */
.student-checkbox {
width: 18px;
height: 18px;
cursor: pointer;
}
/* 扣分类型按钮组 */
.deduction-types {
display: flex;
gap: 8px;
flex-wrap: wrap;
}
/* 考勤学生方格网格 */
.student-grid {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin: 15px 0;
}
.student-cell {
width: calc(100% / 7 - 10px);
min-height: 60px;
border: 2px solid #e5e7eb;
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
font-size: 14px;
font-weight: 500;
transition: all 0.2s ease;
padding: 8px 4px;
text-align: center;
word-break: break-all;
user-select: none;
}
.student-cell:hover {
background: #f3f4f6;
border-color: #9ca3af;
}
.student-cell.selected {
background: #fee2e2;
border-color: #ef4444;
color: #dc2626;
}
.student-cell.has-record {
border: 2px dashed #9ca3af;
opacity: 0.7;
}
.attendance-toolbar {
display: flex;
align-items: center;
gap: 10px;
margin: 15px 0;
flex-wrap: wrap;
}
.attendance-toolbar .status-group {
display: flex;
gap: 8px;
}
.attendance-toolbar .status-btn {
padding: 6px 16px;
border: 2px solid #e5e7eb;
border-radius: 6px;
background: white;
cursor: pointer;
font-size: 13px;
transition: all 0.2s;
}
.attendance-toolbar .status-btn.active {
border-color: #667eea;
background: #eef2ff;
color: #4338ca;
}
/* ========== 响应式 — 平板 (≤768px) ========== */
@media (max-width: 768px) {
.student-cell {
width: calc(100% / 4 - 10px);
min-height: 54px;
font-size: 13px;
}
.batch-bar {
flex-direction: column;
gap: 8px;
text-align: center;
}
.filter-bar {
flex-direction: column;
gap: 10px;
padding: 12px;
}
.filter-group {
min-width: 100%;
}
.attendance-toolbar {
gap: 8px;
}
.attendance-toolbar .status-group {
flex-wrap: wrap;
gap: 6px;
}
.attendance-toolbar .status-btn {
padding: 8px 14px;
font-size: 13px;
min-height: 40px;
}
.assignment-header {
flex-direction: column;
align-items: flex-start;
}
.import-area {
padding: 20px;
}
}
/* ========== 响应式 — 手机 (≤480px) ========== */
@media (max-width: 480px) {
.student-cell {
width: calc(100% / 3 - 8px);
min-height: 50px;
font-size: 12px;
padding: 6px 2px;
border-radius: 6px;
}
.student-cell-name {
font-size: 12px;
}
.student-cell-no {
font-size: 10px;
}
.student-grid {
gap: 6px;
margin: 10px 0;
}
.batch-bar {
padding: 10px 12px;
border-radius: 6px;
}
.filter-bar {
padding: 10px;
border-radius: 6px;
gap: 8px;
}
.filter-group input,
.filter-group select {
font-size: 16px; /* 防止 iOS 自动缩放 */
padding: 10px 8px;
min-height: 40px;
}
.attendance-toolbar {
flex-direction: column;
align-items: stretch;
gap: 8px;
}
.attendance-toolbar .form-group {
width: 100%;
}
.attendance-toolbar .form-group input,
.attendance-toolbar .form-group select {
font-size: 16px;
}
.attendance-toolbar .status-group {
display: flex;
flex-wrap: wrap;
gap: 6px;
justify-content: space-between;
}
.attendance-toolbar .status-btn {
flex: 1 1 calc(33% - 6px);
min-width: 0;
text-align: center;
padding: 10px 8px;
}
.attendance-toolbar input[type="text"],
.attendance-toolbar input[type="number"] {
font-size: 16px;
width: 100% !important;
min-width: 0 !important;
}
.attendance-toolbar .btn {
width: 100%;
}
.status-select {
font-size: 16px; /* 防止 iOS 自动缩放 */
padding: 8px;
min-height: 40px;
}
.import-area {
padding: 16px;
}
.preview-table {
max-height: 200px;
}
.assignment-card {
margin-bottom: 12px;
}
.assignment-title {
font-size: 14px;
}
}