竞赛修改

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, id: 2,
name: '线下' name: '其它'
} }
], ],
teamCalculationMethods: [ teamCalculationMethods: [

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

@ -500,17 +500,7 @@ export default {
}, },
// //
transfer () { transfer () {
// this.transferVisible = true
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
}, },
// //
transferSubmit () { transferSubmit () {

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

Loading…
Cancel
Save