Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
saas-lab
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
saas-lab
Commits
e1517380
提交
e1517380
authored
10月 17, 2024
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chore: 新增查看报告
上级
4b807f09
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
73 行增加
和
6 行删除
+73
-6
ReportDialog.vue
src/modules/admin/contest/check/components/ReportDialog.vue
+36
-0
Index.vue
src/modules/admin/contest/check/views/Index.vue
+37
-6
没有找到文件。
src/modules/admin/contest/check/components/ReportDialog.vue
0 → 100644
浏览文件 @
e1517380
<
script
setup
lang=
"ts"
>
import
type
{
RecordItem
,
ReportItem
}
from
'../types'
import
{
getReportList
}
from
'../api'
interface
Props
{
data
:
RecordItem
}
const
props
=
defineProps
<
Props
>
()
const
reportList
=
ref
<
ReportItem
[]
>
([])
async
function
fetchReport
()
{
const
res
=
await
getReportList
({
competition_id
:
props
.
data
.
competition_id
,
student_id
:
props
.
data
.
student_id
})
reportList
.
value
=
res
.
data
.
items
}
onMounted
(()
=>
{
fetchReport
()
})
</
script
>
<
template
>
<el-dialog
title=
"查看报告"
width=
"500px"
>
<ul>
<li
v-for=
"item in reportList"
:key=
"item.id"
style=
"line-height: 24px"
>
<a
:href=
"`https://view.officeapps.live.com/op/view.aspx?src=$
{item.url}`" target="_blank">
{{
item
.
name
}}
<el-button
size=
"small"
type=
"primary"
style=
"margin-left: 10px"
>
查看
</el-button>
</a>
</li>
</ul>
<template
#
footer
>
<el-row
justify=
"center"
>
<el-button
round
auto-insert-space
@
click=
"$emit('update:modelValue', false)"
>
关闭
</el-button>
</el-row>
</
template
>
</el-dialog>
</template>
src/modules/admin/contest/check/views/Index.vue
浏览文件 @
e1517380
...
...
@@ -8,6 +8,7 @@ const SyncExamDialog = defineAsyncComponent(() => import('../components/SyncExam
const
ImportExamDialog
=
defineAsyncComponent
(()
=>
import
(
'../components/ImportExamDialog.vue'
))
const
ImportScoreDialog
=
defineAsyncComponent
(()
=>
import
(
'../components/ImportScoreDialog.vue'
))
const
ScoreViewPicturesDialog
=
defineAsyncComponent
(()
=>
import
(
'../components/ScoreViewPicturesDialog.vue'
))
const
ReportDialog
=
defineAsyncComponent
(()
=>
import
(
'../components/ReportDialog.vue'
))
const
route
=
useRoute
()
...
...
@@ -129,6 +130,7 @@ function onUpdateSuccess() {
appList
?.
refetch
()
}
// 查看截图
const
viewPictureVisible
=
ref
(
false
)
const
rowData
=
ref
()
function
handleViewPicture
(
row
:
any
)
{
...
...
@@ -136,6 +138,13 @@ function handleViewPicture(row: any) {
viewPictureVisible
.
value
=
true
}
// 查看报告
const
viewReportVisible
=
ref
(
false
)
function
handleViewReport
(
row
:
any
)
{
rowData
.
value
=
row
viewReportVisible
.
value
=
true
}
// function getModuleStatus(row: any, index: number) {
// const [first] = row.student_module_status_list
// try {
...
...
@@ -155,13 +164,28 @@ function handleViewPicture(row: any) {
<AppCard
title=
"大赛评分"
>
<AppList
v-bind=
"listOptions"
ref=
"appList"
>
<template
#
header-buttons
>
<el-button
type=
"primary"
round
:icon=
"Refresh"
@
click=
"syncDialogVisible = true"
v-permission=
"'v1-expert-check-sync-exam'"
<el-button
type=
"primary"
round
:icon=
"Refresh"
@
click=
"syncDialogVisible = true"
v-permission=
"'v1-expert-check-sync-exam'"
>
系统同步考试成绩
</el-button
>
<el-button
type=
"primary"
round
:icon=
"Upload"
@
click=
"importExamVisible = true"
v-permission=
"'v1-expert-check-import-exam'"
<el-button
type=
"primary"
round
:icon=
"Upload"
@
click=
"importExamVisible = true"
v-permission=
"'v1-expert-check-import-exam'"
>
批量导入考试成绩
</el-button
>
<el-button
type=
"primary"
round
:icon=
"Upload"
@
click=
"importScoreVisible = true"
v-permission=
"'v1-expert-check-import-score'"
<el-button
type=
"primary"
round
:icon=
"Upload"
@
click=
"importScoreVisible = true"
v-permission=
"'v1-expert-check-import-score'"
>
批量导入完整评分
</el-button
>
</
template
>
...
...
@@ -170,9 +194,11 @@ function handleViewPicture(row: any) {
<span
:class=
"
{ 'is-info': row.score_name !== '--' }">
{{
row
.
score_name
}}
</span>
</
template
>
<
template
#
table-x=
"{ row }"
>
<
!--
<
el-button
text
type=
"primary"
v-if=
"row.publish_status === '0'"
v-permission=
"'v1-expert-check-set-score'"
>
<el-button
text
type=
"primary"
v-if=
"row.publish_status === '0'"
v-permission=
"'v1-expert-check-set-score'"
>
<router-link
:to=
"`/admin/contest/check/$
{row.id}`" target="_blank">评分
</router-link>
</el-button>
-->
</el-button>
<br
/>
<el-button
text
type=
"primary"
@
click=
"handleViewReport(row)"
>
查看报告
</el-button><br
/>
<el-button
text
type=
"primary"
@
click=
"handleViewPicture(row)"
>
查看截图
</el-button>
</
template
>
</AppList>
...
...
@@ -182,9 +208,14 @@ function handleViewPicture(row: any) {
<!-- 批量导入考试成绩 -->
<ImportExamDialog
v-model=
"importExamVisible"
@
update=
"onUpdateSuccess"
v-if=
"importExamVisible"
></ImportExamDialog>
<!-- 批量导入完整评分 -->
<ImportScoreDialog
v-model=
"importScoreVisible"
@
update=
"onUpdateSuccess"
v-if=
"importScoreVisible"
></ImportScoreDialog>
<ImportScoreDialog
v-model=
"importScoreVisible"
@
update=
"onUpdateSuccess"
v-if=
"importScoreVisible"
></ImportScoreDialog>
<!-- 查看截图 -->
<ScoreViewPicturesDialog
v-model=
"viewPictureVisible"
:data=
"rowData"
v-if=
"rowData"
></ScoreViewPicturesDialog>
<!-- 查看报告 -->
<ReportDialog
v-model=
"viewReportVisible"
:data=
"rowData"
v-if=
"rowData && viewReportVisible"
></ReportDialog>
</template>
<
style
lang=
"scss"
>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论