Commit 3c6fd159 by 刘海龙

111

parent 1a8bfce5
<include file="__THEME__/public_header_w3g" />
<include file="__THEME__/public_header_w3g" />
<div id="app">
<div class="layout_v tab_container">
<van-tabs :border="false" v-model="tab" sticky @change="onTopTab" line-width="72px" line-height="4px" background="white"
color="#A3E460" title-inactive-color="#333333" title-active-color="#A3E460">
<van-tab>
<span slot="title" v-bind:class="tab == 0 ? 'tab_text_selected' : 'tab_text_normal'">
真题演练
</span>
<van-sticky :offset-top="44">
<div class="layout_v">
<van-dropdown-menu active-color="#333333">
<van-dropdown-item title="筛选" ref="item">
<div class="drop_down_grid">
<div @click="onCondition(item)" v-for="(item, index) in condition" :key="index" :class="item.select ? 'drop_down_option_selected' : 'drop_down_option'">
<span class="van-ellipsis">{{item.title}}</span>
</div>
</div>
</van-dropdown-item>
</van-dropdown-menu>
<div class="drop_down_selected_container">
<div v-for="(item, index) in selectedCondition" :key="index" class="color_primary text_14_400 drop_down_selected_item">
<span>{{item.title}}</span>
</div>
</div>
</div>
</van-sticky>
<div class="layout_v list_container">
<!-- 项目1 -->
<div v-for="(item, index) in zhenti" :key="index" class="class_item layout_h">
<div class="class_left layout_v weight_full">
<div class="layout_h">
<div v-if="item.price > 0" class="mark_orange layout_center">付费</div>
<div v-if="item.price == 0" class="mark_green layout_center">免费</div>
<span class="text_14_600 color_333333 weight_full van-multi-ellipsis--l2" style="margin-left: 0.625rem;">{{item.title}}</span>
</div>
<div class="layout_h" style="margin-top: 1.25rem;">
<span class="text_12_400 color_999999">题数:{{item.count}}</span>
<span class="class_attr text_12_400 color_999999">推荐用时:{{item.time}}m</span>
<span class="class_attr text_12_400 color_999999">{{item.person}}</span>
</div>
</div>
<div class="class_right layout_center">
<div @click="startDo(item)" v-if="item.price == 0 || item.is_buy" class="button_green layout_center">开始做题</div>
<!--
<div @click="onPay(item)" v-else-if="item.price > 0" class="button_orange layout_center">¥{{item.price}}</div>
-->
<div @click="startDo(item)" v-else-if="item.price > 0" class="button_orange layout_center">预览</div>
</div>
</div>
<span style="margin-top: 35vh;" v-if="zhenti.length == 0" class="text_14_400 color_999999 self_center">没有找到!</span>
</div>
</van-tab>
<van-tab>
<span slot="title" v-bind:class="tab == 1 ? 'tab_text_selected' : 'tab_text_normal'">
真题下载
</span>
<van-sticky :offset-top="44">
<van-dropdown-menu active-color="#333333">
<van-dropdown-item title="筛选" ref="item">
<div class="drop_down_grid">
<div @click="onCondition(item)" v-for="(item, index) in condition" :key="index" :class="item.select ? 'drop_down_option_selected' : 'drop_down_option'">
<span class="van-ellipsis">{{item.title}}</span>
</div>
</div>
</van-dropdown-item>
</van-dropdown-menu>
<div class="drop_down_selected_container">
<div v-for="(item, index) in selectedCondition" :key="index" class="color_primary text_14_400 drop_down_selected_item">
<span>{{item.title}}</span>
</div>
</div>
</van-sticky>
<div class="layout_v list_container">
<!-- 项目1 -->
<div v-for="(item, index) in download" :key="index" class="class_item layout_h">
<div class="class_left layout_v weight_full">
<div class="layout_h">
<div v-if="item.price > 0" class="mark_orange layout_center">付费</div>
<div v-if="item.price == 0" class="mark_green layout_center">免费</div>
<span class="text_14_600 color_333333 weight_full van-multi-ellipsis--l2" style="margin-left: 0.625rem;">{{item.title}}</span>
</div>
<div class="layout_h" style="margin-top: 1.25rem;">
<span class="text_12_400 color_999999">题数:{{item.count}}</span>
<span class="class_attr text_12_400 color_999999">推荐用时:{{item.time}}m</span>
<span class="class_attr text_12_400 color_999999">{{item.person}}</span>
</div>
</div>
<div class="class_right layout_center">
<div v-if="item.price == 0|| item.is_buy" @click="onDownload(index)" class="button_green layout_center">下载试题</div>
<!--
<div @click="onPay(item)" v-else-if="item.price > 0" class="button_orange layout_center">¥{{item.price}}</div>
-->
<div @click="onDownload(index)" v-else-if="item.price > 0" class="button_orange layout_center">下载预览</div>
</div>
</div>
<span style="margin-top: 35vh;" v-if="download.length == 0" class="text_14_400 color_999999 self_center">没有找到!</span>
</div>
</van-tab>
<van-tab>
<span slot="title" v-bind:class="tab == 2 ? 'tab_text_selected' : 'tab_text_normal'">
我的题库
</span>
<div class="layout_v zhenti_my_collect_list_container">
<div class="layout_h zhenti_tab">
<div @click="onMyTab(0)" class="layout_center weight_full" :class="myTab == 0 ? 'zhenti_tab_selected' : 'zhenti_tab_normal'">已做</div>
<div @click="onMyTab(1)" class="layout_center weight_full" :class="myTab == 1 ? 'zhenti_tab_selected' : 'zhenti_tab_normal'">收藏</div>
</div>
<template v-if="myTab == 1">
<div v-for="(item, index) in myCollect" :key="index" class="class_item layout_h">
<div class="zhenti_my_collect_cell layout_v" @click="showQuestion(item)">
<div class="text_16_600 color_333333" v-html="item.content"></div>
<div class="text_12_400 color_999999 zhenti_my_collect_cell_time">{{item.time}}</div>
</div>
</div>
<span style="margin-top: 35vh;" v-if="myCollect.length == 0" class="text_14_400 color_999999 self_center">没有找到!</span>
</template>
<template v-if="myTab == 0">
<div v-for="(item, index) in myYiZuo" :key="index" class="class_item layout_h">
<div class="class_left layout_v weight_full">
<div class="layout_h">
<div v-if="item.price > 0" class="mark_orange layout_center">付费</div>
<div v-if="item.price == 0" class="mark_green layout_center">免费</div>
<span class="text_14_600 color_333333 weight_full van-multi-ellipsis--l2" style="margin-left: 0.625rem;">{{item.title}}</span>
</div>
<div class="layout_h" style="margin-top: 1.25rem;">
<span class="text_12_400 color_primary">得分:{{item.score}}</span>
<span class="class_attr text_12_400 color_999999">{{item.time}}</span>
</div>
</div>
<div class="class_right layout_center">
<div class="button_green layout_center" @click="onShow(item)">查看详情</div>
</div>
</div>
<span style="margin-top: 35vh;" v-if="myYiZuo.length == 0" class="text_14_400 color_999999 self_center">没有找到!</span>
</template>
</div>
</van-tab>
</van-tabs>
</div>
<van-tabbar v-model="active" @change="onChange" :fixed="true" :route="false" :safe-area-inset-bottom="true"
active-color="#65C000" inactive-color="#363636">
<van-tabbar-item>
<span class="text_10_400">名师课堂</span>
<template #icon="props">
<!-- <a href="{:U('classroom/Index/index')}"> -->
<img :src="props.active ? '__THEME__/img/minshi.png' : '__THEME__/img/minshi_s.png'" />
<!-- </a> -->
</template>
</van-tabbar-item>
<van-tabbar-item>
<span class="text_10_400">真题题库</span>
<template #icon="props">
<!-- <a href="{:U('home/Home/exams')}"> -->
<img :src="props.active ? '__THEME__/img/zhenti.png' : '__THEME__/img/zhenti_s.png'" />
<!-- </a> -->
</template>
</van-tabbar-item>
<van-tabbar-item>
<span class="text_10_400">考试咨询</span>
<template #icon="props">
<!-- <a href="{:U('classroom/Index/find')}"> -->
<img :src="props.active ? '__THEME__/img/zixun.png' : '__THEME__/img/zixun_s.png'" />
<!-- </a> -->
</template>
</van-tabbar-item>
<van-tabbar-item>
<span class="text_10_400">会员中心</span>
<template #icon="props">
<!-- <if condition="$_SESSION['mid']">
<a href="{:U('home/User/index')}">
<else />
<a href="{:U('basic/Passport/login')}">
</if> -->
<img :src="props.active ? '__THEME__/img/huiyuan.png' : '__THEME__/img/huiyuan_s.png'" />
<!-- </a> -->
</template>
</van-tabbar-item>
</van-tabbar>
</div>
<script type="text/javascript">
new Vue({
el: '#app',
data: function() {
return {
active: 1,
tab: 0,
myTab: 0,
condition: [],
zhenti: [],
download: [],
myYiZuo: [],
myCollect: [],
page: 1
}
},
created:function() {
},
mounted:function(){
$("#preloader").hide();
this.onTopTab(0)
var that = this
//滚动条到页面底部加载更多案例
$(window).scroll(function(){
var scrollTop = $(this).scrollTop(); //滚动条距离顶部的高度
var scrollHeight = $(document).height(); //当前页面的总高度
var clientHeight = $(this).height(); //当前可视的页面高度
// console.log("top:"+scrollTop+",doc:"+scrollHeight+",client:"+clientHeight);
if(scrollTop + clientHeight >= scrollHeight){ //距离顶部+当前高度 >=文档总高度 即代表滑动到底部
//滚动条到达底部
// console.log("tab:" + that.tab)
// console.log("page:" + that.page)
// if(that.tab==0){
// that.loadZhenti()
// }else if(that.tab == 1) {
// that.loadDownload()
// } else {
// that.onMyTab(that.myTab)
// }
}else if(scrollTop<=0){
//滚动条到达顶部
// alert(4)
//滚动条距离顶部的高度小于等于0 TODO
}
});
},
computed: {
currentItems: function() {
if(this.tab == 0) {
return this.zhenti
} else if(this.tab == 1) {
return this.download
} else {
return this.myTab == 0 ? this.myYiZuo : this.myCollect
}
},
selectedCondition: function() {
return this.condition.filter( r => { return r.id != '' && r.select })
},
conditionId: function() {
let f = this.condition.filter( r => { return r.id != '' && r.select })
if(this.tab == 0) {
return f.length > 0 ? f[0].id : ''
}
if(this.tab == 1) {
return f.length > 0 ? f[0].id : ''
}
}
},
methods: {
onChange: function(tab) {
console.log(tab)
switch(tab){
case 0:
window.location.href = "{:U('classroom/Index/index')}"
break;
case 1:
window.location.href = "{:U('home/Home/exams')}"
break;
case 2:
window.location.href = "{:U('classroom/Index/find')}"
break;
case 3:
if(MID){
window.location.href = "{:U('home/User/index')}"
}else{
window.location.href = "{:U('basic/Passport/login')}"
}
break;
}
},
startDo: function(item) {
let url = "{:U('exams/index/examsroom')}" + "&paper_id=" + item.id + "&joinType=1"
window.location.href = url
},
onPay: function(item) {
$.ajax({
type: "POST",
url: "{:U('exams/index/getPayUrl')}",
data:{
paper_id: item.id,
},
dataType:"json",
success:function(res){
var res = getResponseData(res)
if(res.status == 1){
window.location.href = res.data
}else{
ui.error(res.message)
}
}
})
},
onDownload: function(index){
// if (item.attach) {
// window.location.href = item.attach;
// }
// console.log(item.attach)
var link = document.createElement('a');
console.log(this.download[index].title)
// 设置下载的文件名
link.download = this.download[index].title;
link.style.display = 'none';
//设置下载路径
link.href = this.download[index].attach;
//触发点击
document.body.appendChild(link);
link.click();
//移除节点
document.body.removeChild(link);
},
onTopTab: function(tab) {
if(this.tab == 0) {
this.page=1
this.loadZhenti()
} else if(this.tab == 1) {
this.page=1
this.loadDownload()
} else {
this.page=1
this.onMyTab(this.myTab)
}
},
onMyTab: function(tab) {
this.myTab = tab
if(tab == 0) {
this.loadMy()
} else {
this.loadMyTi()
}
},
onCondition: function(condition) {
this.condition.forEach( r => { r.select = false })
condition.select = true
this.$refs.item.toggle()
if(this.tab == 0) {
this.loadZhenti()
} else if(this.tab == 1) {
this.loadDownload()
}
},
//加载真题
loadZhenti: function() {
let that = this
$.ajax({
type: "GET",
url: "{:U('exams/Index/paper')}" + "&api=1&c=" + that.conditionId +"&p=" + this.page,
dataType: "json",
success: function(res) {
if(res.status == 1) {
let array = res.data.data.length > 0 ? res.data.data : []
that.zhenti = [].concat(array.map( r => {
return {
id: r.exams_paper_id,
title: r.exams_paper_title,
price: r.price,
count: r.questions_count,
time: r.reply_time,
person: r.exams_user + "已做",
is_buy: r.is_buy
}
}))
// that.page ++
if(that.condition.length == 0) {
that.condition = [{ id: '', title: '全部', select: true }].concat(res.cate.map( r => {
return {
id: r.id,
title: r.title,
select: false
}
}))
}
}
}
})
},
//加载试题下载
loadDownload: function() {
let that = this
$.ajax({
type: "GET",
url: "{:U('exams/Index/paper')}" + "&api=2&c=" + that.conditionId +"&p=" + this.page,
dataType: "json",
success: function(res) {
if(res.status == 1) {
let array = res.data.data.length > 0 ? res.data.data : []
that.download = array.concat(array.map( r => {
return {
id: r.exams_paper_id,
title: r.exams_paper_title,
price: r.price,
count: r.questions_count,
time: r.reply_time,
person: r.exams_user + "已做",
is_buy: r.is_buy,
attach: r.attach
}
}))
// that.page ++
if(that.condition.length == 0) {
that.condition = [{ id: '', title: '全部', select: true }].concat(res.cate.map( r => {
return {
id: r.id,
title: r.title,
select: false
}
}))
}
}
}
})
},
//加载我做过的题
loadMy: function() {
let that = this
$.ajax({
type: "GET",
url: "{:U('home/Home/exams')}" + "?api=1" +"&p=" + this.page,
dataType: "json",
success: function(res) {
if(res.status == 1) {
let array = res.data.data.length > 0 ? res.data.data : []
that.myYiZuo = [].concat(array.map( r => {
return {
id: r.exams_paper_id,
title: r.paper_info.exams_paper_title,
price: r.paper_info.price,
time: new Date(r.update_time * 1000).format('yyyy-MM-dd HH:mm:ss'),
score: r.score
}
}))
// that.page ++
}
}
})
},
onShow: function (item) {
let url = "{:U('exams/index/examsroom')}" + "&paper_id=" + item.id + "&joinType=1&review=true"
window.location.href = url
},
//加载我收藏的题
loadMyTi: function() {
let that = this
$.ajax({
type: "GET",
url: "{:U('home/Home/exams')}" + "?api=1&tab=4"+"&p=" + this.page,
dataType: "json",
success: function(res) {
if(res.status == 1) {
let array = res.data.data.length > 0 ? res.data.data : []
that.myCollect = [].concat(array.map( r => {
return {
id: r.question_info.exams_question_id,
content: r.question_info.content,
time: new Date(r.ctime * 1000).format('yyyy-mm-dd HH:MM:ss'),
}
}))
// that.page ++
}
}
})
},
showQuestion: function (item) {
let url = "{:U('exams/index/showQuestioninfo')}" + "&question_id=" + item.id;
window.location.href = url
}
}
})
</script>
...@@ -217,15 +217,15 @@ ...@@ -217,15 +217,15 @@
// console.log("top:"+scrollTop+",doc:"+scrollHeight+",client:"+clientHeight); // console.log("top:"+scrollTop+",doc:"+scrollHeight+",client:"+clientHeight);
if(scrollTop + clientHeight >= scrollHeight){ //距离顶部+当前高度 >=文档总高度 即代表滑动到底部 if(scrollTop + clientHeight >= scrollHeight){ //距离顶部+当前高度 >=文档总高度 即代表滑动到底部
//滚动条到达底部 //滚动条到达底部
console.log("tab:" + that.tab) // console.log("tab:" + that.tab)
console.log("page:" + that.page) // console.log("page:" + that.page)
if(that.tab==0){ // if(that.tab==0){
that.loadZhenti() // that.loadZhenti()
}else if(that.tab == 1) { // }else if(that.tab == 1) {
that.loadDownload() // that.loadDownload()
} else { // } else {
that.onMyTab(that.myTab) // that.onMyTab(that.myTab)
} // }
}else if(scrollTop<=0){ }else if(scrollTop<=0){
//滚动条到达顶部 //滚动条到达顶部
// alert(4) // alert(4)
...@@ -361,10 +361,12 @@ ...@@ -361,10 +361,12 @@
let that = this let that = this
$.ajax({ $.ajax({
type: "GET", type: "GET",
url: "{:U('exams/Index/paper')}" + "&api=1&c=" + that.conditionId +"&page=" + this.page, url: "{:U('exams/Index/paper')}" + "&api=1&c=" + that.conditionId +"&p=" + this.page,
dataType: "json", dataType: "json",
success: function(res) { success: function(res) {
if(res.status == 1) { if(res.status == 1) {
console.log(res)
console.log(that.zhenti )
let array = res.data.data.length > 0 ? res.data.data : [] let array = res.data.data.length > 0 ? res.data.data : []
that.zhenti = [].concat(array.map( r => { that.zhenti = [].concat(array.map( r => {
return { return {
...@@ -396,12 +398,12 @@ ...@@ -396,12 +398,12 @@
let that = this let that = this
$.ajax({ $.ajax({
type: "GET", type: "GET",
url: "{:U('exams/Index/paper')}" + "&api=2&c=" + that.conditionId +"&page=" + this.page, url: "{:U('exams/Index/paper')}" + "&api=2&c=" + that.conditionId +"&p=" + this.page,
dataType: "json", dataType: "json",
success: function(res) { success: function(res) {
if(res.status == 1) { if(res.status == 1) {
let array = res.data.data.length > 0 ? res.data.data : [] let array = res.data.data.length > 0 ? res.data.data : []
that.download = [].concat(array.map( r => { that.download = array.concat(array.map( r => {
return { return {
id: r.exams_paper_id, id: r.exams_paper_id,
title: r.exams_paper_title, title: r.exams_paper_title,
...@@ -413,7 +415,7 @@ ...@@ -413,7 +415,7 @@
attach: r.attach attach: r.attach
} }
})) }))
that.page ++ // that.page ++
if(that.condition.length == 0) { if(that.condition.length == 0) {
that.condition = [{ id: '', title: '全部', select: true }].concat(res.cate.map( r => { that.condition = [{ id: '', title: '全部', select: true }].concat(res.cate.map( r => {
return { return {
...@@ -446,7 +448,7 @@ ...@@ -446,7 +448,7 @@
score: r.score score: r.score
} }
})) }))
that.page ++ // that.page ++
} }
} }
}) })
...@@ -472,7 +474,7 @@ ...@@ -472,7 +474,7 @@
time: new Date(r.ctime * 1000).format('yyyy-mm-dd HH:MM:ss'), time: new Date(r.ctime * 1000).format('yyyy-mm-dd HH:MM:ss'),
} }
})) }))
that.page ++ // that.page ++
} }
} }
}) })
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment