dev_2022-06-14
yujialong 3 years ago
parent 64dd3eac9b
commit 3b9fe3de0f
  1. 2
      src/api/index.js
  2. 8
      src/pages/match/details/index.vue
  3. 57
      src/pages/match/list/index.vue
  4. 23
      src/pages/touristMatch/list/index.vue

@ -72,6 +72,7 @@ export default {
secondaryColumnsByFirst: `occupationlab/occupationlab/enterprise/information/column/secondaryColumnsByFirst`, secondaryColumnsByFirst: `occupationlab/occupationlab/enterprise/information/column/secondaryColumnsByFirst`,
// 线上赛事 // 线上赛事
notLoggedInBeforeStudentEvents: `occupationlab/occupationlab/enterprise/match/contest/notLoggedInBeforeStudentEvents`,
contestPageConditionQueryByOccupationlabStu: `occupationlab/occupationlab/enterprise/match/contest/contestPageConditionQueryByOccupationlabStu`, contestPageConditionQueryByOccupationlabStu: `occupationlab/occupationlab/enterprise/match/contest/contestPageConditionQueryByOccupationlabStu`,
contestPageConditionQueryByOccupationlab: `occupationlab/occupationlab/enterprise/match/contest/onlineCompetitionByStudent`, contestPageConditionQueryByOccupationlab: `occupationlab/occupationlab/enterprise/match/contest/onlineCompetitionByStudent`,
listOfRegisteredEvents: `occupationlab/occupationlab/enterprise/match/contest/listOfRegisteredEvents`, listOfRegisteredEvents: `occupationlab/occupationlab/enterprise/match/contest/listOfRegisteredEvents`,
@ -80,6 +81,7 @@ export default {
getContest: `occupationlab/occupationlab/enterprise/match/contest/getContest`, // 根据id查询赛事 getContest: `occupationlab/occupationlab/enterprise/match/contest/getContest`, // 根据id查询赛事
queryAnnouncementByContestId: `occupationlab/occupationlab/contest/announcement/queryAnnouncementByContestId`, queryAnnouncementByContestId: `occupationlab/occupationlab/contest/announcement/queryAnnouncementByContestId`,
queryAnnouncementDetails: `occupationlab/occupationlab/contest/announcement/queryAnnouncementDetails`, queryAnnouncementDetails: `occupationlab/occupationlab/contest/announcement/queryAnnouncementDetails`,
contestAfterLogin: `occupationlab/occupationlab/enterprise/match/contest/contestAfterLogin`,
// 阿里云文件/视频管理 // 阿里云文件/视频管理
fileDeletion: `${uploadURL}oss/manage/fileDeletion`, // 删除OSS文件 fileDeletion: `${uploadURL}oss/manage/fileDeletion`, // 删除OSS文件

@ -275,14 +275,6 @@ export default {
color: #fff; color: #fff;
background-size: 100% 350px; background-size: 100% 350px;
background-repeat: no-repeat; background-repeat: no-repeat;
h6 {
margin-bottom: 30px;
font-size: 42px;
}
.text {
font-size: 20px;
line-height: 30px;
}
} }
.l-title { .l-title {
font-size: 18px; font-size: 18px;

@ -11,12 +11,15 @@
<!-- 课程筛选 --> <!-- 课程筛选 -->
<div class="filter"> <div class="filter">
<div class="center-wrap" style="padding: 0;margin: 0 auto;"> <div class="center-wrap" style="padding: 0;margin: 0 auto;">
<dl v-if="way"> <dl v-if="form.eventType !== 1">
<dt>比赛范围</dt> <dt>比赛范围</dt>
<template v-if="way === 2"> <template v-if="form.eventType === 2">
<dd v-for="(item, i) in squareScopes" :key="i" :class="{active: form.competitionScope == item.id}" @click="changeScope(item.id)">{{ item.name }}</dd>
</template>
<template v-if="form.eventType === 3">
<dd v-for="(item, i) in scopes" :key="i" :class="{active: form.competitionScope == item.id}" @click="changeScope(item.id)">{{ item.name }}</dd> <dd v-for="(item, i) in scopes" :key="i" :class="{active: form.competitionScope == item.id}" @click="changeScope(item.id)">{{ item.name }}</dd>
</template> </template>
<template v-if="way === 1 || (way === 2 && form.competitionScope === 2)"> <template v-if="form.eventType === 2 || (form.eventType === 3 && form.competitionScope === 2)">
<div class="select-wrap"> <div class="select-wrap">
<span class="label">省份</span> <span class="label">省份</span>
<el-select size="small" v-model="form.provinceId" clearable @change="getCity"> <el-select size="small" v-model="form.provinceId" clearable @change="getCity">
@ -53,7 +56,7 @@
<div class="main"> <div class="main">
<div class="center-wrap list-inner"> <div class="center-wrap list-inner">
<ul v-if="token" class="nav"> <ul v-if="token" class="nav">
<li :class="{ active: way === item.id }" v-for="(item, index) in typeList" :key="index" @click="changeType(item.id)">{{ item.name }} <li :class="{ active: form.eventType === item.id }" v-for="(item, index) in typeList" :key="index" @click="changeType(item.id)">{{ item.name }}
</li> </li>
</ul> </ul>
<div class="list-wrap"> <div class="list-wrap">
@ -106,7 +109,7 @@
</div> </div>
<div class="right"> <div class="right">
<p class="status" <p class="status"
:class="{wait: item.status == 0 || item.status == 4,signing: item.status == 2,signed: item.status == 1,finish: item.status == 3 || item.status == 5}" :class="{wait: item.status == 0,signing: item.status == 2,signed: item.status == 1,playing: item.status == 4,finish: item.status == 3 || item.status == 5}"
@click.stop="signup(item)">{{ statusList[item.status] }}</p> @click.stop="signup(item)">{{ statusList[item.status] }}</p>
<p class="end-text" v-if="item.status != 5"> <p class="end-text" v-if="item.status != 5">
距离{{ endList[item.status] }}还有 距离{{ endList[item.status] }}还有
@ -138,9 +141,7 @@
</template> </template>
<script> <script>
import { mapActions } from "vuex";
import { Loading } from "element-ui"; import { Loading } from "element-ui";
import bus from "@/libs/bus";
import Setting from "@/setting" import Setting from "@/setting"
import util from "@/libs/util" import util from "@/libs/util"
@ -150,21 +151,20 @@ export default {
return { return {
timer: null, timer: null,
token: util.local.get(Setting.tokenKey), token: util.local.get(Setting.tokenKey),
way: 0,
apis: ['contestPageConditionQueryByOccupationlab', 'contestPageConditionQueryByOccupationlabStu', 'listOfRegisteredEvents'], // 3 apis: ['contestPageConditionQueryByOccupationlab', 'contestPageConditionQueryByOccupationlabStu', 'listOfRegisteredEvents'], // 3
statusList: ["等待报名", "已报名", "立即报名", "报名截止", "比赛中", "已结束"], statusList: ["等待报名", "已报名", "立即报名", "报名截止", "比赛中", "已结束"],
endList: ["报名开始", "报名截止", "报名截止", "竞赛开始", "竞赛结束", ""], endList: ["报名开始", "报名截止", "报名截止", "竞赛开始", "竞赛结束", ""],
typeList: [ typeList: [
{ {
id: 0, id: 1,
name: "本校赛事" name: "本校赛事"
}, },
{ {
id: 1, id: 2,
name: "赛事广场" name: "赛事广场"
}, },
{ {
id: 2, id: 3,
name: "已报名" name: "已报名"
} }
], ],
@ -173,10 +173,29 @@ export default {
form: { form: {
provinceId: '', provinceId: '',
cityId: '', cityId: '',
sequence: 1, sequence: 1, // (1: 2.)
competitionScope: 0, // (0: 1: 2.) competitionScope: 3, // (0: 1: 2.)
eventType: 1 // (1./2.广/3.)
}, },
squareScopes: [
{
id: 3,
name: '不限'
},
{
id: 1,
name: '全平台'
},
{
id: 2,
name: '指定区域/院校'
}
],
scopes: [ scopes: [
{
id: 3,
name: '不限'
},
{ {
id: 0, id: 0,
name: '本校内' name: '本校内'
@ -231,14 +250,15 @@ export default {
methods: { methods: {
getList() { getList() {
const { form } = this const { form } = this
this.$post(this.api[this.apis[this.way]], { this.$post(this.api.contestAfterLogin, {
pageNum: this.page, pageNum: this.page,
pageSize: this.pageSize, pageSize: this.pageSize,
platformSource: 1, // (01) platformSource: 1, // (01)
cityId: form.cityId || null, cityId: form.cityId || null,
provinceId: form.provinceId || null, provinceId: form.provinceId || null,
sequence: form.sequence || null, sequence: form.sequence || null,
competitionScope: this.way === 2 ? form.competitionScope : null, competitionScope: form.competitionScope,
eventType: form.eventType,
keyWord: this.keyword keyWord: this.keyword
}).then(({ data }) => { }).then(({ data }) => {
this.listData = data.records this.listData = data.records
@ -282,7 +302,7 @@ export default {
if (list) { if (list) {
const range = [] const range = []
list.map(e => { list.map(e => {
range.push(e.type ? (e.provinceName || e.cityName) : e.schoolName) range.push(e.type ? (e.provinceName || e.cityName) : e.schoolName) // type 10
}) })
n.ranges = `${n.range}${range.join(',')}` n.ranges = `${n.range}${range.join(',')}`
} else { } else {
@ -326,7 +346,7 @@ export default {
this.initData() this.initData()
}, },
changeType(type) { changeType(type) {
this.way = type; this.form.eventType = type
this.initData() this.initData()
}, },
// //
@ -510,6 +530,9 @@ export default {
&.signed { &.signed {
background-color: #52C41A; background-color: #52C41A;
} }
&.playing {
background-color: #32cf8b;
}
&.finish { &.finish {
background-color: #ccc; background-color: #ccc;

@ -96,7 +96,7 @@
</div> </div>
<div class="right"> <div class="right">
<p class="status" <p class="status"
:class="{wait: item.status == 0 || item.status == 4,signing: item.status == 2,signed: item.status == 1,finish: item.status == 3 || item.status == 5}" :class="{wait: item.status == 0,signing: item.status == 2,signed: item.status == 1,playing: item.status == 4,finish: item.status == 3 || item.status == 5}"
@click.stop="signup(item)">{{ statusList[item.status] }}</p> @click.stop="signup(item)">{{ statusList[item.status] }}</p>
<p class="end-text" v-if="item.status != 5"> <p class="end-text" v-if="item.status != 5">
距离{{ endList[item.status] }}还有 距离{{ endList[item.status] }}还有
@ -161,12 +161,12 @@ export default {
form: { form: {
provinceId: '', provinceId: '',
cityId: '', cityId: '',
sequence: 1, sequence: 2,
competitionScope: '不限', // (0: 1: 2.) competitionScope: 3, // (0: 1: 2.)
}, },
scopes: [ scopes: [
{ {
id: '不限', id: 3,
name: '不限' name: '不限'
}, },
{ {
@ -179,13 +179,13 @@ export default {
} }
], ],
sorts: [ sorts: [
{
id: 1,
name: '近期报名'
},
{ {
id: 2, id: 2,
name: '最近更新' name: '最近更新'
},
{
id: 1,
name: '近期报名'
} }
], ],
sort: 1, sort: 1,
@ -239,7 +239,7 @@ export default {
sequence: form.sequence || null, sequence: form.sequence || null,
keyWord: this.keyword keyWord: this.keyword
} }
this.$post(this.api.contestPageConditionQueryByOccupationlabStu, data).then(({ data }) => { this.$post(this.api.notLoggedInBeforeStudentEvents, data).then(({ data }) => {
const { records } = data const { records } = data
const second = 1000; const second = 1000;
const minute = second * 60; const minute = second * 60;
@ -280,7 +280,7 @@ export default {
if (list) { if (list) {
const range = [] const range = []
list.map(e => { list.map(e => {
range.push(e.type ? (e.provinceName || e.cityName) : e.schoolName) range.push(e.type ? (e.provinceName || e.cityName) : e.schoolName) // type 10
}) })
n.ranges = `${n.range}${range.join(',')}` n.ranges = `${n.range}${range.join(',')}`
} else { } else {
@ -531,6 +531,9 @@ export default {
&.signed { &.signed {
background-color: #52C41A; background-color: #52C41A;
} }
&.playing {
background-color: #32cf8b;
}
&.finish { &.finish {
background-color: #ccc; background-color: #ccc;

Loading…
Cancel
Save