Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
saas-lab
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
saas-lab
Commits
cecbf831
提交
cecbf831
authored
3月 21, 2024
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chore: 学生端我的实验新增理论考试
上级
5e9dcb6d
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
67 行增加
和
20 行删除
+67
-20
api.ts
src/modules/student/lab/api.ts
+8
-18
Exam.vue
src/modules/student/lab/components/Exam.vue
+49
-0
Index.vue
src/modules/student/lab/views/Index.vue
+10
-2
没有找到文件。
src/modules/student/lab/api.ts
浏览文件 @
cecbf831
...
...
@@ -30,12 +30,7 @@ export function getExperimentVideoPlayInfo(params: { source_id: string }) {
}
// 获取实验讨论交流
export
function
getExperimentDiscussList
(
params
:
{
experiment_id
:
string
tag
:
number
page
?:
number
'per-page'
?:
number
})
{
export
function
getExperimentDiscussList
(
params
:
{
experiment_id
:
string
;
tag
:
number
;
page
?:
number
;
'per-page'
?:
number
})
{
return
httpRequest
.
get
(
'/api/lab/v1/student/experiment-topic/list'
,
{
params
})
}
// 发表新话题
...
...
@@ -90,21 +85,11 @@ export function getExperimentReportTemplate(params: { experiment_id: string }) {
return
httpRequest
.
get
(
'/api/lab/v1/student/experiment/report-template'
,
{
params
})
}
// 更新实验在线报告
export
function
updateExperimentReport
(
data
:
{
experiment_id
:
string
experiment_address
:
string
experiment_date
:
string
detail
:
string
})
{
export
function
updateExperimentReport
(
data
:
{
experiment_id
:
string
;
experiment_address
:
string
;
experiment_date
:
string
;
detail
:
string
})
{
return
httpRequest
.
post
(
'/api/lab/v1/student/experiment/upload-online-report'
,
data
)
}
// 缓存实验在线报告
export
function
cacheExperimentReport
(
data
:
{
experiment_id
:
string
experiment_address
:
string
experiment_date
:
string
detail
:
string
})
{
export
function
cacheExperimentReport
(
data
:
{
experiment_id
:
string
;
experiment_address
:
string
;
experiment_date
:
string
;
detail
:
string
})
{
return
httpRequest
.
post
(
'/api/lab/v1/student/experiment/cache-online-report'
,
data
)
}
// 获取实验在线报告缓存
...
...
@@ -130,3 +115,8 @@ export function getExperimentQuestionList(params: { experiment_id: string }) {
export
function
getExperimentQuestion
(
params
:
{
experiment_id
:
string
;
id
:
string
})
{
return
httpRequest
.
get
(
'/api/lab/v1/student/experiment-question/detail'
,
{
params
})
}
// 获取实验理论考试列表
export
function
getExperimentExamList
(
params
:
{
experiment_id
:
string
})
{
return
httpRequest
.
get
(
'/api/lab/v1/student/experiment-exam/exams'
,
{
params
})
}
src/modules/student/lab/components/Exam.vue
0 → 100644
浏览文件 @
cecbf831
<
script
setup
lang=
"ts"
>
import
{
useCookies
}
from
'@vueuse/integrations/useCookies'
import
{
getExperimentExamList
}
from
'../api'
interface
Props
{
experiment_id
:
string
}
const
props
=
defineProps
<
Props
>
()
const
model
=
defineModel
()
const
cookies
=
useCookies
()
const
list
=
ref
<
any
[]
>
([])
// 当前选中的考试
const
currentExam
=
computed
(()
=>
{
return
list
.
value
[
0
]
})
// 考试平台 URL
const
examURL
=
computed
(()
=>
{
return
`
${
import
.
meta
.
env
.
VITE_EXAM_SHOW_URL
}
/exam/
${
currentExam
.
value
?.
exam_id
}
`
// return `
https
:
//dev.ezijing.com:5173/exam/7003551966412406784?has_time=0&has_submit=0&has_save=1&show_answer=1`
}
)
async function fetchInfo() {
const res = await getExperimentExamList({ experiment_id: props.experiment_id })
const resCookies = res.data.cookies
cookies.set(resCookies.key, resCookies.auth_key, { domain: '.ezijing.com', path: '/' })
list.value = res.data.items || []
model.value = examURL.value
}
onMounted(() => {
fetchInfo()
})
</
script
>
<
template
>
<template
v-if=
"currentExam"
>
<el-form
label-suffix=
":"
label-position=
"top"
>
<el-form-item
label=
"考试名称"
>
{{
currentExam
.
exam_info
.
name
}}
</el-form-item>
<el-form-item
label=
"考试时间"
>
{{
currentExam
.
exam_info
.
start_time
}}
~
{{
currentExam
.
exam_info
.
end_time
}}
</el-form-item>
</el-form>
<!--
<teleport
to=
".lab-box"
>
<iframe
class=
"iframe"
:src=
"examURL"
frameborder=
"0"
></iframe>
</teleport>
-->
</
template
>
<el-empty
description=
"暂无数据"
v-else
/>
</template>
src/modules/student/lab/views/Index.vue
浏览文件 @
cecbf831
...
...
@@ -25,6 +25,7 @@ const ReportFilePreview = defineAsyncComponent(() => import('../components/Repor
const
PrepareDialog
=
defineAsyncComponent
(()
=>
import
(
'../components/PrepareDialog.vue'
))
const
ResultDialog
=
defineAsyncComponent
(()
=>
import
(
'../components/ResultDialog.vue'
))
const
ReportPreview
=
defineAsyncComponent
(()
=>
import
(
'../components/ReportPreview.vue'
))
const
Exam
=
defineAsyncComponent
(()
=>
import
(
'../components/Exam.vue'
))
const
route
=
useRoute
()
...
...
@@ -93,9 +94,13 @@ watchEffect(() => {
fetchExperimentRecord
()
})
const
tabActive
=
ref
(
'qa'
)
const
examURL
=
ref
(
''
)
// 右侧
const
cookies
=
useCookies
([
'TGC'
])
const
LAB_URL
=
computed
(()
=>
{
if
(
tabActive
.
value
===
'exam'
&&
examURL
.
value
)
return
examURL
.
value
return
experimentInfo
?.
type
===
4
?
`
${
appConfig
.
dmlURL
||
import
.
meta
.
env
.
VITE_DML_URL
}
/trip/my?experiment_id=
${
form
.
experiment_id
}
`
:
`
${
appConfig
.
dmlURL
||
import
.
meta
.
env
.
VITE_LAB_URL
}
&token=
${
cookies
.
get
(
'TGC'
)}
`
...
...
@@ -233,10 +238,13 @@ function handleReportPreviewReady() {
</el-select>
</el-form-item>
</el-form>
<el-tabs
type=
"border-card"
>
<el-tab-pane
label=
"实验试题"
lazy
>
<el-tabs
type=
"border-card"
v-model=
"tabActive"
>
<el-tab-pane
label=
"实验试题"
name=
"qa"
lazy
>
<Question
:experiment_id=
"form.experiment_id"
></Question>
</el-tab-pane>
<el-tab-pane
label=
"理论考试"
name=
"exam"
lazy
>
<Exam
:experiment_id=
"form.experiment_id"
v-model=
"examURL"
></Exam>
</el-tab-pane>
<el-tab-pane
label=
"实验信息"
lazy
>
<Info
:data=
"experimentInfo"
></Info>
</el-tab-pane>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论