Merge remote-tracking branch 'origin/dev' into dev
Showing
6 changed files
with
8 additions
and
991 deletions
| ... | @@ -457,7 +457,7 @@ export const constantRoutes = [ | ... | @@ -457,7 +457,7 @@ export const constantRoutes = [ |
| 457 | }, | 457 | }, |
| 458 | { | 458 | { |
| 459 | path: 'list/:id', | 459 | path: 'list/:id', |
| 460 | component: () => import('@/viewsPc/match/detail'), | 460 | component: () => import('@/viewsPc/match/detail_en'), |
| 461 | name: 'matchDetail', | 461 | name: 'matchDetail', |
| 462 | meta: { title: '赛事详情' } | 462 | meta: { title: '赛事详情' } |
| 463 | } | 463 | } | ... | ... |
| ... | @@ -399,7 +399,7 @@ export const constantRoutes = [ | ... | @@ -399,7 +399,7 @@ export const constantRoutes = [ |
| 399 | }, | 399 | }, |
| 400 | { | 400 | { |
| 401 | path: 'list/:id', | 401 | path: 'list/:id', |
| 402 | component: () => import('@/viewsPc/match/detail'), | 402 | component: () => import('@/viewsPc/match/detail_en'), |
| 403 | name: 'matchDetail', | 403 | name: 'matchDetail', |
| 404 | meta: { title: '赛事详情' } | 404 | meta: { title: '赛事详情' } |
| 405 | }, | 405 | }, | ... | ... |
| ... | @@ -61,9 +61,9 @@ | ... | @@ -61,9 +61,9 @@ |
| 61 | </div> | 61 | </div> |
| 62 | </el-dialog> | 62 | </el-dialog> |
| 63 | </div> | 63 | </div> |
| 64 | <!-- <div class="poCode">--> | 64 | <div class="poCode"> |
| 65 | <!-- <el-image :preview-src-list="['/img/code.jpg']" hide-on-click-modal="true" style="width: 120px;height: 120px;" src="/img/code.jpg"/>--> | 65 | <el-image :preview-src-list="['/img/code.jpg']" hide-on-click-modal="true" style="width: 120px;height: 120px;" src="/img/code.jpg"/> |
| 66 | <!-- </div>--> | 66 | </div> |
| 67 | <dialog-master-class ref="masterClassRef"/> | 67 | <dialog-master-class ref="masterClassRef"/> |
| 68 | <pick-up ref="pickupRef"></pick-up> | 68 | <pick-up ref="pickupRef"></pick-up> |
| 69 | <back-number ref="backNumberRef"></back-number> | 69 | <back-number ref="backNumberRef"></back-number> | ... | ... |
src/viewsPc/match/detail.vue
deleted
100644 → 0
| 1 | <template> | ||
| 2 | <!-- 已废弃--> | ||
| 3 | <div class="app-container" v-loading="loading"> | ||
| 4 | <div class="mt30"/> | ||
| 5 | <div v-if="error"> | ||
| 6 | <el-result | ||
| 7 | icon="error" | ||
| 8 | title="未找到赛事" | ||
| 9 | > | ||
| 10 | <template #extra> | ||
| 11 | </template> | ||
| 12 | </el-result> | ||
| 13 | </div> | ||
| 14 | <div class="box mb20 " v-else> | ||
| 15 | <el-card class="mb20"> | ||
| 16 | <el-row :gutter="20"> | ||
| 17 | <el-col :lg="7" :md="matchData.type=='0'?24:12" :xl="matchData.type=='0'?6:6"> | ||
| 18 | <img class="mauto w100" :src="fillImgUrl(matchData.coverUrl)"> | ||
| 19 | </el-col> | ||
| 20 | <el-col style="position: relative" :lg="matchData.type=='0'?9:17" :md="matchData.type=='0'?12:12" :xl="matchData.type=='0'?10:10"> | ||
| 21 | <h3 class="mtitle"> | ||
| 22 | {{ matchData.name }} | ||
| 23 | </h3> | ||
| 24 | <p class="ppl"><label class="bm1">比赛时间:</label>{{ matchData.beginTime?.slice(0, 10) }} 至 | ||
| 25 | {{ matchData.endTime?.slice(0, 10) }}</p> | ||
| 26 | <p class="ppl"><label class="bm2">赛事级别:</label>{{ matchData.level }}</p> | ||
| 27 | <p class="ppl" v-if="matchData.address"><label class="bm3">地    点:</label>{{ matchData.address }}</p> | ||
| 28 | <!-- <p class="ppl" v-if="matchData.signEndTime"><label class="bm4">报名截止:</label>{{ matchData.signEndTime?.slice(0, 10) }}</p>--> | ||
| 29 | |||
| 30 | <p class="ppl" v-if="matchData.type=='1'"> | ||
| 31 | <label> | ||
| 32 | <svg style="position: relative;top: 2px;" t="1711708779620" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7920" width="20" height="20"><path d="M398.652952 165.692952c-32.280381-46.006857-58.172952-61.318095-92.867047-54.808381-14.969905 2.80381-24.210286 7.850667-41.20381 22.528l-12.946285 11.361524-25.185524 20.894476-6.582857 5.753905c-3.705905 3.413333-6.38781 6.217143-9.825524 10.118095-64 72.46019-81.724952 185.782857-44.470857 292.327619 26.794667 76.55619 74.605714 152.624762 142.774857 228.644572 72.289524 80.62781 133.046857 131.364571 202.922666 168.374857 54.857143 29.013333 96.865524 41.74019 145.676191 43.227429 59.001905 1.828571 110.957714-11.50781 153.648762-39.15581a162.133333 162.133333 0 0 0 19.553524-15.189333l8.289523-7.558095 16.335239-15.213715 5.534476-4.924952 10.922666-9.435429c22.040381-19.651048 29.184-31.939048 30.646858-51.370666 2.194286-29.647238-11.215238-52.736-49.737143-85.699048l-26.063238-21.820952-12.117334-10.581334-11.459047-9.825524c-37.229714-30.744381-64.804571-40.69181-100.205715-35.35238-24.283429 3.632762-38.278095 12.141714-63.073523 38.107428l-10.947048 11.654095c-18.041905 19.017143-28.330667 26.258286-43.544381 29.305905-22.25981 4.461714-44.373333-7.046095-80.262095-36.205714-46.250667-37.546667-84.626286-80.676571-117.613715-131.949714-22.869333-35.766857-31.890286-62.902857-24.941714-87.600762 2.82819-9.99619 9.679238-17.042286 24.064-28.184381l14.994286-11.312762 2.413714-1.877334 22.747429-18.553904c20.114286-16.822857 28.281905-28.281905 32.572952-45.836191 8.899048-36.10819 0.487619-66.072381-32.426667-117.638095l-15.62819-24.234667-5.558857-8.533333-6.436572-9.435429z" p-id="7921" fill="#d3d8d9"></path></svg> | ||
| 33 | 联系电话:</label>{{matchData.contactTelno}} | ||
| 34 | </p> | ||
| 35 | <p class="ppl" v-if="matchData.type=='1'"> | ||
| 36 | <label> | ||
| 37 | <svg style="position: relative;top: 2px;" t="1711707785514" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6578" width="18" height="18"> | ||
| 38 | <path d="M780 68H256c-71.6 0-130.2 55.5-130.2 123.2v711.2c1.5 42.8 50 69.3 90.6 50.6l227.2-105c38.5-17.8 83.4-18.5 122.6-1.9l255.4 108.6c34.8 14.8 76.1-2.7 86.3-37.6 1.6-5.4 2.4-11 2.4-16.9v-709C910.2 123.5 851.6 68 780 68zM276.9 231.3h255.9c23.9 0 43.3 18.4 43.3 41s-19.4 41-43.3 41H276.9c-23.9 0-43.3-18.4-43.3-41s19.4-41 43.3-41z m386.8 464H276.9c-23.9 0-43.3-18.4-43.3-41s19.4-41 43.3-41h386.8c23.9 0 43.3 18.4 43.3 41s-19.4 41-43.3 41z m0-191H276.9c-23.9 0-43.3-18.4-43.3-41s19.4-41 43.3-41h386.8c23.9 0 43.3 18.4 43.3 41s-19.4 41-43.3 41z" p-id="6579" fill="#d3d8d9"></path></svg> | ||
| 39 | 分站赛:</label>{{matchData.cpts.length}} | ||
| 40 | </p> | ||
| 41 | <div style="height: 30px"></div> | ||
| 42 | <div class="ppl_pb"> | ||
| 43 | <el-link class="mr20" v-if="matchData.signKnowUrl" type="primary" :href="fillImgUrl(JSON.parse(matchData.signKnowUrl)[0]?.url)" target="_blank"> | ||
| 44 | <el-icon :size="20"> | ||
| 45 | <Download /> | ||
| 46 | </el-icon> | ||
| 47 | <!-- {{ JSON.parse(matchData.signKnowUrl)[0]?.name}}--> | ||
| 48 | 报名须知 | ||
| 49 | </el-link> | ||
| 50 | |||
| 51 | <el-link class="mr20" v-if="matchData.disclaimerUrl" type="primary" :href="fillImgUrl(JSON.parse(matchData.disclaimerUrl)[0]?.url)" target="_blank"> | ||
| 52 | <el-icon :size="20"> | ||
| 53 | <Download /> | ||
| 54 | </el-icon>免责声明 | ||
| 55 | <!-- {{ JSON.parse(matchData.disclaimerUrl)[0]?.name }}--> | ||
| 56 | </el-link> | ||
| 57 | <el-link v-if="matchData.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(matchData.ruleUrl)[0]?.url)" target="_blank"> | ||
| 58 | <el-icon :size="20"> | ||
| 59 | <Download /> | ||
| 60 | </el-icon>赛事规程 | ||
| 61 | <!-- {{ JSON.parse(matchData.ruleUrl)[0]?.name }}--> | ||
| 62 | </el-link> | ||
| 63 | </div> | ||
| 64 | </el-col> | ||
| 65 | <el-col :lg="8" :md="12" :xl="8" v-if="matchData.type=='0'"> | ||
| 66 | <p class="countDownTitle"><span>报名截止倒计时</span></p> | ||
| 67 | <van-count-down :time="startSign>0?startSign:time" format="DD 天 HH 时 mm 分 ss 秒"> | ||
| 68 | <template #default="timeData"> | ||
| 69 | <span class="block">{{ timeData.days }}</span> | ||
| 70 | <span class="colon">天</span> | ||
| 71 | <span class="block">{{ timeData.hours }}</span> | ||
| 72 | <span class="colon">时</span> | ||
| 73 | <span class="block">{{ timeData.minutes }}</span> | ||
| 74 | <span class="colon">分</span> | ||
| 75 | <span class="block">{{ timeData.seconds }}</span> | ||
| 76 | <span class="colon">秒</span> | ||
| 77 | </template> | ||
| 78 | </van-count-down> | ||
| 79 | |||
| 80 | <div class="mt30"> | ||
| 81 | <a class="btn-lineG mb20" v-if="matchData.progressStatusCode=='2'" @click="choseSignType" style="display: block;text-align: center;"> | ||
| 82 | 我要报名 | ||
| 83 | </a> | ||
| 84 | <div v-else-if="time<=0" style="opacity: 0.5;" class="btn-lineG mb20 mauto text-center">报名已结束</div> | ||
| 85 | <div v-else-if="startSign>0" style="opacity: 0.5;" class="btn-lineG mb20 mauto text-center">报名未开始</div> | ||
| 86 | </div> | ||
| 87 | </el-col> | ||
| 88 | </el-row> | ||
| 89 | </el-card> | ||
| 90 | |||
| 91 | <quick-row :match-id="matchId"/> | ||
| 92 | |||
| 93 | <el-row :gutter="20" v-if="matchData.type=='0'"> | ||
| 94 | <el-col :lg="18"> | ||
| 95 | <el-card :body-style="{'padding':'0'}"> | ||
| 96 | <div class="lineHead"> | ||
| 97 | <ul> | ||
| 98 | <li v-for="l in menu" :key="l.name" @click="changeMenu(menu,l)" :class="l.active==1?'active':''"> | ||
| 99 | {{ l.name }} | ||
| 100 | </li> | ||
| 101 | </ul> | ||
| 102 | </div> | ||
| 103 | <matchInfo :form="matchData" v-if="menu[0].active==1"/> | ||
| 104 | <div v-if="menu[1].active==1"> | ||
| 105 | <match-info-project-list :match-id="matchData.id" /> | ||
| 106 | </div> | ||
| 107 | <match-schedule-list :match-data="matchData" v-if="menu[2].active==1"/> | ||
| 108 | <div v-if="menu[3].active==1"> | ||
| 109 | <el-row :gutter="20" v-if="matchData.signType == '0'"> | ||
| 110 | <el-col v-for="t in signDoneGroupList" :key="t.id" :span="8"> | ||
| 111 | <div class="teamItem"> | ||
| 112 | <el-avatar :size="60" :src="fillImgUrl(t.imgUrl||t.avatar)"/> | ||
| 113 | <span class="name">{{ t.name }}</span> | ||
| 114 | </div> | ||
| 115 | </el-col> | ||
| 116 | </el-row> | ||
| 117 | <el-row :gutter="20" v-else> | ||
| 118 | <el-col :span="24" v-for="(t,index) in signDoneGroupList" :key="t.id"> | ||
| 119 | <div class="nowteamItem"> | ||
| 120 | <span>{{ index + 1 }}.</span> | ||
| 121 | <el-avatar :size="80" :src="fillImgUrl(t.imgUrl||t.avatar)" :fit="cover"/> | ||
| 122 | <div class="info"> | ||
| 123 | <h3 class="name">{{ t.name }}</h3> | ||
| 124 | <p v-if="t.extraInfo"> | ||
| 125 | <span v-for="(ee,index) in JSON.parse(t.extraInfo)" :key="index" | ||
| 126 | v-show="(ee?.type == '0'||ee?.type == '4')&&index<2"> | ||
| 127 | {{ ee.value }}   | ||
| 128 | </span> | ||
| 129 | </p> | ||
| 130 | </div> | ||
| 131 | <p class="rr"><span>{{ t.renCi }}</span> 人参赛</p> | ||
| 132 | </div> | ||
| 133 | </el-col> | ||
| 134 | </el-row> | ||
| 135 | <el-empty :image="`/img/order_no.png`" :image-size="228" | ||
| 136 | v-if="(signDoneGroupList==null)||(signDoneGroupList.length==0)" description=""/> | ||
| 137 | </div> | ||
| 138 | <div v-if="menu[4].active==1"> | ||
| 139 | <!-- 成绩--> | ||
| 140 | <el-empty :image="`/img/order_no.png`" :image-size="228"/> | ||
| 141 | </div> | ||
| 142 | <div v-if="menu[5].active==1" class="pd20"> | ||
| 143 | <div class="xzbox"> | ||
| 144 | <div v-html="matchData.signKnow"></div> | ||
| 145 | <div v-if="matchData.signKnowUrl">{{JSON.parse(matchData.signKnowUrl)}} | ||
| 146 | <el-link v-for="(item,index) in JSON.parse(matchData.signKnowUrl)" type="primary" | ||
| 147 | :href="fillImgUrl(item.url)" target="_blank"> | ||
| 148 | <el-icon :size="20"> | ||
| 149 | <Download /> | ||
| 150 | </el-icon> | ||
| 151 | {{ item.name }} | ||
| 152 | </el-link> | ||
| 153 | </div> | ||
| 154 | </div> | ||
| 155 | </div> | ||
| 156 | </el-card> | ||
| 157 | <div style="height: 20px"></div> | ||
| 158 | |||
| 159 | </el-col> | ||
| 160 | <el-col :lg="6"> | ||
| 161 | <match-news :match-id="matchId"/> | ||
| 162 | </el-col> | ||
| 163 | </el-row> | ||
| 164 | |||
| 165 | <el-row v-if="matchData.type=='1'" class="mb20"> | ||
| 166 | <el-col :lg="24"> | ||
| 167 | <el-card :body-style="{'padding':'0'}"> | ||
| 168 | <div class="lineHead"> | ||
| 169 | <ul> | ||
| 170 | <li v-for="l in menu1" :key="l.name" @click="changeMenu(menu1,l)" :class="l.active==1?'active':''"> | ||
| 171 | {{ l.name }} | ||
| 172 | </li> | ||
| 173 | </ul> | ||
| 174 | </div> | ||
| 175 | <!-- 分站赛--> | ||
| 176 | <substation-list v-if="menu1[0].active==1" :list="matchData.cpts"/> | ||
| 177 | <matchInfo :form="matchData" v-if="menu1[1].active==1"/> | ||
| 178 | <match-schedule-list :match-data="matchData" v-if="menu1[2].active==1"/> | ||
| 179 | </el-card> | ||
| 180 | </el-col> | ||
| 181 | </el-row> | ||
| 182 | </div> | ||
| 183 | |||
| 184 | </div> | ||
| 185 | </template> | ||
| 186 | |||
| 187 | <script setup> | ||
| 188 | import MatchInfo from '@/viewsPc/match/components/matchInfo' | ||
| 189 | import MatchScheduleList from "@/viewsPc/match/components/matchScheduleList"; | ||
| 190 | import MatchNews from "@/viewsPc/match/components/matchNews"; | ||
| 191 | import SubstationList from "@/viewsPc/match/components/substation-list"; | ||
| 192 | import MatchInfoProjectList from "@/viewsPc/match/components/matchInfo-projectList"; | ||
| 193 | import QuickRow from "@/viewsPc/match/components/quick-row"; | ||
| 194 | |||
| 195 | import {getCurrentInstance, ref} from 'vue' | ||
| 196 | import {reactive, onMounted} from '@vue/runtime-core' | ||
| 197 | import {useRoute, useRouter} from 'vue-router' | ||
| 198 | |||
| 199 | const route = useRoute() | ||
| 200 | const router = useRouter() | ||
| 201 | const {proxy} = getCurrentInstance() | ||
| 202 | import * as match from '@/apiPc/match' | ||
| 203 | import {toRefs} from '@vueuse/shared' | ||
| 204 | import {dayjs, ElMessage, ElMessageBox} from 'element-plus' | ||
| 205 | import useUserStore from "@/store/modules/user"; | ||
| 206 | import {isRelogin} from "@/utils/request"; | ||
| 207 | |||
| 208 | const data = reactive({ | ||
| 209 | loading:false, | ||
| 210 | error:false, | ||
| 211 | matchData: {}, | ||
| 212 | matchId: '0', | ||
| 213 | groupId: '', | ||
| 214 | activeName2: 'first', | ||
| 215 | popupGroupList: false, | ||
| 216 | menu: [{name: '赛事详情', active: 1}, {name: '赛事设项', active: 0}, {name: '日程', active: 0}, { | ||
| 217 | name: '参赛队', | ||
| 218 | active: 0 | ||
| 219 | }, {name: '成绩', active: 0}, {name: '报名须知', active: 0}], | ||
| 220 | menu1: [{name: '分站赛', active: 1}, {name: '赛事详情', active: 0}, {name: '日程', active: 0}], | ||
| 221 | signDoneGroupList: [], | ||
| 222 | time: '', | ||
| 223 | time2: '', | ||
| 224 | startSign: '' | ||
| 225 | }) | ||
| 226 | const {loading,error,time,time2,startSign, matchData, matchId, groupId, activeName2, popupGroupList, menu, menu1, signDoneGroupList} = toRefs(data) | ||
| 227 | const group = useUserStore().group | ||
| 228 | const user = useUserStore().user | ||
| 229 | onMounted(() => { | ||
| 230 | if (group) { | ||
| 231 | groupId.value = group.id | ||
| 232 | } else { | ||
| 233 | groupId.value = 0 | ||
| 234 | } | ||
| 235 | match.getMaList({topFlag:1,status:1}).then((res) => { | ||
| 236 | if (route.params.id != 0) { | ||
| 237 | matchId.value = route.params.id | ||
| 238 | } else { | ||
| 239 | matchId.value = res.rows[0].id | ||
| 240 | } | ||
| 241 | getMatch(matchId.value) | ||
| 242 | getGroupListByCptId(matchId.value) | ||
| 243 | }) | ||
| 244 | |||
| 245 | }) | ||
| 246 | |||
| 247 | function building() { | ||
| 248 | ElMessage.warning('暂未开发,敬请期待!') | ||
| 249 | } | ||
| 250 | |||
| 251 | function getMatch(id) { | ||
| 252 | loading.value = true | ||
| 253 | match.getMatchById({id: id}).then(res => { | ||
| 254 | matchData.value = res.data | ||
| 255 | loading.value = false | ||
| 256 | var today = dayjs().format('YYYY-MM-DD HH:mm:ss') | ||
| 257 | time.value = dayjs(res.data.signEndTime).diff(today, 'millisecond') | ||
| 258 | startSign.value = dayjs(res.data.signBeginTime).diff(today, 'millisecond') | ||
| 259 | }).catch(res=>{ | ||
| 260 | error.value = true | ||
| 261 | loading.value = false | ||
| 262 | }) | ||
| 263 | } | ||
| 264 | |||
| 265 | function getGroupListByCptId(id) { | ||
| 266 | match.getGroupListByCptId(id).then(res => { | ||
| 267 | signDoneGroupList.value = res.data | ||
| 268 | }) | ||
| 269 | } | ||
| 270 | |||
| 271 | function changeMenu(menu, l) { | ||
| 272 | for (const n of menu) { | ||
| 273 | if (n == l) { | ||
| 274 | n.active = 1 | ||
| 275 | } else { | ||
| 276 | n.active = 0 | ||
| 277 | } | ||
| 278 | } | ||
| 279 | } | ||
| 280 | function goLogin() { | ||
| 281 | useUserStore().setReLogin() | ||
| 282 | } | ||
| 283 | function choseSignType() { | ||
| 284 | console.log(matchData.value.signType,user) | ||
| 285 | if (!user) { | ||
| 286 | goLogin() | ||
| 287 | } else { | ||
| 288 | checkIsSign().then(() => { | ||
| 289 | switch (matchData.value.signType) { | ||
| 290 | case '0': | ||
| 291 | if (user.utype == '1') { | ||
| 292 | goPersonalSign() | ||
| 293 | } else { | ||
| 294 | ElMessageBox.confirm( | ||
| 295 | '当前活动是个人活动,无法报名', | ||
| 296 | '提示', | ||
| 297 | { | ||
| 298 | confirmButtonText: '好的', | ||
| 299 | cancelButtonText: '取消', | ||
| 300 | type: 'warning', | ||
| 301 | } | ||
| 302 | ) | ||
| 303 | } | ||
| 304 | break | ||
| 305 | case '1': | ||
| 306 | if (user.utype == '1') { | ||
| 307 | ElMessageBox.confirm( | ||
| 308 | '当前活动是团队活动,无法报名', | ||
| 309 | '提示', | ||
| 310 | { | ||
| 311 | confirmButtonText: '好的', | ||
| 312 | cancelButtonText: '取消', | ||
| 313 | type: 'warning', | ||
| 314 | } | ||
| 315 | ) | ||
| 316 | } else { | ||
| 317 | goTeamSign() | ||
| 318 | } | ||
| 319 | break | ||
| 320 | case '2': | ||
| 321 | if (user.utype == '1') { | ||
| 322 | goPersonalSign() | ||
| 323 | } else { | ||
| 324 | goTeamSign() | ||
| 325 | } | ||
| 326 | break | ||
| 327 | } | ||
| 328 | }) | ||
| 329 | } | ||
| 330 | } | ||
| 331 | function goTeamSign() { | ||
| 332 | const routeData = router.resolve({ | ||
| 333 | path: `${matchId.value}/teamSign`, | ||
| 334 | query: { | ||
| 335 | matchId: matchId.value, | ||
| 336 | groupId: groupId.value, | ||
| 337 | signType: matchData.value.signType | ||
| 338 | } | ||
| 339 | }) | ||
| 340 | window.open(routeData.href, '_blank') | ||
| 341 | } | ||
| 342 | function goPersonalSign() { | ||
| 343 | // 选项目 | ||
| 344 | const routeData = router.resolve({ | ||
| 345 | name: `chooseProject`, | ||
| 346 | query: { | ||
| 347 | matchId: matchId.value | ||
| 348 | } | ||
| 349 | }) | ||
| 350 | window.open(routeData.href, '_blank') | ||
| 351 | } | ||
| 352 | // 获取已报信息 | ||
| 353 | function checkIsSign() { | ||
| 354 | var obj = { | ||
| 355 | cptId: matchId.value, | ||
| 356 | groupId: groupId.value || 0 | ||
| 357 | } | ||
| 358 | return match.getMySignInfo(obj).then(res => { | ||
| 359 | if (res.data.type == '1') { | ||
| 360 | ElMessageBox.confirm( | ||
| 361 | '已报名,不能重复报名,是否前往个人中心查看', | ||
| 362 | '提示', | ||
| 363 | { | ||
| 364 | confirmButtonText: '确定', | ||
| 365 | cancelButtonText: '取消', | ||
| 366 | type: 'warning', | ||
| 367 | } | ||
| 368 | ).then(() => { | ||
| 369 | router.push({name: 'myMatch'}) | ||
| 370 | }) | ||
| 371 | |||
| 372 | return Promise.reject('rejected message') | ||
| 373 | } | ||
| 374 | if (res.data.type == '2') { | ||
| 375 | ElMessageBox.confirm( | ||
| 376 | '报名审批拒绝,是否重新报名', | ||
| 377 | '提示', | ||
| 378 | { | ||
| 379 | confirmButtonText: '确定', | ||
| 380 | cancelButtonText: '取消', | ||
| 381 | type: 'warning', | ||
| 382 | } | ||
| 383 | ).then(() => { | ||
| 384 | match.recoverMySignFromCancel(matchId.value).then((res)=>{ | ||
| 385 | switch (matchData.value.signType) { | ||
| 386 | case '0': | ||
| 387 | if (user.utype == '1') { | ||
| 388 | goPersonalSign() | ||
| 389 | } else { | ||
| 390 | ElMessageBox.confirm( | ||
| 391 | '当前活动是个人活动,无法报名', | ||
| 392 | '提示', | ||
| 393 | { | ||
| 394 | confirmButtonText: '好的', | ||
| 395 | cancelButtonText: '取消', | ||
| 396 | type: 'warning', | ||
| 397 | } | ||
| 398 | ) | ||
| 399 | } | ||
| 400 | break | ||
| 401 | case '1': | ||
| 402 | if (user.utype == '1') { | ||
| 403 | ElMessageBox.confirm( | ||
| 404 | '当前活动是团队活动,无法报名', | ||
| 405 | '提示', | ||
| 406 | { | ||
| 407 | confirmButtonText: '好的', | ||
| 408 | cancelButtonText: '取消', | ||
| 409 | type: 'warning', | ||
| 410 | } | ||
| 411 | ) | ||
| 412 | } else { | ||
| 413 | goTeamSign() | ||
| 414 | } | ||
| 415 | break | ||
| 416 | case '2': | ||
| 417 | if (user.utype == '1') { | ||
| 418 | goPersonalSign() | ||
| 419 | } else { | ||
| 420 | goTeamSign() | ||
| 421 | } | ||
| 422 | break | ||
| 423 | } | ||
| 424 | }) | ||
| 425 | }) | ||
| 426 | return Promise.reject('rejected message') | ||
| 427 | } | ||
| 428 | }) | ||
| 429 | } | ||
| 430 | </script> | ||
| 431 | |||
| 432 | <style scoped lang="scss"> | ||
| 433 | .app-container{min-height: 80vh;} | ||
| 434 | .mtitle{margin:5px 0 0;line-height: 1.4;} | ||
| 435 | .indexTitle { | ||
| 436 | margin: 20px 0 12px; | ||
| 437 | |||
| 438 | h3 { | ||
| 439 | font-size: 20px; | ||
| 440 | color: var(--el-color-primary); | ||
| 441 | } | ||
| 442 | } | ||
| 443 | |||
| 444 | |||
| 445 | .ppl { | ||
| 446 | color: #29343C;margin: 10px 0 0; | ||
| 447 | |||
| 448 | label { | ||
| 449 | color: #929AA0; | ||
| 450 | } | ||
| 451 | } | ||
| 452 | |||
| 453 | .bm1 { | ||
| 454 | background: url("@/assets/dance/bm1.png") no-repeat left; | ||
| 455 | background-size: contain; | ||
| 456 | padding-left: 24px; | ||
| 457 | } | ||
| 458 | |||
| 459 | .bm2 { | ||
| 460 | background: url("@/assets/dance/bm2.png") no-repeat left; | ||
| 461 | background-size: contain; | ||
| 462 | padding-left: 24px; | ||
| 463 | } | ||
| 464 | |||
| 465 | .bm3 { | ||
| 466 | background: url("@/assets/dance/bm3.png") no-repeat left; | ||
| 467 | background-size: contain; | ||
| 468 | padding-left: 24px; | ||
| 469 | } | ||
| 470 | |||
| 471 | .bm4 { | ||
| 472 | background: url("@/assets/dance/bm4.png") no-repeat left; | ||
| 473 | background-size: contain; | ||
| 474 | padding-left: 24px; | ||
| 475 | } | ||
| 476 | |||
| 477 | .app-container { | ||
| 478 | padding: 0; | ||
| 479 | background: #F5F7F9; | ||
| 480 | } | ||
| 481 | |||
| 482 | .countDownTitle { | ||
| 483 | text-align: center; | ||
| 484 | color: #525F6B; | ||
| 485 | position: relative; | ||
| 486 | width: 100%; | ||
| 487 | left: 0; | ||
| 488 | font-size: 14px; | ||
| 489 | } | ||
| 490 | |||
| 491 | .countDownTitle span { | ||
| 492 | background: #fff; | ||
| 493 | padding: 0 10px; | ||
| 494 | position: relative; | ||
| 495 | z-index: 1; | ||
| 496 | } | ||
| 497 | |||
| 498 | .countDownTitle::after { | ||
| 499 | position: absolute; | ||
| 500 | background: #ccc; | ||
| 501 | height: 1px; | ||
| 502 | content: ''; | ||
| 503 | top: 0; | ||
| 504 | bottom: 0; | ||
| 505 | margin: auto; | ||
| 506 | width: 100%; | ||
| 507 | left: 0; | ||
| 508 | } | ||
| 509 | |||
| 510 | .typeTag { | ||
| 511 | border-radius: 10px 10px 10px 0px; | ||
| 512 | padding: 2px 12px; | ||
| 513 | background: #FF8124; | ||
| 514 | font-size: 14px; | ||
| 515 | color: #fff; | ||
| 516 | } | ||
| 517 | |||
| 518 | .matchItem { | ||
| 519 | cursor: pointer; | ||
| 520 | margin-bottom: 40px; | ||
| 521 | height: 180px; | ||
| 522 | background: #FFFFFF; | ||
| 523 | position: relative; | ||
| 524 | border-radius: 10px; | ||
| 525 | |||
| 526 | .el-avatar { | ||
| 527 | position: absolute; | ||
| 528 | left: 20px; | ||
| 529 | top: 30px; | ||
| 530 | |||
| 531 | img { | ||
| 532 | background: #fff; | ||
| 533 | } | ||
| 534 | } | ||
| 535 | |||
| 536 | .info { | ||
| 537 | padding: 12px 0 0 140px; | ||
| 538 | |||
| 539 | p { | ||
| 540 | font-size: 14px; | ||
| 541 | } | ||
| 542 | } | ||
| 543 | |||
| 544 | .typeTag { | ||
| 545 | position: absolute; | ||
| 546 | right: 0; | ||
| 547 | top: 0; | ||
| 548 | } | ||
| 549 | |||
| 550 | h3 { | ||
| 551 | font-weight: 500; | ||
| 552 | font-size: 18px; | ||
| 553 | color: #000000; | ||
| 554 | text-overflow: ellipsis; | ||
| 555 | } | ||
| 556 | |||
| 557 | &:hover h3 { | ||
| 558 | font-weight: bold; | ||
| 559 | } | ||
| 560 | } | ||
| 561 | |||
| 562 | .el-pagination { | ||
| 563 | justify-content: center; | ||
| 564 | --el-pagination-bg-color: none; | ||
| 565 | } | ||
| 566 | |||
| 567 | .kind { | ||
| 568 | background: #fff; | ||
| 569 | margin: 0 0 30px; | ||
| 570 | |||
| 571 | ul { | ||
| 572 | list-style: none; | ||
| 573 | padding: 30px 0 10px; | ||
| 574 | |||
| 575 | li { | ||
| 576 | margin: 0 0 20px; | ||
| 577 | display: flex; | ||
| 578 | align-items: center; | ||
| 579 | } | ||
| 580 | } | ||
| 581 | } | ||
| 582 | |||
| 583 | .listTitle { | ||
| 584 | display: flex; | ||
| 585 | justify-content: space-between; | ||
| 586 | align-items: center; | ||
| 587 | } | ||
| 588 | |||
| 589 | .match-tabs { | ||
| 590 | background: #fff; | ||
| 591 | padding: 10px 20px 20px; | ||
| 592 | } | ||
| 593 | |||
| 594 | .teamItem { | ||
| 595 | height: 80px; | ||
| 596 | background: #FBFCFD; | ||
| 597 | border-radius: 10px; | ||
| 598 | margin: 10px 0; | ||
| 599 | display: flex; | ||
| 600 | align-items: center; | ||
| 601 | padding: 0 20px; | ||
| 602 | overflow: hidden; | ||
| 603 | text-overflow: ellipsis; | ||
| 604 | |||
| 605 | .el-avatar { | ||
| 606 | border: 1px solid #EEEEEE; | ||
| 607 | } | ||
| 608 | |||
| 609 | .name { | ||
| 610 | margin-left: 15px; | ||
| 611 | flex: 1; | ||
| 612 | font-size: 14px; | ||
| 613 | } | ||
| 614 | } | ||
| 615 | |||
| 616 | .grid-top { | ||
| 617 | background: #fff; | ||
| 618 | min-height: 300px; | ||
| 619 | padding: 28px 28px 10px; | ||
| 620 | border-radius: 10px; | ||
| 621 | margin: 30px auto; | ||
| 622 | position: relative; | ||
| 623 | |||
| 624 | .cover { | ||
| 625 | width: 420px; | ||
| 626 | height: 250px; | ||
| 627 | position: absolute; | ||
| 628 | border-radius: 10px; | ||
| 629 | background: #fff; | ||
| 630 | object-fit: cover; | ||
| 631 | } | ||
| 632 | |||
| 633 | .info { | ||
| 634 | padding-left: 440px; | ||
| 635 | |||
| 636 | h3 { | ||
| 637 | font-weight: 500; | ||
| 638 | color: #000000; | ||
| 639 | margin: 0 0 10px; | ||
| 640 | font-size: 24px; | ||
| 641 | |||
| 642 | img { | ||
| 643 | margin-right: 10px | ||
| 644 | } | ||
| 645 | |||
| 646 | .typeTag { | ||
| 647 | border-radius: 13px 13px 13px 0; | ||
| 648 | margin-left: 10px; | ||
| 649 | } | ||
| 650 | } | ||
| 651 | |||
| 652 | p { | ||
| 653 | color: #7B7F83; | ||
| 654 | font-size: 16px; | ||
| 655 | } | ||
| 656 | |||
| 657 | .countDownTitle { | ||
| 658 | font-size: 14px; | ||
| 659 | } | ||
| 660 | |||
| 661 | .el-button.el-button--primary { | ||
| 662 | background: #CA171D; | ||
| 663 | border: none; | ||
| 664 | } | ||
| 665 | } | ||
| 666 | } | ||
| 667 | |||
| 668 | .gg { | ||
| 669 | margin: 0 0 28px; | ||
| 670 | |||
| 671 | h3 { | ||
| 672 | border-left: 2px solid #BA2E29; | ||
| 673 | padding: 0 0 0 12px; | ||
| 674 | margin: 20px 0 8px; | ||
| 675 | font-weight: 500; | ||
| 676 | font-size: 16px; | ||
| 677 | } | ||
| 678 | |||
| 679 | p { | ||
| 680 | font-size: 16px; | ||
| 681 | color: #000; | ||
| 682 | margin: 0 0 8px; | ||
| 683 | line-height: 24px; | ||
| 684 | |||
| 685 | label { | ||
| 686 | color: #7D8790; | ||
| 687 | } | ||
| 688 | } | ||
| 689 | |||
| 690 | .pp { | ||
| 691 | border: 1px solid rgba(186, 46, 41, 0.3); | ||
| 692 | padding: 20px; | ||
| 693 | } | ||
| 694 | } | ||
| 695 | |||
| 696 | .van-count-down { | ||
| 697 | text-align: center; | ||
| 698 | margin: 20px 0; | ||
| 699 | } | ||
| 700 | |||
| 701 | .colon { | ||
| 702 | display: inline-block; | ||
| 703 | font-size: 16px; | ||
| 704 | margin: 0 8px; | ||
| 705 | color: #7B7F83; | ||
| 706 | } | ||
| 707 | |||
| 708 | .block { | ||
| 709 | display: inline-block; | ||
| 710 | width: 52px; | ||
| 711 | color: #fff; | ||
| 712 | font-size: 26px; | ||
| 713 | font-weight: bold; | ||
| 714 | border-radius: 10px; | ||
| 715 | background: url(@/assets/img/djs_bg.png) left; | ||
| 716 | background-size: 100% 100%; | ||
| 717 | line-height: 50px; | ||
| 718 | text-align: center; | ||
| 719 | } | ||
| 720 | |||
| 721 | |||
| 722 | .time-address { | ||
| 723 | font-size: 15px; | ||
| 724 | margin: 10px 0 0; | ||
| 725 | color: #999; | ||
| 726 | } | ||
| 727 | |||
| 728 | .popList .teamItem { | ||
| 729 | cursor: pointer; | ||
| 730 | } | ||
| 731 | |||
| 732 | .popList .teamItem:hover { | ||
| 733 | background: #e7e7e7; | ||
| 734 | } | ||
| 735 | |||
| 736 | .richContent { | ||
| 737 | overflow: hidden; | ||
| 738 | } | ||
| 739 | |||
| 740 | .richContent img { | ||
| 741 | max-width: 100%; | ||
| 742 | } | ||
| 743 | |||
| 744 | .red-center { | ||
| 745 | font-size: 24px; | ||
| 746 | text-align: center; | ||
| 747 | font-family: DIN Alternate; | ||
| 748 | padding: 30px 0; | ||
| 749 | font-weight: bold; | ||
| 750 | color: #E60012; | ||
| 751 | } | ||
| 752 | |||
| 753 | .plist { | ||
| 754 | dt { | ||
| 755 | font-size: 14px; | ||
| 756 | } | ||
| 757 | |||
| 758 | dd { | ||
| 759 | display: inline-block; | ||
| 760 | margin: 0 15px 0 0; | ||
| 761 | } | ||
| 762 | |||
| 763 | dd.t { | ||
| 764 | display: block; | ||
| 765 | margin: 15px 0 6px; | ||
| 766 | border-left: 3px solid #1ec886; | ||
| 767 | line-height: 1; | ||
| 768 | padding: 6px; | ||
| 769 | background: #f5f5f5; | ||
| 770 | } | ||
| 771 | |||
| 772 | li { | ||
| 773 | line-height: 40px; | ||
| 774 | display: flex; | ||
| 775 | justify-content: space-between; | ||
| 776 | padding: 0 20px; | ||
| 777 | align-items: center; | ||
| 778 | cursor: pointer; | ||
| 779 | } | ||
| 780 | |||
| 781 | li:hover { | ||
| 782 | background: #eee; | ||
| 783 | } | ||
| 784 | } | ||
| 785 | |||
| 786 | .pp .el-link { | ||
| 787 | margin-right: 15px; | ||
| 788 | font-size: 16px; | ||
| 789 | } | ||
| 790 | |||
| 791 | :deep(.el-collapse-item__header) { | ||
| 792 | font-weight: 500; | ||
| 793 | font-size: 16px; | ||
| 794 | } | ||
| 795 | |||
| 796 | .pobtns { | ||
| 797 | position: absolute; | ||
| 798 | right: 20px; | ||
| 799 | bottom: 20px; | ||
| 800 | } | ||
| 801 | |||
| 802 | :deep(.el-tabs__item) { | ||
| 803 | font-size: 16px; | ||
| 804 | } | ||
| 805 | |||
| 806 | .signButton { | ||
| 807 | margin: 0 0 20px; | ||
| 808 | |||
| 809 | button { | ||
| 810 | width: 90%; | ||
| 811 | background: var(--el-color-primary); | ||
| 812 | font-size: 20px; | ||
| 813 | margin: 30px auto 0; | ||
| 814 | display: block; | ||
| 815 | height: 50px; | ||
| 816 | } | ||
| 817 | } | ||
| 818 | |||
| 819 | .el-timeline-item__timestamp.is-top { | ||
| 820 | font-size: 16px; | ||
| 821 | } | ||
| 822 | |||
| 823 | .el-timeline-item__content { | ||
| 824 | font-size: 16px; | ||
| 825 | margin: 10px 0 0; | ||
| 826 | } | ||
| 827 | |||
| 828 | .typeTag.blue { | ||
| 829 | background: #00a0e9; | ||
| 830 | } | ||
| 831 | |||
| 832 | .typeTag.green { | ||
| 833 | background: #34cf96; | ||
| 834 | } | ||
| 835 | |||
| 836 | :deep(.el-tabs__nav-wrap::after) { | ||
| 837 | height: 1px; | ||
| 838 | } | ||
| 839 | |||
| 840 | .table { | ||
| 841 | width: 100%; | ||
| 842 | border-left: 1px solid #e1e1e1; | ||
| 843 | border-top: 1px solid #e1e1e1; | ||
| 844 | |||
| 845 | th { | ||
| 846 | background: #eee; | ||
| 847 | padding: 6px 10px; | ||
| 848 | border-right: 1px solid #e1e1e1; | ||
| 849 | border-bottom: 1px solid #e1e1e1; | ||
| 850 | font-size: 15px; | ||
| 851 | } | ||
| 852 | |||
| 853 | td { | ||
| 854 | padding: 6px 10px; | ||
| 855 | border-right: 1px solid #e1e1e1; | ||
| 856 | font-size: 15px; | ||
| 857 | border-bottom: 1px solid #e1e1e1; | ||
| 858 | vertical-align: middle; | ||
| 859 | text-align: center; | ||
| 860 | |||
| 861 | span { | ||
| 862 | margin-right: 10px | ||
| 863 | } | ||
| 864 | |||
| 865 | span::after { | ||
| 866 | content: ',' | ||
| 867 | } | ||
| 868 | |||
| 869 | span:last-child::after { | ||
| 870 | content: '' | ||
| 871 | } | ||
| 872 | } | ||
| 873 | } | ||
| 874 | |||
| 875 | .flexLine { | ||
| 876 | display: flex; | ||
| 877 | |||
| 878 | label { | ||
| 879 | font-weight: normal | ||
| 880 | } | ||
| 881 | } | ||
| 882 | |||
| 883 | .nowteamItem { | ||
| 884 | height: 100px; | ||
| 885 | background: #FBFCFD; | ||
| 886 | border-radius: 10px; | ||
| 887 | margin: 20px 0; | ||
| 888 | display: flex; | ||
| 889 | align-items: center; | ||
| 890 | padding: 0 20px; | ||
| 891 | overflow: hidden; | ||
| 892 | text-overflow: ellipsis; | ||
| 893 | |||
| 894 | .el-avatar { | ||
| 895 | margin: 0 20px | ||
| 896 | } | ||
| 897 | |||
| 898 | .info { | ||
| 899 | h3 { | ||
| 900 | margin: 0 0 15px; | ||
| 901 | } | ||
| 902 | |||
| 903 | p { | ||
| 904 | margin: 0; | ||
| 905 | color: #1ab394 | ||
| 906 | } | ||
| 907 | } | ||
| 908 | |||
| 909 | .rr { | ||
| 910 | text-align: right; | ||
| 911 | flex: 1; | ||
| 912 | |||
| 913 | span { | ||
| 914 | color: #1ab394 | ||
| 915 | } | ||
| 916 | } | ||
| 917 | } | ||
| 918 | |||
| 919 | .collapsebox { | ||
| 920 | .el-collapse-item { | ||
| 921 | margin-bottom: 15px; | ||
| 922 | --el-collapse-content-bg-color: #F4F9FE; | ||
| 923 | border: 2px solid #DDECFB; | ||
| 924 | |||
| 925 | .table { | ||
| 926 | background: #fff; | ||
| 927 | } | ||
| 928 | } | ||
| 929 | |||
| 930 | .is-active { | ||
| 931 | --el-collapse-header-bg-color: #F4F9FE | ||
| 932 | } | ||
| 933 | |||
| 934 | :deep(.el-collapse-item__header) { | ||
| 935 | padding: 0 20px; | ||
| 936 | } | ||
| 937 | } | ||
| 938 | |||
| 939 | .funcBtns { | ||
| 940 | display: flex; | ||
| 941 | justify-content: space-around; | ||
| 942 | |||
| 943 | div { | ||
| 944 | text-align: center; | ||
| 945 | background: #F7FAFF; | ||
| 946 | box-shadow: 0 0 10px #d4cae4; | ||
| 947 | border-radius: 15px; | ||
| 948 | padding: 0px 10px 5px; | ||
| 949 | |||
| 950 | img { | ||
| 951 | } | ||
| 952 | |||
| 953 | h4 { | ||
| 954 | margin: 0; | ||
| 955 | font-size: 16px; | ||
| 956 | } | ||
| 957 | } | ||
| 958 | } | ||
| 959 | |||
| 960 | .table { | ||
| 961 | white-space: nowrap | ||
| 962 | } | ||
| 963 | .ppl_pb{position: absolute;bottom:0;} | ||
| 964 | @media (max-width: 1650px){ | ||
| 965 | .ppl { | ||
| 966 | color: #29343C;margin: 5px 0 0; | ||
| 967 | } | ||
| 968 | } | ||
| 969 | @media (max-width: 800px) { | ||
| 970 | .van-count-down { | ||
| 971 | .block { | ||
| 972 | margin: 0 10px; | ||
| 973 | } | ||
| 974 | } | ||
| 975 | .colon { | ||
| 976 | display: none; | ||
| 977 | } | ||
| 978 | .funcBtns { | ||
| 979 | div { | ||
| 980 | padding: 0 0 10px; | ||
| 981 | margin: 0 5px; | ||
| 982 | |||
| 983 | } | ||
| 984 | } | ||
| 985 | } | ||
| 986 | </style> |
-
Please register or sign in to post a comment