diff --git a/frontend/src/views/ProjectManagement/ProjectManagement.css b/frontend/src/views/ProjectManagement/ProjectManagement.css index f33810d..b72354f 100644 --- a/frontend/src/views/ProjectManagement/ProjectManagement.css +++ b/frontend/src/views/ProjectManagement/ProjectManagement.css @@ -531,40 +531,170 @@ font-size: 13px; } -.project-editor { - display: grid; - grid-template-columns: minmax(200px, 1fr) minmax(300px, 2fr); - align-items: end; - gap: 16px; - margin-bottom: 20px; - padding: 18px; - border: 1px solid #e2e8f0; - border-radius: 14px; - background: #f8fafc; +.project-modal-backdrop { + position: fixed; + inset: 0; + z-index: 1000; + display: flex; + align-items: center; + justify-content: center; + padding: 20px; + background: rgba(15, 23, 42, 0.45); + backdrop-filter: blur(4px); + box-sizing: border-box; } -.project-editor h3 { - grid-column: 1 / -1; - margin: 0; - font-size: 16px; +.project-modal { + width: min(100%, 540px); + max-height: calc(100vh - 40px); + overflow-y: auto; + padding: 28px; + background: #ffffff; + border: 1px solid #e2e8f0; + border-radius: 18px; + box-shadow: 0 20px 48px rgba(15, 23, 42, 0.16), 0 0 0 1px rgba(15, 23, 42, 0.04); + box-sizing: border-box; +} + +.project-modal .modal-heading { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; + margin-bottom: 22px; + padding-bottom: 16px; + border-bottom: 1px solid #f1f5f9; +} + +.project-modal .modal-heading .eyebrow { + margin: 0 0 6px; + color: #64748b; + font-size: 12px; font-weight: 700; + letter-spacing: 0.05em; +} + +.project-modal .modal-heading h2 { + margin: 0; + font-size: 20px; + font-weight: 700; + color: #0f172a; + letter-spacing: -0.02em; +} + +.project-modal .close-button { + width: 32px; + height: 32px; + padding: 0; + border: 1px solid #e2e8f0; + border-radius: 8px; + background: #f8fafc; + color: #64748b; + font-size: 20px; + line-height: 1; + cursor: pointer; + display: inline-flex; + align-items: center; + justify-content: center; + transition: all 0.15s ease; +} + +.project-modal .close-button:hover:not(:disabled) { + background: #f1f5f9; color: #0f172a; } -.project-editor .project-actions { - grid-column: 1 / -1; - margin-top: 6px; -} - -.project-editor label { +.project-editor { display: flex; flex-direction: column; - gap: 6px; + gap: 16px; + margin: 0; + padding: 0; + border: none; + background: transparent; +} + +.project-editor .field { + display: flex; + flex-direction: column; + gap: 8px; font-size: 13px; font-weight: 600; color: #334155; } +.project-editor .field input, +.project-editor .field textarea { + box-sizing: border-box; + width: 100%; + padding: 10px 14px; + border: 1px solid #cbd5e1; + border-radius: 10px; + font-size: 14px; + color: #0f172a; + background: #ffffff; + transition: border-color 0.15s ease, box-shadow 0.15s ease; + font-family: inherit; +} + +.project-editor .field input:focus, +.project-editor .field textarea:focus { + outline: none; + border-color: #3b82f6; + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15); +} + +.project-editor .field textarea { + resize: vertical; + min-height: 84px; + line-height: 1.5; +} + +.project-modal .modal-actions { + display: flex; + align-items: center; + justify-content: flex-end; + gap: 12px; + margin-top: 8px; + padding-top: 16px; + border-top: 1px solid #f1f5f9; +} + +.project-modal .secondary-button { + padding: 9px 18px; + border: 1px solid #cbd5e1; + border-radius: 10px; + background: #ffffff; + color: #475569; + font-size: 14px; + font-weight: 600; + cursor: pointer; + transition: all 0.15s ease; +} + +.project-modal .secondary-button:hover:not(:disabled) { + background: #f8fafc; + color: #0f172a; + border-color: #94a3b8; +} + +.project-modal .primary-button { + padding: 9px 20px; + border: 1px solid #2563eb; + border-radius: 10px; + background: #2563eb; + color: #ffffff; + font-size: 14px; + font-weight: 600; + cursor: pointer; + transition: all 0.15s ease; +} + +.project-modal .primary-button:hover:not(:disabled) { + background: #1d4ed8; + border-color: #1d4ed8; +} + .project-help { display: inline-flex; align-items: center; diff --git a/frontend/src/views/ProjectManagement/ProjectManagement.vue b/frontend/src/views/ProjectManagement/ProjectManagement.vue index 22e1c7f..10295b8 100644 --- a/frontend/src/views/ProjectManagement/ProjectManagement.vue +++ b/frontend/src/views/ProjectManagement/ProjectManagement.vue @@ -27,19 +27,31 @@ const {
{{ projectError }}
{{ lifecycleError }}
{{ lifecycleNotice }}
- +项目管理
+