-
201package-lock.json
-
1package.json
-
BINsrc/assets/buy.jpg
-
BINsrc/assets/false.jpg
-
BINsrc/assets/huiche.png
-
BINsrc/assets/result.jpg
-
BINsrc/assets/square.jpg
-
BINsrc/assets/true.jpg
-
7src/main.js
-
6src/router/index.js
-
42src/views/BuyView.vue
-
38src/views/HomeView.vue
-
175src/views/ProblemView.vue
-
348src/views/ReportView.vue
-
245src/views/ResultView.vue
-
114src/views/TestView.vue
-
997src/views/TextView.vue
|
After Width: 1920 | Height: 970 | Size: 593 KiB |
|
After Width: 518 | Height: 349 | Size: 33 KiB |
|
After Width: 45 | Height: 45 | Size: 3.2 KiB |
|
After Width: 485 | Height: 397 | Size: 34 KiB |
|
After Width: 452 | Height: 273 | Size: 34 KiB |
|
After Width: 490 | Height: 341 | Size: 31 KiB |
@ -0,0 +1,42 @@ |
|||
<template> |
|||
<div class="home"> |
|||
<div class="enter" @click="enter"> |
|||
<img src="../assets/huiche.png" alt="返回上一页" class="img1"> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
export default{ |
|||
name:'BuyView', |
|||
data(){ |
|||
return{ |
|||
|
|||
}; |
|||
}, |
|||
methods:{ |
|||
enter(){ |
|||
this.$router.push({ |
|||
name:'ReportView' |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style scoped> |
|||
.home{ |
|||
width: 100%; |
|||
height: 100%; |
|||
background-image: url('@/assets/buy.jpg'); |
|||
color: white; |
|||
padding: 20px; |
|||
} |
|||
.enter{ |
|||
position: relative; |
|||
top: 45px; |
|||
left: 360px; |
|||
} |
|||
.img1{ |
|||
width: 70px; |
|||
height: 60px; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,175 @@ |
|||
<template> |
|||
<div class="home"> |
|||
<div class="top"> |
|||
<div class="img-top" @click="jump"> |
|||
<img src="../assets/return.jpg" alt="返回" class="img1"> |
|||
</div> |
|||
<span> |
|||
<h1>📈股票知识评测系统</h1> |
|||
</span> |
|||
<p>全方面评估您的股票投资知识水平,获取个性化学习建议</p> |
|||
</div> |
|||
<div class="popup-all" v-if="showDialog"> |
|||
<div class="popup-top" @click="closeDialog"></div> |
|||
<div class="popup-content"> |
|||
<h3>确认提示</h3> |
|||
<p>确定返回报告吗?</p> |
|||
<div class="popup-buttons"> |
|||
<button class="cancel-btn" @click="closeDialog">取消</button> |
|||
<button class="confirm-btn" @click="confirmExit">确定</button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="content"> |
|||
<div class="question-all"> |
|||
<div v-for="problem in currentProblem" :key="problem.id" class="question-card"> |
|||
<div class="question"> |
|||
<span class="text">{{problem.id}}、</span>{{ problem.stem }} |
|||
</div> |
|||
</div> |
|||
<div class="options"> |
|||
<lable class="option"> |
|||
<input type="radio"> |
|||
</lable> |
|||
<lable class="option"> |
|||
<input type="radio"> |
|||
</lable> |
|||
<lable class="option"> |
|||
<input type="radio"> |
|||
</lable> |
|||
<lable class="option"> |
|||
<input type="radio"> |
|||
</lable> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
</div> |
|||
</template> |
|||
<script> |
|||
export default { |
|||
data() { |
|||
return { |
|||
showDialog: false |
|||
} |
|||
}, |
|||
methods: { |
|||
jump() { |
|||
this.showDialog = true; |
|||
}, |
|||
closeDialog() { |
|||
this.showDialog = false; |
|||
}, |
|||
confirmExit() { |
|||
this.showDialog = false; |
|||
this.$router.push({ name: 'ReportView' }); |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style scoped> |
|||
* { |
|||
margin: 0; |
|||
padding: 0; |
|||
box-sizing: border-box; |
|||
} |
|||
.home{ |
|||
min-height: 100vh; |
|||
width: 100%; |
|||
background-color: #24293c; |
|||
overflow:auto; |
|||
padding: 10px; |
|||
} |
|||
.top{ |
|||
background:#0c4a6e; |
|||
color: white; |
|||
padding: 30px; |
|||
margin-bottom: 10px; |
|||
position: relative; |
|||
} |
|||
.img-top{ |
|||
float: left; |
|||
} |
|||
.img-top:hover{ |
|||
transform: scale(1.1); |
|||
} |
|||
.img1{ |
|||
width: 30px; |
|||
height: 50px; |
|||
float: left; |
|||
} |
|||
h1{ |
|||
margin-bottom: 10px; |
|||
background: none; |
|||
font-size: 2.2em; |
|||
} |
|||
p{ |
|||
font-size: 1.2em; |
|||
margin-bottom: 10px; |
|||
background: none; |
|||
} |
|||
.popup-all{ |
|||
position: fixed; |
|||
top: 0; |
|||
left: 0; |
|||
width: 100%; |
|||
height: 100%; |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
z-index: 1000; |
|||
} |
|||
.popup-top{ |
|||
position: absolute; |
|||
top: 0; |
|||
left: 0; |
|||
width: 100%; |
|||
height: 100%; |
|||
background: rgba(0, 0, 0, 0.5); |
|||
backdrop-filter: blur(5px); |
|||
} |
|||
.popup-content{ |
|||
background-color: #f1f5f9; |
|||
padding: 20px; |
|||
border-radius: 10px; |
|||
box-shadow: 0 0 10px rgba(0,0,0,0.3); |
|||
} |
|||
.popup-buttons{ |
|||
margin-top: 20px; |
|||
display: flex; |
|||
justify-content: flex-end; |
|||
} |
|||
.cancel-btn{ |
|||
background-color: #f1f5f9; |
|||
color: #24293c; |
|||
border-radius: 10px; |
|||
border: transparent 0px ; |
|||
margin: 5px; |
|||
padding: 5px 10px; |
|||
} |
|||
.confirm-btn{ |
|||
background-color: #22608b; |
|||
color: #f1f5f9; |
|||
border-radius: 10px; |
|||
border: transparent 0px ; |
|||
margin: 5px; |
|||
padding: 5px 10px; |
|||
} |
|||
.content { |
|||
float: left; |
|||
width: calc(65% - 20px); |
|||
min-height: 920px; |
|||
border: #274779 solid 2px; |
|||
border-radius: 10px; |
|||
color: #f1f5f9; |
|||
padding: 20px 40px 50px; |
|||
margin-right: 20px; |
|||
background-color: #2a3147; |
|||
} |
|||
.question-all{ |
|||
display: flex; |
|||
flex-direction: column; |
|||
gap: 30px; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,348 @@ |
|||
<template> |
|||
<div class="home"> |
|||
<div class="top"> |
|||
<div @click="showConfirmDialog" class="ret-top"> |
|||
<img src="../assets/return.jpg" alt="返回" class="ret"> |
|||
</div> |
|||
<h1>📈股票知识评测系统</h1> |
|||
<p>全方面评估您的股票投资知识水平,获取个性化学习建议</p> |
|||
</div> |
|||
<div class="popup-block" v-if="showDialog"> |
|||
<div class="popup-top" @click="closeDialog"></div> |
|||
<div class="popup-content"> |
|||
<h3>确认提示</h3> |
|||
<p>确定要退出吗?</p> |
|||
<div class="popup-buttons"> |
|||
<button class="cancel-btn" @click="closeDialog">取消</button> |
|||
<button class="confirm-btn" @click="confirmExit">确定</button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="content"> |
|||
<h1>系统分析报告</h1> |
|||
|
|||
<div class="right"> |
|||
<div class="right-top"> |
|||
<img src="../assets/square.jpg" alt="柱状图展示....." class="img3"> |
|||
<div class="right-top-left"> |
|||
<div v-show="score!=100" > |
|||
<img src="../assets/false.jpg" alt="继续努力....." class="img1"> |
|||
</div> |
|||
<div v-show="score==100" > |
|||
<img src="../assets/true.jpg" alt="你真棒....." class="img2"> |
|||
</div> |
|||
<div> |
|||
<p style="font-size: 2.2em;text-align: center;">您的分数是:{{this.score}}分</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="left"> |
|||
<p>最好的投资是投资自己,而最好的课程是,是适合你的课程</p><br> |
|||
<p>人无法赚到认知以外的钱,请根据测试结果,聚焦你的核心短板进行强化,扩大你的认知边界</p> |
|||
</div> |
|||
<div class="right-down"> |
|||
<div v-show="score==100"> |
|||
<p>恭喜您全部回答正确</p> |
|||
<p>接下还需巩固知识</p> |
|||
<p>推荐课程是:量能擒牛</p> |
|||
</div> |
|||
<div v-show="score!=100"> |
|||
<p>接下还需巩固知识</p> |
|||
<p>推荐课程是:量能擒牛</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="content-button"> |
|||
<button class="check-btn" @click="goCheck">查看错题</button> |
|||
<button class="buy-btn" @click="goBuy">前往购买</button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script scoped> |
|||
import axios from 'axios'; |
|||
export default{ |
|||
name: 'ReportView', |
|||
data() { |
|||
return { |
|||
showDialog:false, |
|||
score:0, |
|||
give: null |
|||
}; |
|||
}, |
|||
methods:{ |
|||
async getScore(){ |
|||
const submissionData = JSON.parse(localStorage.getItem('submissionData')); |
|||
console.log('第一个'+submissionData); |
|||
try{ |
|||
const res = await axios.post('http://192.168.40.41:8000/api/knowledge/scores',submissionData); |
|||
this.score = res.data.data[0].score; |
|||
console.log('第二个'+this.score); |
|||
}catch(err){ |
|||
console.log(err); |
|||
} |
|||
}, |
|||
showConfirmDialog() { |
|||
this.showDialog = true; |
|||
}, |
|||
closeDialog() { |
|||
this.showDialog = false; |
|||
}, |
|||
confirmExit() { |
|||
this.showDialog = false; |
|||
this.$router.push('/'); |
|||
}, |
|||
goBuy() { |
|||
this.$router.push('/buy'); |
|||
}, |
|||
goCheck() { |
|||
this.$router.push('/problem'); |
|||
}, |
|||
}, |
|||
async mounted(){ |
|||
await this.getScore(); |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style> |
|||
.ret{ |
|||
width: 30px; |
|||
height: 50px; |
|||
float: left; |
|||
} |
|||
* { |
|||
margin: 0; |
|||
padding: 0; |
|||
box-sizing: border-box; |
|||
} |
|||
.top { |
|||
background: linear-gradient(135deg, #0c4a6e 100%); |
|||
color: white; |
|||
padding: 30px; |
|||
margin-bottom: 30px; |
|||
border-radius: 10px; |
|||
box-shadow: 0 10px 30px rgba(0,0,0,0.3); |
|||
position: relative; |
|||
overflow: hidden; |
|||
} |
|||
.top h1 { |
|||
font-size: 2.2em; |
|||
margin-bottom: 10px; |
|||
background: none; |
|||
} |
|||
.top p { |
|||
font-size: 1.1em; |
|||
opacity: 0.9; |
|||
background: none; |
|||
} |
|||
.home { |
|||
min-height: 100vh; |
|||
width: 100%; |
|||
background-color: #24293c; |
|||
overflow: auto; |
|||
padding: 20px; |
|||
} |
|||
.ret-top { |
|||
float: left; |
|||
cursor: pointer; |
|||
transition: transform 0.3s ease; |
|||
} |
|||
|
|||
.ret-top:hover { |
|||
transform: scale(1.1); |
|||
} |
|||
.content{ |
|||
border: #274779 solid 2px; |
|||
border-radius: 50px; |
|||
padding: 15px; |
|||
margin-bottom: 20px; |
|||
background-color: #2f374d; |
|||
padding: 30px; |
|||
color: white; |
|||
} |
|||
.left{ |
|||
border: #274779 solid 2px; |
|||
border-radius: 50px; |
|||
padding: 15px; |
|||
margin-bottom: 20px; |
|||
background-color: #2f374d; |
|||
width: 30%; |
|||
top: 200px; |
|||
float: right; |
|||
margin: 10px 0; |
|||
padding: 20px; |
|||
color: #65befc; |
|||
} |
|||
|
|||
.right-top{ |
|||
border: #274779 solid 2px; |
|||
border-radius: 50px; |
|||
padding: 15px; |
|||
margin-bottom: 20px; |
|||
background-color: #2f374d; |
|||
width: 65%; |
|||
margin: 10px; |
|||
padding: 30px 40px; |
|||
float: left; |
|||
} |
|||
.img3{ |
|||
width: 600px; |
|||
height: 400px; |
|||
float: left; |
|||
margin: auto; |
|||
} |
|||
.right-top-left{ |
|||
float: right; |
|||
margin-right: 50px; |
|||
margin-top: 30px; |
|||
} |
|||
.right-down{ |
|||
border: #274779 solid 2px; |
|||
border-radius: 50px; |
|||
padding: 15px; |
|||
margin-bottom: 20px; |
|||
background-color: #2f374d; |
|||
width: 65%; |
|||
height: 300px; |
|||
float: left; |
|||
margin: 10px; |
|||
padding-top: 40px; |
|||
padding-left: 60px; |
|||
clear: right; |
|||
} |
|||
.content::after { |
|||
content: ""; |
|||
display: table; |
|||
clear: both; |
|||
} |
|||
|
|||
.ret-top { |
|||
float: left; |
|||
cursor: pointer; |
|||
transition: transform 0.3s ease; |
|||
} |
|||
|
|||
.ret-top:hover { |
|||
transform: scale(1.1); |
|||
} |
|||
.popup-block { |
|||
position: fixed; |
|||
top: 0; |
|||
left: 0; |
|||
width: 100%; |
|||
height: 100%; |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
z-index: 1000; |
|||
} |
|||
|
|||
.popup-top { |
|||
position: absolute; |
|||
top: 0; |
|||
left: 0; |
|||
width: 100%; |
|||
height: 100%; |
|||
background: rgba(0, 0, 0, 0.5); |
|||
backdrop-filter: blur(5px); |
|||
} |
|||
|
|||
.popup-content { |
|||
position: relative; |
|||
background: white; |
|||
padding: 30px; |
|||
border-radius: 15px; |
|||
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3); |
|||
max-width: 400px; |
|||
width: 90%; |
|||
text-align: center; |
|||
z-index: 1001; |
|||
animation: dialogSlideIn 0.3s ease-out; |
|||
} |
|||
|
|||
.popup-content h3 { |
|||
color: #333; |
|||
margin-bottom: 15px; |
|||
font-size: 1.4em; |
|||
} |
|||
|
|||
.popup-content p { |
|||
color: #666; |
|||
margin-bottom: 25px; |
|||
font-size: 2.2em; |
|||
line-height: 1.5; |
|||
} |
|||
|
|||
.popup-buttons { |
|||
display: flex; |
|||
gap: 15px; |
|||
justify-content: center; |
|||
} |
|||
|
|||
.cancel-btn, .confirm-btn { |
|||
padding: 12px 30px; |
|||
border: none; |
|||
border-radius: 8px; |
|||
font-size: 1em; |
|||
font-weight: bold; |
|||
cursor: pointer; |
|||
transition: all 0.3s ease; |
|||
min-width: 100px; |
|||
} |
|||
|
|||
.cancel-btn { |
|||
background: #f1f1f1; |
|||
color: #666; |
|||
} |
|||
|
|||
.cancel-btn:hover { |
|||
background: #e0e0e0; |
|||
} |
|||
|
|||
.confirm-btn { |
|||
background: #ff4757; |
|||
color: white; |
|||
} |
|||
|
|||
.confirm-btn:hover { |
|||
background: #ff3742; |
|||
transform: translateY(-2px); |
|||
} |
|||
.img1,.img2{ |
|||
width: 270px; |
|||
height: 180px; |
|||
float: left; |
|||
margin: auto; |
|||
} |
|||
.right-down p{ |
|||
font-size: 2.2em; |
|||
line-height: 1.5; |
|||
color: #65befc; |
|||
} |
|||
.left p{ |
|||
font-size: 2.2em; |
|||
line-height: 1.5; |
|||
} |
|||
.content-button{ |
|||
margin-top: 30px; |
|||
text-align: center; |
|||
} |
|||
.buy-btn,.check-btn{ |
|||
position: relative; |
|||
top:200px; |
|||
padding: 12px 30px; |
|||
border: none; |
|||
border-radius: 8px; |
|||
font-size: 2em; |
|||
font-weight: bold; |
|||
cursor: pointer; |
|||
transition: all 0.3s ease; |
|||
min-width: 100px; |
|||
background-color: #22608b; |
|||
color: white; |
|||
margin:40px; |
|||
float: right; |
|||
} |
|||
</style> |
|||