提交 573c9a4e authored 作者: lihuihui's avatar lihuihui

updata

上级 9d4a938c
...@@ -27,6 +27,10 @@ export default class API { ...@@ -27,6 +27,10 @@ export default class API {
return window.G.$instance_vue return window.G.$instance_vue
} }
isWeapp() {
return this.$store.state.isWeapp
}
/* 重新封装 请求时的执行函数 */ /* 重新封装 请求时的执行函数 */
_request (_config = {}) { _request (_config = {}) {
/* 具体执行请求成功后业务逻辑前,先执行该方法 */ /* 具体执行请求成功后业务逻辑前,先执行该方法 */
...@@ -94,9 +98,14 @@ export default class API { ...@@ -94,9 +98,14 @@ export default class API {
const { status, data } = res.response const { status, data } = res.response
if (data) { if (data) {
if (status === 402) { if (status === 402) {
window.G.$instance_vue.$router.replace({ console.log(this.isWeapp)
path: '/pay' if (this.isWeapp) {
}) wx.miniProgram.navigateTo({ url: `/pages/web/index?src=${window.location.origin}/pay` })
} else {
window.G.$instance_vue.$router.replace({
path: '/pay'
})
}
// const routeData = window.G.$instance_vue.$router.resolve({ // const routeData = window.G.$instance_vue.$router.resolve({
// name: 'pay' // name: 'pay'
// }) // })
......
...@@ -5,8 +5,10 @@ const httpRequest = new BaseAPI(webConf) ...@@ -5,8 +5,10 @@ const httpRequest = new BaseAPI(webConf)
/** /**
* 获取我的已做试题 * 获取我的已做试题
*/ */
export function getMyQuestion() { export function getMyQuestion(data) {
return httpRequest.get('/zy/v2/examination/my-question') return httpRequest.get('/zy/v2/examination/my-question', data, {
headers: { 'Content-Type': 'multipart/form-data' }
})
} }
/* 模拟考试设置角色 */ /* 模拟考试设置角色 */
......
...@@ -17,8 +17,8 @@ ...@@ -17,8 +17,8 @@
<div class="val">{{item.total_fee}}</div> <div class="val">{{item.total_fee}}</div>
</div> </div>
<div class="deti"> <div class="deti">
<div class="val col" v-if="item.status === 1">购买成功</div> <div class="val col" v-if="item.status == 1">购买成功</div>
<div class="val col" v-else>继续购买</div> <div class="val col" v-else @click="goBuy">继续购买</div>
</div> </div>
</li> </li>
</template> </template>
...@@ -37,6 +37,11 @@ export default { ...@@ -37,6 +37,11 @@ export default {
mounted() { mounted() {
this.getMyOrder() this.getMyOrder()
}, },
computed: {
isWeapp() {
return this.$store.state.isWeapp
}
},
methods: { methods: {
getMyOrder() { getMyOrder() {
api.getMyOrder().then(res => { api.getMyOrder().then(res => {
...@@ -44,6 +49,15 @@ export default { ...@@ -44,6 +49,15 @@ export default {
this.order = res.data.orders this.order = res.data.orders
} }
}) })
},
goBuy() {
if (this.isWeapp) {
wx.miniProgram.navigateTo({ url: `/pages/web/index?src=${window.location.origin}/pay` })
} else {
window.G.$instance_vue.$router.replace({
path: '/pay'
})
}
} }
} }
} }
......
<template> <template>
<div> <div>
<div class="top-tab"> <div id="top-view">
<div :class="activeClass == '0' ? 'left btn active' : 'left btn'" @click="tab('0')"> <div class="top-tab">
<div class="num">{{ question.errorTotal }}</div> <div :class="activeClass == '0' ? 'left btn active' : 'left btn'" @click="tab('0')">
<div class="txt">错题总数</div> <div class="num">{{ question.errorTotal }}</div>
</div> <div class="txt">错题总数</div>
<div :class="activeClass == '1' ? 'right btn active' : 'right btn'" @click="tab('1')"> </div>
<div class="num">{{ question.total }}</div> <div :class="activeClass == '1' ? 'right btn active' : 'right btn'" @click="tab('1')">
<div class="txt">做题总数</div> <div class="num">{{ question.total }}</div>
<div class="txt">做题总数</div>
</div>
</div> </div>
</div> <div class="exam-con">
<div class="exam-con"> <div class="sele" @click="screen.isShow = true">
<div class="sele" @click="screen.isShow = true"> <div class="title">选择题型</div>
<div class="title">选择题型</div> <div class="txt">
<div class="txt"> <div class="t">{{ screen.checkedText }}</div>
<div class="t">{{ screen.checkedText }}</div> <van-icon name="arrow" />
<van-icon name="arrow" /> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="question-box"> <div class="question-box" id="bottom-view">
<ul> <ul>
<template v-for="(item, index) in question.list"> <template v-for="(item, index) in question.list">
<template v-if="changeGroup"> <template v-if="screen.screenVal == 0">
<template v-if="screen.screenVal == 0"> <li :key="index" v-if="item.is_right == '0'">
<li :key="index" v-if="item.is_right == '0'"> <img src="../../assets/images/que-type1.png" alt="" v-if="item.question_type == '6'">
<img src="../../assets/images/que-type1.png" alt="" v-if="item.question_type == '6'"> <img src="../../assets/images/que-type2.png" alt="" v-if="item.question_type == '5'">
<img src="../../assets/images/que-type2.png" alt="" v-if="item.question_type == '5'"> <img src="../../assets/images/que-type3.png" alt="" v-if="item.question_type == '2'">
<img src="../../assets/images/que-type3.png" alt="" v-if="item.question_type == '2'"> <img src="../../assets/images/que-type4.png" alt="" v-if="item.question_type == '1'">
<img src="../../assets/images/que-type4.png" alt="" v-if="item.question_type == '1'"> <div class="text">{{ item.question.question_content }}</div>
<div class="text">{{ item.question.question_content }}</div> <div class="del" @click="del(item.id)">删除</div>
<div class="del" @click="del(item.id)">删除</div> </li>
</li>
</template>
<template v-else>
<li :key="index" v-if="item.is_right == '0' && item.question_type == screen.screenVal">
<img src="../../assets/images/que-type1.png" alt="" v-if="item.question_type == '6'">
<img src="../../assets/images/que-type2.png" alt="" v-if="item.question_type == '5'">
<img src="../../assets/images/que-type3.png" alt="" v-if="item.question_type == '2'">
<img src="../../assets/images/que-type4.png" alt="" v-if="item.question_type == '1'">
<div class="text">{{ item.question.question_content }}</div>
<div class="del" @click="del(item.id)">删除</div>
</li>
</template>
</template> </template>
<template v-else> <template v-else>
<template v-if="screen.screenVal == 0"> <li :key="index" v-if="item.is_right == '0' && item.question_type == screen.screenVal">
<li :key="index"> <img src="../../assets/images/que-type1.png" alt="" v-if="item.question_type == '6'">
<img src="../../assets/images/que-type1.png" alt="" v-if="item.question_type == '6'"> <img src="../../assets/images/que-type2.png" alt="" v-if="item.question_type == '5'">
<img src="../../assets/images/que-type2.png" alt="" v-if="item.question_type == '5'"> <img src="../../assets/images/que-type3.png" alt="" v-if="item.question_type == '2'">
<img src="../../assets/images/que-type3.png" alt="" v-if="item.question_type == '2'"> <img src="../../assets/images/que-type4.png" alt="" v-if="item.question_type == '1'">
<img src="../../assets/images/que-type4.png" alt="" v-if="item.question_type == '1'"> <div class="text">{{ item.question.question_content }}</div>
<div class="text">{{ item.question.question_content }}</div> <div class="del" @click="del(item.id)">删除</div>
<div class="del" @click="del(item.id)">删除</div> </li>
</li>
</template>
<template v-else>
<li :key="index" v-if="item.question_type == screen.screenVal">
<img src="../../assets/images/que-type1.png" alt="" v-if="item.question_type == '6'">
<img src="../../assets/images/que-type2.png" alt="" v-if="item.question_type == '5'">
<img src="../../assets/images/que-type3.png" alt="" v-if="item.question_type == '2'">
<img src="../../assets/images/que-type4.png" alt="" v-if="item.question_type == '1'">
<div class="text">{{ item.question.question_content }}</div>
<div class="del" @click="del(item.id)">删除</div>
</li>
</template>
</template> </template>
</template> </template>
</ul> </ul>
<div class="loading" v-if="isLogding">
<div class="icon">
<van-loading color="#1989fa" />
</div>
</div>
</div> </div>
<div class="sele-pop" v-if="screen.isShow"> <div class="sele-pop" v-if="screen.isShow">
<div class="picker"> <div class="picker">
...@@ -96,12 +79,39 @@ export default { ...@@ -96,12 +79,39 @@ export default {
columns: ['全部', '单选题', '多选题', '判断题', '案例题'], columns: ['全部', '单选题', '多选题', '判断题', '案例题'],
screenVal: '0' screenVal: '0'
}, },
question: {}, question: {
list: []
},
activeClass: '0', activeClass: '0',
changeGroup: false changeGroup: false,
isLogding: false,
params: {
is_error: 1,
page: 1,
page_size: 20
},
scrollFlag: false
} }
}, },
methods: { methods: {
handleScroll(e) {
const scrollTop = e.target.scrollTop
const eScroll = e.target.scrollHeight - (document.getElementsByTagName('body')[0].offsetHeight - document.getElementById('top-view').offsetHeight)
console.log(this.scrollFlag)
if (this.scrollFlag) { return false }
if (scrollTop === eScroll) {
this.scrollFlag = true
this.isLogding = true
this.params.page = this.params.page + 1
this.initData()
}
},
scrollDom() {
const topViewH = document.getElementById('top-view').offsetHeight
const clientHeight = document.documentElement.clientHeight
const bottomView = document.getElementById('bottom-view')
bottomView.style.height = (clientHeight - topViewH) + 'px'
},
del(id) { del(id) {
api.deleteQuestion({ id: id }).then(res => { api.deleteQuestion({ id: id }).then(res => {
if (res.code === 0) { if (res.code === 0) {
...@@ -112,10 +122,25 @@ export default { ...@@ -112,10 +122,25 @@ export default {
}) })
}, },
tab(e) { tab(e) {
if (e === '0') {
this.params = {
is_error: 1,
page: 1,
page_size: 20
}
} else {
this.params = {
is_error: 0,
page: 1,
page_size: 20
}
}
this.screen.checkedText = '全部' this.screen.checkedText = '全部'
this.screen.screenVal = 0 this.screen.screenVal = 0
this.activeClass = e this.activeClass = e
e === '0' ? this.changeGroup = false : this.changeGroup = true e === '0' ? this.changeGroup = false : this.changeGroup = true
document.getElementById('bottom-view').scrollTop = 0
this.question.list = []
}, },
onConfirm(value, index) { onConfirm(value, index) {
const arr = [0, 1, 2, 5, 6] const arr = [0, 1, 2, 5, 6]
...@@ -124,20 +149,25 @@ export default { ...@@ -124,20 +149,25 @@ export default {
this.screen.isShow = false this.screen.isShow = false
}, },
initData() { initData() {
api.getMyQuestion().then(res => { api.getMyQuestion(this.params).then(res => {
let count = 0 res.list.map(item => {
this.question = res this.question.list.push(item)
this.question.list.map(item => {
if (item.is_right === '0') {
count++
}
}) })
this.question.errorTotal = count this.question.total = res.total
this.question.errorTotal = res.error_total
this.scrollDom()
if (res.list.length === 0) {
Toast('没有更多了')
} else {
this.scrollFlag = false
}
this.isLogding = false
}) })
} }
}, },
mounted() { mounted() {
this.initData() this.initData()
window.addEventListener('scroll', this.handleScroll, true)
} }
} }
</script> </script>
...@@ -214,6 +244,7 @@ export default { ...@@ -214,6 +244,7 @@ export default {
} }
} }
.question-box{ .question-box{
overflow-y: scroll;
padding: 0 .4rem; padding: 0 .4rem;
ul{ ul{
li{ li{
...@@ -242,4 +273,15 @@ export default { ...@@ -242,4 +273,15 @@ export default {
} }
} }
} }
.loading{
position: relative;
width: 100%;
padding-bottom: .4rem;
.icon{
position: absolute;
left: 50%;
top: 0;
-webkit-transform: translateX(-50%);
}
}
</style> </style>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论