智慧教务系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

449 lines
9.2 KiB

// 学生信息编辑弹窗包装器样式
.student-edit-popup-wrapper {
// 包装器不添加任何样式,仅作为Vue 2单根元素要求的容器
}
// 学生信息编辑弹窗样式
.student-edit-popup {
width: 90vw;
max-width: 600rpx;
max-height: 80vh;
background: #fff;
border-radius: 20rpx;
overflow: hidden;
.popup-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 30rpx 40rpx;
background: #f8f9fa;
border-bottom: 1rpx solid #eee;
.popup-title {
font-size: 32rpx;
font-weight: 600;
color: #333;
}
.popup-close {
width: 60rpx;
height: 60rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 36rpx;
color: #999;
cursor: pointer;
&:hover {
color: #666;
}
}
}
.student-form-container {
max-height: 60vh;
padding: 0 40rpx;
.form-section {
padding: 20rpx 0;
.form-group {
margin-bottom: 40rpx;
.form-group-title {
font-size: 28rpx;
font-weight: 600;
color: #333;
margin-bottom: 20rpx;
padding-bottom: 10rpx;
border-bottom: 2rpx solid #29d3b4;
}
.form-item {
display: flex;
align-items: center;
margin-bottom: 30rpx;
.form-label {
width: 160rpx;
font-size: 28rpx;
color: #666;
flex-shrink: 0;
&.required::after {
content: '*';
color: #ff4757;
margin-left: 4rpx;
}
}
.form-input {
flex: 1;
// 头像上传样式
.avatar-upload {
width: 160rpx;
height: 160rpx;
border-radius: 50%;
overflow: hidden;
border: 2rpx solid #e9ecef;
background: #f8f9fa;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.3s ease;
&:active {
background: #e9ecef;
transform: scale(0.95);
}
.avatar-preview {
width: 100%;
height: 100%;
border-radius: 50%;
}
.avatar-placeholder {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
.avatar-icon {
font-size: 48rpx;
color: #29d3b4;
margin-bottom: 8rpx;
font-weight: 300;
}
.avatar-text {
font-size: 22rpx;
color: #999;
}
}
}
input {
width: 100%;
height: 80rpx;
padding: 0 20rpx;
border: 1rpx solid #ddd;
border-radius: 8rpx;
font-size: 28rpx;
background: #fff;
&:focus {
border-color: #29d3b4;
outline: none;
}
&::placeholder {
color: #ccc;
}
}
.picker-display {
display: flex;
align-items: center;
justify-content: space-between;
height: 80rpx;
padding: 0 20rpx;
border: 1rpx solid #ddd;
border-radius: 8rpx;
font-size: 28rpx;
background: #fff;
color: #333;
.picker-arrow {
font-size: 32rpx;
color: #999;
transform: rotate(90deg);
}
}
}
.form-textarea {
flex: 1;
textarea {
width: 100%;
min-height: 120rpx;
padding: 20rpx;
border: 1rpx solid #ddd;
border-radius: 8rpx;
font-size: 28rpx;
background: #fff;
resize: none;
&:focus {
border-color: #29d3b4;
outline: none;
}
&::placeholder {
color: #ccc;
}
}
}
}
}
}
}
.popup-footer {
display: flex;
padding: 30rpx 40rpx;
background: #f8f9fa;
border-top: 1rpx solid #eee;
gap: 20rpx;
.popup-btn {
flex: 1;
height: 80rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 8rpx;
font-size: 28rpx;
cursor: pointer;
transition: all 0.3s ease;
&.cancel-btn {
background: #f5f5f5;
color: #666;
border: 1rpx solid #ddd;
&:hover {
background: #e9e9e9;
}
}
&.confirm-btn {
background: #29d3b4;
color: #fff;
border: 1rpx solid #29d3b4;
&:hover {
background: #26c4a6;
}
}
}
}
}
// 响应式适配
@media (max-width: 750rpx) {
.student-edit-popup {
width: 95vw;
.popup-header {
padding: 25rpx 30rpx;
.popup-title {
font-size: 30rpx;
}
}
.student-form-container {
padding: 0 30rpx;
.form-section {
.form-group {
.form-item {
flex-direction: column;
align-items: flex-start;
.form-label {
width: 100%;
margin-bottom: 10rpx;
}
.form-input,
.form-textarea {
width: 100%;
}
}
}
}
}
.popup-footer {
padding: 25rpx 30rpx;
}
}
}
// 标签选择器样式
.tag-selector {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 88rpx;
padding: 20rpx;
background: #f8f9fa;
border-radius: 12rpx;
border: 1rpx solid #e9ecef;
cursor: pointer;
&:active {
background: #e9ecef;
}
.selected-tags {
display: flex;
flex-wrap: wrap;
gap: 10rpx;
flex: 1;
.tag-item {
padding: 8rpx 16rpx;
background: #29d3b4;
color: white;
border-radius: 20rpx;
font-size: 24rpx;
white-space: nowrap;
}
}
.placeholder {
color: #999;
font-size: 28rpx;
}
.picker-arrow {
color: #999;
font-size: 32rpx;
transform: rotate(90deg);
margin-left: 20rpx;
}
}
// 标签选择弹窗样式
.tag-popup {
background: white;
border-radius: 24rpx 24rpx 0 0;
max-height: 80vh;
.tag-popup-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 40rpx;
border-bottom: 1rpx solid #f0f0f0;
.tag-popup-title {
font-size: 32rpx;
font-weight: 600;
color: #333;
}
.tag-popup-close {
font-size: 40rpx;
color: #999;
width: 60rpx;
height: 60rpx;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
&:active {
background: #f0f0f0;
border-radius: 50%;
}
}
}
.tag-list {
max-height: 50vh;
overflow-y: auto;
padding: 20rpx 40rpx;
.tag-option {
display: flex;
align-items: center;
padding: 24rpx 0;
border-bottom: 1rpx solid #f5f5f5;
cursor: pointer;
&:last-child {
border-bottom: none;
}
&:active {
background: #f8f9fa;
}
&.selected {
.tag-checkbox {
background: #29d3b4;
border-color: #29d3b4;
color: white;
}
}
.tag-checkbox {
width: 40rpx;
height: 40rpx;
border: 2rpx solid #ddd;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin-right: 24rpx;
font-size: 24rpx;
color: transparent;
transition: all 0.2s;
}
.tag-name {
font-size: 28rpx;
color: #333;
flex: 1;
}
}
}
.tag-popup-footer {
display: flex;
padding: 30rpx 40rpx;
gap: 30rpx;
border-top: 1rpx solid #f0f0f0;
.tag-popup-btn {
flex: 1;
height: 88rpx;
display: flex;
align-items: center;
justify-content: center;
border-radius: 12rpx;
font-size: 28rpx;
cursor: pointer;
&.cancel {
background: #f8f9fa;
color: #666;
border: 1rpx solid #e9ecef;
&:active {
background: #e9ecef;
}
}
&.confirm {
background: #29d3b4;
color: white;
&:active {
background: #26c4a6;
}
}
}
}
}