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

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

上级 5e62f249
...@@ -115,12 +115,6 @@ export const menus: IMenuItem[] = [ ...@@ -115,12 +115,6 @@ export const menus: IMenuItem[] = [
name: '学生管理', name: '学生管理',
path: '/admin/student', path: '/admin/student',
}, },
{
tag: 'v1-backend-specialty-list',
icon: Promotion,
name: '专业管理',
path: '/admin/pro',
},
{ {
tag: 'v1-learning-class-list', tag: 'v1-learning-class-list',
icon: School, icon: School,
...@@ -133,7 +127,12 @@ export const menus: IMenuItem[] = [ ...@@ -133,7 +127,12 @@ export const menus: IMenuItem[] = [
name: '学期管理', name: '学期管理',
path: '/admin/semester', path: '/admin/semester',
}, },
{
tag: 'v1-backend-specialty-list',
icon: Promotion,
name: '专业管理',
path: '/admin/pro',
},
{ {
tag: 'v1-backend-category-list', tag: 'v1-backend-category-list',
icon: Filter, icon: Filter,
......
...@@ -75,7 +75,7 @@ const handleGetTeacherList = () => { ...@@ -75,7 +75,7 @@ const handleGetTeacherList = () => {
}) })
}) })
} }
if (userStore.roles[0].name !== '超级管理员') { if (props.isEdit === '0') {
form.organ_id = userStore.organization?.id form.organ_id = userStore.organization?.id
handleGetTeacherList() handleGetTeacherList()
} }
......
...@@ -25,6 +25,8 @@ const form: any = reactive({ ...@@ -25,6 +25,8 @@ const form: any = reactive({
const rules = reactive<FormRules>({ const rules = reactive<FormRules>({
name: [{ required: true, message: '请输入学期名称', trigger: 'blur' }], name: [{ required: true, message: '请输入学期名称', trigger: 'blur' }],
organ_id: [{ required: true, message: '请选择所属部门/学校', trigger: 'change' }], 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' }] status: [{ required: true, message: '请选择生效状态', trigger: 'change' }]
}) })
const props = defineProps({ const props = defineProps({
......
...@@ -38,7 +38,7 @@ const form: any = reactive({ ...@@ -38,7 +38,7 @@ const form: any = reactive({
name: '', name: '',
gender: '1', gender: '1',
mobile: '', mobile: '',
role: [], role: roleList.map((item: any) => item.value),
email: '', email: '',
status: '1', status: '1',
account_type: '1', account_type: '1',
...@@ -59,7 +59,7 @@ const rules = reactive<FormRules>({ ...@@ -59,7 +59,7 @@ const rules = reactive<FormRules>({
status: [{ required: true, message: '请选择生效状态', trigger: 'change' }], status: [{ required: true, message: '请选择生效状态', trigger: 'change' }],
account_type: [{ 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 form.organ_id = userStore.organization?.id
} }
// 取消 // 取消
...@@ -139,6 +139,9 @@ if (props.isEdit === '2' || props.isEdit === '1') { ...@@ -139,6 +139,9 @@ if (props.isEdit === '2' || props.isEdit === '1') {
<el-form-item label="手机号" prop="mobile"> <el-form-item label="手机号" prop="mobile">
<el-input v-model="form.mobile" :disabled="props.isEdit === '2' || props.isEdit === '1'"></el-input> <el-input v-model="form.mobile" :disabled="props.isEdit === '2' || props.isEdit === '1'"></el-input>
</el-form-item> </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-form-item label="角色类型" prop="role">
<el-checkbox-group v-model="form.role" :disabled="props.isEdit === '2'"> <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> <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') { ...@@ -158,9 +161,6 @@ if (props.isEdit === '2' || props.isEdit === '1') {
style="width: 100%" style="width: 100%"
value-format="YYYY-MM-DD HH:mm:ss" /> value-format="YYYY-MM-DD HH:mm:ss" />
</el-form-item> </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-form-item label="生效状态" prop="status">
<el-radio-group v-model="form.status" :disabled="props.isEdit === '2'"> <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> <el-radio v-for="(item, index) in statusList" :key="index" :label="item.value">{{ item.label }}</el-radio>
......
...@@ -109,7 +109,7 @@ const handleGetProList = () => { ...@@ -109,7 +109,7 @@ const handleGetProList = () => {
}) })
}) })
} }
if (userStore.roles[0].name !== '超级管理员') { if (props.isEdit === '0') {
form.organ_id = userStore.organization?.id form.organ_id = userStore.organization?.id
handleGetProList() handleGetProList()
} }
......
...@@ -62,8 +62,8 @@ const defaultProps = { children: 'children', label: 'category_name', value: 'id' ...@@ -62,8 +62,8 @@ const defaultProps = { children: 'children', label: 'category_name', value: 'id'
// form // form
const form = reactive<Record<string, any>>({ const form = reactive<Record<string, any>>({
name: '', name: '',
online_type: '', online_type: '2',
elective_type: '', elective_type: '1',
classification: '', classification: '',
credit: '', credit: '',
source: '2', source: '2',
...@@ -91,7 +91,6 @@ const rules = reactive<FormRules>({ ...@@ -91,7 +91,6 @@ const rules = reactive<FormRules>({
{ required: true, message: '请输入学分' }, { required: true, message: '请输入学分' },
{ pattern: /\d/, message: '请输入数字' } { pattern: /\d/, message: '请输入数字' }
], ],
lecturer_id: [{ required: true, message: '请添加课程讲师' }],
specialty_id: [{ required: true, message: '请选择适用专业' }] specialty_id: [{ required: true, message: '请选择适用专业' }]
}) })
...@@ -164,38 +163,42 @@ function setDefaultData(data: any[] = []) { ...@@ -164,38 +163,42 @@ function setDefaultData(data: any[] = []) {
} }
// 提交 // 提交
function handleSubmit() { function handleSubmit(goNext = true) {
Promise.all([ruleFormRef.value!.validate(), ruleFormRef2.value!.validate()]) Promise.all([ruleFormRef.value!.validate(), ruleFormRef2.value!.validate()])
.then(() => { .then(() => {
isUpdate.value ? handleUpdate() : handleCreate() isUpdate.value ? handleUpdate(goNext) : handleCreate(goNext)
}) })
.catch(() => { .catch(() => {
ElMessage.error('请检查表单是否填写完整') ElMessage.error('请检查表单是否填写完整')
}) })
} }
// 创建课程 // 创建课程
function handleCreate() { async function handleCreate(goNext = true) {
form.specialty_id = form.specialty_id.toString() form.specialty_id = form.specialty_id.toString()
createCourse(form).then((res: any) => { const res: any = await createCourse(form)
if (res.code === 0) {
// 操作第二部 if (goNext) {
router.push({ router.push({
path: '/course/update-course/stepTwo', path: '/course/update-course/stepTwo',
query: { id: res.data.id, isEditCourse: '0', bid: form.book_id } 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() form.specialty_id = form.specialty_id.toString()
updateCourse(form).then((res: any) => { updateCourse(form).then((res: any) => {
if (res.code === 0) { if (goNext) {
// 操作第二部
router.push({ router.push({
path: '/course/update-course/stepTwo', path: '/course/update-course/stepTwo',
query: { id: res.data.id, isEditCourse: '1', bid: form.book_id } 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) => { ...@@ -336,7 +339,8 @@ const handleTextbook = (val: any) => {
</el-form> </el-form>
</div> </div>
<div class="btn-box" style="display: flex; justify-content: center"> <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> </div>
<!-- 添加封面 --> <!-- 添加封面 -->
<AddCourseCover @change="coverChange" v-model:dialogVisible="dialogVisible"></AddCourseCover> <AddCourseCover @change="coverChange" v-model:dialogVisible="dialogVisible"></AddCourseCover>
......
Markdown 格式
0% 或
您添加了 0 人 到此讨论。请谨慎行事。
请先完成此评论的编辑!
请 注册 或者 后发表评论