Переглянути джерело

1、试题选项绑定
2、课题内容选项回显类型内容

liyanbo 9 місяців тому
батько
коміт
d313b9ce5b

+ 2 - 1
src/api/bjdx/course/index.ts

@@ -14,9 +14,10 @@ export interface CourseVO {
   courseSize: number // 课程大小
   courseTime: number // 课程时长
   courseIsInspect: false // 课程是否有检查
-  courseType: string // 课程类型
+  courseType: number // 课程类型
   courseTypeName: string // 课程类型
   courseLabel: string // 课程标签
+  courseOrder: number // 课程排序
   courseStatus: "0" // 课程状态
 }
 

+ 0 - 1
src/config/axios/index.ts

@@ -21,7 +21,6 @@ const request = (option: any) => {
 export default {
   get: async <T = any>(option: any) => {
     const res = await request({ method: 'GET', ...option })
-    console.log("res",res)
     return res?.data as unknown as T
   },
   post: async <T = any>(option: any) => {

+ 1 - 1
src/types/auto-components.d.ts

@@ -148,7 +148,6 @@ declare module 'vue' {
     OperateLogV2: typeof import('./../components/OperateLogV2/src/OperateLogV2.vue')['default']
     Pagination: typeof import('./../components/Pagination/index.vue')['default']
     ParallelNode: typeof import('./../components/SimpleProcessDesignerV2/src/nodes/ParallelNode.vue')['default']
-    Physics: typeof import('./../views/phet/physics/index.vue')['default']
     ProcessDesigner: typeof import('./../components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue')['default']
     ProcessExpressionDialog: typeof import('./../components/bpmnProcessDesigner/package/penal/task/task-components/ProcessExpressionDialog.vue')['default']
     ProcessListenerDialog: typeof import('./../components/bpmnProcessDesigner/package/penal/listeners/ProcessListenerDialog.vue')['default']
@@ -185,6 +184,7 @@ declare module 'vue' {
     UploadImg: typeof import('./../components/UploadFile/src/UploadImg.vue')['default']
     UploadImgs: typeof import('./../components/UploadFile/src/UploadImgs.vue')['default']
     UploadModel: typeof import('./../components/UploadFile/src/UploadModel.vue')['default']
+    UploadMusic: typeof import('./../components/UploadFile/src/UploadMusic.vue')['default']
     UploadVideo: typeof import('./../components/UploadFile/src/UploadVideo.vue')['default']
     UserSelectForm: typeof import('./../components/UserSelectForm/index.vue')['default']
     UserTask: typeof import('./../components/bpmnProcessDesigner/package/penal/task/task-components/UserTask.vue')['default']

+ 25 - 10
src/views/bjdx/course/CourseForm.vue

@@ -11,10 +11,14 @@
         <el-tree-select
           v-model="formData.courseType"
           :data="courseTypeTree"
-          :props="{...defaultProps,
+          :props="{
+            ...defaultProps,
             label: (node) => `${node.ctType}${node.ctTypeNode === '0' ? '(年级)' : '(大纲课程)'}`,
             // 根据 ctTypeNode 字段判断是否禁用选项
-            disabled: (node) => node.ctTypeNode === '0'}"
+            disabled: (node) => node.ctTypeNode === '0',
+            // 明确指定 value 字段为 id
+            value: 'id'
+          }"
           placeholder="请选择课程类型"
           :default-expand-all="true"
         />
@@ -85,12 +89,12 @@
           </el-input-number>
         </el-form-item>
 
-        <el-form-item label="课程作者" prop="courseAuthor">
-          <el-input v-model="formData.courseAuthor" placeholder="请输入课程作者" />
-        </el-form-item>
-        <el-form-item label="课程老师" prop="courseTeacher">
-          <el-input v-model="formData.courseTeacher" placeholder="请输入课程老师" />
-        </el-form-item>
+<!--        <el-form-item label="课程作者" prop="courseAuthor">-->
+<!--          <el-input v-model="formData.courseAuthor" placeholder="请输入课程作者" />-->
+<!--        </el-form-item>-->
+<!--        <el-form-item label="课程老师" prop="courseTeacher">-->
+<!--          <el-input v-model="formData.courseTeacher" placeholder="请输入课程老师" />-->
+<!--        </el-form-item>-->
         <el-form-item label="课程标签" prop="courseLabel">
           <el-select
             v-model="formData.courseLabel"
@@ -106,6 +110,9 @@
             />
           </el-select>
         </el-form-item>
+        <el-form-item label="课程排序" prop="courseOrder">
+          <el-input-number v-model="formData.courseOrder" placeholder="请输入课程排序" class="!w-1/1" />
+        </el-form-item>
       </template>
 
       <el-form-item label="课程状态" prop="courseStatus">
@@ -157,6 +164,7 @@ const formData = ref({
   courseIsInspect: undefined,
   courseType: undefined,
   courseLabel: undefined,
+  courseOrder: undefined,
   courseStatus: undefined
 })
 const formRules = reactive({
@@ -181,8 +189,14 @@ const open = async (type: string, id?: number) => {
   if (id) {
     formLoading.value = true
     try {
-      formData.value = await CourseApi.getCourse(id)
-      formData.value.courseLabel = formData.value.courseLabel?.split(',')
+      const courseData = await CourseApi.getCourse(id)
+      formData.value = {
+        ...formData.value,
+        ...courseData,
+        courseLabel: courseData.courseLabel?.split(',')
+      }
+      // 确保 courseType 为正确的 id 类型
+      formData.value.courseType = courseData.courseType ? Number(courseData.courseType) : undefined
     } finally {
       formLoading.value = false
     }
@@ -233,6 +247,7 @@ const resetForm = () => {
     courseIsInspect: undefined,
     courseType: undefined,
     courseLabel: undefined,
+    courseOrder: undefined,
     courseStatus: undefined
   }
   formRef.value?.resetFields()

+ 5 - 3
src/views/bjdx/course/index.vue

@@ -145,10 +145,10 @@
       <el-table-column label="课程内容" align="center" prop="courseContent" width="120px">
           【预览查看】
       </el-table-column>
-      <el-table-column label="课程作者" align="center" prop="courseAuthor" />
-      <el-table-column label="课程老师" align="center" prop="courseTeacher" />
+<!--      <el-table-column label="课程作者" align="center" prop="courseAuthor" />-->
+<!--      <el-table-column label="课程老师" align="center" prop="courseTeacher" />-->
 <!--      <el-table-column label="课程大小" align="center" prop="courseSize" />-->
-      <el-table-column label="课程时长" align="center" prop="courseTime" />
+<!--      <el-table-column label="课程时长" align="center" prop="courseTime" />-->
       <el-table-column label="是否有检查" align="center" prop="courseIsInspect">
         <template #default="scope">
           <dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.courseIsInspect" />
@@ -159,6 +159,7 @@
           <dict-tag :type="DICT_TYPE.COURSE_LABEL" :value="scope.row.courseLabel" />
         </template>
       </el-table-column>
+      <el-table-column label="课程排序" align="center" prop="courseOrder"/>
       <el-table-column label="课程状态" align="center" prop="courseStatus">
         <template #default="scope">
           <dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.courseStatus" />
@@ -250,6 +251,7 @@ const queryParams = reactive({
   courseType: undefined,
   courseTypeName: undefined,
   courseLabel: undefined,
+  courseOrder: undefined,
   courseStatus: undefined
 })
 const queryFormRef = ref() // 搜索的表单

+ 7 - 4
src/views/bjdx/coursequestoption/CourseQuestOptionForm.vue

@@ -66,7 +66,7 @@ const formRules = reactive({
 const formRef = ref() // 表单 Ref
 
 /** 打开弹窗 */
-const open = async (type: string, id?: number) => {
+const open = async (type: string, id?: number, questId?: number) => {
   dialogVisible.value = true
   dialogTitle.value = t('action.' + type)
   formType.value = type
@@ -80,6 +80,8 @@ const open = async (type: string, id?: number) => {
       formLoading.value = false
     }
   }
+
+  formData.value.cqoQuestId = Number(questId) // 设置试题id
 }
 defineExpose({ open }) // 提供 open 方法,用于打开弹窗
 
@@ -92,12 +94,13 @@ const submitForm = async () => {
   formLoading.value = true
   try {
     const data = formData.value as unknown as CourseQuestOptionVO
+    console.log("============----",formData.value,data)
     if (formType.value === 'create') {
-      await CourseQuestOptionApi.createCourseQuestOption(data)
+      // await CourseQuestOptionApi.createCourseQuestOption(data)
       message.success(t('common.createSuccess'))
     } else {
-      await CourseQuestOptionApi.updateCourseQuestOption(data)
-      message.success(t('common.updateSuccess'))
+      // await CourseQuestOptionApi.updateCourseQuestOption(data)
+      message.success(t('common.updateSuccess '))
     }
     dialogVisible.value = false
     // 发送操作成功的事件

+ 6 - 6
src/views/bjdx/coursequestoption/index.vue

@@ -56,7 +56,7 @@
         <el-button
           type="primary"
           plain
-          @click="openForm('create')"
+          @click="openForm('create', null, queryParams.cqoQuestId)"
           v-hasPermi="['bjdx:course-quest-option:create']"
         >
           <Icon icon="ep:plus" class="mr-5px" /> 新增
@@ -77,8 +77,8 @@
   <!-- 列表 -->
   <ContentWrap>
     <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
-      <el-table-column label="课程试题选项id" align="center" prop="id" />
-      <el-table-column label="试题id" align="center" prop="cqoQuestId" />
+<!--      <el-table-column label="课程试题选项id" align="center" prop="id" />-->
+<!--      <el-table-column label="试题id" align="center" prop="cqoQuestId" />-->
       <el-table-column label="选项" align="center" prop="cqoValue" />
       <el-table-column label="选项内容" align="center" prop="cqoOption" >
         <template #default="scope">
@@ -96,7 +96,7 @@
           <el-button
             link
             type="primary"
-            @click="openForm('update', scope.row.id)"
+            @click="openForm('update', scope.row.id, queryParams.cqoQuestId)"
             v-hasPermi="['bjdx:course-quest-option:update']"
           >
             编辑
@@ -185,8 +185,8 @@ const resetQuery = () => {
 
 /** 添加/修改操作 */
 const formRef = ref()
-const openForm = (type: string, id?: number) => {
-  formRef.value.open(type, id)
+const openForm = (type: string, id?: number, questId?: number) => {
+  formRef.value.open(type, id, questId)
 }
 
 /** 删除按钮操作 */

+ 2 - 2
src/views/bjdx/coursetype/CourseTypeForm.vue

@@ -20,8 +20,8 @@
       </el-form-item>
       <el-form-item label="课程类型节点" prop="ctTypeNode">
         <el-segmented v-model="formData.ctTypeNode" :options="[
-          { label: '年级', value: 0 },
-          { label: '课程', value: 1 },
+          { label: '年级', value: '0' },
+          { label: '课程', value: '1' },
         ]" />
       </el-form-item>
       <el-form-item label="课程类型名称" prop="ctType">