提交 711b92b3 authored 作者: 王鹏飞's avatar 王鹏飞

fix: #3155

上级 161e358a
<script setup lang="ts">
import type { Contest } from '../types'
import dayjs from 'dayjs'
import { contestMode } from '@/utils/dictionary'
interface Props {
data: Contest
}
const props = defineProps<Props>()
const router = useRouter()
const isMy = $computed(() => {
return !!props.data.login_id
})
const modeText = $computed(() => {
return contestMode[props.data.mode]
})
// 是否可以训练
const canTrain = $computed(() => {
return dayjs().isBefore(dayjs(parseInt(props.data.end_range) * 1000))
})
// 是否可以报名
const canJoin = $computed(() => {
return dayjs().isBefore(dayjs(parseInt(props.data.apply_expiration_date) * 1000))
})
// 我要报名
function handleJoin() {
router.push({ path: '/student/contest/join', query: { id: props.data.id, name: props.data.name } })
}
</script>
<template>
......@@ -22,18 +38,20 @@ const modeText = $computed(() => {
<div class="contest-item-main__inner">
<!-- <img :src="data.logo" class="logo" /> -->
<div class="cover">
<ul class="info-list" v-if="isMy">
<li>姓名:{{ data.student_name }}</li>
<li>参赛ID:{{ data.login_id }}</li>
<li>参赛形式:{{ modeText }}</li>
<li>所属学校:{{ data.org_name }}</li>
</ul>
<router-link :to="`/student/contest/lab/${data.id}?name=${data.name}`" v-if="isMy">
<el-button round type="primary">我要训练</el-button>
</router-link>
<router-link :to="{ path: '/student/contest/join', query: { id: data.id, name: data.name } }" v-else>
<el-button round type="primary">我要报名</el-button>
</router-link>
<template v-if="isMy">
<ul class="info-list">
<li>姓名:{{ data.student_name }}</li>
<li>参赛ID:{{ data.login_id }}</li>
<li>参赛形式:{{ modeText }}</li>
<li>所属学校:{{ data.org_name }}</li>
</ul>
<router-link :to="`/student/contest/lab/${data.id}?name=${data.name}`" v-if="canTrain">
<el-button round type="primary">我要训练</el-button>
</router-link>
</template>
<template v-else>
<el-button round :disabled="!canJoin" type="primary" @click="handleJoin">我要报名</el-button>
</template>
</div>
</div>
</div>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论