Ver código fonte

1、课程上传图片集功能
2、课程排序、标签必填,标签单选

liyanbo 8 meses atrás
pai
commit
b26c123655
1 arquivos alterados com 16 adições e 14 exclusões
  1. 16 14
      src/views/bjdx/course/CourseForm.vue

+ 16 - 14
src/views/bjdx/course/CourseForm.vue

@@ -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()
 }