Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
saas-lab
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
saas-lab
Commits
3c7c1184
提交
3c7c1184
authored
8月 26, 2022
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chore: update
上级
f90a57b3
显示空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
123 行增加
和
26 行删除
+123
-26
home_student_bg.png
src/assets/images/home_student_bg.png
+0
-0
home_teacher_bg.png
src/assets/images/home_teacher_bg.png
+0
-0
FormDialog.vue
src/modules/admin/lab/book/components/FormDialog.vue
+6
-1
ListItem.vue
src/modules/admin/lab/book/components/ListItem.vue
+2
-2
Index.vue
src/modules/admin/lab/book/views/Index.vue
+3
-1
DiscussDialog.vue
src/modules/admin/lab/discuss/components/DiscussDialog.vue
+7
-1
Index.vue
src/modules/admin/lab/discuss/views/Index.vue
+3
-1
Index.vue
src/modules/admin/lab/record/views/Index.vue
+12
-3
ListItem.vue
src/modules/admin/lab/video/components/ListItem.vue
+10
-3
Index.vue
src/modules/admin/lab/video/views/Index.vue
+3
-1
Index.vue
src/modules/admin/system/experiment/views/Index.vue
+3
-3
AdminHome.vue
src/modules/home/components/AdminHome.vue
+38
-4
StudentHome.vue
src/modules/home/components/StudentHome.vue
+30
-4
Discuss.vue
src/modules/student/lab/components/Discuss.vue
+1
-1
ReportDialog.vue
src/modules/student/lab/components/ReportDialog.vue
+5
-1
没有找到文件。
src/assets/images/home_student_bg.png
0 → 100644
浏览文件 @
3c7c1184
673.6 KB
src/assets/images/home_teacher_bg.png
0 → 100644
浏览文件 @
3c7c1184
867.7 KB
src/modules/admin/lab/book/components/FormDialog.vue
浏览文件 @
3c7c1184
...
@@ -107,7 +107,12 @@ function handleUpdate(params: BookCreateItem) {
...
@@ -107,7 +107,12 @@ function handleUpdate(params: BookCreateItem) {
<el-dialog
:title=
"title"
:close-on-click-modal=
"false"
width=
"600px"
@
update:modelValue=
"$emit('update:modelValue')"
>
<el-dialog
:title=
"title"
:close-on-click-modal=
"false"
width=
"600px"
@
update:modelValue=
"$emit('update:modelValue')"
>
<el-form
ref=
"formRef"
:model=
"form"
:rules=
"rules"
label-width=
"124px"
>
<el-form
ref=
"formRef"
:model=
"form"
:rules=
"rules"
label-width=
"124px"
>
<el-form-item
label=
"实验指导书文件"
prop=
"files"
>
<el-form-item
label=
"实验指导书文件"
prop=
"files"
>
<AppUpload
v-model=
"form.files"
:limit=
"1"
@
success=
"handleUploadSuccess"
>
<AppUpload
v-model=
"form.files"
:limit=
"1"
accept=
".doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,.pdf,application/pdf,.ppt,.pptx,application/vnd.ms-powerpoint,.csv,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
@
success=
"handleUploadSuccess"
>
<template
#
tip
>
实验指导书文件支持格式包含:doc docx xls xlsx pdf ppt pptx,大小不超过50M
</
template
>
<template
#
tip
>
实验指导书文件支持格式包含:doc docx xls xlsx pdf ppt pptx,大小不超过50M
</
template
>
</AppUpload>
</AppUpload>
</el-form-item>
</el-form-item>
...
...
src/modules/admin/lab/book/components/ListItem.vue
浏览文件 @
3c7c1184
...
@@ -10,10 +10,10 @@ defineProps<Props>()
...
@@ -10,10 +10,10 @@ defineProps<Props>()
<div
class=
"list-item-hd"
>
<div
class=
"list-item-hd"
>
<div
class=
"icon-file"
></div>
<div
class=
"icon-file"
></div>
<div
class=
"button-group"
>
<div
class=
"button-group"
>
<div
class=
"button icon-view"
>
<div
class=
"button icon-view"
v-permission=
"'v1-teacher-book-view'"
>
<router-link
:to=
"`/admin/lab/book/$
{data.id}`" target="_blank">
</router-link>
<router-link
:to=
"`/admin/lab/book/$
{data.id}`" target="_blank">
</router-link>
</div>
</div>
<div
class=
"button icon-edit"
@
click=
"$emit('clickEdit', data)"
></div>
<div
class=
"button icon-edit"
@
click=
"$emit('clickEdit', data)"
v-permission=
"'v1-teacher-book-update'"
></div>
</div>
</div>
</div>
</div>
<div
class=
"list-item-title"
>
<div
class=
"list-item-title"
>
...
...
src/modules/admin/lab/book/views/Index.vue
浏览文件 @
3c7c1184
...
@@ -59,7 +59,9 @@ function onUpdateSuccess() {
...
@@ -59,7 +59,9 @@ function onUpdateSuccess() {
<AppCard
title=
"实验指导书管理"
>
<AppCard
title=
"实验指导书管理"
>
<AppList
v-bind=
"listOptions"
ref=
"appList"
>
<AppList
v-bind=
"listOptions"
ref=
"appList"
>
<template
#
header-buttons
>
<template
#
header-buttons
>
<el-button
type=
"primary"
:icon=
"CirclePlus"
@
click=
"handleAdd"
>
新增实验指导书
</el-button>
<el-button
type=
"primary"
:icon=
"CirclePlus"
@
click=
"handleAdd"
v-permission=
"'v1-teacher-book-create'"
>
新增实验指导书
</el-button
>
</
template
>
</
template
>
<
template
#
body=
"{ data }"
>
<
template
#
body=
"{ data }"
>
<div
class=
"list-card"
v-if=
"data.length"
>
<div
class=
"list-card"
v-if=
"data.length"
>
...
...
src/modules/admin/lab/discuss/components/DiscussDialog.vue
浏览文件 @
3c7c1184
...
@@ -90,7 +90,13 @@ function handleSubmit() {
...
@@ -90,7 +90,13 @@ function handleSubmit() {
<div
class=
"tips"
v-if=
"!hasMore"
>
没有更多了
</div>
<div
class=
"tips"
v-if=
"!hasMore"
>
没有更多了
</div>
</div>
</div>
<el-form
ref=
"formRef"
:rules=
"rules"
:model=
"form"
style=
"margin-top: 40px"
>
<el-form
ref=
"formRef"
:rules=
"rules"
:model=
"form"
style=
"margin-top: 40px"
v-permission=
"'v1-teacher-discussion-comment'"
>
<el-form-item
prop=
"content"
>
<el-form-item
prop=
"content"
>
<el-input
type=
"textarea"
v-model=
"form.content"
:autosize=
"
{ minRows: 4, maxRows: 6 }" />
<el-input
type=
"textarea"
v-model=
"form.content"
:autosize=
"
{ minRows: 4, maxRows: 6 }" />
</el-form-item>
</el-form-item>
...
...
src/modules/admin/lab/discuss/views/Index.vue
浏览文件 @
3c7c1184
...
@@ -94,7 +94,9 @@ function onUpdateSuccess() {
...
@@ -94,7 +94,9 @@ function onUpdateSuccess() {
<span
:class=
"
{ 'is-success': row.is_reply === '1' }">
{{
row
.
is_reply_name
}}
</span>
<span
:class=
"
{ 'is-success': row.is_reply === '1' }">
{{
row
.
is_reply_name
}}
</span>
</
template
>
</
template
>
<
template
#
table-x=
"{ row }"
>
<
template
#
table-x=
"{ row }"
>
<el-button
text
type=
"primary"
@
click=
"handleComment(row)"
>
评论
</el-button>
<el-button
text
type=
"primary"
@
click=
"handleComment(row)"
v-permission=
"'v1-teacher-discussion-view'"
>
评论
</el-button
>
</
template
>
</
template
>
</AppList>
</AppList>
</AppCard>
</AppCard>
...
...
src/modules/admin/lab/record/views/Index.vue
浏览文件 @
3c7c1184
...
@@ -79,7 +79,7 @@ const listOptions = $computed(() => {
...
@@ -79,7 +79,7 @@ const listOptions = $computed(() => {
const
{
files
,
open
}
=
useFileDialog
()
const
{
files
,
open
}
=
useFileDialog
()
function
handleImport
()
{
function
handleImport
()
{
open
({
open
({
accept
:
'.csv,
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel'
,
accept
:
'.csv,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel'
,
multiple
:
false
multiple
:
false
})
})
}
}
...
@@ -108,7 +108,9 @@ function onUpdateSuccess() {
...
@@ -108,7 +108,9 @@ function onUpdateSuccess() {
<AppList
v-bind=
"listOptions"
ref=
"appList"
>
<AppList
v-bind=
"listOptions"
ref=
"appList"
>
<template
#
header-buttons
>
<template
#
header-buttons
>
<el-row
justify=
"space-between"
>
<el-row
justify=
"space-between"
>
<el-button
type=
"primary"
round
:icon=
"Upload"
@
click=
"handleImport"
>
批量导入
</el-button>
<el-button
type=
"primary"
round
:icon=
"Upload"
@
click=
"handleImport"
v-permission=
"'v1-teacher-record-upload'"
>
批量导入
</el-button
>
<a
:href=
"LAB_URL"
target=
"_blank"
>
<a
:href=
"LAB_URL"
target=
"_blank"
>
<el-button
type=
"primary"
round
:icon=
"Promotion"
>
进入实验室
</el-button>
<el-button
type=
"primary"
round
:icon=
"Promotion"
>
进入实验室
</el-button>
</a>
</a>
...
@@ -121,7 +123,14 @@ function onUpdateSuccess() {
...
@@ -121,7 +123,14 @@ function onUpdateSuccess() {
<span
:class=
"
{ 'is-info': row.score !== '--' }">
{{
row
.
score
}}
</span>
<span
:class=
"
{ 'is-info': row.score !== '--' }">
{{
row
.
score
}}
</span>
</
template
>
</
template
>
<
template
#
table-x=
"{ row }"
>
<
template
#
table-x=
"{ row }"
>
<el-button
text
type=
"primary"
v-if=
"row.status === 1"
@
click=
"handleScore(row)"
>
打分
</el-button>
<el-button
text
type=
"primary"
v-if=
"row.status === 1"
@
click=
"handleScore(row)"
v-permission=
"'v1-teacher-record-check'"
>
打分
</el-button
>
</
template
>
</
template
>
</AppList>
</AppList>
</AppCard>
</AppCard>
...
...
src/modules/admin/lab/video/components/ListItem.vue
浏览文件 @
3c7c1184
...
@@ -17,10 +17,17 @@ defineProps<Props>()
...
@@ -17,10 +17,17 @@ defineProps<Props>()
<div
class=
"list-item-main"
>
<div
class=
"list-item-main"
>
<p>
{{
data
.
name
}}
</p>
<p>
{{
data
.
name
}}
</p>
<div
class=
"buttons"
>
<div
class=
"buttons"
>
<router-link
:to=
"`/admin/lab/video/$
{data.id}`" target="_blank">
<router-link
:to=
"`/admin/lab/video/$
{data.id}`" target="_blank"
v-permission="'v1-teacher-video-view'"
>
<el-button
type=
"primary"
auto-insert-space
>
查看
</el-button>
<el-button
type=
"primary"
auto-insert-space
>
查看
</el-button>
</router-link>
</router-link>
<el-button
plain
auto-insert-space
@
click=
"$emit('clickEdit', data)"
style=
"margin-left: 10px"
>
编辑
</el-button>
<el-button
plain
auto-insert-space
@
click=
"$emit('clickEdit', data)"
style=
"margin-left: 10px"
v-permission=
"'v1-teacher-video-update'"
>
编辑
</el-button
>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -35,7 +42,7 @@ defineProps<Props>()
...
@@ -35,7 +42,7 @@ defineProps<Props>()
overflow
:
hidden
;
overflow
:
hidden
;
&
:hover
{
&
:hover
{
overflow
:
unset
;
overflow
:
unset
;
transform
:
scale
(
1
.
2
);
transform
:
scale
(
1
.
1
);
z-index
:
1
;
z-index
:
1
;
.el-icon
{
.el-icon
{
display
:
block
;
display
:
block
;
...
...
src/modules/admin/lab/video/views/Index.vue
浏览文件 @
3c7c1184
...
@@ -59,7 +59,9 @@ function onUpdateSuccess() {
...
@@ -59,7 +59,9 @@ function onUpdateSuccess() {
<AppCard
title=
"实验操作视频管理"
>
<AppCard
title=
"实验操作视频管理"
>
<AppList
v-bind=
"listOptions"
ref=
"appList"
>
<AppList
v-bind=
"listOptions"
ref=
"appList"
>
<template
#
header-buttons
>
<template
#
header-buttons
>
<el-button
type=
"primary"
:icon=
"CirclePlus"
@
click=
"handleAdd"
>
新增操作视频
</el-button>
<el-button
type=
"primary"
:icon=
"CirclePlus"
@
click=
"handleAdd"
v-permission=
"'v1-teacher-video-create'"
>
新增操作视频
</el-button
>
</
template
>
</
template
>
<
template
#
body=
"{ data }"
>
<
template
#
body=
"{ data }"
>
<div
class=
"list-card"
v-if=
"data.length"
>
<div
class=
"list-card"
v-if=
"data.length"
>
...
...
src/modules/admin/system/experiment/views/Index.vue
浏览文件 @
3c7c1184
...
@@ -33,7 +33,7 @@ const listOptions = {
...
@@ -33,7 +33,7 @@ const listOptions = {
{
label
:
'实验总成绩'
,
prop
:
'score'
},
{
label
:
'实验总成绩'
,
prop
:
'score'
},
{
label
:
'更新人'
,
prop
:
'updated_operator_name'
},
{
label
:
'更新人'
,
prop
:
'updated_operator_name'
},
{
label
:
'更新时间'
,
prop
:
'updated_time'
},
{
label
:
'更新时间'
,
prop
:
'updated_time'
},
{
label
:
'操作'
,
slots
:
'table-x'
,
width
:
3
00
}
{
label
:
'操作'
,
slots
:
'table-x'
,
width
:
2
00
}
]
]
}
}
...
@@ -69,9 +69,9 @@ function onUpdateSuccess() {
...
@@ -69,9 +69,9 @@ function onUpdateSuccess() {
<el-button
type=
"primary"
round
v-permission=
"'v1-backend-experiment-view'"
>
<el-button
type=
"primary"
round
v-permission=
"'v1-backend-experiment-view'"
>
<router-link
:to=
"`/admin/system/experiment/$
{row.id}`" target="_blank">查看
</router-link>
<router-link
:to=
"`/admin/system/experiment/$
{row.id}`" target="_blank">查看
</router-link>
</el-button>
</el-button>
<el-button
type=
"primary"
round
v-permission=
"'v1-backend-experiment-view'"
>
<
!--
<
el-button
type=
"primary"
round
v-permission=
"'v1-backend-experiment-view'"
>
<router-link
:to=
"`/admin/system/experiment/$
{row.id}`" target="_blank">关联班级与分组
</router-link>
<router-link
:to=
"`/admin/system/experiment/$
{row.id}`" target="_blank">关联班级与分组
</router-link>
</el-button>
</el-button>
-->
<el-button
type=
"primary"
round
@
click=
"handleUpdate(row)"
v-permission=
"'v1-backend-experiment-update'"
<el-button
type=
"primary"
round
@
click=
"handleUpdate(row)"
v-permission=
"'v1-backend-experiment-update'"
>
编辑
</el-button
>
编辑
</el-button
>
>
...
...
src/modules/home/components/AdminHome.vue
浏览文件 @
3c7c1184
...
@@ -22,7 +22,12 @@ function handleChange(id: string, type: number) {
...
@@ -22,7 +22,12 @@ function handleChange(id: string, type: number) {
</
script
>
</
script
>
<
template
>
<
template
>
<div
class=
"bg"
></div>
<div
class=
"bg"
>
<router-link
to=
"/admin/lab/book"
class=
"link1"
></router-link>
<router-link
to=
"/admin/lab/record"
class=
"link2"
></router-link>
<router-link
to=
"/admin/lab/video"
class=
"link3"
></router-link>
<router-link
to=
"/"
class=
"link4"
></router-link>
</div>
<div
class=
"select-group"
>
<div
class=
"select-group"
>
<el-select
size=
"large"
placeholder=
"实验指导书"
@
change=
"handleChange($event, 1)"
>
<el-select
size=
"large"
placeholder=
"实验指导书"
@
change=
"handleChange($event, 1)"
>
<el-option
v-for=
"item in list"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
<el-option
v-for=
"item in list"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
...
@@ -44,10 +49,39 @@ function handleChange(id: string, type: number) {
...
@@ -44,10 +49,39 @@ function handleChange(id: string, type: number) {
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.bg
{
.bg
{
margin
:
20px
0
;
position
:
relative
;
background
:
url(@/assets/images/home_bg.png)
no-repeat
center
center
;
margin
:
20px
auto
;
background
:
url(@/assets/images/home_teacher_bg.png)
no-repeat
center
center
;
background-size
:
contain
;
background-size
:
contain
;
height
:
636px
;
width
:
1308px
;
height
:
642px
;
.link1
{
position
:
absolute
;
bottom
:
100px
;
width
:
400px
;
height
:
300px
;
}
.link2
{
position
:
absolute
;
left
:
450px
;
bottom
:
50px
;
width
:
310px
;
height
:
250px
;
}
.link3
{
position
:
absolute
;
top
:
0
;
right
:
80px
;
width
:
400px
;
height
:
300px
;
}
.link4
{
position
:
absolute
;
bottom
:
0
;
right
:
0
;
width
:
400px
;
height
:
340px
;
}
}
}
.select-group
{
.select-group
{
position
:
fixed
;
position
:
fixed
;
...
...
src/modules/home/components/StudentHome.vue
浏览文件 @
3c7c1184
...
@@ -20,7 +20,11 @@ function handleChange(id: string, type: number) {
...
@@ -20,7 +20,11 @@ function handleChange(id: string, type: number) {
</
script
>
</
script
>
<
template
>
<
template
>
<div
class=
"bg"
></div>
<div
class=
"bg"
>
<router-link
to=
"/student/lab"
class=
"link1"
></router-link>
<router-link
to=
"/student/lab"
class=
"link2"
></router-link>
<router-link
to=
"/student/lab"
class=
"link3"
></router-link>
</div>
<div
class=
"select-group"
>
<div
class=
"select-group"
>
<el-select
size=
"large"
placeholder=
"我的实验课程"
@
change=
"handleChange($event, 1)"
>
<el-select
size=
"large"
placeholder=
"我的实验课程"
@
change=
"handleChange($event, 1)"
>
<el-option
v-for=
"item in list"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
<el-option
v-for=
"item in list"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
...
@@ -39,10 +43,32 @@ function handleChange(id: string, type: number) {
...
@@ -39,10 +43,32 @@ function handleChange(id: string, type: number) {
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.bg
{
.bg
{
margin
:
20px
0
;
position
:
relative
;
background
:
url(@/assets/images/home_bg.png)
no-repeat
center
center
;
margin
:
20px
auto
;
background
:
url(@/assets/images/home_student_bg.png)
no-repeat
center
center
;
background-size
:
contain
;
background-size
:
contain
;
height
:
636px
;
width
:
1215px
;
height
:
577px
;
.link1
{
position
:
absolute
;
top
:
160px
;
width
:
250px
;
height
:
250px
;
}
.link2
{
position
:
absolute
;
left
:
400px
;
bottom
:
0
;
width
:
300px
;
height
:
250px
;
}
.link3
{
position
:
absolute
;
top
:
200px
;
right
:
0
;
width
:
300px
;
height
:
300px
;
}
}
}
.select-group
{
.select-group
{
position
:
fixed
;
position
:
fixed
;
...
...
src/modules/student/lab/components/Discuss.vue
浏览文件 @
3c7c1184
...
@@ -58,7 +58,7 @@ useInfiniteScroll(
...
@@ -58,7 +58,7 @@ useInfiniteScroll(
<
template
>
<
template
>
<div
class=
"discuss"
>
<div
class=
"discuss"
>
<el-radio-group
v-model=
"params.tag"
@
change=
"fetchInfo(true)"
>
<el-radio-group
size=
"small"
v-model=
"params.tag"
@
change=
"fetchInfo(true)"
>
<el-radio
:label=
"1"
>
我发起的
</el-radio>
<el-radio
:label=
"1"
>
我发起的
</el-radio>
<el-radio
:label=
"2"
>
我回复的
</el-radio>
<el-radio
:label=
"2"
>
我回复的
</el-radio>
<el-radio
:label=
"3"
>
我的小组
</el-radio>
<el-radio
:label=
"3"
>
我的小组
</el-radio>
...
...
src/modules/student/lab/components/ReportDialog.vue
浏览文件 @
3c7c1184
...
@@ -53,7 +53,11 @@ const update = () => {
...
@@ -53,7 +53,11 @@ const update = () => {
>
>
<el-form
ref=
"formRef"
:model=
"form"
:rules=
"rules"
>
<el-form
ref=
"formRef"
:model=
"form"
:rules=
"rules"
>
<el-form-item
label=
"实验报告文件"
prop=
"files"
>
<el-form-item
label=
"实验报告文件"
prop=
"files"
>
<AppUpload
v-model=
"form.files"
:limit=
"1"
>
<AppUpload
v-model=
"form.files"
:limit=
"1"
accept=
".doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,.pdf,application/pdf,.ppt,.pptx,application/vnd.ms-powerpoint"
>
<template
#
tip
>
实验报告文件只能上传一个,支持格式包含:doc docx pdf ppt pptx,大小不超过50M
</
template
>
<template
#
tip
>
实验报告文件只能上传一个,支持格式包含:doc docx pdf ppt pptx,大小不超过50M
</
template
>
</AppUpload>
</AppUpload>
</el-form-item>
</el-form-item>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论