/* 员工管理页面样式 */ .employee-container { width: 100%; height: 100vh; background-color: #f5f5f5; display: flex; flex-direction: column; } /* 顶部导航栏 */ .top-nav { height: 90rpx; background-color: #1aad19; color: white; display: flex; align-items: center; justify-content: space-between; padding: 0 30rpx; box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.1); } .nav-left { display: flex; align-items: center; gap: 20rpx; } .back-btn { font-size: 40rpx; font-weight: bold; cursor: pointer; } .nav-title { font-size: 36rpx; font-weight: bold; } .nav-right { font-size: 28rpx; opacity: 0.9; } /* 页面标签 */ .page-tabs { height: 80rpx; background-color: white; display: flex; border-bottom: 1rpx solid #e0e0e0; } .tab-item { flex: 1; display: flex; align-items: center; justify-content: center; font-size: 30rpx; color: #666; border-bottom: 4rpx solid transparent; transition: all 0.3s; } .tab-item.active { color: #1aad19; border-bottom-color: #1aad19; font-weight: bold; } .tab-text { padding: 10rpx 0; } /* 消息提示 */ .message-container { padding: 20rpx 30rpx; } .error-message, .success-message { padding: 20rpx 30rpx; border-radius: 10rpx; display: flex; align-items: center; justify-content: space-between; font-size: 28rpx; } .error-message { background-color: #fff2f0; color: #ff4d4f; border: 1rpx solid #ffccc7; } .success-message { background-color: #f6ffed; color: #52c41a; border: 1rpx solid #b7eb8f; } .message-text { flex: 1; } .close-btn { font-size: 36rpx; cursor: pointer; padding-left: 20rpx; } /* 加载状态 */ .loading-container { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 100rpx 0; } .loading-spinner { width: 60rpx; height: 60rpx; border: 4rpx solid #f3f3f3; border-top: 4rpx solid #1aad19; border-radius: 50%; animation: spin 1s linear infinite; margin-bottom: 20rpx; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .loading-text { font-size: 28rpx; color: #666; } /* 列表容器 */ .list-container { flex: 1; display: flex; flex-direction: column; padding-bottom: 60rpx; /* 添加底部边距,避免内容被底部遮挡 */ } /* 搜索框 */ .search-container { padding: 30rpx; background: linear-gradient(135deg, #ffffff, #fafafa); border-bottom: 1rpx solid rgba(0, 0, 0, 0.05); box-shadow: 0 2rpx 15rpx rgba(0, 0, 0, 0.03); } .search-input-wrapper { position: relative; display: flex; align-items: center; } .search-input { flex: 1; height: 80rpx; background: linear-gradient(135deg, #f8f9fa, #f1f3f4); border-radius: 40rpx; padding: 0 80rpx 0 35rpx; font-size: 30rpx; border: 2rpx solid transparent; box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.05); transition: all 0.3s ease; } .search-input:focus { border-color: #1aad19; background: linear-gradient(135deg, #ffffff, #f8f9fa); box-shadow: 0 6rpx 25rpx rgba(26, 173, 25, 0.15); } .search-icon { position: absolute; right: 35rpx; font-size: 36rpx; color: #1aad19; filter: drop-shadow(0 2rpx 4rpx rgba(26, 173, 25, 0.3)); } /* 员工列表 */ .employee-list { flex: 1; padding: 30rpx; box-sizing: border-box; } .employee-item { background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%); border-radius: 20rpx; padding: 35rpx; margin: 25rpx 0; display: flex; align-items: center; justify-content: space-between; box-shadow: 0 8rpx 30rpx rgba(0, 0, 0, 0.08); border: 1rpx solid rgba(255, 255, 255, 0.8); transition: all 0.3s ease; position: relative; overflow: hidden; box-sizing: border-box; width: 100%; } .employee-item::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4rpx; background: linear-gradient(90deg, #1aad19, #52c41a); } .employee-item:active { transform: translateY(2rpx); box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.12); } .employee-info { display: flex; align-items: center; flex: 1; min-width: 0; overflow: hidden; } .employee-avatar { width: 90rpx; height: 90rpx; border-radius: 50%; background: linear-gradient(135deg, #1aad19, #52c41a); display: flex; align-items: center; justify-content: center; margin-right: 25rpx; box-shadow: 0 4rpx 15rpx rgba(26, 173, 25, 0.3); border: 3rpx solid rgba(255, 255, 255, 0.9); } .avatar-text { color: white; font-size: 36rpx; font-weight: bold; text-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.2); } .employee-details { flex: 1; min-width: 0; overflow: hidden; } .employee-name-row { display: flex; align-items: center; margin-bottom: 12rpx; gap: 15rpx; } .employee-name { font-size: 34rpx; font-weight: 700; color: #1a1a1a; letter-spacing: 0.5rpx; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 200rpx; } .employee-role { font-size: 24rpx; padding: 6rpx 16rpx; border-radius: 20rpx; background: linear-gradient(135deg, #f0f2f5, #e8ecef); color: #595959; display: flex; align-items: center; gap: 8rpx; border: 1rpx solid rgba(0, 0, 0, 0.05); } .role-icon { font-size: 28rpx; display: flex; align-items: center; justify-content: center; } .employee-role.admin-role { background: linear-gradient(135deg, #fff7e6, #ffe7ba); color: #d46b08; border: 1rpx solid rgba(250, 140, 22, 0.2); } .employee-phone { font-size: 28rpx; color: #666; margin-bottom: 8rpx; display: flex; align-items: center; gap: 8rpx; } .employee-phone::before { content: '📱'; font-size: 24rpx; } .employee-id { font-size: 24rpx; color: #999; display: flex; align-items: center; gap: 8rpx; } .employee-id::before { content: '🆔'; font-size: 20rpx; } .employee-actions { margin-left: 25rpx; } .delete-btn { background: linear-gradient(135deg, #ff4d4f, #ff7875); color: white; border: none; border-radius: 25rpx; padding: 12rpx 24rpx; font-size: 26rpx; font-weight: 600; box-shadow: 0 4rpx 12rpx rgba(255, 77, 79, 0.3); transition: all 0.3s ease; border: 1rpx solid rgba(255, 255, 255, 0.2); } .delete-btn:active { background: linear-gradient(135deg, #d9363e, #ff7875); transform: translateY(1rpx); box-shadow: 0 2rpx 8rpx rgba(255, 77, 79, 0.2); } /* 空状态 */ .empty-state { text-align: center; padding: 120rpx 30rpx; color: #999; background: linear-gradient(135deg, #fafafa, #f5f5f5); border-radius: 25rpx; margin: 30rpx; box-shadow: 0 8rpx 30rpx rgba(0, 0, 0, 0.05); border: 1rpx solid rgba(255, 255, 255, 0.8); } .empty-icon { font-size: 100rpx; display: block; margin-bottom: 25rpx; filter: drop-shadow(0 4rpx 8rpx rgba(0, 0, 0, 0.1)); } .empty-text { font-size: 36rpx; display: block; margin-bottom: 15rpx; font-weight: 600; color: #666; } .empty-hint { font-size: 30rpx; opacity: 0.8; line-height: 1.6; } /* 添加容器 */ .add-container { flex: 1; padding: 30rpx; } .form-container { background-color: white; border-radius: 15rpx; padding: 40rpx; box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.05); } .form-item { margin-bottom: 40rpx; } .form-label { display: block; font-size: 30rpx; color: #333; margin-bottom: 15rpx; font-weight: bold; } .form-input { width: 100%; height: 80rpx; border: 1rpx solid #e0e0e0; border-radius: 10rpx; padding: 0 20rpx; font-size: 28rpx; box-sizing: border-box; } .form-input:focus { border-color: #1aad19; } .form-picker { width: 100%; height: 80rpx; border: 1rpx solid #e0e0e0; border-radius: 10rpx; padding: 0 20rpx; font-size: 28rpx; box-sizing: border-box; display: flex; align-items: center; } .picker-display { width: 100%; display: flex; align-items: center; justify-content: space-between; } .picker-text { color: #333; } .picker-arrow { color: #999; font-size: 24rpx; } .form-hint { background-color: #f6ffed; border: 1rpx solid #b7eb8f; border-radius: 10rpx; padding: 20rpx; margin-bottom: 40rpx; } .hint-text { font-size: 26rpx; color: #52c41a; line-height: 1.5; } .submit-btn { width: 100%; height: 90rpx; background-color: #1aad19; color: white; border: none; border-radius: 45rpx; font-size: 32rpx; font-weight: bold; } .submit-btn:active { background-color: #179b16; } .submit-btn:disabled { background-color: #ccc; color: #999; }