Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
saas-lab
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
saas-lab
Commits
9b56dabb
提交
9b56dabb
authored
9月 01, 2022
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
bug fixes
上级
529bce0f
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
54 行增加
和
19 行删除
+54
-19
Header.vue
src/components/layout/Header.vue
+3
-3
FormDialog.vue
src/modules/admin/lab/book/components/FormDialog.vue
+9
-1
ListItem.vue
src/modules/admin/lab/book/components/ListItem.vue
+8
-4
ScoreDialog.vue
src/modules/admin/lab/record/components/ScoreDialog.vue
+6
-6
FormDialog.vue
src/modules/admin/lab/video/components/FormDialog.vue
+9
-1
Index.vue
src/modules/student/lab/views/Index.vue
+19
-4
没有找到文件。
src/components/layout/Header.vue
浏览文件 @
9b56dabb
...
...
@@ -152,9 +152,9 @@ const logout = async () => {
padding
:
0
;
border-bottom
:
0
!
important
;
}
.el-sub-menu__icon-arrow
{
display
:
none
;
}
//
.el-sub-menu__icon-arrow {
//
display: none;
//
}
}
.sub-menu-popper
{
border
:
0
!
important
;
...
...
src/modules/admin/lab/book/components/FormDialog.vue
浏览文件 @
9b56dabb
...
...
@@ -74,7 +74,7 @@ const experimentList = $computed(() => {
:
experiments
.
value
})
function
handleUploadSuccess
(
file
:
any
)
{
form
.
name
=
file
.
name
form
.
name
=
file
.
name
.
split
(
'.'
).
shift
()
form
.
size
=
(
file
.
size
/
1024
/
1024
).
toString
()
form
.
url
=
file
.
raw
.
url
form
.
type
=
file
.
raw
.
type
...
...
@@ -118,6 +118,7 @@ function handleUpdate(params: BookCreateItem) {
</el-form-item>
<el-form-item
label=
"实验指导书名称"
prop=
"name"
>
<el-input
v-model=
"form.name"
></el-input>
<p
class=
"form-tips"
>
实验指导书名称自动取值于文件名称,可以进行二次修改。
</p>
</el-form-item>
<el-form-item
label=
"关联实验课程"
prop=
"course_id"
>
<el-select
v-model=
"form.course_id"
filterable
style=
"width: 100%"
@
change=
"form.experiment_id = ''"
>
...
...
@@ -149,3 +150,10 @@ function handleUpdate(params: BookCreateItem) {
</el-form>
</el-dialog>
</template>
<
style
lang=
"scss"
scoped
>
.form-tips
{
font-size
:
12px
;
color
:
#999
;
}
</
style
>
src/modules/admin/lab/book/components/ListItem.vue
浏览文件 @
9b56dabb
...
...
@@ -20,10 +20,14 @@ const genFileClassNames = $computed(() => {
<div
class=
"list-item-hd"
>
<div
class=
"icon-file"
:class=
"genFileClassNames"
></div>
<div
class=
"button-group"
>
<div
class=
"button icon-view"
v-permission=
"'v1-teacher-book-view'"
>
<router-link
:to=
"`/admin/lab/book/$
{data.id}`" target="_blank">
</router-link>
</div>
<div
class=
"button icon-edit"
@
click=
"$emit('clickEdit', data)"
v-permission=
"'v1-teacher-book-update'"
></div>
<el-tooltip
effect=
"dark"
content=
"查看"
>
<div
class=
"button icon-view"
v-permission=
"'v1-teacher-book-view'"
>
<router-link
:to=
"`/admin/lab/book/$
{data.id}`" target="_blank">
</router-link>
</div>
</el-tooltip>
<el-tooltip
effect=
"dark"
content=
"编辑"
>
<div
class=
"button icon-edit"
@
click=
"$emit('clickEdit', data)"
v-permission=
"'v1-teacher-book-update'"
></div>
</el-tooltip>
</div>
</div>
<div
class=
"list-item-title"
>
...
...
src/modules/admin/lab/record/components/ScoreDialog.vue
浏览文件 @
9b56dabb
...
...
@@ -55,9 +55,9 @@ const score = $computed<number>(() => {
return
parseFloat
(
result
.
toFixed
(
2
))
})
const
rules
=
ref
<
FormRules
>
({
operate
:
[{
required
:
true
,
message
:
'请输入
0
~100数字'
}],
result
:
[{
required
:
true
,
message
:
'请输入
0
~100数字'
}],
file
:
[{
required
:
true
,
message
:
'请输入
0
~100数字'
}]
operate
:
[{
required
:
true
,
message
:
'请输入
1
~100数字'
}],
result
:
[{
required
:
true
,
message
:
'请输入
1
~100数字'
}],
file
:
[{
required
:
true
,
message
:
'请输入
1
~100数字'
}]
})
// 提交
...
...
@@ -114,13 +114,13 @@ function handleSubmit() {
style=
"padding: 5px 0 20px"
>
<el-form-item
label=
"实验操作"
prop=
"operate"
>
<el-input-number
:min=
"
0
"
:max=
"100"
:controls=
"false"
step-strictly
v-model=
"form.operate"
/>
<el-input-number
:min=
"
1
"
:max=
"100"
:controls=
"false"
step-strictly
v-model=
"form.operate"
/>
</el-form-item>
<el-form-item
label=
"实验结果"
prop=
"result"
>
<el-input-number
:min=
"
0
"
:max=
"100"
:controls=
"false"
step-strictly
v-model=
"form.result"
/>
<el-input-number
:min=
"
1
"
:max=
"100"
:controls=
"false"
step-strictly
v-model=
"form.result"
/>
</el-form-item>
<el-form-item
label=
"实验报告"
prop=
"file"
>
<el-input-number
:min=
"
0
"
:max=
"100"
:controls=
"false"
step-strictly
v-model=
"form.file"
/>
<el-input-number
:min=
"
1
"
:max=
"100"
:controls=
"false"
step-strictly
v-model=
"form.file"
/>
</el-form-item>
<el-form-item
label=
"综合实验成绩"
>
<el-input-number
:min=
"0"
:max=
"100"
:controls=
"false"
disabled
v-model=
"score"
/>
...
...
src/modules/admin/lab/video/components/FormDialog.vue
浏览文件 @
9b56dabb
...
...
@@ -64,7 +64,7 @@ const title = $computed(() => {
})
function
handleUploadSuccess
(
uploadInfo
:
any
)
{
form
.
name
=
uploadInfo
.
file
.
name
form
.
name
=
uploadInfo
.
file
.
name
.
split
(
'.'
).
shift
()
form
.
source_id
=
uploadInfo
.
videoId
}
// 提交
...
...
@@ -101,6 +101,7 @@ function handleUpdate(params: VideoCreateItem) {
</el-form-item>
<el-form-item
label=
"实验操作视频名称"
prop=
"name"
>
<el-input
v-model=
"form.name"
></el-input>
<p
class=
"form-tips"
>
操作视频名称自动取值于文件名称,可以进行二次修改。
</p>
</el-form-item>
<el-form-item
label=
"关联实验课程"
prop=
"course_id"
>
<el-select
v-model=
"form.course_id"
filterable
style=
"width: 100%"
@
change=
"form.experiment_id = ''"
>
...
...
@@ -132,3 +133,10 @@ function handleUpdate(params: VideoCreateItem) {
</el-form>
</el-dialog>
</template>
<
style
lang=
"scss"
scoped
>
.form-tips
{
font-size
:
12px
;
color
:
#999
;
}
</
style
>
src/modules/student/lab/views/Index.vue
浏览文件 @
9b56dabb
<
script
setup
lang=
"ts"
>
import
type
{
CourseType
,
ExperimentRecord
}
from
'../types'
import
{
HomeFilled
}
from
'@element-plus/icons-vue'
import
{
ElMessageBox
,
ElMessage
}
from
'element-plus'
import
{
useGetCourseList
}
from
'../composables/useGetCourseList'
import
{
upload
}
from
'@/utils/upload'
import
{
getExperimentRecord
,
uploadExperimentPicture
,
submitExperimentRecord
}
from
'../api'
...
...
@@ -45,7 +46,11 @@ const LAB_URL = import.meta.env.VITE_LAB_URL
let
iframeKey
=
$ref
(
Date
.
now
())
// 返回首页
function
handleBackHome
()
{
iframeKey
=
Date
.
now
()
ElMessageBox
.
confirm
(
'此操作将会强制返回到实验室首页,您当前的操作内容有可能丢失,确定返回首页吗?'
,
'提示'
).
then
(
()
=>
{
iframeKey
=
Date
.
now
()
}
)
}
const
reportDialogVisible
=
$ref
(
false
)
...
...
@@ -63,6 +68,11 @@ let screenshotLoading = $ref(false)
let
screenshotTimestamp
=
$ref
(
0
)
// 截图
function
handleCapture
()
{
const
pictures
=
detail
?.
pictures
||
[]
if
(
pictures
.
length
>=
20
)
{
ElMessage
.
error
(
'已达到单个实验最大截图数量,无法截图,请在过程与结果功能中删除多余截图之后再进行操作。'
)
return
}
const
iframeWindow
=
iframeRef
?.
contentWindow
if
(
!
iframeWindow
)
return
screenshotTimestamp
=
Date
.
now
()
...
...
@@ -97,9 +107,14 @@ function uploadPicture(url: string) {
}
// 提交实验
function
handleSubmit
()
{
submitExperimentRecord
({
experiment_id
:
form
.
experiment_id
}).
then
(()
=>
{
fetchInfo
()
})
ElMessageBox
.
confirm
(
'此操作将会提交该实验,状态会变为已提交,您将不能再操作该实验,确定提交实验吗?'
,
'提示'
).
then
(
()
=>
{
submitExperimentRecord
({
experiment_id
:
form
.
experiment_id
}).
then
(()
=>
{
ElMessage
({
message
:
'提交成功'
,
type
:
'success'
})
fetchInfo
()
})
}
)
}
</
script
>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论