Bläddra i källkod

添加搜索条件

lex-xin 6 månader sedan
förälder
incheckning
48e08ff858

+ 6 - 4
src/api/cloudTextbooks.api.ts

@@ -54,10 +54,11 @@ export const getMyCourseware_gyt = () => {
 }
 
 // 课程详情列表
-export const getMyCoursewareDetail_gyt = (id: string) => {
+export const getMyCoursewareDetail_gyt = (params: { id: string; search?: string; abortController: AbortController }) => {
    return httpAxios_gyt.axioseRquest({
+      signal: params.abortController.signal,
       method: "post",
-      url: "/api-teacher/courseSchedule/myCoursewareDetail/" + id
+      url: `/api-teacher/courseSchedule/myCoursewareDetail/${params.id}?search=${params.search || ""}`
    })
 }
 
@@ -106,10 +107,11 @@ export const queryLessonCourseware_klx = (type: string, albumId: string, abortCo
 }
 
 // 课程详情列表
-export const getLessonCoursewareCourseList_klx = (id: string) => {
+export const getLessonCoursewareCourseList_klx = (params: { id: string; search?: string; abortController: AbortController }) => {
    return httpAxios_klx.axioseRquest({
+      signal: params.abortController.signal,
       method: "get",
-      url: "/api-teacher/tenantAlbumMusic/getLessonCoursewareCourseList/" + id
+      url: `/api-teacher/tenantAlbumMusic/getLessonCoursewareCourseList/${params.id}?search=${params.search || ""}`
    })
 }
 

+ 1 - 5
src/views/cloudTextbooks/chooseDialog.vue

@@ -6,7 +6,7 @@
 <template>
    <div class="chooseDialog">
       <div class="close" @click="close"></div>
-      <div class="chooseHeader" v-if="isShowTabs">
+      <div class="chooseHeader">
          <img
             key="classlist"
             v-if="chooseType === 'classlist'"
@@ -98,10 +98,6 @@ const emits = defineEmits<{
 
 handleGetDetailList(props.modalData.id)
 
-const isShowTabs = computed(() => {
-   return userStoreHook.roles === "GYM" ? true : false
-})
-
 function close() {
    emits("onClose")
 }

+ 2 - 2
src/views/cloudTextbooks/searchCollapse/searchCollapse.vue

@@ -1,7 +1,7 @@
 <!--
 * @FileDescription: 折叠菜单
-* @Author: 黄琪勇
-* @Date:2024-04-01 18:40:50
+* @Author: 王新雷
+* @Date:2024-12-01 18:40:50
 -->
 <template>
    <el-collapse class="courseCollapse" accordion v-model="activeCollapseId">

+ 54 - 12
src/views/cloudTextbooks/useData.ts

@@ -227,9 +227,9 @@ export const useDataDetailList = () => {
       if (userStoreHook.roles === "GYM") {
          handleGetDetaList_gym(id, isSearch, search)
       } else if (userStoreHook.roles === "GYT") {
-         handleGetDetailList_gyt(id)
+         handleGetDetailList_gyt(id, isSearch, search)
       } else if (userStoreHook.roles === "KLX") {
-         handleGetDetailList_klx(id)
+         handleGetDetailList_klx(id, isSearch, search)
       }
    }
 
@@ -274,10 +274,16 @@ export const useDataDetailList = () => {
       })
    }
    // 获取管乐团
-   function handleGetDetailList_gyt(id: string) {
-      loading.value = true
-      httpAjaxErrMsg(getMyCoursewareDetail_gyt, id).then(res => {
-         loading.value = false
+   function handleGetDetailList_gyt(id: string, isSearch = false, search?: string) {
+      if (coursewareDetailController) {
+         coursewareDetailController.abort()
+      }
+      coursewareDetailController = new AbortController()
+      if (!isSearch) loading.value = true
+      searchLoading.value = true
+      httpAjax(getMyCoursewareDetail_gyt, { id, search, abortController: coursewareDetailController }).then(res => {
+         if (!isSearch) loading.value = false
+         searchLoading.value = false
          if (res.code === 200) {
             const data = (res.data || []).map((item: any) => {
                return {
@@ -287,15 +293,36 @@ export const useDataDetailList = () => {
                   lockFlag: false // 云课堂默认不锁
                }
             })
-            listData.value = chunkArray(chunkArray(data, 7), 2)
+
+            if (!isSearch) {
+               listData.value = chunkArray(chunkArray(data, 7), 2)
+            }
+
+            const resultList = res.data || []
+            resultList.forEach((item: any) => {
+               item.children = item.knowledgePointList || []
+               item.id = item.coursewareDetailId
+               item.name = item.coursewareDetailName
+            })
+            listSearchData.value = filterPointList(resultList)
+            flattenCoursewareList.value = flattenCoursewareListData
+            if (flattenCoursewareList.value[0]) {
+               activeCollapse.value = flattenCoursewareList.value[0]
+            }
          }
       })
    }
    // 获取酷乐秀
-   function handleGetDetailList_klx(id: string) {
-      loading.value = true
-      httpAjaxErrMsg(getLessonCoursewareCourseList_klx, id).then(res => {
-         loading.value = false
+   function handleGetDetailList_klx(id: string, isSearch = false, search?: string) {
+      if (coursewareDetailController) {
+         coursewareDetailController.abort()
+      }
+      coursewareDetailController = new AbortController()
+      if (!isSearch) loading.value = true
+      searchLoading.value = true
+      httpAjax(getLessonCoursewareCourseList_klx, { id, search, abortController: coursewareDetailController }).then(res => {
+         if (!isSearch) loading.value = false
+         searchLoading.value = false
          if (res.code === 200) {
             const data = (res.data || []).map((item: any) => {
                return {
@@ -303,7 +330,22 @@ export const useDataDetailList = () => {
                   id: item.coursewareDetailId
                }
             })
-            listData.value = chunkArray(chunkArray(data, 7), 2)
+
+            if (!isSearch) {
+               listData.value = chunkArray(chunkArray(data, 7), 2)
+            }
+
+            const resultList = res.data || []
+            resultList.forEach((item: any) => {
+               item.children = item.knowledgePointList || []
+               item.id = item.coursewareDetailId
+               item.name = item.coursewareDetailName
+            })
+            listSearchData.value = filterPointList(resultList)
+            flattenCoursewareList.value = flattenCoursewareListData
+            if (flattenCoursewareList.value[0]) {
+               activeCollapse.value = flattenCoursewareList.value[0]
+            }
          }
       })
    }

+ 7 - 5
src/views/coursewarePlay/coursewarePlay.vue

@@ -157,7 +157,9 @@ import {
    getLessonCourseDetail_gym,
    getLessonCoursewareDetail_gyt,
    getLessonCourseDetail_klx,
-   getLessonCoursewareCourseList_gym
+   getLessonCoursewareCourseList_gym,
+   getMyCoursewareDetail_gyt,
+   getLessonCoursewareCourseList_klx
 } from "@/api/cloudTextbooks.api"
 import myInput from "@/components/myInput"
 import { checkWebCourse_gyt, refLevel_gym, refLevel_gyt, refLevel_klx } from "@/api/coursewarePlay.api"
@@ -298,16 +300,16 @@ async function getCoursewareList(id?: string) {
 async function getLessCoursewareList(id?: string) {
    //  GYM,GYT,KLX 区分   查询接口
    const LessonCoursewareDetailApi = {
-      // GYT: getLessonCoursewareCourseList_gym
-      GYM: getLessonCoursewareCourseList_gym
-      // KLX: getLessonCourseDetail_klx
+      GYT: getMyCoursewareDetail_gyt,
+      GYM: getLessonCoursewareCourseList_gym,
+      KLX: getLessonCoursewareCourseList_klx
    }
    if (coursewareDetailController) {
       coursewareDetailController.abort()
    }
    coursewareDetailController = new AbortController()
    searchObj.loading = true
-   await httpAjax(LessonCoursewareDetailApi["GYM"], {
+   await httpAjax(LessonCoursewareDetailApi[userStoreHook.roles!], {
       id: id || (route.params.id as string),
       search: searchObj.queryStr,
       abortController: coursewareDetailController