Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
center-resource
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
center-resource
Commits
02916e88
提交
02916e88
authored
9月 16, 2026
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: 更新菜单项顺序,修复角色权限判断逻辑,添加学期时间字段,优化课程创建和更新逻辑
上级
5e62f249
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
33 行增加
和
28 行删除
+33
-28
menus.ts
src/assets/menus.ts
+6
-7
AddClass.vue
src/modules/admin/class/components/AddClass.vue
+1
-1
AddSemester.vue
src/modules/admin/semester/components/AddSemester.vue
+2
-0
AddStaff.vue
src/modules/admin/staff/components/AddStaff.vue
+5
-5
AddStudent.vue
src/modules/admin/student/components/AddStudent.vue
+1
-1
StepOne.vue
src/modules/course/create/views/StepOne.vue
+18
-14
没有找到文件。
src/assets/menus.ts
浏览文件 @
02916e88
...
...
@@ -115,12 +115,6 @@ export const menus: IMenuItem[] = [
name
:
'学生管理'
,
path
:
'/admin/student'
,
},
{
tag
:
'v1-backend-specialty-list'
,
icon
:
Promotion
,
name
:
'专业管理'
,
path
:
'/admin/pro'
,
},
{
tag
:
'v1-learning-class-list'
,
icon
:
School
,
...
...
@@ -133,7 +127,12 @@ export const menus: IMenuItem[] = [
name
:
'学期管理'
,
path
:
'/admin/semester'
,
},
{
tag
:
'v1-backend-specialty-list'
,
icon
:
Promotion
,
name
:
'专业管理'
,
path
:
'/admin/pro'
,
},
{
tag
:
'v1-backend-category-list'
,
icon
:
Filter
,
...
...
src/modules/admin/class/components/AddClass.vue
浏览文件 @
02916e88
...
...
@@ -75,7 +75,7 @@ const handleGetTeacherList = () => {
})
})
}
if
(
userStore
.
roles
[
0
].
name
!==
'超级管理员
'
)
{
if
(
props
.
isEdit
===
'0
'
)
{
form
.
organ_id
=
userStore
.
organization
?.
id
handleGetTeacherList
()
}
...
...
src/modules/admin/semester/components/AddSemester.vue
浏览文件 @
02916e88
...
...
@@ -25,6 +25,8 @@ const form: any = reactive({
const
rules
=
reactive
<
FormRules
>
({
name
:
[{
required
:
true
,
message
:
'请输入学期名称'
,
trigger
:
'blur'
}],
organ_id
:
[{
required
:
true
,
message
:
'请选择所属部门/学校'
,
trigger
:
'change'
}],
start_time
:
[{
required
:
true
,
message
:
'请选择学期开始日期'
,
trigger
:
'change'
}],
end_time
:
[{
required
:
true
,
message
:
'请选择学期结束日期'
,
trigger
:
'change'
}],
status
:
[{
required
:
true
,
message
:
'请选择生效状态'
,
trigger
:
'change'
}]
})
const
props
=
defineProps
({
...
...
src/modules/admin/staff/components/AddStaff.vue
浏览文件 @
02916e88
...
...
@@ -38,7 +38,7 @@ const form: any = reactive({
name
:
''
,
gender
:
'1'
,
mobile
:
''
,
role
:
[]
,
role
:
roleList
.
map
((
item
:
any
)
=>
item
.
value
)
,
email
:
''
,
status
:
'1'
,
account_type
:
'1'
,
...
...
@@ -59,7 +59,7 @@ const rules = reactive<FormRules>({
status
:
[{
required
:
true
,
message
:
'请选择生效状态'
,
trigger
:
'change'
}],
account_type
:
[{
required
:
true
,
message
:
'请选择账号类型'
,
trigger
:
'change'
}],
})
if
(
userStore
.
roles
[
0
].
name
!==
'超级管理员
'
)
{
if
(
props
.
isEdit
===
'0
'
)
{
form
.
organ_id
=
userStore
.
organization
?.
id
}
// 取消
...
...
@@ -139,6 +139,9 @@ if (props.isEdit === '2' || props.isEdit === '1') {
<el-form-item
label=
"手机号"
prop=
"mobile"
>
<el-input
v-model=
"form.mobile"
:disabled=
"props.isEdit === '2' || props.isEdit === '1'"
></el-input>
</el-form-item>
<el-form-item
label=
"邮箱"
prop=
"email"
>
<el-input
v-model=
"form.email"
:disabled=
"props.isEdit === '2'"
/>
</el-form-item>
<el-form-item
label=
"角色类型"
prop=
"role"
>
<el-checkbox-group
v-model=
"form.role"
:disabled=
"props.isEdit === '2'"
>
<el-checkbox
v-for=
"(item, index) in roleList"
:key=
"index"
:label=
"item.value"
>
{{
item
.
label
}}
</el-checkbox>
...
...
@@ -158,9 +161,6 @@ if (props.isEdit === '2' || props.isEdit === '1') {
style=
"width: 100%"
value-format=
"YYYY-MM-DD HH:mm:ss"
/>
</el-form-item>
<el-form-item
label=
"邮箱"
prop=
"email"
>
<el-input
v-model=
"form.email"
:disabled=
"props.isEdit === '2'"
/>
</el-form-item>
<el-form-item
label=
"生效状态"
prop=
"status"
>
<el-radio-group
v-model=
"form.status"
:disabled=
"props.isEdit === '2'"
>
<el-radio
v-for=
"(item, index) in statusList"
:key=
"index"
:label=
"item.value"
>
{{
item
.
label
}}
</el-radio>
...
...
src/modules/admin/student/components/AddStudent.vue
浏览文件 @
02916e88
...
...
@@ -109,7 +109,7 @@ const handleGetProList = () => {
})
})
}
if
(
userStore
.
roles
[
0
].
name
!==
'超级管理员
'
)
{
if
(
props
.
isEdit
===
'0
'
)
{
form
.
organ_id
=
userStore
.
organization
?.
id
handleGetProList
()
}
...
...
src/modules/course/create/views/StepOne.vue
浏览文件 @
02916e88
...
...
@@ -62,8 +62,8 @@ const defaultProps = { children: 'children', label: 'category_name', value: 'id'
// form
const
form
=
reactive
<
Record
<
string
,
any
>>
({
name
:
''
,
online_type
:
''
,
elective_type
:
''
,
online_type
:
'
2
'
,
elective_type
:
'
1
'
,
classification
:
''
,
credit
:
''
,
source
:
'2'
,
...
...
@@ -91,7 +91,6 @@ const rules = reactive<FormRules>({
{
required
:
true
,
message
:
'请输入学分'
},
{
pattern
:
/
\d
/
,
message
:
'请输入数字'
}
],
lecturer_id
:
[{
required
:
true
,
message
:
'请添加课程讲师'
}],
specialty_id
:
[{
required
:
true
,
message
:
'请选择适用专业'
}]
})
...
...
@@ -164,38 +163,42 @@ function setDefaultData(data: any[] = []) {
}
// 提交
function
handleSubmit
()
{
function
handleSubmit
(
goNext
=
true
)
{
Promise
.
all
([
ruleFormRef
.
value
!
.
validate
(),
ruleFormRef2
.
value
!
.
validate
()])
.
then
(()
=>
{
isUpdate
.
value
?
handleUpdate
(
)
:
handleCreate
(
)
isUpdate
.
value
?
handleUpdate
(
goNext
)
:
handleCreate
(
goNext
)
})
.
catch
(()
=>
{
ElMessage
.
error
(
'请检查表单是否填写完整'
)
})
}
// 创建课程
function
handleCreate
(
)
{
async
function
handleCreate
(
goNext
=
true
)
{
form
.
specialty_id
=
form
.
specialty_id
.
toString
()
c
reateCourse
(
form
).
then
((
res
:
any
)
=>
{
if
(
res
.
code
===
0
)
{
// 操作第二部
c
onst
res
:
any
=
await
createCourse
(
form
)
if
(
goNext
)
{
router
.
push
({
path
:
'/course/update-course/stepTwo'
,
query
:
{
id
:
res
.
data
.
id
,
isEditCourse
:
'0'
,
bid
:
form
.
book_id
}
})
}
else
{
ElMessage
.
success
(
'保存成功'
)
router
.
push
(
'/course/my'
)
}
})
}
// 修改课程
function
handleUpdate
()
{
function
handleUpdate
(
goNext
=
true
)
{
form
.
specialty_id
=
form
.
specialty_id
.
toString
()
updateCourse
(
form
).
then
((
res
:
any
)
=>
{
if
(
res
.
code
===
0
)
{
// 操作第二部
if
(
goNext
)
{
router
.
push
({
path
:
'/course/update-course/stepTwo'
,
query
:
{
id
:
res
.
data
.
id
,
isEditCourse
:
'1'
,
bid
:
form
.
book_id
}
})
}
else
{
ElMessage
.
success
(
'保存成功'
)
router
.
push
(
'/course/my'
)
}
})
}
...
...
@@ -336,7 +339,8 @@ const handleTextbook = (val: any) => {
</el-form>
</div>
<div
class=
"btn-box"
style=
"display: flex; justify-content: center"
>
<el-button
type=
"primary"
@
click=
"handleSubmit"
>
下一步
</el-button>
<el-button
type=
"primary"
@
click=
"handleSubmit(true)"
>
下一步
</el-button>
<el-button
@
click=
"handleSubmit(false)"
>
保存
</el-button>
</div>
<!-- 添加封面 -->
<AddCourseCover
@
change=
"coverChange"
v-model:dialogVisible=
"dialogVisible"
></AddCourseCover>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论