From 915d80766dd8e0157e9b9510b3634ed758eb5c5a Mon Sep 17 00:00:00 2001 From: Codex Assistant <codex@example.com> Date: 星期日, 05 十月 2025 14:45:58 +0800 Subject: [PATCH] feat: 新增员工审核入口与审核页面 --- wx/pages/profile/profile.wxss | 700 +++++++++++++++++++++++----------------------------------- 1 files changed, 280 insertions(+), 420 deletions(-) diff --git a/wx/pages/profile/profile.wxss b/wx/pages/profile/profile.wxss index cdbf621..7889695 100644 --- a/wx/pages/profile/profile.wxss +++ b/wx/pages/profile/profile.wxss @@ -4,7 +4,7 @@ /* 瀹瑰櫒鏍峰紡 */ .container { min-height: 100vh; - background: #f8f9fa; + background: #f5f5f5; padding-bottom: 40rpx; } @@ -31,518 +31,378 @@ padding: 0 30rpx; } -/* 鐢ㄦ埛淇℃伅鍗$墖 */ -.user-card { - background: linear-gradient(135deg, #1976d2, #42a5f5); - border-radius: 20rpx; - padding: 40rpx; - margin-bottom: 30rpx; +/* 鐢ㄦ埛淇℃伅鍖哄煙 */ +.user-section { display: flex; align-items: center; + padding: 40rpx 30rpx; + margin-bottom: 40rpx; justify-content: space-between; - box-shadow: 0 8rpx 24rpx rgba(25, 118, 210, 0.3); } -.user-info { - display: flex; - align-items: center; - flex: 1; +.user-avatar-wrapper { + position: relative; } -.avatar { +.user-avatar { width: 120rpx; height: 120rpx; - border-radius: 50%; - margin-right: 30rpx; - border: 4rpx solid rgba(255, 255, 255, 0.3); + border-radius: 60rpx; + border: 4rpx solid #ffffff; + box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1); } -.avatar-placeholder { +.user-avatar-placeholder { width: 120rpx; height: 120rpx; - border-radius: 50%; - margin-right: 30rpx; - border: 4rpx solid rgba(255, 255, 255, 0.3); - background: rgba(255, 255, 255, 0.2); + border-radius: 60rpx; + border: 4rpx solid #ffffff; + box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1); + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); display: flex; align-items: center; justify-content: center; } .avatar-text { - color: #ffffff; + color: white; font-size: 48rpx; font-weight: bold; } -.user-details { +.avatar { + width: 120rpx; + height: 120rpx; + border-radius: 60rpx; + border: 4rpx solid #ffffff; + box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1); +} + +.user-info { flex: 1; -} - -.username { - display: block; - font-size: 36rpx; - font-weight: bold; - color: #ffffff; - margin-bottom: 12rpx; -} - -.user-desc { - display: block; - font-size: 24rpx; - color: rgba(255, 255, 255, 0.8); - margin-bottom: 16rpx; -} - -.user-roles { - display: flex; - gap: 12rpx; -} - -.role-tag { - padding: 6rpx 16rpx; - background: rgba(255, 255, 255, 0.2); - color: #ffffff; - border-radius: 20rpx; - font-size: 20rpx; - font-weight: 500; -} - -.edit-btn { - width: 60rpx; - height: 60rpx; - background: rgba(255, 255, 255, 0.2); - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; -} - -.edit-icon { - font-size: 28rpx; -} - -/* 缁熻鏁版嵁鏍峰紡 */ -.stats-section { - background: #ffffff; - border-radius: 16rpx; - padding: 30rpx; - margin-bottom: 30rpx; - box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.1); -} - -.stats-grid { - display: flex; - justify-content: space-between; -} - -.stat-item { + margin-left: 30rpx; display: flex; flex-direction: column; - align-items: center; - flex: 1; } -.stat-number { - font-size: 48rpx; +.user-name { + font-size: 36rpx; font-weight: bold; - color: #1976d2; + color: #333333; margin-bottom: 8rpx; } -.stat-label { - font-size: 24rpx; - color: #666666; +.user-role { + font-size: 28rpx; + color: #999999; } -/* 瑙掕壊涓撳尯鏍峰紡 */ -.role-section { - background: #ffffff; - border-radius: 16rpx; - padding: 30rpx; - margin-bottom: 30rpx; - box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.1); -} - -.section-header { +.settings-btn { + width: 80rpx; + height: 80rpx; display: flex; - justify-content: space-between; align-items: center; - margin-bottom: 30rpx; + justify-content: center; + background: rgba(0, 0, 0, 0.05); + border-radius: 40rpx; + transition: all 0.3s ease; +} + +.settings-btn:active { + background: rgba(0, 0, 0, 0.1); + transform: scale(0.95); +} + +.icon-settings { + font-size: 40rpx; +} + +/* 椤圭洰鍖哄煙 */ +.projects-section { + margin-bottom: 40rpx; } .section-title { font-size: 32rpx; font-weight: bold; color: #333333; + margin-bottom: 30rpx; + display: block; } -.judge-stats, -.organizer-stats { - font-size: 24rpx; - color: #1976d2; - font-weight: 500; -} - -.pending-count, -.active-count { - padding: 8rpx 16rpx; - background: #e3f2fd; - border-radius: 20rpx; -} - -.menu-grid { +.project-list { display: flex; - flex-wrap: wrap; + flex-direction: column; gap: 20rpx; } -.menu-item { - flex: 0 0 calc(33.333% - 14rpx); +.project-card { display: flex; - flex-direction: column; align-items: center; - padding: 30rpx 20rpx; - background: #f8f9fa; - border-radius: 12rpx; - border: 2rpx solid transparent; + padding: 24rpx; + margin-bottom: 16rpx; + background: white; + border-radius: 16rpx; + box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05); transition: all 0.3s ease; } -.menu-item:active { - background: #e9ecef; - border-color: #1976d2; +.project-card:active { transform: scale(0.98); -} - -.menu-icon-wrapper { - position: relative; - margin-bottom: 16rpx; -} - -.menu-icon { - font-size: 48rpx; -} - -.badge { - position: absolute; - top: -8rpx; - right: -8rpx; - min-width: 32rpx; - height: 32rpx; - background: #ff4757; - color: #ffffff; - border-radius: 16rpx; - font-size: 20rpx; - display: flex; - align-items: center; - justify-content: center; - padding: 0 8rpx; - font-weight: bold; -} - -.menu-title { - font-size: 26rpx; - font-weight: bold; - color: #333333; - margin-bottom: 8rpx; - text-align: center; -} - -.menu-desc { - font-size: 20rpx; - color: #666666; - text-align: center; - line-height: 1.4; -} - -/* 鍔熻兘鑿滃崟鏍峰紡 */ -.menu-section { - background: #ffffff; - border-radius: 16rpx; - padding: 30rpx; - margin-bottom: 30rpx; - box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.1); -} - -.menu-list { - margin-top: 20rpx; -} - -.menu-item-row { - display: flex; - align-items: center; - justify-content: space-between; - padding: 30rpx 0; - border-bottom: 1rpx solid #f0f0f0; - transition: background 0.3s ease; -} - -.menu-item-row:last-child { - border-bottom: none; -} - -.menu-item-row:active { background: #f8f9fa; } -.menu-left { +.project-card:last-child { + margin-bottom: 0; +} + +.project-icon { + width: 80rpx; + height: 80rpx; + border-radius: 16rpx; display: flex; align-items: center; - flex: 1; -} - -.menu-item-row .menu-icon { - font-size: 40rpx; + justify-content: center; margin-right: 24rpx; + font-size: 32rpx; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + overflow: hidden; } -.menu-text { - flex: 1; -} - -.menu-item-row .menu-title { - display: block; - font-size: 28rpx; - font-weight: 500; - color: #333333; - margin-bottom: 6rpx; -} - -.menu-item-row .menu-desc { - display: block; - font-size: 22rpx; - color: #666666; -} - -.menu-arrow { - font-size: 28rpx; - color: #cccccc; - font-weight: bold; -} - -/* 鏈�杩戞姤鍚嶆牱寮� */ -.recent-section { - background: #ffffff; +.project-thumbnail { + width: 100%; + height: 100%; border-radius: 16rpx; - padding: 30rpx; - margin-bottom: 30rpx; - box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.1); } -.view-more { +.icon-project { + color: white; +} + +.project-info { + flex: 1; + display: flex; + flex-direction: column; +} + +.project-title { + font-size: 32rpx; + font-weight: 600; + color: #1a1a1a; + margin-bottom: 8rpx; +} + +.project-subtitle { + font-size: 26rpx; + color: #666; +} + +.project-status { + margin-right: 16rpx; +} + +.status-text { font-size: 24rpx; - color: #1976d2; + padding: 8rpx 16rpx; + border-radius: 12rpx; font-weight: 500; } -.empty-state { +/* 鍩轰簬web绔殑鐘舵�佹牱寮� */ +.status-text.status-warning { + background: #fff3e0; + color: #f57c00; +} + +.status-text.status-success { + background: #e8f5e8; + color: #388e3c; +} + +.status-text.status-danger { + background: #ffebee; + color: #d32f2f; +} + +.status-text.status-info { + background: #e3f2fd; + color: #1976d2; +} + +.status-text.status-primary { + background: #e3f2fd; + color: #1976d2; +} + +/* 鍏煎鏃х殑瀛楃涓茬姸鎬佹牱寮� */ +.status-text.status-SUBMITTED { + background: #e3f2fd; + color: #1976d2; +} + +.status-text.status-UNDER_REVIEW { + background: #fff3e0; + color: #f57c00; +} + +.status-text.status-REVIEWED { + background: #e8f5e8; + color: #388e3c; +} + +.status-text.status-REJECTED { + background: #ffebee; + color: #d32f2f; +} + +.project-arrow { + font-size: 32rpx; + color: #ccc; + margin-left: 16rpx; +} + +/* 绌虹姸鎬� */ +.empty-projects { display: flex; flex-direction: column; align-items: center; - padding: 80rpx 0; + padding: 80rpx 40rpx; + background: white; + border-radius: 16rpx; + box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05); } .empty-icon { font-size: 80rpx; - margin-bottom: 20rpx; + margin-bottom: 24rpx; opacity: 0.5; } .empty-text { + font-size: 32rpx; + font-weight: 600; + color: #666; + margin-bottom: 12rpx; +} + +.empty-desc { font-size: 26rpx; - color: #999999; -} - -.registration-list { - margin-top: 20rpx; -} - -.registration-item { - display: flex; - align-items: center; - padding: 24rpx 0; - border-bottom: 1rpx solid #f0f0f0; - transition: background 0.3s ease; -} - -.registration-item:last-child { - border-bottom: none; -} - -.registration-item:active { - background: #f8f9fa; -} - -.activity-cover { - width: 120rpx; - height: 80rpx; - border-radius: 8rpx; - margin-right: 20rpx; -} - -.activity-cover-placeholder { - width: 120rpx; - height: 80rpx; - border-radius: 8rpx; - margin-right: 20rpx; - background: linear-gradient(135deg, #42a5f5 0%, #1976d2 100%); - display: flex; - align-items: center; - justify-content: center; -} - -.activity-cover-text { - color: #ffffff; - font-size: 24rpx; - font-weight: bold; -} - -.registration-info { - flex: 1; -} - -.activity-title { - display: block; - font-size: 28rpx; - font-weight: bold; - color: #333333; - margin-bottom: 8rpx; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.registration-time, -.activity-time { - display: block; - font-size: 22rpx; - color: #666666; - margin-bottom: 6rpx; -} - -.status-row { - display: flex; - align-items: center; - gap: 16rpx; -} - -.registration-status, -.activity-status { - padding: 4rpx 12rpx; - border-radius: 12rpx; - font-size: 20rpx; - font-weight: 500; -} - -.registration-status.status-pending { - background: #fff3cd; - color: #856404; -} - -.registration-status.status-approved { - background: #d4edda; - color: #155724; -} - -.registration-status.status-rejected { - background: #f8d7da; - color: #721c24; -} - -.registration-status.status-cancelled { - background: #f1f3f4; - color: #5f6368; -} - -.activity-status { - background: #e3f2fd; - color: #1976d2; -} - -.item-arrow { - font-size: 24rpx; - color: #cccccc; - font-weight: bold; - margin-left: 16rpx; -} - -/* 閫�鍑虹櫥褰曟牱寮� */ -.logout-section { - margin-top: 40rpx; -} - -.logout-btn { - background: #ffffff; - border: 2rpx solid #ff4757; - border-radius: 12rpx; - padding: 30rpx 0; + color: #999; text-align: center; + line-height: 1.5; +} + +/* 璇勫鍖哄煙 */ +.review-section { + margin-bottom: 40rpx; +} + +.section-header { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 30rpx; +} + +.review-action-btn { + display: flex; + align-items: center; + padding: 12rpx 24rpx; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + border-radius: 24rpx; transition: all 0.3s ease; } -.logout-btn:active { - background: #ff4757; +.review-action-btn:active { + transform: scale(0.95); + opacity: 0.8; } -.logout-text { +.action-text { font-size: 28rpx; - color: #ff4757; + color: white; + font-weight: 500; + margin-right: 8rpx; +} + +.action-arrow { + font-size: 24rpx; + color: white; +} + +.review-stats { + display: flex; + align-items: center; + padding: 32rpx; + background: white; + border-radius: 16rpx; + box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05); +} + +.stat-item { + flex: 1; + display: flex; + flex-direction: column; + align-items: center; +} + +.stat-number { + font-size: 48rpx; font-weight: bold; + color: #667eea; + margin-bottom: 8rpx; } -.logout-btn:active .logout-text { - color: #ffffff; +.stat-label { + font-size: 24rpx; + color: #666; } -/* 鍝嶅簲寮忛�傞厤 */ -@media screen and (max-width: 375px) { - .profile-content { - padding: 0 20rpx; - } - - .user-card { - padding: 30rpx; - } - - .avatar { - width: 100rpx; - height: 100rpx; - margin-right: 20rpx; - } - - .username { - font-size: 32rpx; - } - - .stats-section, - .role-section, - .menu-section, - .recent-section { - padding: 24rpx; - } - - .menu-item { - flex: 0 0 calc(50% - 10rpx); - padding: 24rpx 16rpx; - } - - .stat-number { - font-size: 40rpx; - } +.stat-divider { + width: 1rpx; + height: 60rpx; + background: #e0e0e0; + margin: 0 20rpx; } -@media screen and (min-width: 414px) { - .activity-cover { - width: 140rpx; - height: 90rpx; - } - - .menu-item { - padding: 36rpx 24rpx; - } - - .menu-icon { - font-size: 52rpx; - } +/* 鍏朵粬鑿滃崟鍖哄煙 */ +.other-menu-section { + background: #ffffff; + border-radius: 16rpx; + overflow: hidden; + box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1); +} + +.menu-item-simple { + display: flex; + align-items: center; + padding: 30rpx; + border-bottom: 1rpx solid #f0f0f0; + transition: background-color 0.3s ease; +} + +.menu-item-simple:last-child { + border-bottom: none; +} + +.menu-item-simple:active { + background-color: #f8f8f8; +} + +.menu-icon { + font-size: 32rpx; + margin-right: 24rpx; + width: 40rpx; + text-align: center; +} + +.menu-title { + flex: 1; + font-size: 28rpx; + color: #333333; +} + +.menu-arrow { + font-size: 24rpx; + color: #cccccc; } \ No newline at end of file -- Gitblit v1.8.0