Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
saas-lab
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
saas-lab
Commits
d348409b
提交
d348409b
authored
10月 18, 2022
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chore: 优化我的大赛页面
上级
012fcd55
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
20 行增加
和
3 行删除
+20
-3
ContestItem.vue
src/modules/student/contest/components/ContestItem.vue
+20
-3
没有找到文件。
src/modules/student/contest/components/ContestItem.vue
浏览文件 @
d348409b
...
...
@@ -3,6 +3,8 @@ import type { Contest } from '../types'
import
dayjs
from
'dayjs'
import
{
contestMode
}
from
'@/utils/dictionary'
import
{
updateTrainCount
}
from
'../api'
import
{
useMapStore
}
from
'@/stores/map'
interface
Props
{
data
:
Contest
}
...
...
@@ -15,6 +17,11 @@ const modeText = $computed(() => {
return
contestMode
[
props
.
data
.
mode
]
})
const
types
=
useMapStore
().
getMapValuesByKey
(
'competition_type'
)
// 赛项类型
const
typeText
=
$computed
(()
=>
{
return
types
.
find
(
item
=>
item
.
value
==
props
.
data
.
type
)?.
label
})
// 是否可以训练
const
canTrain
=
$computed
(()
=>
{
return
dayjs
().
isBefore
(
dayjs
(
parseInt
(
props
.
data
.
end_at
)
*
1000
))
...
...
@@ -33,6 +40,9 @@ const canJoin = $computed(() => {
function
handleJoin
()
{
router
.
push
({
path
:
'/student/contest/join'
,
query
:
{
id
:
props
.
data
.
id
,
name
:
props
.
data
.
name
}
})
}
function
formatDate
(
value
:
string
)
{
return
dayjs
(
parseInt
(
value
)
*
1000
).
format
(
'YYYY-MM-DD'
)
}
</
script
>
<
template
>
...
...
@@ -46,12 +56,19 @@ function handleJoin() {
<ul
class=
"info-list"
>
<li>
姓名:
{{
data
.
student_name
}}
</li>
<li>
参赛ID:
{{
data
.
login_id
}}
</li>
<li>
参赛形式:
{{
modeText
}}
</li>
<li>
所属学校:
{{
data
.
org_name
}}
</li>
<li>
赛项类型:
{{
typeText
}}
</li>
<li>
赛项周期:
{{
formatDate
(
data
.
start_range
)
}}
至
{{
formatDate
(
data
.
end_range
)
}}
</li>
<li>
正式比赛日期:
{{
formatDate
(
data
.
start_at
)
}}
</li>
</ul>
<el-button
round
type=
"primary"
@
click=
"handleTrain"
v-if=
"canTrain"
>
我要训练
</el-button>
</
template
>
<
template
v-else
>
<ul
class=
"info-list"
>
<li>
主办单位:
{{
data
.
host_unit
.
label
}}
</li>
<li>
赛项类型:
{{
typeText
}}
</li>
<li>
赛项周期:
{{
formatDate
(
data
.
start_range
)
}}
至
{{
formatDate
(
data
.
end_range
)
}}
</li>
<li>
正式比赛日期:
{{
formatDate
(
data
.
start_at
)
}}
</li>
</ul>
<el-button
round
:disabled=
"!canJoin"
type=
"primary"
@
click=
"handleJoin"
>
我要报名
</el-button>
</
template
>
</div>
...
...
@@ -64,7 +81,7 @@ function handleJoin() {
<
style
lang=
"scss"
>
.contest-item-main
{
position
:
relative
;
height
:
2
0
0px
;
height
:
2
4
0px
;
border-radius
:
10px
;
overflow
:
hidden
;
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论