更改答题页页面

This commit is contained in:
Andy Leong 2024-02-20 14:01:48 +08:00
parent 7874eef8a6
commit b08ecc8b31
16 changed files with 163 additions and 83 deletions

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 517 KiB

After

Width:  |  Height:  |  Size: 510 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 192 KiB

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 749 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 833 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 43 KiB

View File

@ -16,6 +16,8 @@ const questionList = ref(data); //随机打乱题库
const answerList = ref([]); // const answerList = ref([]); //
const activeId = ref(""); // const activeId = ref(""); //
const showResultBtn = ref(false); const showResultBtn = ref(false);
const isChecked = ref(false)
// //
const answerFn = (item, event) => { const answerFn = (item, event) => {
let e = event.target.parentElement; let e = event.target.parentElement;
@ -37,11 +39,31 @@ const answerFn = (item, event) => {
} }
// //
if (currentId.value < questionList.value.length - 1) { gsap.set('.option-tips,.analysis', { autoAlpha: 1 })
gsap.set('.question-box', { pointerEvents: 'none' })
isChecked.value = true
})
}
//
const nextQuestion = (event) => {
let e = event.target;
debounceTap(e, () => {
isChecked.value = false
gsap.set('.option-tips,.analysis', { autoAlpha: 0 })
currentId.value++ currentId.value++
activeId.value = '' activeId.value = ''
gsap.set('.question-box', { pointerEvents: 'initial' })
})
} else { }
//
const viewResult = (event) => {
let e = event.target;
debounceTap(e, () => {
// id // id
userStore.updatePosterId(getRandomNumber([1, 2, 3])) userStore.updatePosterId(getRandomNumber([1, 2, 3]))
gsap.set('.question-box', { pointerEvents: 'none' }) gsap.set('.question-box', { pointerEvents: 'none' })
@ -79,12 +101,8 @@ const answerFn = (item, event) => {
}) })
}, 1000) }, 1000)
} }
})
} }
console.log("答案库", answerList.value);
});
};
// //
const getRandomNumber = (arr) => { const getRandomNumber = (arr) => {
@ -92,8 +110,7 @@ const getRandomNumber = (arr) => {
return arr[randomIndex]; return arr[randomIndex];
} }
//
// const resultBtnAni = gsap.timeline({ paused: true });
onMounted(() => { onMounted(() => {
gsap.from('.question-bg', { duration: 0.5, autoAlpha: 0, }) gsap.from('.question-bg', { duration: 0.5, autoAlpha: 0, })
gsap.from('.question-box', { duration: 0.5, scale: 0.4, autoAlpha: 0, }) gsap.from('.question-box', { duration: 0.5, scale: 0.4, autoAlpha: 0, })
@ -123,21 +140,28 @@ onMounted(() => {
<div class="question-text" v-for="item in questionList[currentId].question" :key="item"> <div class="question-text" v-for="item in questionList[currentId].question" :key="item">
{{ item }} {{ item }}
</div> </div>
<div class="question-tips">打一系列产品</div>
</div> </div>
<!-- 选项 --> <!-- 选项 -->
<div class="answer-box"> <div class="answer-box">
<div class="answer" :class="activeId == item.aid ? 'answer-active' : ''" <div class="answer" :class="isChecked ? item.result + '-bg' : ''"
v-for="item in questionList[currentId].answer" :key="item.aid"> v-for="item in questionList[currentId].answer" :key="item.aid">
<div class="answer-option">{{ item.aid }}</div>
<div class="answer-text-box"> <div class="answer-text-box">
<div class="answer-text" v-for="a in item.text" :key="a"> <div class="answer-text" v-for="a in item.text" :key="a">
{{ a }} {{ item.aid }}.{{ a }}
</div> </div>
</div> </div>
<div class="option-tips">
<div :class="item.result"></div>
</div>
<!-- 可点击区域 --> <!-- 可点击区域 -->
<div class="click-area" @click="answerFn(item, $event)"></div> <div class="click-area" @click="answerFn(item, $event)"></div>
</div> </div>
</div> </div>
<!-- 解析 -->
<div class="analysis">{{ questionList[currentId].analysis }}</div>
<div class="next-btn" @click="nextQuestion($event)"></div>
<div class="next-btn" @click="nextQuestion($event)"></div>
</div> </div>
</div> </div>
<div class="question-lantern-icon"></div> <div class="question-lantern-icon"></div>
@ -187,7 +211,7 @@ onMounted(() => {
@include flexCen(); @include flexCen();
.question-lantern-icon { .question-lantern-icon {
pointer-events: none; // pointer-events: none;
@include pos(349px, 443px, 489px, 49px); @include pos(349px, 443px, 489px, 49px);
@include bg_pos('qa/lantern-icon.png'); @include bg_pos('qa/lantern-icon.png');
} }
@ -220,7 +244,7 @@ onMounted(() => {
} }
.qa-question-box { .qa-question-box {
@include pos(570px, 620px, 43px, 194px); @include pos(570px, 700px, 43px, 194px);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-around; justify-content: space-around;
@ -240,6 +264,16 @@ onMounted(() => {
text-shadow: 0.675px 2.923px 6px rgba(164, 18, 14, 0.004); text-shadow: 0.675px 2.923px 6px rgba(164, 18, 14, 0.004);
// -webkit-transform: matrix( 0.63514641527437,0,0,0.63514641527437,0,0); // -webkit-transform: matrix( 0.63514641527437,0,0,0.63514641527437,0,0);
} }
.question-tips {
font-size: 25px;
width: 100%;
font-family: 'DouyinSansBold';
color: rgb(255, 255, 255);
text-align: center;
padding: 10px;
text-shadow: 0.675px 2.923px 6px rgba(164, 18, 14, 0.004);
}
} }
// //
@ -249,8 +283,8 @@ onMounted(() => {
align-items: center; align-items: center;
// //
.answer-active { .correct-bg {
border: 2px solid rgb(255, 238, 186) !important; border: 1px solid rgb(255, 238, 186) !important;
background-image: linear-gradient(177deg, rgb(255, 184, 127) 0%, rgb(255, 238, 186) 100%); background-image: linear-gradient(177deg, rgb(255, 184, 127) 0%, rgb(255, 238, 186) 100%);
background-image: -webkit-linear-gradient(177deg, rgb(255, 184, 127) 0%, rgb(255, 238, 186) 100%); background-image: -webkit-linear-gradient(177deg, rgb(255, 184, 127) 0%, rgb(255, 238, 186) 100%);
@ -259,13 +293,27 @@ onMounted(() => {
} }
.answer-text-box { .answer-text-box {
color: #96100f !important; color: #96100f !important;
} }
}
.incorrect-bg {
background-image: -webkit-linear-gradient(177deg, rgb(195, 59, 22) 0%, rgb(209, 84, 51) 100%);
box-shadow: 0px 3px 6px 0px rgba(133, 0, 3, 0.85), inset 0px 2px 5px 0px rgba(236, 74, 42, 0.004);
.answer-option {
color: #ffe2ad;
}
.answer-text-box {
color: #ffe2ad !important;
}
} }
.answer { .answer {
@include box(476px, 92px); @include box(476px, 92px);
position: relative; position: relative;
@ -274,7 +322,7 @@ onMounted(() => {
margin-bottom: 35px; margin-bottom: 35px;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
justify-content: space-between; justify-content: space-around;
align-items: center; align-items: center;
.click-area { .click-area {
@ -283,19 +331,23 @@ onMounted(() => {
} }
.answer-option { .option-tips {
@include box(92px, 77px); @include box(60px, 60px);
border-radius: 38.5px; visibility: hidden;
background-color: rgb(233, 197, 143);
font-size: 52px; .correct {
display: flex; @include box(100%, 100%);
justify-content: center; @include bg_pos("qa/correct.png");
align-items: center;
color: #cc1615;
font-weight: 700;
margin-left: 5px;
} }
.incorrect {
@include box(100%, 100%);
@include bg_pos("qa/incorrect.png");
}
}
.answer-text-box { .answer-text-box {
@include box(335px, 100%); @include box(335px, 100%);
font-family: 'HarmonyOS_Sans_SC_Regular'; font-family: 'HarmonyOS_Sans_SC_Regular';
@ -307,6 +359,8 @@ onMounted(() => {
.answer-text { .answer-text {
width: 100%; width: 100%;
// text-align: center;
padding-left: 40px;
} }
} }
@ -316,6 +370,28 @@ onMounted(() => {
}
//
.analysis {
width: 100%;
font-family: 'HarmonyOS_Sans_SC_Regular';
font-size: 25px;
color: #ffe2ad;
text-align: center;
padding: 10px;
height: 150px;
line-height: 40px;
}
.next-btn{
@include box(234px,65px);
@include bg_pos("qa/next-btn.png");
}
.create-btn{
@include box(234px,65px);
@include bg_pos("qa/create-btn.png");
} }
} }

View File

@ -31,12 +31,16 @@ const page = [
'prize/no-prize.png', 'prize/no-prize.png',
'prize/star.png', 'prize/star.png',
'qa/correct.png',
'qa/gold-icon.png', 'qa/gold-icon.png',
'qa/question-box.png', 'qa/incorrect.png',
'qa/lantern-icon.png',
'qa/gold-icon-2.png', 'qa/gold-icon-2.png',
'qa/bg.jpg', 'qa/next-btn.png',
'qa/create-btn.png',
'qa/lantern-icon.png',
'qa/question-box.png',
'qa/bottom-bg.png', 'qa/bottom-bg.png',
'qa/bg.jpg',
'result/tips.png', 'result/tips.png',
'result/product-3.png', 'result/product-3.png',

View File

@ -2,72 +2,72 @@ export const data = [
{ {
id: 1, id: 1,
question: [ question: [
'元宵幸福是来源于阖家团圆', '兄弟好多个,个个都爱赢',
'你的投资“幸福感”从何而来?', '目标很合适,止盈有方法',
], ],
answer: [ answer: [
{ {
aid: 'A', aid: 'A',
text: [ text: [
'低波动低回撤', '灵活策略目标盈',
'追求稳稳的幸福',
], ],
result:'correct',
}, },
{ {
aid: 'B', aid: 'B',
text: [ text: [
'流动性好', '灵活策略目标强',
'存取超方便',
], ],
result:'incorrect',
}, },
], ],
}, },
{ {
id: 2, id: 2,
question: [ question: [
'“投资就像猜灯谜,不能碰运气', '固收旗舰团,兄弟有志气',
'学会评估才是关键”', '三个金牛奖,开启财富门',
'你倾向于什么方式评估?',
], ],
answer: [ answer: [
{ {
aid: 'A', aid: 'A',
text: [ text: [
'根据详细的市场报告', '启航',
'及历史数据具体分析',
], ],
result:'correct',
}, },
{ {
aid: 'B', aid: 'B',
text: [ text: [
'根据整体市场趋势', '远航',
'进行未来预测',
], ],
result:'incorrect',
}, },
], ],
analysis: '截止2024年1月30日启航系列历史到期正收益概率100%'
}, },
{ {
id: 3, id: 3,
question: [ question: [
'元宵是新年开运吉日', '兄弟好多个,口碑都很好',
'此时开启一项新投资', '考试常满分,稳重不轻浮',
'你更追求?',
], ],
answer: [ answer: [
{ {
aid: 'A', aid: 'A',
text: [ text: [
'尽可能保证本金安全', '稳健精选',
'追求“落袋为安”',
], ],
result:'correct',
}, },
{ {
aid: 'B', aid: 'B',
text: [ text: [
'产生较多的收益', '稳妥精选',
'可以承担一定的投资风险',
], ],
result:'incorrect',
}, },
], ],
analysis: '截止2024年1月30日稳健精选系列历史到期业绩基准达标率100%'
}, },
] ]

View File

@ -57,7 +57,7 @@ const indexFn = (item) => {
} }
}; };
const showQuestion = ref(false); const showQuestion = ref(true);
const questionFn = (item) => { const questionFn = (item) => {
if (item.action == "hide") { if (item.action == "hide") {
showQuestion.value = false; showQuestion.value = false;
@ -209,7 +209,7 @@ onMounted(() => {
}); });
} }
} else { } else {
showLoad.value = true; // showLoad.value = true;
createBGM(); createBGM();
} }
}); });