|
|
@@ -13,7 +13,7 @@
|
|
|
:data="courseTypeTree"
|
|
|
:props="{
|
|
|
...defaultProps,
|
|
|
- label: (node) => `${node.ctType}${node.ctTypeNode === '0' ? '(年级)' : node.ctTypeNode === '1' ? 'ai通识课' : '(ai实操课)'}`,
|
|
|
+ label: (node) => `${node.ctType}${node.ctTypeNode === '0' ? '(年级)' : node.ctTypeNode === '1' ? '(ai通识课)' : '(ai实操课)'}`,
|
|
|
// 根据 ctTypeNode 字段判断是否禁用选项
|
|
|
disabled: (node) => node.ctTypeNode === '0',
|
|
|
// 明确指定 value 字段为 id
|
|
|
@@ -213,7 +213,6 @@
|
|
|
<el-select
|
|
|
v-model="formData.courseLabel"
|
|
|
placeholder="请选择课程标签"
|
|
|
- multiple
|
|
|
clearable
|
|
|
>
|
|
|
<el-option
|
|
|
@@ -289,21 +288,19 @@ const formData = ref({
|
|
|
courseTeacher: undefined,
|
|
|
courseSize: undefined,
|
|
|
courseTime: undefined,
|
|
|
- courseIsInspect: undefined,
|
|
|
+ courseIsInspect: "false",
|
|
|
courseType: undefined,
|
|
|
courseLabel: undefined,
|
|
|
courseOrder: undefined,
|
|
|
- courseStatus: undefined
|
|
|
+ courseStatus: "0"
|
|
|
})
|
|
|
|
|
|
const formRules = reactive({
|
|
|
+ courseType: [{ required: true, message: '课程类型不能为空', trigger: 'blur' }],
|
|
|
courseName: [{ required: true, message: '课程名称不能为空', trigger: 'blur' }],
|
|
|
courseContent: [{ required: true, message: '课程内容不能为空', trigger: 'blur' }],
|
|
|
- // courseAuthor: [{ required: true, message: '课程作者不能为空', trigger: 'blur' }],
|
|
|
- // courseTeacher: [{ required: true, message: '课程老师不能为空', trigger: 'blur' }],
|
|
|
- // courseSize: [{ required: true, message: '课程大小不能为空', trigger: 'blur' }],
|
|
|
- // courseTime: [{ required: true, message: '课程时长不能为空', trigger: 'blur' }],
|
|
|
- // courseLabel: [{ required: true, message: '课程标签不能为空', trigger: 'blur' }]
|
|
|
+ courseLabel: [{ required: true, message: '课程标签不能为空', trigger: 'blur' }],
|
|
|
+ courseOrder: [{ required: true, message: '课程排序不能为空', trigger: 'blur' }]
|
|
|
})
|
|
|
const formRef = ref() // 表单 Ref
|
|
|
const courseTypeTree = ref() // 树形结构
|
|
|
@@ -322,7 +319,8 @@ const open = async (type: string, id?: number) => {
|
|
|
formData.value = {
|
|
|
...formData.value,
|
|
|
...courseData,
|
|
|
- courseLabel: courseData.courseLabel?.split(',')
|
|
|
+ // courseLabel: courseData.courseLabel?.split(','),
|
|
|
+ courseImagePath: courseData.courseImagePath?.split(',')
|
|
|
}
|
|
|
// 确保 courseType 为正确的 id 类型
|
|
|
formData.value.courseType = courseData.courseType ? Number(courseData.courseType) : undefined
|
|
|
@@ -343,8 +341,11 @@ const submitForm = async () => {
|
|
|
// 提交请求
|
|
|
formLoading.value = true
|
|
|
try {
|
|
|
- const data = formData.value as unknown as CourseVO
|
|
|
- data.courseLabel = data.courseLabel?.join(',')
|
|
|
+ const data = { ...formData.value } as unknown as CourseVO
|
|
|
+ if (data.courseContentType === 'image') {
|
|
|
+ data.courseImagePath = data.courseImagePath?.join(',')
|
|
|
+ }
|
|
|
+ // data.courseLabel = data.courseLabel?.join(',')
|
|
|
if (formType.value === 'create') {
|
|
|
await CourseApi.createCourse(data)
|
|
|
message.success(t('common.createSuccess'))
|
|
|
@@ -353,6 +354,7 @@ const submitForm = async () => {
|
|
|
message.success(t('common.updateSuccess'))
|
|
|
}
|
|
|
dialogVisible.value = false
|
|
|
+
|
|
|
// 发送操作成功的事件
|
|
|
emit('success')
|
|
|
} finally {
|
|
|
@@ -387,11 +389,11 @@ const resetForm = () => {
|
|
|
courseTeacher: undefined,
|
|
|
courseSize: undefined,
|
|
|
courseTime: undefined,
|
|
|
- courseIsInspect: undefined,
|
|
|
+ courseIsInspect: "false",
|
|
|
courseType: undefined,
|
|
|
courseLabel: undefined,
|
|
|
courseOrder: undefined,
|
|
|
- courseStatus: undefined
|
|
|
+ courseStatus: "0"
|
|
|
}
|
|
|
formRef.value?.resetFields()
|
|
|
}
|