提交 02916e88 authored 作者: 王鹏飞's avatar 王鹏飞

feat: 更新菜单项顺序,修复角色权限判断逻辑,添加学期时间字段,优化课程创建和更新逻辑

上级 5e62f249
......@@ -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,
......
......@@ -75,7 +75,7 @@ const handleGetTeacherList = () => {
})
})
}
if (userStore.roles[0].name !== '超级管理员') {
if (props.isEdit === '0') {
form.organ_id = userStore.organization?.id
handleGetTeacherList()
}
......
......@@ -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({
......
......@@ -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>
......
......@@ -109,7 +109,7 @@ const handleGetProList = () => {
})
})
}
if (userStore.roles[0].name !== '超级管理员') {
if (props.isEdit === '0') {
form.organ_id = userStore.organization?.id
handleGetProList()
}
......
......@@ -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()
createCourse(form).then((res: any) => {
if (res.code === 0) {
// 操作第二部
const 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 人 到此讨论。请谨慎行事。
请先完成此评论的编辑!
请 注册 或者 后发表评论