lex-wxl 2 days ago
parent
commit
93a25ce284

+ 3 - 2
src/api/cloudTextbooks.api.ts

@@ -85,10 +85,11 @@ export const getLessonCoursewareDetail_gyt = (id: string) => {
  */
 
 // 专辑列表
-export const getuyAlbumInfo_klx = () => {
+export const getuyAlbumInfo_klx = (data?: any) => {
    return httpAxios_klx.axioseRquest({
       method: "get",
-      url: "/api-teacher/tenantGroupAlbum/buyAlbumInfo"
+      url: "/api-teacher/tenantGroupAlbum/buyAlbumInfo",
+      params: data
    })
 }
 

+ 12 - 2
src/views/cloudPractice/cloudPractice.tsx

@@ -384,14 +384,24 @@ export default defineComponent({
             enable: true,
             page: 1,
             parentId: 0,
-            rows: 10
+            rows: 999
          }).then(async res => {
             loading.value = false
             if (res.code === 200) {
                const result = res.data || []
+               const currentDate = new Date()
+               const albumList: any[] = []
+               result.forEach((item: any) => {
+                  if (item.endTime) {
+                     const albumDate = new Date(item.endTime)
+                     if (albumDate >= currentDate) {
+                        albumList.push(item)
+                     }
+                  }
+               })
 
                const tempList: any = []
-               result.forEach((item: any) => {
+               albumList.forEach((item: any) => {
                   if (item.musicNum > 0) {
                      const subjectCounts = item.subjectCounts ? true : false
                      const musicCounts = item.musicCounts ? true : false

+ 8 - 5
src/views/cloudTextbooks/cloudTextbooks.vue

@@ -96,8 +96,11 @@ const queryStr = ref("")
 
 // 全屏显示
 handleFullscreen(true, false)
-handleGetClassTypeOpt()
-handleGetList()
+const __init = async () => {
+   await handleGetClassTypeOpt()
+   handleGetList(classType.value)
+}
+__init()
 
 enum courseEmnu {
    PERCUSSION_SINGLE = "打击乐",
@@ -113,10 +116,10 @@ enum courseEmnu {
    EUPHONIUM_SINGLE = "上低音号",
    TUBA_SINGLE = "大号"
 }
-function handleGetClassTypeOpt() {
+async function handleGetClassTypeOpt() {
    //  GYM,GYT,KLX 区分   课程类型
    if (userStoreHook.roles === "GYM") {
-      httpAjax(getLessonCoursewareSubjectList_gym).then(res => {
+      await httpAjax(getLessonCoursewareSubjectList_gym).then(res => {
          if (res.code === 200) {
             classTypeOpt.value = [
                {
@@ -146,7 +149,7 @@ function handleGetClassTypeOpt() {
          })
       ]
    } else if (userStoreHook.roles === "KLX") {
-      httpAjax(queryPageSubject_klx).then(res => {
+      await httpAjax(queryPageSubject_klx).then(res => {
          if (res.code === 200) {
             const classList = [
                {

+ 16 - 4
src/views/cloudTextbooks/useData.ts

@@ -38,7 +38,7 @@ export const useDataList = () => {
    const loading = ref(false)
    let coursewareController: AbortController
 
-   function handleGetList() {
+   function handleGetList(type?: string) {
       //  GYM,GYT,KLX 区分   获取列表数据
       if (userStoreHook.roles === "GYM") {
          handleGetList_gym("", "")
@@ -46,11 +46,23 @@ export const useDataList = () => {
          handleGetList_gyt()
       } else if (userStoreHook.roles === "KLX") {
          loading.value = true
-         httpAjax(getuyAlbumInfo_klx).then(res => {
+         httpAjax(getuyAlbumInfo_klx, { enable: true, page: 1, parentId: 0, rows: 999 }).then(res => {
             loading.value = false
             if (res.code === 200) {
+               console.log(res.data, "albumData")
+               const result = res.data || []
+               const currentDate = new Date()
+               const albumList: any[] = []
+               result.forEach((item: any) => {
+                  if (item.endTime) {
+                     const albumDate = new Date(item.endTime)
+                     if (albumDate >= currentDate) {
+                        albumList.push(item)
+                     }
+                  }
+               })
                // 专辑赋值
-               albumOpt.value = (res.data || []).reduce((arr: any[], item: any) => {
+               albumOpt.value = albumList.reduce((arr: any[], item: any) => {
                   if (item.coursewareCounts > 0) {
                      arr.push({
                         value: item.id,
@@ -61,7 +73,7 @@ export const useDataList = () => {
                }, [])
                // 默认取第一个专辑
                albumOpt.value.length && (albumId.value = albumOpt.value[0].value)
-               handleGetList_klx("", albumId.value, "")
+               handleGetList_klx(type || "", albumId.value, "")
             }
          })
       }

+ 49 - 9
src/views/homePage/homePage.vue

@@ -53,14 +53,16 @@
 <script setup lang="ts">
 import navContainer from "@/businessComponents/navContainer"
 import { useRouter } from "vue-router"
-import { ref, computed } from "vue"
+import { ref, computed, shallowRef } from "vue"
 import useDialogConfirm from "@/hooks/useDialogConfirm"
 import userStore from "@/store/modules/user"
 import curriculum_gym from "./components/curriculum/curriculum_gym.vue"
 import curriculum_gyt from "./components/curriculum/curriculum_gyt.vue"
 import { getRemind_gyt, getRecentCourseSchedule_gym } from "@/api/homePage.api"
-import { httpAjax } from "@/plugin/httpAjax"
+import { httpAjax, httpAjaxErrMsg } from "@/plugin/httpAjax"
 import { format } from "@/libs/tools"
+import { queryTree_klx } from "@/api/cloudPractice.api"
+import user from "@/store/modules/user"
 
 const userStoreHook = userStore()
 const router = useRouter()
@@ -181,12 +183,15 @@ const classDataLoading = ref(true)
 const isEmptyClassData = computed(() => {
    return !Object.keys(classData.value).length
 })
+const useAlbumList = shallowRef<any[]>([])
 
 // 现在酷乐秀没有课表功能
 if (userStoreHook.roles !== "KLX") {
    handleClassData()
 } else {
    classDataLoading.value = false
+   // 获取酷乐秀专辑列表 - 为了判断【云练习】、【云课堂】是否能操作
+   getKlxAlbumList()
 }
 
 function handleClassData() {
@@ -210,13 +215,24 @@ function handleClassData() {
 }
 
 function handleRouter(url?: string) {
-   url
-      ? router.push(url)
-      : useDialogConfirm({
-           headImg: require("@/img/homePage/ts.png"),
-           text: "该功能暂未开放,敬请期待哦~",
-           btnShow: [true]
-        })
+   console.log(url, "url")
+   if (url) {
+      if (["/cloudPractice", "/cloudTextbooks"].includes(url) && userStoreHook.roles === "KLX" && useAlbumList.value.length <= 0) {
+         useDialogConfirm({
+            headImg: require("@/img/homePage/ts.png"),
+            text: "请联系平台客服开通权限",
+            btnShow: [true]
+         })
+         return
+      }
+      router.push(url)
+   } else {
+      useDialogConfirm({
+         headImg: require("@/img/homePage/ts.png"),
+         text: "该功能暂未开放,敬请期待哦~",
+         btnShow: [true]
+      })
+   }
 }
 function handleRouterCurriculum() {
    router.push({
@@ -226,6 +242,30 @@ function handleRouterCurriculum() {
       }
    })
 }
+
+async function getKlxAlbumList() {
+   await httpAjaxErrMsg(queryTree_klx, {
+      enable: true,
+      page: 1,
+      parentId: 0,
+      rows: 999
+   }).then(async res => {
+      if (res.code === 200) {
+         const result = res.data || []
+         const currentDate = new Date()
+         const albumList: any[] = []
+         result.forEach((item: any) => {
+            if (item.endTime) {
+               const albumDate = new Date(item.endTime)
+               if (albumDate >= currentDate) {
+                  albumList.push(item)
+               }
+            }
+         })
+         useAlbumList.value = albumList
+      }
+   })
+}
 </script>
 <style lang="scss" scoped>
 .homePageNav.navContainer {