竞赛修改

dev_review
yujialong 1 year ago
parent 2f2e521494
commit 2ba3b6e75d
  1. 2
      src/const/match.js
  2. 41
      src/views/match/manage/index.vue
  3. 12
      src/views/match/manage/matchInfo.vue
  4. 6
      src/views/match/preview/index.vue

@ -28,7 +28,7 @@
},
{
id: 2,
name: '线下'
name: '其它'
}
],
teamCalculationMethods: [

@ -1,16 +1,24 @@
<template>
<!-- 赛事管理 -->
<div>
<el-card shadow="hover" class="m-b-20">
<el-card shadow="hover"
class="m-b-20">
<div class="flex-between">
<el-page-header @back="back" :content="name + '/管理'"></el-page-header>
<el-page-header @back="back"
:content="name + '/管理'"></el-page-header>
</div>
</el-card>
<div class="page" style="margin-bottom: 24px">
<div class="page"
style="margin-bottom: 24px">
<div class="tabs">
<a class="item" v-for="(item,index) in tabs" :key="index" :class="{active: index == active}" @click="tabChange(index)">{{ item }}</a>
<a class="item"
v-for="(item,index) in tabs"
:key="index"
:class="{active: index == active}"
@click="tabChange(index)">{{ item }}</a>
</div>
<MatchDetail v-if="active == 'tab1'" ref="detail" />
<MatchDetail v-if="active == 'tab1'"
ref="detail" />
<MatchArch v-if="active == 'tab2'" />
<MatchProgress v-else-if="active == 'tab3'" />
<notice v-else-if="active == 'tab4'" />
@ -29,10 +37,10 @@ import notice from "./notice";
import MatchSignup from "./matchSignup";
export default {
name: "matchManage",
data() {
data () {
return {
name: this.$route.query.name,
active: this.$route.query.tab || "tab1",
active: this.$route.query.tab || '',
tabs: {
tab1: "大赛详情",
tab2: "大赛成绩管理",
@ -49,11 +57,11 @@ export default {
notice,
MatchSignup
},
mounted() {
mounted () {
Setting.dynamicRoute && this.initTabs()
},
methods: {
initTabs() {
initTabs () {
const btns = this.$store.state.btns
const tab1 = btns.includes('/match:管理:大赛详情')
const tab2 = btns.includes('/match:管理:大赛成绩管理')
@ -69,13 +77,13 @@ export default {
const type = this.$route.query.tab
const keys = Object.keys(this.tabs)
this.active = keys.includes(type) ? type : keys[0]
if (keys.length) this.active = keys.includes(type) ? type : keys[0]
},
back() {
back () {
this.handleSave(0) && this.backPage()
},
// confirm
handleSave(i) {
handleSave (i) {
//
if (this.active === 'tab1') {
const { detail } = this.$refs
@ -102,20 +110,20 @@ export default {
}
},
//
backPage(){
backPage () {
this.$router.push(`/match?page=${this.$store.state.matchPage}&platformSource=${this.$store.state.platformSource}`)
},
// tab
tabSwitch(i) {
tabSwitch (i) {
this.active = i
this.$router.push(`/matchManage?id=${this.$route.query.id}&tab=${i}&name=${this.name}`)
},
// tab
backOrTab(i) {
backOrTab (i) {
i ? this.tabSwitch(i) : this.backPage()
},
// tab
tabChange(i) {
tabChange (i) {
this.handleSave(i) && this.tabSwitch(i)
}
}
@ -123,5 +131,4 @@ export default {
</script>
<style scoped>
</style>

@ -500,17 +500,7 @@ export default {
},
//
transfer () {
//
const now = new Date()
let start = 0
for (const e of this.form.competitionStage) {
if (now >= new Date(e.startTime) && now <= new Date(e.endTime)) {
util.errorMsg('比赛已经开始,无法转让队长!')
start = 1
break
}
}
if (!start) this.transferVisible = true
this.transferVisible = true
},
//
transferSubmit () {

@ -69,16 +69,16 @@
<p v-if="rule.onlineButton">线上地点{{ rule.onlineAddress }}</p>
<p v-if="rule.offlineButton">线下地点{{ rule.offlineAddress }}</p>
<template v-if="rule.method === 2">
<p>线下地点{{ rule.offlineAddress }}</p>
<p>比赛地点{{ rule.offlineAddress }}</p>
<p>比赛内容{{ rule.contentDescription }}</p>
<p>评分规则{{ rule.scoreRule }}</p>
</template>
<template v-if="form.completeCompetitionSetup.competitionType">
<p>团队参赛人数限制{{ rule.teamNumLimit || '不限制' }}</p>
<p>每个团队参赛人数限制{{ rule.teamNumLimit || '不限制' }}</p>
<p>团队成绩计算方式{{ teamCalculationMethods.find(e => e.id == rule.teamCalculationMethod) && teamCalculationMethods.find(e => e.id == rule.teamCalculationMethod).name }}</p>
</template>
<p>阶段比赛结束后{{ rule.resultAnnouncementTime }}小时公布阶段比赛成绩</p>
<p v-if="rule.resultAnnouncementTime != 0">阶段比赛结束后{{ rule.resultAnnouncementTime }}小时公布阶段比赛成绩</p>
<div v-if="form.rule === 1"
class="flex">
<p>晋级规则</p>

Loading…
Cancel
Save