|
|
|
@ -18,7 +18,7 @@
|
|
|
|
|
<div>
|
|
|
|
|
<div class="tz-inline">班级</div>
|
|
|
|
|
<span @click="changeLevel(null)" :class=" levelId == 0?'level-selected':''" >全部</span>
|
|
|
|
|
<span v-for="(item,$index) in classList" :key="$index" @click="changeLevel(item)" :class="levelId == item.id?'level-selected':''" > {{ item.name}}</span>
|
|
|
|
|
<span v-for="(item,$index) in classList" :key="$index" @click="changeLevel(item)" :class="levelId == item.outerId?'level-selected':''" > {{ item.name}}</span>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
@ -28,11 +28,11 @@
|
|
|
|
|
<b-img src="/static/image/icon_ranking_1.png"/>
|
|
|
|
|
综合排行榜
|
|
|
|
|
</div>
|
|
|
|
|
<div v-if="selectStage.enableFinance" :class=" rankingId ==3? 'ranking-selected':''" @click="changeType(3)">
|
|
|
|
|
<div v-if="!selectStage&&selectStage.enableFinance" :class=" rankingId ==3? 'ranking-selected':''" @click="changeType(3)">
|
|
|
|
|
<b-img src="/static/image/icon_ranking_3.png"/>
|
|
|
|
|
证券投资赛项排行榜
|
|
|
|
|
</div>
|
|
|
|
|
<div v-if="selectStage.enableExam" :class=" rankingId ==2? 'ranking-selected':''" @click="changeType(2)">
|
|
|
|
|
<div v-if="selectStage&&selectStage.enableExam" :class=" rankingId ==2? 'ranking-selected':''" @click="changeType(2)">
|
|
|
|
|
<b-img src="/static/image/icon_ranking_2.png"/>
|
|
|
|
|
投资者教育赛项排行榜
|
|
|
|
|
</div>
|
|
|
|
@ -43,7 +43,7 @@
|
|
|
|
|
<div class="tz-left-tab">
|
|
|
|
|
<div v-if="competition.type == 1" :class="rankingSubType==1?'ranking-sub-type-selected':''" @click="changeType2(1)" >团队排行榜</div>
|
|
|
|
|
<div :class="rankingSubType==2?'ranking-sub-type-selected':''" @click="changeType2(2)" >个人排行榜</div>
|
|
|
|
|
<!-- <div v-if="!isMobilePlatform" :class="rankingSubType==3?'ranking-sub-type-selected':''" @click="changeType2(3)" >大屏排行榜</div> -->
|
|
|
|
|
<div v-if="!isMobilePlatform" :class="rankingSubType==3?'ranking-sub-type-selected':''" @click="changeType2(3)" >大屏排行榜</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="tz-table-container" v-if="rankingSubType == 1">
|
|
|
|
|
<div class="tz-table-filter">
|
|
|
|
@ -89,7 +89,7 @@
|
|
|
|
|
备注
|
|
|
|
|
</b-col>
|
|
|
|
|
</b-row>
|
|
|
|
|
<b-row v-for="(item,$index) in teamRankList" :key="$index" class="tz-rank-content">
|
|
|
|
|
<b-row v-for="(item,$index) in teamRankList.slice(0,9)" :key="$index" class="tz-rank-content">
|
|
|
|
|
<b-col sm="">
|
|
|
|
|
<span :class="'tz-rank-'+item.rank">
|
|
|
|
|
{{item.rank}}
|
|
|
|
@ -126,6 +126,47 @@
|
|
|
|
|
</span>
|
|
|
|
|
</b-col>
|
|
|
|
|
</b-row>
|
|
|
|
|
<div class="s_container">
|
|
|
|
|
<div class="scroll-list">
|
|
|
|
|
<b-row v-for="(item,$index) in teamRankList.slice(10)" :key="$index" class="tz-rank-content">
|
|
|
|
|
<b-col sm="">
|
|
|
|
|
<span :class="'tz-rank-'+item.rank">
|
|
|
|
|
{{item.rank}}
|
|
|
|
|
</span>
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col sm="2" style="text-align:left;">
|
|
|
|
|
<!-- <tz-paomadeng v-if="item.name.length>6" :content="item.name" />-->
|
|
|
|
|
<span v-if="item.name.length<=wordLen">{{item.name}}</span>
|
|
|
|
|
<tz-tips v-if="item.name.length>wordLen" :content="item.name" :len="wordLen"/>
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col sm ="2" style="text-align:left;">
|
|
|
|
|
<!-- <tz-paomadeng v-if="item.school.length>6" :content="item.school" /> -->
|
|
|
|
|
<span v-if="!!item.className&&item.className.length<=wordLen">{{item.className}}</span>
|
|
|
|
|
<tz-tips v-if="!!item.className&&item.className.length>wordLen" :content="item.className" :len="wordLen"/>
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col sm="">
|
|
|
|
|
{{item.teacher}}
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col v-if="selectStage.enableExam" sm="">
|
|
|
|
|
{{numberFixed(item.examScore)}}
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col v-if="selectStage.enableFinance" sm="">
|
|
|
|
|
{{numberFixed(item.financeScore)}}
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col sm="">
|
|
|
|
|
{{numberFixed(item.combineScore)}}
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col sm>
|
|
|
|
|
{{numberFixed(item.totalScore)}}
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col sm @click="showMemberScore(item)">
|
|
|
|
|
<span>
|
|
|
|
|
查看
|
|
|
|
|
</span>
|
|
|
|
|
</b-col>
|
|
|
|
|
</b-row>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</b-container>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="tz-table-container" v-if="rankingSubType == 2">
|
|
|
|
@ -169,42 +210,79 @@
|
|
|
|
|
备注
|
|
|
|
|
</b-col> -->
|
|
|
|
|
</b-row>
|
|
|
|
|
<b-row v-for="(item,$index) in rankList" :key="$index" class="tz-rank-content">
|
|
|
|
|
<b-col sm>
|
|
|
|
|
<span :class="'tz-rank-'+(item.personalRank)">
|
|
|
|
|
{{(item.personalRank)}}
|
|
|
|
|
</span>
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col sm="2" >
|
|
|
|
|
<!-- <tz-paomadeng v-if="item.name.length>6" :content="item.name" />-->
|
|
|
|
|
<span v-if="item.name.length<=wordLen">{{item.name}}</span>
|
|
|
|
|
<tz-tips v-if="item.name.length>wordLen" :content="item.name" :len="wordLen" :key="item.personalRank" />
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col sm ="2" style="text-align:left;">
|
|
|
|
|
<!-- <tz-paomadeng v-if="item.school.length>6" :content="item.school" /> -->
|
|
|
|
|
<span v-if="!!item.className&&item.className.length<=wordLen">{{item.className}}</span>
|
|
|
|
|
<tz-tips v-if="!!item.className&&item.className.length>wordLen" :content="item.className" :len="wordLen" :key="item.personalRank" />
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col sm>
|
|
|
|
|
{{item.teacher}}
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col v-if="selectStage.enableExam" sm>
|
|
|
|
|
{{numberFixed(item.examScore)}}
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col v-if="selectStage.enableFinance" sm>
|
|
|
|
|
{{numberFixed(item.financeScore)}}
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col sm>
|
|
|
|
|
{{ numberFixed(item.combineScore)}}
|
|
|
|
|
</b-col>
|
|
|
|
|
<!-- <b-col sm>
|
|
|
|
|
{{item.examCostTime}}
|
|
|
|
|
</b-col> -->
|
|
|
|
|
</b-row>
|
|
|
|
|
<b-row v-for="(item,$index) in rankList.slice(0,10)" :key="$index" class="tz-rank-content">
|
|
|
|
|
<b-col sm>
|
|
|
|
|
<span :class="'tz-rank-'+(item.personalRank)">
|
|
|
|
|
{{(item.personalRank)}}
|
|
|
|
|
</span>
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col sm="2" >
|
|
|
|
|
<!-- <tz-paomadeng v-if="item.name.length>6" :content="item.name" />-->
|
|
|
|
|
<span v-if="item.name.length<=wordLen">{{item.name}}</span>
|
|
|
|
|
<tz-tips v-if="item.name.length>wordLen" :content="item.name" :len="wordLen" :key="item.personalRank" />
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col sm ="2" style="text-align:left;">
|
|
|
|
|
<!-- <tz-paomadeng v-if="item.school.length>6" :content="item.school" /> -->
|
|
|
|
|
<span v-if="!!item.className&&item.className.length<=wordLen">{{item.className}}</span>
|
|
|
|
|
<tz-tips v-if="!!item.className&&item.className.length>wordLen" :content="item.className" :len="wordLen" :key="item.personalRank" />
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col sm>
|
|
|
|
|
{{item.teacher}}
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col v-if="selectStage.enableExam" sm>
|
|
|
|
|
{{numberFixed(item.examScore)}}
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col v-if="selectStage.enableFinance" sm>
|
|
|
|
|
{{numberFixed(item.financeScore)}}
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col sm>
|
|
|
|
|
{{ numberFixed(item.combineScore)}}
|
|
|
|
|
</b-col>
|
|
|
|
|
<!-- <b-col sm>
|
|
|
|
|
{{item.examCostTime}}
|
|
|
|
|
</b-col> -->
|
|
|
|
|
</b-row>
|
|
|
|
|
<div class="s_container">
|
|
|
|
|
<div class="scroll-list">
|
|
|
|
|
<b-row v-for="(item,$index) in rankList.slice(10)" :key="$index" class="tz-rank-content">
|
|
|
|
|
<b-col sm>
|
|
|
|
|
<span :class="'tz-rank-'+(item.personalRank)">
|
|
|
|
|
{{(item.personalRank)}}
|
|
|
|
|
</span>
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col sm="2" >
|
|
|
|
|
<!-- <tz-paomadeng v-if="item.name.length>6" :content="item.name" />-->
|
|
|
|
|
<span v-if="item.name.length<=wordLen">{{item.name}}</span>
|
|
|
|
|
<tz-tips v-if="item.name.length>wordLen" :content="item.name" :len="wordLen" :key="item.personalRank" />
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col sm ="2" style="text-align:left;">
|
|
|
|
|
<!-- <tz-paomadeng v-if="item.school.length>6" :content="item.school" /> -->
|
|
|
|
|
<span v-if="!!item.className&&item.className.length<=wordLen">{{item.className}}</span>
|
|
|
|
|
<tz-tips v-if="!!item.className&&item.className.length>wordLen" :content="item.className" :len="wordLen" :key="item.personalRank" />
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col sm>
|
|
|
|
|
{{item.teacher}}
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col v-if="selectStage.enableExam" sm>
|
|
|
|
|
{{numberFixed(item.examScore)}}
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col v-if="selectStage.enableFinance" sm>
|
|
|
|
|
{{numberFixed(item.financeScore)}}
|
|
|
|
|
</b-col>
|
|
|
|
|
<b-col sm>
|
|
|
|
|
{{ numberFixed(item.combineScore)}}
|
|
|
|
|
</b-col>
|
|
|
|
|
<!-- <b-col sm>
|
|
|
|
|
{{item.examCostTime}}
|
|
|
|
|
</b-col> -->
|
|
|
|
|
</b-row>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</b-container>
|
|
|
|
|
</div>
|
|
|
|
|
<b-container class="tz-table-container tz-full-fixed" v-if="rankingSubType == 3 &&isFullScreen" id="fullScreen" @click="fullScreen">
|
|
|
|
|
<div class="tz-full-bg">
|
|
|
|
|
<b-container class="tz-table-container tz-full-fixed" v-if="rankingSubType == 3">
|
|
|
|
|
<div class="tz-full-bg" id="fullScreen">
|
|
|
|
|
<div class="tz-full-title">
|
|
|
|
|
{{competition.name}}
|
|
|
|
|
</div>
|
|
|
|
@ -433,6 +511,7 @@ import { getInfo } from '@/utils/auth'
|
|
|
|
|
import * as competitionApi from '@/api/competition'
|
|
|
|
|
import PaoMaDeng from '@/components/paomadeng.vue'
|
|
|
|
|
import Tips from '@/components/tips'
|
|
|
|
|
import * as gradeApi from '@/api/grade'
|
|
|
|
|
export default {
|
|
|
|
|
props:{
|
|
|
|
|
competition:{
|
|
|
|
@ -442,6 +521,10 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
watch:{
|
|
|
|
|
competition:function(nv){
|
|
|
|
|
if(this.competition.type==2){
|
|
|
|
|
this.queryData.type2=2
|
|
|
|
|
this.rankingSubType =2
|
|
|
|
|
}
|
|
|
|
|
this.loadData()
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
@ -459,7 +542,7 @@ export default {
|
|
|
|
|
stageList:[],
|
|
|
|
|
regionList:[],
|
|
|
|
|
levelList:[],
|
|
|
|
|
classList:[{id: 1, name: '测试1班'}],
|
|
|
|
|
classList:[],
|
|
|
|
|
rankList:[],
|
|
|
|
|
teamRankList: [],
|
|
|
|
|
dialogVisibale: false,
|
|
|
|
@ -585,14 +668,15 @@ export default {
|
|
|
|
|
this.rankingSubType = t
|
|
|
|
|
this.queryData.type2 = t
|
|
|
|
|
this.loadMemberRank()
|
|
|
|
|
if(t===3){
|
|
|
|
|
this.fullScreen()
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
fullScreen(){
|
|
|
|
|
this.isFullScreen =true
|
|
|
|
|
this.$nextTick(function(){
|
|
|
|
|
let full = document.getElementById("fullScreen")
|
|
|
|
|
this.launchIntoFullscreen(full)
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
launchIntoFullscreen(element){
|
|
|
|
|
if (element.requestFullscreen) {
|
|
|
|
@ -618,10 +702,20 @@ export default {
|
|
|
|
|
if(this.queryData.type2 == 3){
|
|
|
|
|
if(this.levelList){
|
|
|
|
|
let ids = ''
|
|
|
|
|
this.fullInfo.name = this.levelList[0].name
|
|
|
|
|
this.levelList[0].catList.forEach(cat=>{
|
|
|
|
|
ids+=cat.id+","
|
|
|
|
|
})
|
|
|
|
|
console.log( this.levelList)
|
|
|
|
|
if(!this.levelList||this.levelList.length==0){
|
|
|
|
|
this.fullInfo.name =''
|
|
|
|
|
}else{
|
|
|
|
|
this.fullInfo.name = this.levelList[0].name
|
|
|
|
|
}
|
|
|
|
|
if(!this.levelList||this.levelList.length==0){
|
|
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
this.levelList[0].catList.forEach(cat=>{
|
|
|
|
|
ids+=cat.id+","
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(ids.endsWith(",")){
|
|
|
|
|
ids = ids.substring(0,ids.length-1)
|
|
|
|
|
}
|
|
|
|
@ -798,6 +892,13 @@ export default {
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
gradeApi.list(this.competition.schoolId).then(res=>{
|
|
|
|
|
console.log(res.data.list.content)
|
|
|
|
|
if(res.code == 200){
|
|
|
|
|
this.classList = res.data.list.content
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
competitionApi.getGroup(this.competition.id,this.stageId).then(res=>{
|
|
|
|
|
if(res.code == 200){
|
|
|
|
|
res.data.list.forEach(g=>{
|
|
|
|
@ -820,21 +921,23 @@ export default {
|
|
|
|
|
this.wordLen = 7
|
|
|
|
|
}
|
|
|
|
|
this.userInfo = getInfo()
|
|
|
|
|
|
|
|
|
|
this.loadData()
|
|
|
|
|
},
|
|
|
|
|
mounted(){
|
|
|
|
|
let that = this
|
|
|
|
|
// window.addEventListener("resize",function(){
|
|
|
|
|
// if (window.outerHeight === screen.availHeight){
|
|
|
|
|
// if(window.outerWidth === screen.availWidth){
|
|
|
|
|
// that.isFullScreen = true
|
|
|
|
|
// }else{
|
|
|
|
|
// that.isFullScreen =false
|
|
|
|
|
// }
|
|
|
|
|
// }else{
|
|
|
|
|
// that.isFullScreen = false
|
|
|
|
|
// }
|
|
|
|
|
// })
|
|
|
|
|
document.addEventListener("fullscreenchange", function (e) {
|
|
|
|
|
|
|
|
|
|
if (document.fullscreenElement) {
|
|
|
|
|
console.log('进入全屏')
|
|
|
|
|
that.isFullScreen =true
|
|
|
|
|
document.getElementById("fullScreen").style="display:block";
|
|
|
|
|
} else {
|
|
|
|
|
console.log('退出全屏')
|
|
|
|
|
that.isFullScreen =false
|
|
|
|
|
document.getElementById("fullScreen").style="display:none";
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
components:{
|
|
|
|
|
"tz-paomadeng": PaoMaDeng,
|
|
|
|
@ -1284,4 +1387,27 @@ export default {
|
|
|
|
|
width: 2rem;
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.s_container {
|
|
|
|
|
position: relative;
|
|
|
|
|
/* 父容器需要有明确的高度 */
|
|
|
|
|
height: 330px;
|
|
|
|
|
width: 100%;
|
|
|
|
|
margin: auto;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
}
|
|
|
|
|
.s_container > .scroll-list {
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 0;
|
|
|
|
|
left: 0;
|
|
|
|
|
width: 100%;
|
|
|
|
|
animation: scroll 6s linear infinite normal;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@keyframes scroll {
|
|
|
|
|
100% {
|
|
|
|
|
/* 需要滚动内容的总高度 */
|
|
|
|
|
top: -300px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|