feat: 问卷调查

This commit is contained in:
2025-09-26 15:31:24 +08:00
parent 16c7be700b
commit 3cc2a24be5
13 changed files with 1197 additions and 73 deletions

View File

@@ -62,3 +62,503 @@
}
}
}
.header {
display: flex;
justify-content: space-between;
align-items: center;
height: 44px;
padding: 46px 42px 0 10px;
.closeIcon {
width: 32px;
height: 32px;
margin-right: auto;
.closeImg {
width: 100%;
height: 100%;
}
}
.title {
flex: 1;
margin: auto;
display: flex;
align-items: center;
justify-content: center;
}
}
@mixin commonAvatarStyle($multiple: 1) {
.avatar {
flex: 0 0 auto;
width: calc(100px * $multiple);
height: calc(100px * $multiple);
display: flex;
align-items: center;
justify-content: center;
background-color: #fff;
border-radius: 50%;
border: 1px solid #efefef;
overflow: hidden;
box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.20), 0 8px 20px 0 rgba(0, 0, 0, 0.12);
.avatarUrl {
width: calc(90px * $multiple);
height: calc(90px * $multiple);
border-radius: 50%;
border: 1px solid #efefef;
}
}
.addonImage {
flex: 0 0 auto;
width: calc(88px * $multiple);
height: calc(88px * $multiple);
transform: rotate(8deg);
flex-shrink: 0;
aspect-ratio: 1/1;
border-radius: calc(20px * $multiple);
border: 4px solid #FFF;
background: linear-gradient(0deg, rgba(89, 255, 214, 0.20) 0%, rgba(89, 255, 214, 0.20) 100%), #FFF;
box-shadow: 0 4px 36px 0 rgba(0, 0, 0, 0.12);
display: flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
margin-left: calc(-1 * 20px * $multiple);
.docImage {
width: calc(48px * $multiple);
height: calc(48px * $multiple);
transform: rotate(-7deg);
flex-shrink: 0;
}
}
}
.introContainer {
width: 100vw;
height: 100vh;
background: radial-gradient(227.15% 100% at 50% 0%, #BFFFEF 0%, #FFF 36.58%), #FAFAFA;
.result {
.avatarWrap {
width: 200px;
height: 100px;
padding: 30px 0 0 30px;
display: flex;
align-items: center;
justify-content: flex-start;
@include commonAvatarStyle(1);
}
.tip {
padding: 0 30px;
.tipImage {
width: 100%;
}
}
.lastResult {
margin: 40px 22px;
display: flex;
padding: 16px 20px 20px 20px;
flex-direction: column;
justify-content: center;
align-items: flex-start;
gap: 8px;
border-radius: 16px;
border: 1px solid rgba(0, 0, 0, 0.06);
background: #FFF;
box-shadow: 0 8px 64px 0 rgba(0, 0, 0, 0.10);
.tipAndTime {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
color: rgba(0, 0, 0, 0.65);
font-feature-settings: 'liga' off, 'clig' off;
font-family: "Noto Sans SC";
font-size: 12px;
font-style: normal;
font-weight: 500;
line-height: 24px;
}
.levelWrap {
color: #000;
font-feature-settings: 'liga' off, 'clig' off;
text-overflow: ellipsis;
font-family: "Noto Sans SC";
font-size: 32px;
font-style: normal;
font-weight: 900;
line-height: 36px;
display: flex;
align-items: center;
justify-content: flex-start;
gap: 10px;
.level {
color: #00E5AD;
}
}
.slogan {
color: #000;
font-family: "Noto Sans SC";
font-size: 16px;
font-style: normal;
font-weight: 700;
line-height: 22px;
}
}
.actions {
margin: 0 22px;
display: flex;
flex-direction: column;
gap: 10px;
.buttonWrap {
width: 100%;
height: 52px;
border-radius: 16px;
border: 1px solid rgba(0, 0, 0, 0.06);
overflow: hidden;
.button {
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
width: 100%;
height: 100%;
font-feature-settings: 'liga' off, 'clig' off;
font-family: "PingFang SC";
font-size: 16px;
font-style: normal;
font-weight: 600;
line-height: normal;
&.primary {
color: #fff;
background: #000;
.arrowImage {
width: 20px;
height: 20px;
}
}
}
}
}
}
.guide {
.tip {
padding: 0 30px;
.tipImage {
width: 100%;
}
}
.radar {
display: flex;
align-items: center;
justify-content: center;
.radarImage {
width: 320px;
transform: scale(1.8);
}
}
.desc {
padding: 0 30px;
color: rgba(0, 0, 0, 0.85);
font-family: "PingFang SC";
font-size: 14px;
font-style: normal;
font-weight: 300;
line-height: 24px;
}
.actions {
margin: 74px 22px 0;
display: flex;
flex-direction: column;
gap: 10px;
.buttonWrap {
width: 100%;
height: 52px;
border-radius: 16px;
border: 1px solid rgba(0, 0, 0, 0.06);
overflow: hidden;
.button {
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
width: 100%;
height: 100%;
font-feature-settings: 'liga' off, 'clig' off;
font-family: "PingFang SC";
font-size: 16px;
font-style: normal;
font-weight: 600;
line-height: normal;
&.primary {
color: #fff;
background: #000;
.arrowImage {
width: 20px;
height: 20px;
}
}
}
}
}
}
}
.testContainer {
width: 100vw;
height: 100vh;
background: radial-gradient(227.15% 100% at 50% 0%, #BFFFEF 0%, #FFF 36.58%), #FAFAFA;
.bar {
margin: 12px 20px 36px;
height: 8px;
border-radius: 999px;
background: rgba(0, 0, 0, 0.06);
position: relative;
.progressBar {
height: 8px;
position: absolute;
left: 0;
top: 0;
border-radius: 999px;
background-color: #000;
}
}
.notice {
padding: 0 20px 20px;
color: #000;
font-family: "PingFang SC";
font-size: 18px;
font-style: normal;
font-weight: 300;
line-height: normal;
}
.question {
padding: 0 20px 48px;
box-sizing: border-box;
height: 502px;
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: space-between;
.content {
color: #000;
font-family: "PingFang SC";
font-size: 36px;
font-style: normal;
font-weight: 600;
line-height: normal;
}
.options {
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: flex-end;
gap: 12px;
width: 100%;
.optionItem {
display: flex;
align-items: center;
justify-content: space-between;
display: flex;
padding: 14px 20px;
align-items: center;
gap: 12px;
border-radius: 16px;
border: 0.5px solid rgba(0, 0, 0, 0.12);
background: #fff;
width: 100%;
box-sizing: border-box;
.optionText {
color: #000;
font-feature-settings: 'liga' off, 'clig' off;
font-family: "PingFang SC";
font-size: 14px;
font-style: normal;
font-weight: 500;
line-height: 24px;
}
.optionIcon {
display: flex;
align-items: center;
.icon {
width: 20px;
height: 20px;
}
}
}
}
}
.actions {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 0 22px;
gap: 24px;
.next {
width: 100%;
height: 52px;
border-radius: 16px;
border: 1px solid rgba(0, 0, 0, 0.06);
background: rgba(0, 0, 0, 0.20);
box-shadow: 0 8px 64px 0 rgba(0, 0, 0, 0.10);
overflow: hidden;
.nextBtn {
width: 100%;
height: 100%;
background-color: #000;
color: #fff;
border-radius: 16px;
display: flex;
align-items: center;
justify-content: center;
}
&.disabled {
border-radius: 16px;
border: 1px solid rgba(0, 0, 0, 0.06);
background: rgba(0, 0, 0, 0.20);
box-shadow: 0 8px 64px 0 rgba(0, 0, 0, 0.10);
.nextBtn {
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.20);
color: #fff;
border-radius: 16px;
}
}
}
.prev {
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
color: #000;
font-family: "PingFang SC";
font-size: 14px;
font-style: normal;
font-weight: 600;
line-height: normal;
.backIcon {
width: 20px;
height: 20px;
}
}
}
}
.resultContainer {
width: 100vw;
height: 100vh;
background: radial-gradient(227.15% 100% at 50% 0%, #BFFFEF 0%, #FFF 36.58%), #FAFAFA;
.card {
margin: 10px 20px 0;
padding: 24px 28px 0;
position: relative;
display: flex;
// height: px;
flex-direction: column;
justify-content: space-between;
align-items: center;
align-self: stretch;
border-radius: 26px;
border: 4px solid #FFF;
background: linear-gradient(180deg, #BFFFEF 0%, #F2FFFC 100%), #FFF;
box-shadow: 0 8px 64px 0 rgba(0, 0, 0, 0.10);
.avatarWrap {
padding-bottom: 20px;
display: flex;
align-items: center;
justify-content: flex-start;
@include commonAvatarStyle(0.5);
}
.desc {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 6px;
.tip {
color: #000;
font-family: "PingFang SC";
font-size: 14px;
font-style: normal;
font-weight: 300;
line-height: normal;
}
.levelWrap {
color: #000;
font-feature-settings: 'liga' off, 'clig' off;
text-overflow: ellipsis;
font-family: "Noto Sans SC";
font-size: 36px;
font-style: normal;
font-weight: 900;
line-height: 44px;
.level {
color: #00E5AD;
}
}
.slogan {
color: #000;
font-family: "PingFang SC";
font-size: 16px;
font-style: normal;
font-weight: 600;
line-height: normal;
}
}
}
}