diff --git a/ai_knowledge_base_v2/apps/user-client/src/components/LoginPanel.vue b/ai_knowledge_base_v2/apps/user-client/src/components/LoginPanel.vue index 47c9eec..e75e1bf 100644 --- a/ai_knowledge_base_v2/apps/user-client/src/components/LoginPanel.vue +++ b/ai_knowledge_base_v2/apps/user-client/src/components/LoginPanel.vue @@ -1,145 +1,1221 @@ + + diff --git a/ai_knowledge_base_v2/apps/user-client/src/styles.css b/ai_knowledge_base_v2/apps/user-client/src/styles.css index 39c2054..a9202d7 100644 --- a/ai_knowledge_base_v2/apps/user-client/src/styles.css +++ b/ai_knowledge_base_v2/apps/user-client/src/styles.css @@ -51,167 +51,11 @@ button { color: #557066; } +/* ── 登录页使用组件内 scoped 样式,全局仅保留基础重置 ── */ .login-panel { height: 100%; - padding: 72px 24px 24px; - display: flex; - flex-direction: column; - gap: 18px; - background: linear-gradient(180deg, #ffffff 0%, #f3faf7 100%); -} - -.brand-mark { - width: 56px; - height: 56px; - display: grid; - place-items: center; - border-radius: 16px; - background: #0f8b6f; - color: #ffffff; - font-weight: 800; - letter-spacing: 0; -} - -.login-panel h1 { - margin: 10px 0 0; - font-size: 28px; - line-height: 1.2; -} - -.login-panel p { - margin: 0 0 18px; - color: #5f746c; -} - -.login-panel label { - display: grid; - gap: 8px; - color: #40524b; - font-size: 14px; -} - -.login-panel input, -.composer textarea { - width: 100%; - border: 1px solid #cad8d2; - border-radius: 14px; - background: #ffffff; - color: #17211d; - outline: none; -} - -.login-panel input { - height: 48px; - padding: 0 14px; -} - -.login-panel input:focus, -.composer textarea:focus { - border-color: #0f8b6f; - box-shadow: 0 0 0 3px rgba(15, 139, 111, 0.12); -} - -.code-row { - display: grid; - grid-template-columns: minmax(0, 1fr) 92px; - gap: 10px; -} - -.captcha-row { - display: grid; - grid-template-columns: minmax(0, 1fr) 128px; - gap: 10px; -} - -.captcha-image { - height: 48px; - padding: 0; - overflow: hidden; - border: 1px solid #cad8d2; - border-radius: 14px; - background: #ffffff; -} - -.captcha-image img { - width: 100%; - height: 100%; - display: block; - object-fit: cover; -} - -.captcha-image span { - color: #5f746c; - font-size: 13px; -} - -.primary, -.secondary, -.send-btn, -.stop-btn, -.new-session-btn { - border: 0; - border-radius: 14px; - font-weight: 700; -} - -.primary { - height: 50px; - margin-top: 8px; - background: #0f8b6f; - color: #ffffff; -} - -.secondary { - background: #e5f3ef; - color: #0f735d; -} - -button:disabled { - cursor: not-allowed; - opacity: 0.52; -} - -.form-tip { - min-height: 20px; - color: #657970; - font-size: 13px; -} - -.dialog-mask { - position: absolute; - inset: 0; - z-index: 20; - display: grid; - place-items: center; - padding: 24px; - background: rgba(12, 24, 20, 0.42); -} - -.dialog-box { - width: min(100%, 320px); - padding: 22px; - border-radius: 18px; - background: #ffffff; - box-shadow: 0 18px 48px rgba(15, 31, 26, 0.22); -} - -.dialog-box strong { - display: block; - color: #17211d; - font-size: 18px; - line-height: 1.35; -} - -.dialog-box p { - margin: 10px 0 18px; - color: #51655d; - font-size: 14px; - line-height: 1.7; -} - -.dialog-box .primary { - width: 100%; - margin-top: 0; + overflow-y: auto; + -webkit-overflow-scrolling: touch; } .topbar {