diff --git a/src/assets/styles/auto.scss b/src/assets/styles/auto.scss index 74aced5..ddf9098 100644 --- a/src/assets/styles/auto.scss +++ b/src/assets/styles/auto.scss @@ -518,6 +518,9 @@ body:not(#_) { .color-9B9EAB{ color:#9B9EAB; } +.color-accent{ + color:$accent; +} /*border*/ diff --git a/src/assets/styles/pages/login.scss b/src/assets/styles/pages/login.scss index b2dfc1d..445fd6a 100644 --- a/src/assets/styles/pages/login.scss +++ b/src/assets/styles/pages/login.scss @@ -1,3 +1,4 @@ +@use '../variables' as *; /* 登录页面 — 左右分栏全屏布局 */ .login-view { font-size: 0.14rem; @@ -168,7 +169,7 @@ align-items: center; width: 43%; height: 100%; - background: #F6FDFB; + background: #fff; } /* Logo 行(右侧及简历阶段通用) */ @@ -176,6 +177,12 @@ display: flex; align-items: center; gap: 0.12rem; + width: 3.41rem; + + img{ + width: 1.6rem; + height: 0.4rem; + } } .login-view__logo-box { @@ -215,112 +222,135 @@ } .login-view__logo-row--right { - margin-bottom: 0.4rem; + margin-bottom: 0.6rem; } /* 表单包裹 */ .login-view__form-wrap { display: flex; flex-direction: column; - align-items: center; - gap: 0.28rem; - width: 4rem; + gap: 0.24rem; + width: 3.41rem; } /* 标题 */ .login-view__heading { - width: 100%; + width: 3.41rem; display: flex; flex-direction: column; - gap: 0.1rem; + gap: 0.05rem; } .login-view__title { font-weight: 700; - font-size: 0.32rem; - line-height: 0.39rem; - color: #132034; + font-size: 0.18rem; + line-height: 0.22rem; + color: #18181A; } .login-view__subtitle { font-weight: 400; - font-size: 0.15rem; - line-height: 0.18rem; - color: #64748B; + font-size: 0.10rem; + line-height: 0.12rem; + color: #616367; + + >span:nth-child(2){ + color: $accent; + } } /* ==================== 手机号输入行 ==================== */ .login-view__phone-row { + box-sizing: border-box; display: flex; align-items: center; - width: 100%; - height: 0.52rem; - border-radius: 0.12rem; - overflow: hidden; + width: 3.41rem; + height: 0.40rem; + background: #FFFFFF; + border: 1px solid #C8C9CD; + box-shadow: 0 0.08rem 0.20rem rgba(15, 83, 87, 0.05); + border-radius: 0.08rem; } -.login-view__country-code { +/* 手机图标 */ +.login-view__phone-icon { display: flex; align-items: center; - padding: 0 0.16rem; - gap: 0.06rem; - width: 0.96rem; - height: 100%; - background: #F3FFFD; - border: 1px solid #BFE8E2; - border-radius: 0.12rem 0 0 0.12rem; - cursor: pointer; + justify-content: center; + width: 0.18rem; + height: 0.18rem; + margin-left: 0.16rem; + flex-shrink: 0; + + svg { + width: 0.18rem; + height: 0.18rem; + } } -.login-view__flag { - font-size: 0.16rem; - line-height: 1; -} - -.login-view__code-text { +/* 国家码标签 */ +.login-view__country-label { + margin-left: 0.06rem; font-weight: 500; - font-size: 0.15rem; - line-height: 0.18rem; - color: #132034; + font-size: 0.12rem; + line-height: 0.15rem; + color: #202124; + white-space: nowrap; } -.login-view__code-arrow { - font-size: 0.11rem; - color: #94A3B8; +/* 下拉箭头 */ +.login-view__country-chevron { + display: flex; + align-items: center; + justify-content: center; + width: 0.20rem; + height: 0.20rem; + flex-shrink: 0; + cursor: pointer; + + svg { + width: 0.20rem; + height: 0.20rem; + } } -.login-view__separator { +/* 分隔线 */ +.login-view__input-divider { width: 1px; - height: 100%; - background: #BFE8E2; + height: 0.30rem; + background: #E7F2F3; + margin: 0 0.16rem; + flex-shrink: 0; } +/* 手机号输入框 */ .login-view__phone-input { flex: 1; height: 100%; - padding: 0 0.16rem; - background: #FAFBFC; - border: 1px solid #E2E8F0; - border-left: none; - border-radius: 0 0.12rem 0.12rem 0; - font-size: 0.15rem; - color: #132034; + border: none; + background: transparent; + font-weight: 400; + font-size: 0.12rem; + line-height: 0.15rem; + color: #202124; outline: none; &::placeholder { - color: #94A3B8; + color: #939599; } } /* ==================== 发送验证码按钮(步骤一) ==================== */ .login-view__send-btn { - width: 100%; - height: 0.52rem; - background: linear-gradient(90deg, #12C7BE 0%, #06B6D4 100%); - border-radius: 0.12rem; + width: 3.41rem; + height: 0.40rem; + background: linear-gradient(90deg, #4FC2C9 0%, #42A8B3 100%); + box-shadow: 0 0.16rem 0.30rem rgba(15, 83, 87, 0.15); + border-radius: 0.08rem; border: none; font-weight: 600; - font-size: 0.16rem; + font-size: 0.12rem; + line-height: 0.15rem; color: #FFFFFF; cursor: pointer; transition: opacity 0.2s; @@ -361,8 +391,8 @@ display: flex; justify-content: center; align-items: center; - width: 0.56rem; - height: 0.64rem; + width: 0.42rem; + height: 0.46rem; background: #FAFBFC; border: 1px solid #E2E8F0; border-radius: 0.12rem; @@ -409,8 +439,8 @@ color: #64748B; text-align: center; padding-right: 0.1rem; - margin-top: -0.19rem; - margin-bottom: -0.10rem; + margin-top: -0.14rem; + margin-bottom: -0.06rem; } .login-view__sms-status--error { @@ -420,12 +450,12 @@ /* ==================== 状态按钮(步骤二) ==================== */ .login-view__status-btn { width: 100%; - height: 0.52rem; + height: 0.4rem; background: linear-gradient(90deg, #12C7BE 0%, #06B6D4 100%); border-radius: 0.12rem; border: none; font-weight: 600; - font-size: 0.16rem; + font-size: 0.14rem; color: #FFFFFF; cursor: pointer; display: flex; @@ -464,6 +494,7 @@ display: flex; align-items: center; gap: 0.06rem; + width: 3.41rem; } .login-view__checkbox { @@ -472,17 +503,18 @@ height: 0.18rem; background: #FFFFFF; border: 1.5px solid #CBD5E1; - border-radius: 0.05rem; + border-radius: 0.04rem; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s; + flex-shrink: 0; } .login-view__checkbox--checked { - background: #12C7BE; - border-color: #12C7BE; + background: #4FC2C9; + border-color: #4FC2C9; } .login-view__check-icon { @@ -496,14 +528,14 @@ font-weight: 400; font-size: 0.12rem; line-height: 0.15rem; - color: #94A3B8; + color: #616367; } .login-view__agreement-link { font-weight: 500; font-size: 0.12rem; line-height: 0.15rem; - color: #12C7BE; + color: #42A8B3; cursor: pointer; &:hover { @@ -515,17 +547,16 @@ /* ==================== 简历上传阶段 — 右侧面板 ==================== */ .login-view__form-wrap--resume { - width: 4.6rem; - min-height: 4rem; + width: 3.41rem; } /* 上传区域 */ .login-view__upload-area { width: 100%; - padding: 0.6rem 0.4rem; - border: 1px dashed #E2E8F0; + padding: 0.4rem 0.4rem; + border: 2px solid #D6F1EF; border-radius: 0.12rem; - background: #FFFFFF; + background: #F6FFFF; display: flex; flex-direction: column; align-items: center; @@ -560,10 +591,11 @@ } .login-view__upload-btn { - padding: 0.14rem 0.4rem; + height: 0.4rem; + line-height: 0.4rem; background: linear-gradient(90deg, #12C7BE 0%, #06B6D4 100%); border: none; - border-radius: 0.26rem; + border-radius: 0.08rem; font-size: 0.16rem; font-weight: 600; color: #FFFFFF; @@ -575,29 +607,387 @@ } } -/* 解析中状态 */ -.login-view__parsing { +/* 解析中状态 — 新版步骤面板 */ +.login-view__parse-panel { + box-sizing: border-box; + width: 3.41rem; + padding: 0.24rem; + background: #F6FFFF; + border: 1px solid #D6F1EF; + border-radius: 0.08rem; +} + +/* 进度条头部 */ +.login-view__parse-progress-header { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 0.08rem; +} + +.login-view__parse-progress-label { + font-weight: 500; + font-size: 0.12rem; + line-height: 0.15rem; + color: #616367; +} + +.login-view__parse-progress-percent { + font-weight: 700; + font-size: 0.12rem; + line-height: 0.15rem; + color: #42A8B3; +} + +/* 进度轨道 */ +.login-view__parse-progress-rail { + width: 100%; + height: 0.06rem; + background: #E7F2F3; + border-radius: 0.03rem; + overflow: hidden; + margin-bottom: 0.20rem; +} + +.login-view__parse-progress-fill { + height: 100%; + background: #4FC2C9; + border-radius: 0.03rem; + transition: width 0.3s ease; +} + +/* 步骤列表 */ +.login-view__parse-steps { display: flex; flex-direction: column; - justify-content: center; +} + +.login-view__parse-step-item { + display: flex; align-items: flex-start; - width: 100%; - min-height: 3rem; + position: relative; } -.login-view__parsing-title { - font-size: 0.32rem; +.login-view__parse-step-left { + display: flex; + flex-direction: column; + align-items: center; + margin-right: 0.10rem; + flex-shrink: 0; +} + +/* 步骤圆圈 — 完成(实心深色) */ +.login-view__parse-dot { + width: 0.12rem; + height: 0.12rem; + border-radius: 50%; + flex-shrink: 0; +} + +.login-view__parse-dot--done { + background: #4FC2C9; +} + +/* 步骤圆圈 — 进行中(光晕 + 呼吸内圆) */ +.login-view__parse-dot--active { + width: 0.16rem; + height: 0.16rem; + background: #E7FAF5; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + margin-left: -0.02rem; + margin-right: -0.02rem; +} + +.login-view__parse-dot-pulse { + width: 0.08rem; + height: 0.08rem; + background: #4FC2C9; + border-radius: 50%; + animation: parse-dot-breathe 1.2s ease-in-out infinite; +} + +@keyframes parse-dot-breathe { + 0%, 100% { transform: scale(0.7); opacity: 0.7; } + 50% { transform: scale(1.2); opacity: 1; } +} + +/* 步骤圆圈 — 等待(浅色) */ +.login-view__parse-dot--pending { + background: #D6F1EF; +} + +/* 连接线 */ +.login-view__parse-connector { + width: 0.02rem; + height: 0.18rem; + background: #D6F1EF; + border-radius: 0.01rem; +} + +/* 步骤文字 */ +.login-view__parse-step-text { + flex: 1; + font-weight: 500; + font-size: 0.12rem; + line-height: 0.15rem; + color: #18181A; + padding-top: 0; +} + +.login-view__parse-step-text--pending { + font-weight: 400; + color: #616367; +} + +/* 步骤状态文字 */ +.login-view__parse-step-state { + font-size: 0.12rem; + line-height: 0.15rem; + flex-shrink: 0; + margin-left: 0.10rem; +} + +.login-view__parse-step-state--done { + font-weight: 500; + color: #42A8B3; +} + +.login-view__parse-step-state--active { + font-weight: 500; + color: #42A8B3; +} + +.login-view__parse-step-state--pending { + font-weight: 400; + color: #939599; +} + +/* 解析中按钮(禁用样式) */ +.login-view__parse-btn { + width: 3.41rem; + height: 0.40rem; + background: #A6EAE7; + border-radius: 0.08rem; + border: none; + font-weight: 600; + font-size: 0.12rem; + line-height: 0.15rem; + color: #FFFFFF; + cursor: not-allowed; +} + +/* ==================== 状态4:上传成功面板 ==================== */ +.login-view__success-panel { + box-sizing: border-box; + width: 3.41rem; + padding: 0.28rem 0.24rem; + background: #F6FFFB; + border: 1px solid #BCEED7; + border-radius: 0.08rem; +} + +.login-view__success-header { + display: flex; + align-items: center; + gap: 0.14rem; + margin-bottom: 0.24rem; +} + +.login-view__success-icon-bg { + width: 0.40rem; + height: 0.40rem; + background: #E7FAF0; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +} + +.login-view__success-icon-mark { font-weight: 700; - color: #132034; - margin-bottom: 0.12rem; + font-size: 0.18rem; + line-height: 0.22rem; + color: #22B36A; } -.login-view__parsing-subtitle { - font-size: 0.15rem; - color: #64748B; +.login-view__success-header-text { + display: flex; + flex-direction: column; + gap: 0.04rem; } -/* 失败状态标题红色 */ -.login-view__title--error { - color: #12C7BE; +.login-view__success-title { + font-weight: 500; + font-size: 0.13rem; + line-height: 0.16rem; + color: #18181A; +} + +.login-view__success-detail { + font-weight: 400; + font-size: 0.12rem; + line-height: 0.15rem; + color: #616367; +} + +.login-view__success-tips { + display: flex; + flex-direction: column; + gap: 0.16rem; +} + +.login-view__success-tip-item { + display: flex; + align-items: center; + gap: 0.10rem; +} + +.login-view__success-tip-dot { + width: 0.06rem; + height: 0.06rem; + background: #22B36A; + border-radius: 50%; + flex-shrink: 0; +} + +.login-view__success-tip-text { + font-weight: 400; + font-size: 0.12rem; + line-height: 0.15rem; + color: #616367; +} + +/* 进入后台按钮 */ +.login-view__success-btn { + width: 3.41rem; + height: 0.40rem; + background: #4FC2C9; + border-radius: 0.08rem; + border: none; + font-weight: 600; + font-size: 0.12rem; + line-height: 0.15rem; + color: #FFFFFF; + cursor: pointer; + transition: opacity 0.2s; + + &:hover { + opacity: 0.9; + } +} + +/* ==================== 状态3:上传失败面板 ==================== */ +.login-view__failed-panel { + box-sizing: border-box; + width: 3.41rem; + padding: 0.28rem 0.24rem; + background: #FFFBFA; + border: 1px solid #FADBD5; + border-radius: 0.08rem; +} + +.login-view__failed-header { + display: flex; + align-items: center; + gap: 0.14rem; + margin-bottom: 0.24rem; +} + +.login-view__failed-icon-bg { + width: 0.40rem; + height: 0.40rem; + background: #FFF0ED; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +} + +.login-view__failed-icon-mark { + font-weight: 700; + font-size: 0.18rem; + line-height: 0.22rem; + color: #FF6B4A; +} + +.login-view__failed-header-text { + display: flex; + flex-direction: column; + gap: 0.04rem; +} + +.login-view__failed-title { + font-weight: 500; + font-size: 0.13rem; + line-height: 0.16rem; + color: #18181A; +} + +.login-view__failed-detail { + font-weight: 400; + font-size: 0.12rem; + line-height: 0.15rem; + color: #616367; +} + +.login-view__failed-tips { + display: flex; + flex-direction: column; + gap: 0.16rem; +} + +.login-view__failed-tip-item { + display: flex; + align-items: center; + gap: 0.10rem; +} + +.login-view__failed-tip-dot { + width: 0.06rem; + height: 0.06rem; + background: #FF8D76; + border-radius: 50%; + flex-shrink: 0; +} + +.login-view__failed-tip-text { + font-weight: 400; + font-size: 0.12rem; + line-height: 0.15rem; + color: #616367; +} + +/* 重新上传按钮 */ +.login-view__failed-btn { + width: 3.41rem; + height: 0.40rem; + background: linear-gradient(90deg, #4FC2C9 0%, #42A8B3 100%); + box-shadow: 0 0.16rem 0.30rem rgba(15, 83, 87, 0.15); + border-radius: 0.08rem; + border: none; + font-weight: 600; + font-size: 0.12rem; + line-height: 0.15rem; + color: #FFFFFF; + cursor: pointer; + transition: opacity 0.2s; + + &:hover { + opacity: 0.9; + } +} + +.login-view__right-footer{ + margin-top: 0.37rem; + font-size: 0.13rem; + width: 4rem; + text-align: center; + color: #999; + padding-top: 0.3rem; + border-top: 1px solid #E7F2F3; } diff --git a/src/views/Login.vue b/src/views/Login.vue index 7ef7b8f..ef976e3 100644 --- a/src/views/Login.vue +++ b/src/views/Login.vue @@ -27,8 +27,7 @@ @@ -54,7 +67,7 @@