Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
saas-lab
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
saas-lab
Commits
df07ff92
提交
df07ff92
authored
8月 22, 2022
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chore: update
上级
01dd3cfe
显示空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
245 行增加
和
69 行删除
+245
-69
AppUpload.vue
src/components/base/AppUpload.vue
+10
-0
api.ts
src/modules/admin/lab/book/api.ts
+27
-3
FormDialog.vue
src/modules/admin/lab/book/components/FormDialog.vue
+92
-33
useGetCourseList.ts
src/modules/admin/lab/book/composables/useGetCourseList.ts
+16
-0
useGetExperimentList.ts
...odules/admin/lab/book/composables/useGetExperimentList.ts
+16
-0
types.ts
src/modules/admin/lab/book/types.ts
+36
-0
Index.vue
src/modules/admin/lab/book/views/Index.vue
+26
-10
FormDialog.vue
...modules/admin/system/experiment/components/FormDialog.vue
+1
-2
Index.vue
src/modules/admin/system/experiment/views/Index.vue
+1
-1
api.ts
src/modules/student/lab/api.ts
+11
-11
ReportDialog.vue
src/modules/student/lab/components/ReportDialog.vue
+1
-1
menu.ts
src/stores/menu.ts
+6
-6
vite.config.ts
vite.config.ts
+2
-2
没有找到文件。
src/components/base/AppUpload.vue
浏览文件 @
df07ff92
...
...
@@ -9,6 +9,7 @@ interface Props {
modelValue
:
string
|
{
name
:
string
;
url
:
string
}[]
prefix
?:
string
size
?:
number
limit
?:
number
}
const
props
=
withDefaults
(
defineProps
<
Props
>
(),
{
...
...
@@ -31,6 +32,10 @@ const showFileList = computed(() => {
// 上传之前
const
handleBeforeUpload
=
async
(
file
:
any
)
=>
{
if
(
props
.
limit
&&
fileList
.
value
.
length
>=
props
.
limit
)
{
ElMessage
.
error
(
`只能上传
${
props
.
limit
}
个文件`
)
return
false
}
if
(
props
.
size
&&
file
.
size
>
props
.
size
)
{
ElMessage
.
error
(
`文件大小不能超过
${
props
.
size
/
1024
/
1024
}
M`
)
return
false
...
...
@@ -63,6 +68,11 @@ const handleSuccess = (response: any, file: any, files: any) => {
type
:
item
.
type
||
item
.
raw
?.
type
}
})
// .reverse()
// .filter((item: any, index: number) => {
// return props.limit ? index
<
props
.
limit
:
true
// })
// .reverse()
)
}
else
{
emit
(
'update:modelValue'
,
file
.
raw
.
url
)
...
...
src/modules/admin/lab/book/api.ts
浏览文件 @
df07ff92
import
httpRequest
from
'@/utils/axios'
import
type
{
BookCreateItem
}
from
'./types'
// 获取学员列表
export
function
getBookList
(
params
?:
{
name
?:
string
;
lab_id
?:
string
;
page
?:
number
;
page_size
?:
number
})
{
return
httpRequest
.
get
(
'/api/lab/backend/book/index'
,
{
params
})
// 获取课程列表
export
function
getCourseList
()
{
return
httpRequest
.
get
(
'/api/lab/v1/teacher/book/courses'
)
}
// 获取实验列表
export
function
getExperimentList
(
params
:
{
course_id
:
string
})
{
return
httpRequest
.
get
(
'/api/lab/v1/teacher/book/experiments'
,
{
params
})
}
// 获取指导书列表
export
function
getBookList
(
params
?:
{
name
?:
string
;
Book_id
?:
string
;
page
?:
number
;
page_size
?:
number
})
{
return
httpRequest
.
get
(
'/api/lab/v1/teacher/book/list'
,
{
params
})
}
// 获取指导书详情
export
function
getBook
(
params
:
{
Book_id
:
string
;
page
?:
number
;
'per-page'
?:
number
})
{
return
httpRequest
.
get
(
'/api/lab/v1/teacher/book/view'
,
{
params
})
}
// 创建指导书
export
function
createBook
(
data
:
BookCreateItem
)
{
return
httpRequest
.
post
(
'/api/lab/v1/teacher/book/create'
,
data
)
}
// 更新指导书
export
function
updateBook
(
data
:
BookCreateItem
)
{
return
httpRequest
.
post
(
'/api/lab/v1/teacher/book/update'
,
data
)
}
src/modules/admin/lab/book/components/FormDialog.vue
浏览文件 @
df07ff92
<
script
setup
lang=
"ts"
>
import
type
{
FormInstance
,
FormRules
}
from
'element-plus'
// import { ElMessage } from 'element-plus'
import
type
{
BookItem
,
BookCreateItem
}
from
'../types'
import
{
ElMessage
}
from
'element-plus'
import
AppUpload
from
'@/components/base/AppUpload.vue'
import
{
createBook
,
updateBook
}
from
'../api'
import
{
useGetCourseList
}
from
'../composables/useGetCourseList'
import
{
useGetExperimentList
}
from
'../composables/useGetExperimentList'
import
{
useMapStore
}
from
'@/stores/map'
interface
Props
{
data
?:
any
data
?:
BookItem
|
null
}
const
props
=
defineProps
<
Props
>
()
defineEmits
<
{
const
emit
=
defineEmits
<
{
(
e
:
'update'
):
void
(
e
:
'update:modelValue'
,
visible
:
boolean
):
void
}
>
()
const
title
=
$computed
(()
=>
{
return
'新增实验指导书'
})
// 课程列表
const
{
courses
}
=
useGetCourseList
()
// 数据状态
const
status
=
useMapStore
().
getMapValuesByKey
(
'system_status'
)
// 实验列表
const
{
experiments
,
updateExperiments
}
=
useGetExperimentList
()
const
formRef
=
$ref
<
FormInstance
>
()
const
form
=
reactive
({
title
:
''
,
file
:
[],
status
:
1
})
const
form
=
reactive
<
BookCreateItem
>
({
name
:
''
,
course_id
:
''
,
experiment_id
:
''
,
status
:
'1'
,
url
:
''
,
type
:
''
,
size
:
''
,
files
:
[],
protocol
:
false
})
watchEffect
(()
=>
{
if
(
!
props
.
data
)
return
Object
.
assign
(
form
,
props
.
data
)
})
watchEffect
(()
=>
{
updateExperiments
(
form
.
course_id
)
})
const
checkProtocol
=
(
rule
:
any
,
value
:
any
,
callback
:
any
)
=>
{
if
(
!
value
)
{
return
callback
(
new
Error
(
'请阅读并同意'
))
}
else
{
callback
()
}
}
const
rules
=
ref
<
FormRules
>
({
title
:
[{
required
:
true
,
message
:
'请输入问题描述'
,
trigger
:
'blur'
}],
content
:
[{
required
:
true
,
message
:
'请输入问题详情'
,
trigger
:
'blur'
}]
files
:
[{
type
:
'array'
,
required
:
true
,
message
:
'请上传实验指导书'
,
trigger
:
'blur'
}],
name
:
[{
required
:
true
,
message
:
'请输入实验指导书名称'
,
trigger
:
'blur'
}],
course_id
:
[{
required
:
true
,
message
:
'请选择关联实验课程'
,
trigger
:
'blur'
}],
experiment_id
:
[{
required
:
true
,
message
:
'请选择关联实验'
,
trigger
:
'blur'
}],
protocol
:
[{
validator
:
checkProtocol
,
message
:
'请阅读并同意'
,
trigger
:
'change'
}]
})
const
isUpdate
=
$computed
(()
=>
{
return
!!
form
.
id
})
const
title
=
$computed
(()
=>
{
return
isUpdate
?
'编辑实验指导书'
:
'新增实验指导书'
})
function
handleUploadSuccess
(
file
:
any
)
{
form
.
name
=
file
.
name
form
.
size
=
file
.
size
form
.
url
=
file
.
raw
.
url
form
.
type
=
file
.
raw
.
type
console
.
log
(
file
)
}
// 提交
function
handleSubmit
()
{
formRef
?.
validate
().
then
(
update
)
formRef
?.
validate
().
then
(()
=>
{
console
.
log
(
form
)
isUpdate
?
handleUpdate
(
form
)
:
handleCreate
(
form
)
})
}
// 新增
function
handleCreate
(
params
:
BookCreateItem
)
{
createBook
(
params
).
then
(()
=>
{
ElMessage
({
message
:
'创建成功'
,
type
:
'success'
})
emit
(
'update'
)
emit
(
'update:modelValue'
,
false
)
})
}
// 修改
const
update
=
()
=>
{
// submitSuggestion(form
).then(() => {
// ElMessage({ message: '提交
成功', type: 'success' })
//
emit('update')
// formRef?.resetFields(
)
//
})
function
handleUpdate
(
params
:
BookCreateItem
)
{
updateBook
(
params
).
then
(()
=>
{
ElMessage
({
message
:
'修改
成功'
,
type
:
'success'
})
emit
(
'update'
)
emit
(
'update:modelValue'
,
false
)
})
}
</
script
>
<
template
>
<el-dialog
:title=
"title"
:close-on-click-modal=
"false"
width=
"600px"
>
<el-form
ref=
"formRef"
:model=
"form"
:rules=
"rules"
label-width=
"1
5
0px"
>
<el-form-item
label=
"实验指导书文件"
prop=
"
title
"
>
<AppUpload
v-model=
"form.file"
>
<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=
"1
3
0px"
>
<el-form-item
label=
"实验指导书文件"
prop=
"
files
"
>
<AppUpload
v-model=
"form.file
s"
:limit=
"1"
@
success=
"handleUploadSuccess
"
>
<template
#
tip
>
实验指导书文件支持格式包含:doc docx xls xlsx pdf ppt pptx,大小不超过50M
</
template
>
</AppUpload>
</el-form-item>
<el-form-item
label=
"实验指导书名称"
prop=
"
content
"
>
<el-input
v-model=
"form.
titl
e"
></el-input>
<el-form-item
label=
"实验指导书名称"
prop=
"
name
"
>
<el-input
v-model=
"form.
nam
e"
></el-input>
</el-form-item>
<el-form-item
label=
"关联实验课程"
prop=
"files"
>
<el-input
v-model=
"form.title"
/>
<el-form-item
label=
"关联实验课程"
prop=
"course_id"
>
<el-select
v-model=
"form.course_id"
style=
"width: 100%"
>
<el-option
v-for=
"item in courses"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"关联实验"
prop=
"files"
>
<el-select
v-model=
"form.title"
/>
<el-form-item
label=
"关联实验"
prop=
"experiment_id"
>
<el-select
v-model=
"form.experiment_id"
style=
"width: 100%"
>
<el-option
v-for=
"item in experiments"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"有效状态"
prop=
"files"
>
<el-radio-group
v-model=
"form.status"
class=
"ml-4"
>
<el-radio
label=
"1"
>
有效
</el-radio>
<el-radio
label=
"2"
>
失效
</el-radio>
<el-form-item
label=
"有效状态"
prop=
"status"
>
<el-radio-group
v-model=
"form.status"
>
<el-radio
v-for=
"item in status"
:key=
"item.id"
:label=
"item.value"
>
{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item>
<el-checkbox
label=
"我已阅读并同意"
></el-checkbox
>
<el-form-item
prop=
"protocol"
>
<el-checkbox
label=
"我已阅读并同意"
v-model=
"form.protocol"
/
>
<a
href=
"https://view.officeapps.live.com/op/view.aspx?src=https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/%E7%B4%AB%E8%8D%86%E6%95%99%E8%82%B2%E7%94%A8%E6%88%B7%E5%85%A5%E9%A9%BB%E5%8F%8A%E7%BD%91%E7%BB%9C%E6%95%99%E5%AD%A6%E8%B5%84%E6%BA%90%E5%8D%8F%E8%AE%AE(1).docx"
target=
"_blank"
...
...
src/modules/admin/lab/book/composables/useGetCourseList.ts
0 → 100644
浏览文件 @
df07ff92
import
{
getCourseList
}
from
'../api'
export
interface
CourseType
{
id
:
string
name
:
string
}
const
courses
=
ref
<
CourseType
[]
>
([])
export
function
useGetCourseList
()
{
!
courses
.
value
.
length
&&
getCourseList
().
then
((
res
:
any
)
=>
{
courses
.
value
=
res
.
data
})
return
{
courses
}
}
src/modules/admin/lab/book/composables/useGetExperimentList.ts
0 → 100644
浏览文件 @
df07ff92
import
{
getExperimentList
}
from
'../api'
export
interface
ExperimentType
{
id
:
string
name
:
string
}
export
function
useGetExperimentList
()
{
const
experiments
=
ref
<
ExperimentType
[]
>
([])
function
updateExperiments
(
courseId
:
string
)
{
getExperimentList
({
course_id
:
courseId
}).
then
((
res
:
any
)
=>
{
experiments
.
value
=
res
.
data
})
}
return
{
experiments
,
updateExperiments
}
}
src/modules/admin/lab/book/types.ts
0 → 100644
浏览文件 @
df07ff92
export
interface
BookItem
{
course_id
:
string
course_name
:
string
created_operator
:
string
created_operator_name
:
string
created_time
:
string
delete_time
:
string
id
:
string
length
:
string
name
:
string
organ_id
:
string
organ_id_name
:
string
project_id
:
string
project_id_name
:
string
score
:
string
status
:
string
status_name
:
string
type
:
string
type_name
:
string
updated_operator
:
string
updated_operator_name
:
string
updated_time
:
string
}
export
interface
BookCreateItem
{
id
?:
string
experiment_id
:
string
course_id
:
string
status
:
string
name
:
string
type
:
string
url
:
string
size
:
string
protocol
:
boolean
files
:
[]
}
src/modules/admin/lab/book/views/Index.vue
浏览文件 @
df07ff92
<
script
setup
lang=
"ts"
>
import
type
{
BookItem
}
from
'../types'
import
{
CirclePlusFilled
}
from
'@element-plus/icons-vue'
import
AppList
from
'@/components/base/AppList.vue'
import
ListItem
from
'../components/ListItem.vue'
import
FormDialog
from
'../components/FormDialog.vue'
// import { getBookList } from '../api'
import
{
getBookList
}
from
'../api'
const
FormDialog
=
defineAsyncComponent
(()
=>
import
(
'../components/FormDialog.vue'
))
const
appList
=
$ref
<
InstanceType
<
typeof
AppList
>
|
null
>
(
null
)
// 列表配置
const
listOptions
=
{
//
remote: {
//
httpRequest: getBookList,
// params: { name: '', lab
_id: '' }
//
},
remote
:
{
httpRequest
:
getBookList
,
params
:
{
name
:
''
,
experiment
_id
:
''
}
},
filters
:
[
{
type
:
'input'
,
prop
:
'name'
,
label
:
'实验指导书名称'
,
placeholder
:
'请输入实验指导书名称'
},
{
type
:
'select'
,
prop
:
'lab_id'
,
label
:
'关联实验'
,
placeholder
:
'请选择关联实验'
}
],
columns
:
[{
label
:
'名称'
,
prop
:
'name'
}],
data
:
[{},
{},
{},
{},
{},
{},
{}]
columns
:
[{
label
:
'名称'
,
prop
:
'name'
}]
}
let
dialogVisible
=
$ref
(
false
)
const
rowData
=
ref
<
BookItem
|
undefined
|
null
>
(
null
)
// 新增
function
handleAdd
()
{
rowData
.
value
=
null
dialogVisible
=
true
}
// 编辑
function
handleUpdate
(
row
:
BookItem
)
{
rowData
.
value
=
row
dialogVisible
=
true
}
function
onUpdateSuccess
()
{
dialogVisible
=
false
appList
?.
refetch
()
}
</
script
>
<
template
>
<AppCard
title=
"实验指导书管理"
>
<AppList
v-bind=
"listOptions"
>
<AppList
v-bind=
"listOptions"
ref=
"appList"
>
<template
#
header-buttons
>
<el-button
type=
"primary"
round
:icon=
"CirclePlusFilled"
@
click=
"handleAdd"
>
新增实验指导书
</el-button>
</
template
>
...
...
@@ -36,8 +52,8 @@ function handleAdd() {
</div>
</
template
>
</AppList>
<FormDialog
v-model=
"dialogVisible"
></FormDialog>
</AppCard>
<FormDialog
v-model=
"dialogVisible"
:data=
"rowData"
@
update=
"onUpdateSuccess"
v-if=
"dialogVisible"
></FormDialog>
</template>
<
style
lang=
"scss"
scoped
>
...
...
src/modules/admin/system/experiment/components/FormDialog.vue
浏览文件 @
df07ff92
...
...
@@ -7,7 +7,6 @@ import { createExperiment, updateExperiment } from '../api'
import
{
useGetProjectList
}
from
'@/composables/useGetProjectList'
import
{
useGetCourseList
}
from
'../composables/useGetCourseList'
import
{
useGetTeacherList
}
from
'../composables/useGetTeacherList'
import
{
useMapStore
}
from
'@/stores/map'
interface
Props
{
...
...
@@ -128,7 +127,7 @@ function handleUpdate(params: ExperimentCreateItem) {
<el-form-item
label=
"实验总成绩"
prop=
"score"
>
<el-input-number
v-model=
"form.score"
:min=
"1"
:max=
"150"
step-strictly
style=
"width: 100%"
/>
</el-form-item>
<el-form-item
label=
"有效状态"
prop=
"
file
s"
>
<el-form-item
label=
"有效状态"
prop=
"
statu
s"
>
<el-radio-group
v-model=
"form.status"
>
<el-radio
v-for=
"item in status"
:key=
"item.id"
:label=
"item.value"
>
{{
item
.
label
}}
</el-radio>
</el-radio-group>
...
...
src/modules/admin/system/experiment/views/Index.vue
浏览文件 @
df07ff92
<
script
setup
lang=
"ts"
>
import
{
CirclePlusFilled
}
from
'@element-plus/icons-vue'
import
type
{
ExperimentItem
}
from
'../types'
import
{
CirclePlusFilled
}
from
'@element-plus/icons-vue'
import
AppList
from
'@/components/base/AppList.vue'
import
{
getExperimentList
}
from
'../api'
...
...
src/modules/student/lab/api.ts
浏览文件 @
df07ff92
...
...
@@ -2,21 +2,21 @@ import httpRequest from '@/utils/axios'
// 获取课程列表
export
function
getCourseList
()
{
return
httpRequest
.
get
(
'/api/
student
/v1/student/course/all'
)
return
httpRequest
.
get
(
'/api/
lab
/v1/student/course/all'
)
}
// 获取实验指导书
export
function
getExperimentBook
(
params
:
{
experiment_id
:
string
})
{
return
httpRequest
.
get
(
'/api/
student
/v1/student/experiment-book/detail'
,
{
params
})
return
httpRequest
.
get
(
'/api/
lab
/v1/student/experiment-book/detail'
,
{
params
})
}
// 获取实验视频
export
function
getExperimentVideoList
(
params
:
{
experiment_id
:
string
})
{
return
httpRequest
.
get
(
'/api/
student
/v1/student/experiment-video/all'
,
{
params
})
return
httpRequest
.
get
(
'/api/
lab
/v1/student/experiment-video/all'
,
{
params
})
}
// 获取实验视频播放信息
export
function
getExperimentVideoPlayInfo
(
params
:
{
source_id
:
string
})
{
return
httpRequest
.
get
(
'/api/
student
/v1/student/experiment-video/replay-list'
,
{
params
})
return
httpRequest
.
get
(
'/api/
lab
/v1/student/experiment-video/replay-list'
,
{
params
})
}
// 获取实验讨论交流
...
...
@@ -26,33 +26,33 @@ export function getExperimentDiscussList(params: {
page
?:
number
'per-page'
?:
number
})
{
return
httpRequest
.
get
(
'/api/
student
/v1/student/experiment-topic/list'
,
{
params
})
return
httpRequest
.
get
(
'/api/
lab
/v1/student/experiment-topic/list'
,
{
params
})
}
// 发表新话题
export
function
addExperimentDiscuss
(
data
:
{
experiment_id
:
string
;
title
:
string
;
content
:
string
})
{
return
httpRequest
.
post
(
'/api/
student
/v1/student/experiment-topic/issue'
,
data
)
return
httpRequest
.
post
(
'/api/
lab
/v1/student/experiment-topic/issue'
,
data
)
}
// 发表回复
export
function
addExperimentDiscussComment
(
data
:
{
discussion_id
:
string
;
content
:
string
})
{
return
httpRequest
.
post
(
'/api/
student
/v1/student/experiment-topic/comment'
,
data
)
return
httpRequest
.
post
(
'/api/
lab
/v1/student/experiment-topic/comment'
,
data
)
}
// 获取实验记录
export
function
getExperimentRecord
(
params
:
{
experiment_id
:
string
})
{
return
httpRequest
.
get
(
'/api/
student
/v1/student/experiment-record/detail'
,
{
params
})
return
httpRequest
.
get
(
'/api/
lab
/v1/student/experiment-record/detail'
,
{
params
})
}
// 截图
export
function
uploadExperimentPicture
(
data
:
{
experiment_id
:
string
;
pictures
:
string
})
{
return
httpRequest
.
post
(
'/api/
student
/v1/student/experiment-record/upload-pictures'
,
data
)
return
httpRequest
.
post
(
'/api/
lab
/v1/student/experiment-record/upload-pictures'
,
data
)
}
// 上传实验报告
export
function
uploadExperimentReport
(
data
:
{
experiment_id
:
string
;
file
:
string
})
{
return
httpRequest
.
post
(
'/api/
student
/v1/student/experiment-record/upload-report'
,
data
)
return
httpRequest
.
post
(
'/api/
lab
/v1/student/experiment-record/upload-report'
,
data
)
}
// 提交实验记录
export
function
submitExperimentRecord
(
data
:
{
experiment_id
:
string
})
{
return
httpRequest
.
post
(
'/api/
student
/v1/student/experiment-record/submit'
,
data
)
return
httpRequest
.
post
(
'/api/
lab
/v1/student/experiment-record/submit'
,
data
)
}
src/modules/student/lab/components/ReportDialog.vue
浏览文件 @
df07ff92
...
...
@@ -53,7 +53,7 @@ const update = () => {
>
<el-form
ref=
"formRef"
:model=
"form"
:rules=
"rules"
>
<el-form-item
label=
"实验报告文件"
prop=
"files"
>
<AppUpload
v-model=
"form.files"
>
<AppUpload
v-model=
"form.files"
:limit=
"1"
>
<template
#
tip
>
实验报告文件只能上传一个,支持格式包含:doc docx pdf ppt pptx,大小不超过50M
</
template
>
</AppUpload>
</el-form-item>
...
...
src/stores/menu.ts
浏览文件 @
df07ff92
...
...
@@ -25,22 +25,22 @@ const adminMenus: IMenuItem[] = [
path
:
'/admin/lab'
,
children
:
[
{
icon
:
Tickets
,
icon
:
markRaw
(
Tickets
)
,
name
:
'实验指导书管理'
,
path
:
'/admin/lab/book'
},
{
icon
:
Tickets
,
icon
:
markRaw
(
Tickets
)
,
name
:
'实验操作视频管理'
,
path
:
'/admin/lab/video'
},
{
icon
:
Tickets
,
icon
:
markRaw
(
Tickets
)
,
name
:
'实验讨论交流'
,
path
:
'/admin/lab/discuss'
},
{
icon
:
Tickets
,
icon
:
markRaw
(
Tickets
)
,
name
:
'实验成绩管理'
,
path
:
'/admin/lab/score'
}
...
...
@@ -59,7 +59,7 @@ const adminMenus: IMenuItem[] = [
path
:
'/admin/system'
,
children
:
[
{
icon
:
Tickets
,
icon
:
markRaw
(
Tickets
)
,
name
:
'实验管理'
,
path
:
'/admin/system/experiment'
}
...
...
@@ -74,7 +74,7 @@ export const useMenuStore = defineStore({
adminMenus
}),
getters
:
{
menus
:
state
=>
state
.
student
Menus
menus
:
state
=>
state
.
admin
Menus
},
actions
:
{}
})
vite.config.ts
浏览文件 @
df07ff92
...
...
@@ -26,10 +26,10 @@ export default defineConfig(({ mode }) => ({
cert
:
fs
.
readFileSync
(
path
.
join
(
__dirname
,
'./https/dev.ezijing.com.pem'
))
},
proxy
:
{
'/api/
student
'
:
{
'/api/
lab
'
:
{
target
:
'http://test-resource-api.ezijing.com:8001'
,
changeOrigin
:
true
,
rewrite
:
path
=>
path
.
replace
(
/^
\/
api
\/
student
/
,
''
)
rewrite
:
path
=>
path
.
replace
(
/^
\/
api
\/
lab
/
,
''
)
},
'/api'
:
'https://resource-center.ezijing.com'
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论