// 学生信息编辑弹窗包装器样式 .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; } } } } }