提交 f8f419eb authored 作者: 王鹏飞's avatar 王鹏飞
import httpRequest from '@/utils/axios'
/**
* 获取考前摸底试题
*/
export function getExamQuestion(params) {
return httpRequest.get('/api/zy/v2/examination/examination-papers', { params }, { headers: { 'Content-Type': 'multipart/form-data' } })
}
/**
* 获取课程列表
*/
export function getCourseList() {
return httpRequest.get('/api/zy/v2/education/courses/list')
}
/**
* 获取课程详情
* @param {string} courseId 课程ID
*/
export function getCourse(courseId) {
return httpRequest.get(`/api/zy/v2/education/courses/${courseId}`)
}
/**
* 获取课程知识点
* @param {string} courseId 课程ID
*/
export function getCourseTagList(courseId) {
return httpRequest.get(`/api/zy/v2/education/tag/tree/${courseId}`)
}
/**
* 知识点详情
* @param {string} tagId 知识点ID
*/
export function getCourseTag(tagId) {
return httpRequest.get(`/api/zy/v2/education/tag/${tagId}`)
}
<template>
<div>
<!-- <div class="info">
<div class="shape">
<img :src="info.id_photo" alt="">
</div>
<div class="right">
<div class="name">{{ info.name }}</div>
<div class="code">{{ info.examinee_number }}</div>
</div>
</div> -->
<!-- {{ questionParams.card }} -->
<div class="order-num">
<template v-for="(item, index) in questionParams.card">
<div :key="index" v-if="item.question_item_type != 5">
<div class="tit">{{ item.find(tit => { return tit.question_item_title }).question_item_title }}</div>
<ul>
<template v-for="(cItem, cIndex) in item">
<!-- stu1已答 stu2当前 stu3标记 -->
<li
:key="cItem.q_order + '-' + cIndex"
@click="goQuestion(cItem.q_order)"
:class="questionParams.questionIndex + 1 === cItem.q_order
? questionParams.answerRecord[item.question_item_id]
? questionParams.answerRecord[item.question_item_id][cItem.id]
? questionParams.answerRecord[item.question_item_id][cItem.id].answer.length !== 0
? questionParams.answerRecord[item.question_item_id][cItem.id].sign
? 'stu1 stu2 stu3'
: 'stu1 stu2'
: questionParams.answerRecord[item.question_item_id][cItem.id].sign
? 'stu2 stu3'
: 'stu2'
: 'stu2'
: 'stu2'
: questionParams.answerRecord[item.question_item_id]
? questionParams.answerRecord[item.question_item_id][cItem.id]
? questionParams.answerRecord[item.question_item_id][cItem.id].answer.length !== 0
? questionParams.answerRecord[item.question_item_id][cItem.id].sign
? 'stu1 stu3'
: 'stu1'
: questionParams.answerRecord[item.question_item_id][cItem.id].sign
? 'stu3'
: ''
: ''
: ''
"
>{{ cItem.q_order }}</li>
</template>
</ul>
</div>
<div :key="index" v-else>
<div class="tit">{{ item.find(tit => { return tit.question_item_title }).question_item_title }}</div>
<ul>
<template v-for="cItem in item.question_list">
<template v-for="(lItem, lIndex) in cItem.list">
<li
:key="lItem.q_order +'-'+ lIndex"
@click="goQuestion(lItem.q_order)"
:class="questionParams.questionIndex + 1 === lItem.q_order
? questionParams.answerRecord[item.question_item_id]
? questionParams.answerRecord[item.question_item_id][lItem.id]
? questionParams.answerRecord[item.question_item_id][lItem.id].answer.length !== 0
? questionParams.answerRecord[item.question_item_id][lItem.id].sign
? 'stu1 stu2 stu3'
: 'stu1 stu2'
: questionParams.answerRecord[item.question_item_id][lItem.id].sign
? 'stu2 stu3'
: 'stu2'
: 'stu2'
: 'stu2'
: questionParams.answerRecord[item.question_item_id]
? questionParams.answerRecord[item.question_item_id][lItem.id]
? questionParams.answerRecord[item.question_item_id][lItem.id].answer.length !== 0
? questionParams.answerRecord[item.question_item_id][lItem.id].sign
? 'stu1 stu3'
: 'stu1'
: questionParams.answerRecord[item.question_item_id][lItem.id].sign
? 'stu3'
: ''
: ''
: ''
"
>{{ lItem.q_order }}</li>
</template>
</template>
</ul>
</div>
</template>
</div>
</div>
</template>
<script>
// import Bus from '../../components/common/bus.js'
export default {
props: {
questionParams: { type: Object, default: () => {} },
info: { type: Object, default: () => {} }
},
mounted() {
// Bus.$on('monitoringChanges', target => {
// this.$forceUpdate()
// })
},
computed: {
changeQuestionIndex() {
return this.questionParams.questionIndex
}
},
methods: {
goQuestion(n) {
this.questionParams.questionIndex = n - 1
}
},
watch: {
changeQuestionIndex(newV, oldV) {
this.$forceUpdate()
}
}
}
</script>
<style lang="scss" scoped>
.info{
display: flex;
align-items: center;
height: 100px;
.shape{
width: 60px;
height: 60px;
border-radius: 50%;
overflow: hidden;
}
img{
width: 75px;
// transform: scale(1);
display: block;
}
.right{
margin-left: 22px;
.name{
font-size: 18px;
color: #222222;
line-height: 25px;
}
.code{
font-size: 14px;
color: #222222;
line-height: 20px;
margin-top: 5px;
}
}
}
.order-num{
padding-bottom: 90px;
.tit{
font-size: 12px;
color: #999999;
line-height: 17px;
margin-bottom: 10px;
}
ul{
display: flex;
list-style: none;
padding: 0;
margin: 0;
flex-wrap: wrap;
li{
cursor: pointer;
position: relative;
border-radius: 50px;
width: 24px;
height: 24px;
border: 1px solid #CCCCCC;
font-size: 14px;
color: #666666;
line-height: 24px;
margin-right: 20px;
margin-bottom: 10px;
text-align: center;
&:nth-child(5n+5){
margin-right: 0;
}
&.stu1{
background: #EEEEEE;
border: 1px solid #CCCCCC;
}
&.stu2{
width: 22px;
height: 22px;
line-height: 22px;
border: 2px solid #0FC118;
}
&.stu3{
&::after{
content: '';
position: absolute;
top: -1px;
right: -1px;
width: 4px;
height: 4px;
background: #C01540;
border-radius: 50%;
}
}
}
}
}
.flag-tips{
width: 260px;
position: fixed;
bottom: 60px;
right:0;
display: flex;
justify-content: space-around;
padding: 15px 0 10px;
background: #fff;
margin: 0;
list-style: none;
li{
.circle1{
width: 24px;
height: 24px;
background: #EEEEEE;
border: 1px solid #CCCCCC;
border-radius: 50%;
}
.circle1{
width: 24px;
height: 24px;
border: 1px solid #CCCCCC;
border-radius: 50%;
}
.circle2{
width: 24px;
height: 24px;
border: 1px solid #CCCCCC;
border-radius: 50%;
}
.circle3{
width: 24px;
height: 24px;
border: 2px solid #0FC118;
border-radius: 50%;
}
.circle4{
position: relative;
width: 24px;
height: 24px;
border: 1px solid #CCCCCC;
border-radius: 50%;
&::after{
content: '';
position: absolute;
top: -1px;
right: -1px;
width: 4px;
height: 4px;
background: #C01540;
border-radius: 50%;
}
}
.txt{
margin-top: 5px;
font-size: 12px;
color: #CCCCCC;
line-height: 17px;
}
}
}
</style>
差异被折叠。
...@@ -27,7 +27,7 @@ export default { ...@@ -27,7 +27,7 @@ export default {
data() { data() {
return { return {
defaultMenus: [ defaultMenus: [
{ title: '考前摸底', icon: '', path: '/exam' }, { title: '考前摸底', icon: '', path: '/testExam' },
{ title: '真题实战', icon: '', path: '/exam' }, { title: '真题实战', icon: '', path: '/exam' },
{ title: '错题集合', icon: '', path: '/exam' }, { title: '错题集合', icon: '', path: '/exam' },
{ title: '收藏试题', icon: '', path: '/exam' }, { title: '收藏试题', icon: '', path: '/exam' },
......
差异被折叠。
<template>
<div class="app-container">
<div class="title">考前摸底介绍</div>
<div class="desc-exam">
<p>考试时间20分钟。</p>
<p>考试题目共22题,分四部分:单选题共8题,多选题共8题,判断题共5题,案例题共1题。</p>
</div>
<div class="exam-btn-box">
<div class="exam-btn">开始考试</div>
</div>
</div>
</template>
<script>
export default {
}
</script>
<style lang="scss" scoped>
.app-container{
position: relative;
height: 100%;
padding: 30px;
background-color: #fff;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
box-sizing: border-box;
.title{
border-bottom: 1px solid #ccc;
font-size: 18px;
color: #222222;
line-height: 45px;
}
.desc-exam{
min-height: 350px;
// border-bottom: 1px solid #ccc;
p{
margin-top: 20px;
font-size: 14px;
color: #333333;
line-height: 20px;
}
}
.exam-btn-box{
box-sizing: border-box;
width: 100%;
padding-top: 30px;
border-top: 1px solid #ccc;
.exam-btn{
text-align: center;
line-height: 40px;
width: 116px;
height: 40px;
background: #C01540;
border-radius: 4px;
font-size: 14px;
font-weight: bold;
color: #FFFFFF;
}
}
}
</style>
...@@ -32,6 +32,13 @@ const courseRoutes = [ ...@@ -32,6 +32,13 @@ const courseRoutes = [
component: () => import(/* webpackChunkName: "course-test" */ '@/pages/course/test/item') component: () => import(/* webpackChunkName: "course-test" */ '@/pages/course/test/item')
} }
] ]
const examAnswer = [
/* 考前摸底 */
{
path: '/testExam',
component: () => import(/* webpackChunkName: "course-learn" */ '@/pages/testExam')
}
]
export default [ export default [
{ path: '*', redirect: '/index' }, { path: '*', redirect: '/index' },
...@@ -208,7 +215,8 @@ export default [ ...@@ -208,7 +215,8 @@ export default [
component: () => import(/* webpackChunkName: "account" */ '@/pages/account/password') component: () => import(/* webpackChunkName: "account" */ '@/pages/account/password')
}, },
/* 考证课程 */ /* 考证课程 */
...courseRoutes ...courseRoutes,
...examAnswer
] ]
}, },
/* 搜索 */ /* 搜索 */
...@@ -228,5 +236,10 @@ export default [ ...@@ -228,5 +236,10 @@ export default [
{ path: 'test', component: () => import(/* webpackChunkName: "my" */ '@/pages/my/test') } { path: 'test', component: () => import(/* webpackChunkName: "my" */ '@/pages/my/test') }
] ]
}, },
/* 考前摸底考试 */
{
path: '/testExam/exam',
component: () => import(/* webpackChunkName: "course-learn" */ '@/pages/testExam/exam/index')
},
...viewerRoutes ...viewerRoutes
] ]
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论