@use '../ios-theme.scss' as *; .project-review-header { background-color: $ios-primary; color: white; padding: 20px; text-align: center; border-radius: $ios-radius-xl; margin-bottom: 20px; box-shadow: $ios-shadow-card; } .project-review-main { padding: 20px; } .section-header { margin-bottom: 20px; h2 { color: $ios-primary; font-size: 18px; font-weight: 600; } } .feasibility-section, .assignment-section { background-color: white; border-radius: $ios-radius-lg; padding: 20px; margin-bottom: 20px; box-shadow: $ios-shadow-card; } /* 效果图可行性测试样式 */ .test-form { .form-group { margin-bottom: 15px; label { display: block; margin-bottom: 5px; color: $ios-text-primary; font-weight: 500; } textarea { width: 100%; padding: 10px; border: 1px solid $ios-border; border-radius: $ios-radius-lg; font-size: 14px; resize: vertical; min-height: 100px; &:focus { outline: none; border-color: $ios-primary; box-shadow: 0 0 0 2px rgba(0, 71, 171, 0.1); } } } .file-upload { position: relative; .upload-placeholder { border: 2px dashed $ios-border; border-radius: $ios-radius-lg; padding: 30px; text-align: center; cursor: pointer; background-color: $ios-background-secondary; transition: all 0.3s ease; &:hover { border-color: $ios-primary; background-color: rgba(0, 71, 171, 0.05); } .upload-icon { display: block; font-size: 40px; color: $ios-primary; margin-bottom: 10px; } p { margin: 5px 0; color: $ios-text-secondary; } .upload-hint { font-size: 12px; color: $ios-text-tertiary; } } input[type="file"] { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; } } .image-preview { margin-top: 15px; position: relative; img { max-width: 100%; max-height: 300px; border-radius: $ios-radius-lg; display: block; margin: 0 auto; } .btn-remove { position: absolute; top: 10px; right: 10px; background-color: red; color: white; border: none; border-radius: 50%; width: 30px; height: 30px; cursor: pointer; font-size: 16px; display: flex; align-items: center; justify-content: center; } } .btn-run-test { background-color: $ios-primary; color: white; border: none; border-radius: $ios-radius-lg; padding: 12px 20px; font-size: 16px; font-weight: 500; cursor: pointer; width: 100%; margin-top: 10px; transition: background-color 0.3s ease; &:hover:not(:disabled) { background-color: $ios-primary-light; } &:disabled { background-color: $ios-text-tertiary; cursor: not-allowed; } } } /* 测试结果样式 */ .test-result { margin-top: 20px; padding: 15px; background-color: $ios-background-secondary; border-radius: $ios-radius-lg; .result-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; h3 { color: $ios-text-primary; font-size: 16px; } .result-tags { .tag { padding: 5px 10px; border-radius: 15px; font-size: 12px; font-weight: 500; &.pass { background-color: #d4edda; color: #155724; } &.warning { background-color: #fff3cd; color: #856404; } &.fail { background-color: #f8d7da; color: #721c24; } } } } .result-content { .result-section { margin-bottom: 15px; h4 { color: $ios-text-primary; font-size: 14px; margin-bottom: 10px; font-weight: 600; } } .evaluation-list { list-style: none; padding: 0; li { display: flex; align-items: center; margin-bottom: 8px; .eval-label { flex: 1; color: $ios-text-primary; font-size: 14px; } .eval-value { margin: 0 10px; font-weight: 600; &.high { color: #28a745; } &.medium { color: #ffc107; } &.low { color: #dc3545; } } .eval-status { font-size: 12px; color: $ios-text-secondary; } } } .requirement-match { color: $ios-text-primary; font-size: 14px; margin-bottom: 10px; line-height: 1.5; } .suggestions { h5 { color: $ios-text-primary; font-size: 13px; margin-bottom: 5px; font-weight: 600; } ul { list-style: none; padding: 0; li { color: $ios-text-secondary; font-size: 13px; margin-bottom: 5px; padding-left: 15px; position: relative; &::before { content: "•"; color: $ios-primary; position: absolute; left: 0; font-weight: bold; } } } } .reference-images { h4 { color: $ios-text-primary; font-size: 14px; margin-bottom: 10px; font-weight: 600; } .image-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; .reference-item { text-align: center; img { width: 100%; height: 80px; object-fit: cover; border-radius: $ios-radius-lg; margin-bottom: 5px; } .reference-hint { font-size: 11px; color: $ios-text-secondary; text-align: left; } } } } .result-actions { margin-top: 20px; .btn-submit { background-color: $ios-primary; color: white; border: none; border-radius: $ios-radius-lg; padding: 10px 20px; font-size: 14px; cursor: pointer; transition: background-color 0.3s ease; &:hover { background-color: $ios-primary-light; } } } } } /* 项目分配审核与执行样式 */ .assignment-form { .form-group { margin-bottom: 15px; label { display: block; margin-bottom: 5px; color: $ios-text-primary; font-weight: 500; } select { width: 100%; padding: 10px; border: 1px solid $ios-border; border-radius: $ios-radius-lg; font-size: 14px; background-color: white; &:focus { outline: none; border-color: $ios-primary; box-shadow: 0 0 0 2px rgba(0, 71, 171, 0.1); } } } .specified-assignment, .recommended-assignment { margin-top: 15px; } .workload-status { margin-top: 10px; .status { padding: 8px 12px; border-radius: $ios-radius-lg; font-size: 14px; display: inline-block; &.idle { background-color: #e3f2fd; color: $ios-primary; } &.medium { background-color: #fff3cd; color: #856404; } &.busy { background-color: #ffebee; color: #c62828; } } .alternative-suggestions { margin-top: 15px; p { color: $ios-text-primary; font-weight: 500; margin-bottom: 10px; font-size: 14px; } .designer-suggestions { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; .designer-card { background-color: white; padding: 12px; border-radius: $ios-radius-lg; border: 1px solid $ios-border; .designer-name { color: $ios-text-primary; font-weight: 600; margin-bottom: 5px; } .designer-skill, .designer-workload { font-size: 13px; color: $ios-text-secondary; margin: 3px 0; } .btn-select { background-color: $ios-primary; color: white; border: none; border-radius: $ios-radius-lg; padding: 6px 12px; font-size: 12px; cursor: pointer; margin-top: 8px; &:hover { background-color: $ios-primary-light; } } } } } } .designer-recommendations { p { color: $ios-text-primary; font-weight: 500; margin-bottom: 15px; font-size: 14px; } .designer-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 15px; .designer-card { background-color: white; border-radius: $ios-radius-lg; border: 1px solid $ios-border; overflow: hidden; .card-header { background-color: $ios-background-secondary; padding: 12px; display: flex; justify-content: space-between; align-items: center; .designer-name { color: $ios-text-primary; font-weight: 600; margin: 0; } .match-score { color: $ios-primary; font-weight: 600; font-size: 13px; margin: 0; } } .card-body { padding: 12px; .designer-skill, .designer-workload { font-size: 13px; color: $ios-text-secondary; margin: 5px 0; } .designer-stats { display: flex; margin-top: 10px; .stat-item { flex: 1; .stat-label { font-size: 12px; color: $ios-text-tertiary; } .stat-value { font-size: 14px; font-weight: 600; color: $ios-text-primary; } } } } .card-footer { padding: 12px; border-top: 1px solid $ios-border; .btn-assign { background-color: $ios-primary; color: white; border: none; border-radius: $ios-radius-lg; padding: 8px 16px; font-size: 14px; cursor: pointer; width: 100%; &:hover { background-color: $ios-primary-light; } } } } } } .btn-execute { background-color: $ios-primary; color: white; border: none; border-radius: $ios-radius-lg; padding: 12px 20px; font-size: 16px; font-weight: 500; cursor: pointer; width: 100%; margin-top: 20px; transition: background-color 0.3s ease; &:hover:not(:disabled) { background-color: $ios-primary-light; } &:disabled { background-color: $ios-text-tertiary; cursor: not-allowed; } } } /* 分配结果样式 */ .assignment-result { margin-top: 20px; background-color: $ios-background-secondary; border-radius: $ios-radius-lg; padding: 20px; text-align: center; .result-content { .result-icon { width: 50px; height: 50px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0 auto 15px; font-size: 24px; font-weight: bold; &.success { background-color: #d4edda; color: #155724; } } h3 { color: $ios-text-primary; margin-bottom: 10px; } p { color: $ios-text-secondary; margin-bottom: 15px; } .result-details { background-color: white; border-radius: $ios-radius-lg; padding: 15px; text-align: left; p { margin: 5px 0; color: $ios-text-primary; } } } } /* 响应式设计 */ @media (max-width: 768px) { .project-review-main { padding: 10px; } .feasibility-section, .assignment-section { padding: 15px; } .designer-suggestions, .designer-cards { grid-template-columns: 1fr !important; } }